text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<context>
    <name></name>
    <message>
        <source>Comment settings</source>
        <translation type="obsolete">Configurações de comentários</translation>
    </message>
</context>
<context>
    <name>comments/comment/menu</name>
    <message>
        <source>eZ Comments</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Comments list</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>design/admin/parts/user/menu</name>
    <message>
        <source>Change the left menu width to small size.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Small</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Medium</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Change the left menu width to large size.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Large</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Change the left menu width to medium size.</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>design/ezwebin/user/edit</name>
    <message>
        <source>My comment settings</source>
        <translation type="obsolete">Minhas configurações de comentários</translation>
    </message>
    <message>
        <source>User profile</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Username</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Email</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Name</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>My drafts</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>My orders</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>My pending items</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>My notification settings</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>My wish list</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Edit profile</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Change password</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>extension/comment/admin</name>
    <message>
        <source>Show comments</source>
        <translation type="obsolete">Exibir comentários</translation>
    </message>
    <message>
        <source>Enable commenting</source>
        <translation type="obsolete">Habilitar comentários</translation>
    </message>
</context>
<context>
    <name>extension/comment/delete</name>
    <message>
        <source>You don't have  the permission to delete comment  or the showing comment function is disabled!</source>
        <translation type="obsolete">Você não tem permissão para excluir comentários ou a função de exbibir comentários está desabilitada!</translation>
    </message>
</context>
<context>
    <name>extension/comment/setting</name>
    <message>
        <source>Comment settings</source>
        <translation type="obsolete">Configurações de comentários</translation>
    </message>
    <message>
        <source>Select</source>
        <translation type="obsolete">Selecionar</translation>
    </message>
    <message>
        <source>Content</source>
        <translation type="obsolete">Conteúdo</translation>
    </message>
    <message>
        <source>Subscription time</source>
        <translation type="obsolete">Tempo de inscrição</translation>
    </message>
    <message>
        <source>Subscribed</source>
        <translation type="obsolete">Inscrito</translation>
    </message>
    <message>
        <source>Save</source>
        <translation type="obsolete">Salvar</translation>
    </message>
    <message>
        <source>Reset</source>
        <translation type="obsolete">Reiniciar</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/action</name>
    <message>
        <source>Back</source>
        <translation type="obsolete">Voltar</translation>
    </message>
    <message>
        <source>Delete</source>
        <translation type="obsolete">Apagar</translation>
    </message>
    <message>
        <source>Cancel</source>
        <translation type="obsolete">Cancelar</translation>
    </message>
    <message>
        <source>Update comment</source>
        <translation type="obsolete">Atualizar comentário</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/activate</name>
    <message>
        <source>Activate subscription</source>
        <translation type="obsolete">Ativar inscrição</translation>
    </message>
    <message>
        <source>The subscription was activated!</source>
        <translation type="obsolete">A inscrição foi ativada!</translation>
    </message>
    <message>
        <source>Go to settings</source>
        <translation type="obsolete">Ir para as configurações</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/activate/email</name>
    <message>
        <source>Dear %email,</source>
        <translation type="obsolete">Caro(a) %email,</translation>
    </message>
    <message>
        <source>You have subscribed the comment update of content. Before you get notification on the content, you need to confirm the subscription.</source>
        <translation type="obsolete">Você se inscreveu receber atualizações dos comentário de conteúdo. Antes receber as notificações sobre o conteúdo, você precisa confirmar sua inscrição.</translation>
    </message>
    <message>
        <source>Please click the link to activate.</source>
        <translation type="obsolete">Por favor clique no link para ativar.</translation>
    </message>
    <message>
        <source>The activation will expire after %expiry_days days.</source>
        <translation type="obsolete">Esta ativação irá expirar após %expiry_days dias.</translation>
    </message>
    <message>
        <source>The activation will expire after %expiry_hours hours.</source>
        <translation type="obsolete">Esta ativação irá expirar após  %expiry_hours horas.</translation>
    </message>
    <message>
        <source>If you don't want to receive the subscription email, igore this email.</source>
        <translation type="obsolete">Se você não deseja receber os emails com as atualizações, igore este email.</translation>
    </message>
    <message>
        <source>You can go to your setting page to manage your subscription.</source>
        <translation type="obsolete">Você pode ir para sua página de configuração para configurar este servico.</translation>
    </message>
    <message>
        <source>Subscribe comment</source>
        <translation type="obsolete">Assinar comentários</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/add</name>
    <message>
        <source>Posting succeeds!</source>
        <translation type="obsolete">Enviado com sucesso!</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/commentform</name>
    <message>
        <source>Title:</source>
        <translation type="obsolete">Título:</translation>
    </message>
    <message>
        <source>Name:</source>
        <translation type="obsolete">Seu nome:</translation>
    </message>
    <message>
        <source>Website:</source>
        <translation type="obsolete">Seu site:</translation>
    </message>
    <message>
        <source>Email:</source>
        <translation type="obsolete">Seu email:</translation>
    </message>
    <message>
        <source>Content:</source>
        <translation type="obsolete">Comentário:</translation>
    </message>
    <message>
        <source>Notified</source>
        <translation type="obsolete">Receber notificações de comentários</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/delete</name>
    <message>
        <source>Deleting failed!</source>
        <translation type="obsolete">A remoção falhou!</translation>
    </message>
    <message>
        <source>Delete comment</source>
        <translation type="obsolete">Apagar comentário</translation>
    </message>
    <message>
        <source>Delete comment?</source>
        <translation type="obsolete">Apagar comentário?</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/edit</name>
    <message>
        <source>Edit comment</source>
        <translation type="obsolete">Editar comentário</translation>
    </message>
    <message>
        <source>Updating failed!</source>
        <translation type="obsolete">A atualização falhou!</translation>
    </message>
    <message>
        <source>You don't have access to edit here!</source>
        <translation type="obsolete">Você não tem permissão para editar aqui!</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/notification/email</name>
    <message>
        <source>New comment</source>
        <translation type="obsolete">Novo comentário</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/setting</name>
    <message>
        <source>There is no subscription.</source>
        <translation type="obsolete">Não há inscrição.</translation>
    </message>
    <message>
        <source>Update succeeds!</source>
        <translation type="obsolete">Atualizado com sucesso!</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/view</name>
    <message>
        <source>View comment</source>
        <translation type="obsolete">Ver comentário</translation>
    </message>
    <message>
        <source>wrote:</source>
        <translation type="obsolete">escreveu</translation>
    </message>
    <message>
        <source>Edit</source>
        <translation type="obsolete">Editar</translation>
    </message>
    <message>
        <source>Delete</source>
        <translation type="obsolete">Apagar</translation>
    </message>
    <message>
        <source>There is no comment!</source>
        <translation type="obsolete">Não há comentários!</translation>
    </message>
    <message>
        <source>You don't have access to view comment here!</source>
        <translation type="obsolete">Você não tem acesso para ver comentários aqui!</translation>
    </message>
    <message>
        <source>You don't have access to post comment here!</source>
        <translation type="obsolete">Você não tem acesso para comentar aqui!</translation>
    </message>
    <message>
        <source>View all %total_count comments</source>
        <translation type="obsolete">Ver todos os %total_count comentários</translation>
    </message>
    <message>
        <source>Total %total_count comments</source>
        <translation type="obsolete">Total de %total_count comentários</translation>
    </message>
</context>
<context>
    <name>extension/ezcomments/view/page</name>
    <message>
        <source>%current_page/%total_page</source>
        <translation type="obsolete">%current_page/%total_page</translation>
    </message>
    <message>
        <source>Previous page</source>
        <translation type="obsolete">Página anterior</translation>
    </message>
    <message>
        <source>Next page</source>
        <translation type="obsolete">Próxima página</translation>
    </message>
    <message>
        <source>Total comments:</source>
        <translation type="obsolete">Total de comentários:</translation>
    </message>
    <message>
        <source>Pages:</source>
        <translation type="obsolete">Páginas:</translation>
    </message>
</context>
<context>
    <name>ezcomments/add</name>
    <message>
        <source>Add comment</source>
        <translation type="obsolete">Comentar</translation>
    </message>
    <message>
        <source>Commenting has been turned off for this content.</source>
        <translation type="obsolete">Os comentários foram desabilitados para este conteúdo.</translation>
    </message>
    <message>
        <source>There is a problem with your comment form </source>
        <translation type="obsolete">Há um problema com o seu formulário de comentário </translation>
    </message>
    <message>
        <source>Post comment</source>
        <translation type="obsolete">Deixe seu comentário</translation>
    </message>
    <message>
        <source>Title:</source>
        <translation type="obsolete">Título:</translation>
    </message>
    <message>
        <source>Name:</source>
        <translation type="obsolete">Seu nome:</translation>
    </message>
    <message>
        <source>Website:</source>
        <translation type="obsolete">Seu site:</translation>
    </message>
    <message>
        <source>Email:</source>
        <translation type="obsolete">Seu email:</translation>
    </message>
    <message>
        <source>(the email address will not be shown)</source>
        <translation type="obsolete">(não será divulgado)</translation>
    </message>
    <message>
        <source>Content:</source>
        <translation type="obsolete">Comentário:</translation>
    </message>
    <message>
        <source>Notified:</source>
        <translation type="obsolete">Receber notificações de comentários</translation>
    </message>
    <message>
        <source>Remember me:</source>
        <translation type="obsolete">Lembre-me:</translation>
    </message>
    <message>
        <source>Reset form</source>
        <translation type="obsolete">Apagar formulário</translation>
    </message>
