text:
/* eslint-disable */
;(function(root, factory) {
  if (typeof define === 'function' && define.amd) { // AMD
    define([], factory);
  } else if (typeof exports === 'object') { // Node.js
    module.exports = factory();
  } else { // Browser
    var messages = factory();
    for (var key in messages) {
      root.Blockly.Msg[key] = messages[key];
    }
  }
}(this, function() {
// This file was automatically generated.  Do not modify.

'use strict';

const messages = Object.create(null);

messages["ADD_COMMENT"] = "Aldoni komenton";
messages["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Ne povas forigi la variablon '%1' ĉar ĝi estas parto de la difino de la funkcio '%2'";
messages["CHANGE_VALUE_TITLE"] = "Ŝangi valoron:";
messages["CLEAN_UP"] = "Purigi blokojn";
messages["COLLAPSED_WARNINGS_WARNING"] = "Falditaj blokoj enhavas avertojn.";
messages["COLLAPSE_ALL"] = "Faldi blokojn";
messages["COLLAPSE_BLOCK"] = "Faldi blokon";
messages["COLOUR_BLEND_COLOUR1"] = "koloro 1";
messages["COLOUR_BLEND_COLOUR2"] = "koloro 2";
messages["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp";  // untranslated
messages["COLOUR_BLEND_RATIO"] = "proporcio";
messages["COLOUR_BLEND_TITLE"] = "miksi";
messages["COLOUR_BLEND_TOOLTIP"] = "Kunmiksas du kolorojn laŭ specifita proporcio (0,0 - 1,0).";
messages["COLOUR_PICKER_HELPURL"] = "https://eo.wikipedia.org/wiki/Koloro";
messages["COLOUR_PICKER_TOOLTIP"] = "Elekti koloron el la paletro.";
messages["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com";  // untranslated
messages["COLOUR_RANDOM_TITLE"] = "hazarda koloro";
messages["COLOUR_RANDOM_TOOLTIP"] = "Elekti hazardan koloron.";
messages["COLOUR_RGB_BLUE"] = "blua";
messages["COLOUR_RGB_GREEN"] = "verda";
messages["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html";  // untranslated
messages["COLOUR_RGB_RED"] = "ruĝa";
messages["COLOUR_RGB_TITLE"] = "kolorigi per";
messages["COLOUR_RGB_TOOLTIP"] = "Kreas koloron kun specifita kvanto de ruĝo, verdo, kaj bluo. Ĉiuj valoroj devas esti inter 0 kaj 100.";
messages["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks";  // untranslated
messages["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "eliri el la ciklo";
messages["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "daŭrigi je la venonta ripeto de la ciklo";
messages["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Eliri el la enhava ciklo.";
messages["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Pretersalti la ceteron de tiu ĉi ciklo kaj daŭrigi je la venonta ripeto.";
messages["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Averto: tiu ĉi bloko uzeblas nur ene de ciklo.";
messages["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each";  // untranslated
messages["CONTROLS_FOREACH_TITLE"] = "por ĉiu elemento %1 en la listo %2";
messages["CONTROLS_FOREACH_TOOLTIP"] = "Pri ĉiu elemento en listo, difinas la variablon '%1' al la elemento, kaj faras kelkajn ordonojn.";
messages["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with";  // untranslated
messages["CONTROLS_FOR_TITLE"] = "kalkuli kun variablo %1 ekde %2 ĝis %3 per diferenco %4";
messages["CONTROLS_FOR_TOOLTIP"] = "Varias la variablon '%1', ekde la komenca nombro ĝis la fina nombro, laŭ la specifita diferenco; dume rulas la specifitajn blokojn.";
messages["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Aldoni kondiĉon al la bloko 'se'";
messages["CONTROLS_IF_ELSE_TOOLTIP"] = "Aldoni 'aliokaze' kondiĉon al la 'se' bloko.";
messages["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse";  // untranslated
messages["CONTROLS_IF_IF_TOOLTIP"] = "Aldoni, forigi aŭ reorganizi partojn por reagordi la 'se'-blokon.";
messages["CONTROLS_IF_MSG_ELSE"] = "alie";
messages["CONTROLS_IF_MSG_ELSEIF"] = "alie se";
messages["CONTROLS_IF_MSG_IF"] = "se";
messages["CONTROLS_IF_TOOLTIP_1"] = "Plenumi ordonojn se la valoro estas vero.";
messages["CONTROLS_IF_TOOLTIP_2"] = "Plenumi la unuan blokon de ordonoj se la valoro estas vero, se ne, la duan.";
messages["CONTROLS_IF_TOOLTIP_3"] = "Se la unua valoro estas vero, do faras la unuan blokon de ordonoj. Alie, se la dua valoro estas vero, do faras la duan blokon de ordonoj.";
messages["CONTROLS_IF_TOOLTIP_4"] = "Se la unua valoro estas vero, do faras la unuan blokon de ordonoj. Alie, se la dua valoro estas vero, do faras la duan blokon de ordonoj. Se neniu el la du valoroj estas vero, do faras la lastan blokon de ordonoj.";
messages["CONTROLS_REPEAT_HELPURL"] = "https://eo.wikipedia.org/wiki/Iteracio";
messages["CONTROLS_REPEAT_INPUT_DO"] = "fari";
messages["CONTROLS_REPEAT_TITLE"] = "ripeti %1 fojojn";
messages["CONTROLS_REPEAT_TOOLTIP"] = "Plenumas kelkajn ordonojn plurfoje.";
messages["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat";  // untranslated
messages["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ripeti ĝis";
messages["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ripeti dum";
messages["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Plenumi ordonojn dum valoro egalas malvero.";
messages["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Plenumi ordonojn dum la valoro egalas veron.";
messages["DELETE_ALL_BLOCKS"] = "Ĉu forigi ĉiujn %1 blokojn?";
messages["DELETE_BLOCK"] = "Forigi blokon";
messages["DELETE_VARIABLE"] = "Forigi la variablon '%1'";
messages["DELETE_VARIABLE_CONFIRMATION"] = "Ĉu forigi %1 uzojn de la variablo '%2'?";
messages["DELETE_X_BLOCKS"] = "Forigi %1 blokojn";
messages["DIALOG_CANCEL"] = "Nuligi";
messages["DIALOG_OK"] = "Bone";
messages["DISABLE_BLOCK"] = "Malŝalti blokon";
messages["DUPLICATE_BLOCK"] = "Duobligi";
messages["DUPLICATE_COMMENT"] = "Duobligi Komenton";
messages["ENABLE_BLOCK"] = "Ŝalti blokon";
messages["EXPAND_ALL"] = "Malfaldi blokojn";
messages["EXPAND_BLOCK"] = "Malfaldi blokon";
messages["EXTERNAL_INPUTS"] = "Eksteraj eniroj";
messages["HELP"] = "Helpo";
messages["INLINE_INPUTS"] = "Entekstaj eniroj";
messages["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list";  // untranslated
messages["LISTS_CREATE_EMPTY_TITLE"] = "krei malplenan liston";
messages["LISTS_CREATE_EMPTY_TOOLTIP"] = "Liveri liston, de longo 0, sen datenaj rikordoj";
messages["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "listo";
messages["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Aldoni, forigi aŭ ordigi partojn por reagordi la listan blokon.";
messages["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with";  // untranslated
messages["LISTS_CREATE_WITH_INPUT_WITH"] = "krei liston kun";
messages["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Aldoni elementon al la listo.";
messages["LISTS_CREATE_WITH_TOOLTIP"] = "Krei liston kun ajna nombro de elementoj.";
messages["LISTS_GET_INDEX_FIRST"] = "unuan";
messages["LISTS_GET_INDEX_FROM_END"] = "#el la fino";
messages["LISTS_GET_INDEX_FROM_START"] = "#";  // untranslated
messages["LISTS_GET_INDEX_GET"] = "akiri";
messages["LISTS_GET_INDEX_GET_REMOVE"] = "akiri kaj forigi";
messages["LISTS_GET_INDEX_LAST"] = "lastan";
messages["LISTS_GET_INDEX_RANDOM"] = "hazardan";
messages["LISTS_GET_INDEX_REMOVE"] = "forigi";
messages["LISTS_GET_INDEX_TAIL"] = "";  // untranslated
messages["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "La unua elemento en la listo esto liverita.";
messages["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Liveri la elementon ĉe la specifita pozicio en listo.";
messages["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Liveri la lastan elementon en la listo.";
messages["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Hazarda elemento en la listo estos liverita.";
messages["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "La unua elemento en la listo estos liverita kaj forigita.";
messages["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Liveri kaj forigi la elementon en la specifita pozicio de la listo.";
messages["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Forigi kaj liveri la lastan elementon en listo.";
messages["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Hazarda elemento en la listo estos liverita kaj forigita.";
messages["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "La unua elemento en la listo estos forigita.";
messages["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "La elemento en la specifita pozicio en la listo estos forigita.";
messages["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "La lasta elemento en la listo estos forigita.";
messages["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Hazarda elemento en la listo estos forigita.";
messages["LISTS_GET_SUBLIST_END_FROM_END"] = "ĝis elemento de inversa numero";
messages["LISTS_GET_SUBLIST_END_FROM_START"] = "ĝis elemento de numero";
messages["LISTS_GET_SUBLIST_END_LAST"] = "ĝis la lasta elemento";
messages["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist";  // untranslated
messages["LISTS_GET_SUBLIST_START_FIRST"] = "akiri subliston ekde la unua elemento";
messages["LISTS_GET_SUBLIST_START_FROM_END"] = "akiri subliston ekde elemento de inversa numero";
messages["LISTS_GET_SUBLIST_START_FROM_START"] = "akiri subliston ekde elemento de numero";
messages["LISTS_GET_SUBLIST_TAIL"] = "";  // untranslated
messages["LISTS_GET_SUBLIST_TOOLTIP"] = "Kreas kopion de la specifita parto de listo.";
messages["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 estas la lasta elemento.";
messages["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 estas la unua elemento.";
messages["LISTS_INDEX_OF_FIRST"] = "trovi la unuan aperon de elemento";
messages["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list";  // untranslated
messages["LISTS_INDEX_OF_LAST"] = "trovi la lastan aperon de elemento";
messages["LISTS_INDEX_OF_TOOLTIP"] = "La indekso de la unua/lasta apero de la elemento en la listo estos liverita. %1 estos liverita se la elemento ne estas trovita.";
messages["LISTS_INLIST"] = "en la listo";
messages["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty";  // untranslated
messages["LISTS_ISEMPTY_TITLE"] = "%1 malplenas";
messages["LISTS_ISEMPTY_TOOLTIP"] = "Liveri veron, se la listo malplenas.";
messages["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of";  // untranslated
messages["LISTS_LENGTH_TITLE"] = "longo de %1";
messages["LISTS_LENGTH_TOOLTIP"] = "Liveri la longon de listo.";
messages["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with";  // untranslated
messages["LISTS_REPEAT_TITLE"] = "krei liston kun elemento %1 ripetita %2 fojojn";
messages["LISTS_REPEAT_TOOLTIP"] = "Listo kun la specifita nombro de elementoj, kiuj havos la donitan valoron, estos kreita.";
messages["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list";  // untranslated
messages["LISTS_REVERSE_MESSAGE0"] = "inversigi liston %1";
messages["LISTS_REVERSE_TOOLTIP"] = "Inversigi kopion de listo.";
messages["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set";  // untranslated
messages["LISTS_SET_INDEX_INPUT_TO"] = "kiel";
messages["LISTS_SET_INDEX_INSERT"] = "enmeti je";
messages["LISTS_SET_INDEX_SET"] = "difini";
messages["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Antaŭaldonas la elementon ĉe la komenco de listo.";
messages["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Enigas la elementon ĉe specifita pozicio en listo.";
messages["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Postaldonas la elementon ĉe la fino de listo.";
messages["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Enigas la elementon hazarde en listo.";
messages["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Difinas la unua elementon en listo.";
messages["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Difinas la elementon ĉe la specifita pozicio en listo";
messages["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Difinas la lastan elementon en listo.";
messages["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Difinas hazardan elementon en listo.";
messages["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list";
messages["LISTS_SORT_ORDER_ASCENDING"] = "kreskante";
messages["LISTS_SORT_ORDER_DESCENDING"] = "malkreskante";
messages["LISTS_SORT_TITLE"] = "ordigi %1 %2 liston %3";
messages["LISTS_SORT_TOOLTIP"] = "Ordigas kopion de listo.";
messages["LISTS_SORT_TYPE_IGNORECASE"] = "alfabete, ignorante usklon";
messages["LISTS_SORT_TYPE_NUMERIC"] = "nombre";
messages["LISTS_SORT_TYPE_TEXT"] = "alfabete";
messages["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists";  // untranslated
messages["LISTS_SPLIT_LIST_FROM_TEXT"] = "fari liston el teksto";
messages["LISTS_SPLIT_TEXT_FROM_LIST"] = "fari tekston el listo";
messages["LISTS_SPLIT_TOOLTIP_JOIN"] = "Kunigas liston de tekstoj en unu tekston, kun apartigilo inter la elementoj.";
messages["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Disdividas tekston en liston da tekstoj, laŭ apartigilo.";
messages["LISTS_SPLIT_WITH_DELIMITER"] = "kun apartigilo";
messages["LOGIC_BOOLEAN_FALSE"] = "falsa";
messages["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values";  // untranslated
messages["LOGIC_BOOLEAN_TOOLTIP"] = "Liveri ĉu veron ĉu malveron.";
messages["LOGIC_BOOLEAN_TRUE"] = "vera";
messages["LOGIC_COMPARE_HELPURL"] = "https://eo.wikipedia.org/wiki/Neegala%C4%B5o_(pli_granda,_malpli_granda)";
messages["LOGIC_COMPARE_TOOLTIP_EQ"] = "Liveri veron, se la du eniroj egalas.";
messages["LOGIC_COMPARE_TOOLTIP_GT"] = "Liveri veron, se la unua eniro estas pli granda ol la dua.";
messages["LOGIC_COMPARE_TOOLTIP_GTE"] = "Vero estos liverita, se la unua eniro estas pli granda aŭ egala al la dua.";
messages["LOGIC_COMPARE_TOOLTIP_LT"] = "Liveri veron, se la unua eniro estas pli malgranda ol la dua.";
messages["LOGIC_COMPARE_TOOLTIP_LTE"] = "Vero estos liverita, se la unua eniro estas pli eta aŭ egala al la dua.";
messages["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Liveri veron, se la du eniroj ne egalas.";
messages["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not";  // untranslated
messages["LOGIC_NEGATE_TITLE"] = "maligi %1";
messages["LOGIC_NEGATE_TOOLTIP"] = "Liveri veron, se la eniro egalas malveron. Liveri malveron, se la eniro egalas veron.";
messages["LOGIC_NULL"] = "senvalora";
messages["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type";  // untranslated
messages["LOGIC_NULL_TOOLTIP"] = "Liveras senvaloron.";
messages["LOGIC_OPERATION_AND"] = "kaj";
messages["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations";  // untranslated
messages["LOGIC_OPERATION_OR"] = "aŭ";
messages["LOGIC_OPERATION_TOOLTIP_AND"] = "Liveri veron, se la du eniroj egalas veron.";
messages["LOGIC_OPERATION_TOOLTIP_OR"] = "Liveri veron, se almenaŭ unu el la eniroj egalas veron.";
messages["LOGIC_TERNARY_CONDITION"] = "testi";
messages["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:";  // untranslated
messages["LOGIC_TERNARY_IF_FALSE"] = "se estas malvero";
messages["LOGIC_TERNARY_IF_TRUE"] = "se estas vero";
messages["LOGIC_TERNARY_TOOLTIP"] = "Kontroli la kondiĉon en 'testo'. Se la kondiĉo egalas veron, liveri la valoron 'se estas vero', aliokaze liveri la valoron 'se estas malvero'.";
messages["MATH_ADDITION_SYMBOL"] = "+";  // untranslated
messages["MATH_ARITHMETIC_HELPURL"] = "https://eo.wikipedia.org/wiki/Aritmetiko";
messages["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Liveri la sumon de la du nombroj.";
messages["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Liveri la kvocienton de la du nombroj.";
messages["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Liveri la diferencon inter la du nombroj.";
messages["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "La produto de la du numeroj estos liverita.";
messages["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Livero la tian potencon de la unua nombro, kia la dua nombro estas";
messages["MATH_ATAN2_HELPURL"] = "https://eo.wikipedia.org/wiki/Inversa_trigonometria_funkcio#Duargumenta_varianto_de_tangentarko";
messages["MATH_ATAN2_TITLE"] = "atan2 de X:%1 Y:%2";
messages["MATH_ATAN2_TOOLTIP"] = "Liveras la arkotangenton de punkto (X, Y) en gradoj inter -180 kaj 180.";
messages["MATH_CHANGE_HELPURL"] = "https://eo.wikipedia.org/wiki/Kremento";
messages["MATH_CHANGE_TITLE"] = "krementi %1 per %2";
messages["MATH_CHANGE_TOOLTIP"] = "Aldoni nombron al variablo '%1'.";
messages["MATH_CONSTANT_HELPURL"] = "https://eo.wikipedia.org/wiki/Matematika_konstanto";
messages["MATH_CONSTANT_TOOLTIP"] = "Liveras unu el la ofte uzataj konstantoj: π (3,141…), e (2,718…), φ (1,618…), √2 (1,414…), √½ (0,707…), aŭ ∞ (malfinio).";
messages["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)";  // untranslated
messages["MATH_CONSTRAIN_TITLE"] = "limigi %1 inter %2 kaj %3";
messages["MATH_CONSTRAIN_TOOLTIP"] = "La nombro estos limigita tiel ke ĝi egalas la limojn aŭ troviĝas inter ili.";
messages["MATH_DIVISION_SYMBOL"] = "÷";  // untranslated
messages["MATH_IS_DIVISIBLE_BY"] = "estas dividebla de";
messages["MATH_IS_EVEN"] = "estas para";
messages["MATH_IS_NEGATIVE"] = "estas negativa";
messages["MATH_IS_ODD"] = "estas nepara";
messages["MATH_IS_POSITIVE"] = "estas pozitiva";
messages["MATH_IS_PRIME"] = "estas primo";
messages["MATH_IS_TOOLTIP"] = "Vero aŭ malvero estos liverita, depende de la rezulto de kontrolo, ĉu nombro estas para, nepara, pozitiva, negativa, aŭ dividebla de iu nombro.";
messages["MATH_IS_WHOLE"] = "estas entjero";
messages["MATH_MODULO_HELPURL"] = "https://eo.wikipedia.org/wiki/Resto";
messages["MATH_MODULO_TITLE"] = "resto de %1 ÷ %2";
messages["MATH_MODULO_TOOLTIP"] = "Liveri la reston de la divido de la du nombroj.";
messages["MATH_MULTIPLICATION_SYMBOL"] = "×";  // untranslated
messages["MATH_NUMBER_HELPURL"] = "https://eo.wikipedia.org/wiki/Nombro";
messages["MATH_NUMBER_TOOLTIP"] = "Nombro.";
messages["MATH_ONLIST_HELPURL"] = "";  // untranslated
messages["MATH_ONLIST_OPERATOR_AVERAGE"] = "listmezumo";
messages["MATH_ONLIST_OPERATOR_MAX"] = "listmaksimumo";
messages["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediano de listo";
messages["MATH_ONLIST_OPERATOR_MIN"] = "listminimumo";
messages["MATH_ONLIST_OPERATOR_MODE"] = "modoj de listo";
messages["MATH_ONLIST_OPERATOR_RANDOM"] = "hazarda elemento el la listo";
messages["MATH_ONLIST_OPERATOR_STD_DEV"] = "Norma devio de la listo";
messages["MATH_ONLIST_OPERATOR_SUM"] = "sumo de listo";
messages["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Liveri la aritmetikan meznombron de la nombroj en la listo.";
messages["MATH_ONLIST_TOOLTIP_MAX"] = "Liveri la plej grandan nombron en la listo.";
messages["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Liveras la medianan nombron en la listo.";
messages["MATH_ONLIST_TOOLTIP_MIN"] = "Liveri la plej malgrandan nombron en la listo.";
messages["MATH_ONLIST_TOOLTIP_MODE"] = "Liveras liston de la plej ofta(j) elemento(j) en la listo.";
messages["MATH_ONLIST_TOOLTIP_RANDOM"] = "Liveri hazardan elementon el la listo.";
messages["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Liveri la norman devion de la listo.";
messages["MATH_ONLIST_TOOLTIP_SUM"] = "Liveri la sumon de ĉiuj nombroj en la listo.";
messages["MATH_POWER_SYMBOL"] = "^";  // untranslated
messages["MATH_RANDOM_FLOAT_HELPURL"] = "https://eo.wikipedia.org/wiki/Hazardo";
messages["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "hazarda frakcio";
messages["MATH_RANDOM_FLOAT_TOOLTIP"] = "Liveras hazardan frakcion inter 0,0 (inkluzive) kaj 1,0 (ekskluzive).";
messages["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation";
messages["MATH_RANDOM_INT_TITLE"] = "hazarda entjero inter %1 kaj %2";
messages["MATH_RANDOM_INT_TOOLTIP"] = "Nombro estos hazarde liverita, tiel ke ĝi egalas la limojn aŭ troviĝas inter ili.";
messages["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding";
messages["MATH_ROUND_OPERATOR_ROUND"] = "rondigi";
messages["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "rondigi malsupren";
messages["MATH_ROUND_OPERATOR_ROUNDUP"] = "Rondigi supren";
messages["MATH_ROUND_TOOLTIP"] = "Rondigi nombroj, supren aŭ malsupren.";
messages["MATH_SINGLE_HELPURL"] = "https://eo.wikipedia.org/wiki/Kvadrata_radiko";
messages["MATH_SINGLE_OP_ABSOLUTE"] = "absoluta";
messages["MATH_SINGLE_OP_ROOT"] = "kvadrata radiko";
messages["MATH_SINGLE_TOOLTIP_ABS"] = "Liveri la absolutan valoron de nombro.";
messages["MATH_SINGLE_TOOLTIP_EXP"] = "Liveri potencon de e.";
messages["MATH_SINGLE_TOOLTIP_LN"] = "Liveri la naturan logaritmon de nombro.";
messages["MATH_SINGLE_TOOLTIP_LOG10"] = "La dekbaza logaritmo de numero estos liverita.";
messages["MATH_SINGLE_TOOLTIP_NEG"] = "La negativigo de numero estos liverita.";
messages["MATH_SINGLE_TOOLTIP_POW10"] = "Liveri tian potencon de 10, kia la eniro estas.";
messages["MATH_SINGLE_TOOLTIP_ROOT"] = "Liveri la kvadratan radikon de nombro.";
messages["MATH_SUBTRACTION_SYMBOL"] = "-";  // untranslated
messages["MATH_TRIG_ACOS"] = "acos";  // untranslated
messages["MATH_TRIG_ASIN"] = "asin";  // untranslated
messages["MATH_TRIG_ATAN"] = "atan";  // untranslated
messages["MATH_TRIG_COS"] = "cos";  // untranslated
messages["MATH_TRIG_HELPURL"] = "https://eo.wikipedia.org/wiki/Trigonometria_funkcio";
messages["MATH_TRIG_SIN"] = "sin";  // untranslated
messages["MATH_TRIG_TAN"] = "tan";  // untranslated
messages["MATH_TRIG_TOOLTIP_ACOS"] = "Liveras la arkokosinuson de nombro.";
messages["MATH_TRIG_TOOLTIP_ASIN"] = "La sinusarko de nombro estos liverita.";
messages["MATH_TRIG_TOOLTIP_ATAN"] = "La targentarko de nombro estos liverita.";
messages["MATH_TRIG_TOOLTIP_COS"] = "Liveras la kosinuson de angulo en gradoj (ne radianoj).";
messages["MATH_TRIG_TOOLTIP_SIN"] = "Liveras la sinuson de angulo en gradoj (ne radianoj).";
messages["MATH_TRIG_TOOLTIP_TAN"] = "Liveras la tangenton de angulo en gradoj (ne radianoj).";
messages["NEW_COLOUR_VARIABLE"] = "Krei koloran variablon...";
messages["NEW_NUMBER_VARIABLE"] = "Krei nombran variablon...";
messages["NEW_STRING_VARIABLE"] = "Krei signoĉenan variablon...";
messages["NEW_VARIABLE"] = "Nova variablo...";
messages["NEW_VARIABLE_TITLE"] = "Nova nomo de variablo:";
messages["NEW_VARIABLE_TYPE_TITLE"] = "Tipo de nova variablo:";
messages["ORDINAL_NUMBER_SUFFIX"] = "";  // untranslated
messages["PROCEDURES_ALLOW_STATEMENTS"] = "permesi ordonojn";
messages["PROCEDURES_BEFORE_PARAMS"] = "kun:";
messages["PROCEDURES_CALLNORETURN_HELPURL"] = "https://eo.wikipedia.org/wiki/Subprogramo";
messages["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Ruli la uzanto-difinitan funkcion '%1'.";
messages["PROCEDURES_CALLRETURN_HELPURL"] = "https://eo.wikipedia.org/wiki/Subprogramo";
messages["PROCEDURES_CALLRETURN_TOOLTIP"] = "Ruli la uzanto-difinitan funkcion '%1' kaj uzi ĝian eliron.";
messages["PROCEDURES_CALL_BEFORE_PARAMS"] = "kun:";
messages["PROCEDURES_CREATE_DO"] = "Krei '%1'";
messages["PROCEDURES_DEFNORETURN_COMMENT"] = "Priskribi ĉi tiun funkcion...";
messages["PROCEDURES_DEFNORETURN_DO"] = "";  // untranslated
messages["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine";  // untranslated
messages["PROCEDURES_DEFNORETURN_PROCEDURE"] = "fari ion";
messages["PROCEDURES_DEFNORETURN_TITLE"] = "por";
messages["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Krei funkcion sen eliro.";
messages["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine";  // untranslated
messages["PROCEDURES_DEFRETURN_RETURN"] = "liveri";
messages["PROCEDURES_DEFRETURN_TOOLTIP"] = "Krei funkcion kun unu eliro.";
messages["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Averto: la funkcio havas du parametrojn kun la sama nomo.";
messages["PROCEDURES_HIGHLIGHT_DEF"] = "Emfazi difinon de funkcio";
messages["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause";  // untranslated
messages["PROCEDURES_IFRETURN_TOOLTIP"] = "Se valoro estas vero, do liveras duan valoron.";
messages["PROCEDURES_IFRETURN_WARNING"] = "Averto: Ĉi tiu bloko estas uzebla nur en difino de funkcio.";
messages["PROCEDURES_MUTATORARG_TITLE"] = "nomo de enigo:";
messages["PROCEDURES_MUTATORARG_TOOLTIP"] = "Aldoni eniron al la funkcio.";
messages["PROCEDURES_MUTATORCONTAINER_TITLE"] = "eniroj";
messages["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Aldoni, forigi, aŭ reorganizi enirojn je ĉi tiu funkcio.";
messages["REDO"] = "Refari";
messages["REMOVE_COMMENT"] = "Forigi komenton";
messages["RENAME_VARIABLE"] = "Renomi variablon...";
messages["RENAME_VARIABLE_TITLE"] = "Renomi ĉiujn '%1' variablojn kiel:";
messages["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification";  // untranslated
messages["TEXT_APPEND_TITLE"] = "al %1 postaldoni tekston %2";
messages["TEXT_APPEND_TOOLTIP"] = "Postapendi iom da teksto al variablo '%1'.";
messages["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case";  // untranslated
messages["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "minuskligi";
messages["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Nomuskligi";
messages["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "MAJUSKLIGI";
messages["TEXT_CHANGECASE_TOOLTIP"] = "Liveras kopion de la teksto je alia usklo.";
messages["TEXT_CHARAT_FIRST"] = "akiri unuan literon";
messages["TEXT_CHARAT_FROM_END"] = "akiri literon de inversa numero";
messages["TEXT_CHARAT_FROM_START"] = "akiri literon de numero";
messages["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text";  // untranslated
messages["TEXT_CHARAT_LAST"] = "akiri lastan literon";
messages["TEXT_CHARAT_RANDOM"] = "akiri hazardan literon";
messages["TEXT_CHARAT_TAIL"] = "";  // untranslated
messages["TEXT_CHARAT_TITLE"] = "en la teksto %1, %2";
messages["TEXT_CHARAT_TOOLTIP"] = "Liveras literon ĉe specifita loko.";
messages["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings";  // untranslated
messages["TEXT_COUNT_MESSAGE0"] = "kalkuli la okazojn de %1 en %2";
messages["TEXT_COUNT_TOOLTIP"] = "Kalkuli kiomfoje iu teksto okazas en iu alia teksto.";
messages["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Aldoni eron al la teksto.";
messages["TEXT_CREATE_JOIN_TITLE_JOIN"] = "kunigi";
messages["TEXT_CREATE_JOIN_TOOLTIP"] = "Aldonu, forigu, aŭ reorganizu partojn por reagordi la tekstan blokon.";
messages["TEXT_GET_SUBSTRING_END_FROM_END"] = "ĝis litero de inversa numero";
messages["TEXT_GET_SUBSTRING_END_FROM_START"] = "ĝis litero de numero";
messages["TEXT_GET_SUBSTRING_END_LAST"] = "ĝis lasta litero";
messages["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text";  // untranslated
messages["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "en la teksto";
messages["TEXT_GET_SUBSTRING_START_FIRST"] = "akiri subsignoĉenon ekde la unua litero";
messages["TEXT_GET_SUBSTRING_START_FROM_END"] = "akiri subsignoĉenon ekde litero de inversa numero";
messages["TEXT_GET_SUBSTRING_START_FROM_START"] = "akiri subsignoĉenon ekde litero de numero";
messages["TEXT_GET_SUBSTRING_TAIL"] = "";  // untranslated
messages["TEXT_GET_SUBSTRING_TOOLTIP"] = "Liveri specifitan parto de la teksto.";
messages["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text";  // untranslated
messages["TEXT_INDEXOF_OPERATOR_FIRST"] = "trovi la unuan okazon de teksto";
messages["TEXT_INDEXOF_OPERATOR_LAST"] = "trovi la lastan okazon de teksto";
messages["TEXT_INDEXOF_TITLE"] = "en la teksto %1 %2 %3";
messages["TEXT_INDEXOF_TOOLTIP"] = "Liveras indekson de la unua/lasta okazo de la unua teksto en la dua teksto. Liveras %1 se la unua teksto ne okazas en la dua teksto.";
messages["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text";  // untranslated
messages["TEXT_ISEMPTY_TITLE"] = "%1 malplenas";
messages["TEXT_ISEMPTY_TOOLTIP"] = "Liveras veron, se la provizita teksto estas malplena.";
messages["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation";  // untranslated
messages["TEXT_JOIN_TITLE_CREATEWITH"] = "krei tekston kun";
messages["TEXT_JOIN_TOOLTIP"] = "Krei pecon de teksto per kunigi ajnan nombron de eroj.";
messages["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification";  // untranslated
messages["TEXT_LENGTH_TITLE"] = "longo de %1";
messages["TEXT_LENGTH_TOOLTIP"] = "Liveras la nombron de literoj (inkluzive de spacetoj) en la provizita teksto.";
messages["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text";  // untranslated
messages["TEXT_PRINT_TITLE"] = "presi %1";
messages["TEXT_PRINT_TOOLTIP"] = "Presi la specifitan tekston, nombron aŭ alian valoron.";
messages["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user";  // untranslated
messages["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Peti nombron al uzanto.";
messages["TEXT_PROMPT_TOOLTIP_TEXT"] = "Peti tekston al uzanto.";
messages["TEXT_PROMPT_TYPE_NUMBER"] = "ricevi nombron per mesaĝo";
messages["TEXT_PROMPT_TYPE_TEXT"] = "ricevi tekston per mesaĝo";
messages["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings";  // untranslated
messages["TEXT_REPLACE_MESSAGE0"] = "anstataŭigi tekston %1 per %2 en %3";
messages["TEXT_REPLACE_TOOLTIP"] = "Anstataŭigi ĉiujn okazojn de iu teksto en alia teksto.";
messages["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text";  // untranslated
messages["TEXT_REVERSE_MESSAGE0"] = "inversigi tekston %1";
messages["TEXT_REVERSE_TOOLTIP"] = "Inversigi la ordon de la skribsignoj en la teksto.";
messages["TEXT_TEXT_HELPURL"] = "https://eo.wikipedia.org/wiki/Signoĉeno";
messages["TEXT_TEXT_TOOLTIP"] = "Litero, vorto, aŭ linio da teksto.";
messages["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces";  // untranslated
messages["TEXT_TRIM_OPERATOR_BOTH"] = "forigi spacetojn for de ambaŭ finoj de";
messages["TEXT_TRIM_OPERATOR_LEFT"] = "forigi spacetojn for de maldekstra fino de";
messages["TEXT_TRIM_OPERATOR_RIGHT"] = "forigi spacetojn for de dekstra fino de";
messages["TEXT_TRIM_TOOLTIP"] = "Liveras kopion de teksto, de kies fino(j) spacetoj foriĝis.";
messages["TODAY"] = "Hodiaŭ";
messages["UNDO"] = "Malfari";
messages["UNNAMED_KEY"] = "nenomita";
messages["VARIABLES_DEFAULT_NAME"] = "elemento";
messages["VARIABLES_GET_CREATE_SET"] = "Krei blokon 'difini variablon %1'";
messages["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get";  // untranslated
messages["VARIABLES_GET_TOOLTIP"] = "Liveras la valoron de ĉi tiu variablo.";
messages["VARIABLES_SET"] = "difini %1 kiel %2";
messages["VARIABLES_SET_CREATE_GET"] = "Krei blokon 'akiri variablon %1'";
messages["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set";  // untranslated
messages["VARIABLES_SET_TOOLTIP"] = "Difinas ĉi tiun variablon kiel la eniron.";
messages["VARIABLE_ALREADY_EXISTS"] = "Jam ekzistas variablo kun la nomo '%1'.";
messages["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Jam ekzistas variablo kun la nomo '%1' por alia tipo: '%2'.";
messages["WORKSPACE_ARIA_LABEL"] = "Laborspaco de Blockly";
messages["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Diru ion…";
messages["CONTROLS_FOREACH_INPUT_DO"] = messages["CONTROLS_REPEAT_INPUT_DO"];
messages["CONTROLS_FOR_INPUT_DO"] = messages["CONTROLS_REPEAT_INPUT_DO"];
messages["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = messages["CONTROLS_IF_MSG_ELSEIF"];
messages["CONTROLS_IF_ELSE_TITLE_ELSE"] = messages["CONTROLS_IF_MSG_ELSE"];
messages["CONTROLS_IF_IF_TITLE_IF"] = messages["CONTROLS_IF_MSG_IF"];
messages["CONTROLS_IF_MSG_THEN"] = messages["CONTROLS_REPEAT_INPUT_DO"];
messages["CONTROLS_WHILEUNTIL_INPUT_DO"] = messages["CONTROLS_REPEAT_INPUT_DO"];
messages["LISTS_CREATE_WITH_ITEM_TITLE"] = messages["VARIABLES_DEFAULT_NAME"];
messages["LISTS_GET_INDEX_HELPURL"] = messages["LISTS_INDEX_OF_HELPURL"];
messages["LISTS_GET_INDEX_INPUT_IN_LIST"] = messages["LISTS_INLIST"];
messages["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = messages["LISTS_INLIST"];
messages["LISTS_INDEX_OF_INPUT_IN_LIST"] = messages["LISTS_INLIST"];
messages["LISTS_SET_INDEX_INPUT_IN_LIST"] = messages["LISTS_INLIST"];
messages["MATH_CHANGE_TITLE_ITEM"] = messages["VARIABLES_DEFAULT_NAME"];
messages["PROCEDURES_DEFRETURN_COMMENT"] = messages["PROCEDURES_DEFNORETURN_COMMENT"];
messages["PROCEDURES_DEFRETURN_DO"] = messages["PROCEDURES_DEFNORETURN_DO"];
messages["PROCEDURES_DEFRETURN_PROCEDURE"] = messages["PROCEDURES_DEFNORETURN_PROCEDURE"];
messages["PROCEDURES_DEFRETURN_TITLE"] = messages["PROCEDURES_DEFNORETURN_TITLE"];
messages["TEXT_APPEND_VARIABLE"] = messages["VARIABLES_DEFAULT_NAME"];
messages["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = messages["VARIABLES_DEFAULT_NAME"];

messages["MATH_HUE"] = "230";
messages["LOOPS_HUE"] = "120";
messages["LISTS_HUE"] = "260";
messages["LOGIC_HUE"] = "210";
messages["VARIABLES_HUE"] = "330";
messages["TEXTS_HUE"] = "160";
messages["PROCEDURES_HUE"] = "290";
messages["COLOUR_HUE"] = "20";
messages["VARIABLES_DYNAMIC_HUE"] = "310";
return messages;
}));


text:
Sequel.migration do
  change do
    add_column :queries, :description, String
  end
end

redpajama_set_name: RedPajamaGithub


text:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wikidot="http://www.wikidot.com/rss-namespace">

	<channel>
		<title>Comments for page "Millennium"</title>
		<link>http://bvs.wikidot.com/forum/t-181949/millennium</link>
		<description>Posts in the discussion thread "Millennium"</description>
				<copyright></copyright>
		<lastBuildDate>Sun, 10 Jul 2022 03:56:00 +0000</lastBuildDate>

					<item>
				<guid>http://bvs.wikidot.com/forum/t-181949#post-642010</guid>
				<title>Juice</title>
				<link>http://bvs.wikidot.com/forum/t-181949/millennium#post-642010</link>
				<description></description>
				<pubDate>Wed, 25 Nov 2009 15:13:35 +0000</pubDate>
				<wikidot:authorName>drd1r7</wikidot:authorName>				<wikidot:authorUserId>407634</wikidot:authorUserId>				<content:encoded>
					<![CDATA[

Unless I am terribly mistaken 'juice' is a reference to Willy Nelson's hunger for 'juice'/'blood' in the Aqua Teen Hunger Force Episode 'The Shaving'.

Concurrence?

				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>


text:
.JsDatePickBox {
	position: relative;
	width: 212px;
	font-family: Arial;
	background-color: rgba(179, 198, 224, 1);
	border-radius: 3px;
}

.JsDatePickBox .jsDatePickCloseButton {
	cursor: pointer;
	position: absolute;
	z-index: 1;
	top: 1px;
	right: 10px;
	width: 33px;
	height: 13px;
/* 	background: url(img/closeButton_normal.gif) left top no-repeat; */
}

.JsDatePickBox .jsDatePickCloseButtonOver {
	cursor: pointer;
	position: absolute;
	z-index: 1;
	top: 1px;
	right: 10px;
	width: 33px;
	height: 13px;
/* 	background: url(img/closeButton_over.gif) left top no-repeat; */
}

.JsDatePickBox .jsDatePickCloseButtonDown {
	cursor: pointer;
	position: absolute;
	z-index: 1;
	top: 1px;
	right: 10px;
	width: 33px;
	height: 13px;
/* 	background: url(img/closeButton_down.gif) left top no-repeat; */
}

.JsDatePickBox .boxLeftWall {
	float: left;
	width: 7px;
	margin: 0;
	padding: 0;
}

.JsDatePickBox .boxLeftWall .leftTopCorner {
	margin: 0;
	padding: 0;
	width: 7px;
	height: 8px;
/* 	background: url(img/boxTopLeftCorner.png) left top no-repeat; */
	overflow: hidden;
}

.JsDatePickBox .boxLeftWall .leftBottomCorner {
	margin: 0;
	padding: 0;
	width: 7px;
	height: 8px;
/* 	background: url(img/boxBottomLeftCorner.png) left top no-repeat; */
	overflow: hidden;
}

.JsDatePickBox .boxLeftWall .leftWall {
	margin: 0;
	padding: 0;
	width: 7px;
/* 	background: url(img/boxSideWallPx.gif) #ffffff left top repeat-y; */
	overflow: hidden;
}

.JsDatePickBox .boxRightWall {
	float: left;
	width: 7px;
	margin: 0;
	padding: 0;
}

.JsDatePickBox .boxRightWall .rightTopCorner {
	margin: 0;
	padding: 0;
	width: 7px;
	height: 8px;
/* 	background: url(img/boxTopRightCorner.png) left top no-repeat; */
	overflow: hidden;
}

.JsDatePickBox .boxRightWall .rightBottomCorner {
	margin: 0;
	padding: 0;
	width: 7px;
	height: 8px;
/* 	background: url(img/boxBottomRightCorner.png) left top no-repeat; */
	overflow: hidden;
}

.JsDatePickBox .boxRightWall .rightWall {
	margin: 0;
	padding: 0;
	width: 7px;
/* 	background: url(img/boxSideWallPx.gif) #ffffff right top repeat-y; */
	overflow: hidden;
}

.JsDatePickBox .topWall {
	position: absolute;
	overflow: hidden;
	top: 0px;
	left: 7px;
	width: 198px;
	height: 4px;
/* 	background: url(img/boxTopPx.gif) #ffffff left top repeat-x; */
}

.JsDatePickBox .bottomWall {
	position: absolute;
	overflow: hidden;
	bottom: -1px;
	left: 7px;
	width: 198px;
	height: 4px;
/* 	background: url(img/boxTopPx.gif) #ffffff left top repeat-x; */
}

.JsDatePickBox .hiddenBoxLeftWall {
	float: left;
	width: 0px;
	overflow: hidden;
	overflow: hidden;
}

.JsDatePickBox .hiddenBoxRightWall {
	float: left;
	width: 0px;
	overflow: hidden;
	overflow: hidden;
}

.JsDatePickBox .boxMain {
	float: left;
/* 	background-color: #ffffff; */
	margin: 0;
	padding: 15px 0 5px 0;
}

.JsDatePickBox .boxMainStripped {
/* 	background: #ffffff; */
	border: none;
}

.JsDatePickBox .tooltip {
	height: 12px;
	line-height: 11px;
	overflow: hidden;
	font-size: 10px;
	color: #666666;
	text-align: left;
	padding: 0px;
	margin: 2px 0 2px 0;
}

.JsDatePickBox .weekDaysRow {
	height: 12px;
	overflow: hidden;
	line-height: 11px;
	font-size: 10px;
	color: #666666;
	text-align: center;
	padding: 0px;
	margin: 2px 0 0 0;
}

.JsDatePickBox .weekDaysRow .weekDay {
	float: left;
	height: 14px;
	overflow: hidden;
	width: 24px;
	margin: 0 5px 0 0;
	padding: 0;
}

.JsDatePickBox .boxMainInner {
/* 	background: #ffffff; */
	width: 198px;
	float: left;
	margin: 5px 0 0 0;
	padding: 0;
}

.JsDatePickBox .boxMainCellsContainer {
	background-color: #ffffff;
	margin: 0;
	padding: 0;
}

.JsDatePickBox .boxMainInner .controlsBar {
	overflow: hidden;
	height: 20px;
	position: relative;
}

.JsDatePickBox .boxMainInner .controlsBarText {
	overflow: hidden;
	height: 20px;
	line-height: 20px;
	color: #000;
	font-size: 12px;
	text-align: center;
}

.JsDatePickBox .boxMainInner .monthForwardButton {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	right: 22px;
	background: url(img/monthForward_normal.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .monthForwardButtonOver {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	right: 22px;
	background: url(img/monthForward_over.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .monthForwardButtonDown {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	right: 22px;
	background: url(img/monthForward_down.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .monthBackwardButton {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	left: 22px;
	background: url(img/monthBackward_normal.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .monthBackwardButtonOver {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	left: 22px;
	background: url(img/monthBackward_over.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .monthBackwardButtonDown {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	left: 22px;
	background: url(img/monthBackward_down.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .yearForwardButton {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	right: 0px;
	background: url(img/yearForward_normal.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .yearForwardButtonOver {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	right: 0px;
	background: url(img/yearForward_over.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .yearForwardButtonDown {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	right: 0px;
	background: url(img/yearForward_down.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .yearBackwardButton {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	left: 0px;
	background: url(img/yearBackward_normal.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .yearBackwardButtonOver {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	left: 0px;
	background: url(img/yearBackward_over.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .yearBackwardButtonDown {
	overflow: hidden;
	cursor: pointer;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0px;
	left: 0px;
	background: url(img/yearBackward_down.png) left top no-repeat;
}

.JsDatePickBox .boxMainInner .skipDay {
	cursor: default;
	overflow: hidden;
	width: 24px;
	height: 25px;
	float: left;
	margin: 4px 5px 0 0;
	padding: 0;
}

.JsDatePickBox .boxMainInner .dayNormal {
	-khtml-user-select: none;
	font-size: 12px;
	cursor: pointer;
	overflow: hidden;
	color: #4c4c4c;
	width: 24px;
	height: 25px;
	float: left;
	margin: 4px 5px 0 0;
	padding: 0;
	text-align: center;
	line-height: 25px;
}

.JsDatePickBox .boxMainInner .dayNormalToday {
	-khtml-user-select: none;
	font-size: 12px;
	cursor: pointer;
	overflow: hidden;
	color: #f40f0f;
	font-weight: bold;
	width: 24px;
	height: 25px;
	float: left;
	margin: 4px 5px 0 0;
	padding: 0;
	text-align: center;
	line-height: 25px;
}

.JsDatePickBox .boxMainInner .dayDisabled {
	-khtml-user-select: none;
	cursor: default;
	font-size: 12px;
	overflow: hidden;
	color: #999999;
	width: 24px;
	height: 25px;
	float: left;
	margin: 4px 5px 0 0;
	padding: 0;
	text-align: center;
	line-height: 25px;
}

.JsDatePickBox .boxMainInner .dayOver {
	-khtml-user-select: none;
	cursor: pointer;
	font-size: 12px;
	overflow: hidden;
	color: #4c4c4c;
	width: 24px;
	height: 25px;
	float: left;
	margin: 4px 5px 0 0;
	padding: 0;
	text-align: center;
	line-height: 25px;
	background: #016CA4;
	border-radius: 3px;
}

.JsDatePickBox .boxMainInner .dayOverToday {
	-khtml-user-select: none;
	cursor: pointer;
	font-size: 12px;
	overflow: hidden;
	font-weight: bold;
	color: #f40f0f;
	width: 24px;
	height: 25px;
	float: left;
	margin: 4px 5px 0 0;
	padding: 0;
	text-align: center;
	line-height: 25px;
}

.JsDatePickBox .boxMainInner .dayDown {
	-khtml-user-select: none;
	cursor: pointer;
	font-size: 12px;
	overflow: hidden;
	color: #F9F9F9;
	width: 24px;
	height: 25px;
	float: left;
	margin: 4px 5px 0 0;
	padding: 0;
	text-align: center;
	line-height: 25px;
}

.JsDatePickBox .boxMainInner .dayDownToday {
	-khtml-user-select: none;
	cursor: pointer;
	font-size: 12px;
	overflow: hidden;
	color: #f40f0f;
	font-weight: bold;
	width: 24px;
	height: 25px;
	float: left;
	margin: 4px 5px 0 0;
	padding: 0;
	text-align: center;
	line-height: 25px;
}


text:
/**
 *
 */
package exercises.threads.newclasses;
import java.util.*;
import java.util.concurrent.*;
/**
 * @author gongzhihui
 *
 */
public class HorseRace {
	static final int FINISH_LINE = 75;
	private List<Horse> horses = new ArrayList<Horse>();
	private ExecutorService exec = Executors.newCachedThreadPool();
	private CyclicBarrier barrier;

	public HorseRace(int nhorses, final int pause) {
		barrier = new CyclicBarrier(nhorses, new Runnable() {
			public void run() {
				StringBuilder s = new StringBuilder();
				for (int i = 0; i < FINISH_LINE; i++) {
					s.append("=");
				}
				System.out.println(s);
				for (Horse h : horses) {
					System.out.println(h.tracks());
				}

				for (Horse h : horses) {
					if (h.getStrides() >= FINISH_LINE) {
						System.out.println(h + " won!");
						exec.shutdownNow();
						return;
					}
				}

				try {
					TimeUnit.MILLISECONDS.sleep(pause);
				} catch (InterruptedException e) {
					System.out.println("barrier-action sleep interrupted");
				}
			}
		});

		for (int i = 0; i < nhorses; i++) {
			Horse horse = new Horse(barrier);
			horses.add(horse);
			exec.execute(horse);
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int nhorses = 7;
		int pause = 200;
		if (args.length > 0) {
			int n = new Integer(args[0]);
			nhorses = n > 0 ? n : nhorses;
		}
		if (args.length > 1) {
			int p = new Integer(args[1]);
			pause = p > 0 ? p : pause;
		}

		new HorseRace(nhorses, pause);
	}

}

class Horse implements Runnable {
	private static int counter = 0;
	private final int id = counter++;
	private int strides = 0;
	private static Random rand = new Random(47);
	private static CyclicBarrier barrier;
	public Horse(CyclicBarrier b) {
		this.barrier = b;
	}

	public synchronized int getStrides() {
		return this.strides;
	}

	public void run() {
		try {
			while (!Thread.interrupted()) {
				synchronized (this) {
					strides += rand.nextInt(3);
				}
				barrier.await();
			}
		} catch (InterruptedException e) {
			// let it be
		} catch (BrokenBarrierException e) {
			throw new RuntimeException(e);
		}
	}

	public String toString() {
		return "Horse " + id + " ";
	}

	public String tracks() {
		StringBuilder s = new StringBuilder();
		for (int i = 0; i < getStrides(); i++) {
			s.append("*");
		}
		s.append(id);
		return s.toString();
	}
}


text:
//
// Copyright (c) 2013-2016, John Mettraux, jmettraux+flon@gmail.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
// Made in Japan.
//

#ifndef FL_TREE_H
#define FL_TREE_H

#include "djan.h"

/* Returns 1 if the value is a valid flon tree.
 */
int flon_is_tree(fdja_value *v);

#endif // FL_TREE_H


text:
package org.oneuponcancer.redemption.resource;

import org.oneuponcancer.redemption.exception.InsufficientPermissionException;
import org.oneuponcancer.redemption.model.AuditLog;
import org.oneuponcancer.redemption.model.Permission;
import org.oneuponcancer.redemption.repository.AuditLogRepository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.http.HttpStatus;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.inject.Inject;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.security.Principal;
import java.util.List;

@Controller
@RequestMapping("/api/v1/audit")
public class AuditLogResource {
    private static final Sort SORT_DESC = Sort.by(Sort.Direction.DESC, "timestamp");

    private AuditLogRepository auditLogRepository;
    private Integer auditServiceRequestMax;

    @Inject
    public AuditLogResource(Integer auditServiceRequestMax, AuditLogRepository auditLogRepository) {
        this.auditServiceRequestMax = auditServiceRequestMax;
        this.auditLogRepository = auditLogRepository;
    }

    @RequestMapping("")
    @ResponseBody
    public List<AuditLog> fetchAuditLogs(Principal principal, @RequestParam(required = false) Integer count) {
        if (((UsernamePasswordAuthenticationToken)principal).getAuthorities().stream().noneMatch(a -> a.getAuthority().equals(Permission.READ_LOGS.name()))) {
            throw new InsufficientPermissionException("Not allowed to read audit logs.");
        }

        if (count == null) {
            count = auditServiceRequestMax;
        } else if (count > auditServiceRequestMax) {
            throw new IllegalArgumentException("Only " + auditServiceRequestMax + " results are allowed per request.");
        } else if (count < 1) {
            throw new IllegalArgumentException("The number of returned results must be at least one.");
        }

        PageRequest request = PageRequest.of(0, count, SORT_DESC);
        Page<AuditLog> results = auditLogRepository.findAll(request);

        return results.getContent();
    }

    @ExceptionHandler(InsufficientPermissionException.class)
    public void handleInsufficientPermissionException(InsufficientPermissionException ex, HttpServletResponse response) throws IOException {
        response.sendError(HttpStatus.FORBIDDEN.value(), ex.getMessage());
    }

    @ExceptionHandler(IllegalArgumentException.class)
    public void handleIllegalArgument(IllegalArgumentException ex, HttpServletResponse response) throws IOException {
        response.sendError(HttpStatus.BAD_REQUEST.value(), ex.getMessage());
    }
}


text:
The `minimumAgentVersion` property in the task.json is used for routing build/release jobs to agents that satisfy the minimum version demand.

## Branching within your code

You can use the variable `agent.version` to check the agent version and branch within your code.

## Agent features relevant to task authors

Use the details below to determine when specific agent features were added:

### Commands

* `task.settaskvariable`
  - Added in 2.115.0 (related to `prejobexecution` and `postjobexecution` handler sections)
* `task.prependpath`
  - Added in 2.115.0

### Task execution handler

* General
  - `prejobexecution` and `postjobexecution` handler sections were added in 2.115.0
* `node` handler
  - Added in 1.95.1. Used node v5.10.1.
  - Updated in 2.117.0 to use node v6.10.3.
* `powershell3` handler
  - Added in 1.95.1
  - Updated in 1.97 to propagate `Data` property for endpoints

### Variables

* `Agent.TempDirectory`
  - Added in 2.115.0
* `Agent.ToolsDirectory`
  - Added in 2.115.0
* `Agent.Version`
  - Added in 2.104.1

## Agent version to TFS mapping

The following chart details the agent versions that shipped with each on-premises TFS release:

### 2.x agent

| Agent   | TFS               |
|---------|-------------------|
| 2.122.1 | TFS 2017 Update 3 |
| 2.117.x | TFS 2017 Update 2 |
| 2.112.0 | TFS 2017 Update 1 |
| 2.105.7 | TFS 2017 RTM      |

### Legacy 1.x Windows agent

| Agent   | TFS               |
|---------|-------------------|
| 1.105.7 | TFS 2017 RTM      |
| 1.95.4  | TFS 2015 Update 4 |
| 1.95.3  | TFS 2015 Update 3 |
| 1.95.1  | TFS 2015 Update 2 |
| 1.89.1  | TFS 2015 Update 1 |
| 1.83.2  | TFS 2015 RTM      |


text:
namespace remoting {

using protocol::MockClientStub;
using protocol::MockHostStub;
using protocol::MockInputStub;
using protocol::MockSession;
using protocol::MockVideoStub;
using protocol::SessionConfig;
using protocol::test::EqualsClipboardEvent;
using protocol::test::EqualsMouseButtonEvent;
using protocol::test::EqualsMouseMoveEvent;
using protocol::test::EqualsKeyEvent;

using testing::_;
using testing::AtLeast;
using testing::ReturnRef;
using testing::StrictMock;

namespace {

// Matches a |protocol::Capabilities| argument against a list of capabilities
// formatted as a space-separated string.
MATCHER_P(EqCapabilities, expected_capabilities, "") {
  if (!arg.has_capabilities())
    return false;

  std::vector<std::string> words_args = base::SplitString(
      arg.capabilities(), " ", base::KEEP_WHITESPACE,
      base::SPLIT_WANT_NONEMPTY);
  std::vector<std::string> words_expected = base::SplitString(
      expected_capabilities, " ", base::KEEP_WHITESPACE,
      base::SPLIT_WANT_NONEMPTY);
  std::sort(words_args.begin(), words_args.end());
  std::sort(words_expected.begin(), words_expected.end());
  return words_args == words_expected;
}

protocol::MouseEvent MakeMouseMoveEvent(int x, int y) {
  protocol::MouseEvent result;
  result.set_x(x);
  result.set_y(y);
  return result;
}

protocol::KeyEvent MakeKeyEvent(bool pressed, uint32_t keycode) {
  protocol::KeyEvent result;
  result.set_pressed(pressed);
  result.set_usb_keycode(keycode);
  return result;
}

protocol::ClipboardEvent MakeClipboardEvent(const std::string& text) {
  protocol::ClipboardEvent result;
  result.set_mime_type(kMimeTypeTextUtf8);
  result.set_data(text);
  return result;
}

}  // namespace

class ClientSessionTest : public testing::Test {
 public:
  ClientSessionTest() : client_jid_("user@domain/rest-of-jid") {}

  void SetUp() override;
  void TearDown() override;

  // Creates the client session.
  void CreateClientSession();

 protected:
  // Notifies the client session that the client connection has been
  // authenticated and channels have been connected. This effectively enables
  // the input pipe line and starts video capturing.
  void ConnectClientSession();

  // Fakes video size notification from the VideoStream.
  void NotifyVideoSize();

  // Creates expectations to send an extension message and to disconnect
  // afterwards.
  void SetSendMessageAndDisconnectExpectation(const std::string& message_type);

  // Message loop that will process all ClientSession tasks.
  base::MessageLoop message_loop_;

  // AutoThreadTaskRunner on which |client_session_| will be run.
  scoped_refptr<AutoThreadTaskRunner> task_runner_;

  // Used to run |message_loop_| after each test, until no objects remain that
  // require it.
  base::RunLoop run_loop_;

  // HostExtensions to pass when creating the ClientSession. Caller retains
  // ownership of the HostExtensions themselves.
  std::vector<HostExtension*> extensions_;

  // ClientSession instance under test.
  std::unique_ptr<ClientSession> client_session_;

  // ClientSession::EventHandler mock for use in tests.
  MockClientSessionEventHandler session_event_handler_;

  // Storage for values to be returned by the protocol::Session mock.
  std::unique_ptr<SessionConfig> session_config_;
  const std::string client_jid_;

  // Stubs returned to |client_session_| components by |connection_|.
  MockClientStub client_stub_;

  // ClientSession owns |connection_| but tests need it to inject fake events.
  protocol::FakeConnectionToClient* connection_;

  std::unique_ptr<FakeDesktopEnvironmentFactory> desktop_environment_factory_;
};

void ClientSessionTest::SetUp() {
  // Arrange to run |message_loop_| until no components depend on it.
  task_runner_ = new AutoThreadTaskRunner(
      message_loop_.task_runner(), run_loop_.QuitClosure());

  desktop_environment_factory_.reset(new FakeDesktopEnvironmentFactory());
  session_config_ = SessionConfig::ForTest();
}

void ClientSessionTest::TearDown() {
  if (client_session_) {
    client_session_->DisconnectSession(protocol::OK);
    client_session_.reset();
    desktop_environment_factory_.reset();
  }

  // Clear out |task_runner_| reference so the loop can quit, and run it until
  // it does.
  task_runner_ = nullptr;
  run_loop_.Run();
}

void ClientSessionTest::CreateClientSession() {
  // Mock protocol::Session APIs called directly by ClientSession.
  std::unique_ptr<protocol::MockSession> session(new MockSession());
  EXPECT_CALL(*session, config()).WillRepeatedly(ReturnRef(*session_config_));
  EXPECT_CALL(*session, jid()).WillRepeatedly(ReturnRef(client_jid_));

  // Mock protocol::ConnectionToClient APIs called directly by ClientSession.
  // HostStub is not touched by ClientSession, so we can safely pass nullptr.
  std::unique_ptr<protocol::FakeConnectionToClient> connection(
      new protocol::FakeConnectionToClient(std::move(session)));
  connection->set_client_stub(&client_stub_);
  connection_ = connection.get();

  client_session_.reset(new ClientSession(
      &session_event_handler_,
      task_runner_,  // Audio thread.
      std::move(connection), desktop_environment_factory_.get(),
      base::TimeDelta(), nullptr, extensions_));
}

void ClientSessionTest::ConnectClientSession() {
  EXPECT_CALL(session_event_handler_, OnSessionAuthenticated(_));
  EXPECT_CALL(session_event_handler_, OnSessionChannelsConnected(_));

  // Stubs should be set only after connection is authenticated.
  EXPECT_FALSE(connection_->clipboard_stub());
  EXPECT_FALSE(connection_->input_stub());

  client_session_->OnConnectionAuthenticated(client_session_->connection());

  EXPECT_TRUE(connection_->clipboard_stub());
  EXPECT_TRUE(connection_->input_stub());

  client_session_->CreateVideoStreams(client_session_->connection());
  client_session_->OnConnectionChannelsConnected(client_session_->connection());
}

void ClientSessionTest::NotifyVideoSize() {
  connection_->last_video_stream()->size_callback().Run(
      webrtc::DesktopSize(protocol::FakeDesktopCapturer::kWidth,
                          protocol::FakeDesktopCapturer::kHeight),
      webrtc::DesktopVector(kDefaultDpi, kDefaultDpi));
}

TEST_F(ClientSessionTest, DisableInputs) {
  CreateClientSession();
  ConnectClientSession();
  NotifyVideoSize();

  FakeInputInjector* input_injector =
      desktop_environment_factory_->last_desktop_environment()
          ->last_input_injector()
          .get();
  std::vector<protocol::KeyEvent> key_events;
  input_injector->set_key_events(&key_events);
  std::vector<protocol::MouseEvent> mouse_events;
  input_injector->set_mouse_events(&mouse_events);
  std::vector<protocol::ClipboardEvent> clipboard_events;
  input_injector->set_clipboard_events(&clipboard_events);

  // Inject test events that are expected to be injected.
  connection_->clipboard_stub()->InjectClipboardEvent(MakeClipboardEvent("a"));
  connection_->input_stub()->InjectKeyEvent(MakeKeyEvent(true, 1));
  connection_->input_stub()->InjectMouseEvent(MakeMouseMoveEvent(100, 101));

  // Disable input.
  client_session_->SetDisableInputs(true);

  // These event shouldn't get though to the input injector.
  connection_->clipboard_stub()->InjectClipboardEvent(MakeClipboardEvent("b"));
  connection_->input_stub()->InjectKeyEvent(MakeKeyEvent(true, 2));
  connection_->input_stub()->InjectKeyEvent(MakeKeyEvent(false, 2));
  connection_->input_stub()->InjectMouseEvent(MakeMouseMoveEvent(200, 201));

  // Enable input again.
  client_session_->SetDisableInputs(false);
  connection_->clipboard_stub()->InjectClipboardEvent(MakeClipboardEvent("c"));
  connection_->input_stub()->InjectKeyEvent(MakeKeyEvent(true, 3));
  connection_->input_stub()->InjectMouseEvent(MakeMouseMoveEvent(300, 301));

  client_session_->DisconnectSession(protocol::OK);
  client_session_.reset();

  EXPECT_EQ(2U, mouse_events.size());
  EXPECT_THAT(mouse_events[0], EqualsMouseMoveEvent(100, 101));
  EXPECT_THAT(mouse_events[1], EqualsMouseMoveEvent(300, 301));

  EXPECT_EQ(4U, key_events.size());
  EXPECT_THAT(key_events[0], EqualsKeyEvent(1, true));
  EXPECT_THAT(key_events[1], EqualsKeyEvent(1, false));
  EXPECT_THAT(key_events[2], EqualsKeyEvent(3, true));
  EXPECT_THAT(key_events[3], EqualsKeyEvent(3, false));

  EXPECT_EQ(2U, clipboard_events.size());
  EXPECT_THAT(clipboard_events[0],
              EqualsClipboardEvent(kMimeTypeTextUtf8, "a"));
  EXPECT_THAT(clipboard_events[1],
              EqualsClipboardEvent(kMimeTypeTextUtf8, "c"));
}

TEST_F(ClientSessionTest, LocalInputTest) {
  CreateClientSession();
  ConnectClientSession();
  NotifyVideoSize();

  std::vector<protocol::MouseEvent> mouse_events;
  desktop_environment_factory_->last_desktop_environment()
      ->last_input_injector()
      ->set_mouse_events(&mouse_events);

  connection_->input_stub()->InjectMouseEvent(MakeMouseMoveEvent(100, 101));

#if !defined(OS_WIN)
  // The OS echoes the injected event back.
  client_session_->OnLocalMouseMoved(webrtc::DesktopVector(100, 101));
#endif  // !defined(OS_WIN)

  // This one should get throught as well.
  connection_->input_stub()->InjectMouseEvent(MakeMouseMoveEvent(200, 201));

  // Now this is a genuine local event.
  client_session_->OnLocalMouseMoved(webrtc::DesktopVector(100, 101));

  // This one should be blocked because of the previous local input event.
  connection_->input_stub()->InjectMouseEvent(MakeMouseMoveEvent(300, 301));

  // Verify that we've received correct set of mouse events.
  EXPECT_EQ(2U, mouse_events.size());
  EXPECT_THAT(mouse_events[0], EqualsMouseMoveEvent(100, 101));
  EXPECT_THAT(mouse_events[1], EqualsMouseMoveEvent(200, 201));

  // TODO(jamiewalch): Verify that remote inputs are re-enabled
  // eventually (via dependency injection, not sleep!)
}

TEST_F(ClientSessionTest, RestoreEventState) {
  CreateClientSession();
  ConnectClientSession();
  NotifyVideoSize();

  FakeInputInjector* input_injector =
      desktop_environment_factory_->last_desktop_environment()
          ->last_input_injector()
          .get();
  std::vector<protocol::KeyEvent> key_events;
  input_injector->set_key_events(&key_events);
  std::vector<protocol::MouseEvent> mouse_events;
  input_injector->set_mouse_events(&mouse_events);

  connection_->input_stub()->InjectKeyEvent(MakeKeyEvent(true, 1));
  connection_->input_stub()->InjectKeyEvent(MakeKeyEvent(true, 2));

  protocol::MouseEvent mousedown;
  mousedown.set_button(protocol::MouseEvent::BUTTON_LEFT);
  mousedown.set_button_down(true);
  connection_->input_stub()->InjectMouseEvent(mousedown);

  client_session_->DisconnectSession(protocol::OK);
  client_session_.reset();

  EXPECT_EQ(2U, mouse_events.size());
  EXPECT_THAT(mouse_events[0],
              EqualsMouseButtonEvent(protocol::MouseEvent::BUTTON_LEFT, true));
  EXPECT_THAT(mouse_events[1],
              EqualsMouseButtonEvent(protocol::MouseEvent::BUTTON_LEFT, false));

  EXPECT_EQ(4U, key_events.size());
  EXPECT_THAT(key_events[0], EqualsKeyEvent(1, true));
  EXPECT_THAT(key_events[1], EqualsKeyEvent(2, true));
  EXPECT_THAT(key_events[2], EqualsKeyEvent(1, false));
  EXPECT_THAT(key_events[3], EqualsKeyEvent(2, false));
}

TEST_F(ClientSessionTest, ClampMouseEvents) {
  CreateClientSession();
  ConnectClientSession();
  NotifyVideoSize();

  std::vector<protocol::MouseEvent> mouse_events;
  desktop_environment_factory_->last_desktop_environment()
      ->last_input_injector()
      ->set_mouse_events(&mouse_events);

  int input_x[3] = {-999, 100, 999};
  int expected_x[3] = {0, 100, protocol::FakeDesktopCapturer::kWidth - 1};
  int input_y[3] = {-999, 50, 999};
  int expected_y[3] = {0, 50, protocol::FakeDesktopCapturer::kHeight - 1};

  protocol::MouseEvent expected_event;
  for (int j = 0; j < 3; j++) {
    for (int i = 0; i < 3; i++) {
      mouse_events.clear();
      connection_->input_stub()->InjectMouseEvent(
          MakeMouseMoveEvent(input_x[i], input_y[j]));

      EXPECT_EQ(1U, mouse_events.size());
      EXPECT_THAT(mouse_events[0],
                  EqualsMouseMoveEvent(expected_x[i], expected_y[j]));
    }
  }
}

// Verifies that clients can have extensions registered, resulting in the
// correct capabilities being reported, and messages delivered correctly.
// The extension system is tested more extensively in the
// HostExtensionSessionManager unit-tests.
TEST_F(ClientSessionTest, Extensions) {
  // Configure fake extensions for testing.
  FakeExtension extension1("ext1", "cap1");
  extensions_.push_back(&extension1);
  FakeExtension extension2("ext2", "");
  extensions_.push_back(&extension2);
  FakeExtension extension3("ext3", "cap3");
  extensions_.push_back(&extension3);

  // Verify that the ClientSession reports the correct capabilities.
  EXPECT_CALL(client_stub_, SetCapabilities(EqCapabilities("cap1 cap3")));

  CreateClientSession();
  ConnectClientSession();

  testing::Mock::VerifyAndClearExpectations(&client_stub_);

  // Mimic the client reporting an overlapping set of capabilities.
  protocol::Capabilities capabilities_message;
  capabilities_message.set_capabilities("cap1 cap4 default");
  client_session_->SetCapabilities(capabilities_message);

  // Verify that the correct extension messages are delivered, and dropped.
  protocol::ExtensionMessage message1;
  message1.set_type("ext1");
  message1.set_data("data");
  client_session_->DeliverClientMessage(message1);
  protocol::ExtensionMessage message3;
  message3.set_type("ext3");
  message3.set_data("data");
  client_session_->DeliverClientMessage(message3);
  protocol::ExtensionMessage message4;
  message4.set_type("ext4");
  message4.set_data("data");
  client_session_->DeliverClientMessage(message4);

  base::RunLoop().RunUntilIdle();

  // ext1 was instantiated and sent a message, and did not wrap anything.
  EXPECT_TRUE(extension1.was_instantiated());
  EXPECT_TRUE(extension1.has_handled_message());

  // ext2 was instantiated but not sent a message, and wrapped video encoder.
  EXPECT_TRUE(extension2.was_instantiated());
  EXPECT_FALSE(extension2.has_handled_message());

  // ext3 was sent a message but not instantiated.
  EXPECT_FALSE(extension3.was_instantiated());
}

}  // namespace remoting


text:
/**
 * An area chart with negative values.
 */
Ext.define('KitchenSink.view.charts.area.Negative', {
    extend: 'Ext.Panel',
    xtype: 'area-negative',
    controller: 'area-negative',

    // <example>
    // Content between example tags is omitted from code preview.
    bodyStyle: 'background: transparent !important',
    layout: {
        type: 'vbox',
        pack: 'center'
    },
    otherContent: [{
        type: 'Controller',
        path: 'classic/samples/view/charts/area/NegativeController.js'
    }, {
        type: 'Store',
        path: 'classic/samples/store/Earnings.js'
    }],
    // </example>
    width: 650,

    tbar: [
        '->',
        {
            text: 'Preview',
            handler: 'onPreview'
        }
    ],

    items: [{
        xtype: 'cartesian',
        reference: 'chart',
        width: '100%',
        height: 500,
        insetPadding: '40 40 10 40',
        store: {
            type: 'earnings'
        },
        legend: {
            docked: 'bottom'
        },
        sprites: [{
            type: 'text',
            text: 'Profits and Losses (per product category)',
            fontSize: 22,
            width: 100,
            height: 30,
            x: 40, // the sprite x position
            y: 20  // the sprite y position
        }],
        axes: [{
            type: 'numeric',
            position: 'left',
            fields: ['consumer', 'gaming', 'phone', 'corporate'],
            grid: true
        }, {
            type: 'category',
            position: 'bottom',
            fields: 'quarter',
            label: {
                rotate: {
                    degrees: -45
                }
            }
        }]
        // No 'series' config here,
        // as series are dynamically added in the controller.
        //<example>
    }, {
        style: 'margin-top: 10px;',
        xtype: 'gridpanel',
        columns : {
            defaults: {
                sortable: false,
                menuDisabled: true
            },
            items: [
                { text: 'Quarter', dataIndex: 'quarter' },
                { text: 'Consumer', dataIndex: 'consumer'},
                { text: 'Gaming', dataIndex: 'gaming'},
                { text: 'Phone', dataIndex: 'phone'},
                { text: 'Corporate', dataIndex: 'corporate'}
            ]
        },
        store: {type: 'earnings'},
        width: '100%'
        //</example>
    }],

    listeners: {
        afterrender: 'onAfterRender'
    }

});


text:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
using MySql.Data.MySqlClient;

namespace OpenSim.Data.MySQL
{
    public class MySqlFriendsData : MySQLGenericTableHandler<FriendsData>, IFriendsData
    {
        public MySqlFriendsData(string connectionString, string realm)
                : base(connectionString, realm, "FriendsStore")
        {
        }

        public bool Delete(UUID principalID, string friend)
        {
            MySqlCommand cmd = new MySqlCommand();

            cmd.CommandText = String.Format("delete from {0} where PrincipalID = ?PrincipalID and Friend = ?Friend", m_Realm);
            cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
            cmd.Parameters.AddWithValue("?Friend", friend);

            ExecuteNonQuery(cmd);

            return true;
        }

        public FriendsData[] GetFriends(UUID principalID)
        {
            MySqlCommand cmd = new MySqlCommand();

            cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = ?PrincipalID", m_Realm);
            cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());

            return DoQuery(cmd);
        }
    }
}


text:
require "ffi"
require "forwardable"

module GObject
  # we have a number of things we need to inherit in different ways:
  #
  # - we want to be able to subclass GObject in Ruby in a simple way
  # - the layouts of the nested structs need to inherit
  # - we need to be able to cast between structs which share a base struct
  #   without creating new wrappers or messing up refcounting
  # - we need automatic gobject refcounting
  #
  # the solution is to split the class into four areas which we treat
  # differently:
  #
  # - we have a "wrapper" Ruby class to allow easy subclassing ... this has a
  #   @struct member which holds the actual pointer
  # - we use "forwardable" to forward the various ffi methods on to the
  #   @struct member ... we arrange things so that subclasses do not need to
  #   do the forwarding themselves
  # - we have two versions of the struct: a plain one which we can use for
  #   casting that will not change the refcounts
  # - and a managed one with an unref which we just use for .new
  # - we separate the struct layout into a separate module to avoid repeating
  #   ourselves

  class GObject
    extend Forwardable
    extend SingleForwardable

    def_instance_delegators :@struct, :[], :to_ptr
    def_single_delegators :ffi_struct, :ptr

    attr_reader :references

    # the layout of the GObject struct
    module GObjectLayout
      def self.included base
        base.class_eval do
          layout :g_type_instance, :pointer,
            :ref_count, :uint,
            :qdata, :pointer
        end
      end
    end

    # the struct with unref ... manage object lifetime with this
    class ManagedStruct < FFI::ManagedStruct
      include GObjectLayout

      def self.release ptr
        # GLib::logger.debug("GObject::GObject::ManagedStruct.release") {
        #     "unreffing #{ptr}"
        # }
        ::GObject.g_object_unref ptr
      end
    end

    # the plain struct ... cast with this
    class Struct < FFI::Struct
      include GObjectLayout
    end

    # don't allow ptr == nil, we never want to allocate a GObject struct
    # ourselves, we just want to wrap GLib-allocated GObjects
    #
    # here we use ManagedStruct, not Struct, since this is the ref that will
    # need the unref
    def initialize ptr
      # GLib::logger.debug("GObject::GObject.initialize") {"ptr = #{ptr}"}
      @ptr = ptr
      @struct = ffi_managed_struct.new ptr

      # sometimes we need to keep refs across C calls ... hide them here
      @references = []
    end

    # access to the casting struct for this class
    def ffi_struct
      self.class.ffi_struct
    end

    # get the pointer we were built from ... #to_ptr gets the pointer after we
    # have wrapped it up with an auto unref
    attr_reader :ptr

    class << self
      def ffi_struct
        const_get :Struct
      end
    end

    # access to the managed struct for this class
    def ffi_managed_struct
      self.class.ffi_managed_struct
    end

    class << self
      def ffi_managed_struct
        const_get :ManagedStruct
      end
    end
  end

  class GParamSpec < FFI::Struct
    # the first few public fields
    layout :g_type_instance, :pointer,
      :name, :string,
      :flags, :uint,
      :value_type, :GType,
      :owner_type, :GType
  end

  class GParamSpecPtr < FFI::Struct
    layout :value, GParamSpec.ptr
  end

  attach_function :g_param_spec_get_blurb, [:pointer], :string

  attach_function :g_object_ref, [:pointer], :void
  attach_function :g_object_unref, [:pointer], :void

  # we just use one gcallback type for every signal, hopefully this is OK
  callback :gcallback, [:pointer], :void
  attach_function :g_signal_connect_data,
    [:pointer, :string, :gcallback, :pointer, :pointer, :int], :long
end


text:
'use strict';

/**
 * Module dependencies.
 */
var should = require('should'),
	mongoose = require('mongoose'),
	User = mongoose.model('User'),
	PatCase = mongoose.model('PatCase');

/**
 * Globals
 */
var user, patCase;

/**
 * Unit tests
 */
describe('Pat case Model Unit Tests:', function() {
	beforeEach(function(done) {
		user = new User({
			firstName: 'Full',
			lastName: 'Name',
			displayName: 'Full Name',
			email: 'test@test.com',
			username: 'username',
			password: 'password'
		});

		user.save(function() {
			patCase = new PatCase({
				name: 'Pat case Name',
				user: user
			});

			done();
		});
	});

	describe('Method Save', function() {
		it('should be able to save without problems', function(done) {
			return patCase.save(function(err) {
				should.not.exist(err);
				done();
			});
		});

		it('should be able to show an error when try to save without name', function(done) {
			patCase.name = '';

			return patCase.save(function(err) {
				should.exist(err);
				done();
			});
		});
	});

	afterEach(function(done) {
		PatCase.remove().exec();
		User.remove().exec();

		done();
	});
});


text:
<?php
// ------------------------------------File gets the current user. Display on all pages where user is signed in------------------------------------

//Set user id using session id set when user logs in
$user_id= $_SESSION['id'];

//Global name variable to hold user's name
$name = Null;

//Global date and time variable to hold current times
$date = date("d-m-Y");
$time = date("h:i:sa");

//Globa User type variable to decide whether user is admin or user
$user_type = Null;

$is_admin = false;

$stmt = $db->prepare("SELECT * FROM `teachers` WHERE user_id= '$user_id' ");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
$count = $stmt -> rowCount();

//If row count is greater than 0 fetch all rows (should be one as user id is unique value)
if($count > 0) {
         $name = $stmt->fetchALL();

        	}
else{
   		echo"There was a problem";
   	}
//Set session variables
$_SESSION['name']=$name[0]['user_name'];
$_SESSION['email']=$name[0]['user_email'];
$_SESSION['type']=$name[0]['user_type'];
$_SESSION['car']=$name[0]['user_car'];

?>


text:
package org.arquillian.container.osgi.remote.processor.service;

import java.io.IOException;

import java.util.Collection;
import java.util.jar.Manifest;

import org.jboss.shrinkwrap.api.Archive;

/**
 * @author Cristina González
 */
public interface ImportPackageManager {

	public Manifest cleanRepeatedImports(
			Manifest manifest, Collection<Archive<?>> auxiliaryArchives)
		throws IOException;

}


text:
cask 'musicbrainz-picard' do
  version '2.1'
  sha256 '566007af740f937c54473f2a44852d6a383b636dc5467a3ccd0e6a56d63e85e5'

  # musicbrainz.osuosl.org/pub/ was verified as official when first introduced to the cask
  url "https://musicbrainz.osuosl.org/pub/musicbrainz/picard/MusicBrainz.Picard.#{version}.dmg"
  appcast 'https://picard.musicbrainz.org/changelog/'
  name 'MusicBrainz Picard'
  homepage 'https://picard.musicbrainz.org/'

  depends_on macos: '>= :yosemite'

  app 'MusicBrainz Picard.app'

  zap trash: [
               '~/.config/MusicBrainz',
               '~/Library/Caches/MusicBrainz',
               '~/Library/Preferences/org.musicbrainz.picard.plist',
               '~/Library/Saved Application State/org.musicbrainz.picard.savedState',
             ]
end


text:
{{ define "flashes" }}
{{ if . }}

	{{ range $flash := . }}
		{{ if eq $flash "forbidden" }}

			You must sign in to access the requested page.

		{{ end }}
		{{ if eq $flash "signed_in" }}

			Signed in successfully!

		{{ end }}
		{{ if eq $flash "token_not_found" }}

			There was a problem signing in. Please sign in again.

		{{ end }}
		{{ if eq $flash "token_expired" }}

			The token you entered was too old. Pluase sign in again.

		{{ end }}
		{{ if eq $flash "already_signed_in" }}

			You are already signed in! Sign out?

		{{ end }}
		{{ if eq $flash "signed_out" }}

			You have been signed out succesfully.

		{{ end }}
	{{ end }}

{{ end }}
{{ end }}


text:
<component name="InspectionProjectProfileManager">
  <profile version="1.0" is_locked="false">
    <option name="myName" value="Project Default" />
    <option name="myLocal" value="false" />
    <inspection_tool class="Annotator" enabled="false" level="ERROR" enabled_by_default="false" />
    <inspection_tool class="BadExpressionStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="CommaExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="JSHint" enabled="true" level="ERROR" enabled_by_default="true" />
    <inspection_tool class="JSLastCommaInObjectLiteral" enabled="false" level="ERROR" enabled_by_default="false" />
    <inspection_tool class="JSMethodCanBeStatic" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="JSPotentiallyInvalidUsageOfThis" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="JSReferencingMutableVariableFromClosure" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="JSUnusedAssignment" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="JSUnusedGlobalSymbols" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="JSUnusedLocalSymbols" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="JSValidateJSDoc" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
    <inspection_tool class="ReservedWordUsedAsNameJS" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="TrivialIfJS" enabled="false" level="WARNING" enabled_by_default="false" />
    <inspection_tool class="UnnecessaryLocalVariableJS" enabled="false" level="WARNING" enabled_by_default="false">
      <option name="m_ignoreImmediatelyReturnedVariables" value="false" />
      <option name="m_ignoreAnnotatedVariables" value="false" />
    </inspection_tool>
  </profile>
</component>


text:
<?=$this->layout('index');?>

<a href="<?=BASE_URL;?>"><?=$this->e($front_home);?>

<?=$this->e($front_post_title);?>

<a href="<?=$this->e($social_url);?>"><?=$this->e($page_title);?>

<?=$post['title'];?>

 <?=$this->pocore()->call->podatetime->tgl_indo($post['date']);?>

<a href="<?=BASE_URL;?>/member/profile/<?=$this->post()->getAuthor($post['editor'])['username'];?>" target="_blank"> <?=$this->post()->getAuthorName($post['editor']);?>

 <?=$this->post()->getPostTag($post['tag']);?>

 <?=$post['hits'];?> <?=$this->e($front_hits);?>

 <?=$this->post()->getCountComment($post['id_post']);?> <?=$this->e($front_comment);?>

							<a href="<?=BASE_URL;?>/<?=DIR_CON;?>/uploads/<?=$post['picture'];?>"><img src="<?=BASE_URL;?>/<?=DIR_CON;?>/uploads/<?=$post['picture'];?>" alt="<?=$post['title'];?>">
							<?php if ($post['picture_description'] != '') { ?>

<?=$post['picture_description'];?>

							<?php } ?>

							<?=htmlspecialchars_decode(html_entity_decode($post['content']));?>

								<?=$this->post()->getPostTag($post['tag'], '');?>

						<?php
							$prevpost = $this->post()->getPrevPost($post['id_post'], WEB_LANG_ID);
							if ($prevpost) {
						?>
							<a href="<?=$this->pocore()->call->postring->permalink(rtrim(BASE_URL, '/'), $prevpost);?>">⇐ <?=$prevpost['title'];?>
						<?php } ?>

						<?php
							$nextpost = $this->post()->getNextPost($post['id_post'], WEB_LANG_ID);
							if ($nextpost) {
						?>
							<a href="<?=$this->pocore()->call->postring->permalink(rtrim(BASE_URL, '/'), $nextpost);?>"><?=$nextpost['title'];?> ⇒
						<?php } ?>

						<?php
							$editor = $this->post()->getAuthor($post['editor']);
							if ($editor['picture'] != '') {
								$editor_avatar = BASE_URL.'/'.DIR_CON.'/uploads/'.$editor['picture'];
							} else {
								$editor_avatar = BASE_URL.'/'.DIR_CON.'/uploads/user-editor.jpg';
							}
						?>

<?=$this->e($front_post_by);?> <?=$editor['nama_lengkap'];?>

								<img src="<?=$editor_avatar;?>" alt="" class="img-circle" width="300">

							<?=htmlspecialchars_decode(html_entity_decode($editor['bio']));?>

<?=$this->e($front_related_post);?>

						<?php
							$norelated = 1;
							$relateds = $this->post()->getRelated($post['id_post'], $post['tag'], '2', 'DESC', WEB_LANG_ID);
							foreach($relateds as $related){
						?>
						<?php if ($norelated%2 == 0) { ?>

						<?php } else { ?>

						<?php } ?>

									<a href="<?=$this->pocore()->call->postring->permalink(rtrim(BASE_URL, '/'), $related);?>"><img src="<?=BASE_URL;?>/<?=DIR_CON;?>/uploads/medium/medium_<?=$related['picture'];?>" alt="<?=$related['title'];?>">

<a href="<?=$this->pocore()->call->postring->permalink(rtrim(BASE_URL, '/'), $related);?>"><?=$this->pocore()->call->postring->cuthighlight('title', $related['title'], '30');?>...

 <?=$this->pocore()->call->podatetime->tgl_indo($related['date']);?>

<a href="<?=$this->pocore()->call->postring->permalink(rtrim(BASE_URL, '/'), $related);?>#comments"> <?=$this->post()->getCountComment($related['id_post']);?>

<?=$this->pocore()->call->postring->cuthighlight('post', $related['content'], '70');?>...

						<?php $norelated++;} ?>

					<?php if ($post['comment'] == 'Y') { ?>

						<?php if ($this->post()->getCountComment($post['id_post']) > 0) { ?>

<?=$this->post()->getCountComment($post['id_post']);?> <?=$this->e($front_comment);?>

						<?php
							$com_parent = $this->post()->getCommentByPost($post['id_post'], '6', 'DESC', $this->e($page));
							$com_template = array(
								'parent_tag_open' => '
',
								'parent_tag_close' => '
',
								'child_tag_open' => '
',
								'child_tag_close' => '
',
								'comment_list' => '

												{$comment_name}
												{$comment_datetime}

{$comment_content}

											e($comment_reply).'">

								'
							);
						?>

							<?=$this->post()->generateComment($com_parent, 'DESC', $com_template);?>

								<?=$this->post()->getCommentPaging('6', $post['id_post'], $post['seotitle'], $this->e($page), '1', $this->e($front_paging_prev), $this->e($front_paging_next));?>

						<?php } ?>

<?=$this->e($front_leave_comment);?>

							<?=$this->pocore()->call->poflash->display();?>
							<form class="clearfix" action="<?=$this->pocore()->call->postring->permalink(rtrim(BASE_URL, '/'), $post);?>#comments" method="post" id="commentform">
								<input type="hidden" name="id_parent" id="id_parent" value="0" />
								<input type="hidden" name="id" name="id" value="<?=$post['id_post'];?>" />
								<input type="hidden" name="seotitle" id="seotitle" value="<?=$post['seotitle'];?>" />

									<?=$this->e($comment_name);?> *
									<input type="text" name="name" id="name" value="<?=(isset($_POST['name']) ? $_POST['name'] : '');?>" size="22" tabindex="1" class="sm-form-control required" required />

									<?=$this->e($comment_email);?> *
									<input type="text" name="email" id="email" value="<?=(isset($_POST['email']) ? $_POST['email'] : '');?>" size="22" tabindex="2" class="sm-form-control required" required />

									<?=$this->e($comment_website);?>
									<input type="text" name="url" id="url" value="<?=(isset($_POST['url']) ? $_POST['url'] : '');?>" size="22" tabindex="3" class="sm-form-control" placeholder="http://" />

									<?=$this->e($comment_text);?> *
									<textarea name="comment" cols="58" rows="7" tabindex="4" class="sm-form-control required" required><?=(isset($_POST['comment']) ? $_POST['comment'] : '');?></textarea>

									<div class="g-recaptcha" data-sitekey="<?=$this->pocore()->call->posetting[21]['value'];?>">

									<button name="submit" type="submit" id="submit-button" tabindex="5" value="Submit" class="button button-3d nomargin"><?=$this->e($comment_submit);?></button>

							</form>

					<?php } ?>

				<?=$this->insert('sidebar');?>


text:
Why Hyperledger Fabric?
=======================

Hyperledger Fabric is delivering a blockchain platform
designed to allow the exchange of an asset or the state of an asset to
be consented upon, maintained, and viewed by all parties in a
permissioned group. A key characteristic of Hyperledger Fabric is that
the asset is defined digitally, with all participants simply agreeing on
its representation/characterization. As such, Hyperledger Fabric can
support a broad range of asset types; ranging from the tangible (real
estate and hardware) to the intangible (contracts and intellectual
property).

The technology is based on a standard blockchain concept - a shared,
replicated ledger. However, Hyperledger Fabric is based on a
`permissioned network <glossary.md#permissioned-network>`__, meaning all
participants are required to be authenticated in order to participate
and transact on the blockchain. Moreover, these identities can be used
to govern certain levels of access control (e.g. this user can read the
ledger, but cannot exchange or transfer assets). This dependence on
identity is a great advantage in that varying consensus algorithms (e.g.
byzantine or crash fault tolerant) can be implemented in place of the
more compute-intensive Proof-of-Work and Proof-of-Stake varieties. As a
result, permissioned networks tend to provide higher transaction
throughput rates and performance.

Once an organization is granted access to the `blockchain
network <glossary.md#blockchain-network>`__, it then has the ability to
create and maintain a private `channel <glossary.md#channel>`__ with
other specified members. For example, let's assume there are four
organizations trading jewels. They may decide to use Hyperledger Fabric
because they trust each other, but not to an unconditional extent. They
can all agree on the business logic for trading the jewels, and can all
maintain a global ledger to view the current state of their jewel market
(call this the consortium channel). Additionally, two or more of these
organizations might decide to form an alternate private blockchain for a
certain exchange that they want to keep confidential (e.g. price X for
quantity Y of asset Z). They can perform this trade without affecting
their broader consortium channel, or, if desired, this private channel
can broadcast some level of reference data to their consortium channel.

This is powerful! This provides for great flexibility and potent
capabilities, along with the interoperability of multiple blockchain
ledgers within one consortium. This is the first of its kind and allows
organizations to curate Hyperledger Fabric to support the myriad use
cases for different businesses and industries. Hyperledger Fabric has
already been successfully implemented in the banking, finance, and
retail industries.

We welcome you to the Hyperledger Fabric community and are keen to learn
of your architectural and business requirements, and help determine how
Hyperledger Fabric can be leveraged to support your use cases.

.. Licensed under Creative Commons Attribution 4.0 International License
   https://creativecommons.org/licenses/by/4.0/


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TimelineForms.Common
{
    public static class Constants
    {
        public const string LoginPage = "LoginPage";
        public const string HomePage = "HomePage";
        public const string WritePostPage = "WritePostPage";
        public const string PostDetailsPage = "PostDetailsPage";

        public const string RefreshCompleted = "RefreshCompleted";
    }
}


text:
using System;
using System.Linq;
using Zirpl.AppEngine.DataService;
using Zirpl.AppEngine.DataService.EntityFramework;
using Zirpl.AppEngine.DataService.EntityFramework.Mapping;
using Zirpl.Examples.CodeGeneration.VS2013.Commerce.Model.Promotions;
using Zirpl.Examples.CodeGeneration.VS2013.Commerce.Model.Metadata.Constants.Promotions;

namespace Zirpl.Examples.CodeGeneration.VS2013.Commerce.DataService.Mapping.Promotions
{
    public partial class DiscountMapping : EntityMappingBase<Discount, int>
    {
		protected override void MapProperties()
        {

			this.Property(o => o.Name).IsRequired(DiscountMetadataConstants.Name_IsRequired).HasMaxLength(DiscountMetadataConstants.Name_MaxLength, DiscountMetadataConstants.Name_IsMaxLength);

            this.HasNavigationProperty(o => o.PromoCode,
                                        o => o.PromoCodeId,
                                        DiscountMetadataConstants.PromoCode_IsRequired,
                                        CascadeOnDeleteOption.No);

            this.HasNavigationProperty(o => o.DiscountApplicabilityType,
                                        o => o.DiscountApplicabilityTypeId,
                                        DiscountMetadataConstants.DiscountApplicabilityType_IsRequired,
                                        CascadeOnDeleteOption.No);
			this.Property(o => o.Amount).IsRequired(DiscountMetadataConstants.Amount_IsRequired).HasPrecision(18,4);

            this.HasNavigationProperty(o => o.DiscountAmountType,
                                        o => o.DiscountAmountTypeId,
                                        DiscountMetadataConstants.DiscountAmountType_IsRequired,
                                        CascadeOnDeleteOption.No);

            this.HasNavigationProperty(o => o.DiscountUsageRestrictionType,
                                        o => o.DiscountUsageRestrictionTypeId,
                                        DiscountMetadataConstants.DiscountUsageRestrictionType_IsRequired,
                                        CascadeOnDeleteOption.No);
			this.Property(o => o.DiscountUsageRestrictionQuantity).IsRequired(DiscountMetadataConstants.DiscountUsageRestrictionQuantity_IsRequired);
			this.Property(o => o.StopAfterChargeCyles).IsRequired(DiscountMetadataConstants.StopAfterChargeCyles_IsRequired);
			this.Property(o => o.StartDate).IsRequired(DiscountMetadataConstants.StartDate_IsRequired).IsDateTime();
			this.Property(o => o.EndDate).IsRequired(DiscountMetadataConstants.EndDate_IsRequired).IsDateTime();
			this.Property(o => o.Published).IsRequired(DiscountMetadataConstants.Published_IsRequired);

			this.MapCustomProperties();

            base.MapProperties();
        }

		partial void MapCustomProperties();

    }
}


text:
""" IDF Test Applications """
import subprocess

import os
import App

class IDFApp(App.BaseApp):
    """
    Implements common esp-idf application behavior.
    idf applications should inherent from this class and overwrite method get_binary_path.
    """

    IDF_DOWNLOAD_CONFIG_FILE = "download.config"
    IDF_FLASH_ARGS_FILE = "flash_project_args"

    def __init__(self, app_path):
        super(IDFApp, self).__init__(app_path)
        self.idf_path = self.get_sdk_path()
        self.binary_path = self.get_binary_path(app_path)
        assert os.path.exists(self.binary_path)
        if self.IDF_DOWNLOAD_CONFIG_FILE not in os.listdir(self.binary_path):
            if self.IDF_FLASH_ARGS_FILE not in os.listdir(self.binary_path):
                msg = ("Neither {} nor {} exists. "
                       "Try to run 'make print_flash_cmd | tail -n 1 > {}/{}' "
                       "or 'idf.py build' "
                       "for resolving the issue."
                       "").format(self.IDF_DOWNLOAD_CONFIG_FILE, self.IDF_FLASH_ARGS_FILE,
                             self.binary_path, self.IDF_DOWNLOAD_CONFIG_FILE)
                raise AssertionError(msg)

        self.esptool, self.partition_tool = self.get_tools()

    @classmethod
    def get_sdk_path(cls):
        idf_path = os.getenv("IDF_PATH")
        assert idf_path
        assert os.path.exists(idf_path)
        return idf_path

    @classmethod
    def get_tools(cls):
        idf_path = cls.get_sdk_path()
        # get esptool and partition tool for esp-idf
        esptool = os.path.join(idf_path, "components",
                               "esptool_py", "esptool", "esptool.py")
        partition_tool = os.path.join(idf_path, "components",
                                      "partition_table", "gen_esp32part.py")
        assert os.path.exists(esptool) and os.path.exists(partition_tool)
        return esptool, partition_tool

    def get_binary_path(self, app_path):
        """
        get binary path according to input app_path.

        subclass must overwrite this method.

        :param app_path: path of application
        :return: abs app binary path
        """
        pass

    def process_arg(self, arg):
        """
        process args in download.config. convert to abs path for .bin args. strip spaces and CRLFs.
        """
        if ".bin" in arg:
            ret = os.path.join(self.binary_path, arg)
        else:
            ret = arg
        return ret.strip("\r\n ")

    def process_app_info(self):
        """
        get app download config and partition info from a specific app path

        :return: download config, partition info
        """

        if self.IDF_FLASH_ARGS_FILE in os.listdir(self.binary_path):
            with open(os.path.join(self.binary_path, self.IDF_FLASH_ARGS_FILE), "r") as f:
                configs = []
                for line in f:
                    line = line.strip()
                    if len(line) > 0:
                        configs += line.split()
        else:
            with open(os.path.join(self.binary_path, self.IDF_DOWNLOAD_CONFIG_FILE), "r") as f:
                configs = f.read().split(" ")

        download_configs = ["--chip", "auto", "--before", "default_reset",
                            "--after", "hard_reset", "write_flash", "-z"]
        download_configs += [self.process_arg(x) for x in configs]

        # handle partition table
        for partition_file in download_configs:
            if "partition" in partition_file:
                partition_file = os.path.join(self.binary_path, partition_file)
                break
        else:
            raise ValueError("No partition table found for IDF binary path: {}".format(self.binary_path))

        process = subprocess.Popen(["python", self.partition_tool, partition_file],
                                   stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        raw_data = process.stdout.read()
        if isinstance(raw_data, bytes):
            raw_data = raw_data.decode()
        partition_table = dict()

        for line in raw_data.splitlines():
            if line[0] != "#":
                try:
                    _name, _type, _subtype, _offset, _size, _flags = line.split(",")
                    if _size[-1] == "K":
                        _size = int(_size[:-1]) * 1024
                    elif _size[-1] == "M":
                        _size = int(_size[:-1]) * 1024 * 1024
                    else:
                        _size = int(_size)
                except ValueError:
                    continue
                partition_table[_name] = {
                    "type": _type,
                    "subtype": _subtype,
                    "offset": _offset,
                    "size": _size,
                    "flags": _flags
                }
        return download_configs, partition_table

class Example(IDFApp):
    def get_binary_path(self, app_path):
        # build folder of example path
        path = os.path.join(self.idf_path, app_path, "build")
        if not os.path.exists(path):
            # search for CI build folders
            app = os.path.basename(app_path)
            example_path = os.path.join(self.idf_path, "build_examples", "example_builds")
            for dirpath, dirnames, files in os.walk(example_path):
                if dirnames:
                    if dirnames[0] == app:
                        path = os.path.join(example_path, dirpath, dirnames[0], "build")
                        break
            else:
                raise OSError("Failed to find example binary")
        return path

class UT(IDFApp):
    def get_binary_path(self, app_path):
        """
        :param app_path: app path or app config
        :return: binary path
        """
        if not app_path:
            app_path = "default"

        path = os.path.join(self.idf_path, app_path)
        if not os.path.exists(path):
            while True:
                # try to get by config
                if app_path == "default":
                    # it's default config, we first try to get form build folder of unit-test-app
                    path = os.path.join(self.idf_path, "tools", "unit-test-app", "build")
                    if os.path.exists(path):
                        # found, use bin in build path
                        break
                # ``make ut-build-all-configs`` or ``make ut-build-CONFIG`` will copy binary to output folder
                path = os.path.join(self.idf_path, "tools", "unit-test-app", "output", app_path)
                if os.path.exists(path):
                    break
                raise OSError("Failed to get unit-test-app binary path")
        return path

class SSC(IDFApp):
    def get_binary_path(self, app_path):
        # TODO: to implement SSC get binary path
        return app_path

class AT(IDFApp):
    def get_binary_path(self, app_path):
        # TODO: to implement AT get binary path
        return app_path