text:
\section{Abbreviation}

\section{Introduction}
COVID-19 is a disease first diagnosed in Wuhan, China. The virus that causes COVID-19 is designated Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) \cite{covid-19}. The most common symptoms of COVID-19 are fever, tiredness and dry cough \cite{covid-19_symptom,covid-19_symptom2}. With the progress of the illness, some patients experience aches and pains, nasal congestions, runny nose or sore throat. The age of patients has an important influence on the effect of this virus and most young people could recover from COVID-19. However, people aged over 60 are more susceptible to reaching severe conditions because of the virus. According to data from the WHO (World Health Organization), 20\% of COVID-19 patients suffer serious problems in breathing and need hospital care. With the quick spread of COVID-19 around the world, policies have been carried out to curb its effects, yet many are still exposed to severe health threats. Specifically, old people often have underlying medical conditions such as diabetes, heart diseases, respiratory disease or hypertension, which put them at greater risk if they are infected by the virus. Much effort has been put in developing vaccines for the virus. Though this is an effective solution to this situation, it takes a long time to develop, and is limited to a few countries with the best biochemical equipment. Computer-based drug discovery, on the other hand, is more accessible to developing countries. Therefore, our
model has broad applications outside the COVID-19 context, namely it could be of use in similar scenarios for designing drugs for other diseases in the future.

When coming to sorting out drugs based on existing databases and generate effective drugs, Machine Learning (ML) performs much more effectively and efficiently than humans \cite{covid-survey}. Since there are millions of ligands and protein of drugs in the National Center for Biotechnology Information (NCBI) database, a ML algorithm is certainly needed to efficiently sort out all useful ligands and protein and generate effective molecules. In this paper, our approach generates various useful molecules that could be used to treat COVID-19. We developed a generative model named Genetic Constrained Graph Variational Autoencoder (GCGVAE), which automatically sorts all useful data from the database and generates useful molecules to bind with SARS-CoV-2 protease. The performance (measured by binding affinity, mentioned in section 6) of our molecules is much better than that of the existing drugs, including Remdesivir, Ribavirin, Umifenovir, Favipiravir, Lopinavir, etc. \cite{remdesivir,ribavirin,other_drug}. Those molecules have great potential to treat patients.

\begin{figure}[htbp]
\centering
\includegraphics[width=0.95\textwidth]{figures/graph1_final_3.pdf}
\caption{Global Epidemiological Statistics of COVID-19}
\label{Fig.main2}
\end{figure}

The figure above shows the statistics of the number of confirmed cases, death cases and recovered cases with its log value with respect to date (From 1/22/2020). The figure shows that the trend of the epidemic has caused severe damage to the society.

\section{Challenges}
In implementing GCEVAE, a batch of all active molecules must be selected for use in the first-generation sample that is to be fed into the model since using inactive molecules can reduce the effectiveness of the model and cause poorer performance. To sort out all active molecules from the original NCBI dataset, we first trained an edge-memory neural network (EMNN) \cite{emnn} for selecting usable molecule that is relatively active. The EMNN selects molecules based on the PubChem Standard Value \cite{pubchem}, a standardized value for indicating how active is a molecule, which corresponds to how much the molecule compound inhibits the given protein at a given concentration.

In addition, calculating the composite score of the molecule (Introduced in section 6, Model Evaluation), is time-consuming. To shorten the training and inference time of the model, it only focuses on a specific atom in the molecule (Explained in section 4, GCGVAE model) instead of focusing on the entire molecule. Moreover, we use the software Autodock Vina \cite{autodock_vina} to calculate the binding affinity of a given molecule with the designated protein. Autodock vina embeds various optimizers that significantly shorten training time (Described in section 6, Model Evaluation).

We faced various challenges while tackling with the optimization model, namely the graph-based genetic algorithm (GB-GA). A chromosome in GB-GA is the encoded graph of molecules. Since the length of chromosomes is not fixed but can vary to a great extent, we have to find a way to encode the molecules into chromosomes on which genetic operators can be applied. The traditional GA utilizes sample of fixed lengths, which is relatively easy to implement genetic operators. While it is possible to find a theoretical maximum molecule size and encode all molecules to have the same chromosome length as the maximum one, doing so greatly increases computational complexity. To deal with a generative problem in structural topology, I.Y. Kim et al \cite{GA_main2}, presented a method of starting with short chromosomes and increasing the length of chromosomes with the progression of generations.
However, since our GA is not for generating new molecules but for diversifying the results of our generative model, such a solution cannot be directly applied in this scenario. S. N. Pawar et al \cite{GA_main} presented another varied length GA for network intrusion detection, in which the length of chromosomes is independent of the number of generations. Moreover, the nonlinear structures of molecules (most medicinal molecules have ring structures, branches, etc.) brings additional challenges to our algorithms. In most of linear representations of molecules, the beginning and ending of each branch is denoted at their exact locations. In other words, if a branch originates after the third atom, the denotations will change and errors can be easily caused by confusion of the denotations while doing crossover and mutation. We solved the problem by placing all paired denotations of the molecules in the beginning when encoding them.
\section{Related Work}
\subsection{VAE}
Variational Autoencoder is a common generative model that uses one set of parameters to model the relationship between input and latent variables. It could be viewed as two coupled models that support each other. It was inspired by the Helmholtz machine (Dayan et al., 1995) \cite{vae_intro}. The framework of VAEs provides a computationally efficient way for optimizing DLVMs (deep latent-variable models) jointly with a corresponding inference model using Scholastic Gradient Descend (SGD). We optimize the variational parameters $\phi$ such that:
\begin{equation}
 q_\phi(z|x) \approx p_\theta(z|x) \label{XX}
\end{equation}
Here $q_\phi(z|x)$ is a parametric inference model, namely the encoder of VAE.$p_\theta(z|x)$ is the probability distribution function given by the model. The inference model can be any directed graphical model:
\begin{equation}
q_\phi(z|x) = q_\phi(z_1, \cdots, z_m|x) = \prod_{j=1}^M q_\phi(z_j|Pa(z_j),x)
\end{equation}
$Pa(z_j)$ is the set of parent variables of $z_j$ in the directed graph. The distribution of $q_\phi(z|x)$ can be parameterized using deep neural network.

The decoder part that learns to generate an output which belongs to the real data distribution is given a latent variable z as an input. This part maps a sampled z (initially from a normal distribution) into a more complex latent space (the one actually representing our data) and from this complex latent variable z, it generates a data point which is as close as possible to a real data point from our distribution. \cite{vae_bayes}

\subsection{Genetic Algorithm}
A genetic algorithm mainly follows Darwin's rule of nature and natural selection. It is generally consisted of a fitness calculator, a mutation function, a crossover function and a selection process; however, our genetic algorithm (see section 5.2) differs from the traditional genetic model in many ways.

The fitness function calculate scores of the population in the entire genetic algorithm. The selection algorithm filters the  population based on rules set beforehand. The mutation algorithm changes some parts of some chromosomes to increase result variability. The crossover process randomly pick samples and swap parts of chromosomes.

\subsection{AI Drug Development}
AI aided drug development mainly refers to generating small-molecule drug. Small-molecule drug discovery mainly focuses on chemically synthesized small molecules of active substances, which can be made into small-molecule drugs through chemical reactions between different organic and inorganic compounds. One group of AI-based drug development focuses on the discovery of new drug-like compounds at the molecular level. In \cite{2}, Beck \textit{et al.} proposed a DL-based drug-target interaction model (MT-DTI) to predict potential drug candidates for COVID-19. The authors collected the amino-acid sequences of 3C-like proteases and related antiviral drugs and drug targets from the databases of NCBI, Drug Target Common(DTC) \cite{4} and BindingDB \cite{5}.They also used a molecular docking tool called AutoDock Vina \cite{autodock} to predict the binding affinity between 3,410 drugs and SARS-CoV-2 3CLpro. Moskal et al. used AI to analyze the comparability of COVID-19 medicine and drugs involving similar indications to screen out second-generation drugs. They used the software Mol2Vec to convert molecular formulas into multidimensional vectors. In other words, each molecular formula is converted into a sentence of information, with each part of it being a word. Next, they used VAE to generate molecules that have suppresive qualities on the 2019-n-CoV virus. Then, they used CNN, LSTM, and MLP models to generate possibly funtional molecules, using 4456 drug-like molecules as training.

\subsection{Graph Neural Network}
GNN is a neural network inspired by CNN, which involves the use of complex multidimensional matrices to account for discrete characteristics. The core of CNN is local connections – sharing weights and using multi-layer calculations. Traditional CNNs can only deal with one or two dimensional problems, usually involving images and text; and GNNs are able to break these limits. The fact that GNN is a locally connected structure means that it can also use shared weights to reduce computational complexity \cite{dl}, making it an extensively applicable neural network. Multi-layer calculations is also the answer to many problems involving hierarchical pattern.

The GNN model learns a state embedding \cite{sgt}$h_v \in \mathbb{R}$, which contains the information of neighboring nodes. State embedding $h_v$ is an s-dimension vector for $v$, which ultimately produces the result $O_v$. Let $f$ be a parametric equation, shared by each node, through which each node updates new information. Let $g$ be the local output function which describes how the output is produced. Thus $h$ and $O_v$ follow the following equation:
\begin{equation}
h_v = f(x_v,x_{co[v]},h_{ne[v]},x_{ne[v]})
\end{equation}
\begin{equation}
o_v = g(h_v,x_v)
\end{equation}
Here $x_v,x_{co[v]},h_{ne[v]},x_{ne[v]}$ are all features of v, respectively, edge, state, and features of the node and neighboring nodes.\\
Let $H,O,X$ and $X_n$ represent higher-dimension vectors that are the results stacking states. All outputs, features, and node features will be:
\begin{equation}
H = F(H,X)
\end{equation}
\begin{equation}
O = G(H,X_N)
\end{equation}
Here, $F$ is the global transition function, and $G$ is the global output function. $F$ and $G$ stacks the $f$ and $g$ of each node.

The loss of the GNN, based on our current GNN structure and with the target information tv as supervision, is:
\begin{equation}
loss = \sum^{p}_{i=1}(t_i-o_i)
\end{equation}
Here, $p$ is the number of nodes in supervised learning, which minimizes loss by using gradient descent.

\section{GCGVAE Model}
Our generative model, GCGVAE, is mainly consisted of two segments: Constrained Graph Variational Autoencoder (CGVAE) and Graph-Based Genetic Algorithm (GB-GA). CGVAE is used to extract effective molecules from the ZINC dataset and generate drug molecules specifically for SARS-CoV-2 through altering the initial molecules in the ZINC dataset. CGVAE uses the process above to generate 1000 samples for the GB-GA module to begin process with, which would then perform SARS-CoV-2-specific alternations to the molecule samples in the input of GB-GA.