</context>
<context>
    <name>ezcomments/class/edit</name>
    <message>
        <source>eZ Comments warning: the reCAPTCHA key is not set up properly.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Please get a reCAPTCHA key from https://www.google.com/recaptcha/admin/create then set it up in eZ Comments, or disable CAPTCHA feature.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>For more details please visit http://projects.ez.no/ezcomments.</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/action</name>
    <message>
        <source>Back</source>
        <translation type="unfinished">Voltar</translation>
    </message>
    <message>
        <source>Delete</source>
        <translation type="unfinished">Apagar</translation>
    </message>
    <message>
        <source>Cancel</source>
        <translation type="unfinished">Cancelar</translation>
    </message>
    <message>
        <source>Update comment</source>
        <translation type="unfinished">Atualizar comentário</translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/activate</name>
    <message>
        <source>The subscription is activated!</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Go to settings</source>
        <translation type="unfinished">Ir para as configurações</translation>
    </message>
    <message>
        <source>There is no subscription with the hash string!</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>The subscriber is disabled!</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Activate subscription</source>
        <translation type="unfinished">Ativar inscrição</translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/activationnotification</name>
    <message>
        <source>Dear %email,</source>
        <translation type="unfinished">Caro(a) %email,</translation>
    </message>
    <message>
        <source>You have subscribed to comment update on content. Before you start the service, you need to confirm the subscription.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Please click the link to activate.</source>
        <translation type="unfinished">Por favor clique no link para ativar.</translation>
    </message>
    <message>
        <source>The activation will expire after %expiry_days days.</source>
        <translation type="unfinished">Esta ativação irá expirar após %expiry_days dias.</translation>
    </message>
    <message>
        <source>The activation will expire after %expiry_hours hours.</source>
        <translation type="unfinished">Esta ativação irá expirar após  %expiry_hours horas.</translation>
    </message>
    <message>
        <source>If you do not want to receive the subscription email, ignore this email.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>You can go to your setting page to manage your subscription.</source>
        <translation type="unfinished">Você pode ir para sua página de configuração para configurar este servico.</translation>
    </message>
    <message>
        <source>Activate your subscription</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Hi,</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>posted a new comment on</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Comment summary</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>To reply the content, please visit</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>For setting your subscription, please visit</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>(You need to login)</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>There are updates from</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/add</name>
    <message>
        <source>Your comment has been posted.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>reCAPTCHA API key missing.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Not a valid email address.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>The words you input are incorrect.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Captcha parameter error.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>%1 is missing.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>The field [%1] is empty.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Javascript code in url is not allowed.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Email link in url is not allowed.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Add comment</source>
        <translation type="unfinished">Comentar</translation>
    </message>
    <message>
        <source>Commenting has been turned off for this content.</source>
        <translation type="unfinished">Os comentários foram desabilitados para este conteúdo.</translation>
    </message>
    <message>
        <source>You have already subscribed to comment updates on this content.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>You will receive comment updates on the content.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>A confirmation email has been sent to your email address. You will receive comment updates after confirmation.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>You should not access this view directly.</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/add/form</name>
    <message>
        <source>Post comment</source>
        <translation type="unfinished">Deixe seu comentário</translation>
    </message>
    <message>
        <source>Title:</source>
        <translation type="unfinished">Título:</translation>
    </message>
    <message>
        <source>Name:</source>
        <translation type="unfinished">Seu nome:</translation>
    </message>
    <message>
        <source>Website:</source>
        <translation type="unfinished">Seu site:</translation>
    </message>
    <message>
        <source>Email:</source>
        <translation type="unfinished">Seu email:</translation>
    </message>
    <message>
        <source>(The email address will not be shown)</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Content:</source>
        <translation type="unfinished">Comentário:</translation>
    </message>
    <message>
        <source>Notify me of new comments</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Security text:</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Enter both words below, with or without a space.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>The letters are not case-sensitive.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Can't read this?</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Try another</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Remember me</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Add comment</source>
        <translation type="unfinished">Comentar</translation>
    </message>
    <message>
        <source>Reset form</source>
        <translation type="unfinished">Apagar formulário</translation>
    </message>
    <message>
        <source>Notified of new comments</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>There is a problem with your comment form </source>
        <translation type="unfinished">Há um problema com o seu formulário de comentário </translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/delete</name>
    <message>
        <source>Delete comment?</source>
        <translation type="unfinished">Apagar comentário?</translation>
    </message>
    <message>
        <source>Deleting failed!</source>
        <translation type="unfinished">A remoção falhou!</translation>
    </message>
    <message>
        <source>You don't have access to delete comment or the comment is hidden!</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Delete comment</source>
        <translation type="unfinished">Apagar comentário</translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/edit</name>
    <message>
        <source>Edit comment</source>
        <translation type="unfinished">Editar comentário</translation>
    </message>
    <message>
        <source>You don't have access to edit.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Updating failed.</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/list</name>
    <message>
        <source>Comments list</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Select all comments</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Comment</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Node</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Modified</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>IP address</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Edit comment</source>
        <translation type="unfinished">Editar comentário</translation>
    </message>
    <message>
        <source>Remove selected</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/notification</name>
    <message>
        <source>New comment</source>
        <translation type="unfinished">Novo comentário</translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/removecomments</name>
    <message>
        <source>Confirm comments removal</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Are you sure you want to remove selected comments?</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>OK</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Cancel</source>
        <translation type="unfinished">Cancelar</translation>
    </message>
    <message>
        <source>Remove comments</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/setting</name>
    <message>
        <source>The subscriber doesn't exist.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>You are not subscribing to any content.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>You have updated comment settings.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>OK</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Select</source>
        <translation type="unfinished">Selecionar</translation>
    </message>
    <message>
        <source>Content</source>
        <translation type="unfinished">Conteúdo</translation>
    </message>
    <message>
        <source>Subscription started</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Subscribed</source>
        <translation type="unfinished">Inscrito</translation>
    </message>
    <message>
        <source>Save</source>
        <translation type="unfinished">Salvar</translation>
    </message>
    <message>
        <source>Reset</source>
        <translation type="unfinished">Reiniciar</translation>
    </message>
    <message>
        <source>Comment settings</source>
        <translation type="unfinished">Configurações de comentários</translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/view</name>
    <message>
        <source>wrote:</source>
        <translation type="unfinished">escreveu</translation>
    </message>
    <message>
        <source>Edit</source>
        <translation type="unfinished">Editar</translation>
    </message>
    <message>
        <source>Delete</source>
        <translation type="unfinished">Apagar</translation>
    </message>
    <message>
        <source>There is no comment.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>You don't have access to view comment.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>You don't have access to post comment.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>View all %total_count comments</source>
        <translation type="unfinished">Ver todos os %total_count comentários</translation>
    </message>
    <message>
        <source>Total %total_count comments</source>
        <translation type="unfinished">Total de %total_count comentários</translation>
    </message>
    <message>
        <source>The page parameter is not a number.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>The page parameter can't be minus.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <source>Comment/View</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/view/action</name>
    <message>
        <source>Back</source>
        <translation type="unfinished">Voltar</translation>
    </message>
</context>
<context>
    <name>ezcomments/comment/view/page</name>
    <message>
        <source>%current_page/%total_page</source>
        <translation type="unfinished">%current_page/%total_page</translation>
    </message>
    <message>
        <source>Previous page</source>
        <translation type="unfinished">Página anterior</translation>
    </message>
    <message>
        <source>Next page</source>
        <translation type="unfinished">Próxima página</translation>
    </message>
    <message>
        <source>Total comments:</source>
        <translation type="unfinished">Total de comentários:</translation>
    </message>
    <message>
        <source>Pages:</source>
        <translation type="unfinished">Páginas:</translation>
    </message>
</context>
<context>
    <name>ezcomments/datatype</name>
    <message>
        <source>Comments</source>
        <comment>Datatype name</comment>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>ezcomments/datatype/edit</name>
    <message>
        <source>Show comments</source>
        <translation type="unfinished">Exibir comentários</translation>
    </message>
    <message>
        <source>Enable commenting</source>
        <translation type="unfinished">Habilitar comentários</translation>
    </message>
</context>
<context>
    <name>ezcomments/ezwebin/user/edit</name>
    <message>
        <source>My comment settings</source>
        <translation type="unfinished">Minhas configurações de comentários</translation>
    </message>
</context>
<context>
    <name>view/action</name>
    <message>
        <source>Back</source>
        <translation type="obsolete">Voltar</translation>
    </message>
</context>
</TS>


text:
namespace principia {
namespace geometry {
namespace internal_r3_element {

using base::not_null;
using base::uninitialized_t;
using quantities::Angle;
using quantities::is_quantity_v;
using quantities::Product;
using quantities::Quantity;
using quantities::Quotient;
using quantities::Square;

template<typename Scalar>
struct SphericalCoordinates;

// An |R3Element<Scalar>| is an element of Scalar³. |Scalar| should be a vector
// space over ℝ, represented by |double|. |R3Element| is the underlying data
// type for more advanced strongly typed structures suchas |Multivector|.
template<typename Scalar>
struct alignas(16) R3Element final {
 public:
  constexpr R3Element();
  constexpr explicit R3Element(uninitialized_t);
  R3Element(Scalar const& x, Scalar const& y, Scalar const& z);
  R3Element(__m128d xy, __m128d zt);

  Scalar&       operator[](int index);
  Scalar const& operator[](int index) const;

  R3Element& operator+=(R3Element const& right);
  R3Element& operator-=(R3Element const& right);
  R3Element& operator*=(double right);
  R3Element& operator/=(double right);

  Scalar Norm() const;
  Square<Scalar> Norm²() const;

  // Uses the x-y plane as the equator, the x-axis as the reference direction on
  // the equator, and the z-axis as the north pole.
  SphericalCoordinates<Scalar> ToSpherical() const;

  // Returns a vector coplanar to |*this| and |r3_element|, orthogonal to
  // |r3_element|, and on the same side of |r3_element| as |*this|.
  // Uses the modified Gram-Schmidt algorithm.  Fails if |r3_element| is zero.
  template<typename S>
  R3Element OrthogonalizationAgainst(R3Element<S> const& r3_element) const;

  void WriteToMessage(not_null<serialization::R3Element*> message) const;
  static R3Element ReadFromMessage(serialization::R3Element const& message);

  union {
    struct {
      Scalar x;
      Scalar y;
      Scalar z;
    };
    struct {
      __m128d xy;
      __m128d zt;
    };
  };
};

template<typename Scalar>
struct SphericalCoordinates final {
  // Default, but prevents aggregate initialization of |SphericalCoordinates| to
  // obviate confusion over the order of |latitude| and |longitude|.
  SphericalCoordinates();

  // Uses the x-y plane as the equator, the x-axis as the reference direction on
  // the equator, and the z-axis as the north pole.
  R3Element<Scalar> ToCartesian();