The whole process uses $N$ number of vectors as seeds that form a latent "specification" to let our model to generate new graphs ($N$ is the upper limit of the number of nodes generated). Then, by employing two decision functions, namely the focus function and the expand function, our model generates new molecules by setting up new edges. The focus function is used to choose nodes to connect and the expand function is used to choose edges to connect nodes that are chosen by the focus function. In a breath-first traversal, the focus function is implemented using deterministic queue (dequeue) with random choice for the inital nodes.

The major point of our study is to let the expand function learn through training and thus generate an edge that can connect nodes that are selected by the focus function. To prevent an excessively large occupancy caused by massive amount of graphs learnt by the expand function \cite{graph_h}, our expand function trains through partial graph structure.
\begin{figure}[htbp]
\centering
\includegraphics[width=0.7\textwidth]{figures/graph1_final_2.pdf}
\caption{The scheme of CGVAE model. \quad GRU:Gated Recurrent Units \quad SGD: Scholastic Gradient Descend}
\label{Fig.main2}
\end{figure}

The figure below shows the general structure of our CGVAE model. The encoder is consisted of a GRU unit that forms the GGNN network. The decoder is a normal VAE decoder. We optimize the model by using Scholastic Gradient Descend.

\paragraph{Initialize nodes}
We firstly set up state $h_v$ and every node $v$ in an initial graph that is not connected. Specifically, We assume the initial value of the graph structure $Z_v$, which is drawn from a standard normal $\mathcal{N}(0,I)$ in $d$ dimension. $h_v$ is the integral form of $[Z_v,T_v]$. Here $T_v$ is an explainable interpreter that is used to indicate the type of nodes. $T_v$ is the mapping of $\tau_v \sim f(z_v)$ that is obtained through $Z_v$ by learning from the output of the model, where $f$ represents the whole neural network. The explainable part of $h_v$ gives us a method to set limits with force. \\
According to these variables, we are able to calculate global representation $\mathbf{H}_t$ (the distribution and constitutions of every node at step $t$) and $\mathbf{H}_{init} = \mathbf{H}_0$ (the distribution and constitutions of every node at step 0). At the same time, we also set a stop node to terminate the training.

\paragraph{Update nodes}
Whenever we obtain a new graph , we give up the original $h_v$, calculate a new $h_v$, and update for all nodes (achieved by updating information of neighboring nodes). Here we employed the standard gated graph neural network (GGNN) $G_{dec}$ for $S$ steps.
\begin{equation}
m_v^{(0)} = h_v^{(0)} \qquad m_v^{(s+1)} = \mathbf{GRU}[m_v^{s},\sum_{v\stackrel{l}{\leftrightarrow}u}{E_l(m_u^{(s)})] \qquad h_v^{(t+1)} = m_v^{(S)}}
\end{equation}
$E_l$ here is an edge-type specific neural network \cite{emnn}. $GRU$ here mainly describe how the GGNN works \cite{ggnn}.

\paragraph{Selecting edge and labeling}
First we choose a node $v$ from the queue. Expand function choose edges from $v$ to $u$: $v\stackrel{l}{\leftrightarrow}u$. The length of the label is l. For other nodes that are not focuses, we build a feature vector $\phi_{v,u}^{(t)} = [h_v^{(t)},h_u^{(t)},d_{v,u},\mathbf{H}_{init},\mathbf{H}^{(t)}]$. Here, $d_{v,u}$ is the graph distance between two nodes so that we can let the model obtain information on the nodes and edges. We would use the above information to generate specific distributions of edges. \\

\begin{equation}
p(v\stackrel{l}{\leftrightarrow}u | \phi_{v,u}^{(t)}) = p(l | \phi_{v,u}^{(t)},v{\leftrightarrow}u)\cdot p(v{\leftrightarrow}u | \phi_{v,u}^{(t)})
\end{equation}

\begin{equation}
p(v{\leftrightarrow}u | \phi_{v,u}^{(t)}) = \frac{M^{(t)}_{v{\leftrightarrow}u}\exp[C(\phi_{v,u}^{(t)})]}{\sum_w{M^{(t)}_{v{\leftrightarrow}w}}\exp[C(\phi_{v,w}^{(t)})])},\qquad p(l | \phi_{v,u}^{(t)}) = \frac{m^{(t)}_{v\stackrel{l}{\leftrightarrow}u} \exp[L_l(\phi_{v,u}^{(t)})]}{\sum_k{m^{(t)}_{v\stackrel{k}{\leftrightarrow}u}} \exp[L_k(\phi_{v,u}^{(t)})]}
\end{equation}

\section{Training}
The above model is dependent upon trained networks   (trained by a VAE architecture using the graph dataset D), as well as a latent space where the latent parameters of the model reside.
\subsection{CGVAE}
Our VAE is encoded by a GGNN $G_{enc}$, which is parametrised by the mean $\mu_v$ and the standard deviation $\sigma_v$ vectors. In a latent space with $d$ dimensions, we embed each node in an input graph $\mathcal{G}$ to a diagonal normal distribution, from which the latent vector samples $z_v$ are taken. The $\mathbf{KL}$ divergence between the encoder distribution and the standard Gaussian prior is measured by the usual VAE regulariser term:
\begin{equation}
\mathcal{L}_{latent} = \sum_{v \in \mathcal{G} }{\mathbf{KL}(\mathcal{N}( \mu_v ,diag(\sigma_v)^2)||\mathcal{N}(0,I))}\end{equation}

During training, each generation is conditioned by an inactive sample from the encoder distribution. Training of the overall model is supervised by generation traces obtained from graphs in $D$.
\\
\paragraph{Node Initialization}
Let node permutations be denoted by $\mathcal{P}$, and let $h_v(t=0)$ denote the initial node states. From each node $v$ a sample of the node specification $\mathbf{z}_v$ is taken, and using $f$ (the learned function), the label $\mathbf{\tau}_v$ is generated. The likelihood of the labels $\mathbf{\tau}^*_v$(observed in the encoded graph) being re-generated is \\
\begin{equation}
p(\mathcal{G}^{(0)}|\mathbf{z}) = \sum_\mathcal{P}{\mathbf{\tau} = \mathcal{P}(\mathbf{\tau}^*)|\mathbf{z}} > \prod_v{p(\tau_v = \tau_v^* | \mathbf{z}_v)}
\end{equation}
Since node type $\tau^*_v$, and therefore $Z_v$, is known, the single contribution from the encoder ordering gives a lower bound, which can undergo further improvement given a set2set model \cite{set2set}.
\paragraph{Edge Selection and Labelling During training}
The sequence of edge additions is supervised by basing the supervision upon breadth-oriented traversals of all graphs in $D$. A Monte-Carlo estimate, using a miniset of sampled traces, is taken of the marginal. This is done instead of computing the logged possibility, since doing so has the disadvantage of not being computationally tractable.\\
Let $\mathcal{G}^{(0)}$ represent the initial collection of unconnected nodes. From the function below, we can see that the lower bound of the log probability of a graph $\mathcal{G}$ is dependent upon the log probability of all traces.
\begin{equation}
\log p(\mathcal{G}|\mathcal{G}^{(0)}) = \log \sum_{\pi \in \Pi}{p(\pi | \mathcal{G}^{(0)})} \geq \log(|\Pi|) + \frac{1}{|\Pi|}\sum_{\pi \in \Pi}{\log p(\pi|\mathcal{G}^{(0)})}
\end{equation}
Let v denote the current focus node, and let $\epsilon = v\leftrightarrow u$ be the edge added at step $t$. Every trace of each generation $\pi \in \Pi$ can be split into a series of steps, which are ordered as $t, v, \epsilon$.
\begin{equation}
\log p(\pi| \mathcal{G}^{(0)}) = \sum_{(t,v,\epsilon)\in \pi}\left\{{\log p(v|\pi,t)+\log p(\epsilon|G^{(t-1)},v)}\right\}
\end{equation}
The first term of this equation is the choice of focus node at step $t$ of trace $\pi$, which is a uniform distribution for the first focus node, and after which follows a breadth-first search. The set of generation states $S$, which includes the features of both the node we are currently focusing and the neighboring nodes around it, is put into consideration in order to elevate the model further.

Let $|\mathcal{E}_s|$ denote the multiplicity of state $s$ in $\Pi$ – the number of node traces containing graph $\mathcal{G}^{(t)}$. We use $\mathcal{E}_s$ to represent edges from focus node $v$ that are presented in graph $\mathcal{G}$. Both of the above are uniform, so we can rearrange and sum the value of them over steps.
\\
\begin{equation}
\frac{1}{|\Pi|}\sum_{\pi \in \Pi}\sum_{(t,v,\epsilon)\in\pi}{\log p(\epsilon|s)} = \frac{1}{|\Pi|}\sum_{s \in S}\sum_{\epsilon \in \mathcal{E}_s}{\frac{|s|}{|\mathcal{E}_s|} \log p(\epsilon|s)} = \mathbb{E}_{s \sim \Pi} [ \frac{1}{|\mathcal{E}|}\sum_{\epsilon \in \mathcal{E}_s}{\log p(\epsilon|s)}]]
\end{equation}
In this equation, $|s|/|\Pi|$ represents the probability of observing state s in a random draw from all states in $\Pi$. We define the loss fucntion of model as:
$$
\mathcal{L}_{recon} = \sum_{\mathcal{G} \in \mathcal{D}}{\log [p(\mathcal{G}|\mathcal{G}^{(0)})\cdot p(\mathcal{G}^{(0)}|\mathbf{z})]}
$$
Here again, a Monte Carlo estimate is taken from the set of numbered generation traces, which causes variance estimate to be high.

Local optimization of the generated graphs is needed. This is done through gradient ascent (note: this is not gradient descent) in continuous latent space using a differentiable gated regression model. $g1$ and $g2$ are neural networks, and $\sigma$ is the sigmoid function.\\
The equation is as follows:
\begin{equation}
R(\mathbf{z}_v) = \sum_{v}{\sigma(g1(\mathbf{z}_v))\cdot g2(\mathbf{z}_v)}
\end{equation}
$L2$ distance is used to compute loss during training; and in testing, an initial latent point $\mathbf{z}_v$ can be sampled and used to gradient-ascent towards a local optimal point $\mathbf{z}_v^{*}$, which is kept within the standard normal. $Q$, the optimized property, is ultimately produced.

The main objective of our training is $\mathcal{L} = \mathcal{L}_{recon}. + \lambda_1\mathcal{L}_{latent} + \lambda_2\mathcal{L}_Q$, consisting of normal VAE objective. Note that VAE loss of Yeung et al.  \cite{vae_optimize} is not strictly followed.

\subsection{Graph-Based Genetic Algorithm}
Our genetic algorithm takes molecules from the CGVAE model as input, on which various genetic operators are applied, and produce desirable molecules as output.
\begin{figure}[htbp]
\centering
\includegraphics[width=1.0\textwidth]{figures/graph1_final_1.pdf}
\caption{The schematic map of our Genetic Algorithm}
\label{Fig.main2}
\end{figure}

Figure 3 describes the process of our Genetic Algorithm. It is further explained in the following sections.

\paragraph{Population Initialization}
Since molecules share great similarities with undirected graphs, we use graphs to represent each molecule instead of using merely SMILES strings. Each node of the graph represents an atom of the molecule. And each edge represents the bond between atoms in the molecule. The graph structure is stored for further generation.

\paragraph{Crossover \& Mutation \& Reproduction}
Our system of crossover, mutation, and reproduction is based on branch-switching, i.e. the switching of randomly chosen branches between two given molecules. Our reproduction process is embedded in the crossover function, and mutation is not directly implemented (instead, it is emulated by a small-scale crossover). Because crossing over molecular branches produce nearly unpredictable results, we create a copy of the original population each time we perform a crossover, and combine it with the crossed over population. This way, if our crossover creates undesirable results, successful individuals from the original population can still succeed into the next round. Note that in this process of crossover and copying, the population is doubled, saving the need for a sperate reproduction algorithm.

For each generation, we perform two rounds of crossover and copying. In the first round, only the upper-most branches of molecules are swapped. Since the upper-most branches of molecules have little variability (most often, they are singular carbon or oxygen atoms), swapping them creates only minor differences, if any. Therefore, the population created after this wave of crossover differs little from the copied one, much like a mutated population in the traditional GA. Thus, the mutation process is emulated by this round of crossover.

In the next round of crossover and copying, more significant changes are applied. Instead of uppermost branch switching, universal branch switching is performed. In other words, the choice range of switchable branches is changed from only uppermost branches to all branches. Note that after this round, the population is four times that of the original one; of this current population, one quarter is identical with the original one, one quarter has minor differences with the original one (this is the quarter crossed over in the first round and copied in the second), and half (the part of the population crossed over in the second round) has great differences with the original. Thus, the current population is a mixture of (with respect to the original one) no changes, minor changes, and significant changes.

\begin{figure}[htbp]
\centering
\includegraphics[width=1.0\textwidth]{fig3_1.pdf}
\caption{The process of crossover and mutation}
\label{Fig.main2}
\end{figure}

The figure above illustrates the process of mutation and crossover in our GA model. A molecule that is to be mutated is input into our mutation algorithm. When a crossover/mutation process takes place, two functional groups (circled in the figure) in one pair swap each other. It will generate a new molecules as a results.

\paragraph{Fitness Scoring}
We define the final score of a molecule by calculating a composite score due to different factors. The composite score is the sum of weighted score of the binding affinity of a molecule (Explained in section 6, model evaluation), the validity test function (checking the validity of a molecule) and a size penalty score (We give penalty to larger molecules since they are hard to be synthesized and unstable, explained in section 6). The scoring function returns the composite score for selecting population.

\subsubsection{Selection}
Our selection function uses a combination of Elite Retention Selection and Simple Random Selection. It is basically about individuals within the population with the highest fitness scores (the top 25\%) is automatically retained, and another 25\% is randomly selected from the remaining population. The Elite Retention Selection is implemented in order to retain good results that have been produced, and the Simple Random Selection ensures result variability (since changes to molecule structure produce largely unpredictable results, and low-scoring molecules may crossover into high-scoring ones).

\section{Model Evaluation}

\subsection{Molecule availability checking using valency masking}
Atomic valency is indicative of the number of molecular bonds an atom can make to form a stable molecule, and there are rules predicting it that can be used to construct structurally sound molecules. In our model, every type of node is given a fixed valency based on current chemical knowledge. For example, $\mathbf{Cl}$ (a chlorine atom) has valency 1. $M$ and $m$ are used to ensure that the number of bonds $b_v$ remain at a reasonable level and does not exceed $b_v^*$ \cite{rdkit}. This ensures that only valid molecules (which are parsable via RDKit \cite{rdkit}) are generated. Morover, $M^{(t)}_{ v \leftrightarrow u}$, which addresses this problem, is:
\begin{equation}
M_{v \leftrightarrow u}^{(t)} = \mathbf{I} (b_v < b_v^*) \times \mathbf{I} (b_u < b_u^*) \times \mathbf{I} (no\quad v \leftrightarrow u\quad exists) \times \mathbf{I} (v \neq u) \times \mathbf{I} (u\quad is\quad not\quad closed)
\end{equation}
$F$ is an indicator function. And $m^{(t)}_{v\stackrel{l}{\leftrightarrow}u} = M^{(t)}_{v\stackrel{l}{\leftrightarrow}u} \times \mathbf{I}(b_u^* - b_u \leq l)$ is defined using $l$ to represent the type of bond.
\subsection{Virtual Screening}
Virtual screening of drugs has become the standard technology in modern day drug discovery, which can be done through molecular docking. Molecular docking is a technology performed on computers in order to indicate how molecules bind with each other, in this case especially large protein receptors and small ligands. Molecular docking is realized by using the "lock and key" principle, which compares large protein molecules to locks and small ligands to keys. Each ligand fit into appropriate positions in protein molecules according to their special quantities such as conformation, orientation, and quantities, like keys fitting into locks. What molecular docking tries to achieve is in nature an optimization problem, seeking to find a best-fit of ligands into receptors. Molecular docking simulates the process of binding between receptors and ligands and show their mode of binding as well as their binding affinity, which can thus be used to do virtual screening of drugs. \\
\\
The specific molecular docking software used in this paper is Autodock, an open-source software that enables its users to execute ligand-protein docking effectively \cite{autodock}. Autodock is widely used in the field of computer science and has been cited for most times compared to other molecular docking software. The reason we use Autodock is that other scientists in the field are already using it to test effectiveness of drugs inhibiting SARS-CoV-2, which proves its feasibility on drug discoveries. \\
\\
The process of Autodock is as followed \cite{autodock_n}: First, a protein molecule is input into the docking software and waiting to be scanned. The purpose of scanning is to look for amino acid residues surrounding the active site of the protein (receptor). A box is then formed surrounding the protein with grid points and to be scanned by atom probes: atom probes are different types of atoms within the structure of ligands. The software would take the atom probes and scan the grid points within the box and calculate energy needed to bind with atoms in the receptor. The last step is that the software take the ligand to do a conformational search within the box and calculate a score correspondent to a specific ligand using a scoring function according to different conformations, orientations, positions, and energy \cite{f18,f18_2}:
\begin{equation}
\Delta G_{bind} = \Delta G_{solvent} + \Delta G_{conf} + \Delta G_{init} + \Delta G_{rot} + \Delta G_{t/t} + \Delta G_{vib}
\end{equation}
The components of the equation are solvent effects, conformational changes in the protein and ligand, free energy due to protein-ligand interactions, internal rotations, association energy of ligand and receptor to form a single complex and free energy due to changes in vibrational modes. A low (negative) energy indicates a stable system and thus a likely binding interaction.

To increase the speed of evaluating effectiveness of drugs, we used Autodock Vina, Autodock's successor. Autodock Vina has its advantages and limitations. Autodock Vina, compared to Autodock, has an improved local search routine and makes use of multi-CPU setups, which is the main cause for its increased speed. Autodock vina also utilizes several optimizing methods, including genetic algorithm, simulated annealing, and particle swarm optimization \cite{autodock_vina,autodock_vina2,autodock_vina3,autodock_vina4,autodock_vina5}. One major difference between Autodock and its successor is that distances between grid points within the box in Autodock can be defined to smaller sizes than 1 (e.g. 0.37), while the distance between grid points in Autodock Vina can only be set to 1, which might lead to leaving out possible best-fits.
\\
\paragraph{Binding Affinity}
Binding affinity is a quantitative index used to measure the strength of molecular interactions, especially between a large protein molecule and a small ligand binding partner. The better binding between protein and ligand molecules the larger the binding affinity, which is measured by Kcal/mol. Binding affinity is influenced by non-covalent intermolecular interactions such as hydrogen bonding, hydrophobic, electrostatic interactions and Van der Waals forces between the molecules. In addition, binding affinity between a ligand and its target molecule may be affected by the presence of other molecules (which cannot be observed in our situation). \\
The measuring method of binding affinity is to measure the equilibrium dissociation constant $K_D$. Equilibrium dissociation constant is a specific type of equilibrium constant that measures the propensity of a larger object to separate (dissociate) reversibly into smaller components. The larger the equilibrium dissociation constant is, the smaller the absolute value of the binding affinity is, the easier the ligand is to separate from the large protein molecule, or the less likely the ligand is to bind with the large protein molecule; the smaller the equilibrium dissociation constant is, the larger the absolute value of the binding affinity is, the harder the ligand is to separate from the large protein molecule, or the more likely the ligand is to bind with the large protein molecule. For drug discovery, measuring binding affinity can help to rank order hits binding to the target and design drugs specifically for protein molecules.\\
By using Autodock Vina, we are able to calculate the binding affinity between the SARS-CoV-2 main protease (6LU7) and the drug ligands on computers and output the rank of molecules based on whether they are able to bind with the main protease. However, the binding affinity measured does not convey a specific or absolute value, but rather a comparative rank that only determines whether a molecule is better at binding with a protein molecule than another one. \\
However, there is still a method of comparing the drug molecules we generated to the molecules that already exist now and to molecules generated by other people. By retrieving the SMILES of drugs of other sources, we are able to convert them into $pdbqt$ format and do docking with the main protease of SARS-CoV-2 again on our device and compare with the drugs generated by our model.

The figure below is the docking pose of one generated ligand with 6LU7. The docking of ligands with protein receptors depends on properties of the ligand and the protein receptor, such as conformation, orientation, position, and energy. The graph below describes how the ligand bind with the protein In both pictures the protein (6LU7) is represented in blue.

The table below is the binding affinity of our generated molecules and existing drug molecules. Our molecules are named CFW. Others are those existing drugs' molecules. Our results shows significant improvement in effectiveness of inhibiting SARS-CoV-2019.
\begin{figure}[htbp]
\centering
\includegraphics[width=1.0\textwidth]{fig1.pdf}
\caption{The Docking pose of our molecule with SARS-CoV-2019 protein}
\label{Fig.main2}
\end{figure}