  Scalar radius;
  Angle latitude;
  Angle longitude;
};

template<typename Scalar>
SphericalCoordinates<Scalar> RadiusLatitudeLongitude(Scalar const& radius,
                                                     Angle const& latitude,
                                                     Angle const& longitude);

template<typename Scalar>
R3Element<Scalar> operator+(R3Element<Scalar> const& right);
template<typename Scalar>
R3Element<Scalar> operator-(R3Element<Scalar> const& right);

template<typename Scalar>
R3Element<Scalar> operator+(R3Element<Scalar> const& left,
                            R3Element<Scalar> const& right);
template<typename Scalar>
R3Element<Scalar> operator-(R3Element<Scalar> const& left,
                            R3Element<Scalar> const& right);

// Dimensionful multiplication |LScalar * R3Element<RScalar>| is the tensor
// product LScalar ⊗ Scalar³. Since LScalar ⊗ Scalar³ ≅ (LScalar ⊗ Scalar)³,
// the result is an R3Element<Product<LScalar, RScalar>>.
template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<LScalar>>>
R3Element<Product<LScalar, RScalar>>
operator*(LScalar const& left, R3Element<RScalar> const& right);

template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<RScalar>>>
R3Element<Product<LScalar, RScalar>>
operator*(R3Element<LScalar> const& left, RScalar const& right);

template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<RScalar>>>
R3Element<Quotient<LScalar, RScalar>>
operator/(R3Element<LScalar> const& left, RScalar const& right);

// FMA for ±vector * scalar ± vector.
template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<RScalar>>>
R3Element<Product<LScalar, RScalar>> FusedMultiplyAdd(
    R3Element<LScalar> const& a,
    RScalar const& b,
    R3Element<Product<LScalar, RScalar>> const& c);
template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<RScalar>>>
R3Element<Product<LScalar, RScalar>> FusedMultiplySubtract(
    R3Element<LScalar> const& a,
    RScalar const& b,
    R3Element<Product<LScalar, RScalar>> const& c);
template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<RScalar>>>
R3Element<Product<LScalar, RScalar>> FusedNegatedMultiplyAdd(
    R3Element<LScalar> const& a,
    RScalar const& b,
    R3Element<Product<LScalar, RScalar>> const& c);
template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<RScalar>>>
R3Element<Product<LScalar, RScalar>> FusedNegatedMultiplySubtract(
    R3Element<LScalar> const& a,
    RScalar const& b,
    R3Element<Product<LScalar, RScalar>> const& c);

// FMA for ±scalar * vector ± vector.
template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<LScalar>>>
R3Element<Product<LScalar, RScalar>> FusedMultiplyAdd(
    LScalar const& a,
    R3Element<RScalar> const& b,
    R3Element<Product<LScalar, RScalar>> const& c);
template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<LScalar>>>
R3Element<Product<LScalar, RScalar>> FusedMultiplySubtract(
    LScalar const& a,
    R3Element<RScalar> const& b,
    R3Element<Product<LScalar, RScalar>> const& c);
template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<LScalar>>>
R3Element<Product<LScalar, RScalar>> FusedNegatedMultiplyAdd(
    LScalar const& a,
    R3Element<RScalar> const& b,
    R3Element<Product<LScalar, RScalar>> const& c);
template<typename LScalar, typename RScalar,
         typename = std::enable_if_t<is_quantity_v<LScalar>>>
R3Element<Product<LScalar, RScalar>> FusedNegatedMultiplySubtract(
    LScalar const& a,
    R3Element<RScalar> const& b,
    R3Element<Product<LScalar, RScalar>> const& c);

template<typename Scalar>
bool operator==(R3Element<Scalar> const& left,
                R3Element<Scalar> const& right);
template<typename Scalar>
bool operator!=(R3Element<Scalar> const& left,
                R3Element<Scalar> const& right);

template<typename Scalar>
R3Element<double> Normalize(R3Element<Scalar> const& r3_element);

template<typename Scalar>
R3Element<double> NormalizeOrZero(R3Element<Scalar> const& r3_element);

template<typename Scalar>
std::string DebugString(R3Element<Scalar> const& r3_element);

template<typename Scalar>
std::ostream& operator<<(std::ostream& out,
                         R3Element<Scalar> const& r3_element);

template<typename LScalar, typename RScalar>
R3Element<Product<LScalar, RScalar>> Cross(
    R3Element<LScalar> const& left,
    R3Element<RScalar> const& right);

template<typename LScalar, typename RScalar>
Product<LScalar, RScalar> Dot(R3Element<LScalar> const& left,
                              R3Element<RScalar> const& right);

// Returns the |i|th basis vector, whose |i|th coordinate is 1, and whose
// other coordinates are 0.  |i| must be in [0, 2].
R3Element<double> BasisVector(int i);

}  // namespace internal_r3_element

using internal_r3_element::BasisVector;
using internal_r3_element::Cross;
using internal_r3_element::Dot;
using internal_r3_element::Normalize;
using internal_r3_element::NormalizeOrZero;
using internal_r3_element::R3Element;
using internal_r3_element::RadiusLatitudeLongitude;
using internal_r3_element::SphericalCoordinates;

}  // namespace geometry
}  // namespace principia

#include "geometry/r3_element_body.hpp"

redpajama_set_name: RedPajamaGithub


text:
package net.akehurst.application.framework.technology.interfaceComms;

import java.util.Map;

public interface IPublishSubscribeNotification {

    void notifyPublication(ChannelIdentity channelId, byte[] data);

}


text:
using namespace boost::spirit;

// main function
int main( int, const char ** )
{
    // iterate over stream input
    typedef std::istreambuf_iterator< char > base_iterator_type;
    base_iterator_type in_begin( std::cin );

    // convert input iterator to forward iterator, usable by spirit parser
    typedef boost::spirit::multi_pass< base_iterator_type > forward_iterator_type;
    forward_iterator_type fwd_begin = boost::spirit::make_default_multi_pass( in_begin );
    forward_iterator_type fwd_end;

    // wrap forward iterator with position iterator, to record the position
    typedef boost::spirit::classic::position_iterator2< forward_iterator_type > pos_iterator_type;
    pos_iterator_type pos_begin( fwd_begin, fwd_end, "<stdin>" );
    pos_iterator_type pos_end;

    // define the iterator type we will use.
//        typedef forward_iterator_type iterator_type;
//        iterator_type begin = fwd_begin;
//        iterator_type end = fwd_end;
    typedef pos_iterator_type iterator_type;
    iterator_type begin = pos_begin;
    iterator_type end = pos_end;

		qi::phrase_parse(
			begin,
			end,
			lit(""),
			qi::blank
		);

    return 0;
}


text:
"""
:module: watchdog.watchmedo
:author: yesudeep@google.com (Yesudeep Mangalapilly)
:synopsis: ``watchmedo`` shell script utility.
"""

import os.path
import sys
import yaml
import time
import logging

try:
    from cStringIO import StringIO
except ImportError:
    try:
        from StringIO import StringIO
    except ImportError:
        from io import StringIO

from argh import arg, alias, ArghParser

from watchdog.version import VERSION_STRING

from watchdog.utils import (
    read_text_file,
    load_class
)

from pathtools.path import absolute_path, parent_dir_path

logging.basicConfig(level=logging.DEBUG)

CURRENT_DIR = absolute_path(os.getcwd())
DEFAULT_TRICKS_FILE_NAME = 'tricks.yaml'
DEFAULT_TRICKS_FILE_PATH = os.path.join(CURRENT_DIR, DEFAULT_TRICKS_FILE_NAME)
CONFIG_KEY_TRICKS = 'tricks'
CONFIG_KEY_PYTHON_PATH = 'python-path'

def path_split(pathname_spec, separator=os.path.sep):
    """
    Splits a pathname specification separated by an OS-dependent separator.

    :param pathname_spec:
        The pathname specification.
    :param separator:
        (OS Dependent) `:` on Unix and `;` on Windows or user-specified.
    """
    return list(pathname_spec.split(separator))

def add_to_sys_path(pathnames, index=0):
    """
    Adds specified paths at specified index into the sys.path list.

    :param paths:
        A list of paths to add to the sys.path
    :param index:
        (Default 0) The index in the sys.path list where the paths will be
        added.
    """
    for pathname in pathnames[::-1]:
        sys.path.insert(index, pathname)

def load_config(tricks_file_pathname):
    """
    Loads the YAML configuration from the specified file.

    :param tricks_file_path:
        The path to the tricks configuration file.
    :returns:
        A dictionary of configuration information.
    """
    content = read_text_file(tricks_file_pathname)
    config = yaml.load(content)
    return config

def parse_patterns(patterns_spec, ignore_patterns_spec, separator=';'):
    """
    Parses pattern argument specs and returns a two-tuple of
    (patterns, ignore_patterns).
    """
    patterns = patterns_spec.split(separator)
    ignore_patterns = ignore_patterns_spec.split(separator)
    if ignore_patterns == ['']:
        ignore_patterns = []
    return (patterns, ignore_patterns)

def observe_with(observer, event_handler, pathnames, recursive):
    """
    Single observer thread with a scheduled path and event handler.

    :param observer:
        The observer thread.
    :param event_handler:
        Event handler which will be called in response to file system events.
    :param pathnames:
        A list of pathnames to monitor.
    :param recursive:
        ``True`` if recursive; ``False`` otherwise.
    """
    for pathname in set(pathnames):
        observer.schedule(event_handler, pathname, recursive)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

def schedule_tricks(observer, tricks, pathname, recursive):
    """
    Schedules tricks with the specified observer and for the given watch
    path.

    :param observer:
        The observer thread into which to schedule the trick and watch.
    :param tricks:
        A list of tricks.
    :param pathname:
        A path name which should be watched.
    :param recursive:
        ``True`` if recursive; ``False`` otherwise.
    """
    for trick in tricks:
        for name, value in list(trick.items()):
            TrickClass = load_class(name)
            handler = TrickClass(**value)
            trick_pathname = absolute_path(
                getattr(handler, 'source_directory', None) or pathname)
            observer.schedule(handler, trick_pathname, recursive)

@alias('tricks')
@arg('files',
     nargs='*',
     help='perform tricks from given file')
@arg('--python-path',
     default='.',
     help='paths separated by %s to add to the python path' % os.path.sep)
@arg('--interval',
     '--timeout',
     dest='timeout',
     default=1.0,
     help='use this as the polling interval/blocking timeout')