\begin{center}
\begin{tabular}{|p{0.33\columnwidth}|p{0.33\columnwidth}|p{0.33\columnwidth}|}
\hline
Name of the drug& SMILES& Binding Affinity\\
\hline
CFW-001 & C[C@@H]([C@@H](CC/C=C($\backslash$CC)/c\newline1c(ccc2c1/N=C$\backslash$C(=C(/[C@@H]1[C@\newline@]34[C@H]([C@H]13)[C@@H]4/C/1\newline=C(/[C@\newline H](/C=C/c3c(/C=C/O1)cccc3)O)\newline$\backslash$[C@H]2O)$\backslash$O)$\backslash$O)O/C(=C/[C@](N)(\newline Cc1ccccc1)CO)/O)CO)OC.O.O
& -11.9\\
\hline
CFW-002 & C/C/1=C/CCc2cccc(c2NC(=O)N2[C\newline@@H](C)C=C[C@H]3CNN(/C=C(/C\newline4=C[S]=C(/C=C$\backslash$C1)O4)$\backslash$CC[C@]\newline(C)(F)C[C@]1(CCC(=O)C(=O)\newline O1)O)C=C23)O
& -9.9\\
\hline
CFW-003 & C=C1c2cccc(c2)N2N[C@@H](C3=CC\newline=CO[C@H]3[C@@H]3C(=O)N1C(=O)\newline OC[C@@H](CC)C(=O)O[C@@H]1C\newline[C@@H]1NC3=O)N[C@H]2C
& -9.7\\
\hline
CFW-004 & CC1=C[C@]2(C=C1)Nc1sc(cc1[C@@\newline H](C)/C=C/C)NC(=O)[C@H]1[C@@H\newline]([C@H]([C@H](N(C(=O)N1Cc1cc(c(c\newline c1C)O2)C1CC1)Cc1cccc(c1)C(=O)NO)\newline Cc1ccccc1)O)O
& -9.6\\
\hline
CFW-005& C$\backslash$1(=C/C=C($\backslash$C(=O)Oc2ccc(C)cc2O[C\newline@H]2C[C@H]3C(=O)N[C@@H]([C@\newline H](CNNC(=O)[C@@H]1[C@H](C(=O\newline)N3C2)C1=CC=CC1)O)Cc1ccc2N[C@\newline@H](N)Nc2c1)/O)/C=C
& -9.4\\
\hline
CFW-006& C/C/1=C$\backslash$C=C$\backslash$2/C[C@@H](C\newline CC[C@H]3C[C@@H]4CCOCc\newline 5ccc(c(c5)C(=O)N[C@H](Cc5ccc(\newline cc5)S(=O)(=O)N4)COC(=O)N[C@@\newline H](C1=O)C(C)(C)C)[C@H](NC3=O)\newline CO)NS(=O)(=O)N2
& -9.3\\
\hline
CFW-007 & [C@@H]1(C[C@H]2C[C@@H]3CC4\newline=C[C@H](C2)[S]13(NC[C@]12CN(C)\newline C3=C(C[C@@H](CCCc5ccc(c(F)c5)[\newline C@H](N1)OC(=O)C(=O)OC)[C@@H]\newline3C4)O2)O)C=C
& -9.2\\
\hline
CFW-008 & [C@]12(C[C@@H]1CCCC[C@H]1C\newline CN(C(=O)N1NC(=O)C[C@@H](NC(\newline=O)N2)Cc1cccc(c1)NC(=O)C1=CN(N\newline C1)CC1CC1)c1ccc2c(c1)OCO2)C(\newline=O)NN
& -9.2\\
\hline
CFW-009 & c1(ccc2c(c1)N/C(=C/1$\backslash$CC=CC=C1)/\newline N1C3=C1[C@@H]1CCC[C@H]2C\newline N2CCN(CC(=O)[C@H]([C@@H](C3)\newline O1)NNO)C(=O)N2)OC & -9.1\\
\hline
CFW-010 & C$\backslash$1(=C/C2=C(CCc3ccccc3N3C=C/C(=\newline C/CC/C=C/O)/C(=O)[C@]3(n3cccc\newline13)O)SC[C@@H]1CO[C@H](NN21\newline)c1ccccc1)/CC(=O)O
& -9.0\\
\hline
CFW-011 & [C@H]1(NC(=O)C/C(=C$\backslash$NC=C2CC2\newline)/C=C(/COc2ccccc2[C@H](NC(=O)C[\newline C@H](NC1=O)CC1CCCCC1)CO)$\backslash$C=\newline C$\backslash$N1NCNC2=C1CNC2)C(C)C
& -9.0\\
\hline
CFW-012 & [C@@H]1(CC[C@H]2C[C@H](CC(=\newline C)C2)[C@H]2CN3CCN(C[C@@H]3C\newline(=O)[C@H]3[C@H]1CCC=C3C2(C)C)\newline Cc1cccc(c1)OC)C=C
& -8.9\\
\hline

\end{tabular}
\end{center}
\newpage

\begin{center}
\begin{tabular}{|p{0.33\columnwidth}|p{0.33\columnwidth}|p{0.33\columnwidth}|}
\hline
Name of the drug& SMILES& Binding Affinity\\
\hline

Remdesivir & CCC(CC)COC(=O)C(C)NP(=O)(OCC1\newline C(C(C(O1)(CN)C2=CC=C3N2N=CN=\newline C3N)O)O)OC4=CC=CC=C4
& -7.3\\
\hline
Ribavirin & CCC(CC)COC(=O)C(C)NP(=O)(OCC1\newline C(C(C(O1)(CN)C2=CC=C3N2N=CN=\newline C3N)O)O)OC4=CC=CC=C4
& -6.0\\
\hline
Arbidol/Umifenovir & CCOC(=O)C1=C(N(C2=CC(=C(C(=C2\newline
1)CN(C)C)O)Br)C)CSC3=CC=CC=C3 & -6.1\\
\hline
Favipiravir & C1=C(N=C(C(=O)N1)C(=O)N)F & -5.4\\
\hline
Lopinavir(isometric) & CC1=C(C(=CC=C1)C)OCC(=O)N[C@\newline
@H](CC2=CC=CC=C2)[C@H](C[C@H\newline
](CC3=CC=CC=C3)NC(=O)[C@H](C\newline
(C)C)N4CCCNC4=O)O & -8.0\\
\hline
Dexamethasone & CC1CC2C3CCC4=CC(=O)C=CC4(C3\newline
(C(CC2(C1(C(=O)CO)O)C)O)F)C & -6.8\\
\hline

\end{tabular}
\end{center}

\begin{figure}[htbp]
\centering
\includegraphics[width=1.0\textwidth]{fig2_1.pdf}
\caption{The 2D Structure of our generated molecules}
\label{Fig.main2}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[width=1.0\textwidth]{fig2_2.pdf}
\caption{The Balls-and-Sticks Structure of our generated molecules}
\label{Fig.main2}
\end{figure}
\newpage
\subsection{SwissADME Check}
SwissADME \cite{swissadme} is a website that enables the computational prediction of ADME properties, physiochemical descriptors, druglike nature and other parameters related to drug discovery. It is one of the most well-regarded software in the field of pharmacokinetics, and the research paper describing it has more than one thousand citations according to Microsoft Academic. In the context of our study, four parameters are of the greatest concern (in order of importance): the Brenk structural alert, Synthetic Accessibility, Bioavailability Score, and the PAINS alert. All other parameters, such as lipophilicity and water solubility, are less relevant in that they are covered by the above five or do not apply well to our problem.

The Brenk structural alert is a list of 105 molecule fragments identified to be putatively toxic, chemically reactive, metabolically unstable, or has other undesirable qualities by Brenk R. et al \cite{adme1}. This parameter is important because molecules that set off this alert has a higher risk of being toxic or in other ways unsuitable for drug use.

Synthetic accessibility (SA) is the estimated difficulty to generate a molecule in laboratory conditions. The lower the SA score, according to estimation, the easier it is to create this molecule, and the lower the costs of manufacturing drugs based on it.

The Bioavailability score, or Abbtt bioavailability, predicts the percentage of drug molecule that might reach the systemic circulation \cite{adme2}. More specifically, it is the probability that a compound will have above 10\% oral bioavailability in the rat. This metric matters because drugs with high bioavailability can achieve greater results with smaller doses, this influencing manufacturing costs.

The PAINS (pan assay interference compounds) alert, developed by Baell et al \cite{adme3}.,  indicates the presence of PAINS functional groups, such as  toxoflavin, isothiazolones, hydroxyphenyl hydrazones, and curcumin \cite{adme4}– parts of molecules that react nonspecifically with numerous targets instead of only the desired one, and frequently yield a false positive output.

\begin{center}
\begin{tabular}{|p{0.15\columnwidth}|p{0.15\columnwidth}|p{0.15\columnwidth}|p{0.15\columnwidth}|p{0.15\columnwidth}|p{0.15\columnwidth}|}
\hline
Name of the drug& Binding Affinity
& Brenk Structual Alert
& Synthetic Assessbility
& Bioavialability Score
 & PAINS
\\
\hline
CFW-001 & -11.9 & 2 alerts & 9.84 & 0.17 & 0 alerts\\
\hline
CFW-002 & -9.9 & 4 alerts & 8.61 & 0.17 & 0 alerts\\
\hline
CFW-003 & -9.7 & 2 alerts & 7.61 & 0.17 & 0 alerts\\
\hline
CFW-004 & -9.6 & 3 alerts & 9.43 & 0.17 & 0 alerts\\
\hline
CFW-005 & -9.4 & 1 alerts & 8.4 & 0.17 & 0 alerts\\
\hline
CFW-006 & -9.3 & 0 alerts & 10 & 0.17 & 0 alerts\\
\hline
CFW-007 & -9.2 & 3 alerts & 9.35 & 0.55 & 0 alerts\\
\hline
CFW-008 & -9.2 & 2 alerts & 7.34 & 0.17 & 0 alerts\\
\hline
CFW-009 & -9.1 & 1 alerts & 8 & 0.17 & 0 alerts\\
\hline
CFW-010 & -9.0 & 2 alerts & 7.11 & 0.17 & 0 alerts\\
\hline
CFW-011 & -9.0 & 0 alerts & 7.91 & 0.17 & 0 alerts\\
\hline
CFW-012 & -8.9 & 1 alerts & 6.79 & 0.17 & 0 alerts\\
\hline
Remdesivir & -7.3 & 1 alerts & 6.33 & 0.17 & 0 alerts\\
\hline
Ribavirin & -6.0 & 0 alerts & 3.89 & 0.55 & 0 alerts\\
\hline
Favipiravir & -5.4 & 0 alerts & 2.08 & 0.55 & 0 alerts\\
\hline
Lopinavir\newline(isometric)
 & -8.0 & 0 alerts & 5.67 & 0.55 & 0 alerts\\
\hline
Arbidol/\newline
Umifenovir
 & -6.1 & 0 alerts & 3.57 & 0.55 & 1 alerts\\
\hline
Dexamethasone
 & -6.8 & 0 alerts & 5.47 & 0.55 & 0 alerts\\
\hline
\end{tabular}
\end{center}

The table above is the results of SwissADME check. The analysis below provides detail explanation of each parameters.

SwissADME provides some valuable parameters that affect the quality of a drug molecule, whereas these parameters are not the primary focus of our study. While a drug that performs well in these parameters doubtless has its merits, and a drug that performs poorly has its drawbacks, we nevertheless deem binding affinity with the virus – the core factor that represents the upper limit of the drug's effectiveness. Due to these reasons, we do not directly incorporate ADME variables in our GCGVAE model, but instead merely add a size penalty to our GA (because large molecules generally have poor ADME performance).
\section{Conclusions}
According to our docking results with 6LU7, the crystal structure of SARS-CoV-2 main protease in complex with an inhibitor N3 \cite{6lu7}, the binding affinity of Remedsivir, Favipiravir, Arbidol \cite{remdesivir,other_drug}, and several widely tested and produced drugs that target to cure SARS-CoV-2 with 6LU7, is significantly less than the binding affinity of the drug that we generated using our model with 6LU7.
\\
Our model of generating drug molecules comes with less cost and is more reliable compared to traditional methods. Because our results can be easily stored and tested on ordinary computers using particular software, the cost of testing whether the drug molecules are effective is comparatively low. Also, because virtual screening is more stable than the traditional way of testing drugs since docking ligands of drug molecules using computers cannot be interfered by confounding variable that may take place in traditional labs, it guarantees the reliability of our result.
\\
Also, our model is not restricted to generating drugs inhibiting SARS-CoV-2. Unlike traditional methods of discovering drugs, which usually requires a specific and detailed analysis on the structure of the virus, the model we used is not restricted to a specific virus, which, in this case, is SARS-Cov-2. GCGVAE enables us to generate drugs correspondent to inhibit any virus if the structure of the main protease of the virus is entered into the model, which gives us high flexibility and capability in generating drugs targeted to cure viruses other than SARS-CoV-2 in the future.
\\
Another unique characteristic of our model is that it increases the variability of ordinary CGVAE. While employing CGVAE alone does not have high flexibility and novelty in generating output, which limits the output to a relatively small range, we employ a GA after the process of CGVAE by using an innovative method of crossover and mutation. This action enables our model to generate a more unique set of output than traditional CGVAE models and thus increase the number of drug structures to be tested.

 \bibliographystyle{unsrt}

redpajama_set_name: RedPajamaArXiv


To avoid the queues, it's best to avoid buying your ticket on weekday mornings See table above for when to buy or renew Season Tickets You may also be able to buy your tickets over the telephone or internet from the appropriate Train Company .... Take advantage of a free monthly season ticket when you set up auto renewal with South Western Railway. Simply buy 11 monthly season tickets in succession and you will get the 12th free exclusively available on the South Western Railway Touch Smartcard, purchased online here.
Check if you can apply online now – it takes less than a minute. Apply as a family group You can apply to renew your children's passports online at the same time as you renew your own, this means you can submit and pay for the applications as a family group.... To avoid the queues, it's best to avoid buying your ticket on weekday mornings See table above for when to buy or renew Season Tickets You may also be able to buy your tickets over the telephone or internet from the appropriate Train Company .
Apply or renew online Residents can renew or apply for a parking permit online through a self-managed digital portal. Once you have created an account, you can instantly apply for permits, easily update your details and make payments.... UTS on mobile app is an Indian Railways official android mobile ticketing app to book unreserved train tickets. Who can use utsonmobile application?
Railcards offer value for money if you travel by train, saving you at least 1/3 on most rail fares. You must carry your Railcard with you at all times during the journey in order to qualify for the discount... All NPWS annual passes and the NPWS Exemption Card are valid for a maximum of four hours per calendar day in the Chowder Bay Precinct of Sydney Harbour National Park. You need to buy a ticket from the machines to top up your length of stay if you plan to visit for a longer period.
ICICI bank's tie-up with IRCTC enables you to buy tickets online without having to visit the reservation centre. Buy your train ticket online and pay using your ICICI Bank Internet Banking account.
Information on how to apply for a disabled person's bus pass, and special conditions for use on trams and trains.
All NPWS annual passes and the NPWS Exemption Card are valid for a maximum of four hours per calendar day in the Chowder Bay Precinct of Sydney Harbour National Park. You need to buy a ticket from the machines to top up your length of stay if you plan to visit for a longer period.
If you take 3 or 4 scenic train rides, as well as use the pass on one or more of the famous cable cars such as Schilthorn (fully covered by the pass) or 25% off the mountain train up to Jungfraujoch, the pass is definitely worth it.


Dr. Grigg, MD is a practicing Anesthesiologist in Kettering, OH. Dr. Grigg graduated from Indiana University School of Medicine Bloomington in 1985. Dr. Grigg accepts multiple insurance plans including Multiplan.


Description: A small 4-part (SATB) chamber choir with a wide repertoire ranging from early church music and madrigals through to modern music and excerpts from popular shows.
Information for prospective new members: We have been around the Telford area now since 1994 and are a small group of experienced singers and musicians who would welcome new members in all sections. Please take a look at our website.


text:
MSP POLICY WINS
PAID ACT - 12/11/20
SMART ACT - 1/10/13
PAID Act Implementation
Section 111 Penalties
Ongoing Responsibility for Medicals (ORM)
Treasury Offset Program (TOP)
Future Medicals in Liability Cases
New Medicare Secondary Payer Legislation - A Win For Beneficiaries And The Medicare Trust Fund
For years, the Medicare Secondary Payer (MSP) process has frustrated the ability of Medicare beneficiaries and companies to resolve disputed claims. Whether the disputes have involved workers compensation claims, general tort claims, or no-fault claims (such as auto insurance), settlements have been delayed, if not prevented, due to the uncertainties of how much was owed to Medicare for its payments on behalf of a beneficiary for treating the injury that was the subject of the claim. The problem was a classic "chicken-egg" dilemma: Medicare took the view (and not unrightly so) that until disputing parties settled a claim it was not "secondary". Thus, Medicare could not calculate the amount owed, while parties could not settle without knowing how and with how much to resolve their undefined Medicare liabilities.
The problem has become more acute since 2008, when Congress amended the MSP statute to require insurers and self-insureds to report to Medicare every settlement involving a beneficiary or face a strict liability penalty of $1,000 per day per claim. As concerns grew, many began walking away from the settlement table altogether – beneficiaries and the claimants' bar who were no longer willing to navigate the complexities of a dense bureaucracy, and defendants who could no longer settle with a residual undefined contingent exposure. Ironically, the bureaucracy and complex system harmed the very entity MSP was intended to benefit – the Medicare Trust Fund; if cases do not settle, funds are not available to reimburse Medicare.
Fortunately, relief is on the horizon. On March 14, 2011, Congressman Tim Murphy (R-Pa) and Congressman Ron Kind (D-Wi) introduced bipartisan legislation to remedy these, and several other, aspects of the broken MSP system. Under this novel legislation, called the Strengthening Medicare and Repaying Taxpayers (SMART) Act, H.R. 1063, Medicare will be authorized to provide timely notice of MSP obligations to settling parties before settlement, thus facilitating quick and efficient resolution of claims. More specifically, the government will have to provide the "conditional payment" amount within 65 days of a request, so that parties can settle their cases and account for the MSP repayment. By creating this "fast track" MSP process, the legislation will remove much of the uncertainty and complexity of settling workers compensation and other cases.
The SMART Act, supported by a coalition known as "MARC," fixes a number of other MSP problems as well. For example, it will eliminate the use of social security numbers in the MSP "Section 111" reporting process and create enforcement discretion around reporting penalties, it will give all parties to the settlement a right of appeal on Medicare determinations, it will finally designate a clear statute of limitations for MSP claims, and it will implement a system exempting from MSP compliance those cases where the government's recovery costs will exceed the expected MSP recovery – thus saving taxpayers money and allowing small dollar settlements to be more easily resolved. The legislation will not only save taxpayers dollars, but it will also allow the Medicare Trust Fund to receive additional revenue faster than today's system.
While the SMART Act has received acclaim from all quarters, one writer has suggested that the effect of the bill will be to cut conditional payments because parties will be able to settle cases more effectively. While lawyers may wish to debate the philosophy of whether the workers compensation system works today, that has nothing to do with the reality that MSP today is creating problems for all. Everyone agrees that today's bureaucracy is creating a lose-lose-lose – for beneficiaries, companies, and the Trust Fund. The SMART Act's solution will reverse that harm and create a functional system that works for all.
For more information on the SMART Act, go to www.marccoalition.com. Readers can support the SMART Act by writing your Members of Congress and urging them to co-sponsor this important legislation. Click on the MARC Advocacy Corner on www.marccoalition.com and send your letter of support today!
new-medicare-secondary-payer-legislation.pdf
MARC COALITION

redpajama_set_name: RedPajamaCommonCrawl


text:
Immediate preparations needed for health staff and facilities to deal with Covid-19 - Louise O'Reilly TD
11 March, 2020 - by Louise O'Reilly TD
Speaking this afternoon Sinn Féin health spokesperson Deputy Louise O'Reilly has called on the caretaker government and the HSE to ensure that hospitals have the necessary rest and shower facilities for staff, as well as ensuring doctors and nurses from other specialities are being trained up to deal with Covid-19.
Teachta O'Reilly said:
"It is very important that doctors and nurses from other specialities are being trained up in dealing with respiratory illness, as well as given infectious disease training, ICU training, and Personnel Protective Equipment training in the event that they are needed to help deal with an increase in Covid-19.
"Many frontline medical professionals have reached out to me on this matter to ask that training is done now when we are at the early stages of the spread of the virus.
"Furthermore, the government needs to ensure that we have the necessary rest and shower facilities for healthcare workers.
"If we follow the same trajectory of other continental European countries, then our health service staff will be working long and difficult shifts – it is essential that they have facilities to clean, wash and rest between shifts.
"The government need to be cognisant that any planning for school closures will need to factor in that the children of medical professionals will need to be looked after so their parents can work at the front line.
"Finally, I would also call on the HSE and the caretaker government to ensure that hospitals and medical professionals are given clear, concise, and definitive direction as to what is expected from them by way of preparation and internal deployment over the coming days.
"I have written to the caretaker Minister for Health on these matters and I would hope that there will be action on them very quickly."