@arg('--recursive',
     default=True,
     help='recursively monitor paths')
def tricks_from(args):
    """
    Subcommand to execute tricks from a tricks configuration file.

    :param args:
        Command line argument options.
    """
    from watchdog.observers import Observer

    add_to_sys_path(path_split(args.python_path))
    observers = []
    for tricks_file in args.files:
        observer = Observer(timeout=args.timeout)

        if not os.path.exists(tricks_file):
            raise IOError("cannot find tricks file: %s" % tricks_file)

        config = load_config(tricks_file)

        try:
            tricks = config[CONFIG_KEY_TRICKS]
        except KeyError:
            raise KeyError("No `%s' key specified in %s." % (
                           CONFIG_KEY_TRICKS, tricks_file))

        if CONFIG_KEY_PYTHON_PATH in config:
            add_to_sys_path(config[CONFIG_KEY_PYTHON_PATH])

        dir_path = parent_dir_path(tricks_file)
        schedule_tricks(observer, tricks, dir_path, args.recursive)
        observer.start()
        observers.append(observer)

    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        for o in observers:
            o.unschedule_all()
            o.stop()
    for o in observers:
        o.join()

@alias('generate-tricks-yaml')
@arg('trick_paths',
     nargs='*',
     help='Dotted paths for all the tricks you want to generate')
@arg('--python-path',
     default='.',
     help='paths separated by %s to add to the python path' % os.path.sep)
@arg('--append-to-file',
     default=None,
     help='appends the generated tricks YAML to a file; \
if not specified, prints to standard output')
@arg('-a',
     '--append-only',
     dest='append_only',
     default=False,
     help='if --append-to-file is not specified, produces output for \
appending instead of a complete tricks yaml file.')
def tricks_generate_yaml(args):
    """
    Subcommand to generate Yaml configuration for tricks named on the command
    line.

    :param args:
        Command line argument options.
    """
    python_paths = path_split(args.python_path)
    add_to_sys_path(python_paths)
    output = StringIO()

    for trick_path in args.trick_paths:
        TrickClass = load_class(trick_path)
        output.write(TrickClass.generate_yaml())

    content = output.getvalue()
    output.close()

    header = yaml.dump({CONFIG_KEY_PYTHON_PATH: python_paths})
    header += "%s:\n" % CONFIG_KEY_TRICKS
    if args.append_to_file is None:
        # Output to standard output.
        if not args.append_only:
            content = header + content
        sys.stdout.write(content)
    else:
        if not os.path.exists(args.append_to_file):
            content = header + content
        output = open(args.append_to_file, 'ab')
        output.write(content)
        output.close()

@arg('directories',
     nargs='*',
     default='.',
     help='directories to watch.')
@arg('-p',
     '--pattern',
     '--patterns',
     dest='patterns',
     default='*',
     help='matches event paths with these patterns (separated by ;).')
@arg('-i',
     '--ignore-pattern',
     '--ignore-patterns',
     dest='ignore_patterns',
     default='',
     help='ignores event paths with these patterns (separated by ;).')
@arg('-D',
     '--ignore-directories',
     dest='ignore_directories',
     default=False,
     help='ignores events for directories')
@arg('-R',
     '--recursive',
     dest='recursive',
     default=False,
     help='monitors the directories recursively')
@arg('--interval',
     '--timeout',
     dest='timeout',
     default=1.0,
     help='use this as the polling interval/blocking timeout')
@arg('--trace',
     default=False,
     help='dumps complete dispatching trace')
@arg('--debug-force-polling',
     default=False,
     help='[debug] forces polling')
@arg('--debug-force-kqueue',
     default=False,
     help='[debug] forces BSD kqueue(2)')
@arg('--debug-force-winapi',
     default=False,
     help='[debug] forces Windows API')
@arg('--debug-force-winapi-async',
     default=False,
     help='[debug] forces Windows API + I/O completion')
@arg('--debug-force-fsevents',
     default=False,
     help='[debug] forces Mac OS X FSEvents')
@arg('--debug-force-inotify',
     default=False,
     help='[debug] forces Linux inotify(7)')
def log(args):
    """
    Subcommand to log file system events to the console.

    :param args:
        Command line argument options.
    """
    from watchdog.utils import echo
    from watchdog.tricks import LoggerTrick

    if args.trace:
        echo.echo_class(LoggerTrick)

    patterns, ignore_patterns =\
        parse_patterns(args.patterns, args.ignore_patterns)
    handler = LoggerTrick(patterns=patterns,
                          ignore_patterns=ignore_patterns,
                          ignore_directories=args.ignore_directories)
    if args.debug_force_polling:
        from watchdog.observers.polling import PollingObserver as Observer
    elif args.debug_force_kqueue:
        from watchdog.observers.kqueue import KqueueObserver as Observer
    elif args.debug_force_winapi_async:
        from watchdog.observers.read_directory_changes_async import\
            WindowsApiAsyncObserver as Observer
    elif args.debug_force_winapi:
        from watchdog.observers.read_directory_changes import\
            WindowsApiObserver as Observer
    elif args.debug_force_inotify:
        from watchdog.observers.inotify import InotifyObserver as Observer
    elif args.debug_force_fsevents:
        from watchdog.observers.fsevents import FSEventsObserver as Observer
    else:
    # Automatically picks the most appropriate observer for the platform
    # on which it is running.
        from watchdog.observers import Observer
    observer = Observer(timeout=args.timeout)
    observe_with(observer, handler, args.directories, args.recursive)

@arg('directories',
     nargs='*',
     default='.',
     help='directories to watch')
@arg('-c',
     '--command',
     dest='command',
     default=None,
     help='''shell command executed in response to matching events.
These interpolation variables are available to your command string::

    ${watch_src_path}    - event source path;
    ${watch_dest_path}   - event destination path (for moved events);
    ${watch_event_type}  - event type;
    ${watch_object}      - ``file`` or ``directory``

Note::
    Please ensure you do not use double quotes (") to quote
    your command string. That will force your shell to
    interpolate before the command is processed by this
    subcommand.

Example option usage::

    --command='echo "${watch_src_path}"'
''')
@arg('-p',
     '--pattern',
     '--patterns',
     dest='patterns',
     default='*',
     help='matches event paths with these patterns (separated by ;).')
@arg('-i',
     '--ignore-pattern',
     '--ignore-patterns',
     dest='ignore_patterns',
     default='',
     help='ignores event paths with these patterns (separated by ;).')
@arg('-D',
     '--ignore-directories',
     dest='ignore_directories',
     default=False,
     help='ignores events for directories')
@arg('-R',
     '--recursive',
     dest='recursive',
     default=False,
     help='monitors the directories recursively')
@arg('--interval',
     '--timeout',
     dest='timeout',
     default=1.0,
     help='use this as the polling interval/blocking timeout')
@arg('-w', '--wait',
     dest='wait_for_process',
     action='store_true',
     default=False,
     help="wait for process to finish to avoid multiple simultaneous instances")
def shell_command(args):
    """
    Subcommand to execute shell commands in response to file system events.

    :param args:
        Command line argument options.
    """
    from watchdog.observers import Observer
    from watchdog.tricks import ShellCommandTrick

    if not args.command:
        args.command = None

    patterns, ignore_patterns = parse_patterns(args.patterns,
                                               args.ignore_patterns)
    handler = ShellCommandTrick(shell_command=args.command,
                                patterns=patterns,
                                ignore_patterns=ignore_patterns,
                                ignore_directories=args.ignore_directories,
                                wait_for_process=args.wait_for_process)
    observer = Observer(timeout=args.timeout)
    observe_with(observer, handler, args.directories, args.recursive)

@arg('command',
     help='''Long-running command to run in a subprocess.
''')
@arg('command_args',
     metavar='arg',
     nargs='*',
     help='''Command arguments.

Note: Use -- before the command arguments, otherwise watchmedo will
try to interpret them.
''')
@arg('-d',
     '--directory',
     dest='directories',
     metavar='directory',
     action='append',
     help='Directory to watch. Use another -d or --directory option '
          'for each directory.')
@arg('-p',
     '--pattern',
     '--patterns',
     dest='patterns',
     default='*',
     help='matches event paths with these patterns (separated by ;).')
@arg('-i',
     '--ignore-pattern',
     '--ignore-patterns',
     dest='ignore_patterns',
     default='',
     help='ignores event paths with these patterns (separated by ;).')
@arg('-D',
     '--ignore-directories',
     dest='ignore_directories',
     default=False,
     help='ignores events for directories')
@arg('-R',
     '--recursive',
     dest='recursive',
     default=False,
     help='monitors the directories recursively')
@arg('--interval',
     '--timeout',
     dest='timeout',
     default=1.0,
     help='use this as the polling interval/blocking timeout')
@arg('--signal',
     dest='signal',
     default='SIGINT',
     help='stop the subprocess with this signal (default SIGINT)')
@arg('--kill-after',
     dest='kill_after',
     default=10.0,
     help='when stopping, kill the subprocess after the specified timeout '
          '(default 10)')
def auto_restart(args):
    """
    Subcommand to start a long-running subprocess and restart it
    on matched events.

    :param args:
        Command line argument options.
    """
    from watchdog.observers import Observer
    from watchdog.tricks import AutoRestartTrick
    import signal
    import re

    if not args.directories:
        args.directories = ['.']

    # Allow either signal name or number.
    if re.match('^SIG[A-Z]+$', args.signal):
        stop_signal = getattr(signal, args.signal)
    else:
        stop_signal = int(args.signal)

    # Handle SIGTERM in the same manner as SIGINT so that
    # this program has a chance to stop the child process.
    def handle_sigterm(_signum, _frame):
        raise KeyboardInterrupt()

    signal.signal(signal.SIGTERM, handle_sigterm)

    patterns, ignore_patterns = parse_patterns(args.patterns,
                                               args.ignore_patterns)
    command = [args.command]
    command.extend(args.command_args)
    handler = AutoRestartTrick(command=command,
                               patterns=patterns,
                               ignore_patterns=ignore_patterns,
                               ignore_directories=args.ignore_directories,
                               stop_signal=stop_signal,
                               kill_after=args.kill_after)
    handler.start()
    observer = Observer(timeout=args.timeout)
    observe_with(observer, handler, args.directories, args.recursive)
    handler.stop()

epilog = """Copyright 2011 Yesudeep Mangalapilly <yesudeep@gmail.com>.
Copyright 2012 Google, Inc.

Licensed under the terms of the Apache license, version 2.0. Please see
LICENSE in the source code for more information."""

parser = ArghParser(epilog=epilog)
parser.add_commands([tricks_from,
                     tricks_generate_yaml,
                     log,
                     shell_command,
                     auto_restart])
parser.add_argument('--version',
                    action='version',
                    version='%(prog)s ' + VERSION_STRING)

def main():
    """Entry-point function."""
    parser.dispatch()

if __name__ == '__main__':
    main()


text:
<?php

use Wasp\Test\TestCase,
    Symfony\Component\DomCrawler\Crawler,
    Wasp\Test\Entity\Entities\Contact;

/**
 * Test case for the Paginator Database add-on
 *
 * @package Wasp
 * @subpackage Tests
 * @author Dan Cox
 */
class PaginatorTest extends TestCase
{

    /**
     * An array of passes used by this test
     *
     * @var Array
     */
    protected $passes = [
        'Wasp\DI\Pass\DatabaseMockeryPass'
    ];

    /**
     * Instance of the contact entity
     *
     * @var \Wasp\Test\Entity\Entities\Contact
     */
    protected $contact;

    /**
     * Set up test env
     *
     * @return void
     * @author Dan Cox
     */
    public function setUp()
    {
        parent::setUp();

        $this->DI->get('database')->create(ENTITIES);

        // Inserting 50 test contacts
        for ($i = 0; $i < 51; $i ++)
        {
            $ent = new Contact;
            $ent->name = 'Test ' . $i;
            $ent->message = 'TestMessage_' . $i;
            $ent->save();
        }

        $this->DI->get('database')->setEntity('Wasp\Test\Entity\Entities\Contact');
    }

    /**
     * Test that the template for pagination renders correctly where it is set
     *
     * @return void
     * @author Dan Cox
     */
    public function test_templateRendering()
    {
        $this->setupTemplates(TEMPLATES);
        $this->DI->get('profile')->setSettings(['database' => ['pagination_template' => 'pagination.html.twig']]);

        $this->DI->get('request')->make('/test', 'GET', []);

        $collection = $this->DI->get('database')->paginate(10);

        $crawler = new Crawler ($collection->pagination());
        $next = $crawler->filterXPath('//a')->attr('href');

        $this->assertEquals('/?page=2', $next);
    }

    /**
     * Test with no profile settings
     *
     * @return void
     * @author Dan Cox
     */
    public function test_noTemplateSettings()
    {
        $this->setExpectedException('Wasp\Exceptions\Entity\PaginationTemplateNotSet');

        $this->DI->get('profile')->setSettings(['database' => []]);
        $this->DI->get('request')->make('/test', 'GET', []);

        $collection = $this->DI->get('database')->paginate(10);

        $pagination = $collection->pagination();
    }

    /**
     * Test basic pagination usage
     *
     * @return void
     * @author Dan Cox
     */
    public function test_paginatedResults()
    {
        $this->DI->get('request')->make('/test', 'GET', []);

        $records = $this->DI->get('database')->paginate(10);

        $record = $records[0];

        $this->assertEquals(10, count($records));
        $this->assertEquals('Test 0', $record->name);
        $this->assertInstanceOf('Wasp\Entity\PaginatedEntityCollection', $records);

        $this->assertEquals(51, $records->getTotal());
        $this->assertEquals(10, $records->getPageSize());
        $this->assertEquals(1, $records->getPageNo());
        $this->assertEquals(6, $records->getTotalPages());
    }

    /**
     * Test its ability to understand pages
     *
     * @return void
     * @author Dan Cox
     */
    public function test_offsetCalculation()
    {
        $this->DI->get('request')->make('/test', 'GET', ['page' => 2]);

        $records = $this->DI->get('database')->paginate(10);

        $record = $records[0];

        $this->assertEquals('Test 10', $record->name);
    }

    /**
     * Test pagination with an entity
     *
     * @return void
     * @author Dan Cox
     */
    public function test_paginationWithoutEntity()
    {
        $this->DI->get('request')->make('/test', 'GET', ['page' => 1]);

        $paginator = $this->DI->get('paginator');
        $records = $paginator->setEntity('Wasp\Test\Entity\Entities\Contact')
                             ->query(10);

        $this->assertEquals(10, count($records));
    }

} // END class PaginatorTest extends TestCase


text:
using System;
using Orleans.Hosting;

namespace Orleans.Runtime.MembershipService
{
    /// <inheritdoc />
    public class LegacyConsulMembershipConfigurator : ILegacyMembershipConfigurator
    {
        public void Configure(object configuration, ISiloHostBuilder builder)
        {
            var reader = new GlobalConfigurationReader(configuration);

            builder.UseConsulClustering(options =>
            {
                options.Address = new Uri(reader.GetPropertyValue<string>("DataConnectionString"));
            });
        }
    }
}


text:
#include "tensorflow/lite/c/builtin_op_data.h"
#include "tensorflow/lite/c/common.h"
#include "tensorflow/lite/experimental/micro/kernels/all_ops_resolver.h"
#include "tensorflow/lite/experimental/micro/testing/micro_test.h"
#include "tensorflow/lite/experimental/micro/testing/test_utils.h"

namespace tflite {
namespace testing {
namespace {

void TestPreluFloat(std::initializer_list<int> input_dims_data,
                    std::initializer_list<float> input_data,
                    std::initializer_list<int> alpha_dims_data,
                    std::initializer_list<float> alpha_data,
                    std::initializer_list<float> expected_output_data,
                    std::initializer_list<int> output_dims_data,
                    float* output_data) {
  TfLiteIntArray* input_dims = IntArrayFromInitializer(input_dims_data);
  TfLiteIntArray* alpha_dims = IntArrayFromInitializer(alpha_dims_data);
  TfLiteIntArray* output_dims = IntArrayFromInitializer(output_dims_data);
  const int output_dims_count = ElementCount(*output_dims);
  constexpr int inputs_size = 2;
  constexpr int outputs_size = 1;
  constexpr int tensors_size = inputs_size + outputs_size;
  TfLiteTensor tensors[tensors_size] = {
      CreateFloatTensor(input_data, input_dims, "input_tensor"),
      CreateFloatTensor(alpha_data, alpha_dims, "alpha_tensor"),
      CreateFloatTensor(output_data, output_dims, "output_tensor"),
  };
  TfLiteContext context;
  PopulateContext(tensors, tensors_size, &context);
  ::tflite::ops::micro::AllOpsResolver resolver;
  const TfLiteRegistration* registration =
      resolver.FindOp(tflite::BuiltinOperator_PRELU, 1);
  TF_LITE_MICRO_EXPECT_NE(nullptr, registration);

  size_t init_data_size = 0;
  void* user_data = nullptr;
  if (registration->init) {
    user_data = registration->init(&context, nullptr, init_data_size);
  }
  int inputs_array_data[] = {2, 0, 1};
  TfLiteIntArray* inputs_array = IntArrayFromInts(inputs_array_data);
  int outputs_array_data[] = {1, 2};
  TfLiteIntArray* outputs_array = IntArrayFromInts(outputs_array_data);
  TfLiteIntArray* temporaries_array = IntArrayFromInitializer({0});
  TfLiteNode node;
  node.inputs = inputs_array;
  node.outputs = outputs_array;
  node.temporaries = temporaries_array;
  node.user_data = user_data;
  node.builtin_data = nullptr;
  node.custom_initial_data = nullptr;
  node.custom_initial_data_size = 0;
  node.delegate = nullptr;
  if (registration->prepare) {
    TF_LITE_MICRO_EXPECT_EQ(kTfLiteOk, registration->prepare(&context, &node));
  }
  TF_LITE_MICRO_EXPECT_NE(nullptr, registration->invoke);
  TF_LITE_MICRO_EXPECT_EQ(kTfLiteOk, registration->invoke(&context, &node));
  if (registration->free) {
    registration->free(&context, user_data);
  }
  for (int i = 0; i < output_dims_count; ++i) {
    TF_LITE_MICRO_EXPECT_NEAR(expected_output_data.begin()[i], output_data[i],
                              1e-5f);
  }
}

void TestPreluQuantized(std::initializer_list<int> input_dims_data,
                        std::initializer_list<uint8_t> input_data,
                        float input_min, float input_max,
                        std::initializer_list<int> alpha_dims_data,
                        std::initializer_list<uint8_t> alpha_data,
                        float alpha_min, float alpha_max,
                        std::initializer_list<uint8_t> expected_output_data,
                        std::initializer_list<int> output_dims_data,
                        float output_min, float output_max,
                        uint8_t* output_data) {
  TfLiteIntArray* input_dims = IntArrayFromInitializer(input_dims_data);
  TfLiteIntArray* alpha_dims = IntArrayFromInitializer(alpha_dims_data);
  TfLiteIntArray* output_dims = IntArrayFromInitializer(output_dims_data);
  const int output_dims_count = ElementCount(*output_dims);
  constexpr int inputs_size = 2;
  constexpr int outputs_size = 1;
  constexpr int tensors_size = inputs_size + outputs_size;
  TfLiteTensor tensors[tensors_size] = {
      CreateQuantizedTensor(input_data, input_dims, "input_tensor", input_min,
                            input_max),
      CreateQuantizedTensor(alpha_data, alpha_dims, "alpha_tensor", alpha_min,
                            alpha_max),
      CreateQuantizedTensor(output_data, output_dims, "output_tensor",
                            output_min, output_max),
  };
  TfLiteContext context;
  PopulateContext(tensors, tensors_size, &context);
  ::tflite::ops::micro::AllOpsResolver resolver;
  const TfLiteRegistration* registration =
      resolver.FindOp(tflite::BuiltinOperator_PRELU, 1);
  TF_LITE_MICRO_EXPECT_NE(nullptr, registration);

  size_t init_data_size = 0;
  void* user_data = nullptr;
  if (registration->init) {
    user_data = registration->init(&context, nullptr, init_data_size);
  }
  int inputs_array_data[] = {2, 0, 1};
  TfLiteIntArray* inputs_array = IntArrayFromInts(inputs_array_data);
  int outputs_array_data[] = {1, 2};
  TfLiteIntArray* outputs_array = IntArrayFromInts(outputs_array_data);
  TfLiteIntArray* temporaries_array = IntArrayFromInitializer({0});
  TfLiteNode node;
  node.inputs = inputs_array;
  node.outputs = outputs_array;
  node.temporaries = temporaries_array;
  node.user_data = user_data;
  node.builtin_data = nullptr;
  node.custom_initial_data = nullptr;
  node.custom_initial_data_size = 0;
  node.delegate = nullptr;
  if (registration->prepare) {
    TF_LITE_MICRO_EXPECT_EQ(kTfLiteOk, registration->prepare(&context, &node));
  }
  TF_LITE_MICRO_EXPECT_NE(nullptr, registration->invoke);
  TF_LITE_MICRO_EXPECT_EQ(kTfLiteOk, registration->invoke(&context, &node));
  if (registration->free) {
    registration->free(&context, user_data);
  }
  for (int i = 0; i < output_dims_count; ++i) {
    TF_LITE_MICRO_EXPECT_EQ(expected_output_data.begin()[i], output_data[i]);
  }
}
}  // namespace
}  // namespace testing
}  // namespace tflite