text:
Watch The Blacklist HD free TV Show | TV Shows & Movies
ON AIR TV
Episode :
• 360p
• Auto
Favorite Comment
Stream in HD Download in HD Watchlist
Rating (1007)
Raymond "Red" Reddington, one of the FBI's most wanted fugitives, surrenders in person at FBI Headquarters in Washington, D.C. He claims that he and the FBI have the same interests: bringing down dangerous criminals and terrorists. In the last two decades, he's made a list of criminals and terrorists that matter the most but the FBI cannot find because it does not know they exist. Reddington calls this "The Blacklist". Reddington will co-operate, but insists that he will speak only to Elizabeth Keen, a rookie FBI profiler.
Genre: Drama, Crime, Mystery
Networks: NBC
Alternative Titles: A Lista Negra, The Blacklist, The Blacklist, Черный список, Karaliste, 諜海黑名單
Season : 0
TV Show Schedule
Copyright © stream-onlinetv.com. All Rights Reserved
You should be logged in to use this feature
Wrong Username or Password
We're sorry, currently our movie video library can only be streamed or downloaded by members only. Please login or Sign Up For free now to access video library.


Has your home has been targeted by thieves in the past or you're afraid that it might become a potential target? Or maybe you have manual gates at the moment and simply can't be bothered to keep getting in and out of the door to open and close them. If either applies, electric driveway gates could be the way forward.
• Whether you would prefer wrought iron gates which tend to be cheaper and are aesthetically appealing, or wooden gates which offer a higher level of privacy.
• What type of motor you would like to operate the gates. Various options are available including underground motors, sliding gate motors and above ground motors. The latter use either an articulated arm or RAM will win out could be an alternative option.
• Which type of entry system would work best for you. Maybe you want to hear your visitor's voice before opening the door or perhaps you would prefer a video-operated intercom so you know exactly who is coming in and out of your electric driveway gates.
BFT crafted driveway gates are available in various materials and designs to meet individual preferences in level of security and taste. GateQuote will put you in touch with a certified local installer to help you find the right driveway gates.
Our experts will also help you choose which electric gates best suited to your specific needs and will only recommended reputable installers in your local area.
Contact us today for more information on electric driveway gates and receive a free no-obligation quote.


text:
Low hanging fruit
© flickr photo by Chris Hunkeler shared under a Creative Commons (BY-SA) license
In order to contain and rationalise antibiotic use, antibiotic policy guidelines were introduced in the hospital at various times during the period 2002 to 2010.
The time segments during which these were initiated are mentioned below:
Segment 1: July 2002 to February 2004 - This period was before the 2005 policy guidelines were introduced.
Segment 2: March 2004 to December 2005 - The Antibiotic Policy Committee met weekly from March 2004 with pharmacy, microbiology and clinical departments, and initiated preparation for guidelines. Guidelines were finalised and widely distributed from January 2005 as a small booklet.
Segment 3: January 2006 to December 2008 - There was no active guideline dissemination during this period.
Segment 4: January 2009 to December 2010 - Guidelines were revised, published and disseminated as a booklet from January 2009 onwards till December 2010. Unlike Segment 2, there was no preparatory phase with clinical departments.
As you can see from Dr Chandy's graph the introduction of policy guidelines in Segment 2 and 4 contained the rising antibiotic use but did not effectively reverse the upward trend
Consider the following questions:
What was the essential difference between guidelines introduced in Segment 2 and Segment 4?
Why do you think the guidelines introduced did not effectively reverse the upward trend?
How could the guidelines have been improved upon for more effectiveness?
Could any other strategy have been employed to supplement the effect of guidelines?
You may wish to post your answers in the comments section below.,
© UoD and BSAC
Antimicrobial Stewardship: Managing Antibiotic Resistance
End-of-Life Care for People with Dementia
Understand the needs of people with dementia, and how to better support them and enhance their wellbeing towards the end of life.
Dysphagia: Swallowing Difficulties and Medicines
This course will enhance the knowledge of any person involved in the administration of medicines to patients with dysphagia.
TARGET Antibiotics – Prescribing in Primary Care
Helping primary care professionals to target the use of antibiotics to reduce antimicrobial resistance
Antimicrobial & Antibiotic Resistance


Maud teaches Asana, Pranayama and Meditation to allow people to feel connected to their essence. With a lifelong passion for movement, she interested in the physical practice of Yoga and the effect of Asana and Pranayama on the body, mind and movement of energies. She also practises Transcendental Meditation, and firmly believes in its healing and transformative power. Maud first trained in Iyengar Yoga in Paris with Alex Onfroy (2010-2012) before relocating to Melbourne and completing her 200hr YTT certification in Vinyasa Yoga at Power Living Australia (2014), with internationally acclaimed teachers Cassie Lee and Chris Wilson. Maud is constantly learning from her students, her teachers and her own body. Her teaching is continuously influenced by Modern Yogis like Rod Stryker, Meghan Currie, Dice Iida-Klein as well as Iyengar Yoga Master Usha Devi.


You can join in person at the winery, online, or by calling us at (231) 223-9303 ext. 3.
There is no charge to join. We will keep your credit card information on file and you will be charged twice a year for your shipment when it goes out. Prices for each Club are listed here.
How often do we receive shipments?
Wine Club shipments go out twice a year, in mid to late April and mid November.
Yes. Please call us at (231) 223-9303 ext. 3. if you wish to do so.
Where can you ship wine to?
We can ship wine within Michigan, and also to Indiana, Ohio, Illinois, Missouri, Minnesota, Wisconsin, California, Texas, New York, North Carolina, Virginia, Washington D.C., and Florida.
How do you communicate with me about my Wine Club?
All communication about your membership is conducted via email. Please make sure we have your correct email address on file as this is how we notify we you about upcoming orders, charges, shipping dates, and more. Please visit this page, Manage Membership, or contact our Wine Club Manager to ensure we have your correct contact information on file.
As membership benefits begin immediately (including free tastings, discounts, etc), members wishing to cancel their membership before their first shipment will be charged a $50 cancellation fee. Shipments processed prior to the cancellation date are nonrefundable, even if not yet received. Once the membership is cancelled, all membership benefits will end.
After you receive your first shipment you may cancel at any time with no cancellation fees by calling (231) 223-9303 ext 3 or emailing us.
Can I choose what wines I would like in my shipment?
In our Select Club you may choose the wines you would like from a list of available wines at the time of the Wine Club shipment. In our Reserve, Cask, Barrel or Vineyard Clubs, we do not accept substitions or custom orders. Wine Club shipments are chosen based on availability and release dates. Shipments often include sold out and pre-released wines.
What is my discount off wine purchases?
What if I can't be home for the delivery - can you ship to my place of work?
Yes. If possible, Brys Estate recommends shipping to a business address for prompt delivery. Club orders may also be sent to a FedEx Office retail store or Walgreens Onsite location for convenient pickup. FedEx cannot deliver wine to PO boxes nor will FedEx leave packages on the doorstop, even if the recipient has left a note with this request. All shipments must be signed for by someone 21 years or older.
What happens if I miss the delivery and the package is returned to the winery?
FedEx will attempt to deliver the package three times. After the third failed attempt the order will be returned to the winery. You have the option to have the package held for pick up or reshipped for an additional fee.
What do I do if I need to reroute the package after it has already been sent?
Once your order has been processed and a change of address is required while in route, a reroute charge of $20.00 will be applied to the order. There is no charge to reroute a shipment to a local FedEx Office or Walgreens Onsite. Please contact FedEx or our Wine Club Manager for assistance in rerouting your order.
What happens if I am charged for the wine but I don't want it?
If you wish to cancel your membership and not receive the order, please contact us prior to us charging your account. Shipments processed prior to the cancellation date are nonrefundable, even if not yet received.
Can I switch from a Pickup Member to a Shipping Member?
Yes. If you need to change your Wine Club order preference from pickup to shipping, or vice versa, please contact the Wine Club Manager before your order is charged.
For a detailed policy of shipping and refunds, please click here.
For additional questions please contact our Wine Club Manager, Tess Williams at 231-223-9303 ext 3. or via email.


Note: If your application receives an exception when committing a transaction, it does not always mean that the transaction failed. You can receive Timeout, TransactionFailedError, or InternalError exceptions in cases where transactions have been committed and eventually will be applied successfully. Whenever possible, make your Cloud Datastore transactions idempotent so that if you repeat a transaction, the end result will be the same.
An application can execute a set of statements and data store operations in a single transaction, such that if any statement or operation raises an exception, none of the Cloud Datastore operations in the set are applied. The application defines the actions to perform in the transaction using a Python function. The application starts the transaction using one of the run_in_transaction methods, depending on whether the transaction accesses entities within a single entity group or whether the transaction is a cross-group transaction.
db.run_in_transaction() takes the function object, and positional and keyword arguments to pass to the function. If the function returns a value, db.run_in_transaction() returns that value.
If the function returns, the transaction is committed, and all effects of Cloud Datastore operations are applied. If the function raises an exception, the transaction is "rolled back," and the effects are not applied. See the note above about exceptions.
When one transaction function is called from within another transaction, @db.transactional and db.run_in_transaction() have different default behavior. @db.transactional will allow this, and the inner transaction becomes the same transaction as the outer transaction. Calling db.run_in_transaction() attempts to "nest" another transaction within the existing transaction; but this behavior is not yet supported, and it raises db.BadRequestError. You can specify other behavior; see the function reference on transaction options for details.
Cross-group transactions, which operate across multiple entity groups, behave like single-group transactions, but don't fail if code tries to update entities from more than one entity group. To invoke a cross-group transaction, use transaction options.
All other Python code is allowed inside a transaction function. You can determine if the current scope is nested in a transaction function using db.is_in_transaction(). The transaction function should not have side effects other than the Cloud Datastore operations. The transaction function can be called multiple times if a Cloud Datastore operation fails due to another user updating entities in the entity group at the same time. When this happens, the Cloud Datastore API retries the transaction a fixed number of times. If they all fail, db.run_in_transaction() raises a TransactionFailedError. You can adjust the number of times the transaction is retried using db.run_in_transaction_custom_retries() instead of db.run_in_transaction().
Similarly, the transaction function should not have side effects that depend on the success of the transaction, unless the code that calls the transaction function knows to undo those effects. For example, if the transaction stores a new Cloud Datastore entity, saves the created entity's ID for later use, then the transaction fails, the saved ID does not refer to the intended entity because the entity's creation was rolled back. The calling code would have to be careful not to use the saved ID in this case.
This requires a transaction because the value might be updated by another user after this code fetches the object, but before it saves the modified object. Without a transaction, the user's request uses the value of count prior to the other user's update, and the save overwrites the new value. With a transaction, the application is told about the other user's update. If the entity is updated during the transaction, then the transaction is retried until all steps are completed without interruption.
As before, a transaction is necessary to handle the case where another user is attempting to create or update an entity with the same string ID. Without a transaction, if the entity does not exist and two users attempt to create it, the second overwrites the first without knowing that it happened. With a transaction, the second attempt retries, notices that the entity now exists, and updates the entity instead.
Get-or-create is so useful that there is a built-in method for it: Model.get_or_insert() takes a key name, an optional parent, and arguments to pass to the model constructor if an entity of that name and path does not exist. The get attempt and the create happen in one transaction, so (if the transaction is successful) the method always returns a model instance that represents an actual entity.
"""An Account has a Customer as its parent."""
"""Returns a consistent view of the current user's accounts."""
You can enqueue a task as part of a Cloud Datastore transaction, so that the task is only enqueued if the transaction is committed successfully. If the transaction does not get committed, the task is not enqueued. If the transaction does get committed, the task is enqueued. Once enqueued, the task will not execute immediately, so the task is not atomic with the transaction. Still, once enqueued, the task will retry until it succeeds. This applies to any task enqueued during a run_in_transaction() function.
Transactional tasks are useful because they allow you to combine non-Cloud Datastore actions to a transaction that depends on the transaction succeeding (such as sending an email to confirm a purchase). You can also tie Cloud Datastore actions to the transaction, such as to commit changes to entity groups outside of the transaction if and only if the transaction succeeds.


You know you want the best Paramus childcare provider. You may even look throughout Bergen county. ChildCareAvenue provides you with a list of 12 daycare centers in Paramus, New Jersey. We leave the research up to you to find which center is best for your family.


Dr. O'Connor's store features child psychology related products for parents, families, children and helping professionals. Many of you may not feel that a child psychology consultation or assessment is needed. Instead you are looking for information to help you address a child psychology related concern.
If you have received an assessment or consultation or your child is in therapy you may be searching for books or resources to increase your understanding of the child problem at issue for you, and how to help.


text:
<!doctype html>

    <title>Code coverage report for bin/theory.navigate.js</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="../prettify.css" />
    <link rel="stylesheet" href="../base.css" />
    <meta name="viewport" content="width=device-width, initial-scale=1">

      all files / bin/ theory.navigate.js

        66.89%
        Statements
        99/148

        68.91%
        Branches
        82/119

        61.29%
        Functions
        19/31

        67.38%
        Lines
        95/141

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436

1×

1×

1×

6×

7×

2×
2×
1×
1×
1×
1×
1×
1×

2×
2×
1×

2×

9×
9×
9×

9×
9×
9×
9×
9×

12×
12×
12×
12×

12×
7×
7×

5×
5×
5×
15×
11×

12×

5×

7×
10×
10×
10×
3×
3×

7×

4×
4×
7×

4×

1×
2×
2×
2×

2×

1×

8×

8×
3×

3×
3×

5×
2×

2×
2×

2×

3×
1×

1×
1×

1×
1×
5×

2×

2×
1×
1×

1×
1×
1×
1×
1×
1×

1×

1×
3×

1×

4×

1×

4×

1×

1×

1×
6×

1×
"use strict";

Iif ( typeof theory === 'undefined' ) {
  throw new Error('You must load theory.js first.');
}

/*
 * Theory's navigate handling -- allows for navigation around object structures
 * in a similar way to jQuery.
 *
 * @module theory
 * @class t.navigate
 */