TF_LITE_MICRO_TESTS_BEGIN

TF_LITE_MICRO_TEST(FloatPreluActivationsOpTest) {
  const int output_dims_count = 12;
  float output_data[output_dims_count];
  tflite::testing::TestPreluFloat({4, 1, 2, 2, 3},  // input shape
                                  {
                                      0.0f, 0.0f, 0.0f,     // Row 1, Column 1
                                      1.0f, 1.0f, 1.0f,     // Row 1, Column 2
                                      -1.0f, -1.0f, -1.0f,  // Row 2, Column 1
                                      -2.0f, -2.0f, -2.0f,  // Row 1, Column 2
                                  },
                                  {3, 1, 1, 3},        // alpha shape
                                  {0.0f, 1.0f, 2.0f},  // alpha values
                                  {
                                      0.0f, 0.0f, 0.0f,    // Row 1, Column 1
                                      1.0f, 1.0f, 1.0f,    // Row 1, Column 2
                                      0.0f, -1.0f, -2.0f,  // Row 2, Column 1
                                      0.0f, -2.0f, -4.0f,  // Row 1, Column 2
                                  },
                                  {4, 1, 2, 2, 3},  // output shape
                                  output_data);
}

TF_LITE_MICRO_TEST(QuantizedPreluActivationsOpTest) {
  using tflite::testing::F2Q;
  const float kMin = -1;
  const float kMax = 127.f / 128.f;
  const float kAlphaMin = -0.5f;
  const float kAlphaMax = 0.5f;
  const int output_dims_count = 12;
  uint8_t output_data[output_dims_count];
  tflite::testing::TestPreluQuantized(
      {4, 1, 2, 2, 3},  // input shape
      {F2Q(0.0f, kMin, kMax), F2Q(0.0f, kMin, kMax), F2Q(0.0f, kMin, kMax),
       F2Q(0.5f, kMin, kMax), F2Q(0.5f, kMin, kMax), F2Q(0.5f, kMin, kMax),
       F2Q(-1.0f, kMin, kMax), F2Q(-1.0f, kMin, kMax), F2Q(-1.0f, kMin, kMax),
       F2Q(-0.25f, kMin, kMax), F2Q(-0.25f, kMin, kMax),
       F2Q(-0.25f, kMin, kMax)},
      kMin, kMax, {3, 1, 1, 3},  // alpha shape
      {F2Q(0.0f, kMin, kMax), F2Q(0.5f, kMin, kMax), F2Q(-0.5f, kMin, kMax)},
      kMin, kMax,
      {F2Q(0.0f, kMin, kMax), F2Q(0.0f, kMin, kMax), F2Q(0.0f, kMin, kMax),
       F2Q(0.5f, kMin, kMax), F2Q(0.5f, kMin, kMax), F2Q(0.5f, kMin, kMax),
       F2Q(0.0f, kMin, kMax), F2Q(-0.5f, kMin, kMax), F2Q(0.5f, kMin, kMax),
       F2Q(0.0f, kMin, kMax), F2Q(-0.125f, kMin, kMax),
       F2Q(0.125f, kMin, kMax)},
      {4, 1, 2, 2, 3},  // output shape
      kMin, kMax, output_data);
}

TF_LITE_MICRO_TESTS_END


text:
const initialState = {
  isInitial: true,
  loading: false,
  data: [],
  errors: []
};

const FetchEpics = ({ fetchService: service }) => {
  const actionUpdater = () => state =>
    Object.assign({}, state, { loading: true });

  const successUpdater = data => state =>
    Object.assign({}, state, {
      isInitial: false,
      loading: false,
      errors: false,
      data
    });

  const errorUpdater = errors => state =>
    Object.assign({}, state, {
      isInitial: false,
      loading: false,
      errors
    });

  return {
    service,
    actionUpdater,
    successUpdater,
    errorUpdater
  };
};

export default ({ fetchService }) => {
  const epics = {
    fetch: FetchEpics({ fetchService })
  };

  return { initialState, epics };
};


text:
'use strict';

const Root = require('./root');
const Value = require('./value');

const AtWord = require('./atword');
const Colon = require('./colon');
const Comma = require('./comma');
const Comment = require('./comment');
const Func = require('./function');
const Numbr = require('./number');
const Operator = require('./operator');
const Paren = require('./paren');
const Str = require('./string');
const Word = require('./word');
const UnicodeRange = require('./unicode-range');

const tokenize = require('./tokenize');

const flatten = require('flatten');
const indexesOf = require('indexes-of');
const uniq = require('uniq');
const ParserError = require('./errors/ParserError');

function sortAscending (list) {
  return list.sort((a, b) => a - b);
}