t.internal.navigate = t.creator({

  theory: {
    prep: function(){
      this.shared.empty = this.create();
    },
    requirements: [
      function needIsJs(){ return typeof is != 'undefined' || new Error('This code requires is.js to be included.'); }
    ]
  },

  /*
   * .shared is reserved for attributes that require a shared instance
   * between instances of t.navigate(). By default methods are already shared.
   */
  shared: {
    simpleSelector: /^[a-z0-9 _.-]+$|^\*$/i,
    lispSelector: /^\(\$\w+/i,
    segmentedSelector: /\//,
    endsWithSelector: /(^[^\/]+\$$)|(^\*[^\/]+$)/,
    startsWithSelector: /(^\^[^\/]+$)|(^[^\/]+\*$)/,
    empty: null
  },

  /*
   * .i is reserved for internal data that is unique to this instance
   */
  i: {
    hasChildren: function(target){
      for ( var i in target ) {
        return true;
      }
      return false;
    },
    children: function(target, filter){
      return (is.literalObject(target) && Object.values(target, filter)) || [];
    },
    hasParent: function(target){
      return !!(target && target.parent);
    },
    parent: function(target, filter){
      if ( target.parent ) {
        if ( target.parent.call ) {
          return [target.parent()];
        }
        else {
          return [target.parent];
        }
      }
      return [];
    },
    needsResolving: function(target){
      return false;
    },
    resolve: function(target){
      /// @TODO: theory needs to utilise Promises
      return t.promise().resolve(target);
    }
  },

  /*
   * Return a new configuration of t.navigate().
   * This can be used to create a version that operates slightly differently.
   *
   * @TODO: this should be handled using t.creator.namespace
   */
  configuration: function(config){
    var obj = this.create();
    if ( config ) {
      config.hasChildren    && (obj.i.hasChildren    = config.hasChildren);
      config.children       && (obj.i.children       = config.children);
      config.hasParent      && (obj.i.hasParent      = config.hasParent);
      config.parent         && (obj.i.parent         = config.parent);
      config.needsResolving && (obj.i.needsResolving = config.needsResolving);
      config.resolve        && (obj.i.resolve        = config.resolve);
    }
    var caller = function(){ return obj.create.apply(obj, arguments); };
        caller.configuration = function(){
          return obj.configuration.apply(obj, arguments);
        };
    return caller;
  },

  /*
   * Create a new instance of `t.navigate()`
   *
   * @static
   * @method t.navigate.create
   * @param target {Object} The target object to navigate
   * @param [options] {Object} Configuration options
   * @param [options.parents] {Boolean} Enable automatic `t.navigate.applyParents` to target
   * @return {Object} an instance of `t.navigate`
   * @chainable
   */
  create: function(target, options){
    var ret = this.prep.apply(Object.create(this), arguments);
    ret.i.memories = Object.create(this.i.memories || {});
    return ret;
  },

  /*
   * Prep the new instance with references unique only to this instance.
   * leave everything else shared. This is automatically called by `.create()`
   *
   * @method prep
   * @param {Object} target
   * @param {Object} [options]
   * @return {Object} an instance of `t.navigate`
   * @chainable
   */
  prep: function(target, options){
    this.i = Object.create(this.i);
    this.i.targets = [];
    target && options && options.parents && (target = this.applyParents(target));
    target && (this.i.targets.push(target));
    return this;
  },

  /*
   * Recursively step an object structure and apply parent references
   * This is rather awkward when it comes to plain JS Objects, however,
   * for other data structures that already have parent references -- this
   * step won't be required -- .parent() will just work.
   *
   * @static
   * @method t.navigate.applyParents
   * @param obj {Object} The object to apply the parents to.
   * @param [maxDepth=100] {Number} To avoid possible circular loops.
   * @param [depth=0] {Number} Internal parameter to keep track of recursion depth.
   * @param [parent] {Function} Internal parameter for passing on the parent ref to recursed children.
   * @return {Object} the original object that was passed in (unless it was a primitive, in which case `t.promotePrimitive(obj)` is returned instead.
   */
  applyParents: function(obj, maxDepth, depth, parent){
    if ( !depth ) depth = 0;
    if ( !maxDepth ) maxDepth = 100; /// just in case
    Iif ( depth > maxDepth ) return obj;
    Iif ( !obj || obj.parent ) return obj;
    /// support being called directly with a primative
    if ( is.primitive(obj) ) {
      obj = t.promotePrimitive(obj);
      parent && (obj.parent = parent);
    }
    else {
      parent && (obj.parent = parent);
      var key, ref = this.createParentRef(obj);
      for ( key in obj ) {
        if ( key !== 'parent' && (!Object.prototype.hasOwnProperty || Object.prototype.hasOwnProperty.call(obj, key)) ) {
          obj[key] = this.applyParents(obj[key], maxDepth, depth + 1, ref);
        }
      }
    }
    return obj;
  },

  /*
   * Keep references to parents in closures to keep data exports clean
   *
   * @TODO: upgrade this to using Symbols with ES6
   */
  createParentRef: function(parent){
    return function(){return parent;};
  },

  /*
   * Similar to jQuery's pushStack -- allows the addition of new targets
   *
   * @method pushStack
   * @param {Array} items
   * @return {Object} the current instance of `t.navigate`
   * @chainable
   */
  pushStack: function(items){
    for ( var i=0, a=items, l=a.length, item; i<l; i++ ) {
      Eif ( (item=a[i]) ) {
        this.i.targets.push(item);
        if ( this.i.needsResolving(item) ) {
          if ( !this.i.resolving ) { this.i.resolving = []; }
          this.i.resolving[i] = this.i.resolve(item);
        }
      }
    }
    return this;
  },

  /*
   * Navigate an object's children, that are found using the
   * internal children function. This defaults to looking for
   * an array under the key of "children".
   *
   * @example
   *
   * #### Simple usage:
   *
   *     t.navigate({children:[{a:1}, {b:2}, {c:3}]).children();
   *
   * #### Filter callback example:
   *
   *     t.navigate({children:[{a:1}, {b:2}, {c:3}]).children(function(key, val){
   *       return !!val.a;
   *     });
   *
   * @method children
   * @param {Array|String|Function} filter Filter in the children that will be matched, using either a string selector, a callback function or an array of either.
   * @return {Object} a new instance of `t.navigate`, containing matched children
   * @chainable
   */
  children: function(filter){
    var ret = this.create();
    for ( var i=0, a=this.i.targets, l=a.length; i<l; i++ ) {
      ret.pushStack( this.i.children(a[i], filter) );
    };
    return ret;
  },

  /*
   * Treat an object's keyed items as children. It will only navigate
   * down inside items that are objects.
   */
  each: function(callback){
    for ( var i=0, a=this.i.targets, l=a.length, item; i<l; i++ ) {
      item = a[i];
      Eif ( item && item.original ) { /// @TODO: is this a good idea?
        item = item.original;
      }
      callback && callback.call && callback.call(this, item, i);
    };
    return this;
  },

  /*
   * Remember a state accessible to all derived navigate objects
   */
  rem: function(name){
    name = name || 'default';
    this.i.memories[name] = this;
    return this;
  },

  /*
   * Recall a remembered state
   */
  rec: function(name){
    name = name || 'default';
    if ( this.i.memories && this.i.memories[name] ) {
      return this.i.memories[name];
    }
    else {
      return null;
    }
  },

  /*
   * From the current selection, move up the object structure
   *
   * @NOTE: This can only work if the object structure you are navigating
   * has a reference stored back up to the parent.
   */
  parent: function(filter){
    var ret = this.create();
    for ( var i=0, a=this.i.targets, l=a.length; i<l; i++ ) {
      ret.pushStack( this.i.parent(a[i], filter) );
    };
    return ret;
  },

  /*
   * List out the keys per each selected/targeted object
   */
  getKeys: function(){
    var ret = [];
    for ( var i=0, a=this.i.targets, l=a.length; i<l; i++ ) {
      ret = ret.concat(Object.keys(a[i]));
    };
    return ret;
  },

  /*
   * This method expects a selector in Object Path Notation.
   */
  select: function(opn, hint){
    var ret = this.shared.empty; /// @TODO: Should this.shared.empty be cloned?
    /// support for opn segments passed directly
    if ( is.literalObject( opn ) && opn.type ) {
      switch ( opn.type ) {
        case 'segment':
          ret = this.select(opn.string, opn);
        break;
      }
    }
    /// support for simple keyword selects
    else if ( opn === '' || this.shared.simpleSelector.test(opn) ) {
      switch ( opn ) {
        /// the "you didn't mean to end with slash" selector
        case '':
          return this;
        break;
        /// wildcard filter
        case '*':
          ret = this.children();
        break;
        /// parent filter
        case '..':
          ret = this.parent();
        break;
        /// otherwise assume child filter
        default:
          ret = this.children(opn);
        break;
      }
      return ret;
    }
    /// support for partial selectors, these aren't handled by OPN
    /// and so should be detected by the navigation code.
    else if ( this.shared.startsWithSelector.test(opn) ) {
      Iif ( opn.indexOf('*') !== -1 ) {
        opn = opn.substring(0, opn.length-1);
      }
      else Eif ( opn.charAt(0) === '^' ) {
        opn = opn.substring(1, opn.length);
      }
      else {
        opn = null;
      }
      Eif ( opn ) {
        return this.children(function(key, val){
          return key.indexOf(opn) === 0;
        });
      }
    }
    /// support for partial selectors, these aren't handled by OPN
    /// and so should be detected by the navigation code.
    else Iif ( this.shared.endsWithSelector.test(opn) ) {
      if ( opn.charAt(0) === '*' ) {
        opn = opn.substring(1, opn.length);
      }
      else if ( opn.indexOf('$') !== -1 ) { /// @TODO: should be more accurate
        opn = opn.substring(0, opn.length-1);
      }
      else {
        opn = null;
      }
      if ( opn ) {
        return this.children(function(key, val){
          return key.indexOf(opn) === 0;
        });
      }
    }
    /// support for functional selectors like ($keyContains ...)
    /// @TODO: Currently t.string() doesn't support the ability to describe
    /// a child group when there is no division. This means that ($key) can
    /// not be fully parsed down to (, $key, ) -- whereas ($key ...) is fine
    /// because it has a " " divider. For now lisp selectors will always
    /// require an argument -- which is likely to be the operational case
    /// anyway.
    else if ( this.shared.lispSelector.test(opn) ) {
      var name, func, args, kids = t.step(hint, 'children', 0, 'children', 0);
      switch ( kids.type ) {
        case 'spaces':
          Eif ( (args = kids && kids.children) ) {
            name = t.opn.wrap(args.shift()).string();
            func = t.step(t.internal.object, 'selectors', name);
            Eif ( func ) {
              args = t.opn.wrap(args).strings();
              return func.apply(this, args);
            }
            else {
              return t.error(Error('Unknown selector function ' + name));
            }
          }
        break;
      }
    }
    else {
      var notation = t.opn(opn),
          segments = notation.segments(),
          head = this,
          segment
      ;
      while ( +head && (segment=segments.next()) ) {
        head = head.select( segment );
      }
      ret = head;
    }
    return ret;
  },

  get: function(){
    return this.i.targets;
  },

  /*
   * Simple little hack to allow this object to existence check with a simple number cast
   */
  valueOf: function(){
    return this.i.targets.length ? 1 : 0;
  }

  /// @TODO: map would be useful!

});

/*
 * Set up some object selectors to improve t.object().select() support
 */
t.internal.object.selectors['$wildcardKey'] = t.method({
  method: function(){
    console.log(this, arguments);
  }
});

/*
 * Filter children based on a "contains" partial key.
 */
t.internal.object.selectors['$keyContains'] = t.method({
  method: function(filter){
    return this.children(function(key, val){
      return key.indexOf(filter) !== -1;
    });
  }
});

/// one instance that navigates normal objects
t.object.navigate = t.navigate = t.internal.navigate.configuration();

  Code coverage
  generated by istanbul at Wed Dec 09 2015 15:46:16 GMT+0000 (GMT)

redpajama_set_name: RedPajamaGithub


text:
Load the Game
Valve is the company of choice for most game developers according to survey
Egon Kilin
To say Valve is one of the most well-known and respected companies in the industry would be an understatement, but to say that game developers would rather work for them than any other company isn't something that everybody will agree on. However, a survey conducted by the Independent Game Developers Association reveals that this is indeed the case. The survey asked more than 2200 devs about their game publishers and developers of choice, and Valve managed to rank even higher than "my own company". One would think that independent devs would rather work for themselves than anyone else, but it seems this isn't the case for everyone. The top 10 most sought after companies are:
1. Valve
2. My own company
3. Activision Blizzard
4. BioWare
5. Ubisoft
6. Current employer
8. Naughty Dog
9. Double Fine
10. Bethesda Game Studios
I'm a bit surprised that Bethesda only came in 10th place, but everything else seems about right. Valve is an independent developer's dream because the privately-owned company isn't too big on having bosses and managers breathing down your neck. Instead, they use a system that lets employees work on multiple projects with little interference from higher-ups. The company developed several highly acclaimed titles using this system so it's obviously working pretty well. Some of their games include: Half-Life, Counter-Strike, Team Fortress, Portal, Left 4 Dead, and Dota 2. The company is also responsible for arguably the most popular software distribution platform in the industry, Steam. Valve is also known for their Source engine, which was pretty revolutionary when it first came out back in 2004. With a background like that it's not surprising that many developers would like to be part of their team.
The company is generally pretty tight-lipped in regards to their upcoming projects, but rumor has it that the Source 2 engine was already "soft released" earlier this month when the Workshop Tools Alpha were added to Dota 2. This has lead many to believe that Half-Life 3 might be more than just a myth and will in fact be the first game to be developed using the new engine. However, Valve hasn't confirmed anything yet so this is just speculation for now.
Categories: NEWS, PC, TRENDING GAME NEWS
Tags: Counter-Strike, developers, Dota 2, Half Life 3, Independent Game Developers Association, Left 4 Dead, Portal, Source 2, Source engine, Steam, survey, Team Fortress, Valve
Heroes of the Storm enters next Alpha phase soon
Call of Duty: Advanced Warfare - List of Achievements revealed
Nintendo reports First Annual Profit since 2011
Far Cry 4's latest trailer presents us the Lowlands
Asus ROG GR8: A light and powerful console-PC
« Assassin's Creed Rogue might be one of the last Xbox 360/PS3 titles developed by Ubisoft
Resident Evil Revelations 2 screenshot and box art leaked online »
LoadTheGame All rights reserved - Fresh gaming news


text:
Q: Segueing from viewcontroller in ViewDidLoad I'm running into a problem in an app that I'm developing. The user needs to log into a server to get his account information on the iPhone but once he is logged in he won't need to log in again the next launch.
Since the login page is the initial view controller I want to be able to segue directly from it to go to a tabController if the user has logged in previously on his phone.
In order to do that I store an NSDictionary of userData in NSUserdefaults and when the login view loads I check if there is data in NSUserdefaults. If there is data I try to segue and the performSegueWithIdentifier method gets called but it just doesn't perform the segue. This is all heppening in the loginViewController.
Here's my code :
- (void)viewDidLoad
{
    [super viewDidLoad];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"user"])
    {
        self.userData = [defaults objectForKey:@"user"];
        [self performSegueWithIdentifier:@"Logged In" sender:self];
    }
}

Does any one have ideas on how to solve this issue?
Thanks !

redpajama_set_name: RedPajamaStackExchange


Who can deny the shoes? Pete the Cat loves his white shoes, never loses his cool, and rocks out in his rockin' shoes. Add a touch of this lovable character and keep the theme going with an assortment of Pete the Cat classroom decorations.


text:
John Barrowman to meet 'Glee' producers
John Barrowman says that he is hoping to play a new teacher in Glee.
John Barrowman has revealed that he is to enter talks for a possible role in Glee.
The Doctor Who and Torchwood actor told The Mirror that he feels honoured to have been invited for a meeting with the comedy-drama's producers in Los Angeles.
Barrowman explained: "I absolutely love the show. What would I play in it? I'm not sure what kind of character I'd like to play, maybe I could be a teacher, you know, another teacher who comes in and helps out.
"That's me just kind of brainstorming, but the fact that they want to have a meeting with me is really quite nice in itself, it's so exciting!"
In January, it was revealed that the star is joining the cast of Desperate Housewives for a five-episode stint as a villain.
Discussing his Wisteria Lane role, he added: "I just got the script last night. He is the most evil character they've ever introduced to the series. And that's saying something!"
> Click here to watch our recent interview with John Barrowman
More From Glee
Glee star joins Lindsay Lohan's Netflix rom-com
Glee star Darren Criss expecting baby with wife
Glee and PLL stars team up in Netflix movie series
Glee star reveals show's worst cover song
Glee's Jenna Ushkowitz marries David Stanley
Glee actor lands lead role as disability activist
Glee's Lea Michele pays tribute to Cory Monteith
Glee star and wife announce birth of second child
Glee remembers Naya Rivera one year after death
AHS season 10 and spin-off set premieres
John Barrowman to star in 'Glee'?
John Barrowman reveals dream 'Glee' role
'Glee' exec denies John Barrowman stint
John Barrowman: 'Torchwood is bigger and better'
Barrowman to meet 'Housewives' bosses
John Barrowman: The Comic


For most of us, getting water wherever, whenever takes no time at all.
What if you had to choose between having a job and having the water you need to survive?
For 663 million people in the developing world, this is reality – often spending up to 6 hours a day collecting it. This is something many of us take for granted every day. Stella Artois has partnered with Water.org to help change this.
Our goal is to provide access to safe water to 3.5 million people in the developing world by 2020. With your support, since 2015, we've already changed the lives of more than 1 million people.