module.exports = class Parser {
  constructor (input, options) {
    const defaults = { loose: false };

    // cache needs to be an array for values with more than 1 level of function nesting
    this.cache = [];
    this.input = input;
    this.options = Object.assign({}, defaults, options);
    this.position = 0;
    // we'll use this to keep track of the paren balance
    this.unbalanced = 0;
    this.root = new Root();

    let value = new Value();

    this.root.append(value);

    this.current = value;
    this.tokens = tokenize(input, this.options);
  }

  parse () {
    return this.loop();
  }

  colon () {
    let token = this.currToken;

    this.newNode(new Colon({
      value: token[1],
      source: {
        start: {
          line: token[2],
          column: token[3]
        },
        end: {
          line: token[4],
          column: token[5]
        }
      },
      sourceIndex: token[6]
    }));

    this.position ++;
  }

  comma () {
    let token = this.currToken;

    this.newNode(new Comma({
      value: token[1],
      source: {
        start: {
          line: token[2],
          column: token[3]
        },
        end: {
          line: token[4],
          column: token[5]
        }
      },
      sourceIndex: token[6]
    }));

    this.position ++;
  }

  comment () {
    let inline = false,
      value = this.currToken[1].replace(/\/\*|\*\//g, ''),
      node;

    if (this.options.loose && value.startsWith("//")) {
      value = value.substring(2);
      inline = true;
    }

    node = new Comment({
      value: value,
      inline: inline,
      source: {
        start: {
          line: this.currToken[2],
          column: this.currToken[3]
        },
        end: {
          line: this.currToken[4],
          column: this.currToken[5]
        }
      },
      sourceIndex: this.currToken[6]
    });

    this.newNode(node);
    this.position++;
  }

  error (message, token) {
    throw new ParserError(message + ` at line: ${token[2]}, column ${token[3]}`);
  }

  loop () {
    while (this.position < this.tokens.length) {
      this.parseTokens();
    }

    if (!this.current.last && this.spaces) {
      this.current.raws.before += this.spaces;
    }
    else if (this.spaces) {
      this.current.last.raws.after += this.spaces;
    }

    this.spaces = '';

    return this.root;
  }

  operator () {

    // if a +|- operator is followed by a non-word character (. is allowed) and
    // is preceded by a non-word character. (5+5)
    let char = this.currToken[1],
      node;

    if (char === '+' || char === '-') {
      // only inspect if the operator is not the first token, and we're only
      // within a calc() function: the only spec-valid place for math expressions
      if (!this.options.loose) {
        if (this.position > 0) {
          if (this.current.type === 'func' && this.current.value === 'calc') {
            // allow operators to be proceeded by spaces and opening parens
            if (this.prevToken[0] !== 'space' && this.prevToken[0] !== '(') {
              this.error('Syntax Error', this.currToken);
            }
            // valid: calc(1 - +2)
            // invalid: calc(1 -+2)
            else if (this.nextToken[0] !== 'space' && this.nextToken[0] !== 'word') {
              this.error('Syntax Error', this.currToken);
            }
            // valid: calc(1 - +2)
            // valid: calc(-0.5 + 2)
            // invalid: calc(1 -2)
            else if (this.nextToken[0] === 'word' && this.current.last.type !== 'operator' &&
                     this.current.last.value !== '(') {
              this.error('Syntax Error', this.currToken);
            }
          }
          // if we're not in a function and someone has doubled up on operators,
          // or they're trying to perform a calc outside of a calc
          // eg. +-4px or 5+ 5, throw an error
          else if (this.nextToken[0] === 'space'
                  || this.nextToken[0] === 'operator'
                  || this.prevToken[0] === 'operator') {
            this.error('Syntax Error', this.currToken);
          }
        }
      }

      if (!this.options.loose) {
        if (this.nextToken[0] === 'word') {
          return this.word();
        }
      }
      else {
        if ((!this.current.nodes.length || (this.current.last && this.current.last.type === 'operator')) && this.nextToken[0] === 'word') {
          return this.word();
        }
      }
    }

    node = new Operator({
      value: this.currToken[1],
      source: {
        start: {
          line: this.currToken[2],
          column: this.currToken[3]
        },
        end: {
          line: this.currToken[2],
          column: this.currToken[3]
        }
      },
      sourceIndex: this.currToken[4]
    });

    this.position ++;

    return this.newNode(node);
  }

  parseTokens () {
    switch (this.currToken[0]) {
      case 'space':
        this.space();
        break;
      case 'colon':
        this.colon();
        break;
      case 'comma':
        this.comma();
        break;
      case 'comment':
        this.comment();
        break;
      case '(':
        this.parenOpen();
        break;
      case ')':
        this.parenClose();
        break;
      case 'atword':
      case 'word':
        this.word();
        break;
      case 'operator':
        this.operator();
        break;
      case 'string':
        this.string();
        break;
      case 'unicoderange':
        this.unicodeRange();
        break;
      default:
        this.word();
        break;
    }
  }

  parenOpen () {
    let unbalanced = 1,
      pos = this.position + 1,
      token = this.currToken,
      last;

    // check for balanced parens
    while (pos < this.tokens.length && unbalanced) {
      let tkn = this.tokens[pos];

      if (tkn[0] === '(') {
        unbalanced++;
      }
      if (tkn[0] === ')') {
        unbalanced--;
      }
      pos ++;
    }

    if (unbalanced) {
      this.error('Expected closing parenthesis', token);
    }

    // ok, all parens are balanced. continue on

    last = this.current.last;

    if (last && last.type === 'func' && last.unbalanced < 0) {
      last.unbalanced = 0; // ok we're ready to add parens now
      this.current = last;
    }

    this.current.unbalanced ++;

    this.newNode(new Paren({
      value: token[1],
      source: {
        start: {
          line: token[2],
          column: token[3]
        },
        end: {
          line: token[4],
          column: token[5]
        }
      },
      sourceIndex: token[6]
    }));

    this.position ++;

    // url functions get special treatment, and anything between the function
    // parens get treated as one word, if the contents aren't not a string.
    if (this.current.type === 'func' && this.current.unbalanced &&
        this.current.value === 'url' && this.currToken[0] !== 'string' &&
        this.currToken[0] !== ')' && !this.options.loose) {

      let nextToken = this.nextToken,
        value = this.currToken[1],
        start = {
          line: this.currToken[2],
          column: this.currToken[3]
        };

      while (nextToken && nextToken[0] !== ')' && this.current.unbalanced) {
        this.position ++;
        value += this.currToken[1];
        nextToken = this.nextToken;
      }

      if (this.position !== this.tokens.length - 1) {
        // skip the following word definition, or it'll be a duplicate
        this.position ++;

        this.newNode(new Word({
          value,
          source: {
            start,
            end: {
              line: this.currToken[4],
              column: this.currToken[5]
            }
          },
          sourceIndex: this.currToken[6]
        }));
      }
    }
  }

  parenClose () {
    let token = this.currToken;

    this.newNode(new Paren({
      value: token[1],
      source: {
        start: {
          line: token[2],
          column: token[3]
        },
        end: {
          line: token[4],
          column: token[5]
        }
      },
      sourceIndex: token[6]
    }));

    this.position ++;

    if (this.position >= this.tokens.length - 1 && !this.current.unbalanced) {
      return;
    }

    this.current.unbalanced --;

    if (this.current.unbalanced < 0) {
      this.error('Expected opening parenthesis', token);
    }

    if (!this.current.unbalanced && this.cache.length) {
      this.current = this.cache.pop();
    }
  }

  space () {
    let token = this.currToken;
    // Handle space before and after the selector
    if (this.position === (this.tokens.length - 1) || this.nextToken[0] === ',' || this.nextToken[0] === ')') {
      this.current.last.raws.after += token[1];
      this.position ++;
    }
    else {
      this.spaces = token[1];
      this.position ++;
    }
  }

  unicodeRange () {
    let token = this.currToken;

    this.newNode(new UnicodeRange({
      value: token[1],
      source: {
        start: {
          line: token[2],
          column: token[3]
        },
        end: {
          line: token[4],
          column: token[5]
        }
      },
      sourceIndex: token[6]
    }));

    this.position ++;
  }

  splitWord () {
    let nextToken = this.nextToken,
      word = this.currToken[1],
      rNumber = /^[\+\-]?((\d+(\.\d*)?)|(\.\d+))([eE][\+\-]?\d+)?/,

      // treat css-like groupings differently so they can be inspected,
      // but don't address them as anything but a word, but allow hex values
      // to pass through.
      rNoFollow = /^(?!\#([a-z0-9]+))[\#\{\}]/gi,

      hasAt, indices;

    if (!rNoFollow.test(word)) {
      while (nextToken && nextToken[0] === 'word') {
        this.position ++;

        let current = this.currToken[1];
        word += current;

        nextToken = this.nextToken;
      }
    }

    hasAt = indexesOf(word, '@');
    indices = sortAscending(uniq(flatten([[0], hasAt])));

    indices.forEach((ind, i) => {
      let index = indices[i + 1] || word.length,
        value = word.slice(ind, index),
        node;

      if (~hasAt.indexOf(ind)) {
        node = new AtWord({
          value: value.slice(1),
          source: {
            start: {
              line: this.currToken[2],
              column: this.currToken[3] + ind
            },
            end: {
              line: this.currToken[4],
              column: this.currToken[3] + (index - 1)
            }
          },
          sourceIndex: this.currToken[6] + indices[i]
        });
      }
      else if (rNumber.test(this.currToken[1])) {
        let unit = value.replace(rNumber, '');

        node = new Numbr({
          value: value.replace(unit, ''),
          source: {
            start: {
              line: this.currToken[2],
              column: this.currToken[3] + ind
            },
            end: {
              line: this.currToken[4],
              column: this.currToken[3] + (index - 1)
            }
          },
          sourceIndex: this.currToken[6] + indices[i],
          unit
        });
      }
      else {
        node = new (nextToken && nextToken[0] === '(' ? Func : Word)({
          value,
          source: {
            start: {
              line: this.currToken[2],
              column: this.currToken[3] + ind
            },
            end: {
              line: this.currToken[4],
              column: this.currToken[3] + (index - 1)
            }
          },
          sourceIndex: this.currToken[6] + indices[i]
        });

        if (node.constructor.name === 'Word') {
          node.isHex = /^#(.+)/.test(value);
          node.isColor = /^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(value);
        }
        else {
          this.cache.push(this.current);
        }
      }

      this.newNode(node);

    });

    this.position ++;
  }

  string () {
    let token = this.currToken,
      value = this.currToken[1],
      rQuote = /^(\"|\')/,
      quoted = rQuote.test(value),
      quote = '',
      node;

    if (quoted) {
      quote = value.match(rQuote)[0];
      // set value to the string within the quotes
      // quotes are stored in raws
      value = value.slice(1, value.length - 1);
    }

    node = new Str({
      value,
      source: {
        start: {
          line: token[2],
          column: token[3]
        },
        end: {
          line: token[4],
          column: token[5]
        }
      },
      sourceIndex: token[6],
      quoted
    });

    node.raws.quote = quote;

    this.newNode(node);
    this.position++;
  }

  word () {
    return this.splitWord();
  }

  newNode (node) {
    if (this.spaces) {
      node.raws.before += this.spaces;
      this.spaces = '';
    }

    return this.current.append(node);
  }

  get currToken () {
    return this.tokens[this.position];
  }

  get nextToken () {
    return this.tokens[this.position + 1];
  }

  get prevToken () {
    return this.tokens[this.position - 1];
  }
};


text:
'use strict';

var gulp = require('gulp'),
  gulpLoadPlugins = require('gulp-load-plugins'),
  request = require('request'),
  KarmaServer = require('karma').Server,
  fs = require('fs'),
  path = require('path');

var plugins = gulpLoadPlugins();

process.env.NODE_ENV = 'test';

gulp.task('test', ['startServer', 'stopServer']);
gulp.task('startServer', function(done) {
  var promise = require('../server.js');
  promise.then(function(app){done();});
});
gulp.task('stopServer', ['runKarma'], function() {
  process.exit();
});
gulp.task('runMocha', ['startServer'], function () {
  return gulp.src('./packages/**/server/tests/**/*.spec.js', {read: false})
    .pipe(plugins.mocha({
      reporter: 'spec'
    }))
    .on('error', function(error){
      console.error(error);
      this.emit('end');
    });
});
gulp.task('runKarma', ['runMocha'], function (done) {

  var karma = new KarmaServer({
    configFile: __dirname + '/../karma.conf.js',
    singleRun: true
  }, function () {
    done();
  });

  karma.start();
});


text:
package br.com.jmsstudio.jumper.elements;

import android.content.Context;
import android.graphics.Canvas;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

import br.com.jmsstudio.jumper.graphics.Screen;

/**
 * Created by jms on 13/01/17.
 */
public class Pipes {
    private static final int PIPES_SIZE = 5;
    private static final int DISTANCE_BETWEEN_PIPES = 300;

    private List<Pipe> pipes = new ArrayList<>();
    private Screen screen;
    private Score score;
    private Context context;

    public Pipes(Screen screen, Score score, Context context) {
        this.screen = screen;
        this.score = score;
        this.context = context;
        int pos = 500;

        for (int i = 0; i < PIPES_SIZE; i++) {
            Pipe pipe = new Pipe(screen, pos, context);
            pipes.add(pipe);
            pos += DISTANCE_BETWEEN_PIPES;
        }
    }

    public void draw(Canvas canvas) {
        for (Pipe pipe : pipes) {
            pipe.draw(canvas);
        }
    }

    public void move() {
        ListIterator<Pipe> iterator = pipes.listIterator();

        while (iterator.hasNext()) {
            Pipe pipe = iterator.next();
            pipe.move();
            if (pipe.isOutOfTheScreen()) {
                this.score.inc();

                //removes the current item from the iterator
                iterator.remove();

                Pipe newPipe = new Pipe(this.screen, getLastPipePosition() + DISTANCE_BETWEEN_PIPES, this.context);

                //adds the new pipe to the iterator
                iterator.add(newPipe);
            }
        }
    }

    /**
     * Returns the left position of the uttermost pipe in the list
     */
    private int getLastPipePosition() {
        int lastPosition = 0;

        for (Pipe pipe : pipes) {
            lastPosition = Math.max(lastPosition, pipe.getPosition());
        }

        return lastPosition;
    }

    public boolean collidedWithBird(Bird bird) {
        boolean collided = false;
        Iterator<Pipe> pipeIterator = pipes.iterator();

        while (pipeIterator.hasNext() && !collided) {
            Pipe pipe = pipeIterator.next();
            collided = pipe.collidedWithBird(bird);
        }

        return collided;
    }
}


text:
var mesh = require('..');
var quickconnect = require('rtc-quickconnect');
var test = require('tape');
var roomId = require('uuid').v4();
var joinMesh = require('./helpers/joinmesh');
var members = [];

test('create mesh participant:0', joinMesh(roomId, members));
test('create mesh participant:1', joinMesh(roomId, members));

test('member:0 has no initial value for "test"', function(t) {
  t.plan(1);
  t.equal(members[0].get('test'), undefined, 'test not defined');
});

test('member:0 will wait for a value for test using "retrieve"', function(t) {
  t.plan(3);

  members[0].retrieve('test', function(err, value) {
    t.ifError(err, 'no error');
    t.equal(value, 'hello', 'value == expected');
  });

  members[1].set('test', 'hello');
  t.equal(members[1].get('test'), 'hello', 'set value for "test" in member:1');
});

test('member:0 will get the currently set value for test using "retrieve"', function(t) {
  t.plan(2);

  members[0].retrieve('test', function(err, value) {
    t.ifError(err, 'no error');
    t.equal(value, 'hello', 'value == expected');
  });
});


text:
{% load i18n %}
{% load pagination_tags %}
{% autopaginate document_list 5 %}

{% if document_type %}

{% trans "Showing only documents of type:" %} {{ document_type }}

{% endif %}

{% if document_list %}

{% for document in document_list %}

    {{ document }} ({{ document.get_size|filesizeformat }})

{% endfor %}

{% else %}

{% trans "No documents found." %}

{% endif %}

{% paginate %}


text:
angular.module('angularApp', ['ui.router', 'ui.bootstrap', 'xeditable'])

.config([
'$stateProvider',
'$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
    $stateProvider
        .state('main', {
            url: '/main',
            templateUrl: '/main.html',
            controller: 'MainCtrl',
			onEnter: ['$state', 'auth', 'items', 'subitems', function($state, auth, items, subitems){
                if(!auth.isLoggedIn()){
                    $state.go('home');
                } else {
					return items.getAll();
				}
            }]
        })
		.state('login', {
            url: '/login',
            templateUrl: '/login.html',
            controller: 'AuthCtrl',
            onEnter: ['$state', 'auth', function($state, auth){
                if(auth.isLoggedIn()){
                    $state.go('main');
                }
            }]
        })
        .state('register', {
            url: '/register',
            templateUrl: '/register.html',
            controller: 'AuthCtrl',
            onEnter: ['$state', 'auth', function($state, auth){
                if(auth.isLoggedIn()){
                    $state.go('main');
                }
            }]
        })
        .state('forgot', {
            url: '/forgot',
            templateUrl: '/forgot.html',
            controller: 'AuthCtrl',
             onEnter: ['$state', 'auth', function($state, auth){
                if(auth.isLoggedIn()){
                    $state.go('main');
                }
            }]
        })
	    .state('home', {
            url: '/home',
            templateUrl: '/home.html',
            controller: 'HomeCtrl',
			onEnter: ['$state', 'auth', function($state, auth){
                if(auth.isLoggedIn()){
                    $state.go('main');
                }
            }]
        })

	 $urlRouterProvider.otherwise('home');
}])

.factory('auth', ['$http', '$window', function($http, $window){
   var auth = {};

    auth.saveToken = function (token){
        $window.localStorage['demo-token'] = token;
    };

    auth.getToken = function (){
        return $window.localStorage['demo-token'];
    };

    auth.isLoggedIn = function(){
        var token = auth.getToken();

        if(token){
            var payload = JSON.parse($window.atob(token.split('.')[1]));

            return payload.exp > Date.now() / 1000;
        } else {
            return false;
        }
    };

    auth.currentUser = function(){
        if(auth.isLoggedIn()){
            var token = auth.getToken();

            var payload = JSON.parse($window.atob(token.split('.')[1]));

            return payload.username;
        }
    };

     auth.forgot = function(user){
        return $http.post('/forgot', user).success(function(data){
            auth.saveToken(data.token);
        });
    };

     auth.resetPassword = function(emailToken){
        return $http.post('/reset/' + emailToken).success(function(data){
            auth.saveToken(data.token);
        });
    };

    auth.register = function(user){
        return $http.post('/register', user).success(function(data){
            auth.saveToken(data.token);
        });
    };

    auth.logIn = function(user){
        return $http.post('/login', user).success(function(data){
            auth.saveToken(data.token);
        });
    };

    auth.removeCookie = function() {
        $window.localStorage.removeItem('demo-token');
    };

    auth.logOut = function(){
        $window.localStorage.removeItem('demo-token');
         var str = $window.location + '';
         var loc = str.split("#");

       $window.location = loc[0];
    };

    return auth;

}])

.factory('items', ['$http', 'auth', function($http, auth){
    var o = {
        items: []
    };

    o.getAll = function() {
        return $http.get('/items', {
        headers: {Authorization: 'Bearer '+auth.getToken()}
    }).success(function(data){
            angular.copy(data, o.items);
        });
    };

    o.create = function(item) {
        return $http.post('/items', item, {
            headers: {Authorization: 'Bearer '+auth.getToken()}
        }).success(function(data){
            o.items.push(data);
        });
    };

	o.update = function(item) {
        return $http.put('/items/' + item._id, item, {
            headers: {Authorization: 'Bearer '+auth.getToken()}
        }).success(function(data){
        });
    };

	o.delete = function(id) {
        return $http.delete('/items/'+ id, {
        	headers: {Authorization: 'Bearer '+auth.getToken()}
    }).success(function(data){
        });
    };

	o.addSubitem = function(id, subitem) {
  		return $http.post('/items/' + id + '/subitems', subitem, {
    		headers: {Authorization: 'Bearer '+auth.getToken()}
  		}).success(function(data){
        });
	};

    return o;

}])

.factory('subitems', ['$http', 'auth', function($http, auth){
    var o = {
        subitems: []
    };

	o.get = function(id) {
        return $http.get('/subitems/' + id, {
            headers: {Authorization: 'Bearer '+auth.getToken()}
    }).then(function(res){
            return res.data;
        });
    };

    o.getSubitems = function(itemId) {
        return $http.get('/items/' + itemId + '/subitems', {
            headers: {Authorization: 'Bearer '+auth.getToken()}
    }).then(function(res){
            return res.data;
        });
    };

    o.create = function(subitem) {
        return $http.post('/items/' + subitem.itemId + '/subitems', subitem, {
            headers: {Authorization: 'Bearer '+auth.getToken()}
        }).then(function(res){
            return res.data;
        });
    };

	o.update = function(subitem) {
        return $http.put('/items/' + subitem.itemId + '/subitems', subitem, {
            headers: {Authorization: 'Bearer '+auth.getToken()}
        }).success(function(data){
       });
    };

	o.delete = function(subitemId) {
        return $http.delete('/items/'+ subitemId + '/subitems', {
        	headers: {Authorization: 'Bearer '+auth.getToken()}
    	}).success(function(data){
       });
    };

    return o;

}])

.controller('MainCtrl', [
'$scope',
'$http',
'$window',
'auth',
'items',
'subitems',
 function($scope, $http, $window, auth, items, subitems){

     $scope.isLoggedIn = auth.isLoggedIn;

     $scope.currentUser = auth.currentUser;

	 $scope.subitemData = {};

     $scope.items = items.items;

     $scope.editAllBtn = false;

	 $scope.addItem = function(){
  		if(!$scope.itemName || $scope.itemName === '') { return; }
  		items.create({
    		itemName: $scope.itemName,
  		});
		$scope.itemName = '';
	 }

	 $scope.editItemName = function($data, item){
		item.itemName = $data;
		items.update(item);
	 };

	 $scope.deleteItem = function(item){
		var index = $scope.items.indexOf(item);

		$scope.items.splice(index, 1);
        items.delete(item._id);
     };

	 $scope.getSubitems = function(id) {
      $http.get('/items/'+ id +'/subitems', {
            headers: {Authorization: 'Bearer '+auth.getToken()}
    	}).success(function(data) {
            	$scope.subitems = data;
		  }).error(function(data) {
	  		});
     };

	 $scope.addSubitem = function(id){
		if(!$scope.subitemData.subitemName || $scope.subitemData.subitemName === '') { return; }
  		items.addSubitem(id, {
    		subitemName: $scope.subitemData.subitemName,
			author: auth.currentUser,
  		}).success(function(subitem) {
			$scope.subitems = $scope.getSubitems(id);
  		});
  		$scope.subitemData.subitemName = '';
	 };

	 $scope.editSubitemName = function($data, subitem){
		subitem.subitemName = $data;
		subitems.update(subitem).success(function(subitem) {
			$scope.subitems = $scope.getSubitems(subitem.itemId);
  		});
	 };

     $scope.makeImportant = function(item) {
		item.important = !item.important
		items.update(item);
     };

     $scope.makeDone = function(subitem) {
		subitem.done = !subitem.done;
		subitems.update(subitem);
     };

	 $scope.deleteSubitem = function(id) {
		 subitems.delete(id);
	 };
}])

.controller('AuthCtrl', [
'$scope',
'$state',
'$window',
'auth',
function($scope, $state, $window, auth){
  $scope.user = {};

  $scope.register = function(){
    auth.register($scope.user).error(function(error){
      $scope.error = error;
    }).then(function(){
      $state.go('main');
    });
  };

  $scope.reset = function() {
    auth.reset($scope.user);
  };

  $scope.logIn = function(){
    $scope.user.username.toLowerCase();
    auth.logIn($scope.user).error(function(error){
      $scope.error = error;
    }).then(function(){
      $state.go('main');
    });
  };

  $scope.forgot = function(){
	auth.forgot($scope.user).success(function(data){
		$scope.success = data;
	}).error(function(error){
		$scope.error = error;
	}).then(function(){
		window.localStorage.removeItem('demo-token');
	});
  };
}])

.controller('NavCtrl', [
'$scope',
'$state',
'auth',
function($scope, $state, auth){

  $scope.isLoggedIn =  auth.isLoggedIn;
  $scope.currentUser = auth.currentUser;
  $scope.logOut = auth.logOut;
}])

.controller('HomeCtrl', [
'$scope',
'auth',
 function($scope, auth){

     $scope.isLoggedIn = auth.isLoggedIn;

 }])

.run(function(editableOptions) {
  editableOptions.theme = 'bs3';
});