{"version":3,"sources":["node_modules/browser-pack/_prelude.js","home.bundle.min.js","business-objects/GeneratedCollectionDetails.js","lib/colorUtility.js","models/dao/MediaParameters.js","node_modules/he/he.js","node_modules/path-browserify/index.js","node_modules/process/browser.js","node_modules/querystring-es3/decode.js","node_modules/querystring-es3/encode.js","node_modules/querystring-es3/index.js","node_modules/underscore/underscore.js","public/ecmascript/components/GetACardModal/GetACardModal.html.js","public/ecmascript/components/GetACardModal/GetACardModal.js","public/ecmascript/components/campaign/templates/Campaign.html.js","public/ecmascript/components/campaign/views/Campaign.js","public/ecmascript/components/collection_campaign_page/CollectionDefinition.js","public/ecmascript/components/collection_campaign_page/CollectionHighlightFactory.js","public/ecmascript/components/collection_campaign_page/CollectionManager.js","public/ecmascript/components/collection_campaign_page/PageManager.js","public/ecmascript/components/collection_campaign_page/PageView.js","public/ecmascript/components/collection_highlight/templates/collection_highlight.html.js","public/ecmascript/components/collection_highlight/views/CollectionHighlight.js","public/ecmascript/components/collection_highlight_slanted/SlantedCollectionHightlight.html.js","public/ecmascript/components/collection_highlight_slanted/SlantedCollectionHightlight.js","public/ecmascript/components/common/HashManager.js","public/ecmascript/components/common/modal.js","public/ecmascript/components/common/templates/Error.html.js","public/ecmascript/components/common/templates/modal.html.js","public/ecmascript/components/libby_tout/LibbyTout.html.js","public/ecmascript/components/media/ContextMenu.js","public/ecmascript/components/media/Cover.js","public/ecmascript/components/media/MediaInterface.js","public/ecmascript/components/media/TitleActionButton.js","public/ecmascript/components/media/TitleCard.js","public/ecmascript/components/media/TitleCollectionView.js","public/ecmascript/components/media/TitleHeaderBar.js","public/ecmascript/components/media/WishListButton.js","public/ecmascript/components/media/models/Title.js","public/ecmascript/components/media/models/TitleCollection.js","public/ecmascript/components/media/templates/ContextMenu.html.js","public/ecmascript/components/media/templates/Cover.html.js","public/ecmascript/components/media/templates/NoCover.html.js","public/ecmascript/components/media/templates/TitleCard.html.js","public/ecmascript/components/media/templates/TitleFormatBadge.html.js","public/ecmascript/components/media/templates/TitleName.html.js","public/ecmascript/components/media/templates/WishListButton.html.js","public/ecmascript/components/media/views/TitleInfo.js","public/ecmascript/components/media/views/TitleInfo/TitleAuthor.js","public/ecmascript/components/media/views/TitleInfo/TitleEdition.js","public/ecmascript/components/media/views/TitleInfo/TitleFormatBadge.js","public/ecmascript/components/media/views/TitleInfo/TitleName.js","public/ecmascript/models/PatronTitleStatus.js","public/ecmascript/pages/home.js","public/ecmascript/title-actions/TitleActions.js","public/ecmascript/title-actions/TitleState.js","public/ecmascript/util/Promise.js","public/ecmascript/util/forwardedActions.js","public/ecmascript/util/keycodes.js","public/ecmascript/util/svgLoader.js","public/ecmascript/util/title-actions/processForwardedAction.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","C:\\projects\\lightning\\business-objects\\GeneratedCollectionDetails.js","module","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","_","GeneratedCollectionDetails","this","mediaType","language","publisherEntityId","maturityLevels","subjects","sortBy","maxItems","undefined","assign","apply","concat","Array","slice","arguments","value","model","extend","flatten","reject","val","isEmpty","maturityLevel","subject","underscore","C:\\projects\\lightning\\lib\\colorUtility.js","ColorUtility","hexColor","replace","m","g","b","substring","match","map","x","parseInt","rgb","nToHex","hex","toString","backgroundRGB","LUMA_THRESHOLD_YIQ","backgroundHex","hexToRGB","getTextColorFromRGB","percent","shadedRGB","shadeColor","rgbToHex","Math","abs","hsl","rgbToHsl","l","hslToRgb","h","s","hue2rgb","q","round","max","min","d","get","C:\\projects\\lightning\\models\\dao\\MediaParameters.js","MediaParameters","query","title","series","publisherId","imprintId","identifier","creator","creatorId","addedDate","availableFirst","showOnlyAvailable","showOnlyPrerelease","hasAudioSynchronizedText","collectionId","format","bisacCode","atosLevel","lexileScore","interestLevel","gradeLevel","includedFacets","show","page","perPage","includeFacets","includeNoFormatTitles","filterCpcTitles","roomFilters","userPreferences","audience","each","keys","push","_this","response","forEach","_hasValue","isObject","C:\\projects\\lightning\\node_modules\\he\\he.js","global","root","freeExports","freeModule","freeGlobal","window","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","­","‌","‍","‎","⁣","⁢","⁡","‏","​","⁠","̑","⃛","⃜","\t","\n"," "," "," "," "," "," "," "," "," "," ","  ","‾","‐","–","—","―",",",";","⁏",":","⩴","!","¡","?","¿",".","‥","…","·","'","‘","’","‚","‹","›","\"","“","”","„","«","»","(",")","[","]","{","}","⌈","⌉","⌊","⌋","⦅","⦆","⦋","⦌","⦍","⦎","⦏","⦐","⦑","⦒","⦓","⦔","⦕","⦖","⟦","⟧","⟨","⟩","⟪","⟫","⟬","⟭","❲","❳","‖","§","¶","@","*","/","&","#","%","‰","‱","†","‡","•","⁃","′","″","‴","⁗","‵","⁁","`","´","˜","^","¯","˘","˙","¨","˚","˝","¸","˛","ˆ","ˇ","°","©","®","℗","℘","℞","℧","℩","←","↚","→","↛","↑","↓","↔","↮","↕","↖","↗","↘","↙","↝","↝̸","↞","↟","↠","↡","↢","↣","↤","↥","↦","↧","↩","↪","↫","↬","↭","↰","↱","↲","↳","↵","↶","↷","↺","↻","↼","↽","↾","↿","⇀","⇁","⇂","⇃","⇄","⇅","⇆","⇇","⇈","⇉","⇊","⇋","⇌","⇐","⇍","⇑","⇒","⇏","⇓","⇔","⇎","⇕","⇖","⇗","⇘","⇙","⇚","⇛","⇝","⇤","⇥","⇵","⇽","⇾","⇿","∀","∁","∂","∂̸","∃","∄","∅","∇","∈","∉","∋","∌","϶","∏","∐","∑","+","±","÷","×","<","≮","<⃒","=","≠","=⃥","⩵",">","≯",">⃒","¬","|","¦","−","∓","∔","⁄","∖","∗","∘","√","∝","∞","∟","∠","∠⃒","∡","∢","∣","∤","∥","∦","∧","∨","∩","∩︀","∪","∪︀","∫","∬","∭","⨌","∮","∯","∰","∱","∲","∳","∴","∵","∶","∷","∸","∺","∻","∼","≁","∼⃒","∽","∽̱","∾","∾̳","∿","≀","≂","≂̸","≃","≄","≅","≇","≆","≈","≉","≊","≋","≋̸","≌","≍","≭","≍⃒","≎","≎̸","≏","≏̸","≐","≐̸","≑","≒","≓","≔","≕","≖","≗","≙","≚","≜","≟","≡","≢","≡⃥","≤","≰","≤⃒","≥","≱","≥⃒","≦","≦̸","≧","≧̸","≨︀","≨","≩","≩︀","≪","≪̸","≪⃒","≫","≫̸","≫⃒","≬","≲","≴","≳","≵","≶","≸","≷","≹","≺","⊀","≻","⊁","≼","⋠","≽","⋡","≾","≿","≿̸","⊂","⊄","⊂⃒","⊃","⊅","⊃⃒","⊆","⊈","⊇","⊉","⊊︀","⊊","⊋︀","⊋","⊍","⊎","⊏","⊏̸","⊐","⊐̸","⊑","⋢","⊒","⋣","⊓","⊓︀","⊔","⊔︀","⊕","⊖","⊗","⊘","⊙","⊚","⊛","⊝","⊞","⊟","⊠","⊡","⊢","⊬","⊣","⊤","⊥","⊧","⊨","⊭","⊩","⊮","⊪","⊫","⊯","⊰","⊲","⋪","⊳","⋫","⊴","⋬","⊴⃒","⊵","⋭","⊵⃒","⊶","⊷","⊸","⊹","⊺","⊻","⊽","⊾","⊿","⋀","⋁","⋂","⋃","⋄","⋅","⋆","⋇","⋈","⋉","⋊","⋋","⋌","⋍","⋎","⋏","⋐","⋑","⋒","⋓","⋔","⋕","⋖","⋗","⋘","⋘̸","⋙","⋙̸","⋚︀","⋚","⋛","⋛︀","⋞","⋟","⋦","⋧","⋨","⋩","⋮","⋯","⋰","⋱","⋲","⋳","⋴","⋵","⋵̸","⋶","⋷","⋹","⋹̸","⋺","⋻","⋼","⋽","⋾","⌅","⌆","⌌","⌍","⌎","⌏","⌐","⌒","⌓","⌕","⌖","⌜","⌝","⌞","⌟","⌢","⌣","⌭","⌮","⌶","⌽","⌿","⍼","⎰","⎱","⎴","⎵","⎶","⏜","⏝","⏞","⏟","⏢","⏧","␣","─","│","┌","┐","└","┘","├","┤","┬","┴","┼","═","║","╒","╓","╔","╕","╖","╗","╘","╙","╚","╛","╜","╝","╞","╟","╠","╡","╢","╣","╤","╥","╦","╧","╨","╩","╪","╫","╬","▀","▄","█","░","▒","▓","□","▪","▫","▭","▮","▱","△","▴","▵","▸","▹","▽","▾","▿","◂","◃","◊","○","◬","◯","◸","◹","◺","◻","◼","★","☆","☎","♀","♂","♠","♣","♥","♦","♪","✓","✗","✠","✶","❘","⟈","⟉","⟵","⟶","⟷","⟸","⟹","⟺","⟼","⟿","⤂","⤃","⤄","⤅","⤌","⤍","⤎","⤏","⤐","⤑","⤒","⤓","⤖","⤙","⤚","⤛","⤜","⤝","⤞","⤟","⤠","⤣","⤤","⤥","⤦","⤧","⤨","⤩","⤪","⤳","⤳̸","⤵","⤶","⤷","⤸","⤹","⤼","⤽","⥅","⥈","⥉","⥊","⥋","⥎","⥏","⥐","⥑","⥒","⥓","⥔","⥕","⥖","⥗","⥘","⥙","⥚","⥛","⥜","⥝","⥞","⥟","⥠","⥡","⥢","⥣","⥤","⥥","⥦","⥧","⥨","⥩","⥪","⥫","⥬","⥭","⥮","⥯","⥰","⥱","⥲","⥳","⥴","⥵","⥶","⥸","⥹","⥻","⥼","⥽","⥾","⥿","⦚","⦜","⦝","⦤","⦥","⦦","⦧","⦨","⦩","⦪","⦫","⦬","⦭","⦮","⦯","⦰","⦱","⦲","⦳","⦴","⦵","⦶","⦷","⦹","⦻","⦼","⦾","⦿","⧀","⧁","⧂","⧃","⧄","⧅","⧉","⧍","⧎","⧏","⧏̸","⧐","⧐̸","⧜","⧝","⧞","⧣","⧤","⧥","⧫","⧴","⧶","⨀","⨁","⨂","⨄","⨆","⨍","⨐","⨑","⨒","⨓","⨔","⨕","⨖","⨗","⨢","⨣","⨤","⨥","⨦","⨧","⨩","⨪","⨭","⨮","⨯","⨰","⨱","⨳","⨴","⨵","⨶","⨷","⨸","⨹","⨺","⨻","⨼","⨿","⩀","⩂","⩃","⩄","⩅","⩆","⩇","⩈","⩉","⩊","⩋","⩌","⩍","⩐","⩓","⩔","⩕","⩖","⩗","⩘","⩚","⩛","⩜","⩝","⩟","⩦","⩪","⩭","⩭̸","⩮","⩯","⩰","⩰̸","⩱","⩲","⩳","⩷","⩸","⩹","⩺","⩻","⩼","⩽","⩽̸","⩾","⩾̸","⩿","⪀","⪁","⪂","⪃","⪄","⪅","⪆","⪇","⪈","⪉","⪊","⪋","⪌","⪍","⪎","⪏","⪐","⪑","⪒","⪓","⪔","⪕","⪖","⪗","⪘","⪙","⪚","⪝","⪞","⪟","⪠","⪡","⪡̸","⪢","⪢̸","⪤","⪥","⪦","⪧","⪨","⪩","⪪","⪫","⪬","⪬︀","⪭","⪭︀","⪮","⪯","⪯̸","⪰","⪰̸","⪳","⪴","⪵","⪶","⪷","⪸","⪹","⪺","⪻","⪼","⪽","⪾","⪿","⫀","⫁","⫂","⫃","⫄","⫅","⫅̸","⫆","⫆̸","⫇","⫈","⫋︀","⫋","⫌︀","⫌","⫏","⫐","⫑","⫒","⫓","⫔","⫕","⫖","⫗","⫘","⫙","⫚","⫛","⫤","⫦","⫧","⫨","⫩","⫫","⫬","⫭","⫮","⫯","⫰","⫱","⫲","⫳","⫽","⫽⃥","♭","♮","♯","¤","¢","$","£","¥","€","¹","½","⅓","¼","⅕","⅙","⅛","²","⅔","⅖","³","¾","⅗","⅜","⅘","⅚","⅝","⅞","𝒶","𝕒","𝔞","𝔸","𝔄","𝒜","ª","á","Á","à","À","ă","Ă","â","Â","å","Å","ä","Ä","ã","Ã","ą","Ą","ā","Ā","æ","Æ","𝒷","𝕓","𝔟","𝔹","ℬ","𝔅","𝔠","𝒸","𝕔","ℭ","𝒞","ℂ","ć","Ć","ĉ","Ĉ","č","Č","ċ","Ċ","ç","Ç","℅","𝔡","ⅆ","𝕕","𝒹","𝒟","𝔇","ⅅ","𝔻","ď","Ď","đ","Đ","ð","Ð","ⅇ","ℯ","𝔢","𝕖","ℰ","𝔈","𝔼","é","É","è","È","ê","Ê","ě","Ě","ë","Ë","ė","Ė","ę","Ę","ē","Ē","𝔣","𝕗","𝒻","𝔉","𝔽","ℱ","ff","ffi","ffl","fi","fj","fl","ƒ","ℊ","𝕘","𝔤","𝒢","𝔾","𝔊","ǵ","ğ","Ğ","ĝ","Ĝ","ġ","Ġ","Ģ","𝔥","ℎ","𝒽","𝕙","ℋ","ℌ","ℍ","ĥ","Ĥ","ℏ","ħ","Ħ","𝕚","𝔦","𝒾","ⅈ","𝕀","ℐ","ℑ","í","Í","ì","Ì","î","Î","ï","Ï","ĩ","Ĩ","İ","į","Į","ī","Ī","ij","IJ","ı","𝒿","𝕛","𝔧","𝒥","𝔍","𝕁","ĵ","Ĵ","ȷ","𝕜","𝓀","𝔨","𝒦","𝕂","𝔎","ķ","Ķ","𝔩","𝓁","ℓ","𝕝","ℒ","𝔏","𝕃","ĺ","Ĺ","ľ","Ľ","ļ","Ļ","ł","Ł","ŀ","Ŀ","𝔪","𝕞","𝓂","𝔐","𝕄","ℳ","𝔫","𝕟","𝓃","ℕ","𝒩","𝔑","ń","Ń","ň","Ň","ñ","Ñ","ņ","Ņ","№","ŋ","Ŋ","𝕠","𝔬","ℴ","𝒪","𝔒","𝕆","º","ó","Ó","ò","Ò","ô","Ô","ö","Ö","ő","Ő","õ","Õ","ø","Ø","ō","Ō","œ","Œ","𝔭","𝓅","𝕡","ℙ","𝔓","𝒫","𝕢","𝔮","𝓆","𝒬","𝔔","ℚ","ĸ","𝔯","𝕣","𝓇","ℛ","ℜ","ℝ","ŕ","Ŕ","ř","Ř","ŗ","Ŗ","𝕤","𝓈","𝔰","𝕊","𝔖","𝒮","Ⓢ","ś","Ś","ŝ","Ŝ","š","Š","ş","Ş","ß","𝔱","𝓉","𝕥","𝒯","𝔗","𝕋","ť","Ť","ţ","Ţ","™","ŧ","Ŧ","𝓊","𝕦","𝔲","𝕌","𝔘","𝒰","ú","Ú","ù","Ù","ŭ","Ŭ","û","Û","ů","Ů","ü","Ü","ű","Ű","ũ","Ũ","ų","Ų","ū","Ū","𝔳","𝕧","𝓋","𝔙","𝕍","𝒱","𝕨","𝓌","𝔴","𝒲","𝕎","𝔚","ŵ","Ŵ","𝔵","𝓍","𝕩","𝕏","𝔛","𝒳","𝔶","𝓎","𝕪","𝒴","𝔜","𝕐","ý","Ý","ŷ","Ŷ","ÿ","Ÿ","𝓏","𝔷","𝕫","ℨ","ℤ","𝒵","ź","Ź","ž","Ž","ż","Ż","Ƶ","þ","Þ","ʼn","α","Α","β","Β","γ","Γ","δ","Δ","ε","ϵ","Ε","ϝ","Ϝ","ζ","Ζ","η","Η","θ","ϑ","Θ","ι","Ι","κ","ϰ","Κ","λ","Λ","μ","µ","Μ","ν","Ν","ξ","Ξ","ο","Ο","π","ϖ","Π","ρ","ϱ","Ρ","σ","Σ","ς","τ","Τ","υ","Υ","ϒ","φ","ϕ","Φ","χ","Χ","ψ","Ψ","ω","Ω","а","А","б","Б","в","В","г","Г","ѓ","Ѓ","д","Д","ђ","Ђ","е","Е","ё","Ё","є","Є","ж","Ж","з","З","ѕ","Ѕ","и","И","і","І","ї","Ї","й","Й","ј","Ј","к","К","ќ","Ќ","л","Л","љ","Љ","м","М","н","Н","њ","Њ","о","О","п","П","р","Р","с","С","т","Т","ћ","Ћ","у","У","ў","Ў","ф","Ф","х","Х","ц","Ц","ч","Ч","џ","Џ","ш","Ш","щ","Щ","ъ","Ъ","ы","Ы","ь","Ь","э","Э","ю","Ю","я","Я","ℵ","ℶ","ℷ","ℸ","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","aacute","Aacute","abreve","Abreve","ac","acd","acE","acirc","Acirc","acute","acy","Acy","aelig","AElig","af","afr","Afr","agrave","Agrave","alefsym","aleph","alpha","Alpha","amacr","Amacr","amalg","amp","AMP","and","And","andand","andd","andslope","andv","ang","ange","angle","angmsd","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","aogon","Aogon","aopf","Aopf","ap","apacir","ape","apE","apid","apos","ApplyFunction","approx","approxeq","aring","Aring","ascr","Ascr","Assign","ast","asymp","asympeq","atilde","Atilde","auml","Auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","barwed","Barwed","barwedge","bbrk","bbrktbrk","bcong","bcy","Bcy","bdquo","becaus","because","Because","bemptyv","bepsi","bernou","Bernoullis","beta","Beta","beth","between","bfr","Bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bnot","bNot","bopf","Bopf","bot","bottom","bowtie","boxbox","boxdl","boxdL","boxDl","boxDL","boxdr","boxdR","boxDr","boxDR","boxh","boxH","boxhd","boxhD","boxHd","boxHD","boxhu","boxhU","boxHu","boxHU","boxminus","boxplus","boxtimes","boxul","boxuL","boxUl","boxUL","boxur","boxuR","boxUr","boxUR","boxv","boxV","boxvh","boxvH","boxVh","boxVH","boxvl","boxvL","boxVl","boxVL","boxvr","boxvR","boxVr","boxVR","bprime","breve","Breve","brvbar","bscr","Bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpe","bumpE","bumpeq","Bumpeq","cacute","Cacute","cap","Cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","ccaron","Ccaron","ccedil","Ccedil","ccirc","Ccirc","Cconint","ccups","ccupssm","cdot","Cdot","cedil","Cedilla","cemptyv","cent","centerdot","CenterDot","cfr","Cfr","chcy","CHcy","check","checkmark","chi","Chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cire","cirE","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","colon","Colon","colone","Colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","conint","Conint","ContourIntegral","copf","Copf","coprod","Coproduct","copy","COPY","copysr","CounterClockwiseContourIntegral","crarr","cross","Cross","cscr","Cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","cup","Cup","cupbrcap","cupcap","CupCap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","dagger","Dagger","daleth","darr","dArr","Darr","dash","dashv","Dashv","dbkarow","dblac","dcaron","Dcaron","dcy","Dcy","dd","DD","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","delta","Delta","demptyv","dfisht","dfr","Dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","diamond","Diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","djcy","DJcy","dlcorn","dlcrop","dollar","dopf","Dopf","dot","Dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","downarrow","Downarrow","DownArrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","dscr","Dscr","dscy","DScy","dsol","dstrok","Dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","dzcy","DZcy","dzigrarr","eacute","Eacute","easter","ecaron","Ecaron","ecir","ecirc","Ecirc","ecolon","ecy","Ecy","eDDot","edot","eDot","Edot","ee","efDot","efr","Efr","eg","egrave","Egrave","egs","egsdot","el","Element","elinters","ell","els","elsdot","emacr","Emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","eng","ENG","ensp","eogon","Eogon","eopf","Eopf","epar","eparsl","eplus","epsi","epsilon","Epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","escr","Escr","esdot","esim","Esim","eta","Eta","eth","ETH","euml","Euml","euro","excl","exist","Exists","expectation","exponentiale","ExponentialE","fallingdotseq","fcy","Fcy","female","ffilig","fflig","ffllig","ffr","Ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","fopf","Fopf","forall","ForAll","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","fscr","Fscr","gacute","gamma","Gamma","gammad","Gammad","gap","gbreve","Gbreve","Gcedil","gcirc","Gcirc","gcy","Gcy","gdot","Gdot","ge","gE","gel","gEl","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","gfr","Gfr","gg","Gg","ggg","gimel","gjcy","GJcy","gl","gla","glE","glj","gnap","gnapprox","gne","gnE","gneq","gneqq","gnsim","gopf","Gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","gscr","Gscr","gsim","gsime","gsiml","gt","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","hardcy","HARDcy","harr","hArr","harrcir","harrw","Hat","hbar","hcirc","Hcirc","hearts","heartsuit","hellip","hercon","hfr","Hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","hopf","Hopf","horbar","HorizontalLine","hscr","Hscr","hslash","hstrok","Hstrok","HumpDownHump","HumpEqual","hybull","hyphen","iacute","Iacute","ic","icirc","Icirc","icy","Icy","Idot","iecy","IEcy","iexcl","iff","ifr","Ifr","igrave","Igrave","ii","iiiint","iiint","iinfin","iiota","ijlig","IJlig","Im","imacr","Imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","int","Int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","iocy","IOcy","iogon","Iogon","iopf","Iopf","iota","Iota","iprod","iquest","iscr","Iscr","isin","isindot","isinE","isins","isinsv","isinv","it","itilde","Itilde","iukcy","Iukcy","iuml","Iuml","jcirc","Jcirc","jcy","Jcy","jfr","Jfr","jmath","jopf","Jopf","jscr","Jscr","jsercy","Jsercy","jukcy","Jukcy","kappa","Kappa","kappav","kcedil","Kcedil","kcy","Kcy","kfr","Kfr","kgreen","khcy","KHcy","kjcy","KJcy","kopf","Kopf","kscr","Kscr","lAarr","lacute","Lacute","laemptyv","lagran","lambda","Lambda","lang","Lang","langd","langle","lap","Laplacetrf","laquo","larr","lArr","Larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","latail","lAtail","late","lates","lbarr","lBarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","lcaron","Lcaron","lcedil","Lcedil","lceil","lcub","lcy","Lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","le","lE","LeftAngleBracket","leftarrow","Leftarrow","LeftArrow","LeftArrowBar","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","leftrightarrow","Leftrightarrow","LeftRightArrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","leftthreetimes","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","leg","lEg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","lfr","Lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","ljcy","LJcy","ll","Ll","llarr","llcorner","Lleftarrow","llhard","lltri","lmidot","Lmidot","lmoust","lmoustache","lnap","lnapprox","lne","lnE","lneq","lneqq","lnsim","loang","loarr","lobrk","longleftarrow","Longleftarrow","LongLeftArrow","longleftrightarrow","Longleftrightarrow","LongLeftRightArrow","longmapsto","longrightarrow","Longrightarrow","LongRightArrow","looparrowleft","looparrowright","lopar","lopf","Lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","lscr","Lscr","lsh","Lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","lstrok","Lstrok","lt","Lt","LT","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","Map","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","mcy","Mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","mfr","Mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","mopf","Mopf","mp","mscr","Mscr","mstpos","mu","Mu","multimap","mumap","nabla","nacute","Nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","ncaron","Ncaron","ncedil","Ncedil","ncong","ncongdot","ncup","ncy","Ncy","ndash","ne","nearhk","nearr","neArr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","nfr","Nfr","nge","ngE","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","ngt","nGt","ngtr","nGtv","nharr","nhArr","nhpar","ni","nis","nisd","niv","njcy","NJcy","nlarr","nlArr","nldr","nle","nlE","nleftarrow","nLeftarrow","nleftrightarrow","nLeftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nlt","nLt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","nopf","Nopf","not","Not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrarr","nrArr","nrarrc","nrarrw","nrightarrow","nRightarrow","nrtri","nrtrie","nsc","nsccue","nsce","nscr","Nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsube","nsubE","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupe","nsupE","nsupset","nsupseteq","nsupseteqq","ntgl","ntilde","Ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","nu","Nu","num","numero","numsp","nvap","nvdash","nvDash","nVdash","nVDash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwarr","nwArr","nwarrow","nwnear","oacute","Oacute","oast","ocir","ocirc","Ocirc","ocy","Ocy","odash","odblac","Odblac","odiv","odot","odsold","oelig","OElig","ofcir","ofr","Ofr","ogon","ograve","Ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","omacr","Omacr","omega","Omega","omicron","Omicron","omid","ominus","oopf","Oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","or","Or","orarr","ord","order","orderof","ordf","ordm","origof","oror","orslope","orv","oS","oscr","Oscr","oslash","Oslash","osol","otilde","Otilde","otimes","Otimes","otimesas","ouml","Ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","par","para","parallel","parsim","parsl","part","PartialD","pcy","Pcy","percnt","period","permil","perp","pertenk","pfr","Pfr","phi","Phi","phiv","phmmat","phone","pi","Pi","pitchfork","piv","planck","planckh","plankv","plus","plusacir","plusb","pluscir","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","popf","Popf","pound","pr","Pr","prap","prcue","pre","prE","prec","precapprox","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","precsim","prime","Prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","prop","Proportion","Proportional","propto","prsim","prurel","pscr","Pscr","psi","Psi","puncsp","qfr","Qfr","qint","qopf","Qopf","qprime","qscr","Qscr","quaternions","quatint","quest","questeq","quot","QUOT","rAarr","race","racute","Racute","radic","raemptyv","rang","Rang","rangd","range","rangle","raquo","rarr","rArr","Rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","rarrtl","Rarrtl","rarrw","ratail","rAtail","ratio","rationals","rbarr","rBarr","RBarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","rcaron","Rcaron","rcedil","Rcedil","rceil","rcub","rcy","Rcy","rdca","rdldhar","rdquo","rdquor","rdsh","Re","real","realine","realpart","reals","rect","reg","REG","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","rfr","Rfr","rHar","rhard","rharu","rharul","rho","Rho","rhov","RightAngleBracket","rightarrow","Rightarrow","RightArrow","RightArrowBar","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTee","RightTeeArrow","RightTeeVector","rightthreetimes","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","ropf","Ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","rscr","Rscr","rsh","Rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","sacute","Sacute","sbquo","sc","Sc","scap","scaron","Scaron","sccue","sce","scE","scedil","Scedil","scirc","Scirc","scnap","scnE","scnsim","scpolint","scsim","scy","Scy","sdot","sdotb","sdote","searhk","searr","seArr","searrow","sect","semi","seswar","setminus","setmn","sext","sfr","Sfr","sfrown","sharp","shchcy","SHCHcy","shcy","SHcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","sigma","Sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","softcy","SOFTcy","sol","solb","solbar","sopf","Sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","square","Square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squf","srarr","sscr","Sscr","ssetmn","ssmile","sstarf","star","Star","starf","straightepsilon","straightphi","strns","sub","Sub","subdot","sube","subE","subedot","submult","subne","subnE","subplus","subrarr","subset","Subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","sum","Sum","sung","sup","Sup","sup1","sup2","sup3","supdot","supdsub","supe","supE","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supne","supnE","supplus","supset","Supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swarr","swArr","swarrow","swnwar","szlig","Tab","tau","Tau","tbrk","tcaron","Tcaron","tcedil","Tcedil","tcy","Tcy","tdot","telrec","tfr","Tfr","there4","therefore","Therefore","theta","Theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","thorn","THORN","tilde","Tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","topf","Topf","topfork","tosa","tprime","trade","TRADE","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","tscr","Tscr","tscy","TScy","tshcy","TSHcy","tstrok","Tstrok","twixt","twoheadleftarrow","twoheadrightarrow","uacute","Uacute","uarr","uArr","Uarr","Uarrocir","ubrcy","Ubrcy","ubreve","Ubreve","ucirc","Ucirc","ucy","Ucy","udarr","udblac","Udblac","udhar","ufisht","ufr","Ufr","ugrave","Ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","umacr","Umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","uogon","Uogon","uopf","Uopf","uparrow","Uparrow","UpArrow","UpArrowBar","UpArrowDownArrow","updownarrow","Updownarrow","UpDownArrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","upsi","Upsi","upsih","upsilon","Upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","uring","Uring","urtri","uscr","Uscr","utdot","utilde","Utilde","utri","utrif","uuarr","uuml","Uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","varr","vArr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","vBar","Vbar","vBarv","vcy","Vcy","vdash","vDash","Vdash","VDash","Vdashl","vee","Vee","veebar","veeeq","vellip","verbar","Verbar","vert","Vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","vfr","Vfr","vltri","vnsub","vnsup","vopf","Vopf","vprop","vrtri","vscr","Vscr","vsubne","vsubnE","vsupne","vsupnE","Vvdash","vzigzag","wcirc","Wcirc","wedbar","wedge","Wedge","wedgeq","weierp","wfr","Wfr","wopf","Wopf","wp","wr","wreath","wscr","Wscr","xcap","xcirc","xcup","xdtri","xfr","Xfr","xharr","xhArr","xi","Xi","xlarr","xlArr","xmap","xnis","xodot","xopf","Xopf","xoplus","xotime","xrarr","xrArr","xscr","Xscr","xsqcup","xuplus","xutri","xvee","xwedge","yacute","Yacute","yacy","YAcy","ycirc","Ycirc","ycy","Ycy","yen","yfr","Yfr","yicy","YIcy","yopf","Yopf","yscr","Yscr","yucy","YUcy","yuml","Yuml","zacute","Zacute","zcaron","Zcaron","zcy","Zcy","zdot","Zdot","zeetrf","ZeroWidthSpace","zeta","Zeta","zfr","Zfr","zhcy","ZHcy","zigrarr","zopf","Zopf","zscr","Zscr","zwj","zwnj","decodeMapLegacy","decodeMapNumeric","0","128","130","131","132","133","134","135","136","137","138","139","140","142","145","146","147","148","149","150","151","152","153","154","155","156","158","159","invalidReferenceCodePoints","stringFromCharCode","String","fromCharCode","object","hasOwnProperty","has","propertyName","contains","array","index","merge","options","defaults","result","codePointToSymbol","codePoint","strict","output","parseError","hexEscape","toUpperCase","decEscape","message","encode","string","test","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","decimal","escapeBmpSymbol","symbol","charCodeAt","$0","high","low","decode","html","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","next","isAttributeValue","escape","he","version","unescape","define","amd","nodeType","self","C:\\projects\\lightning\\node_modules\\path-browserify\\index.js","process","normalizeArray","parts","allowAboveRoot","up","last","splice","unshift","basename","path","start","end","matchedSlash","filter","xs","res","resolve","resolvedPath","resolvedAbsolute","cwd","charAt","split","join","normalize","isAbsolute","trailingSlash","substr","paths","relative","from","to","trim","arr","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","ext","extname","startDot","startPart","preDotState","str","len","_process","C:\\projects\\lightning\\node_modules\\process\\browser.js","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","run","Item","noop","nextTick","args","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","chdir","dir","umask","C:\\projects\\lightning\\node_modules\\querystring-es3\\decode.js","obj","qs","eq","regexp","maxKeys","kstr","vstr","k","v","idx","indexOf","decodeURIComponent","isArray","C:\\projects\\lightning\\node_modules\\querystring-es3\\encode.js","stringifyPrimitive","isFinite","objectKeys","ks","encodeURIComponent","C:\\projects\\lightning\\node_modules\\querystring-es3\\index.js","parse","stringify","./decode","./encode","C:\\projects\\lightning\\node_modules\\underscore\\underscore.js","previousUnderscore","ArrayProto","ObjProto","SymbolProto","Symbol","nativeIsArray","nativeKeys","nativeCreate","create","Ctor","_wrapped","VERSION","builtinIteratee","optimizeCb","func","context","argCount","collection","accumulator","cb","iteratee","identity","isFunction","matcher","property","Infinity","restArguments","startIndex","rest","baseCreate","shallowProperty","deepGet","MAX_ARRAY_INDEX","pow","getLength","isArrayLike","collect","results","currentKey","createReduce","reducer","memo","initial","reduce","foldl","inject","reduceRight","foldr","find","detect","predicate","keyFinder","findIndex","findKey","select","list","negate","every","all","some","any","includes","include","item","fromIndex","guard","values","invoke","contextPath","method","pluck","where","attrs","findWhere","computed","lastComputed","shuffle","sample","random","clone","rand","temp","criteria","sort","left","right","group","behavior","partition","groupBy","indexBy","countBy","reStrSymbol","toArray","isString","size","pass","first","head","take","tail","drop","compact","Boolean","input","shallow","isArguments","j","without","otherArrays","difference","uniq","unique","isSorted","isBoolean","seen","union","arrays","intersection","argsLength","unzip","zip","createPredicateIndexFinder","findLastIndex","sortedIndex","floor","createIndexFinder","predicateFind","isNaN","lastIndexOf","stop","step","ceil","chunk","count","executeBound","sourceFunc","boundFunc","callingContext","bind","bound","callArgs","partial","boundArgs","placeholder","position","bindAll","memoize","hasher","cache","address","delay","wait","defer","throttle","previous","later","leading","now","throttled","remaining","trailing","cancel","debounce","immediate","debounced","callNow","wrap","wrapper","compose","after","before","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","constructor","proto","allKeys","mapObject","pairs","invert","functions","methods","names","createAssigner","keysFunc","source","extendOwn","keyInObj","pick","omit","tap","interceptor","isMatch","deepEq","aStack","bStack","type","className","valueOf","areArrays","aCtor","bCtor","pop","isEqual","isElement","nodelist","document","childNodes","Int8Array","isSymbol","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","propertyOf","matches","accum","Date","getTime","unescapeMap","createEscaper","escaper","testRegexp","RegExp","replaceRegexp","fallback","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","
","
","escapeRegExp","escapeChar","template","text","settings","oldSettings","offset","variable","render","Function","data","argument","chain","_chain","chainResult","mixin","toJSON","C:\\projects\\lightning\\public\\ecmascript\\components\\GetACardModal\\GetACardModal.html.js","_window","url","routes","accountGetACard","accountSignIn","C:\\projects\\lightning\\public\\ecmascript\\components\\GetACardModal\\GetACardModal.js","_interopRequireDefault","__esModule","default","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_modal","_GetACardModal","_GetACardModal2","GetACardModal","_Modal","content","modalContents","classes","hiddenTitle","Cookies","set","httpOnly","getPrototypeOf","Modal","../common/modal","./GetACardModal.html","C:\\projects\\lightning\\public\\ecmascript\\components\\campaign\\templates\\Campaign.html.js","_ref","campaign","roomClass","description","items","mediaId","C:\\projects\\lightning\\public\\ecmascript\\components\\campaign\\views\\Campaign.js","_Title","_Title2","_TitleCard","_TitleCard2","_TitleActions","_TitleActions2","_Campaign","_Campaign2","_svgLoader","_svgLoader2","Campaign","_Backbone$View","bus","currentRoom","titleActions","titleCard","listenTo","_handleTitleAction","themeName","$campaign","setContext","append","$el","_ref2","action","perform","Backbone","View","../../../title-actions/TitleActions","../../../util/svgLoader","../../media/TitleCard","../../media/models/Title","../templates/Campaign.html","C:\\projects\\lightning\\public\\ecmascript\\components\\collection_campaign_page\\CollectionDefinition.js","_MediaInterface","_MediaInterface2","_GeneratedCollectionDetails","_GeneratedCollectionDetails2","CollectionDefinition","_Backbone$Model","_mediaInterface","titleCollection","availabilityOption","sortByAvailability","curatedCollectionDetails","generatedCollectionDetails","lastModified","totalItems","pageSize","isLuckyDay","useListOrder","isCurated","isOrdered","patronSettings","room","roomHasMaturityLevelFilter","filters","patronMaturityLevelPreferences","_parsePatronAudienceSettings","isGenerated","genColDetails","attributes","details","params","serializeForSearch","fetchCollectionByParameters","collectionOptions","generatedCollectionOptions","_patronFiltersPermitCollection","fetchEmptyResponse","curatedCollectionOptions","fetchCollectionById","patronAudienceSetting","audienceFilters","isApplied","collectionMaturityFilters","userMaturityFilters","collectionLower","toLowerCase","userLower","Model","../../../../business-objects/GeneratedCollectionDetails","../media/MediaInterface","C:\\projects\\lightning\\public\\ecmascript\\components\\collection_campaign_page\\CollectionHighlightFactory.js","_CollectionHighlight","_CollectionHighlight2","_SlantedCollectionHightlight","_SlantedCollectionHightlight2","featureManager","CollectionHighlightViewFactory","collectionDefinition","viewOptions","forceSlanted","isEnabled","../collection_highlight/views/CollectionHighlight","../collection_highlight_slanted/SlantedCollectionHightlight","C:\\projects\\lightning\\public\\ecmascript\\components\\collection_campaign_page\\CollectionManager.js","_CollectionDefinition","_CollectionDefinition2","CollectionManager","_Backbone$Collection","Collection","./CollectionDefinition","C:\\projects\\lightning\\public\\ecmascript\\components\\collection_campaign_page\\PageManager.js","PageManager","_this2","roomId","rooms","Promise","fetch","success","error","campaignId","ajax","campaigns","dataType","done","fail","jqHXR","textStatus","errorThrown","collections","getById","viewName","isLoaded","views","isDefault","C:\\projects\\lightning\\public\\ecmascript\\components\\collection_campaign_page\\PageView.js","_toConsumableArray","arr2","_Error","_Error2","_processForwardedAction","_processForwardedAction2","_HashManager","_HashManager2","_TitleCollection","_TitleCollection2","_PatronTitleStatus","_PatronTitleStatus2","_PageManager","_PageManager2","_CollectionManager","_CollectionManager2","_CollectionHighlightFactory","_CollectionHighlightFactory2","_LibbyTout","_LibbyTout2","_querystring","_querystring2","Logger","Waypoint","_window$OverDrive","OverDrive","isAuthenticated","hasLinkedCards","PageView","viewId","lazyWaypointIndex","pageManager","collectionManager","collectionErrors","collectionIndexesToFail","failCampaign","rawParams","location","search","queryParams","collectionsToFail","forcedSlantedGridCollections","forcedSlantedGridCollectionIndexes","forceAllSlantedGridCollections","slantedGridTitleCountOverride","update","view","remove","fetchRoomById","then","initViews","unrenderedViews","_loadPage","isFirstPage","_renderPage","_renderLibbyTout","rowCount","_this3","wayPointIndex","_paintCollections","_fetchRows","_updatePatronTitleStatus","_performForwardedAction","waypoint","breakpoint","Inview","element","enter","destroy","newrelic","addPageAction","_collections","_pageLoadComplete","_this4","collectionsDone","_syncRows","failed","requestQueue","sync","settle","succeeded","fulfilled","request","failure","console","frag","createDocumentFragment","isPainted","appendChild","_this5","$loadMore","allCollectionsFailed","_logPageErrors","allFailed","howMany","errors","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","statusText","status","err","counts","log","_this6","getCampaigns","showCampaign","isVisitor","campaignView","generateHeroPlaceholderEl","fetchCampaignById","updatePatronState","removeView","getView","_shouldTruncateCollections","collectionDefinitions","reset","isHero","viewArgs","titleCountOverride","forceSlantedGridView","collectionHighlightView","Build","desiredTitleCount","fetchCollectionTitles","simulateFailure","toggleTitleVisibility","makeHero","titles","patronTitleStatus","fetchTitleStatus","updateTitleCollectionState","_this7","libbytout","$tout","optimizeForChina","isInViewport","addClass","removeClass","elementTop","elementBottom","outerHeight","viewportTop","scrollTop","viewportBottom","height","forwardedAction","executeAction","deviceInfo","detectshun","inApp","ios","bowser","osversion","versionParts","majorVersion","../../components/common/HashManager","../../components/common/templates/Error.html","../../models/PatronTitleStatus","../../util/Promise","../../util/title-actions/processForwardedAction","../campaign/views/Campaign","../libby_tout/LibbyTout.html","../media/models/TitleCollection","./CollectionHighlightFactory","./CollectionManager","./PageManager","querystring","C:\\projects\\lightning\\public\\ecmascript\\components\\collection_highlight\\templates\\collection_highlight.html.js","seeAllUrl","collectionName","C:\\projects\\lightning\\public\\ecmascript\\components\\collection_highlight\\views\\CollectionHighlight.js","_get","receiver","desc","getOwnPropertyDescriptor","parent","getter","_TitleCollectionView","_TitleCollectionView2","_collection_highlight","_collection_highlight2","CollectionHighlight","_ref$isHero","class","$view","titleCollectionView","viewAttributes","coverWidths","mobile","tablet","desktop","isInHero","isVisible","collectionById","youMayLikeCollection","../../media/TitleCollectionView","../templates/collection_highlight.html","C:\\projects\\lightning\\public\\ecmascript\\components\\collection_highlight_slanted\\SlantedCollectionHightlight.html.js","coverGridSizeClass","collectionTitle","collectionDescription","coversHtml","bannerBackgroundColor","bannerTextColor","useFallbackDisplay","fallBackGridWidth","coverHtml","C:\\projects\\lightning\\public\\ecmascript\\components\\collection_highlight_slanted\\SlantedCollectionHightlight.js","_Cover","_Cover2","_TitleName","_TitleName2","_colorUtility","_colorUtility2","SlantedCollectionHighlight","_ref$titleCountOverri","_views","highContrastMode","highContrast","_vertToHorizBreakpointPx","_coverBlockWidthPercentLarge","_coverBlockWidthPercentageSmall","_smallGridMaxWidthPx","_mediumGridMaxWidthPx","_largeGridMaxWidthPx","_coverPlaceholderHtml","colors","getTitlePanelColors","sizeInfo","getGridSize","getCoversHtml","background","foreground","gridWidthFallback","evt","currentTarget","style","color","foregroundHover","xlarge","numCovers","numCoversFallback","numTilesFallback","placeholderIndexes","large","medium","small","largeDimension","screen","availWidth","availHeight","smallDimension","landscapeMaxGridWidth","portraitMaxGridWidth","maxCoverGridWidth","backgroundColor","highContrastBlue","colorSourceTitle","innerWidth","at","cover","getCover","primary","isPlaceholder","primaryColor","foregroundColor","getTextColorFromHex","shadeColorHex","renderBaseCovers","numRequired","_coverMarkup","titleName","innerHTML","attr","Modernizr","cssgrid","../../../../lib/colorUtility","../media/Cover","../media/views/TitleInfo/TitleName","./SlantedCollectionHightlight.html","C:\\projects\\lightning\\public\\ecmascript\\components\\common\\HashManager.js","HashManager","hashObject","hash","newHash","C:\\projects\\lightning\\public\\ecmascript\\components\\common\\modal.js","_keycodes","_keycodes2","_modal2","_temp","_ret","_len","_key","isSelectEvent","which","preventDefault","tpl","setElement","$content","$title","css","autoRender","_render","_bindEvents","attachToDocument","autoShow","trigger","defaultButtonBehaviour","close","TAB","_keepFocus","_beforeShow","foundation","_afterShow","focused","activeElement","focus","_setScroll","pageYOffset","innerHeight","offsetHeight","scrollIntoView","scrollBy","activeElem","firstFocusable","lastFocusable","is","shiftKey","hide","closeOnEsc","closeOnBlur","buttonAlign","submitText","cancelText","showCloseButton","../../util/keycodes","./templates/modal.html","C:\\projects\\lightning\\public\\ecmascript\\components\\common\\templates\\Error.html.js","link","supportMembers","C:\\projects\\lightning\\public\\ecmascript\\components\\common\\templates\\modal.html.js","C:\\projects\\lightning\\public\\ecmascript\\components\\libby_tout\\LibbyTout.html.js","isChina","appLinksUS","iOSUrl","cdn","androidUrl","winUrl","appLinksCN","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\ContextMenu.js","_ContextMenu","_ContextMenu2","ContextMenu","isKeyboardSelectEvent","rid","click .js-historyAction","keydown .js-historyAction","keydown .js-context-button","stopImmediatePropagation","keyCode","viewModel","Foundation","libs","dropdown","toggle","seriesSearchUrl","searchByType","seriesId","typeId","sampleHref","href","sampleText","_getSampleText","alignment","historyActionLabel","_getHistoryActionLabel","historyActionText","_getHistoryActionText","historyEnabled","showHistoryFeature","gaHistoryAction","./templates/ContextMenu.html","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\Cover.js","_NoCover","_NoCover2","Cover","_ref$isTitleHistory","isTitleHistory","media","device","coverWidth","$cover","_$cover","coverColor","src","titleDetailsUrl","label","firstCreatorName","noSampleClass","titleId","imagesRemoved","JSON","covers","creatorText","isMagazine","coverHeight","_manageOverflow","_resizeClearImage","querySelector","width","selector","resetText","scrollHeight","clientHeight","./templates/Cover.html","./templates/NoCover.html","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\MediaInterface.js","_MediaParameters","_MediaParameters2","MediaInterface","Events","facets","sortOptions","term","_fetch","parameters","collectionFilters","mediaParameters","emptyResponse","_fetchDone","supportedFacets","sorts","contentType","serialize","jqXHR","_fetchFail","../../../../models/dao/MediaParameters","./models/TitleCollection","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\TitleActionButton.js","TitleActionButton","_ref$type","hasCustomAction","$button","getButtonAttrs","_attachEventHandlers","isWaiting","event","_triggerTitleAction","state","buttonAttrs","data-media-id","data-type","data-type-name","tabindex","isButton","_classes","isLink","accountRecommendations","accountLoans","accountHolds","mediaDownload","dotSpinner","primaryActionLoadingGif","disabled","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\TitleCard.js","_TitleInfo","_TitleInfo2","_TitleActionButton","_TitleActionButton2","_WishListButton","_WishListButton2","_TitleHeaderBar","_TitleHeaderBar2","TitleCard","_ref$isInHero","$tmp","titleHeaderBar","titleInfo","titleActionButton","wishlistButton","./Cover","./TitleActionButton","./TitleHeaderBar","./WishListButton","./templates/TitleCard.html","./views/TitleInfo","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\TitleCollectionView.js","TitleCollectionView","patronMediaItemsModel","initialFetch","patronData","_updateMediaStates","ids","_ids","_ids2","Number","$collectionTitle","../../title-actions/TitleActions","./TitleCard","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\TitleHeaderBar.js","TitleHeaderBar","initialize","$titleHeaderBar","returnState","container","banner","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\WishListButton.js","WishListButton","contrast","isAdd","formatType","click","needsRefocus","buttonHtml","ga","contrastClass","ariaLabel","iconClass","_animate","./templates/WishListButton.html","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\models\\Title.js","_TitleState","_TitleState2","Title","patronItems","titleState","_getState","globalEvents","firstCreatorId","formats","isOwned","isHoldable","isRecommendableToLibrary","isPreReleaseTitle","isAvailable","starRating","userStarRating","starRatingCount","holdsRatio","holdsCount","ownedCopies","availableCopies","luckyDayOwnedCopies","luckyDayAvailableCopies","estimatedReleaseDate","availabilityType","publisher","isRecommended","wishlistState","isInHistory","addToAppFormat","isOnHold","isReleasedHold","isBorrowed","stopListening","titleModel","_applyUpdates","changedAttributes","isOnWishlist","readingHistoryState","isOnReadingHistory","desiredSize","coversBySize","optimizedCover","legacyImageHost","optimizedImageHost","optimizedUrl","optimizations","queryString","smallestCoverThatIsBigEnough","mediaAvailabilityId","attribute","availabilityText","setPatronState","getState","onHolds","onCheckouts","recommendedToLibrary","mediaInfoId","contextCollectionId","cid","hasLuckyDayCopies","hasAvailableLuckyDayCopies","../../../title-actions/TitleState","../MediaInterface","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\models\\TitleCollection.js","TitleCollection","./Title","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\templates\\ContextMenu.html.js","mediaRelatedId","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\templates\\Cover.html.js","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\templates\\NoCover.html.js","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\templates\\TitleCard.html.js","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\templates\\TitleFormatBadge.html.js","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\templates\\TitleName.html.js","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\templates\\WishListButton.html.js","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\views\\TitleInfo.js","_TitleAuthor","_TitleAuthor2","_TitleEdition","_TitleEdition2","_TitleFormatBadge","_TitleFormatBadge2","TitleInfo","_reset","contextMenu","titleEdition","titleAuthor","titleFormatBadge","../ContextMenu","./TitleInfo/TitleAuthor","./TitleInfo/TitleEdition","./TitleInfo/TitleFormatBadge","./TitleInfo/TitleName","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\views\\TitleInfo\\TitleAuthor.js","TitleAuthorTemplate","TitleAuthor","tagName","contents","viewData","author","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\views\\TitleInfo\\TitleEdition.js","TitleEdition","node","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\views\\TitleInfo\\TitleFormatBadge.js","TitleFormatBadge","../../templates/TitleFormatBadge.html","C:\\projects\\lightning\\public\\ecmascript\\components\\media\\views\\TitleInfo\\TitleName.js","TitleName","labelParts","_assembleLabel","../../templates/TitleName.html","C:\\projects\\lightning\\public\\ecmascript\\models\\PatronTitleStatus.js","PatronTitleStatus","statusTypes","titleArray","titleIds","stubAttributes","updateTitleState","mediaInfo","../components/media/models/Title","../components/media/models/TitleCollection","C:\\projects\\lightning\\public\\ecmascript\\pages\\home.js","_PageView","_PageView2","pageView","showGetACardModal","../components/GetACardModal/GetACardModal","../components/collection_campaign_page/PageView","C:\\projects\\lightning\\public\\ecmascript\\title-actions\\TitleActions.js","TitleActions","C:\\projects\\lightning\\public\\ecmascript\\title-actions\\TitleState.js","TitleState","isOnCheckouts","isOnRecommendations","isRenewable","isLuckyDayCheckout","onWishlist","onReadingHistory","starRatings","C:\\projects\\lightning\\public\\ecmascript\\util\\Promise.js","promises","PromiseInspection","xhr","C:\\projects\\lightning\\public\\ecmascript\\util\\forwardedActions.js","recommend","$actionLink","history","replaceState","pathname","promise","getTitleAsync","titleAction","../title-actions/TitleActions","C:\\projects\\lightning\\public\\ecmascript\\util\\keycodes.js","freeze","ENTER","LEFT","UP","RIGHT","DOWN","SPACE","C:\\projects\\lightning\\public\\ecmascript\\util\\svgLoader.js","ajaxSettings","headers","$elm","ajaxSetup","csrf-token","_csrf","C:\\projects\\lightning\\public\\ecmascript\\util\\title-actions\\processForwardedAction.js","_forwardedActions","ProcessForwardedAction","actionArr","rating","../../components/media/models/Title","../forwardedActions.js"],"mappings":"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C,IAAA,OAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,OAAAC,KAAA,MAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,IAAA,MAAAC,KAAA,OAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,KAAA,MAAAC,IAAA,KAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,IAAA,KAAAC,KAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,KAAAC,IAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,GAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,SAAAC,KAAA,MAAAC,IAAA,UAAAC,KAAA,OAAAC,KAAA,OAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,KAAAC,KAAA,OAAAC,IAAA,OAAAC,IAAA,KAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,IAAA,SAAAC,IAAA,SAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,MAAAC,KAAA,OAAAC,IAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,IAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,MAAAC,IAAA,MAAAC,KAAA,OAAAC,KAAA,MAAAC,IAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,IAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,IAAA,OAAAC,IAAA,SAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,IAAA,OAAAC,IAAA,KAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,KAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,SAAAC,IAAA,SAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,IAAA,QAAAC,IAAA,QAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,KAAA,OAAAC,KAAA,MAAAC,KAAA,OAAAC,IAAA,MAAAC,IAAA,OAAAC,KAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,UAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,QAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,SAAAC,IAAA,QAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,KAAAC,IAAA,QAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,UAAAC,IAAA,UAAAC,IAAA,KAAAC,IAAA,MAAAC,IAAA,KAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,SAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,UAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,QAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,QAAAC,IAAA,QAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,SAAAC,IAAA,SAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,OAAAC,IAAA,QAAAC,IAAA,UAEAC,EAAA,YACAC,GACAp7C,IAAA,SACA8C,IAAA,QACApD,IAAA,SACA2L,IAAA,OAKAO,IAAA,OAKA/H,IAAA,UAGAw3C,EAAA,kCACAC,EAAA,qPACAC,EAAA,i8gBACAC;AAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,GAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,GAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,cAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,YAAA,IAAAC,UAAA,IAAAC,QAAA,IAAAC,UAAA,IAAAC,UAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,WAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,OAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,UAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAC,gBAAA,IAAAC,cAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,aAAA,IAAAC,YAAA,IAAAC,cAAA,IAAAC,kBAAA,IAAAC,kBAAA,IAAAC,mBAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,KAAAC,QAAA,KAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,MAAA,IAAAC,SAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,qBAAA,IAAAC,KAAA,KAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,UAAA,IAAAC,UAAA,IAAAC,IAAA,KAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,UAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,gBAAA,IAAAC,iBAAA,IAAAC,WAAA,IAAAC,YAAA,IAAAC,YAAA,IAAAC,UAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,YAAA,IAAAC,WAAA,IAAAC,YAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,yBAAA,IAAAC,sBAAA,IAAAC,gBAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,WAAA,IAAAC,UAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,UAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,gBAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,UAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,gCAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,OAAA,IAAAC,QAAA,IAAAC,YAAA,IAAAC,YAAA,IAAAC,SAAA,IAAAC,WAAA,IAAAC,OAAA,IAAAC,eAAA,IAAAC,gBAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,iBAAA,IAAAC,eAAA,IAAAC,uBAAA,IAAAC,iBAAA,IAAAC,iBAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,YAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,cAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,cAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAC,UAAA,IAAAC,eAAA,IAAAC,sBAAA,IAAAC,UAAA,IAAAC,gBAAA,IAAAC,gBAAA,IAAAC,qBAAA,IAAAC,cAAA,IAAAC,oBAAA,IAAAC,yBAAA,IAAAC,qBAAA,IAAAC,iBAAA,IAAAC,eAAA,IAAAC,cAAA,IAAAC,kBAAA,IAAAC,kBAAA,IAAAC,UAAA,IAAAC,UAAA,IAAAC,UAAA,IAAAC,aAAA,IAAAC,iBAAA,IAAAC,UAAA,IAAAC,eAAA,IAAAC,gBAAA,IAAAC,iBAAA,IAAAC,oBAAA,IAAAC,kBAAA,IAAAC,eAAA,IAAAC,kBAAA,IAAAC,mBAAA,IAAAC,gBAAA,IAAAC,mBAAA,IAAAC,QAAA,IAAAC,aAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,GAAA,IAAAC,MAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,GAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,GAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,iBAAA,IAAAC,OAAA,IAAAC,qBAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,WAAA,IAAAC,YAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,WAAA,IAAAC,OAAA,IAAAC,YAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,YAAA,IAAAC,aAAA,IAAAC,aAAA,IAAAC,cAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,MAAA,IAAAC,kBAAA,IAAAC,sBAAA,IAAAC,MAAA,KAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,WAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,KAAA,KAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,GAAA,IAAAC,GAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,GAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,MAAA,IAAAC,aAAA,IAAAC,iBAAA,IAAAC,iBAAA,IAAAC,eAAA,IAAAC,YAAA,IAAAC,kBAAA,IAAAC,aAAA,IAAAC,KAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,UAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,UAAA,IAAAC,WAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,UAAA,KAAAC,KAAA,KAAAC,MAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,UAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,IAAAC,aAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,cAAA,IAAAC,eAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,eAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,aAAA,IAAAC,UAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,GAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,GAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,WAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,aAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAC,eAAA,IAAAC,eAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,KAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,WAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,MAAA,KAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,KAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,iBAAA,IAAAC,UAAA,IAAAC,UAAA,IAAAC,UAAA,IAAAC,aAAA,IAAAC,oBAAA,IAAAC,cAAA,IAAAC,YAAA,IAAAC,kBAAA,IAAAC,kBAAA,IAAAC,eAAA,IAAAC,kBAAA,IAAAC,UAAA,IAAAC,gBAAA,IAAAC,cAAA,IAAAC,eAAA,IAAAC,eAAA,IAAAC,eAAA,IAAAC,eAAA,IAAAC,gBAAA,IAAAC,kBAAA,IAAAC,oBAAA,IAAAC,gBAAA,IAAAC,QAAA,IAAAC,aAAA,IAAAC,cAAA,IAAAC,eAAA,IAAAC,aAAA,IAAAC,gBAAA,IAAAC,kBAAA,IAAAC,iBAAA,IAAAC,gBAAA,IAAAC,aAAA,IAAAC,gBAAA,IAAAC,WAAA,IAAAC,cAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,KAAA,KAAAC,OAAA,IAAAC,WAAA,IAAAC,QAAA,IAAAC,UAAA,IAAAC,WAAA,IAAAC,iBAAA,IAAAC,cAAA,IAAAC,YAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAC,eAAA,IAAAC,UAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,GAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,WAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,WAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,cAAA,IAAAC,cAAA,IAAAC,cAAA,IAAAC,mBAAA,IAAAC,mBAAA,IAAAC,mBAAA,IAAAC,WAAA,IAAAC,eAAA,IAAAC,eAAA,IAAAC,eAAA,IAAAC,cAAA,IAAAC,eAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,eAAA,IAAAC,gBAAA,IAAAC,IAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAC,UAAA,KAAAC,KAAA,KAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,QAAA,IAAA/jF,IAAA,IAAAgkF,IAAA,IAAAC,OAAA,IAAAC,WAAA,IAAAC,WAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,cAAA,IAAAC,YAAA,IAAAC,UAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,UAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,GAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,IAAA,IAAAC,KAAA,KAAAC,MAAA,KAAAC,MAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,KAAA,IAAAC,MAAA,KAAAC,OAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,SAAA,KAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,MAAA,KAAAC,oBAAA,IAAAC,mBAAA,IAAAC,kBAAA,IAAAC,sBAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,KAAAC,qBAAA,IAAAC,eAAA,IAAAC,QAAA,KAAAC,OAAA,IAAAC,QAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,IAAAC,IAAA,KAAAC,KAAA,IAAAC,MAAA,KAAAC,UAAA,KAAAC,KAAA,KAAAC,IAAA,KAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,KAAA,IAAAC,KAAA,KAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,WAAA,IAAAC,WAAA,IAAAC,gBAAA,IAAAC,gBAAA,IAAAC,KAAA,IAAAC,MAAA,KAAAC,UAAA,KAAAC,KAAA,KAAAC,MAAA,IAAAC,IAAA,KAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,MAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,QAAA,IAAAC,iBAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,aAAA,IAAAC,UAAA,IAAAC,qBAAA,IAAAC,WAAA,IAAAC,SAAA,IAAAC,cAAA,KAAAC,UAAA,IAAAC,WAAA,IAAAC,gBAAA,IAAAC,oBAAA,KAAAC,kBAAA,KAAAC,eAAA,IAAAC,qBAAA,KAAAC,gBAAA,IAAAC,gBAAA,KAAAC,aAAA,KAAAC,MAAA,IAAAC,SAAA,KAAAC,OAAA,KAAAC,QAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,gBAAA,IAAAC,mBAAA,KAAAC,qBAAA,IAAAC,QAAA,IAAAC,aAAA,IAAAC,eAAA,IAAAC,YAAA,KAAAC,kBAAA,KAAAC,aAAA,IAAAC,wBAAA,KAAAC,kBAAA,KAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,YAAA,IAAAC,iBAAA,KAAAC,sBAAA,IAAAC,kBAAA,IAAAC,iBAAA,IAAAC,oBAAA,KAAAC,sBAAA,IAAAC,gBAAA,KAAAC,qBAAA,IAAAC,kBAAA,KAAAC,uBAAA,IAAAC,UAAA,KAAAC,eAAA,IAAAC,YAAA,IAAAC,iBAAA,KAAAC,sBAAA,IAAAC,iBAAA,KAAAC,YAAA,KAAAC,iBAAA,IAAAC,SAAA,IAAAC,cAAA,IAAAC,kBAAA,IAAAC,cAAA,IAAAC,eAAA,IAAAC,KAAA,IAAAC,UAAA,IAAAC,OAAA,KAAAC,MAAA,KAAAC,QAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,MAAA,IAAAC,QAAA,KAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,KAAAC,OAAA,KAAAC,YAAA,IAAAC,YAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,KAAAC,UAAA,IAAAC,eAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,KAAAC,QAAA,KAAAC,UAAA,IAAAC,WAAA,KAAAC,MAAA,IAAAC,QAAA,KAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,KAAAC,QAAA,KAAAC,UAAA,IAAAC,WAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,cAAA,IAAAC,gBAAA,IAAAC,eAAA,IAAAC,iBAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,QAAA,KAAAC,OAAA,IAAAC,QAAA,KAAAC,MAAA,KAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,IAAAC,qBAAA,IAAAC,eAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,IAAA,IAAAC,GAAA,IAAAC,KAAA,IAAAC,KAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,UAAA,IAAAC,YAAA,IAAAC,gBAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,UAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,UAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,GAAA,IAAAC,cAAA,IAAAC,SAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,WAAA,IAAAC,YAAA,IAAAC,SAAA,IAAAC,cAAA,IAAAC,mBAAA,IAAAC,cAAA,IAAAC,OAAA,IAAAC,YAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,KAAA,IAAAC,WAAA,IAAAC,aAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,KAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,YAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,UAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,GAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,eAAA,IAAAC,mBAAA,IAAAC,qBAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,kBAAA,IAAAC,WAAA,IAAAC,WAAA,IAAAC,WAAA,IAAAC,cAAA,IAAAC,oBAAA,IAAAC,eAAA,IAAAC,aAAA,IAAAC,mBAAA,IAAAC,mBAAA,IAAAC,gBAAA,IAAAC,mBAAA,IAAAC,WAAA,IAAAC,iBAAA,IAAAC,eAAA,IAAAC,gBAAA,IAAAC,kBAAA,IAAAC,iBAAA,IAAAC,gBAAA,IAAAC,SAAA,IAAAC,cAAA,IAAAC,eAAA,IAAAC,gBAAA,IAAAC,cAAA,IAAAC,iBAAA,IAAAC,mBAAA,IAAAC,kBAAA,IAAAC,iBAAA,IAAAC,cAAA,IAAAC,iBAAA,IAAAC,YAAA,IAAAC,eAAA,IAAAC,KAAA,IAAAC,aAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,WAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,aAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,YAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,YAAA,IAAAC,QAAA,IAAAC,GAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,OAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,eAAA,IAAAC,eAAA,IAAAC,SAAA,IAAAC,cAAA,IAAAC,gBAAA,IAAAC,aAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,YAAA,IAAAC,cAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,MAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,IAAAC,UAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,KAAAC,MAAA,IAAAC,OAAA,KAAAC,KAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,WAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,WAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,mBAAA,IAAAC,aAAA,IAAAC,kBAAA,IAAAC,eAAA,IAAAC,oBAAA,IAAAC,YAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,gBAAA,IAAAC,YAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,UAAA,IAAAC,YAAA,IAAAC,UAAA,IAAAC,WAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,WAAA,IAAAC,YAAA,IAAAC,SAAA,IAAAC,cAAA,IAAAC,mBAAA,IAAAC,cAAA,IAAAC,OAAA,IAAAC,YAAA,IAAAC,SAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,QAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,cAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,UAAA,IAAAC,UAAA,IAAAC,WAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,IAAA,KAAAt4G,OAAA,IAAAu4G,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,OAAA,IAAAC,UAAA,IAAAC,UAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,YAAA,IAAAC,SAAA,IAAAC,WAAA,KAAAC,OAAA,IAAAC,UAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,WAAA,IAAAC,eAAA,IAAAC,WAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,QAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,SAAA,IAAAC,aAAA,IAAAC,aAAA,IAAAC,eAAA,IAAAC,UAAA,IAAAC,cAAA,IAAAC,gBAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,UAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,SAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,iBAAA,IAAAC,kBAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,SAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,SAAA,IAAAC,WAAA,IAAAC,aAAA,IAAAC,iBAAA,IAAAC,MAAA,IAAAC,UAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,QAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,WAAA,IAAAC,iBAAA,IAAAC,YAAA,IAAAC,YAAA,IAAAC,YAAA,IAAAC,cAAA,IAAAC,cAAA,IAAAC,eAAA,IAAAC,MAAA,IAAAC,eAAA,IAAAC,gBAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,QAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,WAAA,IAAAC,WAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,OAAA,IAAAC,WAAA,IAAAC,SAAA,IAAAC,WAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,UAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,SAAA,IAAAC,aAAA,KAAAC,cAAA,KAAAC,aAAA,KAAAC,cAAA,KAAAC,SAAA,IAAAC,gBAAA,IAAAC,iBAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,YAAA,IAAAC,aAAA,IAAAC,kBAAA,IAAAC,cAAA,IAAAC,cAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,MAAA,IAAAC,MAAA,KAAAC,MAAA,KAAAC,KAAA,KAAAC,KAAA,KAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,KAAAC,OAAA,KAAAC,OAAA,KAAAC,OAAA,KAAAC,OAAA,IAAAC,QAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,KAAA,KAAAC,KAAA,KAAAC,GAAA,IAAAC,GAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,MAAA,IAAAC,MAAA,IAAAC,GAAA,IAAAC,GAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,OAAA,IAAAC,OAAA,IAAAC,MAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,KAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,OAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,OAAA,IAAAC,eAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,IAAA,KAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,KAAA,KAAAC,KAAA,IAAAC,KAAA,KAAAC,KAAA,KAAAC,IAAA,IAAAC,KAAA,KACAC,GAAA3kE,OAAA,IAAAC,OAAA,IAAAM,MAAA,IAAAC,MAAA,IAAAC,MAAA,IAAAG,MAAA,IAAAC,MAAA,IAAAI,OAAA,IAAAC,OAAA,IAAAQ,IAAA,IAAAC,IAAA,IAAAsC,MAAA,IAAAC,MAAA,IAAAO,OAAA,IAAAC,OAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAkH,OAAA,IAAAiC,OAAA,IAAAC,OAAA,IAAAQ,MAAA,IAAAG,KAAA,IAAAwD,KAAA,IAAAC,KAAA,IAAAkC,OAAA,IAAA6B,IAAA,IAAA0B,OAAA,IAAAuE,OAAA,IAAAC,OAAA,IAAAK,MAAA,IAAAC,MAAA,IAAAa,OAAA,IAAAC,OAAA,IAAAuD,IAAA,IAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAiC,OAAA,IAAAE,OAAA,IAAAM,OAAA,IAAA0E,GAAA,IAAAE,GAAA,IAAAuD,OAAA,IAAAC,OAAA,IAAAE,MAAA,IAAAC,MAAA,IAAAM,MAAA,IAAAI,OAAA,IAAAC,OAAA,IAAA4C,OAAA,IAAAc,KAAA,IAAAC,KAAA,IAAA+C,MAAA,IAAAoL,GAAA,IAAAE,GAAA,IAAAgB,KAAA,IAAAqB,MAAA,IAAAI,OAAA,IAAAgC,KAAA,IAAAiF,IAAA,IAAA8G,OAAA,IAAAC,OAAA,IAAAgC,OAAA,IAAAC,OAAA,IAAAG,MAAA,IAAAC,MAAA,IAAAe,OAAA,IAAAC,OAAA,IAAA+B,KAAA,IAAAC,KAAA,IAAAQ,OAAA,IAAAC,OAAA,IAAAE,OAAA,IAAAC,OAAA,IAAAI,KAAA,IAAAC,KAAA,IAAAO,KAAA,IAAAmC,OAAA,IAAAQ,MAAA,IAAAqD,KAAA,IAAAC,KAAA,IAAAY,MAAA,IAAAgD,IAAA,IAAAC,IAAA,IAAAmH,KAAA,IAAAoB,IAAA,IAAA+G,KAAA,IAAAC,KAAA,IAAAC,KAAA,IAAA6B,MAAA,IAAA6B,MAAA,IAAAC,MAAA,IAAAM,MAAA,IAAA0C,OAAA,IAAAC,OAAA,IAAAS,MAAA,IAAAC,MAAA,IAAAU,OAAA,IAAAC,OAAA,IAAAW,IAAA,IAAA+C,KAAA,IAAAC,KAAA,IAAAyG,OAAA,IAAAC,OAAA,IAAAO,IAAA,IAAAW,KAAA,KACA0B,GAAAC,EAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KACAC,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,KAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,QAAA,QAAA,QAAA,SAIAC,EAAAC,OAAAC,aAEAC,KACAC,EAAAD,EAAAC,eACAC,EAAA,SAAAF,EAAAG,GACA,MAAAF,GAAAtuH,KAAAquH,EAAAG,IAGAC,EAAA,SAAAC,EAAAnsH,GAGA,IAFA,GAAAosH,MACA1uH,EAAAyuH,EAAAzuH,SACA0uH,EAAA1uH,GACA,GAAAyuH,EAAAC,IAAApsH,EACA,OAAA,CAGA,QAAA,GAGAqsH,EAAA,SAAAC,EAAAC,GACA,IAAAD,EACA,MAAAC,EAEA,IACA5tH,GADA6tH,IAEA,KAAA7tH,IAAA4tH,GAGAC,EAAA7tH,GAAAqtH,EAAAM,EAAA3tH,GAAA2tH,EAAA3tH,GAAA4tH,EAAA5tH,EAEA,OAAA6tH,IAIAC,EAAA,SAAAC,EAAAC,GACA,GAAAC,GAAA,EACA,OAAAF,IAAA,OAAAA,GAAA,OAAAA,EAAA,SAKAC,GACAE,EAAA,6DAEA,KAEAb,EAAAnC,EAAA6C,IACAC,GACAE,EAAA,kCAEAhD,EAAA6C,KAEAC,GAAAT,EAAAR,EAAAgB,IACAG,EAAA,kCAEAH,EAAA,QACAA,GAAA,MACAE,GAAAjB,EAAAe,IAAA,GAAA,KAAA,OACAA,EAAA,MAAA,KAAAA,GAEAE,GAAAjB,EAAAe,KAIAI,EAAA,SAAAJ,GACA,MAAA,MAAAA,EAAAjrH,SAAA,IAAAsrH,cAAA,KAGAC,EAAA,SAAAN,GACA,MAAA,KAAAA,EAAA,KAGAG,EAAA,SAAAI,GACA,KAAA5vH,OAAA,gBAAA4vH,IAKAC,EAAA,SAAAC,EAAAb,GACAA,EAAAD,EAAAC,EAAAY,EAAAZ,QACA,IAAAK,GAAAL,EAAAK,MACAA,IAAA7nE,EAAAsoE,KAAAD,IACAN,EAAA,uBAEA,IAAAQ,GAAAf,EAAAe,iBACAC,EAAAhB,EAAAgB,mBACAC,EAAAjB,EAAAiB,mBACAC,EAAAlB,EAAAmB,QAAAT,EAAAF,EAEAY,EAAA,SAAAC,GACA,MAAAH,GAAAG,EAAAC,WAAA,IAoDA,OAjDAP,IAEAF,EAAAA,EAAAtsH,QAAAqF,EAAA,SAAAynH,GAEA,MAAAL,IAAAtB,EAAA3lH,EAAAsnH,GACA,IAAAtnH,EAAAsnH,GAAA,IAEAD,EAAAC,KAIAL,IACAH,EAAAA,EACAtsH,QAAA,cAAA,UACAA,QAAA,cAAA,UACAA,QAAA,gBAAA,YAGAysH,IAEAH,EAAAA,EAAAtsH,QAAAuF,EAAA,SAAA+mH,GAEA,MAAA,IAAA9mH,EAAA8mH,GAAA,QAIAG,GAGAC,IACAJ,EAAAA,EAAAtsH,QAAA8jD,EAAA,SAAAwoE,GACA,MAAA,IAAA9mH,EAAA8mH,GAAA,OAKAA,EAAAA,EACAtsH,QAAA,cAAA,UACAA,QAAA,cAAA,UAEAssH,EAAAA,EAAAtsH,QAAAuF,EAAA,SAAA+mH,GAEA,MAAA,IAAA9mH,EAAA8mH,GAAA,OAEAI,IAGAJ,EAAAA,EAAAtsH,QAAA8jD,EAAA+oE,IAEAP,EAEAtsH,QAAAoF,EAAA,SAAA4nH,GAEA,GAAAC,GAAAD,EAAAD,WAAA,GACAG,EAAAF,EAAAD,WAAA,GACAlB,EAAA,MAAAoB,EAAA,OAAAC,EAAA,MAAA,KACA,OAAAP,GAAAd,KAIA7rH,QAAAsF,EAAAunH,GAGAR,GAAAZ,SACAiB,oBAAA,EACAF,kBAAA,EACAV,QAAA,EACAW,oBAAA,EACAG,SAAA,EAGA,IAAAO,GAAA,SAAAC,EAAA3B,GACAA,EAAAD,EAAAC,EAAA0B,EAAA1B,QACA,IAAAK,GAAAL,EAAAK,MAIA,OAHAA,IAAA9nE,EAAAuoE,KAAAa,IACApB,EAAA,iCAEAoB,EAAAptH,QAAAkkD,EAAA,SAAA8oE,EAAAK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAA/B,GACAgC,EACAC,EACAC,EACAC,EACAC,CAEA,OAAAZ,IACAW,EAAAX,EAEAlpE,EAAA6pE,IAGAV,GAIAU,EAAAV,EACAW,EAAAV,EACAU,GAAAxC,EAAAyC,kBACApC,GAAA,KAAAmC,GACAjC,EAAA,2CAEAgB,IAEAlB,GACAE,EACA,+DAIAjD,EAAAiF,IAAAC,GAAA,MAIAT,GAEAM,EAAAN,EACAK,EAAAJ,EACA3B,IAAA+B,GACA7B,EAAA,yDAEAH,EAAArrH,SAAAstH,EAAA,IACAlC,EAAAC,EAAAC,IAGA4B,GAEAK,EAAAL,EACAG,EAAAF,EACA7B,IAAA+B,GACA7B,EAAA,yDAEAH,EAAArrH,SAAAutH,EAAA,IACAnC,EAAAC,EAAAC,KAKAA,GACAE,EACA,+DAGAgB,KAIAG,GAAA1B,SACAyC,kBAAA,EACApC,QAAA,EAGA,IAAAqC,GAAA,SAAA7B,GACA,MAAAA,GAAAtsH,QAAA8jD,EAAA,SAAAkpE,GAEA,MAAAjpE,GAAAipE,MAMAoB,GACAC,QAAA,QACAhC,OAAAA,EACAc,OAAAA,EACAgB,OAAAA,EACAG,SAAAnB,EAKA,IACA,kBAAAoB,SACA,gBAAAA,QAAAC,KACAD,OAAAC,IAEAD,OAAA,WACA,MAAAH,SAEA,IAAAppH,IAAAA,EAAAypH,SACA,GAAAxpH,EACAA,EAAAtI,QAAAyxH,MAEA,KAAA,GAAAtwH,KAAAswH,GACAjD,EAAAiD,EAAAtwH,KAAAkH,EAAAlH,GAAAswH,EAAAtwH,QAIAiH,GAAAqpH,GAAAA,GAGAhwH,QJ8XGxB,KAAKwB,KAAuB,mBAAX0G,QAAyBA,OAAyB,mBAAT4pH,MAAuBA,KAAyB,mBAAXvpH,QAAyBA,gBAErHwpH,oEAAoE,SAAStyH,EAAQU,EAAOJ,IAClG,SAAWiyH,GK7rBX,QAAAC,GAAAC,EAAAC,GAGA,IAAA,GADAC,GAAA,EACA9yH,EAAA4yH,EAAAjyH,OAAA,EAAAX,GAAA,EAAAA,IAAA,CACA,GAAA+yH,GAAAH,EAAA5yH,EACA,OAAA+yH,EACAH,EAAAI,OAAAhzH,EAAA,GACA,OAAA+yH,GACAH,EAAAI,OAAAhzH,EAAA,GACA8yH,KACAA,IACAF,EAAAI,OAAAhzH,EAAA,GACA8yH,KAKA,GAAAD,EACA,KAAAC,IAAAA,EACAF,EAAAK,QAAA,KAIA,OAAAL,GAmJA,QAAAM,GAAAC,GACA,gBAAAA,KAAAA,GAAA,GAEA,IAGAnzH,GAHAozH,EAAA,EACAC,KACAC,GAAA,CAGA,KAAAtzH,EAAAmzH,EAAAxyH,OAAA,EAAAX,GAAA,IAAAA,EACA,GAAA,KAAAmzH,EAAAtC,WAAA7wH,IAGA,IAAAszH,EAAA,CACAF,EAAApzH,EAAA,CACA,YAEAqzH,UAGAC,GAAA,EACAD,EAAArzH,EAAA,EAIA,OAAAqzH,QAAA,GACAF,EAAApwH,MAAAqwH,EAAAC,GA8DA,QAAAE,GAAAC,EAAAvzH,GACA,GAAAuzH,EAAAD,OAAA,MAAAC,GAAAD,OAAAtzH,EAEA,KAAA,GADAwzH,MACAzzH,EAAA,EAAAA,EAAAwzH,EAAA7yH,OAAAX,IACAC,EAAAuzH,EAAAxzH,GAAAA,EAAAwzH,IAAAC,EAAAprH,KAAAmrH,EAAAxzH,GAEA,OAAAyzH,GA3OAhzH,EAAAizH,QAAA,WAIA,IAAA,GAHAC,GAAA,GACAC,GAAA,EAEA5zH,EAAAgD,UAAArC,OAAA,EAAAX,QAAA4zH,EAAA5zH,IAAA,CACA,GAAAmzH,GAAAnzH,GAAA,EAAAgD,UAAAhD,GAAA0yH,EAAAmB,KAGA,IAAA,gBAAAV,GACA,KAAA,IAAAlyH,WAAA,4CACAkyH,KAIAQ,EAAAR,EAAA,IAAAQ,EACAC,EAAA,MAAAT,EAAAW,OAAA,IAWA,MAJAH,GAAAhB,EAAAY,EAAAI,EAAAI,MAAA,KAAA,SAAAvzH,GACA,QAAAA,KACAozH,GAAAI,KAAA,MAEAJ,EAAA,IAAA,IAAAD,GAAA,KAKAlzH,EAAAwzH,UAAA,SAAAd,GACA,GAAAe,GAAAzzH,EAAAyzH,WAAAf,GACAgB,EAAA,MAAAC,EAAAjB,KAcA,OAXAA,GAAAR,EAAAY,EAAAJ,EAAAY,MAAA,KAAA,SAAAvzH,GACA,QAAAA,KACA0zH,GAAAF,KAAA,KAEAb,GAAAe,IACAf,EAAA,KAEAA,GAAAgB,IACAhB,GAAA,MAGAe,EAAA,IAAA,IAAAf,GAIA1yH,EAAAyzH,WAAA,SAAAf,GACA,MAAA,MAAAA,EAAAW,OAAA,IAIArzH,EAAAuzH,KAAA,WACA,GAAAK,GAAAvxH,MAAAf,UAAAgB,MAAArC,KAAAsC,UAAA,EACA,OAAAvC,GAAAwzH,UAAAV,EAAAc,EAAA,SAAA7zH,EAAA6uH,GACA,GAAA,gBAAA7uH,GACA,KAAA,IAAAS,WAAA,yCAEA,OAAAT,KACAwzH,KAAA,OAMAvzH,EAAA6zH,SAAA,SAAAC,EAAAC,GAIA,QAAAC,GAAAC,GAEA,IADA,GAAAtB,GAAA,EACAA,EAAAsB,EAAA/zH,QACA,KAAA+zH,EAAAtB,GADAA,KAKA,IADA,GAAAC,GAAAqB,EAAA/zH,OAAA,EACA0yH,GAAA,GACA,KAAAqB,EAAArB,GADAA,KAIA,MAAAD,GAAAC,KACAqB,EAAA3xH,MAAAqwH,EAAAC,EAAAD,EAAA,GAfAmB,EAAA9zH,EAAAizH,QAAAa,GAAAH,OAAA,GACAI,EAAA/zH,EAAAizH,QAAAc,GAAAJ,OAAA,EAsBA,KAAA,GALAO,GAAAF,EAAAF,EAAAR,MAAA,MACAa,EAAAH,EAAAD,EAAAT,MAAA,MAEApzH,EAAAyE,KAAAY,IAAA2uH,EAAAh0H,OAAAi0H,EAAAj0H,QACAk0H,EAAAl0H,EACAX,EAAA,EAAAA,EAAAW,EAAAX,IACA,GAAA20H,EAAA30H,KAAA40H,EAAA50H,GAAA,CACA60H,EAAA70H,CACA,OAKA,IAAA,GADA80H,MACA90H,EAAA60H,EAAA70H,EAAA20H,EAAAh0H,OAAAX,IACA80H,EAAAzsH,KAAA,KAKA,OAFAysH,GAAAA,EAAAjyH,OAAA+xH,EAAA7xH,MAAA8xH,IAEAC,EAAAd,KAAA,MAGAvzH,EAAAs0H,IAAA,IACAt0H,EAAAu0H,UAAA,IAEAv0H,EAAAw0H,QAAA,SAAA9B,GAEA,GADA,gBAAAA,KAAAA,GAAA,IACA,IAAAA,EAAAxyH,OAAA,MAAA,GAKA,KAAA,GAJAJ,GAAA4yH,EAAAtC,WAAA,GACAqE,EAAA,KAAA30H,EACA8yH,KACAC,GAAA,EACAtzH,EAAAmzH,EAAAxyH,OAAA,EAAAX,GAAA,IAAAA,EAEA,GADAO,EAAA4yH,EAAAtC,WAAA7wH,GACA,KAAAO,GACA,IAAA+yH,EAAA,CACAD,EAAArzH,CACA,YAIAszH,IAAA,CAIA,OAAAD,QAAA6B,EAAA,IAAA,IACAA,GAAA,IAAA7B,EAGA,IAEAF,EAAApwH,MAAA,EAAAswH,IAiCA5yH,EAAAyyH,SAAA,SAAAC,EAAAgC,GACA,GAAAl1H,GAAAizH,EAAAC,EAIA,OAHAgC,IAAAl1H,EAAAm0H,UAAAe,EAAAx0H,UAAAw0H,IACAl1H,EAAAA,EAAAm0H,OAAA,EAAAn0H,EAAAU,OAAAw0H,EAAAx0H,SAEAV,GAGAQ,EAAA20H,QAAA,SAAAjC,GACA,gBAAAA,KAAAA,GAAA,GAQA,KAAA,GAPAkC,MACAC,EAAA,EACAjC,KACAC,GAAA,EAGAiC,EAAA,EACAv1H,EAAAmzH,EAAAxyH,OAAA,EAAAX,GAAA,IAAAA,EAAA,CACA,GAAAO,GAAA4yH,EAAAtC,WAAA7wH,EACA,IAAA,KAAAO,EASA8yH,SAGAC,GAAA,EACAD,EAAArzH,EAAA,GAEA,KAAAO,EAEA80H,OACAA,EAAAr1H,EACA,IAAAu1H,IACAA,EAAA,GACAF,SAGAE,UArBA,KAAAjC,EAAA,CACAgC,EAAAt1H,EAAA,CACA,QAuBA,MAAAq1H,SAAAhC,QAEA,IAAAkC,GAEA,IAAAA,GAAAF,IAAAhC,EAAA,GAAAgC,IAAAC,EAAA,EACA,GAEAnC,EAAApwH,MAAAsyH,EAAAhC,GAaA,IAAAe,GAAA,MAAA,KAAAA,WACA,SAAAoB,EAAApC,EAAAqC,GAAA,MAAAD,GAAApB,OAAAhB,EAAAqC,IACA,SAAAD,EAAApC,EAAAqC,GAEA,MADArC,GAAA,IAAAA,EAAAoC,EAAA70H,OAAAyyH,GACAoC,EAAApB,OAAAhB,EAAAqC,ML8tBG/0H,KAAKwB,KAAK/B,EAAQ;GAElBu1H,SAAW,+DAA+DC,8DAA8D,SAASx1H,EAAQU,EAAOJ,GMhgCnK,QAAAm1H,KACA,KAAA,IAAAt1H,OAAA,mCAEA,QAAAu1H,KACA,KAAA,IAAAv1H,OAAA,qCAsBA,QAAAw1H,GAAAC,GACA,GAAAC,IAAAC,WAEA,MAAAA,YAAAF,EAAA,EAGA,KAAAC,IAAAJ,IAAAI,IAAAC,WAEA,MADAD,GAAAC,WACAA,WAAAF,EAAA,EAEA,KAEA,MAAAC,GAAAD,EAAA,GACA,MAAAn2H,GACA,IAEA,MAAAo2H,GAAAt1H,KAAA,KAAAq1H,EAAA,GACA,MAAAn2H,GAEA,MAAAo2H,GAAAt1H,KAAAwB,KAAA6zH,EAAA,KAMA,QAAAG,GAAAztC,GACA,GAAA0tC,IAAAC,aAEA,MAAAA,cAAA3tC,EAGA,KAAA0tC,IAAAN,IAAAM,IAAAC,aAEA,MADAD,GAAAC,aACAA,aAAA3tC,EAEA,KAEA,MAAA0tC,GAAA1tC,GACA,MAAA7oF,GACA,IAEA,MAAAu2H,GAAAz1H,KAAA,KAAA+nF,GACA,MAAA7oF,GAGA,MAAAu2H,GAAAz1H,KAAAwB,KAAAumF,KAYA,QAAA4tC,KACAC,GAAAC,IAGAD,GAAA,EACAC,EAAA51H,OACA61H,EAAAD,EAAA1zH,OAAA2zH,GAEAC,KAEAD,EAAA71H,QACA+1H,KAIA,QAAAA,KACA,IAAAJ,EAAA,CAGA,GAAAK,GAAAb,EAAAO,EACAC,IAAA,CAGA,KADA,GAAAb,GAAAe,EAAA71H,OACA80H,GAAA,CAGA,IAFAc,EAAAC,EACAA,OACAC,EAAAhB,GACAc,GACAA,EAAAE,GAAAG,KAGAH,MACAhB,EAAAe,EAAA71H,OAEA41H,EAAA,KACAD,GAAA,EACAJ,EAAAS,IAiBA,QAAAE,GAAAd,EAAA3G,GACAltH,KAAA6zH,IAAAA,EACA7zH,KAAAktH,MAAAA,EAYA,QAAA0H,MAhKA,GAOAd,GACAG,EARAzD,EAAA7xH,EAAAJ,YAgBA,WACA,IAEAu1H,EADA,kBAAAC,YACAA,WAEAL,EAEA,MAAAh2H,GACAo2H,EAAAJ,EAEA,IAEAO,EADA,kBAAAC,cACAA,aAEAP,EAEA,MAAAj2H,GACAu2H,EAAAN,KAuDA,IAEAU,GAFAC,KACAF,GAAA,EAEAG,IAyCA/D,GAAAqE,SAAA,SAAAhB,GACA,GAAAiB,GAAA,GAAAl0H,OAAAE,UAAArC,OAAA,EACA,IAAAqC,UAAArC,OAAA,EACA,IAAA,GAAAX,GAAA,EAAAA,EAAAgD,UAAArC,OAAAX,IACAg3H,EAAAh3H,EAAA,GAAAgD,UAAAhD,EAGAw2H,GAAAnuH,KAAA,GAAAwuH,GAAAd,EAAAiB,IACA,IAAAR,EAAA71H,QAAA21H,GACAR,EAAAY,IASAG,EAAA90H,UAAA60H,IAAA,WACA10H,KAAA6zH,IAAAnzH,MAAA,KAAAV,KAAAktH,QAEAsD,EAAApsH,MAAA,UACAosH,EAAAuE,SAAA,EACAvE,EAAAwE,OACAxE,EAAAyE,QACAzE,EAAAP,QAAA,GACAO,EAAA0E,YAIA1E,EAAA2E,GAAAP,EACApE,EAAA4E,YAAAR,EACApE,EAAA6E,KAAAT,EACApE,EAAA8E,IAAAV,EACApE,EAAA+E,eAAAX,EACApE,EAAAgF,mBAAAZ,EACApE,EAAAiF,KAAAb,EACApE,EAAAkF,gBAAAd,EACApE,EAAAmF,oBAAAf,EAEApE,EAAAoF,UAAA,SAAAC,GAAA,UAEArF,EAAAsF,QAAA,SAAAD,GACA,KAAA,IAAAz3H,OAAA,qCAGAoyH,EAAAmB,IAAA,WAAA,MAAA,KACAnB,EAAAuF,MAAA,SAAAC,GACA,KAAA,IAAA53H,OAAA,mCAEAoyH,EAAAyF,MAAA,WAAA,MAAA,SN8gCMC,qEAAqE,SAASj4H,EAAQU,EAAOJ,GOhrCnG,YAKA,SAAAuuH,GAAAqJ,EAAAt1B,GACA,MAAArhG,QAAAK,UAAAitH,eAAAtuH,KAAA23H,EAAAt1B,GAGAliG,EAAAJ,QAAA,SAAA63H,EAAAvD,EAAAwD,EAAAhJ,GACAwF,EAAAA,GAAA,IACAwD,EAAAA,GAAA,GACA,IAAAF,KAEA,IAAA,gBAAAC,IAAA,IAAAA,EAAA33H,OACA,MAAA03H,EAGA,IAAAG,GAAA,KACAF,GAAAA,EAAAvE,MAAAgB,EAEA,IAAA0D,GAAA,GACAlJ,IAAA,gBAAAA,GAAAkJ,UACAA,EAAAlJ,EAAAkJ,QAGA,IAAAhD,GAAA6C,EAAA33H,MAEA83H,GAAA,GAAAhD,EAAAgD,IACAhD,EAAAgD,EAGA,KAAA,GAAAz4H,GAAA,EAAAA,EAAAy1H,IAAAz1H,EAAA,CACA,GAEA04H,GAAAC,EAAAC,EAAAC,EAFAx0H,EAAAi0H,EAAAt4H,GAAA8D,QAAA00H,EAAA,OACAM,EAAAz0H,EAAA00H,QAAAR,EAGAO,IAAA,GACAJ,EAAAr0H,EAAA+vH,OAAA,EAAA0E,GACAH,EAAAt0H,EAAA+vH,OAAA0E,EAAA,KAEAJ,EAAAr0H,EACAs0H,EAAA,IAGAC,EAAAI,mBAAAN,GACAG,EAAAG,mBAAAL,GAEA3J,EAAAqJ,EAAAO,GAEAK,EAAAZ,EAAAO,IACAP,EAAAO,GAAAvwH,KAAAwwH,GAEAR,EAAAO,IAAAP,EAAAO,GAAAC,GAJAR,EAAAO,GAAAC,EAQA,MAAAR,GAGA,IAAAY,GAAAn2H,MAAAm2H,SAAA,SAAAzF,GACA,MAAA,mBAAA9xH,OAAAK,UAAA2C,SAAAhE,KAAA8yH,SPysCM0F,qEAAqE,SAAS/4H,EAAQU,EAAOJ,GQtwCnG,YAgDA,SAAA2D,GAAAovH,EAAAvzH,GACA,GAAAuzH,EAAApvH,IAAA,MAAAovH,GAAApvH,IAAAnE,EAEA,KAAA,GADAwzH,MACAzzH,EAAA,EAAAA,EAAAwzH,EAAA7yH,OAAAX,IACAyzH,EAAAprH,KAAApI,EAAAuzH,EAAAxzH,GAAAA,GAEA,OAAAyzH,GApDA,GAAA0F,GAAA,SAAAN,GACA,aAAAA,IACA,IAAA,SACA,MAAAA,EAEA,KAAA,UACA,MAAAA,GAAA,OAAA,OAEA,KAAA,SACA,MAAAO,UAAAP,GAAAA,EAAA,EAEA,SACA,MAAA,IAIAh4H,GAAAJ,QAAA,SAAA43H,EAAAtD,EAAAwD,EAAAR,GAOA,MANAhD,GAAAA,GAAA,IACAwD,EAAAA,GAAA,IACA,OAAAF,IACAA,EAAA31H,QAGA,gBAAA21H,GACAj0H,EAAAi1H,EAAAhB,GAAA,SAAAO,GACA,GAAAU,GAAAC,mBAAAJ,EAAAP,IAAAL,CACA,OAAAU,GAAAZ,EAAAO,IACAx0H,EAAAi0H,EAAAO,GAAA,SAAAC,GACA,MAAAS,GAAAC,mBAAAJ,EAAAN,MACA7E,KAAAe,GAEAuE,EAAAC,mBAAAJ,EAAAd,EAAAO,OAEA5E,KAAAe,GAIAgD,EACAwB,mBAAAJ,EAAApB,IAAAQ,EACAgB,mBAAAJ,EAAAd,IAFA,GAKA,IAAAY,GAAAn2H,MAAAm2H,SAAA,SAAAzF,GACA,MAAA,mBAAA9xH,OAAAK,UAAA2C,SAAAhE,KAAA8yH,IAYA6F,EAAA33H,OAAA0G,MAAA,SAAAiwH,GACA,GAAA5E,KACA,KAAA,GAAA7xH,KAAAy2H,GACA32H,OAAAK,UAAAitH,eAAAtuH,KAAA23H,EAAAz2H,IAAA6xH,EAAAprH,KAAAzG,EAEA,OAAA6xH,SR+xCM+F,oEAAoE,SAASr5H,EAAQU,EAAOJ,GSl3ClG,YAEAA,GAAAwwH,OAAAxwH,EAAAg5H,MAAAt5H,EAAA,YACAM,EAAA0vH,OAAA1vH,EAAAi5H,UAAAv5H,EAAA,cTq3CGw5H,WAAW,oEAAoEC,WAAW,sEAAsEC,oEAAoE,SAAS15H,EAAQU,EAAOJ,IAC/P,SAAWmI,IUp3CX,WAQA,GAAAC,GAAA,gBAAA2pH,OAAAA,KAAAA,OAAAA,MAAAA,MACA,gBAAA5pH,IAAAA,EAAAA,SAAAA,GAAAA,GACA1G,SAIA43H,EAAAjxH,EAAA7G,EAGA+3H,EAAAj3H,MAAAf,UAAAi4H,EAAAt4H,OAAAK,UACAk4H,EAAA,mBAAAC,QAAAA,OAAAn4H,UAAA,KAGAsG,EAAA0xH,EAAA1xH,KACAtF,EAAAg3H,EAAAh3H,MACA2B,EAAAs1H,EAAAt1H,SACAsqH,EAAAgL,EAAAhL,eAIAmL,EAAAr3H,MAAAm2H,QACAmB,EAAA14H,OAAA0G,KACAiyH,EAAA34H,OAAA44H,OAGAC,EAAA,aAGAv4H,EAAA,SAAAq2H,GACA,MAAAA,aAAAr2H,GAAAq2H,EACAn2H,eAAAF,QACAE,KAAAs4H,SAAAnC,GADA,GAAAr2H,GAAAq2H,GASA,oBAAA53H,IAAAA,EAAA8xH,SAMA1pH,EAAA7G,EAAAA,GALA,mBAAAnB,KAAAA,EAAA0xH,UAAA1xH,EAAAJ,UACAA,EAAAI,EAAAJ,QAAAuB,GAEAvB,EAAAuB,EAAAA,GAMAA,EAAAy4H,QAAA,OAKA,IAmBAC,GAnBAC,EAAA,SAAAC,EAAAC,EAAAC,GACA,GAAA,SAAAD,EAAA,MAAAD,EACA,QAAA,MAAAE,EAAA,EAAAA,GACA,IAAA,GAAA,MAAA,UAAA73H,GACA,MAAA23H,GAAAl6H,KAAAm6H,EAAA53H,GAGA,KAAA,GAAA,MAAA,UAAAA,EAAAosH,EAAA0L,GACA,MAAAH,GAAAl6H,KAAAm6H,EAAA53H,EAAAosH,EAAA0L,GAEA,KAAA,GAAA,MAAA,UAAAC,EAAA/3H,EAAAosH,EAAA0L,GACA,MAAAH,GAAAl6H,KAAAm6H,EAAAG,EAAA/3H,EAAAosH,EAAA0L,IAGA,MAAA,YACA,MAAAH,GAAAh4H,MAAAi4H,EAAA73H,aASAi4H,EAAA,SAAAh4H,EAAA43H,EAAAC,GACA,MAAA94H,GAAAk5H,WAAAR,EAAA14H,EAAAk5H,SAAAj4H,EAAA43H,GACA,MAAA53H,EAAAjB,EAAAm5H,SACAn5H,EAAAo5H,WAAAn4H,GAAA03H,EAAA13H,EAAA43H,EAAAC,GACA94H,EAAA0G,SAAAzF,KAAAjB,EAAAi3H,QAAAh2H,GAAAjB,EAAAq5H,QAAAp4H,GACAjB,EAAAs5H,SAAAr4H,GAMAjB,GAAAk5H,SAAAR,EAAA,SAAAz3H,EAAA43H,GACA,MAAAI,GAAAh4H,EAAA43H,EAAAU,EAAAA,GAQA,IAAAC,GAAA,SAAAZ,EAAAa,GAEA,MADAA,GAAA,MAAAA,EAAAb,EAAAj6H,OAAA,GAAA86H,EACA,WAIA,IAHA,GAAA96H,GAAAyE,KAAAW,IAAA/C,UAAArC,OAAA86H,EAAA,GACAC,EAAA54H,MAAAnC,GACA0uH,EAAA,EACAA,EAAA1uH,EAAA0uH,IACAqM,EAAArM,GAAArsH,UAAAqsH,EAAAoM,EAEA,QAAAA,GACA,IAAA,GAAA,MAAAb,GAAAl6H,KAAAwB,KAAAw5H,EACA,KAAA,GAAA,MAAAd,GAAAl6H,KAAAwB,KAAAc,UAAA,GAAA04H,EACA,KAAA,GAAA,MAAAd,GAAAl6H,KAAAwB,KAAAc,UAAA,GAAAA,UAAA,GAAA04H,GAEA,GAAA1E,GAAAl0H,MAAA24H,EAAA,EACA,KAAApM,EAAA,EAAAA,EAAAoM,EAAApM,IACA2H,EAAA3H,GAAArsH,UAAAqsH,EAGA,OADA2H,GAAAyE,GAAAC,EACAd,EAAAh4H,MAAAV,KAAA80H,KAKA2E,EAAA,SAAA55H,GACA,IAAAC,EAAA0G,SAAA3G,GAAA,QACA,IAAAs4H,EAAA,MAAAA,GAAAt4H,EACAw4H,GAAAx4H,UAAAA,CACA,IAAA0tH,GAAA,GAAA8K,EAEA,OADAA,GAAAx4H,UAAA,KACA0tH,GAGAmM,EAAA,SAAAh6H,GACA,MAAA,UAAAy2H,GACA,MAAA,OAAAA,EAAA,OAAAA,EAAAz2H,KAIAqtH,EAAA,SAAAoJ,EAAAlF,GACA,MAAA,OAAAkF,GAAArJ,EAAAtuH,KAAA23H,EAAAlF,IAGA0I,EAAA,SAAAxD,EAAAlF,GAEA,IAAA,GADAxyH,GAAAwyH,EAAAxyH,OACAX,EAAA,EAAAA,EAAAW,EAAAX,IAAA,CACA,GAAA,MAAAq4H,EAAA,MACAA,GAAAA,EAAAlF,EAAAnzH,IAEA,MAAAW,GAAA03H,EAAA,QAOAyD,EAAA12H,KAAA22H,IAAA,EAAA,IAAA,EACAC,EAAAJ,EAAA,UACAK,EAAA,SAAAlB,GACA,GAAAp6H,GAAAq7H,EAAAjB,EACA,OAAA,gBAAAp6H,IAAAA,GAAA,GAAAA,GAAAm7H,EASA95H,GAAAmG,KAAAnG,EAAAwG,QAAA,SAAA6vH,EAAA6C,EAAAL,GACAK,EAAAP,EAAAO,EAAAL,EACA,IAAA76H,GAAAW,CACA,IAAAs7H,EAAA5D,GACA,IAAAr4H,EAAA,EAAAW,EAAA03H,EAAA13H,OAAAX,EAAAW,EAAAX,IACAk7H,EAAA7C,EAAAr4H,GAAAA,EAAAq4H,OAEA,CACA,GAAAjwH,GAAApG,EAAAoG,KAAAiwH,EACA,KAAAr4H,EAAA,EAAAW,EAAAyH,EAAAzH,OAAAX,EAAAW,EAAAX,IACAk7H,EAAA7C,EAAAjwH,EAAApI,IAAAoI,EAAApI,GAAAq4H,GAGA,MAAAA,IAIAr2H,EAAAoC,IAAApC,EAAAk6H,QAAA,SAAA7D,EAAA6C,EAAAL,GACAK,EAAAD,EAAAC,EAAAL,EAIA,KAAA,GAHAzyH,IAAA6zH,EAAA5D,IAAAr2H,EAAAoG,KAAAiwH,GACA13H,GAAAyH,GAAAiwH,GAAA13H,OACAw7H,EAAAr5H,MAAAnC,GACA0uH,EAAA,EAAAA,EAAA1uH,EAAA0uH,IAAA,CACA,GAAA+M,GAAAh0H,EAAAA,EAAAinH,GAAAA,CACA8M,GAAA9M,GAAA6L,EAAA7C,EAAA+D,GAAAA,EAAA/D,GAEA,MAAA8D,GAIA,IAAAE,GAAA,SAAAnE,GAGA,GAAAoE,GAAA,SAAAjE,EAAA6C,EAAAqB,EAAAC,GACA,GAAAp0H,IAAA6zH,EAAA5D,IAAAr2H,EAAAoG,KAAAiwH,GACA13H,GAAAyH,GAAAiwH,GAAA13H,OACA0uH,EAAA6I,EAAA,EAAA,EAAAv3H,EAAA,CAKA,KAJA67H,IACAD,EAAAlE,EAAAjwH,EAAAA,EAAAinH,GAAAA,GACAA,GAAA6I,GAEA7I,GAAA,GAAAA,EAAA1uH,EAAA0uH,GAAA6I,EAAA,CACA,GAAAkE,GAAAh0H,EAAAA,EAAAinH,GAAAA,CACAkN,GAAArB,EAAAqB,EAAAlE,EAAA+D,GAAAA,EAAA/D,GAEA,MAAAkE,GAGA,OAAA,UAAAlE,EAAA6C,EAAAqB,EAAA1B,GACA,GAAA2B,GAAAx5H,UAAArC,QAAA,CACA,OAAA27H,GAAAjE,EAAAsC,EAAAO,EAAAL,EAAA,GAAA0B,EAAAC,IAMAx6H,GAAAy6H,OAAAz6H,EAAA06H,MAAA16H,EAAA26H,OAAAN,EAAA,GAGAr6H,EAAA46H,YAAA56H,EAAA66H,MAAAR,MAGAr6H,EAAA86H,KAAA96H,EAAA+6H,OAAA,SAAA1E,EAAA2E,EAAAnC,GACA,GAAAoC,GAAAhB,EAAA5D,GAAAr2H,EAAAk7H,UAAAl7H,EAAAm7H,QACAv7H,EAAAq7H,EAAA5E,EAAA2E,EAAAnC,EACA,IAAA,SAAAj5H,GAAAA,OAAA,MAAAy2H,GAAAz2H,IAKAI,EAAAuxH,OAAAvxH,EAAAo7H,OAAA,SAAA/E,EAAA2E,EAAAnC,GACA,GAAAsB,KAKA,OAJAa,GAAA/B,EAAA+B,EAAAnC,GACA74H,EAAAmG,KAAAkwH,EAAA,SAAAp1H,EAAAosH,EAAAgO,GACAL,EAAA/5H,EAAAosH,EAAAgO,IAAAlB,EAAA9zH,KAAApF,KAEAk5H,GAIAn6H,EAAAqB,OAAA,SAAAg1H,EAAA2E,EAAAnC,GACA,MAAA74H,GAAAuxH,OAAA8E,EAAAr2H,EAAAs7H,OAAArC,EAAA+B,IAAAnC,IAKA74H,EAAAu7H,MAAAv7H,EAAAw7H,IAAA,SAAAnF,EAAA2E,EAAAnC,GACAmC,EAAA/B,EAAA+B,EAAAnC,EAGA,KAAA,GAFAzyH,IAAA6zH,EAAA5D,IAAAr2H,EAAAoG,KAAAiwH,GACA13H,GAAAyH,GAAAiwH,GAAA13H,OACA0uH,EAAA,EAAAA,EAAA1uH,EAAA0uH,IAAA,CACA,GAAA+M,GAAAh0H,EAAAA,EAAAinH,GAAAA,CACA,KAAA2N,EAAA3E,EAAA+D,GAAAA,EAAA/D,GAAA,OAAA,EAEA,OAAA,GAKAr2H,EAAAy7H,KAAAz7H,EAAA07H,IAAA,SAAArF,EAAA2E,EAAAnC,GACAmC,EAAA/B,EAAA+B,EAAAnC,EAGA,KAAA,GAFAzyH,IAAA6zH,EAAA5D,IAAAr2H,EAAAoG,KAAAiwH,GACA13H,GAAAyH,GAAAiwH,GAAA13H,OACA0uH,EAAA,EAAAA,EAAA1uH,EAAA0uH,IAAA,CACA,GAAA+M,GAAAh0H,EAAAA,EAAAinH,GAAAA,CACA,IAAA2N,EAAA3E,EAAA+D,GAAAA,EAAA/D,GAAA,OAAA,EAEA,OAAA,GAKAr2H,EAAAmtH,SAAAntH,EAAA27H,SAAA37H,EAAA47H,QAAA,SAAAvF,EAAAwF,EAAAC,EAAAC,GAGA,MAFA9B,GAAA5D,KAAAA,EAAAr2H,EAAAg8H,OAAA3F,KACA,gBAAAyF,IAAAC,KAAAD,EAAA,GACA97H,EAAA+2H,QAAAV,EAAAwF,EAAAC,IAAA,GAIA97H,EAAAi8H,OAAAzC,EAAA,SAAAnD,EAAAlF,EAAA6D,GACA,GAAAkH,GAAAtD,CAOA,OANA54H,GAAAo5H,WAAAjI,GACAyH,EAAAzH,EACAnxH,EAAAi3H,QAAA9F,KACA+K,EAAA/K,EAAApwH,MAAA,MACAowH,EAAAA,EAAAA,EAAAxyH,OAAA,IAEAqB,EAAAoC,IAAAi0H,EAAA,SAAAwC,GACA,GAAAsD,GAAAvD,CACA,KAAAuD,EAAA,CAIA,GAHAD,GAAAA,EAAAv9H,SACAk6H,EAAAgB,EAAAhB,EAAAqD,IAEA,MAAArD,EAAA,MACAsD,GAAAtD,EAAA1H,GAEA,MAAA,OAAAgL,EAAAA,EAAAA,EAAAv7H,MAAAi4H,EAAA7D,OAKAh1H,EAAAo8H,MAAA,SAAA/F,EAAAz2H,GACA,MAAAI,GAAAoC,IAAAi0H,EAAAr2H,EAAAs5H,SAAA15H,KAKAI,EAAAq8H,MAAA,SAAAhG,EAAAiG,GACA,MAAAt8H,GAAAuxH,OAAA8E,EAAAr2H,EAAAq5H,QAAAiD,KAKAt8H,EAAAu8H,UAAA,SAAAlG,EAAAiG,GACA,MAAAt8H,GAAA86H,KAAAzE,EAAAr2H,EAAAq5H,QAAAiD,KAIAt8H,EAAA+D,IAAA,SAAAsyH,EAAA6C,EAAAL,GACA,GACA53H,GAAAu7H,EADA/O,IAAA8L,EAAAA,GAAAkD,IAAAlD,EAAAA,EAEA,IAAA,MAAAL,GAAA,gBAAAA,IAAA,gBAAA7C,GAAA,IAAA,MAAAA,EAAA,CACAA,EAAA4D,EAAA5D,GAAAA,EAAAr2H,EAAAg8H,OAAA3F,EACA,KAAA,GAAAr4H,GAAA,EAAAW,EAAA03H,EAAA13H,OAAAX,EAAAW,EAAAX,IACAiD,EAAAo1H,EAAAr4H,GACA,MAAAiD,GAAAA,EAAAwsH,IACAA,EAAAxsH,OAIAi4H,GAAAD,EAAAC,EAAAL,GACA74H,EAAAmG,KAAAkwH,EAAA,SAAAQ,EAAAxJ,EAAAgO,GACAmB,EAAAtD,EAAArC,EAAAxJ,EAAAgO,IACAmB,EAAAC,GAAAD,MAAAjD,EAAAA,IAAA9L,MAAA8L,EAAAA,MACA9L,EAAAoJ,EACA4F,EAAAD,IAIA,OAAA/O,IAIAztH,EAAAgE,IAAA,SAAAqyH,EAAA6C,EAAAL,GACA,GACA53H,GAAAu7H,EADA/O,EAAA8L,EAAAA,EAAAkD,EAAAlD,EAAAA,CAEA,IAAA,MAAAL,GAAA,gBAAAA,IAAA,gBAAA7C,GAAA,IAAA,MAAAA,EAAA,CACAA,EAAA4D,EAAA5D,GAAAA,EAAAr2H,EAAAg8H,OAAA3F,EACA,KAAA,GAAAr4H,GAAA,EAAAW,EAAA03H,EAAA13H,OAAAX,EAAAW,EAAAX,IACAiD,EAAAo1H,EAAAr4H,GACA,MAAAiD,GAAAA,EAAAwsH,IACAA,EAAAxsH,OAIAi4H,GAAAD,EAAAC,EAAAL,GACA74H,EAAAmG,KAAAkwH,EAAA,SAAAQ,EAAAxJ,EAAAgO,GACAmB,EAAAtD,EAAArC,EAAAxJ,EAAAgO,IACAmB,EAAAC,GAAAD,IAAAjD,EAAAA,GAAA9L,IAAA8L,EAAAA,KACA9L,EAAAoJ,EACA4F,EAAAD,IAIA,OAAA/O,IAIAztH,EAAA08H,QAAA,SAAArG,GACA,MAAAr2H,GAAA28H,OAAAtG,EAAAkD,EAAAA,IAOAv5H,EAAA28H,OAAA,SAAAtG,EAAAx4H,EAAAk+H,GACA,GAAA,MAAAl+H,GAAAk+H,EAEA,MADA9B,GAAA5D,KAAAA,EAAAr2H,EAAAg8H,OAAA3F,IACAA,EAAAr2H,EAAA48H,OAAAvG,EAAA13H,OAAA,GAEA,IAAAg+H,GAAA1C,EAAA5D,GAAAr2H,EAAA68H,MAAAxG,GAAAr2H,EAAAg8H,OAAA3F,GACA13H,EAAAq7H,EAAA2C,EACA9+H,GAAAuF,KAAAW,IAAAX,KAAAY,IAAAnG,EAAAc,GAAA,EAEA,KAAA,GADAoyH,GAAApyH,EAAA,EACA0uH,EAAA,EAAAA,EAAAxvH,EAAAwvH,IAAA,CACA,GAAAyP,GAAA98H,EAAA48H,OAAAvP,EAAA0D,GACAgM,EAAAJ,EAAAtP,EACAsP,GAAAtP,GAAAsP,EAAAG,GACAH,EAAAG,GAAAC,EAEA,MAAAJ,GAAA57H,MAAA,EAAAlD,IAIAmC,EAAAQ,OAAA,SAAA61H,EAAA6C,EAAAL,GACA,GAAAxL,GAAA,CAEA,OADA6L,GAAAD,EAAAC,EAAAL,GACA74H,EAAAo8H,MAAAp8H,EAAAoC,IAAAi0H,EAAA,SAAAp1H,EAAArB,EAAAy7H,GACA,OACAp6H,MAAAA,EACAosH,MAAAA,IACA2P,SAAA9D,EAAAj4H,EAAArB,EAAAy7H,MAEA4B,KAAA,SAAAC,EAAAC,GACA,GAAA9+H,GAAA6+H,EAAAF,SACA/6H,EAAAk7H,EAAAH,QACA,IAAA3+H,IAAA4D,EAAA,CACA,GAAA5D,EAAA4D,GAAA,SAAA5D,EAAA,MAAA,EACA,IAAAA,EAAA4D,GAAA,SAAAA,EAAA,SAEA,MAAAi7H,GAAA7P,MAAA8P,EAAA9P,QACA,SAIA,IAAA+P,GAAA,SAAAC,EAAAC,GACA,MAAA,UAAAjH,EAAA6C,EAAAL,GACA,GAAApL,GAAA6P,YAMA,OALApE,GAAAD,EAAAC,EAAAL,GACA74H,EAAAmG,KAAAkwH,EAAA,SAAAp1H,EAAAosH,GACA,GAAAztH,GAAAs5H,EAAAj4H,EAAAosH,EAAAgJ,EACAgH,GAAA5P,EAAAxsH,EAAArB,KAEA6tH,GAMAztH,GAAAu9H,QAAAH,EAAA,SAAA3P,EAAAxsH,EAAArB,GACAqtH,EAAAQ,EAAA7tH,GAAA6tH,EAAA7tH,GAAAyG,KAAApF,GAAAwsH,EAAA7tH,IAAAqB,KAKAjB,EAAAw9H,QAAAJ,EAAA,SAAA3P,EAAAxsH,EAAArB,GACA6tH,EAAA7tH,GAAAqB,IAMAjB,EAAAy9H,QAAAL,EAAA,SAAA3P,EAAAxsH,EAAArB,GACAqtH,EAAAQ,EAAA7tH,GAAA6tH,EAAA7tH,KAAA6tH,EAAA7tH,GAAA,GAGA,IAAA89H,GAAA,kEAEA19H,GAAA29H,QAAA,SAAAtH,GACA,MAAAA,GACAr2H,EAAAi3H,QAAAZ,GAAAt1H,EAAArC,KAAA23H,GACAr2H,EAAA49H,SAAAvH,GAEAA,EAAAl0H,MAAAu7H,GAEAzD,EAAA5D,GAAAr2H,EAAAoC,IAAAi0H,EAAAr2H,EAAAm5H,UACAn5H,EAAAg8H,OAAA3F,OAIAr2H,EAAA69H,KAAA,SAAAxH,GACA,MAAA,OAAAA,EAAA,EACA4D,EAAA5D,GAAAA,EAAA13H,OAAAqB,EAAAoG,KAAAiwH,GAAA13H,QAKAqB,EAAAs9H,UAAAF,EAAA,SAAA3P,EAAAxsH,EAAA68H,GACArQ,EAAAqQ,EAAA,EAAA,GAAAz3H,KAAApF,KACA,GAQAjB,EAAA+9H,MAAA/9H,EAAAg+H,KAAAh+H,EAAAi+H,KAAA,SAAA7Q,EAAAvvH,EAAAk+H,GACA,MAAA,OAAA3O,GAAAA,EAAAzuH,OAAA,EAAA,MAAAd,EAAA,UACA,MAAAA,GAAAk+H,EAAA3O,EAAA,GACAptH,EAAAw6H,QAAApN,EAAAA,EAAAzuH,OAAAd,IAMAmC,EAAAw6H,QAAA,SAAApN,EAAAvvH,EAAAk+H,GACA,MAAAh7H,GAAArC,KAAA0uH,EAAA,EAAAhqH,KAAAW,IAAA,EAAAqpH,EAAAzuH,QAAA,MAAAd,GAAAk+H,EAAA,EAAAl+H,MAKAmC,EAAA+wH,KAAA,SAAA3D,EAAAvvH,EAAAk+H,GACA,MAAA,OAAA3O,GAAAA,EAAAzuH,OAAA,EAAA,MAAAd,EAAA,UACA,MAAAA,GAAAk+H,EAAA3O,EAAAA,EAAAzuH,OAAA,GACAqB,EAAA05H,KAAAtM,EAAAhqH,KAAAW,IAAA,EAAAqpH,EAAAzuH,OAAAd,KAMAmC,EAAA05H,KAAA15H,EAAAk+H,KAAAl+H,EAAAm+H,KAAA,SAAA/Q,EAAAvvH,EAAAk+H,GACA,MAAAh7H,GAAArC,KAAA0uH,EAAA,MAAAvvH,GAAAk+H,EAAA,EAAAl+H,IAIAmC,EAAAo+H,QAAA,SAAAhR,GACA,MAAAptH,GAAAuxH,OAAAnE,EAAAiR,SAIA,IAAAj9H,GAAA,SAAAk9H,EAAAC,EAAA3Q,EAAAC,GACAA,EAAAA,KAEA,KAAA,GADAiJ,GAAAjJ,EAAAlvH,OACAX,EAAA,EAAAW,EAAAq7H,EAAAsE,GAAAtgI,EAAAW,EAAAX,IAAA,CACA,GAAAiD,GAAAq9H,EAAAtgI,EACA,IAAAi8H,EAAAh5H,KAAAjB,EAAAi3H,QAAAh2H,IAAAjB,EAAAw+H,YAAAv9H,IAEA,GAAAs9H,EAEA,IADA,GAAAE,GAAA,EAAAhL,EAAAxyH,EAAAtC,OACA8/H,EAAAhL,GAAA5F,EAAAiJ,KAAA71H,EAAAw9H,SAEAr9H,GAAAH,EAAAs9H,EAAA3Q,EAAAC,GACAiJ,EAAAjJ,EAAAlvH,WAEAivH,KACAC,EAAAiJ,KAAA71H,GAGA,MAAA4sH,GAIA7tH,GAAAoB,QAAA,SAAAgsH,EAAAmR,GACA,MAAAn9H,GAAAgsH,EAAAmR,GAAA,IAIAv+H,EAAA0+H,QAAAlF,EAAA,SAAApM,EAAAuR,GACA,MAAA3+H,GAAA4+H,WAAAxR,EAAAuR,KASA3+H,EAAA6+H,KAAA7+H,EAAA8+H,OAAA,SAAA1R,EAAA2R,EAAA7F,EAAAL,GACA74H,EAAAg/H,UAAAD,KACAlG,EAAAK,EACAA,EAAA6F,EACAA,GAAA,GAEA,MAAA7F,IAAAA,EAAAD,EAAAC,EAAAL,GAGA,KAAA,GAFApL,MACAwR,KACAjhI,EAAA,EAAAW,EAAAq7H,EAAA5M,GAAApvH,EAAAW,EAAAX,IAAA,CACA,GAAAiD,GAAAmsH,EAAApvH,GACAw+H,EAAAtD,EAAAA,EAAAj4H,EAAAjD,EAAAovH,GAAAnsH,CACA89H,KAAA7F,GACAl7H,GAAAihI,IAAAzC,GAAA/O,EAAApnH,KAAApF,GACAg+H,EAAAzC,GACAtD,EACAl5H,EAAAmtH,SAAA8R,EAAAzC,KACAyC,EAAA54H,KAAAm2H,GACA/O,EAAApnH,KAAApF,IAEAjB,EAAAmtH,SAAAM,EAAAxsH,IACAwsH,EAAApnH,KAAApF,GAGA,MAAAwsH,IAKAztH,EAAAk/H,MAAA1F,EAAA,SAAA2F,GACA,MAAAn/H,GAAA6+H,KAAAz9H,EAAA+9H,GAAA,GAAA,MAKAn/H,EAAAo/H,aAAA,SAAAhS,GAGA,IAAA,GAFAK,MACA4R,EAAAr+H,UAAArC,OACAX,EAAA,EAAAW,EAAAq7H,EAAA5M,GAAApvH,EAAAW,EAAAX,IAAA,CACA,GAAA69H,GAAAzO,EAAApvH,EACA,KAAAgC,EAAAmtH,SAAAM,EAAAoO,GAAA,CACA,GAAA4C,EACA,KAAAA,EAAA,EAAAA,EAAAY,GACAr/H,EAAAmtH,SAAAnsH,UAAAy9H,GAAA5C,GADA4C,KAGAA,IAAAY,GAAA5R,EAAApnH,KAAAw1H,IAEA,MAAApO,IAKAztH,EAAA4+H,WAAApF,EAAA,SAAApM,EAAAsM,GAEA,MADAA,GAAAt4H,EAAAs4H,GAAA,GAAA,GACA15H,EAAAuxH,OAAAnE,EAAA,SAAAnsH,GACA,OAAAjB,EAAAmtH,SAAAuM,EAAAz4H,OAMAjB,EAAAs/H,MAAA,SAAAlS,GAIA,IAAA,GAHAzuH,GAAAyuH,GAAAptH,EAAA+D,IAAAqpH,EAAA4M,GAAAr7H,QAAA,EACA8uH,EAAA3sH,MAAAnC,GAEA0uH,EAAA,EAAAA,EAAA1uH,EAAA0uH,IACAI,EAAAJ,GAAArtH,EAAAo8H,MAAAhP,EAAAC,EAEA,OAAAI,IAKAztH,EAAAu/H,IAAA/F,EAAAx5H,EAAAs/H,OAKAt/H,EAAA+sH,OAAA,SAAAsO,EAAAW,GAEA,IAAA,GADAvO,MACAzvH,EAAA,EAAAW,EAAAq7H,EAAAqB,GAAAr9H,EAAAW,EAAAX,IACAg+H,EACAvO,EAAA4N,EAAAr9H,IAAAg+H,EAAAh+H,GAEAyvH,EAAA4N,EAAAr9H,GAAA,IAAAq9H,EAAAr9H,GAAA,EAGA,OAAAyvH,GAIA,IAAA+R,GAAA,SAAAtJ,GACA,MAAA,UAAA9I,EAAA4N,EAAAnC,GACAmC,EAAA/B,EAAA+B,EAAAnC,EAGA,KAFA,GAAAl6H,GAAAq7H,EAAA5M,GACAC,EAAA6I,EAAA,EAAA,EAAAv3H,EAAA,EACA0uH,GAAA,GAAAA,EAAA1uH,EAAA0uH,GAAA6I,EACA,GAAA8E,EAAA5N,EAAAC,GAAAA,EAAAD,GAAA,MAAAC,EAEA,WAKArtH,GAAAk7H,UAAAsE,EAAA,GACAx/H,EAAAy/H,cAAAD,MAIAx/H,EAAA0/H,YAAA,SAAAtS,EAAAiJ,EAAA6C,EAAAL,GACAK,EAAAD,EAAAC,EAAAL,EAAA,EAGA,KAFA,GAAA53H,GAAAi4H,EAAA7C,GACArH,EAAA,EAAAD,EAAAiL,EAAA5M,GACA4B,EAAAD,GAAA,CACA,GAAAznC,GAAAlkF,KAAAu8H,OAAA3Q,EAAAD,GAAA,EACAmK,GAAA9L,EAAA9lC,IAAArmF,EAAA+tH,EAAA1nC,EAAA,EAAAynC,EAAAznC,EAEA,MAAA0nC,GAIA,IAAA4Q,GAAA,SAAA1J,EAAA2J,EAAAH,GACA,MAAA,UAAAtS,EAAAyO,EAAA/E,GACA,GAAA94H,GAAA,EAAAW,EAAAq7H,EAAA5M,EACA,IAAA,gBAAA0J,GACAZ,EAAA,EACAl4H,EAAA84H,GAAA,EAAAA,EAAA1zH,KAAAW,IAAA+yH,EAAAn4H,EAAAX,GAEAW,EAAAm4H,GAAA,EAAA1zH,KAAAY,IAAA8yH,EAAA,EAAAn4H,GAAAm4H,EAAAn4H,EAAA,MAEA,IAAA+gI,GAAA5I,GAAAn4H,EAEA,MADAm4H,GAAA4I,EAAAtS,EAAAyO,GACAzO,EAAA0J,KAAA+E,EAAA/E,IAEA,IAAA+E,IAAAA,EAEA,MADA/E,GAAA+I,EAAA9+H,EAAArC,KAAA0uH,EAAApvH,EAAAW,GAAAqB,EAAA8/H,OACAhJ,GAAA,EAAAA,EAAA94H,IAEA,KAAA84H,EAAAZ,EAAA,EAAAl4H,EAAAW,EAAA,EAAAm4H,GAAA,GAAAA,EAAAn4H,EAAAm4H,GAAAZ,EACA,GAAA9I,EAAA0J,KAAA+E,EAAA,MAAA/E,EAEA,WAQA92H,GAAA+2H,QAAA6I,EAAA,EAAA5/H,EAAAk7H,UAAAl7H,EAAA0/H,aACA1/H,EAAA+/H,YAAAH,KAAA5/H,EAAAy/H,eAKAz/H,EAAAijG,MAAA,SAAAmuB,EAAA4O,EAAAC,GACA,MAAAD,IACAA,EAAA5O,GAAA,EACAA,EAAA,GAEA6O,IACAA,EAAAD,EAAA5O,KAAA,EAMA,KAAA,GAHAzyH,GAAAyE,KAAAW,IAAAX,KAAA88H,MAAAF,EAAA5O,GAAA6O,GAAA,GACAh9B,EAAAniG,MAAAnC,GAEAm4H,EAAA,EAAAA,EAAAn4H,EAAAm4H,IAAA1F,GAAA6O,EACAh9B,EAAA6zB,GAAA1F,CAGA,OAAAnuB,IAKAjjG,EAAAmgI,MAAA,SAAA/S,EAAAgT,GACA,GAAA,MAAAA,GAAAA,EAAA,EAAA,QAGA,KAFA,GAAA3S,MACAzvH,EAAA,EAAAW,EAAAyuH,EAAAzuH,OACAX,EAAAW,GACA8uH,EAAApnH,KAAAtF,EAAArC,KAAA0uH,EAAApvH,EAAAA,GAAAoiI,GAEA,OAAA3S,GAQA,IAAA4S,GAAA,SAAAC,EAAAC,EAAA1H,EAAA2H,EAAAxL,GACA,KAAAwL,YAAAD,IAAA,MAAAD,GAAA1/H,MAAAi4H,EAAA7D,EACA,IAAAxE,GAAAmJ,EAAA2G,EAAAvgI,WACA0tH,EAAA6S,EAAA1/H,MAAA4vH,EAAAwE,EACA,OAAAh1H,GAAA0G,SAAA+mH,GAAAA,EACA+C,EAMAxwH,GAAAygI,KAAAjH,EAAA,SAAAZ,EAAAC,EAAA7D,GACA,IAAAh1H,EAAAo5H,WAAAR,GAAA,KAAA,IAAA35H,WAAA,oCACA,IAAAyhI,GAAAlH,EAAA,SAAAmH,GACA,MAAAN,GAAAzH,EAAA8H,EAAA7H,EAAA34H,KAAA80H,EAAAn0H,OAAA8/H,KAEA,OAAAD,KAOA1gI,EAAA4gI,QAAApH,EAAA,SAAAZ,EAAAiI,GACA,GAAAC,GAAA9gI,EAAA4gI,QAAAE,YACAJ,EAAA,WAGA,IAAA,GAFAK,GAAA,EAAApiI,EAAAkiI,EAAAliI,OACAq2H,EAAAl0H,MAAAnC,GACAX,EAAA,EAAAA,EAAAW,EAAAX,IACAg3H,EAAAh3H,GAAA6iI,EAAA7iI,KAAA8iI,EAAA9/H,UAAA+/H,KAAAF,EAAA7iI,EAEA,MAAA+iI,EAAA//H,UAAArC,QAAAq2H,EAAA3uH,KAAArF,UAAA+/H,KACA,OAAAV,GAAAzH,EAAA8H,EAAAxgI,KAAAA,KAAA80H,GAEA,OAAA0L,KAGA1gI,EAAA4gI,QAAAE,YAAA9gI,EAKAA,EAAAghI,QAAAxH,EAAA,SAAAnD,EAAAjwH,GACAA,EAAAhF,EAAAgF,GAAA,GAAA,EACA,IAAAinH,GAAAjnH,EAAAzH,MACA,IAAA0uH,EAAA,EAAA,KAAA,IAAA/uH,OAAA,wCACA,MAAA+uH,KAAA,CACA,GAAAztH,GAAAwG,EAAAinH,EACAgJ,GAAAz2H,GAAAI,EAAAygI,KAAApK,EAAAz2H,GAAAy2H,MAKAr2H,EAAAihI,QAAA,SAAArI,EAAAsI,GACA,GAAAD,GAAA,SAAArhI,GACA,GAAAuhI,GAAAF,EAAAE,MACAC,EAAA,IAAAF,EAAAA,EAAAtgI,MAAAV,KAAAc,WAAApB,EAEA,OADAqtH,GAAAkU,EAAAC,KAAAD,EAAAC,GAAAxI,EAAAh4H,MAAAV,KAAAc,YACAmgI,EAAAC,GAGA,OADAH,GAAAE,SACAF,GAKAjhI,EAAAqhI,MAAA7H,EAAA,SAAAZ,EAAA0I,EAAAtM,GACA,MAAAf,YAAA,WACA,MAAA2E,GAAAh4H,MAAA,KAAAo0H,IACAsM,KAKAthI,EAAAuhI,MAAAvhI,EAAA4gI,QAAA5gI,EAAAqhI,MAAArhI,EAAA,GAOAA,EAAAwhI,SAAA,SAAA5I,EAAA0I,EAAA/T,GACA,GAAAoH,GAAAkE,EAAA7D,EAAAvH,EACAgU,EAAA,CACAlU,KAAAA,KAEA,IAAAmU,GAAA,WACAD,EAAAlU,EAAAoU,WAAA,EAAA,EAAA3hI,EAAA4hI,MACAjN,EAAA,KACAlH,EAAAmL,EAAAh4H,MAAAi4H,EAAA7D,GACAL,IAAAkE,EAAA7D,EAAA,OAGA6M,EAAA,WACA,GAAAD,GAAA5hI,EAAA4hI,KACAH,IAAAlU,EAAAoU,WAAA,IAAAF,EAAAG,EACA,IAAAE,GAAAR,GAAAM,EAAAH,EAcA,OAbA5I,GAAA34H,KACA80H,EAAAh0H,UACA8gI,GAAA,GAAAA,EAAAR,GACA3M,IACAP,aAAAO,GACAA,EAAA,MAEA8M,EAAAG,EACAnU,EAAAmL,EAAAh4H,MAAAi4H,EAAA7D,GACAL,IAAAkE,EAAA7D,EAAA,OACAL,GAAApH,EAAAwU,YAAA,IACApN,EAAAV,WAAAyN,EAAAI,IAEArU,EASA,OANAoU,GAAAG,OAAA,WACA5N,aAAAO,GACA8M,EAAA,EACA9M,EAAAkE,EAAA7D,EAAA,MAGA6M,GAOA7hI,EAAAiiI,SAAA,SAAArJ,EAAA0I,EAAAY,GACA,GAAAvN,GAAAlH,EAEAiU,EAAA,SAAA7I,EAAA7D,GACAL,EAAA,KACAK,IAAAvH,EAAAmL,EAAAh4H,MAAAi4H,EAAA7D,KAGAmN,EAAA3I,EAAA,SAAAxE,GAEA,GADAL,GAAAP,aAAAO,GACAuN,EAAA,CACA,GAAAE,IAAAzN,CACAA,GAAAV,WAAAyN,EAAAJ,GACAc,IAAA3U,EAAAmL,EAAAh4H,MAAAV,KAAA80H,QAEAL,GAAA30H,EAAAqhI,MAAAK,EAAAJ,EAAAphI,KAAA80H,EAGA,OAAAvH,IAQA,OALA0U,GAAAH,OAAA,WACA5N,aAAAO,GACAA,EAAA,MAGAwN,GAMAniI,EAAAqiI,KAAA,SAAAzJ,EAAA0J,GACA,MAAAtiI,GAAA4gI,QAAA0B,EAAA1J,IAIA54H,EAAAs7H,OAAA,SAAAN,GACA,MAAA,YACA,OAAAA,EAAAp6H,MAAAV,KAAAc,aAMAhB,EAAAuiI,QAAA,WACA,GAAAvN,GAAAh0H,UACAowH,EAAA4D,EAAAr2H,OAAA,CACA,OAAA,YAGA,IAFA,GAAAX,GAAAozH,EACA3D,EAAAuH,EAAA5D,GAAAxwH,MAAAV,KAAAc,WACAhD,KAAAyvH,EAAAuH,EAAAh3H,GAAAU,KAAAwB,KAAAutH,EACA,OAAAA,KAKAztH,EAAAwiI,MAAA,SAAA3oB,EAAA+e,GACA,MAAA,YACA,KAAA/e,EAAA,EACA,MAAA+e,GAAAh4H,MAAAV,KAAAc,aAMAhB,EAAAyiI,OAAA,SAAA5oB,EAAA+e,GACA,GAAA2B,EACA,OAAA,YAKA,QAJA1gB,EAAA,IACA0gB,EAAA3B,EAAAh4H,MAAAV,KAAAc,YAEA64G,GAAA,IAAA+e,EAAA,MACA2B,IAMAv6H,EAAAu1H,KAAAv1H,EAAA4gI,QAAA5gI,EAAAyiI,OAAA,GAEAziI,EAAAw5H,cAAAA,CAMA,IAAAkJ,KAAAhgI,SAAA,MAAAigI,qBAAA,YACAC,GAAA,UAAA,gBAAA,WACA,uBAAA,iBAAA,kBAEAC,EAAA,SAAAxM,EAAAjwH,GACA,GAAA08H,GAAAF,EAAAjkI,OACAokI,EAAA1M,EAAA0M,YACAC,EAAAhjI,EAAAo5H,WAAA2J,IAAAA,EAAAhjI,WAAAi4H,EAGAj3B,EAAA,aAGA,KAFAksB,EAAAoJ,EAAAt1B,KAAA/gG,EAAAmtH,SAAA/mH,EAAA26F,IAAA36F,EAAAC,KAAA06F,GAEA+hC,KACA/hC,EAAA6hC,EAAAE,GACA/hC,IAAAs1B,IAAAA,EAAAt1B,KAAAiiC,EAAAjiC,KAAA/gG,EAAAmtH,SAAA/mH,EAAA26F,IACA36F,EAAAC,KAAA06F,GAOA/gG,GAAAoG,KAAA,SAAAiwH,GACA,IAAAr2H,EAAA0G,SAAA2vH,GAAA,QACA,IAAA+B,EAAA,MAAAA,GAAA/B,EACA,IAAAjwH,KACA,KAAA,GAAAxG,KAAAy2H,GAAApJ,EAAAoJ,EAAAz2H,IAAAwG,EAAAC,KAAAzG,EAGA,OADA8iI,IAAAG,EAAAxM,EAAAjwH,GACAA,GAIApG,EAAAijI,QAAA,SAAA5M,GACA,IAAAr2H,EAAA0G,SAAA2vH,GAAA,QACA,IAAAjwH,KACA,KAAA,GAAAxG,KAAAy2H,GAAAjwH,EAAAC,KAAAzG,EAGA,OADA8iI,IAAAG,EAAAxM,EAAAjwH,GACAA,GAIApG,EAAAg8H,OAAA,SAAA3F,GAIA,IAAA,GAHAjwH,GAAApG,EAAAoG,KAAAiwH,GACA13H,EAAAyH,EAAAzH,OACAq9H,EAAAl7H,MAAAnC,GACAX,EAAA,EAAAA,EAAAW,EAAAX,IACAg+H,EAAAh+H,GAAAq4H,EAAAjwH,EAAApI,GAEA,OAAAg+H,IAKAh8H,EAAAkjI,UAAA,SAAA7M,EAAA6C,EAAAL,GACAK,EAAAD,EAAAC,EAAAL,EAIA,KAAA,GAHAzyH,GAAApG,EAAAoG,KAAAiwH,GACA13H,EAAAyH,EAAAzH,OACAw7H,KACA9M,EAAA,EAAAA,EAAA1uH,EAAA0uH,IAAA,CACA,GAAA+M,GAAAh0H,EAAAinH,EACA8M,GAAAC,GAAAlB,EAAA7C,EAAA+D,GAAAA,EAAA/D,GAEA,MAAA8D,IAKAn6H,EAAAmjI,MAAA,SAAA9M,GAIA,IAAA,GAHAjwH,GAAApG,EAAAoG,KAAAiwH,GACA13H,EAAAyH,EAAAzH,OACAwkI,EAAAriI,MAAAnC,GACAX,EAAA,EAAAA,EAAAW,EAAAX,IACAmlI,EAAAnlI,IAAAoI,EAAApI,GAAAq4H,EAAAjwH,EAAApI,IAEA,OAAAmlI,IAIAnjI,EAAAojI,OAAA,SAAA/M,GAGA,IAAA,GAFA5I,MACArnH,EAAApG,EAAAoG,KAAAiwH,GACAr4H,EAAA,EAAAW,EAAAyH,EAAAzH,OAAAX,EAAAW,EAAAX,IACAyvH,EAAA4I,EAAAjwH,EAAApI,KAAAoI,EAAApI,EAEA,OAAAyvH,IAKAztH,EAAAqjI,UAAArjI,EAAAsjI,QAAA,SAAAjN,GACA,GAAAkN,KACA,KAAA,GAAA3jI,KAAAy2H,GACAr2H,EAAAo5H,WAAA/C,EAAAz2H,KAAA2jI,EAAAl9H,KAAAzG,EAEA,OAAA2jI,GAAAtG,OAIA,IAAAuG,GAAA,SAAAC,EAAAjW,GACA,MAAA,UAAA6I,GACA,GAAA13H,GAAAqC,UAAArC,MAEA,IADA6uH,IAAA6I,EAAA32H,OAAA22H,IACA13H,EAAA,GAAA,MAAA03H,EAAA,MAAAA,EACA,KAAA,GAAAhJ,GAAA,EAAAA,EAAA1uH,EAAA0uH,IAIA,IAAA,GAHAqW,GAAA1iI,UAAAqsH,GACAjnH,EAAAq9H,EAAAC,GACAlgI,EAAA4C,EAAAzH,OACAX,EAAA,EAAAA,EAAAwF,EAAAxF,IAAA,CACA,GAAA4B,GAAAwG,EAAApI,EACAwvH,IAAA,SAAA6I,EAAAz2H,KAAAy2H,EAAAz2H,GAAA8jI,EAAA9jI,IAGA,MAAAy2H,IAKAr2H,GAAAmB,OAAAqiI,EAAAxjI,EAAAijI,SAIAjjI,EAAA2jI,UAAA3jI,EAAAW,OAAA6iI,EAAAxjI,EAAAoG,MAGApG,EAAAm7H,QAAA,SAAA9E,EAAA2E,EAAAnC,GACAmC,EAAA/B,EAAA+B,EAAAnC,EAEA,KAAA,GADAj5H,GAAAwG,EAAApG,EAAAoG,KAAAiwH,GACAr4H,EAAA,EAAAW,EAAAyH,EAAAzH,OAAAX,EAAAW,EAAAX,IAEA,GADA4B,EAAAwG,EAAApI,GACAg9H,EAAA3E,EAAAz2H,GAAAA,EAAAy2H,GAAA,MAAAz2H,GAKA,IAAAgkI,GAAA,SAAA3iI,EAAArB,EAAAy2H,GACA,MAAAz2H,KAAAy2H,GAIAr2H,GAAA6jI,KAAArK,EAAA,SAAAnD,EAAAjwH,GACA,GAAAqnH,MAAAyL,EAAA9yH,EAAA,EACA,IAAA,MAAAiwH,EAAA,MAAA5I,EACAztH,GAAAo5H,WAAAF,IACA9yH,EAAAzH,OAAA,IAAAu6H,EAAAP,EAAAO,EAAA9yH,EAAA,KACAA,EAAApG,EAAAijI,QAAA5M,KAEA6C,EAAA0K,EACAx9H,EAAAhF,EAAAgF,GAAA,GAAA,GACAiwH,EAAA32H,OAAA22H,GAEA,KAAA,GAAAr4H,GAAA,EAAAW,EAAAyH,EAAAzH,OAAAX,EAAAW,EAAAX,IAAA,CACA,GAAA4B,GAAAwG,EAAApI,GACAiD,EAAAo1H,EAAAz2H,EACAs5H,GAAAj4H,EAAArB,EAAAy2H,KAAA5I,EAAA7tH,GAAAqB,GAEA,MAAAwsH,KAIAztH,EAAA8jI,KAAAtK,EAAA,SAAAnD,EAAAjwH,GACA,GAAAyyH,GAAAK,EAAA9yH,EAAA,EAUA,OATApG,GAAAo5H,WAAAF,IACAA,EAAAl5H,EAAAs7H,OAAApC,GACA9yH,EAAAzH,OAAA,IAAAk6H,EAAAzyH,EAAA,MAEAA,EAAApG,EAAAoC,IAAAhB,EAAAgF,GAAA,GAAA,GAAAymH,QACAqM,EAAA,SAAAj4H,EAAArB,GACA,OAAAI,EAAAmtH,SAAA/mH,EAAAxG,KAGAI,EAAA6jI,KAAAxN,EAAA6C,EAAAL,KAIA74H,EAAAwtH,SAAAgW,EAAAxjI,EAAAijI,SAAA,GAKAjjI,EAAAs4H,OAAA,SAAAv4H,EAAAV,GACA,GAAAouH,GAAAkM,EAAA55H,EAEA,OADAV,IAAAW,EAAA2jI,UAAAlW,EAAApuH,GACAouH,GAIAztH,EAAA68H,MAAA,SAAAxG,GACA,MAAAr2H,GAAA0G,SAAA2vH,GACAr2H,EAAAi3H,QAAAZ,GAAAA,EAAAt1H,QAAAf,EAAAmB,UAAAk1H,GADAA,GAOAr2H,EAAA+jI,IAAA,SAAA1N,EAAA2N,GAEA,MADAA,GAAA3N,GACAA,GAIAr2H,EAAAikI,QAAA,SAAAlX,EAAAuP,GACA,GAAAl2H,GAAApG,EAAAoG,KAAAk2H,GAAA39H,EAAAyH,EAAAzH,MACA,IAAA,MAAAouH,EAAA,OAAApuH,CAEA,KAAA,GADA03H,GAAA32H,OAAAqtH,GACA/uH,EAAA,EAAAA,EAAAW,EAAAX,IAAA,CACA,GAAA4B,GAAAwG,EAAApI,EACA,IAAAs+H,EAAA18H,KAAAy2H,EAAAz2H,MAAAA,IAAAy2H,IAAA,OAAA,EAEA,OAAA,EAKA,IAAAE,GAAA2N,CACA3N,GAAA,SAAAl4H,EAAA4D,EAAAkiI,EAAAC,GAGA,GAAA/lI,IAAA4D,EAAA,MAAA,KAAA5D,GAAA,EAAAA,IAAA,EAAA4D,CAEA,IAAA,MAAA5D,GAAA,MAAA4D,EAAA,OAAA,CAEA,IAAA5D,IAAAA,EAAA,MAAA4D,KAAAA,CAEA,IAAAoiI,SAAAhmI,EACA,QAAA,aAAAgmI,GAAA,WAAAA,GAAA,gBAAApiI,KACAiiI,EAAA7lI,EAAA4D,EAAAkiI,EAAAC,IAIAF,EAAA,SAAA7lI,EAAA4D,EAAAkiI,EAAAC,GAEA/lI,YAAA2B,KAAA3B,EAAAA,EAAAm6H,UACAv2H,YAAAjC,KAAAiC,EAAAA,EAAAu2H,SAEA,IAAA8L,GAAA5hI,EAAAhE,KAAAL,EACA,IAAAimI,IAAA5hI,EAAAhE,KAAAuD,GAAA,OAAA,CACA,QAAAqiI,GAEA,IAAA,kBAEA,IAAA,kBAGA,MAAA,GAAAjmI,GAAA,GAAA4D,CACA,KAAA,kBAGA,OAAA5D,KAAAA,GAAA4D,KAAAA,EAEA,KAAA5D,EAAA,GAAAA,IAAA,EAAA4D,GAAA5D,KAAA4D,CACA,KAAA,gBACA,IAAA,mBAIA,OAAA5D,KAAA4D,CACA,KAAA,kBACA,MAAAg2H,GAAAsM,QAAA7lI,KAAAL,KAAA45H,EAAAsM,QAAA7lI,KAAAuD,GAGA,GAAAuiI,GAAA,mBAAAF,CACA,KAAAE,EAAA,CACA,GAAA,gBAAAnmI,IAAA,gBAAA4D,GAAA,OAAA,CAIA,IAAAwiI,GAAApmI,EAAA0kI,YAAA2B,EAAAziI,EAAA8gI,WACA,IAAA0B,IAAAC,KAAA1kI,EAAAo5H,WAAAqL,IAAAA,YAAAA,IACAzkI,EAAAo5H,WAAAsL,IAAAA,YAAAA,KACA,eAAArmI,IAAA,eAAA4D,GACA,OAAA,EAQAkiI,EAAAA,MACAC,EAAAA,KAEA,KADA,GAAAzlI,GAAAwlI,EAAAxlI,OACAA,KAGA,GAAAwlI,EAAAxlI,KAAAN,EAAA,MAAA+lI,GAAAzlI,KAAAsD,CAQA,IAJAkiI,EAAA99H,KAAAhI,GACA+lI,EAAA/9H,KAAApE,GAGAuiI,EAAA,CAGA,GADA7lI,EAAAN,EAAAM,OACAA,IAAAsD,EAAAtD,OAAA,OAAA,CAEA,MAAAA,KACA,IAAA43H,EAAAl4H,EAAAM,GAAAsD,EAAAtD,GAAAwlI,EAAAC,GAAA,OAAA,MAEA,CAEA,GAAAxkI,GAAAwG,EAAApG,EAAAoG,KAAA/H,EAGA,IAFAM,EAAAyH,EAAAzH,OAEAqB,EAAAoG,KAAAnE,GAAAtD,SAAAA,EAAA,OAAA,CACA,MAAAA,KAGA,GADAiB,EAAAwG,EAAAzH,IACAsuH,EAAAhrH,EAAArC,KAAA22H,EAAAl4H,EAAAuB,GAAAqC,EAAArC,GAAAukI,EAAAC,GAAA,OAAA,EAMA,MAFAD,GAAAQ,MACAP,EAAAO,OACA,GAIA3kI,EAAA4kI,QAAA,SAAAvmI,EAAA4D,GACA,MAAAs0H,GAAAl4H,EAAA4D,IAKAjC,EAAAuB,QAAA,SAAA80H,GACA,MAAA,OAAAA,IACA4D,EAAA5D,KAAAr2H,EAAAi3H,QAAAZ,IAAAr2H,EAAA49H,SAAAvH,IAAAr2H,EAAAw+H,YAAAnI,IAAA,IAAAA,EAAA13H,OACA,IAAAqB,EAAAoG,KAAAiwH,GAAA13H,SAIAqB,EAAA6kI,UAAA,SAAAxO,GACA,SAAAA,GAAA,IAAAA,EAAA9F,WAKAvwH,EAAAi3H,QAAAkB,GAAA,SAAA9B,GACA,MAAA,mBAAA3zH,EAAAhE,KAAA23H,IAIAr2H,EAAA0G,SAAA,SAAA2vH,GACA,GAAAgO,SAAAhO,EACA,OAAA,aAAAgO,GAAA,WAAAA,KAAAhO,GAIAr2H,EAAAmG,MAAA,YAAA,WAAA,SAAA,SAAA,OAAA,SAAA,QAAA,SAAA,MAAA,UAAA,MAAA,WAAA,SAAA4vH,GACA/1H,EAAA,KAAA+1H,GAAA,SAAAM,GACA,MAAA3zH,GAAAhE,KAAA23H,KAAA,WAAAN,EAAA,OAMA/1H,EAAAw+H,YAAAx9H,aACAhB,EAAAw+H,YAAA,SAAAnI,GACA,MAAApJ,GAAAoJ,EAAA,WAMA,IAAAyO,GAAAj+H,EAAAk+H,UAAAl+H,EAAAk+H,SAAAC,UACA,mBAAA,KAAA,gBAAAC,YAAA,kBAAAH,KACA9kI,EAAAo5H,WAAA,SAAA/C,GACA,MAAA,kBAAAA,KAAA,IAKAr2H,EAAAo3H,SAAA,SAAAf,GACA,OAAAr2H,EAAAklI,SAAA7O,IAAAe,SAAAf,KAAAyJ,MAAAqF,WAAA9O,KAIAr2H,EAAA8/H,MAAA,SAAAzJ,GACA,MAAAr2H,GAAAolI,SAAA/O,IAAAyJ,MAAAzJ,IAIAr2H,EAAAg/H,UAAA,SAAA3I,GACA,MAAAA,MAAA,GAAAA,KAAA,GAAA,qBAAA3zH,EAAAhE,KAAA23H,IAIAr2H,EAAAqlI,OAAA,SAAAhP,GACA,MAAA,QAAAA,GAIAr2H,EAAAslI,YAAA,SAAAjP,GACA,MAAA,UAAAA,GAKAr2H,EAAAitH,IAAA,SAAAoJ,EAAAlF,GACA,IAAAnxH,EAAAi3H,QAAA9F,GACA,MAAAlE,GAAAoJ,EAAAlF,EAGA,KAAA,GADAxyH,GAAAwyH,EAAAxyH,OACAX,EAAA,EAAAA,EAAAW,EAAAX,IAAA,CACA,GAAA4B,GAAAuxH,EAAAnzH,EACA,IAAA,MAAAq4H,IAAArJ,EAAAtuH,KAAA23H,EAAAz2H,GACA,OAAA,CAEAy2H,GAAAA,EAAAz2H,GAEA,QAAAjB,GAQAqB,EAAAulI,WAAA,WAEA,MADA1+H,GAAA7G,EAAA83H,EACA53H,MAIAF,EAAAm5H,SAAA,SAAAl4H,GACA,MAAAA,IAIAjB,EAAAwlI,SAAA,SAAAvkI,GACA,MAAA,YACA,MAAAA,KAIAjB,EAAA80H,KAAA,aAIA90H,EAAAs5H,SAAA,SAAAnI,GACA,MAAAnxH,GAAAi3H,QAAA9F,GAGA,SAAAkF,GACA,MAAAwD,GAAAxD,EAAAlF,IAHAyI,EAAAzI,IAQAnxH,EAAAylI,WAAA,SAAApP,GACA,MAAA,OAAAA,EACA,aAEA,SAAAlF,GACA,MAAAnxH,GAAAi3H,QAAA9F,GAAA0I,EAAAxD,EAAAlF,GAAAkF,EAAAlF,KAMAnxH,EAAAq5H,QAAAr5H,EAAA0lI,QAAA,SAAApJ,GAEA,MADAA,GAAAt8H,EAAA2jI,aAAArH,GACA,SAAAjG,GACA,MAAAr2H,GAAAikI,QAAA5N,EAAAiG,KAKAt8H,EAAA65G,MAAA,SAAAh8G,EAAAq7H,EAAAL,GACA,GAAA8M,GAAA7kI,MAAAsC,KAAAW,IAAA,EAAAlG,GACAq7H,GAAAP,EAAAO,EAAAL,EAAA,EACA,KAAA,GAAA76H,GAAA,EAAAA,EAAAH,EAAAG,IAAA2nI,EAAA3nI,GAAAk7H,EAAAl7H,EACA,OAAA2nI,IAIA3lI,EAAA48H,OAAA,SAAA54H,EAAAD,GAKA,MAJA,OAAAA,IACAA,EAAAC,EACAA,EAAA,GAEAA,EAAAZ,KAAAu8H,MAAAv8H,KAAAw5H,UAAA74H,EAAAC,EAAA,KAIAhE,EAAA4hI,IAAAgE,KAAAhE,KAAA,WACA,OAAA,GAAAgE,OAAAC,UAIA,IAAAhgF,IACAt4C,IAAA,QACAuI,IAAA,OACAO,IAAA,OACA5L,IAAA,SACAN,IAAA,SACAmE,IAAA,UAEAw3H,EAAA9lI,EAAAojI,OAAAv9E,GAGAkgF,EAAA,SAAA3jI,GACA,GAAA4jI,GAAA,SAAA7jI,GACA,MAAAC,GAAAD,IAGAuhI,EAAA,MAAA1jI,EAAAoG,KAAAhE,GAAA4vH,KAAA,KAAA,IACAiU,EAAAC,OAAAxC,GACAyC,EAAAD,OAAAxC,EAAA,IACA,OAAA,UAAAtV,GAEA,MADAA,GAAA,MAAAA,EAAA,GAAA,GAAAA,EACA6X,EAAA5X,KAAAD,GAAAA,EAAAtsH,QAAAqkI,EAAAH,GAAA5X,GAGApuH,GAAAiwH,OAAA8V,EAAAlgF,GACA7lD,EAAAowH,SAAA2V,EAAAD,GAKA9lI,EAAAytH,OAAA,SAAA4I,EAAAlF,EAAAiV,GACApmI,EAAAi3H,QAAA9F,KAAAA,GAAAA,GACA,IAAAxyH,GAAAwyH,EAAAxyH,MACA,KAAAA,EACA,MAAAqB,GAAAo5H,WAAAgN,GAAAA,EAAA1nI,KAAA23H,GAAA+P,CAEA,KAAA,GAAApoI,GAAA,EAAAA,EAAAW,EAAAX,IAAA,CACA,GAAA+iG,GAAA,MAAAs1B,EAAA,OAAAA,EAAAlF,EAAAnzH,GACA,UAAA+iG,IACAA,EAAAqlC,EACApoI,EAAAW,GAEA03H,EAAAr2H,EAAAo5H,WAAAr4B,GAAAA,EAAAriG,KAAA23H,GAAAt1B,EAEA,MAAAs1B,GAKA,IAAAgQ,GAAA,CACArmI,GAAAsmI,SAAA,SAAAC,GACA,GAAAC,KAAAH,EAAA,EACA,OAAAE,GAAAA,EAAAC,EAAAA,GAKAxmI,EAAAymI,kBACAC,SAAA,kBACAC,YAAA,mBACA1W,OAAA,mBAMA,IAAA2W,GAAA,OAIAC,GACA18H,IAAA,IACA28H,KAAA,KACAC,KAAA,IACA1+H,KAAA,IACA2+H,SAAA,QACAC,SAAA,SAGAC,EAAA,4BAEAC,EAAA,SAAAhlI,GACA,MAAA,KAAA0kI,EAAA1kI,GAOAnC,GAAAonI,SAAA,SAAAC,EAAAC,EAAAC,IACAD,GAAAC,IAAAD,EAAAC,GACAD,EAAAtnI,EAAAwtH,YAAA8Z,EAAAtnI,EAAAymI,iBAGA,IAAApN,GAAA6M,SACAoB,EAAArX,QAAA2W,GAAAlD,QACA4D,EAAAX,aAAAC,GAAAlD,QACA4D,EAAAZ,UAAAE,GAAAlD,QACA1R,KAAA,KAAA,KAAA,KAGA3E,EAAA,EACAqW,EAAA,QACA2D,GAAAvlI,QAAAu3H,EAAA,SAAAl3H,EAAA8tH,EAAA0W,EAAAD,EAAAc,GAaA,MAZA9D,IAAA2D,EAAAtmI,MAAAssH,EAAAma,GAAA1lI,QAAAolI,EAAAC,GACA9Z,EAAAma,EAAArlI,EAAAxD,OAEAsxH,EACAyT,GAAA,cAAAzT,EAAA,iCACA0W,EACAjD,GAAA,cAAAiD,EAAA,uBACAD,IACAhD,GAAA,OAAAgD,EAAA,YAIAvkI,IAEAuhI,GAAA,OAGA4D,EAAAG,WAAA/D,EAAA,mBAAAA,EAAA,OAEAA,EAAA,4FAEAA,EAAA,eAEA,IAAAgE,EACA,KACAA,EAAA,GAAAC,UAAAL,EAAAG,UAAA,MAAA,IAAA/D,GACA,MAAA9lI,GAEA,KADAA,GAAA8lI,OAAAA,EACA9lI,EAGA,GAAAwpI,GAAA,SAAAQ,GACA,MAAAF,GAAAhpI,KAAAwB,KAAA0nI,EAAA5nI,IAIA6nI,EAAAP,EAAAG,UAAA,KAGA,OAFAL,GAAA1D,OAAA,YAAAmE,EAAA,OAAAnE,EAAA,IAEA0D,GAIApnI,EAAA8nI,MAAA,SAAAzR,GACA,GAAAt3H,GAAAiB,EAAAq2H,EAEA,OADAt3H,GAAAgpI,QAAA,EACAhpI,EAUA,IAAAipI,GAAA,SAAAjpI,EAAAs3H,GACA,MAAAt3H,GAAAgpI,OAAA/nI,EAAAq2H,GAAAyR,QAAAzR,EAIAr2H,GAAAioI,MAAA,SAAA5R,GASA,MARAr2H,GAAAmG,KAAAnG,EAAAqjI,UAAAhN,GAAA,SAAAN,GACA,GAAA6C,GAAA54H,EAAA+1H,GAAAM,EAAAN,EACA/1H,GAAAD,UAAAg2H,GAAA,WACA,GAAAf,IAAA90H,KAAAs4H,SAEA,OADAnyH,GAAAzF,MAAAo0H,EAAAh0H,WACAgnI,EAAA9nI,KAAA04H,EAAAh4H,MAAAZ,EAAAg1H,OAGAh1H,GAIAA,EAAAioI,MAAAjoI,GAGAA,EAAAmG,MAAA,MAAA,OAAA,UAAA,QAAA,OAAA,SAAA,WAAA,SAAA4vH,GACA,GAAAoG,GAAApE,EAAAhC,EACA/1H,GAAAD,UAAAg2H,GAAA,WACA,GAAAM,GAAAn2H,KAAAs4H,QAGA,OAFA2D,GAAAv7H,MAAAy1H,EAAAr1H,WACA,UAAA+0H,GAAA,WAAAA,GAAA,IAAAM,EAAA13H,cAAA03H,GAAA,GACA2R,EAAA9nI,KAAAm2H,MAKAr2H,EAAAmG,MAAA,SAAA,OAAA,SAAA,SAAA4vH,GACA,GAAAoG,GAAApE,EAAAhC,EACA/1H,GAAAD,UAAAg2H,GAAA,WACA,MAAAiS,GAAA9nI,KAAAi8H,EAAAv7H,MAAAV,KAAAs4H,SAAAx3H,eAKAhB,EAAAD,UAAAkB,MAAA,WACA,MAAAf,MAAAs4H,UAKAx4H,EAAAD,UAAAwkI,QAAAvkI,EAAAD,UAAAmoI,OAAAloI,EAAAD,UAAAkB,MAEAjB,EAAAD,UAAA2C,SAAA,WACA,MAAAmqH,QAAA3sH,KAAAs4H,WAUA,kBAAAnI,SAAAA,OAAAC,KACAD,OAAA,gBAAA,WACA,MAAArwH,UV+3CGtB,KAAKwB,KAAuB,mBAAX0G,QAAyBA,OAAyB,mBAAT4pH,MAAuBA,KAAyB,mBAAXvpH,QAAyBA,gBAErHkhI,iGAAiG,SAAShqI,EAAQU,EAAOJ,GAC/H,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAEX,IAAImnI,GW/hG0BnhI,OAAtBioH,EXgiGGkZ,EWhiGHlZ,KAAMmZ,EXiiGJD,EWjiGIC,IAAKC,EXkiGNF,EWliGME,MXoiGnB7pI,GAAQ,WWliGO,WAAA,MAAA,4LAEoDywH,EAAK,oBAFzD,iEAGyCA,EAAK,wBAH9C,SAGgFA,EAAK,uBAHrF,2IAK2FmZ,EAAIC,EAAOC,iBALtG,KAK6HrZ,EAAK,mBALlI,+GAM0FmZ,EAAIC,EAAOE,eANrG,MAM2HtZ,EAAK,uBANhI,sLAQgGmZ,EAAIC,EAAOC,iBAR3G,KAQkIrZ,EAAK,mBARvI,mHAS8FmZ,EAAIC,EAAOE,eATzG,MAS+HtZ,EAAK,uBATpI,oEXsiGTuZ,4FAA4F,SAAStqI,EAAQU,EAAOJ,GAC1H,YAYA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAhBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GY5iGX,IAAAmoI,GAAAjrI,EAAA,mBACAkrI,EAAAlrI,EAAA,wBZkjGImrI,EAAkBZ,EAAuBW,GYhjGxBE,EZ0jGD,SAAUC,GYzjG1B,QAAAD,KAAczqI,EAAAoB,KAAAqpI,EACV,IAAIE,IAAU,EAAAH,EAAA,cACVI,GACAC,SAAW,iBACXrlI,MAAO2C,OAAOioH,KAAK,oBACnB0a,aAAa,EACbH,QAAAA,EANM,OAQVI,SAAQC,IAAI,oBAAqB,GAAIC,UAAU,IARrClB,EAAA3oI,MAAAqpI,EAAAJ,WAAAzpI,OAAAsqI,eAAAT,IAAA7qI,KAAAwB,KASJwpI,IZikGV,MAhBAX,GAAUQ,EAAeC,GAgBlBD,GY3kGgCH,EAAAa,MZ8kG3CxrI,GAAQ,WY9kGa8qI,IZglGlBW,kBAAkB,4EAA4EC,uBAAuB,kGAAkGC,kGAAkG,SAASjsI,EAAQU,EAAOJ,GACpV,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,Wa1lGO,SAAA4rI,GAAA,GAAEC,GAAFD,EAAEC,SAAUC,EAAZF,EAAYE,SAAZ,OAAA,0BACQA,EADR,2MAK6BA,EAL7B,2BAMOD,EAASvU,KAAK/H,cANrB,sdAgBOsc,EAASE,YAhBhB,8DAmBiB,QAAlBF,EAASjG,KAAT,gFAEQiG,EAASG,MAAM9rI,OAAS,EAAxB,sCACasI,OAAOohI,IAAIphI,OAAOqhI,OAAOoC,SAAUlE,GAAI8D,EAASG,MAAM,GAAGjE,KADtE,4DACsIv/H,OAAOioH,KAAK,6BADlJ,2JAEgIjoH,OAAOioH,KAAK,+BAF5I,iJAIE,IANV,yCAQE,IA3BD,+CbgmGTyb,yFAAyF,SAASxsI,EAAQU,EAAOJ,GACvH,YA4BA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAhCjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,McvmGhiB4rI,EAAAzsI,EAAA,4Bd2mGI0sI,EAAUnC,EAAuBkC,Gc1mGrCE,EAAA3sI,EAAA,yBd8mGI4sI,EAAcrC,EAAuBoC,Gc7mGzCE,EAAA7sI,EAAA,uCdinGI8sI,EAAiBvC,EAAuBsC,GchnG5CE,EAAA/sI,EAAA,8BdonGIgtI,EAAazC,EAAuBwC,GcnnGxCE,EAAAjtI,EAAA,2BdunGIktI,EAAc3C,EAAuB0C,GcrnGpBE,Ed+nGN,SAAUC,GcznGrB,QAAAD,GAAAjB,GAA4C,GAA9BmB,GAA8BnB,EAA9BmB,IAAKC,EAAyBpB,EAAzBoB,YAAanB,EAAYD,EAAZC,QAAYxrI,GAAAoB,KAAAorI,EAAA,IAAAhlI,GAAAuiI,EAAA3oI,MAAAorI,EAAAnC,WAAAzpI,OAAAsqI,eAAAsB,IAAA1qI,MAAAV,KAC/Bc,WAD+B,OAGxCsF,GAAKklI,IAAiBA,EACtBllI,EAAKmlI,YAAiBA,EACtBnlI,EAAKgkI,SAAiBA,EAEtBhkI,EAAKpF,MAAiBoF,EAAKpF,OAAS,GAAI2pI,GAAA,WACxCvkI,EAAKolI,aAAiB,GAAIT,GAAA,YAAeO,IAAKllI,EAAKklI,MACnDllI,EAAKqlI,UAAiB,GAAIZ,GAAA,YAAY7pI,MAAOoF,EAAKpF,QAElDoF,EAAKslI,SAAStlI,EAAKpF,MAAO,eAAgBoF,EAAKulI,oBAXPvlI,EdirG5C,MAvDAyiI,GAAUuC,EAAUC,GAEpBrsI,EAAaosI,IACT1rI,IAAK,YACLsE,IAAK,WcjoGL,MAAOhE,MAAKurI,YAAL,MAAyBvrI,KAAKurI,YAAYK,UAAc,Od2pGnE5sI,EAAaosI,IACT1rI,IAAK,SACLqB,MAAO,Wc3oGP,GAAI8qI,GAAY7nG,GAAE,EAAAinG,EAAA,YAAiBjrI,MAEnCA,MAAKgB,MAAM8qI,YACP1B,SAAUpqI,KAAKoqI,WAGnByB,EAAUjR,KAAK,gCAAgCmR,OAAO/rI,KAAKyrI,UAAUjE,SAAS5jE,IAE9E5jE,KAAKgsI,IAAI5nE,QAAQ2nE,OAAOF,IAExB,EAAAV,EAAA,iBd+oGAzrI,IAAK,qBACLqB,MAAO,SAA4BkrI,Gc7oGH,GAAhBC,GAAgBD,EAAhBC,OAAQlrI,EAAQirI,EAARjrI,KACxBhB,MAAKwrI,aAAaW,QAAQD,EAAQlrI,OdopG/BoqI,GcvrG2BgB,SAASC,Kd0rG/C9tI,GAAQ,Wc1rGa6sI,Id4rGlBkB,sCAAsC,8EAA8EC,0BAA0B,kEAAkEC,wBAAwB,+EAA+EC,2BAA2B,mFAAmFC,6BAA6B,mGAAmGC,8GAA8G,SAAS1uI,EAAQU,EAAOJ,GAC9qB,YAgBA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GApBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MezsGhiB8tI,EAAA3uI,EAAA,2Bf6sGI4uI,EAAmBrE,EAAuBoE,Ge3sG9CE,EAAA7uI,EAAA,2Df+sGI8uI,EAA+BvE,EAAuBsE,Ge5sGrCE,EfutGM,SAAUC,GetpGjC,QAAAD,KAAcpuI,EAAAoB,KAAAgtI,EAAA,IAAA5mI,GAAAuiI,EAAA3oI,MAAAgtI,EAAA/D,WAAAzpI,OAAAsqI,eAAAkD,IAAAtsI,MAAAV,KACDc,WADC,OAGVsF,GAAK8mI,gBAAkB,GAAIL,GAAA,WAE3BzmI,EAAK+mI,gBAAkB/mI,EAAK8mI,gBAAgB3C,MAE5CnkI,EAAKslI,SAAStlI,EAAK+mI,gBAAiB,MAAO,WACvC/mI,EAAKwjI,IAAI,aAAcxjI,EAAK+mI,gBAAgB1uI,UARtC2H,Efg2Gd,MAzMAyiI,GAAUmE,EAAsBC,GAEhCjuI,EAAaguI,IACTttI,IAAK,WACLqB,MAAO,WejsGP,OACIulI,GAA8B,IAC9BzQ,KAA8B,GAC9ByU,YAA8B,GAC9B8C,mBAA8B,GAC9BvoI,mBAA8B,EAC9BC,oBAA8B,EAC9BuoI,oBAA8B,EAC9BC,yBAA8B,KAC9BC,2BAA8B,KAC9BC,aAA8B,KAC9B/yC,MAA8B,EAG9BgzC,WAA8B,MfssGlC/tI,IAAK,cACLsE,IAAK,We9uGW,MAAO,QfkvGvBtE,IAAK,oBACLsE,IAAK,WehvGL,GAAIqpH,IACA1nH,eAAe,EACfD,QAAe1F,KAAK0tI,UAAY,EAChClR,QAAex8H,KAAKw8H,SAAWx8H,KAAK2tI,WAexC,QAbI3tI,KAAKgE,IAAI,uBAA4D,oBAAnChE,KAAKgE,IAAI,yBAC3CqpH,EAAQzoH,gBAAiB,IAEzB5E,KAAKgE,IAAI,sBAA2D,mBAAnChE,KAAKgE,IAAI,yBAC1CqpH,EAAQxoH,mBAAoB,GAE5B7E,KAAKgE,IAAI,wBACTqpH,EAAQvoH,oBAAqB,GAE7B9E,KAAK4tI,eACLvgB,EAAQ/sH,OAAS,aAGd+sH,KfovGP3tH,IAAK,aACLsE,IAAK,We9tGL,MAA0C,uBAAnChE,KAAKgE,IAAI,yBfkuGhBtE,IAAK,cACLsE,IAAK,We/tGL,OAAQlE,EAAEE,KAAKgE,IAAI,+BAA+B3C,afmuGlD3B,IAAK,YACLsE,IAAK,WehuGL,OAAQlE,EAAEE,KAAKgE,IAAI,6BAA6B3C,afouGhD3B,IAAK,eACLsE,IAAK,WejuGL,MAAOhE,MAAK6tI,WAAa7tI,KAAKgE,IAAI,4BAA4B8pI,cf2vGlE9uI,EAAaguI,IACTttI,IAAK,wBACLqB,MAAO,SAA+BopI,Ge1uGK,GAAvB4D,GAAuB5D,EAAvB4D,eAAgBC,EAAO7D,EAAP6D,KAEhCC,GAA8BnuI,EAAEuB,QAAQ2sI,GAAQA,EAAKE,SAAWF,EAAKE,QAAQ9tI,gBAE7E+tI,EAAiCnuI,KAAKouI,6BAA6BL,EAEvE,IAAI/tI,KAAKquI,YAAa,CAClB,GAAIC,GAAgBtuI,KAAKgE,IAAI,6BACzBhE,MAAKuuI,WAAWjuI,SAChBguI,EAAchuI,OAASN,KAAKuuI,WAAWjuI,OAE3C,IAAIkuI,GAAU,GAAIzB,GAAA,WAA2BuB,GACzCG,EAAUD,EAAQE;AAQtB,GANMX,EAAelpI,oBACjB4pI,EAAO5pI,mBAAoB,GAK3BopI,EACA,MAAOjuI,MAAKktI,gBAAgByB,4BAA4BF,EAAQzuI,KAAK4uI,kBAIrE,IAAIC,GAA6BrvI,OAAOiB,UAAWT,KAAK4uI,kBAOxD,QALK9uI,EAAEquI,GAAgC9sI,WAAavB,EAAE2uI,EAAOntI,eAAeD,WACxE7B,OAAOiB,OAAOouI,GAA8BvtI,cAAe6sI,IAIxDnuI,KAAK8uI,+BAA+BL,EAAOntI,cAAe6sI,GAC3DnuI,KAAKktI,gBAAgByB,4BAA4BF,EAAQI,GACzD7uI,KAAKktI,gBAAgB6B,qBAK/B,GAAIC,GAA2BxvI,OAAOiB,UAAWT,KAAK4uI,kBAYtD,OAVMb,GAAelpI,oBACjBmqI,EAAyBnqI,mBAAoB,GAK7C/E,EAAEkuI,GAAM3sI,WACR7B,OAAOiB,OAAOuuI,GAA4B1tI,cAAe6sI,IAGtDnuI,KAAKktI,gBAAgB+B,oBAAoBjvI,KAAKsmI,GAAI0I,Mf2vG7DtvI,IAAK,+BACLqB,MAAO,Se9uGkBgtI,GACzB,GAAImB,GAAwBnB,GAAkBA,EAAe,uBAE7D,IAAIjuI,EAAEovI,GAAuB7tI,WAAa6tI,EAAsB5T,IAC5D,QAGJ,IAAI6T,KAOJ,OANArvI,GAAEovI,GAAuBjpI,KAAK,SAACmpI,EAAW1vI,GAClC0vI,GAAqB,QAAR1vI,GACbyvI,EAAgBhpI,KAAKzG,KAItByvI,KfivGPzvI,IAAK,iCACLqB,MAAO,We/uG8E,GAA1DsuI,GAA0DvuI,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,GAAAA,UAAA,MAA1BwuI,EAA0BxuI,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,GAAAA,UAAA,KACrF,IAAmC,IAA/BwuI,EAAoB7wI,OACpB,OAAO,CAGX,IAAM8wI,GAAkBF,EAA0BntI,IAAI,SAACmvH,GAAD,MAAYA,GAAOme,gBACnEC,EAAYH,EAAoBptI,IAAI,SAACmvH,GAAD,MAAYA,GAAOme,eAE7D,OAA2D,KAApD1vI,EAAEyvI,GAAiB7Q,WAAW+Q,GAAWhxI,Wf0vG7CuuI,Gej6GuCZ,SAASsD,Mfo6G3DnxI,GAAQ,Wep6GayuI,Ifs6GlB2C,0DAA0D,2EAA2EC,0BAA0B,sFAAsFC,oHAAoH,SAAS5xI,EAAQU,EAAOJ,GACpY,YAgBA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAhBhHS,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MgBl7GhiBgxI,EAAA7xI,EAAA,qDhBs7GI8xI,EAAwBvH,EAAuBsH,GgBr7GnDE,EAAA/xI,EAAA,+DhBy7GIgyI,EAAgCzH,EAAuBwH,GAMvD9H,EgB97GqBnhI,OAAlBmpI,EhB+7GchI,EgB/7GdgI,eAEcC,EhB+7GgB,WACjC,QAASA,KACLvxI,EAAgBoB,KAAMmwI,GAgB1B,MAbAnxI,GAAamxI,EAAgC,OACzCzwI,IAAK,QACLqB,MAAO,SgBp8GEqvI,EAAsBC,GAAkC,GAArBC,GAAqBxvI,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,IAAAA,UAAA,EACjE,OAAKovI,GAAeK,UAAU,aAAeH,EAAqBzC,YAAe2C,EACtE,GAAIL,GAAA,WAA2BI,GAG/B,GAAIN,GAAA,WAAwBM,OhB08GpCF,IAGX5xI,GAAQ,WgBp9Ga4xI,IhBs9GlBK,oDAAoD,+GAA+GC,8DAA8D,0HAA0HC,2GAA2G,SAASzyI,EAAQU,EAAOJ,GACje,YAYA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAhBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MiBj+GhiB6xI,EAAA1yI,EAAA,0BjBq+GI2yI,EAAyBpI,EAAuBmI,GiBn+G/BE,EjB6+GG,SAAUC,GAG9B,QAASD,KAGL,MAFAjyI,GAAgBoB,KAAM6wI,GAEflI,EAA2B3oI,MAAO6wI,EAAkB5H,WAAazpI,OAAOsqI,eAAe+G,IAAoBnwI,MAAMV,KAAMc,YAUlI,MAfA+nI,GAAUgI,EAAmBC,GAQ7B9xI,EAAa6xI,IACTnxI,IAAK,QACLsE,IAAK,WiBv/GK,MAAO4sI,GAAA,ejB4/GdC,GiB7/GoCzE,SAAS2E,WjBggHxDxyI,GAAQ,WiBhgHasyI,IjBkgHlBG,yBAAyB,+GAA+GC,qGAAqG,SAAShzI,EAAQU,EAAOJ,GACxQ,YAYA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAhBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MkB3gHhiB6xI,EAAA1yI,EAAA,0BlB+gHI2yI,EAAyBpI,EAAuBmI,GkB7gH/BO,ElBuhHH,SAAUjE,GAGxB,QAASiE,KAGL,MAFAtyI,GAAgBoB,KAAMkxI,GAEfvI,EAA2B3oI,MAAOkxI,EAAYjI,WAAazpI,OAAOsqI,eAAeoH,IAAcxwI,MAAMV,KAAMc,YAoFtH,MAzFA+nI,GAAUqI,EAAajE,GAQvBjuI,EAAakyI,IACTxxI,IAAK,gBAKLqB,MAAO,WkB5hHoB,GAAAowI,GAAAnxI,KAAjBoxI,EAAiBtwI,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,GAAAA,UAAA,GAAR,MAGnB,OAFAd,MAAKmoI,IAAMphI,OAAOohI,IAAIphI,OAAOqhI,OAAO5O,KAAK6X,MAAMrtI,KAAOotI,OAAAA,IAE/C,GAAIE,SAAQ,SAAC9f,EAASrwH,GACzBgwI,EAAKI,OACD9c,QAAS,IACT+c,QAAS,SAACxwI,EAAOqF,EAAUgnH,GAAlB,MAA8BmE,GAAQnrH,IAC/CorI,MAAO,SAACzwI,EAAOqF,EAAUgnH,GAAlB,MAA8BlsH,GAAOkF,WlByiHpD3G,IAAK,oBACLqB,MAAO,SkBriHO2wI,GACd,MAAO,IAAIJ,SAAQ,SAAC9f,EAASrwH,GACzB6iC,EAAE2tG,MACExJ,IAAKphI,OAAOohI,IAAIphI,OAAOqhI,OAAO5O,KAAKoY,UAAU5tI,KAAM0tI,WAAAA,IACnDG,SAAU,OACVpd,QAAS,MAEZqd,KAAK,SAACzrI,GAAD,MAAcmrH,GAAQnrH,KAC3B0rI,KAAK,SAACC,EAAOC,EAAYC,GAApB,MAAoC/wI,GAAO6wI,UlB2iHrDtyI,IAAK,sBACLqB,MAAO,SkBxiHSiE,GAChB,MAAO,IAAIssI,SAAQ,SAAC9f,EAASrwH,GACzB6iC,EAAE2tG,MACExJ,IAAKphI,OAAOohI,IAAIphI,OAAOqhI,OAAO5O,KAAK2Y,YAAYC,SAAW9L,GAAIthI,IAC9D6sI,SAAU,OACVpd,QAAS,MAEZqd,KAAK,SAACzrI,GAAD,MAAcmrH,GAAQ,GAAIof,GAAA,WAAqBvqI,MACpD0rI,KAAK,SAACC,EAAOC,EAAYC,GAApB,MAAoC/wI,GAAO6wI,UlB8iHrDtyI,IAAK,UACLqB,MAAO,SkB3iHHsxI,GACJ,MAAKryI,MAAKsyI,SAEgC,UAAlCD,GAAY,IAAI7C,cAClB1vI,EAAEE,KAAKuuI,WAAWgE,OAAOlW,WAAYmW,WAAW,IAChD1yI,EAAEE,KAAKuuI,WAAWgE,OAAOlW,WAAYxG,KAAMwc,IAJpB,QlBkjH7B3yI,IAAK,eACLqB,MAAO,WkB3iHP,MAAOf,MAAKsyI,UAAYtyI,KAAKuuI,WAAWqD,alB+iHxClyI,IAAK,cACLsE,IAAK,WkBrmHW,MAAO,YlBymHvBtE,IAAK,WACLsE,IAAK,WkBvmHL,OAAQlE,EAAEuB,QAAQrB,KAAKuuI,gBlB4mHpB2C,GkBjnH8B9E,SAASsD,MlBonHlDnxI,GAAQ,WkBpnHa2yI,IlBsnHlBF,yBAAyB,+GAA+GyB,kGAAkG,SAASx0I,EAAQU,EAAOJ,GACrQ,YA8DA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASuc,GAAmBlgB,GAAO,GAAI5xH,MAAMm2H,QAAQvE,GAAM,CAAE,IAAK,GAAI10H,GAAI,EAAG60I,EAAO/xI,MAAM4xH,EAAI/zH,QAASX,EAAI00H,EAAI/zH,OAAQX,IAAO60I,EAAK70I,GAAK00H,EAAI10H,EAAM,OAAO60I,GAAe,MAAO/xI,OAAMyxH,KAAKG,GAE1L,QAAS5zH,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GApEjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KmB3nHhiBb,GAAA,qBACA,IAAA20I,GAAA30I,EAAA,gDnBgoHI40I,EAAUrK,EAAuBoK,GmB9nHrCE,EAAA70I,EAAA,mDnBkoHI80I,EAA2BvK,EAAuBsK,GmBjoHtDE,EAAA/0I,EAAA,uCnBqoHIg1I,EAAgBzK,EAAuBwK,GmBpoH3CE,EAAAj1I,EAAA,mCnBwoHIk1I,EAAoB3K,EAAuB0K,GmBtoH/CE,EAAAn1I,EAAA,kCnB0oHIo1I,EAAsB7K,EAAuB4K,GmBxoHjDE,EAAAr1I,EAAA,iBnB4oHIs1I,EAAgB/K,EAAuB8K,GmB3oH3CE,EAAAv1I,EAAA,uBnB+oHIw1I,EAAsBjL,EAAuBgL,GmB9oHjD1D,EAAA7xI,EAAA,qDACA+xI,GnBipH4BxH,EAAuBsH,GmBjpHnD7xI,EAAA,gEACAy1I,GnBopHoClL,EAAuBwH,GmBppH3D/xI,EAAA,iCnBwpHI01I,EAA+BnL,EAAuBkL,GmBvpH1D1I,EAAA/sI,EAAA,8BnB2pHIgtI,EAAazC,EAAuBwC,GmBzpHxC4I,EAAA31I,EAAA,gCnB6pHI41I,EAAcrL,EAAuBoL,GmB5pHzCE,EAAA71I,EAAA,enBgqHI81I,EAAgBvL,EAAuBsL,GAYvC5L,EmBjsH+BnhI,OAA3BitI,EAAA9L,EAAA8L,OAAQC,EAAA/L,EAAA+L,SAAUjlB,EAAAkZ,EAAAlZ,KnBqsHtBklB,EmBpsHwCntI,OAAOotI,UAA3CC,EAAAF,EAAAE,gBAAiBC,EAAAH,EAAAG,eAsBJC,EAAA,SAAAjJ,GAKjB,QAAAiJ,GAAAnK,GAAmE,GAArDoK,GAAqDpK,EAArDoK,OAAQvG,EAA6C7D,EAA7C6D,KAAM1C,EAAuCnB,EAAvCmB,IAAK4E,EAAkC/F,EAAlC+F,eAAgBnC,EAAkB5D,EAAlB4D,cAAkBnvI,GAAAoB,KAAAs0I,EAAA,IAAAluI,GAAAuiI,EAAA3oI,MAAAs0I,EAAArL,WAAAzpI,OAAAsqI,eAAAwK,IAAA5zI,MAAAV,KACtDc,WAETsF,GAAKmuI,OAAuBA,EAC5BnuI,EAAK4nI,KAAuBA,EAC5B5nI,EAAKklI,IAAuBA,EAC5BllI,EAAK8pI,eAAuBA,EAC5B9pI,EAAK2nI,eAAuBA,EAC5B3nI,EAAKsnI,SAAuB,GAC5BtnI,EAAKouI,kBAAuB,EAE5BpuI,EAAKquI,YAAuB,GAAIlB,GAAA,WAChCntI,EAAKsuI,kBAAuB,GAAIjB,GAAA,WAChCrtI,EAAKmsI,SAELnsI,EAAKuuI,oBAILvuI,EAAKwuI,wBAA0B,KAC/BxuI,EAAKyuI,cAAe,CAEpB,IAAIC,GAA0C,MAA9B/tI,OAAOguI,SAASC,OAAO,GAAajuI,OAAOguI,SAASC,OAAO9iB,OAAO,GAAKnrH,OAAOguI,SAASC,OACnGC,EAAclB,EAAA,WAAYxc,MAAMud,GAEhCI,EAAoBD,EAAYC,iBAChCA,IAAqBA,EAAkBz2I,OAAS,IAChD2H,EAAKwuI,wBAA0BM,EAAkBrjB,MAAM,KAAK3vH,IAAI,SAACd,GAAD,MAASgB,UAAShB,EAAK,OAG3FgF,EAAKyuI,aAAe1W,QAAQ8W,EAAYJ,aAExC,IAAIM,GAA+BF,EAAYE,4BAC3CA,IAAgCA,EAA6B12I,OAAS,IACtE2H,EAAKgvI,mCAAqCD,EAA6BtjB,MAAM,KAAK3vH,IAAI,SAACy0H,GAAD,MAAOv0H,UAASu0H,EAAG,OAG7GvwH,EAAKivI,+BAAiClX,QAAQ8W,EAAYI,+BAE1D,IAAIC,GAAgCL,EAAYK,6BAvCe,OAwC3DA,KACAlvI,EAAKkvI,8BAAgCA,GAGzClvI,EAAKmvI,SA5C0DnvI,EnBurInE,MAzgBAyiI,GAAUyL,EAAUjJ,GAEpBrsI,EAAas1I,IACT50I,IAAK,4BAILqB,MAAO,WmBvrHmB,MAAOijC,GAAE,sDnBwvHvChlC,EAAas1I,IACT50I,IAAK,SACLqB,MAAO,WmBzsHF,GAAAowI,GAAAnxI,IACLA,MAAKgsI,IAAI5nE,QAETpkE,KAAKuyI,MAAMjsI,QAAQ,SAACkvI,GAAD,MAAUA,GAAKC,WAClCz1I,KAAKuyI,SAELvyI,KAAKy0I,YAAYiB,cAAc11I,KAAKguI,MAAQhuI,KAAKguI,KAAK1H,IAAM,QAAQqP,KAAK,WACrExE,EAAKoB,MAAQpB,EAAKyE,YAClBzE,EAAK0E,gBAAkB1E,EAAKoB,MAAM1xI,QAClCswI,EAAK2E,iBnBitHTp2I,IAAK,YACLqB,MAAO,WmB7sHP,GAAIg1I,GAAc/1I,KAAK61I,gBAAgBp3I,SAAWuB,KAAKuyI,MAAM9zI,MAE7DuB,MAAKg2I,YAAYh2I,KAAK0tI,SAAWqI,EAAc/1I,KAAKw0I,kBAAoB,GAEpEuB,GACA/1I,KAAKi2I,sBnBktHTv2I,IAAK,cACLqB,MAAO,SmB/sHCm1I,GAA4B,GAAAC,GAAAn2I,KAAlBo2I,EAAkBt1I,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,GAAAA,UAAA,GAAF,CAE9Bs1I,IAAiBA,EAAgBF,EAAW,GAI5Cl2I,KAAKq2I,kBAAkBr2I,KAAK61I,gBAAgBh1I,MAAM,EAAGq1I,IAErDl2I,KAAKs2I,WAAWF,EAAgB,GAC3BT,KAAK,SAACxD,GAQH,GANAgE,EAAKI,yBAAyBpE,GAI9BgE,EAAKK,0BAEDL,EAAK5D,MAAM6D,GAAe,CAC1B,GAAIpK,GAAMmK,EAAK5D,MAAM6D,GAAepK,IAEhCyK,EAAWzyG,EAAE,cACjBgoG,GAAI1J,MAAMmU,EAEV,IAAIC,GAAa,GAAIzC,GAAS0C,QAC1BC,QAASH,EACTI,MAAO,WACHH,EAAWI,UAEe,mBAAdC,WACRA,SAASC,cAAc,uBAAwBvxI,KAAM,aAGzD0wI,EAAKG,WAAWJ,GAAYE,EAAgB,IAAIT,KAAK,SAACsB,GAClDd,EAAKI,yBAAyBU,GAC9Bd,EAAKe,6BAQ7Bl3I,KAAKs2I,WAAWJ,GAAUP,KAAK,SAACxD,GAC5BgE,EAAKI,yBAAyBpE,GAC9BgE,EAAKe,yBnBstHbx3I,IAAK,aACLqB,MAAO,SmBltHAm1I,GAA+B,GAAAiB,GAAAn3I,KAArBo3I,EAAqBt2I,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,GAAAA,UAAA,MAElCyxI,EAAQvyI,KAAK61I,gBAAgB/kB,OAAO,EAAGolB,EAG3C,OAFAl2I,MAAKq2I,kBAAkB9D,GAEhB,GAAIjB,SAAQ,SAAC9f,GAChB2lB,EAAKE,UAAU9E,EAAO6E,GAAiBzB,KAAK,SAACpoB,GACrCA,EAAO+pB,OACPH,EAAKb,WAAW/oB,EAAO+pB,OAAQF,GAAiBzB,KAAK,SAACxD,GAClD3gB,EAAQ2gB,KAIZ3gB,EAAQ4lB,UnB2tHpB13I,IAAK,YACLqB,MAAO,SmBttHDwxI,EAAOJ,GAEb,GAAIoF,GAAehF,EAAMrwI,IAAI,SAACszI,GAAD,MAAUA,GAAKgC,QAE5C,OAAOlG,SAAQmG,OAAOF,GAAc5B,KAChC,SAAC1b,GACG,GAAMyd,GAAYzd,EAAQ5I,OAAO,SAAC9D,GAAD,MAAaA,GAAOoqB,WAAapqB,EAAOxsH,QACnEu2I,EAAYrd,EAAQ5I,OAAO,SAAC9D,GAAD,OAAaA,EAAOoqB,YAAcpqB,EAAOxsH,OAc1E,OAZA22I,GAAUx1I,IAAI,SAAC01I,GAAD,MAAazF,GAAYhsI,KAAKyxI,EAAQ72I,SAEhDu2I,EAAO74I,QAEP64I,EAAOhxI,QAAQ,SAACuxI,GACRA,GAAWA,EAAQ92I,OACnB+2I,QAAQrG,MAAMoG,EAAQ92I,UAMzBu2I,OAAQA,EAAO74I,anBguHhCiB,IAAK,oBACLqB,MAAO,SmB5tHOwxI,GACd,GAAIwF,GAAOlT,SAASmT,wBAEpBzF,GAAMjsI,QAAQ,SAACkvI,GACNA,EAAKyC,YACNF,EAAKG,YAAY1C,EAAK5xE,IACtB4xE,EAAKyC,WAAY,KAIzBj4I,KAAK4jE,GAAGs0E,YAAYH,MnB+tHpBr4I,IAAK,oBACLqB,MAAO,WmB7tHQ,GAAAo3I,GAAAn4I,IACf,IAAIA,KAAK61I,gBAAgBp3I,OAAS,EAAG,CACjC,GAAI25I,GAAYp0G,EAAA,6DAA+DgrF,EAAK,YAApE,aAA4FmG,GAAG,QAAS,WACpHgjB,EAAKrC,YACLsC,EAAU3C,UAGdz1I,MAAKgsI,IAAID,OAAOqM,GAGpB,GAAIp4I,KAAK20I,iBAAiBl2I,OAAS,EAAE,CACjC,GAAI45I,GAA6C,IAAtBr4I,KAAKuyI,MAAM9zI,MACtCuB,MAAKs4I,eAAet4I,KAAK20I,iBAAkB0D,GAEvCA,GACAr4I,KAAKgsI,IAAI5nE,QAAQ2nE,QAAO,EAAA8G,EAAA,eAIhC7yI,KAAK20I,uBnBkuHLj1I,IAAK,iBACLqB,MAAO,SmBhuHIu2I,EAAQiB,GACnB,GAAMC,GAAUD,EAAY,QAAU,UAClCE,KAF0BC,GAAA,EAAAC,GAAA,EAAAC,EAAAp4I,MAAA,KAG9B,IAAA,GAAAq4I,GAAAC,EAAoBxB,EAApBtf,OAAA+gB,cAAAL,GAAAG,EAAAC,EAAAjpB,QAAAiiB,MAAA4G,GAAA,EAA4B,CAAA,GAAnBb,GAAmBgB,EAAA93I,KACxB03I,GAAOtyI,MACHmgI,GAAMuR,EAAQvR,GACdnC,KAAQ0T,EAAQ1T,KAChB6U,WAAcnB,EAAQmB,WACtBC,OAASpB,EAAQoB,UARK,MAAAC,GAAAP,GAAA,EAAAC,EAAAM,EAAA,QAAA,KAAAR,GAAAI,EAAA,WAAAA,EAAA,YAAA,QAAA,GAAAH,EAAA,KAAAC,IAW9B,GAAIO,GAAUr5I,EAAEy9H,QAAQkb,EAAQ,SAAChH,GAAD,MAAWA,GAAMtN,KAAO,IAAMsN,EAAMuH,YACpEhF,GAAOoF,IAAI,QAAYZ,EAAvB,wBAAuDxqB,QAAS,uBAAwByqB,OAAQA,EAAQU,OAAOA,EAAQ1zI,KAAK,YnB2vH5H/F,IAAK,YACLqB,MAAO,WmBzvHC,GAAAs4I,GAAAr5I,KACJuyI,KAEAX,EAAY5xI,KAAKy0I,YAAY6E,eAE7BC,EAAe3H,GAAaA,EAAUnzI,OAAS,IAAMsI,OAAOotI,UAAUqF,SACtED,KACAv5I,KAAKoqI,SAAW,KAEhBpqI,KAAKy5I,aAAe,GAAIxO,GAAA,YAAWK,IAAKtrI,KAAKsrI,IAAKC,YAAavrI,KAAKguI,OACpEhuI,KAAKy5I,aAAazN,IAAID,OAAO/rI,KAAK05I,6BAElCnH,EAAMpsI,KAAKnG,KAAKy5I,cAEhBz5I,KAAKy5I,aAAajC,KAAO,WAAA,MAAM6B,GAAK5E,YAAYkF,kBAAkB/H,EAAU,GAAGtL,IAAIqP,KAC/E,SAACvL,GAGG,MAFAiP,GAAKjP,UAAYtqI,EAAEsqI,GAAU/oI,YAAcvB,EAAEsqI,GAAU/oI,QAAQ+oI,EAASG,QAAUH,EAE9EiP,EAAKjP,WAAaiP,EAAKxE,cACvBwE,EAAKI,aAAarP,SAAWiP,EAAKjP,SAClCiP,EAAKI,aAAaz4I,MAAM4oI,IAAIyP,EAAKjP,SAASG,MAAM,IAChD8O,EAAKI,aAAaz4I,MAAM44I,oBACxBP,EAAKI,aAAajS,SAEX6R,EAAKI,eAGZJ,EAAKI,aAAahE,SAClB4D,EAAKQ,WAAWR,EAAKI,cACrBJ,EAAKI,aAAe,KAFpBJ,SAKR,SAAC5H,GAWG,KAVAA,GAAMnL,GAAcsL,EAAU,GAAGtL,GACjCmL,EAAMuH,WAAgBvH,EAAMuH,WAAavH,EAAMuH,WAAa,gBAC5DvH,EAAMtN,KAAc,uBAEpBkV,EAAKI,aAAahE,SAClB4D,EAAKQ,WAAWR,EAAKI,cAErBJ,EAAK1E,iBAAiBxuI,KAAKsrI,GAE3B4H,EAAKI,aAAe,KACdhI,KAKlB,IAAI+D,GAAOx1I,KAAKy0I,YAAYqF,QAAQ95I,KAAKu0I,OA8EzC,OA5EIv0I,MAAK+5I,6BACLvE,EAAKwE,sBAAwBxE,EAAKwE,sBAAsBn5I,MAAM,EAAG,KAGrEb,KAAK00I,kBAAkBuF,MAAMzE,EAAKwE,uBAElCh6I,KAAK00I,kBAAkBzuI,KAAK,SAACmqI,EAAsBjjB,GAC/C,GAAI+sB,IAAUX,GAA0B,IAAVpsB,CAG9BijB,GAAqBjD,gBAAgB8M,QAC/BrZ,aAAa,IACbA,aAAa,IACbA,aAAa,IACbA,aAAa,IACbA,aAAa,IACbA,aAAa,IAGnB,IAAIuZ,IACAn5I,MAAkBovI,EAClB9E,IAAkB+N,EAAK/N,IACvB4E,eAAkBmJ,EAAKnJ,eACvBlC,KAAkBqL,EAAKrL,KACvBkM,OAAAA,EAGAb,GAAK/D,gCACL6E,EAASC,mBAAqBf,EAAK/D,8BAGvC,IAAI+E,GAAuBhB,EAAKhE,gCAAmCgE,EAAKjE,oCAAsCiE,EAAKjE,mCAAmC3Z,SAAStO,EAC3JktB,KACAjK,EAAqB5T,SAAU,EAGnC,IAAI8d,GAA0B3G,EAAA,WAA2B4G,MAAMnK,EAAsB+J,EAAUE,EAC/FjK,GAAqB1C,SAAW4M,EAAwBE,kBAGpDN,GACAI,EAAwBtO,IAAID,OAAOsN,EAAKK,6BAG5CnH,EAAMpsI,KAAKm0I,EAAwB9S,UAEnC8S,EAAwB9C,KAAO,WAAA,MAAMpH,GAAqBqK,uBAAwB1M,eAAgBsL,EAAKtL,eAAgBC,KAAMqL,EAAKrL,OAAO2H,KACrI,WACI,GAAI+E,GAAkBrB,EAAKzE,yBAA2ByE,EAAKzE,wBAAwBnZ,SAAStO,EAC5F,IAAIijB,EAAqBjD,gBAAgB1uI,SAAWi8I,EAIhD,MAHAJ,GAAwB9S,SACxB8S,EAAwBK,uBAAsB,GAEvCvK,CAKP,MAFAkK,GAAwB7E,SACxB4D,EAAKQ,WAAWS,GACV,GAAIl8I,OAAM,qCAGxB,SAACqzI,GAUG,KATA6I,GAAwB7E,SACxB4D,EAAKQ,WAAWS,GAEhB7I,EAAMnL,GAAa8J,EAAqB9J,GACxCmL,EAAMuH,WAAevH,EAAMuH,WAAavH,EAAMuH,WAAa,gBAC3DvH,EAAMtN,KAAa,yBAEnBkV,EAAK1E,iBAAiBxuI,KAAKsrI,GAErBA,OAKXc,KnBmvHP7yI,IAAK,aACLqB,MAAO,SmBjvHAy0I,GACPx1I,KAAKuyI,MAAQvyI,KAAKuyI,MAAMlhB,OAAO,SAACsF,GAAD,MAAOA,KAAM6e,KAExCA,YAAgBvK,GAAA,YAAauK,EAAK0E,QAAUl6I,KAAKuyI,MAAM,MACvDvyI,KAAKuyI,MAAM,GAAGqI,WACd56I,KAAKi2I,uBnBuvHTv2I,IAAK,2BACLqB,MAAO,SmBpvHcwxI,GACrB,GAAIxrI,OAAOotI,UAAUC,iBAAmBrtI,OAAOotI,UAAUE,gBAAkB9B,GAASA,EAAM9zI,OAAS,EAAG,CAClG,GAAIo8I,KAEJtI,GAAMjsI,QAAQ,SAACkvI,GACPA,YAAgBvK,GAAA,WAChB4P,EAAO10I,KAAKqvI,EAAKx0I,OAGjB65I,EAAO10I,KAAPzF,MAAAm6I,EAAAnI,EAAe8C,EAAKrI,gBAAgBnlD,UAI5C,IAAI8yD,GAAoB,GAAIzH,GAAA,UAE5ByH,GAAkBC,iBAAiBF,GAAQlF,KAAK,WAC5CmF,EAAkBE,2BAA2Bl7I,EAAE+6I,UnBwvHvDn7I,IAAK,mBACLqB,MAAO,WmBpvHQ,GAAAk6I,GAAAj7I,IAEXA,MAAKk7I,WACLl7I,KAAKk7I,UAAUzF,QAGnB,IAAIsC,GAAOlT,SAASmT,wBACpB,IAAIh4I,KAAKkwI,eAAeK,UAAU,cAAgBvwI,KAAKkwI,eAAeK,UAAU,kBAAoBvwI,KAAKguI,KAAM,CAC3G,GAAImN,GAAQn3G,GAAE,EAAA6vG,EAAA,YAAkB9sI,OAAOotI,UAAUiH,kBAEP,WAArCp7I,KAAKu0I,QAAU,IAAI/E,gBACpB2L,EAAQn3G,EAAE,kCAAkC+nG,OAAOoP,IAEvDpD,EAAKG,YAAYiD,EAAM,IACvBn7I,KAAKk7I,UAAYC,EAEjBn3G,EAAEj9B,QAAQouH,GAAG,gBAAiB,WACtB8lB,EAAKI,aAAaJ,EAAKC,UAAUtgB,KAAK,wBACtCqgB,EAAKC,UAAUtgB,KAAK,wBAAwB0gB,SAAS,qBAGrDL,EAAKC,UAAUtgB,KAAK,wBAAwB2gB,YAAY,uBAKpEv7I,KAAKuyI,MAAM,GAAGvG,IAAI1J,MAAMyV,MnBuvHxBr4I,IAAK,eACLqB,MAAO,SmBrvHE61I,GACT,GAAI4E,GAAa5E,EAAQtP,SAASrtB,IAC9BwhC,EAAgBD,EAAa5E,EAAQ8E,cAErCC,EAAc33G,EAAEj9B,QAAQ60I,YACxBC,EAAiBF,EAAc33G,EAAEj9B,QAAQ+0I,QAE7C,OAAoB,KAAhBH,IAIGF,EAAgBE,GAAeH,EAAaK,MnBwvHnDn8I,IAAK,0BACLqB,MAAO,WmBrvHP,GAAIqzI,GAAmBC,GAAkBpB,EAAA,WAAYjvI,IAAI,UAAW,CAChE,GAAI62I,KACA76I,MAAKy5I,cACLoB,EAAO10I,KAAKnG,KAAKy5I,aAAaz4I,OAElChB,KAAK00I,kBAAkBzuI,KAAK,SAACmqI,GACzByK,EAAO10I,KAAPzF,MAAAm6I,EAAAnI,EAAetC,EAAqBjD,gBAAgBnlD,UAExD,IAAM+zD,GAAkB,GAAIhJ,GAAA,WAAuB,GAAII,GAAA,WAAgB0H,GAAS76I,KAAKsrI,IACrFyQ,GAAgBC,gBAChBj1I,OAAOg1I,gBAAkBA,MnB0vH7Br8I,IAAK,6BACLsE,IAAK,WmBrvHL,GAAIi4I,GAAaC,WAAWnnB,UACxBonB,EAAqC37I,SAA7BmpI,QAAQ3lI,IAAI,YACxB,IAAIm4I,GAASF,EAAWG,KAAOH,EAAWI,OAAOC,UAAW,CACxD,GAAIC,GAAeN,EAAWI,OAAOC,UAAUzqB,MAAM,IACrD,IAAI0qB,GAAgBA,EAAa99I,OAAS,EAAG,CACzC,GAAI+9I,GAAep6I,SAASm6I,EAAa,GAAI,GAC7C,IAAIC,GAAgBA,EAAe,GAC/B,OAAO,GAInB,OAAO,MnB2vHJlI,GmB5rI2BlI,SAASC,KnB+rI/C9tI,GAAQ,WmB/rIa+1I,InBksIlBmI,sCAAsC,kFAAkFC,+CAA+C,4FAA4FC,iCAAiC,4EAA4EC,qBAAqB,gEAAgEC,kDAAkD,8FAA8FC,6BAA6B,wFAAwFtM,oDAAoD,+GAA+GC,8DAA8D,wHAAwHsM,+BAA+B,yFAAyFC,kCAAkC,6FAA6FC,+BAA+B,mHAAmHC,sBAAsB,0GAA0GC,gBAAgB,oGAAoGC,YAAc,qEAAqEC,0HAA0H,SAASp/I,EAAQU,EAAOJ,GACx4D,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,WoBhuIO,SAAA4rI,GAAA,GAAGtU,GAAHsU,EAAGtU,KAAMmY,EAAT7D,EAAS6D,KAAMsP,EAAfnT,EAAemT,SAAf,OAAA,wEAEkBtP,GAAF,MAAgBA,EAAKpC,WAFrC,4NAOgB0R,EAPhB,4CAOqEtP,GAAF,MAAgBA,EAAKpC,WAPxF,+BAQW/V,EARX,2JAYYynB,EAZZ,6BAYmDtuB,KAAK,yBAA2BuuB,eAAgB1nB,IAZnG,sFAaO7G,KAAK,UAbZ,yLpBuuITwuB,gHAAgH,SAASv/I,EAAQU,EAAOJ,GAC9I,YAkBA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAtBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI08I,GAAO,QAASz5I,GAAI6oH,EAAQuM,EAAUskB,GAA2B,OAAX7wB,IAAiBA,EAAS4a,SAAS5nI,UAAW,IAAI89I,GAAOn+I,OAAOo+I,yBAAyB/wB,EAAQuM,EAAW,IAAa54H,SAATm9I,EAAoB,CAAE,GAAIE,GAASr+I,OAAOsqI,eAAejd,EAAS,OAAe,QAAXgxB,EAAmB,OAAkC75I,EAAI65I,EAAQzkB,EAAUskB,GAAoB,GAAI,SAAWC,GAAQ,MAAOA,GAAK58I,KAAgB,IAAI+8I,GAASH,EAAK35I,GAAK,IAAexD,SAAXs9I,EAA4C,MAAOA,GAAOt/I,KAAKk/I,IAExd1+I,EAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MqBhvIhiBi/I,EAAA9/I,EAAA,mCrBovII+/I,EAAwBxV,EAAuBuV,GqBnvInDE,EAAAhgJ,EAAA,0CrBuvIIigJ,EAAyB1V,EAAuByV,GqBpvI/BE,ErB8vIK,SAAU9S,GqBluIhC,QAAA8S,GAAAhU,GAA2C,GAA7BmB,GAA6BnB,EAA7BmB,IAAK0C,EAAwB7D,EAAxB6D,KAAwBoQ,EAAAjU,EAAlB+P,OAAAA,EAAkB15I,SAAA49I,GAAAA,CAAAx/I,GAAAoB,KAAAm+I,EAAA,IAAA/3I,GAAAuiI,EAAA3oI,MAAAm+I,EAAAlV,WAAAzpI,OAAAsqI,eAAAqU,IAAAz9I,MAAAV,KAC9Bc,WAD8B,OAAAsF,GA1B3C8gI,SAAWgX,EAAA,WA6BP93I,EAAKklI,IAAaA,EAClBllI,EAAK4nI,KAAaA,EAClB5nI,EAAKyyH,WAAazyH,EAAKpF,MAAMmsI,gBAC7B/mI,EAAK8zI,OAAaA,EAElB9zI,EAAKohI,SARkCphI,ErB21I3C,MAxHAyiI,GAAUsV,EAAqB9S,GAE/BrsI,EAAam/I,IACTz+I,IAAK,iBACLqB,MAAO,SqB/vII83H,GAEX,GAAI4Q,KAiBJ,OAfIzpI,MAAKk6I,OACLzQ,EAAQtjI,KAAR,oBAAiC0yH,EAAWp6H,QAG5CgrI,EAAQtjI,KAAR,sBAGA0yH,EAAWp6H,QAAU,GACrBgrI,EAAQtjI,KAAR,oBAAiC0yH,EAAWp6H,QAG5Co6H,EAAWp6H,QAAU,GACrBgrI,EAAQtjI,KAAR,2CAIAk4I,QAAA,kBAA0B5U,EAAQ3X,KAAK,UrByxI/C9yH,EAAam/I,IACTz+I,IAAK,SACLqB,MAAO,WqBlwIP,GAAIu9I,GAAQt6G,EAAEhkC,KAAKknI,SAASpnI,EAAEmB,UAAWjB,KAAKgB,MAAMutI,YAAcP,KAAMhuI,KAAKguI,KAAMsP,UAAWt9I,KAAKs9I,aA6BnG,OA3BAt9I,MAAKu+I,qBAAuBv+I,KAAKu+I,oBAAoB9I,SAErDz1I,KAAKu+I,oBAAsB,GAAIP,GAAA,YAC3Bp6E,GAAc06E,EAAM1jB,KAAK,mBACzB0Q,IAActrI,KAAKsrI,IACnBiD,WAAcvuI,KAAKw+I,eAAex+I,KAAK64H,YACvCA,WAAc74H,KAAK64H,WACnB4lB,aAAgBC,OAAQ,IAAKC,OAAQ,IAAKC,QAAS,KACnDC,SAAc7+I,KAAKk6I,OACnBvhB,SACIyX,qBAA0BpwI,KAAKgB,MAC/BgtI,KAA0BhuI,KAAKguI,QAKvCsQ,EAAM1jB,KAAK,SAAS30H,KAAK,SAACnI,EAAG8lE,GACrB9lE,EAAI,GACJkmC,EAAE4/B,GAAI03E,SAAS,wBAIvBt7I,KAAKgsI,IAAI5nE,QAAQ2nE,OAAOuS,GACrBt+I,KAAKk6I,QACJl6I,KAAK46I,WAGF56I,QrBswIPN,IAAK,WACLqB,MAAO,WqBnwIPf,KAAKk6I,QAAS,EACdl6I,KAAKgsI,IAAIpR,KAAK,yBAAyB0gB,SAAS,QAChDt7I,KAAKgsI,IAAIpR,KAAK,uBAAuB6a,QACrC,IAAInL,GAActqI,KAAKgB,MAAMutI,WAAWjE,WACpCA,IACAtqI,KAAKgsI,IAAIpR,KAAK,oBAAoB0H,MAAlC,yCAAiFgI,EAAjF,WrBwwIJ5qI,IAAK,SACLqB,MAAO,WqBpwIPf,KAAKu+I,qBAAuBv+I,KAAKu+I,oBAAoB9I,SACrDgI,EAAAU,EAAAt+I,UAAAopI,WAAAzpI,OAAAsqI,eAAAqU,EAAAt+I,WAAA,SAAAG,MAAAxB,KAAAwB,SrBwwIAN,IAAK,wBACLqB,MAAO,SqBtwIW+9I,GAClB,GAAI16I,GAAQpE,KAAKgsI,IAAIpR,KAAK,mBAC1BkkB,GAAY16I,EAAMm3I,YAAY,aAAen3I,EAAMk3I,SAAS,gBrBywI5D57I,IAAK,YACLsE,IAAK,WqBp0IL,GAAMgB,GAAgBhF,KAAKgB,MAAMgD,IAAI,KACrC,OAAOgB,GAAe+B,OAAOohI,IAAIphI,OAAOqhI,OAAO2W,gBAAiB/5I,aAAAA,IAAiB+B,OAAOohI,IAAIphI,OAAOqhI,OAAO4W,yBrBw0I1Gt/I,IAAK,oBACLsE,IAAK,WqBr0IL,MAAO,OrB00IJm6I,GqBv3IsC/R,SAASC,KrB03I1D9tI,GAAQ,WqB13Ia4/I,IrB43IlBc,kCAAkC,yFAAyFC,yCAAyC,2HAA2HC,8HAA8H,SAASlhJ,EAAQU,EAAOJ,GACxb,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,WsBv4IO,SAAA4rI,GAAA,GAAEiV,GAAFjV,EAAEiV,mBAAoBC,EAAtBlV,EAAsBkV,gBAAiBC,EAAvCnV,EAAuCmV,sBAAuBt6I,EAA9DmlI,EAA8DnlI,aAAcu6I,EAA5EpV,EAA4EoV,WAAYC,EAAxFrV,EAAwFqV,sBAAuBC,EAA/GtV,EAA+GsV,gBAAiBvF,EAAhI/P,EAAgI+P,OAAQwF,EAAxIvV,EAAwIuV,mBAAoBC,EAA5JxV,EAA4JwV,iBAA5J,OAAA,wEAEWzF,EAAS,OAAS,IAF7B,mEAG+CsF,EAH/C,UAG8EC,EAH9E,yIAKiEz6I,EALjE,KAKkFq6I,EALlF,uDAM4BC,EAN5B,kFAO0Dt6I,EAP1D,KAO2E+B,OAAOogI,KAAK,UAPvF,4GAUmBiY,EAVnB,kIAaWM,EAAA,iDAC+CC,EAD/C,mCAEIJ,EAAWr9I,IAAI,SAAC8sH,GAAD,MAAA,4CAAsDA,EAAtD,UAAmE8C,KAAK,IAF3F,kCAAA,wDAKIytB,EAAWr9I,IAAI,SAAC09I,EAAWzyB,GAAZ,MAAA,+CACFA,EAAQ,GADN,uCAEXyyB,EAFW,yCAGR9tB,KAAK,IARhB,oCAbX,8IA2B4C9sH,EA3B5C,KA2B6D+B,OAAOogI,KAAK,UA3BzE,sDtBy5IT0Y,yHAAyH,SAAS5hJ,EAAQU,EAAOJ,GACvJ,YA0BA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GA9BjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MAE5hB2+I,EAAO,QAASz5I,GAAI6oH,EAAQuM,EAAUskB,GAA2B,OAAX7wB,IAAiBA,EAAS4a,SAAS5nI,UAAW,IAAI89I,GAAOn+I,OAAOo+I,yBAAyB/wB,EAAQuM,EAAW,IAAa54H,SAATm9I,EAAoB,CAAE,GAAIE,GAASr+I,OAAOsqI,eAAejd,EAAS,OAAe,QAAXgxB,EAAmB,OAAkC75I,EAAI65I,EAAQzkB,EAAUskB,GAAoB,GAAI,SAAWC,GAAQ,MAAOA,GAAK58I,KAAgB,IAAI+8I,GAASH,EAAK35I,GAAK,IAAexD,SAAXs9I,EAA4C,MAAOA,GAAOt/I,KAAKk/I,IuBl6I5d1N,EAAA/xI,EAAA,sCvBs6IIgyI,EAAgCzH,EAAuBwH,GuBr6I3D8P,EAAA7hJ,EAAA,kBvBy6II8hJ,EAAUvX,EAAuBsX,GuBx6IrCE,EAAA/hJ,EAAA,sCvB46IIgiJ,EAAczX,EAAuBwX,GuB36IzCE,EAAAjiJ,EAAA,gCvB+6IIkiJ,EAAiB3X,EAAuB0X,GAUxChY,EuBx7IgBnhI,OAAbotI,EvBy7ISjM,EuBz7ITiM,UAGciM,EvBw7IY,SAAU/U,GuBr7IvC,QAAA+U,GAAAjW,GAAsE,GAAxDmB,GAAwDnB,EAAxDmB,IAAK0C,EAAmD7D,EAAnD6D,KAAmDoQ,EAAAjU,EAA7C+P,OAAAA,EAA6C15I,SAAA49I,GAAAA,EAAAiC,EAAAlW,EAA7BiQ,mBAAAA,EAA6B55I,SAAA6/I,EAAR,KAAQA,CAAAzhJ,GAAAoB,KAAAogJ,EAAA,IAAAh6I,GAAAuiI,EAAA3oI,MAAAogJ,EAAAnX,WAAAzpI,OAAAsqI,eAAAsW,IAAA1/I,MAAAV,KACzDc,WADyD,OAAAsF,GADtE8gI,SAAW+I,EAAA,WAIP7pI,EAAKk6I,UACLl6I,EAAKklI,IAAcA,EACnBllI,EAAK4nI,KAAcA,EACnB5nI,EAAK8zI,OAAcA,EACnB9zI,EAAKm6I,iBAAmBx5I,OAAOotI,UAAUqM,aACzCp6I,EAAKg0I,mBAAqBA,EAE1Bh0I,EAAKq6I,yBAA2B,IAChCr6I,EAAKs6I,6BAA+B,IACpCt6I,EAAKu6I,gCAAkC,EAEvCv6I,EAAKw6I,qBAAuB,IAC5Bx6I,EAAKy6I,sBAAwB,IAC7Bz6I,EAAK06I,qBAAuB,KAC5B16I,EAAK26I,sBAAwB,oEAjBqC36I,EvBsrJtE,MAhQAyiI,GAAUuX,EAA4B/U,GAmCtCrsI,EAAaohJ,IACT1gJ,IAAK,SACLqB,MAAO,WuBt8IPf,KAAKgsI,IAAI5nE,OACT,IAAI48E,GAAShhJ,KAAKihJ,sBAEdC,EAAWlhJ,KAAKmhJ,aAqBpB,OApBAnhJ,MAAKgsI,IAAI5nE,QAAQ2nE,OACb/nG,EAAEhkC,KAAKknI,UACHkY,mBAAoB8B,EAAA,SACpB7B,gBAAiBr/I,KAAKgB,MAAMgD,IAAI,QAChCs7I,sBAAuBt/I,KAAKgB,MAAMgD,IAAI,eACtCgB,aAAchF,KAAKgB,MAAMgD,IAAI,MAC7Bu7I,WAAYv/I,KAAKohJ,gBACjB5B,sBAAuBwB,EAAOK,WAC9B5B,gBAAiBuB,EAAOM,WACxBpH,OAAQl6I,KAAKk6I,OACbwF,mBAAoB1/I,KAAK0/I,mBACzBC,kBAAmBuB,EAASK,sBAGhCvhJ,KAAKgsI,IAAIpR,KAAK,qBAAqBzF,GAAG,YAAa,SAACqsB,GAChDA,EAAIC,cAAcC,MAAMC,MAAQX,EAAOY,kBACxCzsB,GAAG,WAAY,SAACqsB,GACfA,EAAIC,cAAcC,MAAMC,MAAQX,EAAOM,aAGxCthJ,QvBy8IPN,IAAK,cACLqB,MAAO,WuBx7IP,GAAM8gJ,IACFxD,QAAO,aACPyD,UAAW,GACXC,kBAAmB,GACnBC,iBAAkB,IAClBT,kBAAmB,GACnBU,oBAAqB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAGjOC,GACF7D,QAAO,QACPyD,UAAW,GACXC,kBAAmB,GACnBC,iBAAkB,GAClBT,kBAAmB,EACnBU,oBAAqB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAG9FE,GACF9D,QAAO,SACPyD,UAAW,GACXC,kBAAmB,GACnBC,iBAAkB,GAClBT,kBAAmB,EACnBU,oBAAqB,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAGnDG,GACF/D,QAAO,QACPyD,UAAW,GACXC,kBAAmB,GACnBC,iBAAkB,GAClBT,kBAAmB,EACnBU,oBAAqB,EAAE,GAAG,GAAG,KAI7BI,EAAiBn/I,KAAKW,IAAIkD,OAAOu7I,OAAOC,WAAYx7I,OAAOu7I,OAAOE,aAClEC,EAAiBv/I,KAAKY,IAAIiD,OAAOu7I,OAAOC,WAAYx7I,OAAOu7I,OAAOE,aAElEE,EAAyBL,EAAiBriJ,KAAKygJ,yBAC7C4B,EAAiBriJ,KAAK2gJ,gCACtB0B,EAAiBriJ,KAAK0gJ,6BAExBiC,EAAwBF,EAAiBziJ,KAAKygJ,yBAC5CgC,EAAiBziJ,KAAK2gJ,gCACtB8B,EAAiBziJ,KAAK0gJ,6BAExBkC,EAAoB1/I,KAAKW,IAAI6+I,EAAuBC,EAExD,OAAIC,IAAqB5iJ,KAAK4gJ,qBACnBwB,EACAQ,GAAqB5iJ,KAAK6gJ,sBAC1BsB,EACAS,GAAqB5iJ,KAAK8gJ,qBAC1BoB,EAEAL,KvB07IXniJ,IAAK,sBACLqB,MAAO,WuBr7IP,GAAI8hJ,GAAA,MAEJ,IAAI7iJ,KAAKugJ,iBACLsC,EAAkB1C,EAAA,WAAa2C,qBAC5B,CAGH,GAAIC,GAAmB/iJ,KAAKgB,MAAMmsI,gBAAgBtP,OAC9C92H,QAAOi8I,WAAahjJ,KAAKygJ,0BAA4BzgJ,KAAKgB,MAAMmsI,gBAAgB1uI,OAAS,IACzFskJ,EAAmB/iJ,KAAKgB,MAAMmsI,gBAAgB8V,GAAG,GAGrD,IAAIC,GAAQH,EAAiBI,SAAS,IACtCN,GAAkB,UAEdA,EADA7iJ,KAAKk6I,QAAU/F,EAAU6M,OAAOoC,QACdjP,EAAU6M,OAAOoC,SAE7BL,EAAiBM,eAAiBH,GAASA,EAAMI,aACrCJ,EAAMI,aAAa/gJ,IAEnB,UAI1B,GAAIghJ,GAAkBpD,EAAA,WAAaqD,oBAAoBX,EAEvD,QACIxB,WAAYwB,EACZvB,WAAYiC,EACZ3B,gBAAiBzB,EAAA,WAAasD,cAAcZ,EAAiB,QvB87IjEnjJ,IAAK,gBACLqB,MAAO,WuBx7IPf,KAAK0jJ,kBAML,KALA,GAAIxC,GAAWlhJ,KAAKmhJ,cAEhBwC,EAAe3jJ,KAAK0/I,mBAA0CwB,EAASc,iBAA9Bd,EAASY,UAElD7nB,KACGA,EAAQx7H,OAASklJ,GACpB,IAAK,GAAI7lJ,GAAI,EAAGA,EAAIkC,KAAK4jJ,aAAanlJ,QAAWw7H,EAAQx7H,OAASklJ,GACzD3jJ,KAAK0/I,oBAAuBwB,EAASe,mBAAmBxmB,SAASxB,EAAQx7H,QAM1Ew7H,EAAQ9zH,KAAKnG,KAAK+gJ,wBALlB9mB,EAAQ9zH,KAAKnG,KAAK4jJ,aAAa9lJ,MAC7BA,EAQd,OAAOm8H,MvB47IPv6H,IAAK,mBACLqB,MAAO,WuB17IQ,GAAAowI,GAAAnxI,IACfA,MAAKsgJ,OAAOh6I,QAAQ,SAACkvI,GAAD,MAAUA,GAAKC,WACnCz1I,KAAKsgJ,UACLtgJ,KAAK4jJ,gBACL5jJ,KAAKgB,MAAMmsI,gBAAgBlnI,KAAK,SAAC7B,GAE7B,GAAIA,EAAMi/I,cACNlS,EAAKyS,aAAaz9I,KAAKgrI,EAAK4P,2BAE3B,CACD,GAAImC,GAAQ,GAAInD,GAAA,YACZ/+I,MAAOoD,EACPq6I,aAAcC,OAAQ,IAAKC,OAAQ,IAAKC,QAAS,KACjDC,SAAU1N,EAAK+I,QAEnBgJ,GAAM1b,QAGN,IAAIqc,GAAY,GAAI5D,GAAA,YAAWj/I,MAAOoD,GAEtC+sI,GAAKyS,aAAaz9I,KAAQ+8I,EAAMt/E,GAAGkgF,UAAnC,gCAA4ED,EAAUjgF,GAAGkgF,UAAzF,SAEA3S,EAAKmP,OAAOn6I,KAAK+8I,GACjB/R,EAAKmP,OAAOn6I,KAAK09I,SvBk8IzBnkJ,IAAK,SACLqB,MAAO,WuB77IPf,KAAKsgJ,OAAOh6I,QAAQ,SAACqwH,GAAD,MAAOA,GAAE8e,WAC7BgI,EAAA2C,EAAAvgJ,UAAAopI,WAAAzpI,OAAAsqI,eAAAsW,EAAAvgJ,WAAA,SAAAG,MAAAxB,KAAAwB,SvBm8IAN,IAAK,WACLqB,MAAO,WuBh8IPf,KAAKk6I,QAAS,EACdl6I,KAAKgsI,IAAIpR,KAAK,YAAY0gB,SAAS,OACnC,IAAI0F,GAAShhJ,KAAKihJ,qBAClBjhJ,MAAKgsI,IAAIpR,KAAK,mBAAmBmpB,KAAK,QAAtC,oBAAmE/C,EAAOK,WAA1E,UAA8FL,EAAOM,evBo8IrG5hJ,IAAK,wBACLqB,MAAO,SuBl8IW+9I,GAClB,GAAI16I,GAAQpE,KAAKgsI,IAAIpR,KAAK,kBAC1BkkB,GAAY16I,EAAMm3I,YAAY,aAAen3I,EAAMk3I,SAAS,gBvBq8I5D57I,IAAK;AACLsE,IAAK,WuBtnJL,GAAIhE,KAAKo6I,mBACL,MAAOp6I,MAAKo6I,kBAGhB,IAAI8G,GAAWlhJ,KAAKmhJ,aACpB,OAAOnhJ,MAAK0/I,mBAAqBwB,EAASa,kBAAoBb,EAASY,avB0nJvEpiJ,IAAK,qBACLsE,IAAK,WuBvnJL,MAAO+C,QAAOi9I,YAAcj9I,OAAOi9I,UAAUC,YvB4nJ1C7D,GuBzrJ6ChU,SAASC,KvB4rJjE9tI,GAAQ,WuB5rJa6hJ,IvB8rJlB8D,+BAA+B,gDAAgDC,iBAAiB,2EAA2EC,qCAAqC,iGAAiGC,qCAAqC,+HAA+HC,mFAAmF,SAASrmJ,EAAQU,EAAOJ,GACnkB,YAYA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAZhHS,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MwB5sJhiBg1I,EAAA71I,EAAA,exBgtJI81I,EAAgBvL,EAAuBsL,GwB9sJtByQ,ExBotJH,WACd,QAASA,KACL3lJ,EAAgBoB,KAAMukJ,GA+D1B,MA5DAvlJ,GAAaulJ,EAAa,OACtB7kJ,IAAK,QACLqB,MAAO,WwBxtJP,GAAIyjJ,GAAazQ,EAAA,WAAYxc,MAAMwd,SAAS0P,KAAKvyB,OAAO,GAMxD,OAJApyH,GAAEoG,KAAKs+I,GAAYl+I,QAAQ,SAAC5G,GACxB8kJ,EAAW9kJ,GAAOI,EAAEoB,SAASsjJ,EAAW9kJ,WAGrC8kJ,KxB4tJP9kJ,IAAK,SACLqB,MAAO,SwB1tJG8rH,GACV,GAAI63B,GAAU3Q,EAAA,WAAYvc,UAAU3K,EACpB,OAAZ63B,IACA3P,SAAS0P,KAAOC,MxB8tJpBhlJ,IAAK,MACLqB,MAAO,SwB3tJArB,GACP,GAAI2G,GAAWrG,KAAKu3H,OAEpB,OAAIz3H,GAAE49H,SAASh+H,GACJ2G,EAAS3G,GAGb2G,KxB8tJP3G,IAAK,MACLqB,MAAO,SwB5tJArB,EAAKqB,GACZ,GAAI0jJ,GAAOzkJ,KAAKu3H,OAEhBktB,GAAK/kJ,GAAOI,EAAEoB,SAASH,IAEvBf,KAAKu1I,OAAOkP,MxB+tJZ/kJ,IAAK,OACLqB,MAAO,SwB7tJCrB,EAAKqB,GACb,GAAI0jJ,GAAOzkJ,KAAKu3H,OAEhBktB,GAAK/kJ,GAAO+kJ,EAAK/kJ,OACjB+kJ,EAAK/kJ,GAAKyG,KAAKpF,GAEff,KAAKu1I,OAAOkP,MxBguJZ/kJ,IAAK,SACLqB,MAAO,SwB9tJGrB,GACV,GAAI+kJ,GAAOzkJ,KAAKu3H,OAEhBktB,GAAK/kJ,UAAe+kJ,GAAK/kJ,GAEzBM,KAAKu1I,OAAOkP,OxBkuJTF,IAGXhmJ,GAAQ,WwBxxJagmJ,IxB0xJlBnH,YAAc,qEAAqEuH,6EAA6E,SAAS1mJ,EAAQU,EAAOJ,GAC3L,YAiBA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GArBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAEXxC,EAAQwrI,MAAQvpI,MAEhB,IAAIxB,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MyBpyJhiB8lJ,EAAA3mJ,EAAA,uBzBwyJI4mJ,EAAarc,EAAuBoc,GyBvyJxC1b,EAAAjrI,EAAA,0BzB2yJI6mJ,EAAUtc,EAAuBU,GyBzyJ/Ba,EAAA,SAAAsB,GzBszJF,QAAStB,KACL,GAAII,GAEA4a,EAAO3+I,EAAO4+I,CAElBpmJ,GAAgBoB,KAAM+pI,EAEtB,KAAK,GAAIkb,GAAOnkJ,UAAUrC,OAAQq2H,EAAOl0H,MAAMqkJ,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEpwB,EAAKowB,GAAQpkJ,UAAUokJ,EAG3B,OAAeH,GAAS3+I,EAAQuiI,EAA2B3oI,MAAOmqI,EAAOJ,EAAMd,WAAazpI,OAAOsqI,eAAeC,IAAQvrI,KAAKkC,MAAMypI,GAAOnqI,MAAMW,OAAOm0H,KAAiB1uH,EyBhwJ9K++I,cAAgB,SAACznJ,GAAD,OAAmB,UAAXA,EAAEymI,MAAgC,KAAZzmI,EAAE0nJ,OAA4B,KAAZ1nJ,EAAE0nJ,SAAkB1nJ,EAAE2nJ,mBAAoB,IzBgwJ/FL,EAEJD,EAAQpc,EAA2BviI,EAAO4+I,GAwLjD,MAvMAnc,GAAUkB,EAAOsB,GAkBjBrsI,EAAa+qI,IACTrqI,IAAK,aACLqB,MAAO,SyBjzJAssH,GACPvtH,EAAEmB,OAAOjB,KAAMA,KAAKstH,SAAUD,GAE9BrtH,KAAKslJ,IAAMR,EAAA,WACX9kJ,KAAKulJ,WAAWvlJ,KAAKslJ,IAAItlJ,OAErBA,KAAKsmI,GAAG7nI,QACRuB,KAAKgsI,IAAI+X,KAAK,KAAM/jJ,KAAKsmI,IAG7BtmI,KAAKwlJ,SAAWxlJ,KAAKgsI,IAAIpR,KAAK,oBAE9B56H,KAAKwlJ,SAASphF,QAAQ2nE,OAAO/rI,KAAKupI,SAElCvpI,KAAKgsI,IAAIsP,SAASt7I,KAAKypI,QAAQ3X,KAAK,MAEpC9xH,KAAKylJ,OAASzlJ,KAAKgsI,IAAIpR,KAAK,gBAExB56H,KAAK0pI,aACL1pI,KAAKylJ,OAAOC,IAAI,UAAW,KAG3B1lJ,KAAK2lJ,YACL3lJ,KAAK4lJ,UAGT5lJ,KAAK6lJ,iBzBozJLnmJ,IAAK,UACLqB,MAAO,WyBxyJP,MATIf,MAAK8lJ,kBAEL9hH,EAAE,QAAQ+nG,OAAO/rI,KAAK4jE,IAGtB5jE,KAAK+lJ,UACL/lJ,KAAKwF,OAGFxF,QzBqzJPN,IAAK,cAKLqB,MAAO,WyBnzJG,GAAAowI,GAAAnxI,IACVA,MAAKgsI,IAAI7W,GAAG,gBAAiB,YAAa,SAACz3H,GACvCyzI,EAAKgU,cAAcznJ,IAAMyzI,EAAK6U,QAAQ,SAAU7U,KAGhDnxI,KAAKimJ,wBACLjmJ,KAAKm1H,GAAG,eAAgB,WAAQgc,EAAK+U,UAGzClmJ,KAAKgsI,IAAI7W,GAAG,WAAY,IAAK,SAACz3H,GACtBA,EAAE0nJ,QAAUP,EAAA,WAAKsB,KACjBhV,EAAKiV,WAAW1oJ,QzB4zJxBgC,IAAK,OACLqB,MAAO,WyBxzJJ,GAAAo1I,GAAAn2I,IACHA,MAAKqmJ,cACLrmJ,KAAKgsI,IAAIsa,WAAW,SAAU,QAC9BtmJ,KAAKgmJ,QAAQ,OAAQhmJ,MAErBA,KAAKgsI,IAAI7W,GAAG,UAAW,SAACz3H,GACpBy4I,EAAKiQ,WAAW1oJ,KAIpBsC,KAAKgsI,IAAI7W,GAAG,sBAAuB,WAAA,MAAMghB,GAAKoQ,eAG9CvmJ,KAAKgsI,IAAI1W,IAAI,UAGbt1H,KAAKgsI,IAAI7W,GAAG,qBAAsB,WAC9BghB,EAAKnK,IAAI1W,IAAI,sBACb6gB,EAAK6P,QAAQ,czBg0JjBtmJ,IAAK,cACLqB,MAAO,WyB5zJPf,KAAKwmJ,QAAUxiH,EAAE6gG,SAAS4hB,kBzBg0J1B/mJ,IAAK,aACLqB,MAAO,WyB7zJPf,KAAKgsI,IAAI+X,KAAK,eAAe,GAC7B//G,EAAE,cAAc+/G,KAAK,cAAe,QACpC//G,EAAE,eAAe+/G,KAAK,cAAe,QACrC//G,EAAE,kBAAkB+/G,KAAK,cAAe,QAExC/jJ,KAAKylJ,OAAOiB,QACZ1mJ,KAAK2mJ,gBzBi0JLjnJ,IAAK,aACLqB,MAAO,WyB9zJP,GAAIumI,GAASvgI,OAAO6/I,YAAcxkJ,SAASpC,KAAKgsI,IAAI0Z,IAAI,OAAO7kJ,MAAM,MAAQ,GACzEkG,QAAO8/I,YAAc7mJ,KAAK4jE,GAAGkjF,aAAexf,EAC5CA,EAASpkI,KAAKY,IAAI9D,KAAK4jE,GAAGkjF,aAAe//I,OAAO8/I,YAAc,OAEzD9/I,OAAOi8I,WAAa,MACzB1b,GAAU,GAEdtnI,KAAK4jE,GAAGmjF,iBACRhgJ,OAAOigJ,SAAS,EAAG1f,MzBm0JnB5nI,IAAK,aACLqB,MAAO,SyBj0JArD,GACP,GAAMupJ,GAAajjH,EAAE6gG,SAAS4hB,eACxBS,EAAiBlnJ,KAAKylJ,QAAUzlJ,KAAKgsI,IAAIpR,KAAK,sBAAsBiD,QACpEspB,EAAgBnnJ,KAAKgsI,IAAIpR,KAAK,sBAAsB/J,MAEtDo2B,GAAWG,GAAGF,IAAmBxpJ,EAAE0nJ,QAAUP,EAAA,WAAKsB,KAAOzoJ,EAAE2pJ,UAC3D3pJ,EAAE2nJ,iBACF8B,EAAcT,SACP1iH,EAAEijH,GAAYG,GAAGD,IAAkBzpJ,EAAE0nJ,QAAUP,EAAA,WAAKsB,MAAQzoJ,EAAE2pJ,WACrE3pJ,EAAE2nJ,iBACF6B,EAAeR,YzBq0JnBhnJ,IAAK,OACLqB,MAAO,WyBj0JPf,KAAKgsI,IAAIsa,WAAW,SAAU,SAC9BtmJ,KAAKgmJ,QAAQ,OAAQhmJ,MACrBgkC,EAAE,cAAc+/G,KAAK,cAAe,SACpC//G,EAAE,eAAe+/G,KAAK,cAAe,SACrC//G,EAAE,kBAAkB+/G,KAAK,cAAe,SACxC/jJ,KAAKwmJ,QAAQE,WzBq0JbhnJ,IAAK,QACLqB,MAAO,WyBl0JPf,KAAKsnJ,OACLtnJ,KAAKy1I,YzBs0JL/1I,IAAK,WACLsE,IAAK,WyBl+JL,OACI+hJ,UAA0B,EAC1BJ,YAA0B,EAC1B4B,YAA0B,EAC1BC,aAA0B,EAE1BlhB,GAA0B,GAC1BmD,SAA2B,SAC3Bge,YAA0B,QAC1BrjJ,MAA0B,QAC1BslI,aAA0B,EAC1BH,QAA0B,eAC1Bme,WAA0B14B,KAAK,MAC/B24B,WAA0B34B,KAAK,UAC/B82B,kBAA0B,EAC1BG,wBAA0B,EAC1B2B,iBAA0B,OzBw+J3B7d,GyB3/JSqC,SAASC,KzB8/J7B9tI,GyB51JSwrI,MAAAA,IzB+1JN8d,sBAAsB,iEAAiEC,yBAAyB,8FAA8FC,6FAA6F,SAAS9pJ,EAAQU,EAAOJ,GACtU,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,W0B3gKO,WAAA,MAAA,iRAMOwI,OAAOogI,KAAK,6BAA8B6gB,KAAA,yBAA+BjhJ,OAAOohI,IAAIphI,OAAOqhI,OAAO6f,gBAAxD,kBAAyFlhJ,OAAOioH,KAAK,wBAArG,SANjD,2F1B+gKTk5B,6FAA6F,SAASjqJ,EAAQU,EAAOJ,GAC3H,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,W2BthKO,SAAA4rI,GAAA,GAAE/lI,GAAF+lI,EAAE/lI,MAAOmjJ,EAATpd,EAASod,WAAYC,EAArBrd,EAAqBqd,YAAaI,EAAlCzd,EAAkCyd,eAAlC,OAAA,qGAA6JL,EAA7J,8BAAuMC,EAAvM,mGAE+CpjJ,EAF/C,mBAGLwjJ,EAAA,oEAAuF7gJ,OAAOioH,KAAK,SAAnG,4BAA0I,IAHrI,wE3B8hKTm5B,0FAA0F,SAASlqJ,EAAQU,EAAOJ,GACxH,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,W4BriKO,WAAqB,GAApB6pJ,GAAoBtnJ,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,IAAAA,UAAA,GAE5BunJ,EAAa,WAAA,MAAA,uLAGkFthJ,OAAOotI,UAAUmU,OAHnG,eAG0HvhJ,OAAOioH,KAAK,iBAHtI,UAGkKjoH,OAAOotI,UAAUoU,IAHnL,8NAMkFxhJ,OAAOotI,UAAUqU,WANnG,eAM8HzhJ,OAAOioH,KAAK,mBAN1I,UAMwKjoH,OAAOotI,UAAUoU,IANzL,4NASkFxhJ,OAAOotI,UAAUsU,OATnG,qCAUY1hJ,OAAOioH,KAAK,gBAVxB,UAUmDjoH,OAAOotI,UAAUoU,IAVpE,kJAgBbG,EAAa,WAAA,MAAA,ywBAajB,OAAA,4QAI6E3hJ,OAAOotI,UAAUoU,IAJ9F,2GAK6ExhJ,OAAOotI,UAAUoU,IAL9F,sOAWuCxhJ,OAAOioH,KAAK,qBAXnD,mDAYwCjoH,OAAOioH,KAAK,qBAZpD,wGAa2Fo5B,EAAU,6BAA+B,qIAbpI,KAa6QrhJ,OAAOioH,KAAK,uBAbzR,gMAkBgBo5B,EAAUM,IAAeL,KAlBzC,0PAsB6EthJ,OAAOotI,UAAUoU,IAtB9F,2GAuB6ExhJ,OAAOotI,UAAUoU,IAvB9F,uK5BqhKEI,kFAAkF,SAAS1qJ,EAAQU,EAAOJ,GAChH,YAYA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAhBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,M6B3jKhiB8pJ,EAAA3qJ,EAAA,gC7B+jKI4qJ,EAAgBrgB,EAAuBogB,GAUvC1gB,E6BxkKyDnhI,OAAtDmpI,E7BykKchI,E6BzkKdgI,eAAgB/H,E7B0kKbD,E6B1kKaC,IAAKC,E7B2kKfF,E6B3kKeE,OAAQ+L,E7B4kKpBjM,E6B5kKoBiM,UAAWhN,E7B6kKpCe,E6B7kKoCf,KAAMnY,E7B8kK1CkZ,E6B9kK0ClZ,KAEhC85B,E7B8kKH,SAAUzd,G6B1kKxB,QAAAyd,KAAclqJ,EAAAoB,KAAA8oJ,EAAA,IAAA1iJ,GAAAuiI,EAAA3oI,MAAA8oJ,EAAA7f,WAAAzpI,OAAAsqI,eAAAgf,IAAApoJ,MAAAV,KACDc,WADC,OAAAsF,GAFd8gI,SAAW2hB,EAAA,WAEGziJ,EA4Fd2iJ,sBAAwB,SAACrrJ,GAAD,OAAoB,KAAZA,EAAE0nJ,OAA4B,KAAZ1nJ,EAAE0nJ,SAAkB1nJ,EAAE2nJ,mBAAoB,IAzFxFj/I,EAAK4iJ,IAAM9lJ,KAAKw5H,SAASl6H,SAAS,IAAIR,UAAU,GAEhDoE,EAAKslI,SAAStlI,EAAKpF,MAAO,qBAAsB,WAAA,MAAMoF,GAAKohI,WAE3DphI,EAAKohI,SAPKphI,E7BosKd,MAzHAyiI,GAAUigB,EAAazd,GAyBvBrsI,EAAa8pJ,IACTppJ,IAAK,SACLqB,MAAO,W6B3lKP,OACIkoJ,0BAA+B,eAC/BC,4BAA+B,aAC/BC,6BAA+B,a7BgmKnCzpJ,IAAK,eACLqB,MAAO,W6B5lKPf,KAAKgB,MAAMglJ,QAAQ,gBAAkB9Z,OAAQ,UAAWlrI,MAAOhB,KAAKgB,W7BgmKpEtB,IAAK,aACLqB,MAAO,S6B9lKArD,GACPA,EAAE0rJ,2BAEgB,KAAd1rJ,EAAE2rJ,SAAgC,KAAd3rJ,EAAE2rJ,SACtBrpJ,KAAKgB,MAAMglJ,QAAQ,gBAAkB9Z,OAAQ,UAAWlrI,MAAOhB,KAAKgB,W7BkmKxEtB,IAAK,iBACLqB,MAAO,W6BrkKP,GAAMojI,GAAOnkI,KAAKgB,MAAMgD,IAAI,QAAQsiI,EAEpC,OACWa,GADE,cAAThD,GAAiC,UAATA,EACZ,eACI,UAATA,EACK,cAGJ,iB7BykKZzkI,IAAK,yBACLqB,MAAO,W6BtkKP,GAAMqD,GAAQpE,KAAKgB,MAAMgD,IAAI,QAC7B,OAAIhE,MAAKgB,MAAMgD,IAAI,eACRgrH,EAAK,8BAA+B5qH,MAAAA,IAGpC4qH,EAAK,2BAA4B5qH,MAAAA,O7B0kK5C1E,IAAK,wBACLqB,MAAO,W6BtkKP,MACWiuH,GADPhvH,KAAKgB,MAAMgD,IAAI,eACH,wBAGA,yB7B0kKhBtE,IAAK,SACLqB,MAAO,W6BpkKP,MAFAf,MAAKgsI,IAAI5nE,QAAQ2nE,OAAO/rI,KAAKknI,SAASlnI,KAAKspJ,YAEpCtpJ,Q7B0kKPN,IAAK,SACLqB,MAAO,S6BtkKJrD,GACCsC,KAAK+oJ,sBAAsBrrJ,IAC3BqJ,OAAOwiJ,WAAWC,KAAKC,SAASC,OAAO1pJ,KAAKgsI,IAAIpR,KAAK,0B7B0kKzDl7H,IAAK,YACLsE,IAAK,W6B5oKL,GAAI2lJ,GAAkB,EAQtB,OAPIzZ,GAAeK,UAAU,mBAAqBvwI,KAAKgB,MAAMgD,IAAI,kBAC7D2lJ,EAAkBxhB,EAAIC,EAAOwhB,cAAezlB,KAAM,WAAYhgI,MAAOnE,KAAKgB,MAAMgD,IAAI,kBAAkB6lJ,SAAUvpJ,OAAQ,iBAEnHN,KAAKgB,MAAMgD,IAAI,YACpB2lJ,EAAkBxhB,EAAIC,EAAOwhB,cAAgBzlB,KAAM,SAAUhgI,MAAOnE,KAAKgB,MAAMgD,IAAI,UAAW1D,OAAQ,iBAItGgmI,GAAsBtmI,KAAKgB,MAAMslI,GACjC0iB,IAAsBhpJ,KAAKgpJ,IAC3B5kJ,MAAsBpE,KAAKgB,MAAMgD,IAAI,SACrC8lJ,OAAsB9pJ,KAAKgB,MAAMgD,IAAI,QAAQsiI,GAC7CyjB,WAAsB/pJ,KAAKgB,MAAMgD,IAAI,UAAUgmJ,MAAQ,GACvDC,WAAsBjqJ,KAAKkqJ,iBAC3BC,UAAsB,SACtBC,mBAAsBpqJ,KAAKqqJ,yBAC3BC,kBAAsBtqJ,KAAKuqJ,wBAC3BC,eAAsBrW,EAAUsW,qBAAuBzqJ,KAAKgB,MAAMgD,IAAI,qBACtE0mJ,gBAAsB1qJ,KAAKgB,MAAMgD,IAAI,eAAiB,iBAAmB,cACzE2lJ,gBAAsBA,O7BipKvBb,G6BxsK8B1c,SAASC,K7B2sKlD9tI,GAAQ,W6B3sKauqJ,I7B6sKlB6B,+BAA+B,mGAAmGC,4EAA4E,SAAS3sJ,EAAQU,EAAOJ,GACzO,YAgBA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GApBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,M8BrtKhiBghJ,EAAA7hJ,EAAA,0B9BytKI8hJ,EAAUvX,EAAuBsX,G8BxtKrC+K,EAAA5sJ,EAAA,4B9B4tKI6sJ,EAAYtiB,EAAuBqiB,GAUnC3iB,E8BzuKenhI,OAAXitI,E9B0uKK9L,E8B1uKL8L,OAKa+W,E9BuuKT,SAAU1f,G8BtuKlB,QAAA0f,GAAA5gB,GAA6D,GAAhDsU,GAAgDtU,EAAhDsU,YAAaI,EAAmC1U,EAAnC0U,SAAmCmM,EAAA7gB,EAAzB8gB,eAAAA,EAAyBzqJ,SAAAwqJ,GAAAA,CAAApsJ,GAAAoB,KAAA+qJ,EAAA,IAAA3kJ,GAAAuiI,EAAA3oI,MAAA+qJ,EAAA9hB,WAAAzpI,OAAAsqI,eAAAihB,IAAArqJ,MAAAV,KAChDc,WADgD,OAGzDsF,GAAKq4I,YAAiB3+I,EAAEmB,QAAQy9I,OAAQ,IAAKC,OAAQ,IAAKC,QAAS,KAAMH,GACzEr4I,EAAKy4I,SAAiBA,EACtBz4I,EAAK6kJ,eAAiBA,EAEtB7kJ,EAAKslI,SAAStlI,EAAKpF,MAAO,SAAUoF,EAAKw/I,SACzCx/I,EAAKw/I,UARoDx/I,E9Bw3K7D,MAjJAyiI,GAAUkiB,EAAO1f,GAqBjBrsI,EAAa+rJ,IACTrrJ,IAAK,SACLqB,MAAO,W8BlvKPijC,EAAEj9B,QAAQuuH,IAAV,UAAwBt1H,KAAKgB,MAAMslI,O9BsvKnC5mI,IAAK,UACLqB,MAAO,W8BpvKD,GAAAowI,GAAAnxI,KACAkrJ,EAAQlrJ,KAAKgB,MAAMgnI,SAEnBmjB,EAASjP,WAAWnnB,UACpBq2B,EAAaD,EAAOzM,OAAS1+I,KAAKy+I,YAAYC,OAASyM,EAAOxM,OAAS3+I,KAAKy+I,YAAYE,OAAS3+I,KAAKy+I,YAAYG,QAClHsE,EAAQljJ,KAAKgB,MAAMmiJ,SAASiI,EAElC,IAAIprJ,KAAKgB,MAAMqiJ,cAAe,CAC1B,GAAIgI,GAAA,yCACJrrJ,MAAKgsI,IAAI5nE,QAAQ2nE,OAAOsf,OAGvB,IAAInI,GAASA,EAAM8G,KAAM,CAC1B,GAAIsB,GAAStnH,GAAE,EAAA+7G,EAAA,aACXmL,MAAAA,EACAK,WAAkBrI,GAASA,EAAMI,cAAgBJ,EAAMI,aAAa/gJ,KAAO,UAC3EipJ,IAAkBtI,GAASA,EAAM8G,KACjCA,KAAkBhqJ,KAAKgB,MAAMyqJ,gBAC7BC,MAAkB3kJ,OAAOogI,KAAK,yBAA2B/iI,MAAO8mJ,EAAM9mJ,MAAOK,QAASymJ,EAAMS,mBAC5FC,cAAuC,MAArBV,EAAMzuB,OAAOutB,KAAe,cAAgB,KAIlEsB,GAAO1wB,KAAK,OAAOzF,GAAG,QAAS,WAG3B6e,GAAUA,EAAOoF,IAAI,QAAS,aAC1BjV,KAAU,QACV0nB,QAAUX,EAAM5kB,GAChBklB,IAAUtI,GAASA,EAAM8G,MAG7B,IAAI8B,GAAgBC,KAAKx0B,MAAMw0B,KAAKv0B,UAAU2Z,EAAKnwI,MAAMutI,WAAWyd,QAEpElsJ,GAAEgsJ,GAAe7lJ,KAAK,SAACwtE,SAAmBA,GAAMu2E,OAEhD7Y,EAAKnwI,MAAM4oI,KAAMoiB,OAAQF,MAG7B9rJ,KAAKgsI,IAAI5nE,QAAQ2nE,OAAOuf,OAEvB,IAAItrJ,KAAKirJ,eACVjrJ,KAAKgsI,IAAI5nE,QAAQ2nE,OAAjB,YACiB/rI,KAAKgB,MAAMyqJ,gBAD5B,qCAEqB1kJ,OAAOioH,KAAK,sBAAuB5qH,MAAO8mJ,EAAM9mJ,QAFrE,6FAMC,CAED,GAAI6nJ,GAAcjsJ,KAAKgB,MAAMkrJ,WAAalsJ,KAAKgB,MAAMgD,IAAI,WAAahE,KAAKgB,MAAMgD,IAAI,mBACrFhE,MAAKgsI,IAAI5nE,QAAQ2nE,QAAO,EAAA+e,EAAA,aACpBI,MAAAA,EACAlB,KAAchqJ,KAAKgB,MAAMyqJ,gBACzB5M,SAAc7+I,KAAK6+I,SACnBuM,WAAcA,EACde,YAA2B,IAAbf,EAAmB,IACjCa,YAAcA,KAElBjoH,EAAEj9B,QAAQouH,GAAV,UAAuBn1H,KAAKgB,MAAMslI,GAAMxmI,EAAEygI,KAAKvgI,KAAKosJ,gBAAiBpsJ,KAAM,gDAAiDA,KAAKgB,MAAMgD,IAAI,WAC3IggC,EAAEj9B,QAAQouH,GAAV,UAAuBn1H,KAAKgB,MAAMslI,GAAMxmI,EAAEygI,KAAKvgI,KAAKosJ,gBAAiBpsJ,KAAM,iDAAkDisJ,IAC7HjoH,EAAEj9B,QAAQouH,GAAV,UAAuBn1H,KAAKgB,MAAMslI,GAAMxmI,EAAEygI,KAAKvgI,KAAKqsJ,kBAAmBrsJ,OAGvE+zH,WAAW,WACPod,EAAKib,gBAAgB,gDAAiDjb,EAAKnwI,MAAMgD,IAAI,UACrFmtI,EAAKib,gBAAgB,iDAAkDH,GACvE9a,EAAKkb,qBACN,GAIP,MAAOrsJ,S9BkvKPN,IAAK,oBACLqB,MAAO,W8B/uKP,GAAM0yE,GAAQzzE,KAAK4jE,GAAG0oF,cAAc,MAChC74E,IACAzvC,EAAEyvC,GAAOqoE,OAAmC,IAA5B93G,EAAEyvC,GAAOoqE,SAAS0O,QAAgB,Q9BovKtD7sJ,IAAK,kBACLqB,MAAO,S8BjvKKyrJ,EAAUC,GACtB,GAAM7V,GAAU52I,KAAK4jE,GAAG0oF,cAAcE,EACtC,IAAI5V,IACAA,EAAQkN,UAAY2I,EAChBD,EAAS31B,QAAQ,eACb7yF,EAAE4yG,GAAS2V,QAAU,IACrBvoH,EAAE4yG,GAAS8O,IAAI,YAAa,QAEvB1hH,EAAE4yG,GAAS2V,QAAU,KAAOvoH,EAAE4yG,GAAS2V,SAAW,IACvDvoH,EAAE4yG,GAAS8O,IAAI,YAAa,QAEvB1hH,EAAE4yG,GAAS2V,QAAU,KAAOvoH,EAAE4yG,GAAS2V,SAAW,IACvDvoH,EAAE4yG,GAAS8O,IAAI,YAAa,QAEvB1hH,EAAE4yG,GAAS2V,SAAW,KAC3BvoH,EAAE4yG,GAAS8O,IAAI,YAAa,QAG3B8G,EAAS31B,QAAQ,kBAClB7yF,EAAE4yG,GAAS2V,QAAU,IACrBvoH,EAAE4yG,GAAS8O,IAAI,YAAa,QAEvB1hH,EAAE4yG,GAAS2V,QAAU,KAAOvoH,EAAE4yG,GAAS2V,SAAW,IACvDvoH,EAAE4yG,GAAS8O,IAAI,YAAa,QAEvB1hH,EAAE4yG,GAAS2V,QAAU,KAAOvoH,EAAE4yG,GAAS2V,SAAW,IACvDvoH,EAAE4yG,GAAS8O,IAAI,YAAa,QAEvB1hH,EAAE4yG,GAAS2V,SAAW,KAC3BvoH,EAAE4yG,GAAS8O,IAAI,YAAa,SAGhC9O,EAAQ8V,aAAe,GAAK9V,EAAQ8V,aAAe9V,EAAQ+V,cAAc,CACzE,GAAIxlB,GAAOyP,EAAQkN,SAEnB,KADA3c,EAAUA,EAAKvlI,QAAQ,QAAS,IAAhC,MACgB,QAATulI,GAAkByP,EAAQ8V,aAAe9V,EAAQ+V,cACpDxlB,EAAOA,EAAKvlI,QAAQ,oBAAqB,MACzCg1I,EAAQkN,UAAY3c,O9BkvK7B4jB,G8Bz3KwB3e,SAASC,K9B43K5C9tI,GAAQ,W8B53KawsJ,I9B83KlB6B,yBAAyB,2FAA2FC,2BAA2B,+FAA+FC,qFAAqF,SAAS7uJ,EAAQU,EAAOJ,GAC9V,YAgBA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAhBhHS,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,M+B14KhiBiuJ,EAAA9uJ,EAAA,0C/B84KI+uJ,EAAoBxkB,EAAuBukB,G+B74K/C7Z,EAAAj1I,EAAA,4B/Bi5KIk1I,EAAoB3K,EAAuB0K,G+B/4K1B+Z,E/Bq5KA,W+Bn5KjB,QAAAA,KAAcruJ,EAAAoB,KAAAitJ,GACVntJ,EAAEmB,OAAOjB,KAAMosI,SAAS8gB,QAExBltJ,KAAKuqI,MAAiB,GAAI4I,GAAA,WAC1BnzI,KAAKmtJ,UACLntJ,KAAKotJ,e/BqgLT,MA5GApuJ,GAAaiuJ,IACTvtJ,IAAK,cACLqB,MAAO,S+Bx5KCssJ,EAAMhgC,GACd,MAAOrtH,MAAKstJ,OAAOxtJ,EAAEmB,WAAakD,MAAOkpJ,GAAQhgC,O/B25KjD3tH,IAAK,SACLqB,MAAO,S+Bz5KJwsJ,EAAYlgC,GACf,MAAOrtH,MAAKstJ,OAAOxtJ,EAAEmB,UAAWssJ,EAAYlgC,O/B45K5C3tH,IAAK,sBACLqB,MAAO,S+B15KSulI,EAAIjZ,GACpB,MAAOrtH,MAAKstJ,OAAOxtJ,EAAEmB,WAAa+D,aAAcshI,GAAMjZ,O/B65KtD3tH,IAAK,8BACLqB,MAAO,S+B35KiBysJ,EAAmBngC,GAC3C,MAAOrtH,MAAKstJ,OAAOxtJ,EAAEmB,UAAWusJ,EAAmBngC,O/Bi6KnD3tH,IAAK,qBACLqB,MAAO,W+B75KPf,KAAKgmJ,QAAQ,aAAchmJ,MAAQytJ,gBAAiB,MAEpD,IAAIC,IACAnjB,SACA4iB,UACAC,eAOJ,OAJAptJ,MAAK2tJ,WAAWD,EAAe,aAE/B1tJ,KAAKgmJ,QAAQ,WAAYhmJ,MAElBsxI,QAAQ9f,QAAQk8B,M/Bu6KvBhuJ,IAAK,SACLqB,MAAO,S+Bj6KJwsJ,GAAY,GAAAnnJ,GAAApG,IAWf,IATKutJ,IACDA,MAICA,EAAWhoJ,gBAAmBgoJ,EAAW1B,UAC1C0B,EAAWhoJ,eAAiBwB,OAAOotI,UAAUyZ,iBAG7C7mJ,OAAOmpI,eAAeK,UAAU,aAAegd,EAAW/wB,QAAQ,CAClE,GAAMqxB,IAAS,cAAe,cAAe,QAAS,SAAU,aAAc,iBAAkB,mBAChGN,GAAWjtJ,OAASutJ,EAAM3qJ,KAAKu8H,MAAMv8H,KAAKw5H,SAAWmxB,EAAMpvJ,SAG/D,GAAIgvJ,GAAkB,GAAIT,GAAA,WAAgBO,EAQ1C,OANMxmJ,QAAOotI,UAAUtvI,oBACnB4oJ,EAAgB5oJ,mBAAoB,GAGxC7E,KAAKgmJ,QAAQ,aAAchmJ,MAAQytJ,gBAAAA,IAE5B,GAAInc,SAAQ,SAAC9f,EAASrwH,GACzB6iC,EAAE2tG,MACExJ,IAAKphI,OAAOohI,IAAIphI,OAAOqhI,OAAO5O,KAAK0xB,MAAM/9B,OACzC8O,OAAU,OACV4V,SAAU,OACVic,YAAa,kCACbpmB,KAAUqkB,KAAKv0B,UAAUi2B,EAAgBM,aACzCt5B,QAAS,MAEZqd,KAAK,SAACpK,EAAMuK,EAAY+b,GACjBjnJ,OAAOmpI,eAAeK,UAAU,aAAegd,EAAW/wB,UAC1DkL,EAAK6C,MAAQ7C,EAAK6C,OAASzqI,EAAE08H,QAAQkL,EAAK6C,QAE9CnkI,EAAKunJ,WAAWjmB,EAAMuK,EAAY+b,GAClC5nJ,EAAK4/I,QAAQ,WAAY5/I,GACzBorH,EAAQkW,KAEXqK,KAAK,SAACic,EAAO/b,EAAYC,GACtB9rI,EAAK6nJ,WAAWD,EAAO/b,EAAYC,GACnC9rI,EAAK4/I,QAAQ,WAAY5/I,GACzBjF,EAAO6sJ,U/Bq6KftuJ,IAAK,aACLqB,MAAO,S+Bj6KA2mI,EAAMuK,EAAY+b,GACzBhuJ,KAAKuqI,MAAM0P,MAAMvS,EAAK6C,OACtBvqI,KAAKgmJ,QAAQ,eAAgBhmJ,MAAQ0nI,KAAAA,EAAMuK,WAAAA,EAAY+b,MAAAA,O/Bo6KvDtuJ,IAAK,aACLqB,MAAO,S+Bl6KAitJ,EAAO/b,EAAYC,GAC1BlyI,KAAKgmJ,QAAQ,YAAahmJ,MAAQguJ,MAAAA,EAAO/b,WAAAA,EAAYC,YAAAA,Q/Bs6KlD+a,IAGX1uJ,GAAQ,W+B/gLa0uJ,I/BihLlBiB,yCAAyC,2DAA2DC,2BAA2B,+FAA+FC,wFAAwF,SAASnwJ,EAAQU,EAAOJ,GACjV,YAQA,SAASK,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAVjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MgC3hL3gBuvJ,EhCmiLG,SAAUhjB,GgCjiL9B,QAAAgjB,GAAAlkB,GAA4C,GAAAmkB,GAAAnkB,EAA/BhG,KAAAA,EAA+B3jI,SAAA8tJ,EAAxB,OAAwBA,EAAhBpiB,EAAgB/B,EAAhB+B,OAAQwV,EAAQvX,EAARuX,KAAQ9iJ,GAAAoB,KAAAquJ,EAAA,IAAAjoJ,GAAAuiI,EAAA3oI,MAAAquJ,EAAAplB,WAAAzpI,OAAAsqI,eAAAukB,IAAA3tJ,MAAAV,KAC/Bc,WAD+B,OAAAsF,GAwE5C++I,cAAgB,SAACznJ,GAAD,OAAmB,UAAXA,EAAEymI,MAAgC,KAAZzmI,EAAE0nJ,OAA4B,KAAZ1nJ,EAAE0nJ,SAAkB1nJ,EAAE2nJ,mBAAoB,IArEtGj/I,EAAK+9H,KAAOA,EAEZ/9H,EAAKmoJ,iBAAkB,EACjBriB,IACF9lI,EAAK8lI,OAASA,EACd9lI,EAAKmoJ,iBAAkB,GAG3BnoJ,EAAKs7I,MAAQA,EAEbt7I,EAAKooJ,QAAUxqH,EAAE,cAEjB59B,EAAKslI,SAAStlI,EAAKpF,MAAO,oBAAqBoF,EAAKohI,QAEpDphI,EAAKohI,SAjBmCphI,EhCozL5C,MAlRAyiI,GAAUwlB,EAAmBhjB,GAkC7BrsI,EAAaqvJ,IACT3uJ,IAAK,SACLqB,MAAO,WgCriLPf,KAAKwuJ,QAAQl5B,MACbt1H,KAAKgsI,IAAI1W,KAET,IAAIiZ,GAAavuI,KAAKyuJ,gBAgBtB,OAfI3uJ,GAAEyuI,EAAWyb,MAAM3oJ,UACnBrB,KAAKwuJ,QAAUxqH,EAAE,aAAcuqG,GAE/BvuI,KAAKwuJ,QAAUxqH,EAAE,QAASuqG,IAM1BzuI,EAAEyuI,EAAWyb,MAAM3oJ,WAAarB,KAAKuuJ,kBACrCvuJ,KAAK0uJ,qBAAqB1uJ,KAAKwuJ,SAGnCxuJ,KAAKgsI,IAAI5nE,QAAQ2nE,OAAO/rI,KAAKwuJ,SAEtBxuJ,QhCyiLPN,IAAK,UACLqB,MAAO,WgCviLe,GAAlB4tJ,KAAkB7tJ,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,KAAAA,UAAA,EActB,OAbI6tJ,GACA3uJ,KAAKwuJ,QAAQl5B,IAAI,sBACZgmB,SAAS,WACTyI,KAAK,WAAY4K,GACjB5iB,OAAO,gCAEZ/rI,KAAKwuJ,QAAQjT,YAAY,WACpBwI,KAAK,WAAY4K,GACjB/zB,KAAK,YAAY6a,SAEtBz1I,KAAK0uJ,qBAAqB1uJ,KAAKwuJ,UAG5BxuJ,QhCuiLPN,IAAK,uBACLqB,MAAO,SgCniLUirI,GAAK,GAAAmF,GAAAnxI,IACtBgsI,GAAI1W,IAAI,sBAER0W,EAAI7W,GAAG,0BAA6B,SAACz3H,GAAQyzI,EAAKgU,cAAcznJ,IAAMyzI,EAAKjF,OAAOxuI,KAClFsuI,EAAI7W,GAAG,4BAA6B,SAACz3H,GAAQyzI,EAAKgU,cAAcznJ,IAAMyzI,EAAKjF,OAAOxuI,QhC4iLlFgC,IAAK,SACLqB,MAAO,SgC1iLJ6tJ,GACH5uJ,KAAKmlJ,cAAcyJ,IAAU5uJ,KAAK6uJ,yBhC6iLlCnvJ,IAAK,sBACLqB,MAAO,WgC1iLRf,KAAKgB,MAAMglJ,QAAQ,gBAAkB9Z,OAAQlsI,KAAK8uJ,MAAO9tJ,MAAOhB,KAAKgB,WhC8iLpEtB,IAAK,iBACLqB,MAAO,WgC3iLP,GAAIguJ,IACAC,gBAAkBhvJ,KAAKgB,MAAMslI,GAC7B2oB,YAAkBjvJ,KAAKgB,MAAMutI,WAAWpK,KAAKmC,GAC7C4oB,iBAAkBlvJ,KAAKgB,MAAMutI,WAAWpK,KAAKmC,IAAMv/H,OAAOioH,KAAKhvH,KAAKgB,MAAMutI,WAAWpK,KAAKmC,KAAO,GACjGtX,KAAkBhvH,KAAKwuJ,QAAQx/B,MAAQhvH,KAAKwuJ,QAAQx/B,QAAU,GAC9DmgC,SAAkB,GAGlB/qJ,EAAQpE,KAAKgB,MAAMutI,WAAWnqI,MAE9BqlI,GAAW,oBAAqB,YAEpC,IAAIzpI,KAAKovJ,SAAU,CAAA,GAAAC,IACfA,EAAA5lB,GAAQtjI,KAARzF,MAAA2uJ,GAAiB,SAAU,SAAU,YAAa,cAOtD,OAJmB,SAAfrvJ,KAAK0hJ,OACLjY,EAAQtjI,KAAK,QAGTnG,KAAK8uJ,OACT,IAAK,YACDrlB,EAAQtjI,KAAK,gBACTnG,KAAKsvJ,QACL7lB,EAAQtjI,KAAK,mBAEjB4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,aAAxC,UACA+/B,EAAY,cAAgBhoJ,OAAOioH,KAAK,kBAAmB5qH,MAAAA,GAC3D,MACJ,KAAK,cACGpE,KAAKovJ,WACL3lB,EAAQtjI,KAAK,gBACbsjI,EAAU3pI,EAAE2pI,GAASjL,QAAQ,cAGjCiL,EAAQtjI,KAAK,kBACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,eAAxC,UACA+/B,EAAY/E,KAAOjjJ,OAAOohI,IAAIphI,OAAOqhI,OAAOmnB,uBAC5C,MACJ,KAAK,cACD9lB,EAAQtjI,KAAK,0CACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,2BAAxC,SACA,MACJ,KAAK,OACDya,EAAQtjI,KAAK,mBACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,cAAxC,SACA,MACJ,KAAK,UACGhvH,KAAKsvJ,QACL7lB,EAAQtjI,KAAK,mBAGjBsjI,EAAQtjI,KAAK,mCACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,oBAAxC,UACA+/B,EAAY,cAAgBhoJ,OAAOioH,KAAK,yBAA0B5qH,MAAAA,GAClE,MACJ,KAAK,SACGpE,KAAKsvJ,QACL7lB,EAAQtjI,KAAK,mBAGjBsjI,EAAQtjI,KAAK,iCACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,UAAxC,UACA+/B,EAAY,cAAgBhoJ,OAAOioH,KAAK,eAAgB5qH,MAAAA,GACxD,MACJ,KAAK,WACDqlI,EAAQtjI,KAAK,2BACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,aAAxC,UACA+/B,EAAY/E,KAAOjjJ,OAAOohI,IAAIphI,OAAOqhI,OAAOonB,aAC5C,MACJ,KAAK,OACGxvJ,KAAKsvJ,QACL7lB,EAAQtjI,KAAK,yBAGjBsjI,EAAQtjI,KAAK,mBACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,cAAxC,UACA+/B,EAAY,cAAgBhoJ,OAAOioH,KAAK,qBAAsB5qH,MAAAA,GAC9D,MACJ,KAAK,SACGpE,KAAKovJ,UACL3lB,EAAQtjI,KAAK,WAGjBsjI,EAAQtjI,KAAK,uBACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,aAAxC,UACA+/B,EAAY/E,KAAOjjJ,OAAOohI,IAAIphI,OAAOqhI,OAAOqnB,aAC5C,MACJ,KAAK,QACDhmB,EAAQtjI,KAAK,0BACbsjI,EAAUA,EAAQpY,OAAO,SAACrzH,GAAD,MAAa,cAANA,IAChC+wJ,EAAY//B,KAAZ,2DAA8EjoH,OAAOioH,KAAK,sBAAuB5qH,MAAO,KAAxH,SACA,MACJ,KAAK,eACDqlI,EAAQtjI,KAAK,iCACbsjI,EAAUA,EAAQpY,OAAO,SAACrzH,GAAD,MAAa,cAANA,IAChC+wJ,EAAY//B,KAAZ,2DAA8EjoH,OAAOioH,KAAK,6BAA1F,SACA,MACJ,KAAK,YACDya,EAAQtjI,KAAK,8BACbsjI,EAAUA,EAAQpY,OAAO,SAACrzH,GAAD,MAAa,cAANA,IAChC+wJ,EAAY//B,KAAZ,2DAA8EjoH,OAAOioH,KAAK,0BAA1F,SACA,MACJ,KAAK,UACDya,EAAQtjI,KAAK,4BACbsjI,EAAUA,EAAQpY,OAAO,SAACrzH,GAAD,MAAa,cAANA,IAChC+wJ,EAAY//B,KAAZ,2DAA8EjoH,OAAOioH,KAAK,wBAA1F,SACA,MACJ,KAAK,YACDya,EAAQtjI,KAAK,gBACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,aAAxC,UACA+/B,EAAY/E,KAAOjjJ,OAAOohI,IAAIphI,OAAOqhI,OAAOsnB,eAAgBzqJ,OAAQ,sBAAuBulI,QAASxqI,KAAKgB,MAAMslI,KAC/GyoB,EAAY7vJ,OAAS,QACrB,MACJ,KAAK,UACDuqI,EAAQtjI,KAAK,cACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,WAAxC,UACA+/B,EAAY/E,KAAOjjJ,OAAOohI,IAAIphI,OAAOqhI,OAAOsnB,eAAgBzqJ,OAAQ,kBAAmBulI,QAASxqI,KAAKgB,MAAMslI,KAC3GyoB,EAAY7vJ,OAAS,QACrB,MACJ,KAAK,WACGc,KAAKsvJ,QACL7lB,EAAQtjI,KAAK,yBAGjBsjI,EAAQtjI,KAAK,eACb4oJ,EAAY//B,KAAZ,SAA4BjoH,OAAOioH,KAAK,YAAxC,UACA+/B,EAAY/E,KAAOjjJ,OAAOohI,IAAIphI,OAAOqhI,OAAOsnB,eAAgBzqJ,OAAQjF,KAAKgB,MAAMgD,IAAI,kBAAmBwmI,QAASxqI,KAAKgB,MAAMslI,IAC1H,MACJ,KAAK,UACD,GAAItmI,KAAKsvJ,OAAQ,CACb,GAAIK,GAAa3rH,EAAEj9B,OAAO6oJ,wBAC1BD,GAAWjK,IAAI,QAAS,WACxBqJ,EAAY//B,KAAO2gC,CACnB,OAGJlmB,EAAQtjI,KAAK,qBACb4oJ,EAAYc,UAAW,EACvBd,EAAY//B,KAAO,kDAM3B,MAFA+/B,GAAA,SAAoBtlB,EAAQ3X,KAAK,KAE1Bi9B,KhCyjLPrvJ,IAAK,WACLsE,IAAK,WgChxLL,MAAqB,WAAdhE,KAAKmkI,QhCoxLZzkI,IAAK,SACLsE,IAAK,WgCjxLL,MAAqB,SAAdhE,KAAKmkI,QhCqxLZzkI,IAAK,QACLsE,IAAK,WgClxLL,MAAOhE,MAAKgB,MAAMgD,IAAI,kBhCuxLnBqqJ,GgCtzLoCjiB,SAASC,KhCyzLxD9tI,GAAQ,WgCzzLa8vJ,OhC2zLfyB,gFAAgF,SAAS7xJ,EAAQU,EAAOJ,GAC9G,YAkCA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAtCjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI08I,GAAO,QAASz5I,GAAI6oH,EAAQuM,EAAUskB,GAA2B,OAAX7wB,IAAiBA,EAAS4a,SAAS5nI,UAAW,IAAI89I,GAAOn+I,OAAOo+I,yBAAyB/wB,EAAQuM,EAAW,IAAa54H,SAATm9I,EAAoB,CAAE,GAAIE,GAASr+I,OAAOsqI,eAAejd,EAAS,OAAe,QAAXgxB,EAAmB,OAAkC75I,EAAI65I,EAAQzkB,EAAUskB,GAAoB,GAAI,SAAWC,GAAQ,MAAOA,GAAK58I,KAAgB,IAAI+8I,GAASH,EAAK35I,GAAK,IAAexD,SAAXs9I,EAA4C,MAAOA,GAAOt/I,KAAKk/I,IAExd1+I,EAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MiCp0LhiB8rI,EAAA3sI,EAAA,8BjCw0LI4sI,EAAcrC,EAAuBoC,GiCt0LzCmlB,EAAA9xJ,EAAA,qBjC00LI+xJ,EAAcxnB,EAAuBunB,GiCz0LzCE,EAAAhyJ,EAAA,uBjC60LIiyJ,EAAsB1nB,EAAuBynB,GiC50LjDE,EAAAlyJ,EAAA,oBjCg1LImyJ,EAAmB5nB,EAAuB2nB,GiC/0L9CE,EAAApyJ,EAAA,oBjCm1LIqyJ,EAAmB9nB,EAAuB6nB,GiCl1L9CvQ,EAAA7hJ,EAAA,WjCs1LI8hJ,EAAUvX,EAAuBsX,GiCp1LhByQ,EjC81LL,SAAUllB,GiCx1LtB,QAAAklB,GAAApmB,GAA+C,GAAjCsU,GAAiCtU,EAAjCsU,YAAiC+R,EAAArmB,EAApB0U,SAAAA,EAAoBr+I,SAAAgwJ,GAAAA,CAAA5xJ,GAAAoB,KAAAuwJ,EAAA,IAAAnqJ,GAAAuiI,EAAA3oI,MAAAuwJ,EAAAtnB,WAAAzpI,OAAAsqI,eAAAymB,IAAA7vJ,MAAAV,KAClCc,WADkC,OAAAsF,GAF/C8gI,SAAW2D,EAAA,WAIPzkI,EAAKk6I,UAELl6I,EAAKq4I,YAAiBA,EACtBr4I,EAAKy4I,SAAiBA,EAEtBz4I,EAAKohI,SAPsCphI,EjCg7L/C,MAvFAyiI,GAAU0nB,EAAWllB,GAErBrsI,EAAauxJ,IACT7wJ,IAAK,YACLsE,IAAK,WiCj2LS,MAAO,4BjC03LzBhF,EAAauxJ,IACT7wJ,IAAK,SACLqB,MAAO,WiC92LF,GACGC,GAAiChB,KAAjCgB,MAAOy9I,EAA0Bz+I,KAA1By+I,YAAaI,EAAa7+I,KAAb6+I,QAE5B7+I,MAAKgsI,IAAI5nE,QAETpkE,KAAKsgJ,OAAOh6I,QAAQ,SAACkvI,GAAD,MAAUA,GAAKC,WACnCz1I,KAAKsgJ,SAEL,IAAMmQ,GAAOzsH,EAAEhkC,KAAKknI,WA+BpB,OA5BIlnI,MAAKgB,MAAMqiJ,eACXrjJ,KAAKgsI,IAAIsP,SAAS,eAGtBt7I,KAAKsgJ,OAAOn6I,KAAKnG,KAAK0wJ,eAAiB,GAAIJ,GAAA;AACvCtvJ,MAAAA,EAAO4iE,GAAI6sF,EAAK71B,KAAK,sBAGzB56H,KAAKsgJ,OAAOn6I,KAAKnG,KAAKkjJ,MAAQ,GAAInD,GAAA,YAC9B/+I,MAAAA,EAAO4iE,GAAI6sF,EAAK71B,KAAK,eAAgB6jB,YAAAA,EAAaI,SAAAA,KAGtD7+I,KAAKsgJ,OAAOn6I,KAAKnG,KAAK2wJ,UAAY,GAAIX,GAAA,YAClChvJ,MAAAA,EAAO4iE,GAAI6sF,EAAK71B,KAAK,iBAGzB56H,KAAKsgJ,OAAOn6I,KAAKnG,KAAK4wJ,kBAAoB,GAAIV,GAAA,YAC1ClvJ,MAAAA,EAAO4iE,GAAI6sF,EAAK71B,KAAK,mBAGpB7zH,OAAOmpI,eAAeK,UAAU,0BACjCvwI,KAAKsgJ,OAAOn6I,KAAKnG,KAAK6wJ,eAAiB,GAAIT,GAAA,YACvCpvJ,MAAAA,EAAO4iE,GAAI6sF,EAAK71B,KAAK,kBAAmBuJ,KAAM,cAC/CqD,UAGPxnI,KAAKgsI,IAAID,OAAO0kB,GAETzwJ,QjCs3LPN,IAAK,SACLqB,MAAO,WiCn3LPf,KAAKsgJ,OAAOh6I,QAAQ,SAACkvI,GAAD,MAAUA,GAAKC,WACnCgI,EAAA8S,EAAA1wJ,UAAAopI,WAAAzpI,OAAAsqI,eAAAymB,EAAA1wJ,WAAA,SAAAG,MAAAxB,KAAAwB,UjC03LGuwJ,GiCt7L4BnkB,SAASC,KjCy7LhD9tI,GAAQ,WiCz7LagyJ,IjC27LlBO,UAAU,2EAA2EC,sBAAsB,uFAAuFC,mBAAmB,oFAAoFC,mBAAmB,oFAAoFC,6BAA6B,+FAA+FC,oBAAoB,wFAAwFC,0FAA0F,SAASnzJ,EAAQU,EAAOJ,GAC7uB,YA0BA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASuc,GAAmBlgB,GAAO,GAAI5xH,MAAMm2H,QAAQvE,GAAM,CAAE,IAAK,GAAI10H,GAAI,EAAG60I,EAAO/xI,MAAM4xH,EAAI/zH,QAASX,EAAI00H,EAAI/zH,OAAQX,IAAO60I,EAAK70I,GAAK00H,EAAI10H,EAAM,OAAO60I,GAAe,MAAO/xI,OAAMyxH,KAAKG,GAE1L,QAAS5zH,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAhCjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MAE5hB2+I,EAAO,QAASz5I,GAAI6oH,EAAQuM,EAAUskB,GAA2B,OAAX7wB,IAAiBA,EAAS4a,SAAS5nI,UAAW,IAAI89I,GAAOn+I,OAAOo+I,yBAAyB/wB,EAAQuM,EAAW,IAAa54H,SAATm9I,EAAoB,CAAE,GAAIE,GAASr+I,OAAOsqI,eAAejd,EAAS,OAAe,QAAXgxB,EAAmB,OAAkC75I,EAAI65I,EAAQzkB,EAAUskB,GAAoB,GAAI,SAAWC,GAAQ,MAAOA,GAAK58I,KAAgB,IAAI+8I,GAASH,EAAK35I,GAAK,IAAexD,SAAXs9I,EAA4C,MAAOA,GAAOt/I,KAAKk/I,IkC58L5d5K,EAAA70I,EAAA,mDlCg9LI80I,EAA2BvK,EAAuBsK,GkC/8LtDE,EAAA/0I,EAAA,uClCm9LIg1I,EAAgBzK,EAAuBwK,GkCj9L3CpI,EAAA3sI,EAAA,elCq9LI4sI,EAAcrC,EAAuBoC,GkCp9LzCE,EAAA7sI,EAAA,oClCw9LI8sI,EAAiBvC,EAAuBsC,GkCv9LtC9a,EAAK/xH,EAAQ,MAEEozJ,ElCo+LK,SAAUhmB,GkCl+LhC,QAAAgmB,GAAAlnB,GAA8F,GAAhFmB,GAAgFnB,EAAhFmB,IAAKgmB,EAA2EnnB,EAA3EmnB,sBAAuBjlB,EAAoDlC,EAApDkC,KAAMkC,EAA8CpE,EAA9CoE,WAAYkQ,EAAkCtU,EAAlCsU,YAAaI,EAAqB1U,EAArB0U,SAAUlmB,EAAWwR,EAAXxR,OAAW/5H,GAAAoB,KAAAqxJ,EAAA,IAAAjrJ,GAAAuiI,EAAA3oI,MAAAqxJ,EAAApoB,WAAAzpI,OAAAsqI,eAAAunB,IAAA3wJ,MAAAV,KACjFc,WADiF,OAG1FsF,GAAKk6I,UAELl6I,EAAKklI,IAAiBA,EACtBllI,EAAKimI,KAAiBA,GAAQxB,EAAA,WAC9BzkI,EAAKmoI,WAAiBzuI,EAAEmB,UAAWstI,GACnCnoI,EAAKq4I,YAAiBA,EACtBr4I,EAAKy4I,SAAiBA,EACtBz4I,EAAKuyH,QAAiBA,EAEtBvyH,EAAKolI,aAAiB,GAAIT,GAAA,YAAeO,IAAKllI,EAAKklI,IAAK3S,QAAAA,IAExDvyH,EAAKslI,SAAStlI,EAAKyyH,WAAY,eAAgBzyH,EAAKulI,oBAKhD2lB,GAAyBvqJ,OAAOotI,UAAUC,iBAAmBrtI,OAAOotI,UAAUE,gBAC9Eid,EACKC,eACA5b,KAAK,SAAC6b,GACHprJ,EAAKqrJ,mBAAmBD,KAIpCprJ,EAAKohI,SA3BqFphI,ElCinM9F,MA9IAyiI,GAAUwoB,EAAqBhmB,GAyC/BrsI,EAAaqyJ,IACT3xJ,IAAK,qBACLqB,MAAO,SAA4BkrI,GkC7+LD,GAAjBC,GAAiBD,EAAjBC,OAAQlrI,EAASirI,EAATjrI,KACzBhB,MAAKwrI,aAAaW,QAAQD,EAAQlrI,MlCm/LlCtB,IAAK,qBACLqB,MAAO,SkCj/LQywJ,GAAY,GAAArgB,GAAAnxI,KACvB0xJ,IACJ5xJ,GAAEA,EAAEg8H,OAAO01B,IAAavrJ,KAAK,SAAC01H,GAC1B,GAAI77H,EAAEi3H,QAAQ4E,GAAO,CAAA,GAAAg2B,IACjBA,EAAAD,GAAIvrJ,KAAJzF,MAAAixJ,EAAAjf,EAAY/W,QACT,IAAI77H,EAAE0G,SAASm1H,GAAO,CAAA,GAAAi2B,IACzBA,EAAAF,GAAIvrJ,KAAJzF,MAAAkxJ,EAAAlf,EAAY5yI,EAAEoG,KAAKy1H,GAAMz5H,IAAI2vJ,cAE7BH,GAAIvrJ,KAAKw1H,KAGjB+1B,EAAM5xJ,EAAE6+H,KAAK+yB,GAEbA,EAAIprJ,QAAQ,SAACggI,GACT,GAAMtlI,GAAQmwI,EAAKtY,WAAW70H,IAAIsiI,EAE9BtlI,IACAA,EAAM44I,kBAAkB4X,KAIhCxxJ,KAAKw2I,6BlC0/LL92I,IAAK,SACLqB,MAAO,WkCx/LF,GAAAo1I,GAAAn2I,KACD+3I,EAAOlT,SAASmT,wBAEpBh4I,MAAKsgJ,OAAOh6I,QAAQ,SAACkvI,GAAD,MAAUA,GAAKC,WACnCz1I,KAAKsgJ,UAELtgJ,KAAK64H,WAAWvyH,QAAQ,SAAClC,GAErBA,EAAMwlI,IAAI,QAAS5Z,EAAGjB,OAAO3qH,EAAMJ,IAAI,WAEvCI,EAAM0nI,WAAWqK,EAAKxd,QAEtB,IAAI6c,GAAO,GAAIW,GAAK9J,MAChBrrI,MAAcoD,EACdknI,IAAc6K,EAAK7K,IACnBmT,YAActI,EAAKsI,YACnBI,SAAc1I,EAAK0I,UAGvB9G,GAAKG,YACDl0G,EAAE,UACEq6G,QAAO,sBACRtS,OAAOyJ,EAAKxJ,KAAK,IAGxBmK,EAAKmK,OAAOn6I,KAAKqvI,IAIrB,IAAMsc,GAAmB9tH,EAAE,8BAE3BhkC,MAAKgsI,IAAI+X,KAAK/jJ,KAAKuuI,YACnBvuI,KAAKgsI,IAAI5nE,QAAQ2nE,OAAO+lB,GAAkB/lB,OAAOgM,MlC6/LjDr4I,IAAK,SACLqB,MAAO,WkC1/LPf,KAAKsgJ,OAAOh6I,QAAQ,SAACkvI,GAAD,MAAUA,GAAKC,WACnCgI,EAAA4T,EAAAxxJ,UAAAopI,WAAAzpI,OAAAsqI,eAAAunB,EAAAxxJ,WAAA,SAAAG,MAAAxB,KAAAwB,SlCggMAN,IAAK,0BACLqB,MAAO,WkC7/LP,GAAIgG,OAAOotI,UAAUC,iBAAmBrtI,OAAOotI,UAAUE,gBAAkBpB,EAAA,WAAYjvI,IAAI,UAAW,CAClG,GAAM+3I,GAAkB,GAAIhJ,GAAA,WAAuB/yI,KAAK64H,WAAY74H,KAAKsrI,IACzEyQ,GAAgBC,gBAChBj1I,OAAOg1I,gBAAkBA,MlCkgM7Br8I,IAAK,UACLsE,IAAK,WkC9kML,MAAO,SlCmlMJqtJ,GkCnnMsCjlB,SAASC,KlCsnM1D9tI,GAAQ,WkCtnMa8yJ,IlCwnMlB5U,sCAAsC,kFAAkFsV,mCAAmC,8EAA8ElV,kDAAkD,8FAA8FmV,cAAc,+EAA+EhiC,GAAK,qDAAqDiiC,qFAAqF,SAASh0J,EAAQU,EAAOJ,GAChoB,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GmCnoMX,IAAMqrI,GAAWrlI,OAAOqlI,SAElB8lB,EAAiB9lB,EAASC,KAAKprI,QACjCkxJ,WADwC,WAEpCnyJ,KAAK0rI,SAAS1rI,KAAKgB,MAAO,SAAUhB,KAAKwnI,QAEzCxnI,KAAKoyJ,gBAAkBpuH,EAAE,WAEzBhkC,KAAKwnI,UAGTA,OATwC,WAUpC,GAAMrpI,GAAI6B,KAAKqyJ,aAMf,OAJAryJ,MAAKoyJ,gBAAkBpuH,EAAE,UAAW7lC,EAAEm0J,WAAWvmB,OAAO/nG,EAAE,QAAS7lC,EAAE6pJ,OACrEhoJ,KAAKgsI,IAAIhd,KAAKhvH,KAAKoyJ,iBACnBpyJ,KAAKgsI,IAAI+X,KAAK,cAAe,QAEtB/jJ,MAGXqyJ,YAnBwC,WAoBpC,GAAIE,IACAD,WACI7oB,SAAU,mBAAoB,cAElCue,MACI7gB,KAAM,GACN6iB,KAAMhqJ,KAAKgB,MAAMyqJ,gBACjB0D,aAMR,QAFAnvJ,KAAKksI,OAASlsI,KAAKgB,MAAMgD,IAAI,cAErBhE,KAAKksI,QACT,IAAK,YACDqmB,EAAOD,UAAU7oB,QAAQtjI,KAAK,gCAC9BosJ,EAAOvK,KAAK7gB,KAAOpgI,OAAOioH,KAAK,uBAC/B,MACJ,KAAK,cACDujC,EAAOD,UAAU7oB,QAAQtjI,KAAK,kCAC9BosJ,EAAOvK,KAAK7gB,KAAOpgI,OAAOioH,KAAK,cAC/B,MACJ,KAAK,cACDujC,EAAOD,UAAU7oB,QAAQtjI,KAAK,oCAC9BosJ,EAAOvK,KAAK7gB,KAAOpgI,OAAOioH,KAAK,0BAC/B,MACJ,KAAK,OACDujC,EAAOD,UAAU7oB,QAAQtjI,KAAK,gDAC9BosJ,EAAOvK,KAAK7gB,KAAOpgI,OAAOioH,KAAK,wBAC/B,MACJ,KAAK,SACDujC,EAAOD,UAAU7oB,QAAQtjI,KAAK,kDAC9BosJ,EAAOvK,KAAK7gB,KAAOpgI,OAAOioH,KAAK,wBAC/B,MACJ,KAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,UACDujC,EAAOD,UAAU7oB,QAAQtjI,KAAK,oDAC9BosJ,EAAOvK,KAAK7gB,KAAOpgI,OAAOioH,KAAK,WAC/B,MACJ,KAAK,OACDujC,EAAOD,UAAU7oB,QAAQtjI,KAAK,6BAC9BosJ,EAAOvK,KAAK7gB,KAAOnnI,KAAKgB,MAAMgD,IAAI,qBAAuB+C,OAAOioH,KAAK,0BAA4BjoH,OAAOogI,KAAK,uBAC7G,MACJ,KAAK,SACDorB,EAAOD,UAAU7oB,QAAQtjI,KAAK,+BAC9BosJ,EAAOvK,KAAK7gB,KAAOpgI,OAAOioH,KAAK,SAC/B,MACJ,KAAK,UACDujC,EAAOD,UAAU7oB,QAAUzpI,KAAKoyJ,gBAAgBrO,KAAK,SAASlyB,MAAM,KACpE0gC,EAAOvK,KAAK7gB,KAAOnnI,KAAKoyJ,gBAAgBx3B,KAAK,WAAWuM,OAMhE,MAFAorB,GAAOD,UAAP,SAAyBC,EAAOD,UAAU7oB,QAAQ3X,KAAK,KAEhDygC,InCuoMfh0J,GAAQ,WmCnoMO2zJ,OnCqoMTM,qFAAqF,SAASv0J,EAAQU,EAAOJ,GACnH,YAYA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAhBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MoC/tMhiBqxJ,EAAAlyJ,EAAA,mCpCmuMImyJ,EAAmB5nB,EAAuB2nB,GoCjuMzBsC,EpC2uMA,SAAUpnB,GoCtsM3B,QAAAonB,GAAAtoB,GAA8B,GAAjBhG,GAAiBgG,EAAjBhG,KAAMuuB,EAAWvoB,EAAXuoB,QAAW9zJ,GAAAoB,KAAAyyJ,EAAA,IAAArsJ,GAAAuiI,EAAA3oI,MAAAyyJ,EAAAxpB,WAAAzpI,OAAAsqI,eAAA2oB,IAAA/xJ,MAAAV,KACjBc,WADiB,OAE1BsF,GAAK+9H,KAAOA,GAAQ,YACpB/9H,EAAKssJ,SAAWA,GAAY,UAE5BtsJ,EAAKslI,SAAStlI,EAAKpF,MAAO,uBAAwBoF,EAAKohI,QACvDphI,EAAK+9H,KAAOA,GAAQ,YANM/9H,EpCkzM9B,MA3GAyiI,GAAU4pB,EAAgBpnB,GAE1BrsI,EAAayzJ,IACT/yJ,IAAK,gBACLsE,IAAK,WoC7uML,MAAyB,YAAlBhE,KAAK0yJ,SAAyB,GAAK,wBpCivM1ChzJ,IAAK,YACLsE,IAAK,WoC9uML,GAAMI,GAAQpE,KAAKgB,MAAMutI,WAAWnqI,KACpC,OAA2C,gBAApCpE,KAAKgB,MAAMgD,IAAI,iBACZ+C,OAAOioH,KAAK,sBAAuB5qH,MAAAA,IACnC2C,OAAOioH,KAAK,2BAA4B5qH,MAAAA,OpCgvMlD1E,IAAK,YACLsE,IAAK,WoC7uML,MAA2C,gBAApChE,KAAKgB,MAAMgD,IAAI,iBAAqC,iBAAmB,0BpCivM9EtE,IAAK,OACLsE,IAAK,WoC9uML,MAAkB,cAAdhE,KAAKmkI,KACE,GAEgC,gBAApCnkI,KAAKgB,MAAMgD,IAAI,iBACJ+C,OAAOioH,KAAK,iBACZjoH,OAAOioH,KAAK,yBpCgvM9BtvH,IAAK,KACLsE,IAAK,WoC7uML,GAAM2uJ,GAA4C,gBAApC3yJ,KAAKgB,MAAMgD,IAAI,gBAC7B,OAAI2uJ,IAEInoB,QAASxqI,KAAKgB,MAAMutI,WAAWjI,GAC/BssB,WAAY5yJ,KAAKgB,MAAMutI,WAAWpK,KAAKmC,IAGxC,SpCkwMXtnI,EAAayzJ,IACT/yJ,IAAK,SACLqB,MAAO,WoCvvMP,OAAS8xJ,MAAS,mBpC2vMlBnzJ,IAAK,SACLqB,MAAO,WoCxvMP,GAAKf,KAAK4jE,MAAM5jE,KAAKgsI,IAAIvtI,OAAS,GAAlC,CAKA,GAAMq0J,GAAe9yJ,KAAK4jE,GAAG0oF,cAAc,qBAAuBznB,SAAS4hB,aAK3E,IAHAzmJ,KAAKgsI,IAAI5nE,QAGLtkE,GAAG,YAAa,gBAAgBmtH,SAASjtH,KAAKgB,MAAMgD,IAAI,eACxD,MAAOhE,KAGX,IAAM+yJ,IAAa,EAAA3C,EAAA,aACf4C,GAAIhzJ,KAAKgzJ,GACTC,cAAejzJ,KAAKizJ,cACpBC,UAAWlzJ,KAAKkzJ,UAChBC,UAAWnzJ,KAAKmzJ,UAChBhsB,KAAMnnI,KAAKmnI,MASf,OANAnnI,MAAKgsI,IAAID,OAAOgnB,GAEZD,GACA9yJ,KAAK4jE,GAAG0oF,cAAc,mBAAmB5F,QAGtC1mJ,SpC4vMPN,IAAK,eACLqB,MAAO,WoCzvMPf,KAAKgB,MAAMglJ,QAAQ,gBAAkB9Z,OAAQ,OAAQlrI,MAAOhB,KAAKgB,QACjEhB,KAAKozJ,cpC6vML1zJ,IAAK,WACLqB,MAAO,WoC1vMPf,KAAKgsI,IAAIpR,KAAK,KAAK2gB,YAAY,+BAA+BD,SAAS,0BpC+vMpEmX,GoCv1MiCrmB,SAASC,KpC01MrD9tI,GAAQ,WoC11Mak0J,IpC41MlBY,kCAAkC,sGAAsGC,oFAAoF,SAASr1J,EAAQU,EAAOJ,GACvP,YAkBA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAtBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI08I,GAAO,QAASz5I,GAAI6oH,EAAQuM,EAAUskB,GAA2B,OAAX7wB,IAAiBA,EAAS4a,SAAS5nI,UAAW,IAAI89I,GAAOn+I,OAAOo+I,yBAAyB/wB,EAAQuM,EAAW,IAAa54H,SAATm9I,EAAoB,CAAE,GAAIE,GAASr+I,OAAOsqI,eAAejd,EAAS,OAAe,QAAXgxB,EAAmB,OAAkC75I,EAAI65I,EAAQzkB,EAAUskB,GAAoB,GAAI,SAAWC,GAAQ,MAAOA,GAAK58I,KAAgB,IAAI+8I,GAASH,EAAK35I,GAAK,IAAexD,SAAXs9I,EAA4C,MAAOA,GAAOt/I,KAAKk/I,IAExd1+I,EAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MqCv2MhiBy0J,EAAAt1J,EAAA,qCrC22MIu1J,EAAehrB,EAAuB+qB,GqC12M1C3mB,EAAA3uI,EAAA,qBrC82MI4uI,EAAmBrE,EAAuBoE,GqC32MzB6mB,ErCq3MT,SAAUxmB,GqCh0MlB,QAAAwmB,GAAYzyJ,EAAOqsH,EAASsL,GAAS/5H,EAAAoB,KAAAyzJ,EAAA,IAAAtpB,GACX9c,MAAhBqmC,EAD2BvpB,EAC3BupB,YAD2BttJ,EAAAuiI,EAAA3oI,MAAAyzJ,EAAAxqB,WAAAzpI,OAAAsqI,eAAA2pB,IAAAj1J,KAAAwB,KAG3BgB,EAAOqsH,GAHoB,OAKjCjnH,GAAK0lI,WAAWnT,GAEhBvyH,EAAKwjI,IAAI9pI,EAAEmB,UAAWD,GAAS2yJ,WAAYvtJ,EAAKwtJ,UAAUF,MACrDttJ,EAAKi9I,eACNj9I,EAAK4hJ,KAAKjhJ,OAAO8sJ,cATYztJ,ErC4oNrC,MA3UAyiI,GAAU4qB,EAAOxmB,GAEjBjuI,EAAay0J,IACT/zJ,IAAK,WACLqB,MAAO,WqCr3MP,OACIulI,GAA8B,EAC9BqlB,iBAA8B,SAC9BvnJ,MAA8B,QAC9B0vJ,eAA8B,EAC9BC,WACAC,SAA8B,EAC9BC,YAA8B,EAC9BC,0BAA8B,EAC9BC,mBAA8B,EAC9BC,aAA8B,EAC9BC,WAA8B,EAC9BC,eAA8B,EAC9BC,gBAA8B,EAC9BC,WAA8B,EAC9BC,WAA8B,EAC9BC,YAA8B,EAC9BC,gBAA8B,EAC9BC,oBAA8B,EAC9BC,wBAA8B,EAC9BC,qBAA8B,GAC9BC,iBAA8B,GAC9BzqB,YAA8B,GAC9B7N,UACAu4B,aACA7wB,MAA+BmC,GAAI,SACnC0lB,UAGA2H,WAA8B,UAC9BsB,eAA8B,EAC9BC,cAA8B,cAC9BC,aAA8B,EAC9BC,eAA8B,KAC9BC,UAA8B,EAC9BC,gBAA8B,EAC9BC,YAA8B,MrC03MlC71J,IAAK,aACLqB,MAAO,SqCn3MA43H,GACP34H,KAAK24H,QAAUA,KrCs3Mfj5H,IAAK,cACLsE,IAAK,WqCv6MW,MAAO,QrC26MvBtE,IAAK,gBACLsE,IAAK,WqCh4ML,MAAOhE,MAAKgE,IAAI,mBrCs5MpBhF,EAAay0J,IACT/zJ,IAAK,OACLqB,MAAO,SqCp4MNuqI,GAAK,GAAA6F,GAAAnxI,IAeN,OAbIA,MAAKsrI,MACLtrI,KAAKw1J,cAAcx1J,KAAKsrI,IAAK,gBAC7BtrI,KAAKsrI,IAAM,MAIXA,IACAtrI,KAAKsrI,IAAMA,EACXtrI,KAAK0rI,SAAS1rI,KAAKsrI,IAAK,eAAgB,SAACmqB,GACrCtkB,EAAKukB,cAAcD,MAIpBz1J,QrCy4MPN,IAAK,gBACLqB,MAAO,SqCv4MG00J,GACNA,IAAez1J,MAAQy1J,EAAWnvB,KAAOtmI,KAAKsmI,IAC9CmX,EAAAgW,EAAA5zJ,UAAAopI,WAAAzpI,OAAAsqI,eAAA2pB,EAAA5zJ,WAAA,MAAAG,MAAAxB,KAAAwB,KAAUy1J,EAAWE,wBrC24MzBj2J,IAAK,MACLqB,MAAO,WqCv4MP08I,EAAAgW,EAAA5zJ,UAAAopI,WAAAzpI,OAAAsqI,eAAA2pB,EAAA5zJ,WAAA,MAAAG,MAAAU,MAAAV,KAAac,WACbd,KAAKsrI,KAAOtrI,KAAKsrI,IAAI0a,QAAQ,eAAgBhmJ,SrC84M7CN,IAAK,oBACLqB,MAAO,SqCl2MO2yJ,GAA4B,GAAfrmC,GAAevsH,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,GAAAA,UAAA,KAC1Cd,MAAK4pI,KACD+pB,WAAkB3zJ,KAAK4zJ,UAAUF,GACjCwB,cAAkB1B,EAAA,WAAWoC,aAAa51J,KAAKuuI,WAAYmlB,GAAe,iBAAmB,cAC7FY,eAAkBd,EAAA,WAAWa,WAAWr0J,KAAKuuI,WAAYmlB,IAC1DrmC,EACH,IAAMwoC,GAAsBrC,EAAA,WAAWsC,mBAAmB91J,KAAKuuI,WAAYmlB,EAC3E1zJ,MAAK4pI,IAAI,cAAeisB,EAAqBxoC,MAE7C,IAAMinC,GAAiBd,EAAA,WAAWa,WAAWr0J,KAAKuuI,WAAYmlB,EAC9D1zJ,MAAK4pI,IAAI,iBAAkB0qB,EAAgBjnC,UrCu2M3C3tH,IAAK,WACLqB,MAAO,SqCr2MFg1J,GACL,GAAM/J,GAASlsJ,EAAEoC,IAAIlC,KAAKgE,IAAI,UAAW,SAACk/I,GAAD,MAAWA,KAC9C8S,EAAel2J,EAAEQ,OAAO0rJ,EAAQ,SAKhCiK,EAAiBz2J,OAAOiB,UAAWX,EAAE+wH,KAAKm7B,GAKhD,IAAIiK,GAAkBA,EAAejM,KAAM,CACvC,GAAMkM,GAAkB,2BAClBC,EAAqB,yBACrBC,EAAeH,EAAejM,KAAKpoJ,QAAQs0J,EAAiBC,GAG5DE,EAAgB,gBAAkBN,EAClCO,GAAeF,EAAav/B,QAAQ,KAAO,EAAI,IAAM,KAAOw/B,CAGlE,OAFAJ,GAAejM,KAAOoM,EAAeE,EAE9BL,EAGX,GAAMM,GAA+Bz2J,EAAE86H,KAAKo7B,EAAc,SAAC9S,GAAD,MAAWA,GAAMqJ,OAASwJ,KAAgBj2J,EAAE+wH,KAAKm7B,EAC3G,OAAOuK,MrC42MP72J,IAAK,cACLqB,MAAO,SqC12MCg1J,GACR,GAAM7S,GAAQljJ,KAAKmjJ,SAAS4S,EAC5B,OAAO7S,IAASA,EAAM8G,MAAQ,oCrC62M9BtqJ,IAAK,yBACLqB,MAAO,WqC12MP,MAAOijC,GAAE2tG,MACLxJ,IAAKphI,OAAOohI,IAAIphI,OAAOqhI,OAAOouB,qBAAsBlwB,GAAItmI,KAAKsmI,KAC7DnC,KAAM,MACN1P,QAAS,OrC+2Mb/0H,IAAK,sBACLqB,MAAO,SqC52MS01J,GAAW,GAAAtgB,GAAAn2I,IAI3B,OAHKA,MAAKktI,kBACNltI,KAAKktI,gBAAkB,GAAIL,GAAA,YAExB7sI,KAAKktI,gBAAgB8H,QAAQ6W,QAAS7rJ,KAAKgE,IAAI,QAAQ2xI,KAAK,SAACtvI,GAEhE,MADA8vI,GAAKvM,IAAI6sB,EAAWpwJ,EAASowJ,IACtBnlB,QAAQ9f,erCk3MnB9xH,IAAK,mBACLqB,MAAO,QAAS21J,KqC92MhB,GAAIxqB,GAASlsI,KAAKgE,IAAI,cAClB0yJ,EAAmB,EAEvB,QAAQxqB,GACJ,IAAK,YACDwqB,EAAmB3vJ,OAAOioH,KAAK,uBAC/B,MACJ,KAAK,cACD0nC,EAAmB3vJ,OAAOioH,KAAK,cAC/B,MACJ,KAAK,cACD0nC,EAAmB3vJ,OAAOioH,KAAK,0BAC/B,MACJ,KAAK,OACD0nC,EAAmB3vJ,OAAOioH,KAAK,wBAC/B,MACJ,KAAK,SACD0nC,EAAmB3vJ,OAAOioH,KAAK,wBAC/B,MACJ,KAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,UACD0nC,EAAmB3vJ,OAAOioH,KAAK,WAC/B,MACJ,KAAK,OACD,GAAIhvH,KAAKgE,IAAI,qBAAsB,CAC/B0yJ,EAAmB3vJ,OAAOioH,KAAK,yBAC/B,OAGJ0nC,EAAmB12J,KAAKgE,IAAI,qBAAuB+C,OAAOioH,KAAK,0BAA4BjoH,OAAOioH,KAAK,uBACvG,MACJ,KAAK,SACD0nC,EAAmB3vJ,OAAOioH,KAAK,SAC/B,MACJ,KAAK,UACD0nC,EAAmB3vJ,OAAOioH,KAAK,WAIvC,MAAO0nC,MrCk3MPh3J,IAAK,YACLqB,MAAO,SqCh3MD2yJ,GAEN,MADA1zJ,MAAK22J,eAAejD,GACbF,EAAA,WAAWoD,SAAS52J,KAAKuuI,WAAYmlB,MrCm3M5Ch0J,IAAK,iBACLqB,MAAO,SqCj3MI2yJ,GACX1zJ,KAAK4pI,KAAKyrB,SAAU3B,GAAeA,EAAYmD,QAAQhgC,QAAQ72H,KAAKsmI,SACpEtmI,KAAK4pI,KAAK2rB,WAAY7B,GAAeA,EAAYoD,YAAYjgC,QAAQ72H,KAAKsmI,SAC1EtmI,KAAK4pI,KAAKqrB,cAAevB,GAAeA,EAAYqD,qBAAqBlgC,QAAQ72H,KAAKsmI,YrCo3MtF5mI,IAAK,gBACLqB,MAAO,WqCj3MP,GAAI48I,GAAO39I,KAAKgE,IAAI,eAAepC,QAAQ,+BAAgC,IAC3E,OAAOoiC,GAAA,QAAU25G,EAAV,UAAwBxW,UrCq3M/BznI,IAAK,gBACLqB,MAAO,SqCn3MGypI,EAAShZ,EAASrwH,GAAQ,GAAAg2I,GAAAn3I,IACpCgkC,GAAE2tG,MACExJ,IAAKphI,OAAOohI,IAAIphI,OAAOqhI,OAAO4uB,aAAc1wB,GAAIkE,IAChDrG,KAAM,MACN1P,QAAS,IACT+c,QAAS,SAAC9J,GACNyP,EAAKvN,IAAIlC,GACTyP,EAAKvN,IAAI,aAAcuN,EAAKyc,UAAU,OACtCpiC,KAEJugB,KAAM,SAACmH,GACH/3I,EAAO+3I,SrC03Mfx5I,IAAK,sBACLsE,IAAK,WqC5iNL,MAAOhE,MAAK24H,SAAW34H,KAAK24H,QAAQyX,qBAC9BpwI,KAAK24H,QAAQyX,qBAAqB9J,GAClC9lI,UrC8iNNd,IAAK,kBACLsE,IAAK,WqC1iNL,GAAI7E,IAAUmnI,GAAItmI,KAAKsmI,GAMvB,OAJItmI,MAAKi3J,sBACL93J,EAAM+3J,IAAMl3J,KAAKi3J,qBAGdlwJ,OAAOohI,IAAIphI,OAAOqhI,OAAOoC,QAASrrI,MrC+iNzCO,IAAK,oBACLsE,IAAK,WqC5iNL,MAAO+C,QAAOmpI,eAAeK,UAAU,aAAevwI,KAAKgE,IAAI,uBAAyB,KrCgjNxFtE,IAAK,uBACLsE,IAAK,WqC7iNL,MAAOhE,MAAKm3J,mBAAiD,IAA5Bn3J,KAAKgE,IAAI,kBrCijN1CtE,IAAK,qBACLsE,IAAK,WqC9iNL,MAAOhE,MAAKo3J,4BAA8D,IAAhCp3J,KAAKgE,IAAI,qBAA6BhE,KAAKgE,IAAI,qBrCkjNzFtE,IAAK,eACLsE,IAAK,WqC/iNL,MAAOhE,MAAKgE,IAAI,gBAAkBhE,KAAKgE,IAAI,aAAe+C,OAAOmpI,eAAeK,UAAU,oBrCmjN1F7wI,IAAK,cACLsE,IAAK,WqChjNL,MAAOhE,MAAKgE,IAAI,gBAAkBhE,KAAKo3J,8BrCojNvC13J,IAAK,6BACLsE,IAAK,WqCjjNL,MAAOhE,MAAKm3J,mBAAqBn3J,KAAKgE,IAAI,2BAA6B,KrCqjNvEtE,IAAK,aACLsE,IAAK,WqCp6ML,MAA+B,aAAxBhE,KAAKgE,IAAI,QAAQsiI,OrCy6MrBmtB,GqCjsNwBrnB,SAASsD,MrCosN5CnxI,GAAQ,WqCpsNak1J,IrCssNlB4D,oCAAoC,4EAA4EC,oBAAoB,sFAAsFC,8FAA8F,SAASt5J,EAAQU,EAAOJ,GACnV,YAYA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAhBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MsChtNhiB4rI,EAAAzsI,EAAA,WtCotNI0sI,EAAUnC,EAAuBkC,GsCltNhB8sB,EtC4tNC,SAAU1mB,GAG5B,QAAS0mB,KAGL,MAFA54J,GAAgBoB,KAAMw3J,GAEf7uB,EAA2B3oI,MAAOw3J,EAAgBvuB,WAAazpI,OAAOsqI,eAAe0tB,IAAkB92J,MAAMV,KAAMc,YAU9H,MAfA+nI,GAAU2uB,EAAiB1mB,GAQ3B9xI,EAAaw4J,IACT93J,IAAK,QACLsE,IAAK,WsCtuNK,MAAO2mI,GAAA,etC2uNd6sB,GsC5uNkCprB,SAAS2E,WtC+uNtDxyI,GAAQ,WsC/uNai5J,ItCivNlBC,UAAU,qFAAqFC,kGAAkG,SAASz5J,EAAQU,EAAOJ,GAC5N,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAEX,IAAImnI,GuC1vN0BnhI,OAAtBioH,EvC2vNGkZ,EuC3vNHlZ,KAAMmZ,EvC4vNJD,EuC5vNIC,IAAKC,EvC6vNNF,EuC7vNME,MvC+vNnB7pI,GAAQ,WuC7vNO,SAAA4rI,GAAA,GAAG7D,GAAH6D,EAAG7D,GAAI0iB,EAAP7e,EAAO6e,IAAKc,EAAZ3f,EAAY2f,OAAQ1lJ,EAApB+lI,EAAoB/lI,MAAO+lJ,EAA3BhgB,EAA2BggB,UAAWJ,EAAtC5f,EAAsC4f,WAAYE,EAAlD9f,EAAkD8f,WAAYG,EAA9DjgB,EAA8DigB,mBAAoBE,EAAlFngB,EAAkFmgB,kBAAmBE,EAArGrgB,EAAqGqgB,eAAgBE,EAArHvgB,EAAqHugB,gBAAiBf,EAAtIxf,EAAsIwf,eAAtI,OAAA,kHAEsErjB,EAFtE,2BAGSliI,EAHT,2CAIyBkiI,EAJzB,IAIiC0iB,EAJjC,mCAKiBmB,EALjB,gDAM8B7jB,EAN9B,2DAQStX,EAAK,mBAAqB5qH,MAAAA,IARnC,4HAaakiI,EAbb,IAaqB0iB,EAbrB,uKAcW,KAAfe,EAAA,0FAEsBA,EAFtB,oBAEsDzjB,EAFtD,iBAE2EliI,EAF3E,6DAG+CkiI,EAH/C,gBAGmEwjB,EAHnE,6EAI+D96B,EAAK,qBAAuByN,OAAQwtB,EAAY7lJ,MAAAA,IAJ/G,2BAKY6lJ,EALZ,4CAQD,IAtBK,+EAwBuB9hB,EAAIC,EAAOoC,SAAWlE,GAAAA,IAxB7C,iBAwBqEtX,EAAK,yBAA2B5qH,MAAAA,IAxBrG,KAwBoH4qH,EAAK,eAxBzH,iCA0BJ26B,EAAA,qEACwDA,EADxD,KAC8E36B,EAAK,cADnF,YAED,IA5BK,cA6BLw7B,EAAA,iEAAkFE,EAAlF,oBAAqHpkB,EAArH,gDAAuK8jB,EAAvK,KAA8LE,EAA9L,YAAA,IA7BK,iEA8BgDniB,EAAIC,EAAOuvB,gBAAkBrxB,GAAAA,IA9B7E,iBA8BqGtX,EAAK,sBAAwB5qH,MAAAA,IA9BlI,KA8BiJ4qH,EAAK,kBA9BtJ,qCvC6wNT4oC,4FAA4F,SAAS35J,EAAQU,EAAOJ,GAC1H,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,WwCtxNO,SAAA4rI,GAAA,GAAG+gB,GAAH/gB,EAAG+gB,MAAOM,EAAVrhB,EAAUqhB,IAAKxB,EAAf7f,EAAe6f,KAAMuB,EAArBphB,EAAqBohB,WAAYK,EAAjCzhB,EAAiCyhB,aAAjC,OAAA,+DAC8CL,EAD9C,oBAECvB,EAFD,0DAIcA,EAJd,gCAKckB,EAAM5kB,GALpB,gCAMc4kB,EAAM9mJ,MANpB,gCAOc8mJ,EAAM/mB,KAAKmC,GAPzB,wEAUY4kB,EAAM9mJ,MAVlB,MAU+B4qH,KAAKk8B,EAAM/mB,KAAKmC,IAV/C,sFAY0CslB,EAZ1C,uBAaKJ,EAbL,0BAcQA,EAdR,mCAeQA,EAfR,uCAgBQA,EAhBR,0BAiBKN,EAAM9mJ,MAjBX,MAiBwB4qH,KAAKk8B,EAAM/mB,KAAKmC,IAjBxC,2CAkByBilB,EAlBzB,4DxC+xNTsM,8FAA8F,SAAS55J,EAAQU,EAAOJ,GAC5H,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,WyCtyNO,SAAA4rI,GAAA,GAAG+gB,GAAH/gB,EAAG+gB,MAAOlB,EAAV7f,EAAU6f,KAAMnL,EAAhB1U,EAAgB0U,SAAmCoN,GAAnD9hB,EAA0BihB,WAA1BjhB,EAAsCgiB,YAAtChiB,EAAmD8hB,YAAnD,OAAA,wFAEmCpN,EAAW,uBAAyB,sBAFvE,gBAGFmL,EAHE,4CAKOA,EALP,yBAMOkB,EAAM5kB,GANb,yBAOO4kB,EAAM9mJ,MAPb,yBAQO8mJ,EAAM/mB,KAAKmC,GARlB,kCAScuY,EAAW,+BAAiC,2CAT1D,KAS0GqM,EAAM9mJ,MAThH,uCAUey6I,EAAW,GAAK,gBAV/B,KAUoDoN,EAVpD,8EAcYf,EAAM9mJ,MAdlB,MAc+B4qH,KAAKk8B,EAAM/mB,KAAKmC,IAd/C,0GAiBIv/H,OAAOotI,UAAUoU,IAAM,yBAjB3B,uBAkBK2C,EAAM9mJ,MAlBX,MAkBwB4qH,KAAKk8B,EAAM/mB,KAAKmC,IAlBxC,8CzCgzNTwxB,gGAAgG,SAAS75J,EAAQU,EAAOJ,GAC9H,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,W0CvzNO,WAAA,MAAA,mW1C2zNTw5J,uGAAuG,SAAS95J,EAAQU,EAAOJ,GACrI,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,W2Cl0NO,SAAA4rI,GAAA,GAAE2f,GAAF3f,EAAE2f,MAAF,OAAA,MACbA,EAAA,4EACuEA,EADvE,SACsF/iJ,OAAOioH,KAAK86B,GADlG,YAEE,IAHW,W3Cu0NTkO,gGAAgG,SAAS/5J,EAAQU,EAAOJ,GAC9H,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,W4C90NO,SAAA4rI,GAAA,GAAG0hB,GAAH1hB,EAAG0hB,QAASznJ,EAAZ+lI,EAAY/lI,MAAO4lJ,EAAnB7f,EAAmB6f,KAAMkJ,EAAzB/oB,EAAyB+oB,SAAzB,OAAA,cAAwD9uJ,EAAxD,uCAAsGynJ,EAAtG,+CACc7B,EADd,6BACiDkJ,EADjD,eAEJ9uJ,EAFI,0B5Cs1NT6zJ,qGAAqG,SAASh6J,EAAQU,EAAOJ,GACnI,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAGXxC,EAAQ,W6C71NO,SAAA4rI,GAAA,GAAE6oB,GAAF7oB,EAAE6oB,GAAIC,EAAN9oB,EAAM8oB,cAAeC,EAArB/oB,EAAqB+oB,UAAWC,EAAhChpB,EAAgCgpB,UAAWhsB,EAA3CgD,EAA2ChD,IAA3C,OAAA,cACL6rB,EAAA,6CAAkDA,EAAGxoB,QAArD,kBAA8EwoB,EAAGJ,WAAe,IAD3F,2BAESK,EAFT,mCAIDC,EAJC,qBAKCC,EALD,0DAMThsB,EAAA,+CAAsDA,EAAtD,UAAsE,IAN7D,oB7Cs2NT+wB,uFAAuF,SAASj6J,EAAQU,EAAOJ,GACrH,YA8BA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAlCjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI08I,GAAO,QAASz5I,GAAI6oH,EAAQuM,EAAUskB,GAA2B,OAAX7wB,IAAiBA,EAAS4a,SAAS5nI,UAAW,IAAI89I,GAAOn+I,OAAOo+I,yBAAyB/wB,EAAQuM,EAAW,IAAa54H,SAATm9I,EAAoB,CAAE,GAAIE,GAASr+I,OAAOsqI,eAAejd,EAAS,OAAe,QAAXgxB,EAAmB,OAAkC75I,EAAI65I,EAAQzkB,EAAUskB,GAAoB,GAAI,SAAWC,GAAQ,MAAOA,GAAK58I,KAAgB,IAAI+8I,GAASH,EAAK35I,GAAK,IAAexD,SAAXs9I,EAA4C,MAAOA,GAAOt/I,KAAKk/I,IAExd1+I,EAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,M8C/2NhiB8pJ,EAAA3qJ,EAAA,kB9Cm3NI4qJ,EAAgBrgB,EAAuBogB,G8Cl3N3CuP,EAAAl6J,EAAA,2B9Cs3NIm6J,EAAgB5vB,EAAuB2vB,G8Cr3N3CE,EAAAp6J,EAAA,4B9Cy3NIq6J,EAAiB9vB,EAAuB6vB,G8Cx3N5CrY,EAAA/hJ,EAAA,yB9C43NIgiJ,EAAczX,EAAuBwX,G8C33NzCuY,EAAAt6J,EAAA,gC9C+3NIu6J,EAAqBhwB,EAAuB+vB,G8C73N3BE,E9Cu4NL,SAAUptB,G8Cn4NtB,QAAAotB,KAAc75J,EAAAoB,KAAAy4J,EAAA,IAAAryJ,GAAAuiI,EAAA3oI,MAAAy4J,EAAAxvB,WAAAzpI,OAAAsqI,eAAA2uB,IAAA/3J,MAAAV,KACDc,WADC,OAEVsF,GAAKk6I,UAELl6I,EAAKohI,SAJKphI,E9C07Nd,MAtDAyiI,GAAU4vB,EAAWptB,GAErBrsI,EAAay5J,IACT/4J,IAAK,YACLsE,IAAK,W8C14NS,MAAO,iB9C05NzBhF,EAAay5J,IACT/4J,IAAK,SACLqB,MAAO,W8Cl5NPf,KAAKsgJ,OAAOh6I,QAAQ,SAACkvI,GAAD,MAAUA,GAAKC,WACnCz1I,KAAKsgJ,a9Cw5NL5gJ,IAAK,SACLqB,MAAO,W8Cr5NPf,KAAK04J,SACLjb,EAAAgb,EAAA54J,UAAAopI,WAAAzpI,OAAAsqI,eAAA2uB,EAAA54J,WAAA,SAAAG,MAAAxB,KAAAwB,S9Cy5NAN,IAAK,SACLqB,MAAO,W8Ct5NPf,KAAK04J,SAEL14J,KAAKsgJ,OAAOn6I,KAAKnG,KAAK24J,YAAc,GAAI9P,GAAA,YAAa7nJ,MAAOhB,KAAKgB,SAC7DhB,KAAKgB,MAAMkrJ,WACXlsJ,KAAKsgJ,OAAOn6I,KAAKnG,KAAK44J,aAAe,GAAIN,GAAA,YAAct3J,MAAOhB,KAAKgB,SAEnEhB,KAAKsgJ,OAAOn6I,KAAKnG,KAAK64J,YAAc,GAAIT,GAAA,YAAap3J,MAAOhB,KAAKgB,SAGrEhB,KAAKsgJ,OAAOn6I,KAAKnG,KAAK6jJ,UAAY,GAAI5D,GAAA,YAAWj/I,MAAOhB,KAAKgB,SAC7DhB,KAAKsgJ,OAAOn6I,KAAKnG,KAAK84J,iBAAoB,GAAIN,GAAA,YAAkB1O,OAAQ9pJ,KAAKgB,MAAMgD,IAAI,QAAQsiI,MAE/FtmI,KAAKgsI,IAAI5nE,QACTpkE,KAAKgsI,IAAID,OACL/rI,KAAK6jJ,UAAU7X,IACfhsI,KAAK24J,YAAY3sB,IAAIsP,SAAS,cAC9Bt7I,KAAKgB,MAAMkrJ,WAAalsJ,KAAK44J,aAAa5sB,IAAOhsI,KAAK64J,YAAY7sB,IAClEhsI,KAAK84J,iBAAiB9sB,S9Cu5NvBysB,G8C97N4BrsB,SAASC,K9Ci8NhD9tI,GAAQ,W8Cj8Nak6J,I9Cm8NlBM,iBAAiB,iFAAiFC,0BAA0B,mGAAmGC,2BAA2B,oGAAoGC,+BAA+B,wGAAwGC,wBAAwB,mGAAmGC,oGAAoG,SAASn7J,EAAQU,EAAOJ,GAC/tB,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,G+C78NX,IAAMqrI,GAAYrlI,OAAOqlI,SAInBitB,GADOp7J,EAAQ,QACO,yHAEtBq7J,EAAcltB,EAASC,KAAKprI,QAC9BimI,SAAUpnI,EAAEonI,SAASmyB,GAErBj1B,UAAW,eAEXm1B,QAAS,IAETpH,WAPqC,WAQC,gBAA9BnyJ,KAAKgB,MAAMgD,IAAI,QAAQsiI,IACvBtmI,KAAKwnI,UAIbA,OAbqC,WAcjC,GAAIpjI,GAAQpE,KAAKgB,MAAMgnI,SAEnBwxB,EAAWzyJ,OAAOioH,KAAK,0BAE3B,KAAKlvH,EAAEuB,QAAQ+C,EAAMunJ,kBAAmB,CACpC,GAAM8N,IACFzP,KAAcjjJ,OAAOohI,IAAIphI,OAAOqhI,OAAOwhB,cAAgBzlB,KAAM,YAAahgI,MAAOC,EAAM0vJ,eAAgBxzJ,OAAQ,eAC/GorJ,MAAU3kJ,OAAOogI,KAAK,wBAA0BuyB,OAAQ55J,EAAEiwH,OAAO/vH,KAAKgB,MAAMgD,IAAI,uBAChFmjI,KAAcrnI,EAAEiwH,OAAO3rH,EAAMunJ,kBAGjC6N,GAAWzyJ,OAAOogI,KAAK,UAAY1iI,QAASzE,KAAKknI,SAASuyB,KAG9Dz5J,KAAKgsI,IAAIhd,KAAKwqC,K/Ck9NtBj7J,GAAQ,W+C78NO+6J,I/Cg9NZroC,KAAO,qEAAqE0oC,qGAAqG,SAAS17J,EAAQU,EAAOJ,GAC5M,YAQA,SAASK,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAVjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MgD7/N3gB86J,EhDqgOF,SAAUvuB,GgDpgOzB,QAAAuuB,KAAch7J,EAAAoB,KAAA45J,EAAA,IAAAxzJ,GAAAuiI,EAAA3oI,MAAA45J,EAAA3wB,WAAAzpI,OAAAsqI,eAAA8vB,IAAAl5J,MAAAV,KACDc,WADC,OAEVsF,GAAKohI,SAFKphI,EhDwhOd,MAnBAyiI,GAAU+wB,EAAcvuB,GAWxBrsI,EAAa46J,IACTl6J,IAAK,SACLqB,MAAO,WgD5gOP,GAAI84J,GAAO71H,EAAA,8BAAgChkC,KAAKgB,MAAMgD,IAAI,WAA/C,SACXhE,MAAKulJ,WAAWsU,OhDihObD,GgDzhO+BxtB,SAASC,KhD4hOnD9tI,GAAQ,WgD5hOaq7J,OhD8hOfE,yGAAyG,SAAS77J,EAAQU,EAAOJ,GACvI,YAUA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GARzF32H,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GiDniOX,IAAAw3J,GAAAt6J,EAAA,yCjDwiOIu6J,EAAqBhwB,EAAuB+vB,GiDtiO1CwB,EAAmB3tB,SAASC,KAAKprI,QACnCkxJ,WAD0C,SAAAhoB,GACrB,GAAT2f,GAAS3f,EAAT2f,MACR9pJ,MAAK8pJ,OAASA,EACd9pJ,KAAKwnI,UAGTA,OAN0C,WAOtCxnI,KAAKulJ,WAAWvhH,GAAE,EAAAw0H,EAAA,aAA0B1O,OAAQ9pJ,KAAK8pJ,ajD+iOjEvrJ,GAAQ,WiD3iOOw7J,IjD6iOZC,wCAAwC,wGAAwGC,kGAAkG,SAASh8J,EAAQU,EAAOJ,GAC7Q;AAYA,QAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAhBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MkDjkOhiBkhJ,EAAA/hJ,EAAA,kClDqkOIgiJ,EAAczX,EAAuBwX,GkDnkOpBka,ElD6kOL,SAAU7uB,GkD5kOtB,QAAA6uB,KAAct7J,EAAAoB,KAAAk6J,EAAA,IAAA9zJ,GAAAuiI,EAAA3oI,MAAAk6J,EAAAjxB,WAAAzpI,OAAAsqI,eAAAowB,IAAAx5J,MAAAV,KACDc,WADC,OAGVsF,GAAK8gI,SAAW+Y,EAAA,WAChB75I,EAAKohI,SAJKphI,ElDwnOd,MA3CAyiI,GAAUqxB,EAAW7uB,GAYrBrsI,EAAak7J,IACTx6J,IAAK,iBACLqB,MAAO,WkDnlOP,GAAIo5J,KAYJ,OAVAA,GAAWh0J,KAAKnG,KAAKgB,MAAMgD,IAAI,UAEzBhE,KAAKgB,MAAMgD,IAAI,qBACjBm2J,EAAWh0J,KAAKY,OAAOioH,KAAK,UAAWvqH,QAASzE,KAAKgB,MAAMkrJ,WAAalsJ,KAAKgB,MAAMgD,IAAI,aAAa6xH,KAAO71H,KAAKgB,MAAMgD,IAAI,uBAG9Hm2J,EAAWh0J,KAAKnG,KAAKgB,MAAM01J,oBAE3ByD,EAAWh0J,KAAKnG,KAAKgB,MAAMgD,IAAI,QAAQ6xH,MAEhCskC,EAAWroC,KAAK,QlDulOvBpyH,IAAK,SACLqB,MAAO,WkDplOP,GAAM04J,IACF5N,QAAY7rJ,KAAKgB,MAAMslI,GACvB0jB,KAAYhqJ,KAAKgB,MAAMyqJ,gBACvByH,UAAYpzJ,EAAEiwH,OAAO/vH,KAAKo6J,kBAC1Bh2J,MAAYtE,EAAEiwH,OAAO/vH,KAAKgB,MAAMgD,IAAI,UAGxChE,MAAKulJ,WAAWvhH,EAAEhkC,KAAKknI,SAASuyB,SlDylO7BS,GkDznO4B9tB,SAASC,KlD4nOhD9tI,GAAQ,WkD5nOa27J,IlD8nOlBG,iCAAiC,iGAAiGC,6EAA6E,SAASr8J,EAAQU,EAAOJ,GAC1O,YAgBA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS4pI,GAA2BrY,EAAM9xH,GAAQ,IAAK8xH,EAAQ,KAAM,IAAIsY,gBAAe,4DAAgE,QAAOpqI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B8xH,EAAP9xH,EAElO,QAASqqI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIhqI,WAAU,iEAAoEgqI,GAAeD,GAASjpI,UAAYL,OAAO44H,OAAO2Q,GAAcA,EAAWlpI,WAAagjI,aAAe9hI,MAAO+nI,EAAUzpI,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeypI,IAAYvpI,OAAOwpI,eAAiBxpI,OAAOwpI,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GApBjevpI,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MmDvoOhiB4rI,EAAAzsI,EAAA,oCACAi1I,GnD0oOc1K,EAAuBkC,GmD1oOrCzsI,EAAA,+CAIqBs8J,GnD0oOG/xB,EAAuB0K,GAYvB,SAAUjG,GAG9B,QAASstB,KAGL,MAFA37J,GAAgBoB,KAAMu6J,GAEf5xB,EAA2B3oI,MAAOu6J,EAAkBtxB,WAAazpI,OAAOsqI,eAAeywB,IAAoB75J,MAAMV,KAAMc,YAiFlI,MAtFA+nI,GAAU0xB,EAAmBttB,GAQ7BjuI,EAAau7J,IACT76J,IAAK,mBACLqB,MAAO,SmD3pOMosI,GAAqC,GAApBqtB,GAAoB15J,UAAArC,OAAA,GAAA+B,SAAAM,UAAA,GAAAA,UAAA,GAAN,KACxC25J,EAAattB,EAAgBnlD,QAAUmlD,KAE3C,IAA0B,IAAtBstB,EAAWh8J,OACX,MAAO6yI,SAAQ9f,SAGnB,IAAIkpC,GAAW56J,EAAEoC,IAAIpC,EAAE26J,GAAYv+B,MAAM,MAAO21B,OAIhD,OAFA7xJ,MAAK43I,QAAU53I,KAAKuxI,OAAQ7J,KAAMqkB,KAAKv0B,WAAWkjC,SAAAA,EAAUF,YAAAA,IAAer2B,KAAM,OAAQ2pB,YAAa,qBAE/F9tJ,KAAK43I,WnDmqOZl4I,IAAK,mBACLqB,MAAO,SmDhqOMqD,GACbA,EAAMw1I,kBAAkB55I,KAAKuuI,enDmqO7B7uI,IAAK,6BAILqB,MAAO,SmDzpOgBosI,GAAiB,GAAAgE,GAAAnxI,IAGxCA,MAAK26J,iBACL36J,KAAK06J,SAASp0J,QAAQ,SAACulJ,GACnB,GAAM7qJ,GAAQmsI,EAAgB9Q,WAAYiK,GAAIulB,GAE1C7qJ,IACAmwI,EAAKypB,iBAAiB55J,QnDgqO9BtB,IAAK,iBACLqB,MAAO,WmD3pOFf,KAAKgE,IAAI,qBACVhE,KAAK4pI,IAAI,uBAER5pI,KAAKgE,IAAI,gBACVhE,KAAK4pI,IAAI,kBAER5pI,KAAKgE,IAAI,gBACVhE,KAAK4pI,IAAI,kBAER5pI,KAAKgE,IAAI,YACVhE,KAAK4pI,IAAI,cAER5pI,KAAKgE,IAAI,eACVhE,KAAK4pI,IAAI,iBAER5pI,KAAKgE,IAAI,yBACVhE,KAAK4pI,IAAI,8BnDgqOblqI,IAAK,MACLsE,IAAK,WmDhuOL,MAAO+C,QAAOohI,IAAIphI,OAAOqhI,OAAOyyB,cnDouOhCn7J,IAAK,WACLsE,IAAK,WmD9sOL,MAAOlE,GAAEk/H,MACLh/H,KAAKgE,IAAI,oBACTlE,EAAEoG,KAAKlG,KAAKgE,IAAI,gBAChBhE,KAAKgE,IAAI,eACThE,KAAKgE,IAAI,WACThE,KAAKgE,IAAI,cACThE,KAAKgE,IAAI,6BnD6sOVu2J,GmD7uOoCnuB,SAASsD,OnDgvOxDnxI,GAAQ,WmDhvOag8J,InDkvOlBO,mCAAmC,mFAAmFC,6CAA6C,+FAA+FC,+DAA+D,SAAS/8J,EAAQU,EAAOJ,GAC5V,YAUA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GoDlwOzF,GAAA8kC,GAAAh9J,EAAA,mDpD4vOIi9J,EAAa1yB,EAAuByyB,GoD1vOxC9xB,EAAAlrI,EAAA,6CpD8vOImrI,EAAkBZ,EAAuBW,QoD5vOvCpiI,OAAOo0J,SAAW,GAAID,GAAA,YACxBt3F,GAAkB,aAClB2wE,OAAkB,OAClBjJ,IAAkBvkI,OAAO8sJ,aACzB7lB,KAAkBjnI,OAAOotI,UAAU5I,YACnC2E,eAAkBnpI,OAAOmpI,eACzBnC,eAAkBhnI,OAAOgnI,kBAG7B/pG,EAAE,WACMj9B,OAAOotI,UAAUinB,mBACjB,GAAIhyB,GAAA,epDowOTiyB,4CAA4C,2FAA2FC,kDAAkD,mGAAmGC,+EAA+E,SAASt9J,EAAQU,EAAOJ,GACtY,YAQA,SAASK,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHS,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MqD1xO3gB08J,ErD8xOF,WqD5xOf,QAAAA,GAAArxB,GAA8B,GAAhBmB,GAAgBnB,EAAhBmB,IAAK3S,EAAWwR,EAAXxR,OAAW/5H,GAAAoB,KAAAw7J,GAC1Bx7J,KAAKsrI,IAAMA,EAEXtrI,KAAK24H,SACDqV,KAAsBxtI,OACtB4vI,qBAAsB5vI,QAG1BV,EAAEmB,OAAOjB,KAAK24H,QAASA,GrD23O3B,MAtFA35H,GAAaw8J,IACT97J,IAAK,UACLqB,MAAO,SqDpyOHmrI,EAAQupB,GACsB,kBAAvBz1J,MAAA,IAASksI,IAChBlsI,KAAA,IAASksI,GAAUupB,MrDwyOvB/1J,IAAK,UACLqB,MAAO,SqDryOH00J,GACJz1J,KAAKsrI,IAAI0a,QAAQ,eAAgByP,EAAYz1J,KAAK24H,YrDwyOlDj5H,IAAK,QACLqB,MAAO,SqDtyOL00J,GACFz1J,KAAKsrI,IAAI0a,QAAQ,aAAcyP,EAAYz1J,KAAK24H,YrDyyOhDj5H,IAAK,QACLqB,MAAO,SqDvyOL00J,GACFz1J,KAAKsrI,IAAI0a,QAAQ,iBAAkByP,EAAYz1J,KAAK24H,YrD0yOpDj5H,IAAK,aACLqB,MAAO,SqDxyOA00J,GACPz1J,KAAKsrI,IAAI0a,QAAQ,kBAAmByP,EAAYz1J,KAAK24H,YrD2yOrDj5H,IAAK,QACLqB,MAAO,SqDzyOL00J,GACFz1J,KAAKsrI,IAAI0a,QAAQ,aAAcyP,EAAYz1J,KAAK24H,YrD4yOhDj5H,IAAK,UACLqB,MAAO,SqD1yOH00J,GACJz1J,KAAKsrI,IAAI0a,QAAQ,eAAgByP,EAAYz1J,KAAK24H,YrD6yOlDj5H,IAAK,WACLqB,MAAO,SqD3yOF00J,GACLz1J,KAAKsrI,IAAI0a,QAAQ,gBAAiByP,EAAYz1J,KAAK24H,YrD8yOnDj5H,IAAK,YACLqB,MAAO,SqD5yOD00J,GACNz1J,KAAKsrI,IAAI0a,QAAQ,iBAAkByP,EAAYz1J,KAAK24H,YrD+yOpDj5H,IAAK,WACLqB,MAAO,SqD7yOF00J,GACLz1J,KAAKsrI,IAAI0a,QAAQ,gBAAiByP,EAAYz1J,KAAK24H,YrDgzOnDj5H,IAAK,SACLqB,MAAO,SqD9yOJ00J,GACHz1J,KAAKsrI,IAAI0a,QAAQ,cAAeyP,EAAYz1J,KAAK24H,YrDizOjDj5H,IAAK,gBACLqB,MAAO,SqD/yOG00J,GACVz1J,KAAKsrI,IAAI0a,QAAQ,qBAAsByP,EAAYz1J,KAAK24H,YrDkzOxDj5H,IAAK,iBACLqB,MAAO,SqDhzOIitI,GAOX,MANGluI,GAAEkuI,GAAM3sI,gBACArB,MAAK24H,QAAQqV,KAEpBhuI,KAAK24H,QAAQqV,KAAOA,EAGjBhuI,QrDmzOPN,IAAK,uBACLqB,MAAO,SqDjzOUosI,GAOjB,MANGrtI,GAAEqtI,GAAiB9rI,gBACXrB,MAAK24H,QAAQwU,gBAEpBntI,KAAK24H,QAAQwU,gBAAkBA,EAG5BntI,SrDqzOJw7J,IAGXj9J,GAAQ,WqDx4Oai9J,OrD04OfC,6EAA6E,SAASx9J,EAAQU,EAAOJ,GAC3G,YAQA,SAASK,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHS,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,MsDj5O1hB48J,EtDq5OW,WACb,QAASA,KACL98J,EAAgBoB,KAAM07J,GA4E1B,MAzEA18J,GAAa08J,EAAY,OACrBh8J,IAAK,WACLqB,MAAO,SsD15OKmqJ,EAAOwI,GACnB,GAAMxjB,GAAiBnpI,OAAOmpI,cAE9B,IAAIA,EAAeK,UAAU,yBACzB,MAAO,SAGX,IAAI/F,GAAU0gB,EAAM5kB,GAEhB+uB,EAAsB3B,GAAeA,EAAYmD,QAAQhgC,QAAQ2T,MACjEmxB,EAAsBjI,GAAeA,EAAYoD,YAAYjgC,QAAQ2T,MACrEoxB,EAAsBlI,GAAeA,EAAYqD,qBAAqBlgC,QAAQ2T,OAAiB0gB,EAAM+J,cACrGb,EAAclJ,EAAMkJ,aAAgBlkB,EAAeK,UAAU,aAAgB2a,EAAM2J,wBAA0B,CAEjH,OAAI,iBAAiB1mC,KAAKpnH,OAAOguI,SAASiV,OAASkB,EAAM2Q,aAAe3rB,EAAeK,UAAU,iBACzF8kB,EACO,YAEFnK,EAAMuJ,YAAc,GAAKvJ,EAAMwJ,aAAe,KAAOxkB,EAAeK,UAAU,cAAe2a,EAAM4Q,qBAAuB5rB,EAAeK,UAAU,eACjJ,QAEJ,eAGPorB,EACO,WAGPtG,IAAajB,EACN,UAGPwH,GAAwBxH,GAAgBlJ,EAAM+I,WAI9CG,EACsB,gBAAlBlJ,EAAM/mB,KAAKmC,GACJ,OAGJ,UAGN4kB,EAAM8I,SACX9I,EAAMgJ,0BACNhkB,EAAeK,UAAU,wBACd,YAGP2a,EAAM+I,YAAc/jB,EAAeK,UAAU,iBACtC,OAGJ,cArBI,iBtD+6OX7wI,IAAK,eACLqB,MAAO,SsDx5OSmqJ,EAAOwI,GACvB,MAAOA,IAAeA,EAAYqI,WAAWllC,QAAQq0B,EAAM5kB,UtD25O3D5mI,IAAK,qBACLqB,MAAO,SsDz5OemqJ,EAAOwI,GAC7B,MAAOA,IAAeA,EAAYsI,iBAAiBnlC,QAAQq0B,EAAM5kB,UtD45OjE5mI,IAAK,aACLqB,MAAO,SsD15OOmqJ,EAAOwI,GAErB,MAAOA,IAAeA,EAAYuI,aAAevI,EAAYuI,YAAY/Q,EAAM5kB,KAAO,MtD85OnFo1B,IAGXn9J,GAAQ,WsD75OOm9J,OtD+5OTQ,iEAAiE,SAASj+J,EAAQU,EAAOJ,GAC/F,YAEA,SAASK,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCuD1+OhHuyI,QAAQmG,OAAS,SAAS0kB,GAAU,GAC1BC,GACF,QAAAA,GAAYzkB,EAAW52I,GAAOnC,EAAAoB,KAAAo8J,GAC1Bp8J,KAAK23I,UAAYA,EACjB33I,KAAKe,MAAQA,EAIrB,OAAOuwI,SAAQhW,IAAI6gC,EAASj6J,IAAI,SAAC5D,GAAD,MAE5BgzI,SAAQ9f,QAAQlzH,GAAGq3I,KAAK,SAACv0I,GAAD,MAAS,IAAIg7J,KAAkB,GAAMh7J,KAA7D,SAAyE,SAAC83I,GAAD,MAAS,IAAIkjB,KAAkB,GAAOljB,SAIvH5H,QAAQK,KAAO,SAAStkB,GACpB,MAAO,IAAIikB,SAAQ,SAAC9f,EAASrwH,GAAV,MACf6iC,GAAE2tG,KAAKtkB,GACFykB,KAAK,SAACzrI,GAAD,MAAcmrH,GAAQnrH,KAC3B0rI,KAAK,SAACsqB,EAAKpjB,EAAQC,GAAd,MAAsB/3I,GAAO+3I,avD0/OzCojB,0EAA0E,SAASr+J,EAAQU,EAAOJ,GACxG,YAeA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAbzF32H,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAEXxC,EAAQg+J,UAAY/7J,MwDnhPpB,IAAAkqI,GAAAzsI,EAAA,oCxDuhPI0sI,EAAUnC,EAAuBkC,GwDthPrCI,EAAA7sI,EAAA,iCxD0hPI8sI,EAAiBvC,EAAuBsC,GwDvhPtCyxB,EAAY,SAASnmC,EAAI8V,EAAQZ,GACnC,GAAIY,EAAQ,CACR,GAAM1B,GAAU0B,EAAOra,MAAM,KAAK,GAC5B2qC,EAAcx4H,EAAA,gCAAkCwmG,EAAlC,KACpB,IAAIgyB,EAAY/9J,OAAS,EAErBg+J,QAAQC,aAAa,KAAM,KAAM31J,OAAOguI,SAAS4nB,SAAWvmC,GAG5DomC,EAAY,GAAG3J,YACZ,CAEH4J,QAAQC,aAAa,KAAM,KAAM31J,OAAOguI,SAAS4nB,SAAWvmC,EAC5D,IAAIhyH,GAAQ,GAAIumI,GAAA,WACZiyB,EAAU,GAAItrB,SAAQ,SAAC9f,EAASrwH,GAChCiD,EAAMy4J,cAAcryB,EAAShZ,EAASrwH,IAG1Cy7J,GAAQjnB,KAAK,WACT,GAAImnB,GAAc,GAAI/xB,GAAA,YAAcO,IAAAA,GACpCwxB,GAAY3wB,QAAQ,YAAa/nI,OxDkiPjD7F,GwD3hPIg+J,UAAAA,IxD6hPDzB,mCAAmC,mFAAmFiC,gCAAgC,gFAAgFC,kEAAkE,SAAS/+J,EAAQU,EAAOJ,GACnU,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GyDhkPX,IAAMmF,GAAO1G,OAAOy9J,QAChB9W,IAAK,EACL+W,MAAO,GACPC,KAAM,GACNC,GAAI,GACJC,MAAO,GACPC,KAAM,GACNC,MAAO,IzDokPXh/J,GAAQ,WyDlkPO2H,OzDokPTs3J,mEAAmE,SAASv/J,EAAQU,EAAOJ,GACjG,YAEAiB,QAAOC,eAAelB,EAAS,cAC3BwC,OAAO,IAIXxC,EAAQ,W0DplPO,WACXylC,EAAE,WACE,UACWA,GAAEy5H,aAAaC,QAAQ,cAE9B15H,EAAE,uBAAuB/9B,KAAK,SAACnI,EAAG8lE,GAC9B,GAAI+5F,GAAO35H,EAAE4/B,GACT4nF,EAAMmS,EAAK5Z,KAAK,WAEfjkJ,GAAE0rJ,GAAKnqJ,WAAcs8J,EAAK3uC,QAC3BhrF,EAAEhgC,IAAO+C,OAAOotI,UAAUoU,IAA1B,eAA4CiD,GAAO7V,KAAK,SAACtvI,GAChDs3J,EAAK3uC,QACN2uC,EAAK5xB,OAAO/nG,EAAE,MAAO39B,QAVzC,QAiBI29B,EAAE45H,WACEF,SAAUG,aAAc75H,EAAE,SAAS5iC,OAAS+yI,UAAU2pB,kB1DylPhEC,+FAA+F,SAAS9/J,EAAQU,EAAOJ,GAC7H,YAsBA,SAASiqI,GAAuBrS,GAAO,MAAOA,IAAOA,EAAIsS,WAAatS,GAAQuS,UAAWvS,GAEzF,QAASv3H,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAtBhHS,OAAOC,eAAelB,EAAS,cAC3BwC,OAAO,GAGX,IAAI/B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIrB,GAAI,EAAGA,EAAIqB,EAAMV,OAAQX,IAAK,CAAE,GAAIsB,GAAaD,EAAMrB,EAAIsB,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAYe,UAAWF,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,M2DrnPhiBk0I,EAAA/0I,EAAA,uC3DynPIg1I,EAAgBzK,EAAuBwK,G2DxnP3CtI,EAAAzsI,EAAA,uC3D4nPI0sI,EAAUnC,EAAuBkC,G2D3nPrCI,EAAA7sI,EAAA,oC3D+nPI8sI,EAAiBvC,EAAuBsC,G2D9nP5CkzB,EAAA//J,EAAA,0BAEqBggK,E3DooPQ,W2DnoPzB,QAAAA,GAAYplC,EAAYyS,EAAKtqI,GAAOpC,EAAAoB,KAAAi+J,EAChC,IAAIxZ,GAAOxR,EAAA,WAAYjvI,IAAI,UAAU,EACrChE,MAAKk+J,UAAYzZ,EAAOA,EAAK5yB,MAAM,QACnC7xH,KAAKksI,OAASlsI,KAAKk+J,UAAU,IAAM,KACnCl+J,KAAKwqI,QAAUxqI,KAAKk+J,UAAU,IAAM,KACpCl+J,KAAKm+J,OAASn+J,KAAKk+J,UAAU,IAAM,EACnCl+J,KAAKgB,MAAQA,GAAS,KACtBhB,KAAK64H,WAAaA,EAAW7wC,OAC7BhoF,KAAKsrI,IAAMA,E3DmsPf,MAvDAtsI,GAAai/J,IACTv+J,IAAK,gBACLqB,MAAO,W2D1oPK,GAAAqF,GAAApG,IACZ,IAAKA,KAAKksI,QAAWlsI,KAAKwqI,QAA1B,GAIKxqI,KAAKgB,OAAWhB,KAAKgB,OAAShB,KAAKgB,MAAMgD,IAAI,QAAUhE,KAAKwqI,WAC7DxqI,KAAKgB,MAAQlB,EAAE86H,KAAK56H,KAAK64H,WAAY,SAAC73H,GAAD,MAAWA,GAAMslI,KAAOlgI,EAAKokI,UAGtE,IAAIgB,GAAe,GAAIT,GAAA,YAAcO,IAAKtrI,KAAKsrI,KAE/C,IAAItrI,KAAKgB,MAAO,CAKZ,GAHAiyI,EAAA,WAAYwC,OAAO,UAGC,cAAhBz1I,KAAKksI,QAA0BlsI,KAAKgB,MAAMgD,IAAI,WAO9C,YANqC,WAAjChE,KAAKgB,MAAMgD,IAAI,cACfhE,KAAKsrI,IAAI0a,QAAQ,uBAAyByP,WAAYz1J,KAAKgB,QAE3DhB,KAAKsrI,IAAI0a,QAAQ,yBAA2ByP,WAAYz1J,KAAKgB,QAMrEhB,MAAKgB,MAAM4oI,IAAI,iBAAkB5pI,KAAKm+J,QACtC3yB,EAAaW,QAAQnsI,KAAKksI,OAAQlsI,KAAKgB,WAEpC,IAAoB,cAAhBhB,KAAKksI,QAA0BloG,EAAA,mCAAqChkC,KAAKwqI,QAA1C,MAAuD/rI,OAAS,GAGtG,EAAAu/J,EAAAzB,WAAU,GAAIv8J,KAAKksI,OAAQlsI,KAAKsrI,KAChC2H,EAAA,WAAYwC,OAAO,cAChB,CAEH,GAAIrxI,GAAQ,GAAIumI,GAAA,WACZiyB,EAAU,GAAItrB,SAAQ,SAAC9f,EAASrwH,GAChCiD,EAAMy4J,cAAcz2J,EAAKokI,QAAShZ,EAASrwH,IAG/Cy7J,GAAQjnB,KAAK,WACTvvI,EAAKpF,OAASoF,EAAKpF,MAAM4oI,IAAI,iBAAkBxjI,EAAK+3J,QACpD3yB,EAAaW,QAAQ/lI,EAAK8lI,OAAQ9nI,GAClC6uI,EAAA,WAAYwC,OAAO,kB3DmpPxBwoB,IAGX1/J,GAAQ,W2D/sPa0/J,I3DitPlBxhB,sCAAsC,kFAAkF2hB,sCAAsC,mFAAmFrM,mCAAmC,8EAA8EsM,yBAAyB,gFAAgF","file":"home.bundle.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i LUMA_THRESHOLD_YIQ ? '#000000' : '#ffffff';\n }\n }, {\n key: 'getTextColorFromHex',\n value: function getTextColorFromHex(backgroundHex) {\n var rgb = ColorUtility.hexToRGB(backgroundHex);\n return ColorUtility.getTextColorFromRGB(rgb);\n }\n }, {\n key: 'shadeColorHex',\n value: function shadeColorHex(hexColor, percent) {\n var rgb = ColorUtility.hexToRGB(hexColor);\n var shadedRGB = ColorUtility.shadeColor(rgb, percent);\n return ColorUtility.rgbToHex(shadedRGB);\n }\n }, {\n key: 'shadeColor',\n value: function shadeColor(rgb, percent) {\n percent = Math.abs(percent);\n var hsl = ColorUtility.rgbToHsl(rgb[0], rgb[1], rgb[2]);\n var l = hsl[2];\n if (l >= 0.5) {\n percent *= -1;\n }\n l = l + percent;\n hsl[2] = l;\n return ColorUtility.hslToRgb(hsl[0], hsl[1], hsl[2]);\n }\n\n /**\n * Credit: taken from https://stackoverflow.com/a/9493060\n *\n * Converts an HSL color value to RGB. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes h, s, and l are contained in the set [0, 1] and\n * returns r, g, and b in the set [0, 255].\n *\n * @param {number} h The hue\n * @param {number} s The saturation\n * @param {number} l The lightness\n * @return {Array} The RGB representation\n */\n\n }, {\n key: 'hslToRgb',\n value: function hslToRgb(h, s, l) {\n var r, g, b;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var hue2rgb = function hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n };\n\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n }\n\n /**\n * Credit: taken from https://stackoverflow.com/a/9493060\n *\n * Converts an RGB color value to HSL. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes r, g, and b are contained in the set [0, 255] and\n * returns h, s, and l in the set [0, 1].\n *\n * @param {number} r The red color value\n * @param {number} g The green color value\n * @param {number} b The blue color value\n * @return {Array} The HSL representation\n */\n\n }, {\n key: 'rgbToHsl',\n value: function rgbToHsl(r, g, b) {\n r = r / 255;\n g = g / 255;\n b = b / 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = void 0,\n s = void 0,\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);break;\n case g:\n h = (b - r) / d + 2;break;\n case b:\n h = (r - g) / d + 4;break;\n }\n h /= 6;\n }\n\n return [h, s, l];\n }\n }, {\n key: 'highContrastBlue',\n\n\n // see _vars.scss for the corresponding css color vars\n //\n get: function get() {\n return '#0000FF';\n }\n }, {\n key: 'highContrastBlueHover',\n get: function get() {\n return '#0000F5';\n }\n }, {\n key: 'highContrastYellow',\n get: function get() {\n return '#FFFF00';\n }\n }, {\n key: 'highContrastYellowHover',\n get: function get() {\n return '#F5E600';\n }\n }]);\n\n return ColorUtility;\n}();\n\nexports['default'] = ColorUtility;\n\n},{}],\"C:\\\\projects\\\\lightning\\\\models\\\\dao\\\\MediaParameters.js\":[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _ = require('underscore');\n\n/**\n * Defines all the available input parameters for the media endpoint\n * @class MediaParameters\n * ref: https://thunder-api.test.overdrive.com/docs/ui/index#!/Media/V2Media_IndexMedia\n */\nmodule.exports = function () {\n function MediaParameters() {\n _classCallCheck(this, MediaParameters);\n\n this.query = '';\n this.mediaType = '';\n this.title = '';\n this.series = '';\n this.publisherId = '';\n this.publisherEntityId = null;\n this.imprintId = '';\n this.identifier = '';\n this.creator = '';\n this.creatorId = null;\n this.addedDate = '';\n this.availableFirst = null;\n this.showOnlyAvailable = false;\n this.showOnlyPrerelease = false;\n this.hasAudioSynchronizedText = null;\n this.collectionId = 0;\n\n // All of the following arrays are string arrays\n this.format = [];\n this.subject = [];\n this.bisacCode = [];\n this.maturityLevel = [];\n this.language = [];\n this.atosLevel = [];\n this.lexileScore = [];\n this.interestLevel = [];\n this.gradeLevel = [];\n this.includedFacets = [];\n\n this.sortBy = 'relevance';\n this.show = 'owned';\n this.page = 1;\n this.perPage = 24;\n this.includeFacets = true;\n this.includeNoFormatTitles = false;\n this.filterCpcTitles = false;\n this.maxItems = 0;\n\n Object.assign.apply(Object, [this].concat(Array.prototype.slice.call(arguments)));\n }\n\n _createClass(MediaParameters, [{\n key: 'applyRoomFiltersAndUserPrefs',\n value: function applyRoomFiltersAndUserPrefs(roomFilters, userPreferences) {\n if (roomFilters) {\n // Note that the names don't match up so we can't just extend\n if (roomFilters.maturityLevels) {\n this.maturityLevel = roomFilters.maturityLevels;\n }\n if (roomFilters.subjects) {\n this.subject = roomFilters.subjects;\n }\n if (roomFilters.language) {\n this.language = roomFilters.language;\n }\n if (roomFilters.mediaType) {\n this.mediaType = roomFilters.mediaType;\n }\n }\n\n if (userPreferences) {\n // There may be more user prefs to apply besides audience-settings but this\n // was the immediate need. We can add more as they come up.\n if (userPreferences['audience-setting'] && this.maturityLevel.length === 0) {\n var audience = userPreferences['audience-setting'];\n var maturityLevels = [];\n _.each(_.keys(audience), function (key) {\n if (audience[key] && key !== 'all') {\n maturityLevels.push(key);\n }\n });\n if (maturityLevels.length > 0) {\n this.maturityLevel = maturityLevels;\n }\n }\n }\n }\n }, {\n key: 'serialize',\n value: function serialize() {\n var _this = this;\n\n var response = _.extend({}, this);\n\n // Remove all properties that do not have a value set\n Object.keys(response).forEach(function (key) {\n !_this._hasValue(response[key]) && delete response[key];\n });\n\n return response;\n }\n }, {\n key: '_hasValue',\n value: function _hasValue(value) {\n return !(_(value).isObject() && _(value).isEmpty() || !value) || value === false;\n }\n }]);\n\n return MediaParameters;\n}();\n\n\n},{\"underscore\":\"C:\\\\projects\\\\lightning\\\\node_modules\\\\underscore\\\\underscore.js\"}],\"C:\\\\projects\\\\lightning\\\\node_modules\\\\he\\\\he.js\":[function(require,module,exports){\n(function (global){\n/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],\"C:\\\\projects\\\\lightning\\\\node_modules\\\\path-browserify\\\\index.js\":[function(require,module,exports){\n(function (process){\n// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n\n}).call(this,require('_process'))\n\n},{\"_process\":\"C:\\\\projects\\\\lightning\\\\node_modules\\\\process\\\\browser.js\"}],\"C:\\\\projects\\\\lightning\\\\node_modules\\\\process\\\\browser.js\":[function(require,module,exports){\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],\"C:\\\\projects\\\\lightning\\\\node_modules\\\\querystring-es3\\\\decode.js\":[function(require,module,exports){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\node_modules\\\\querystring-es3\\\\encode.js\":[function(require,module,exports){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\node_modules\\\\querystring-es3\\\\index.js\":[function(require,module,exports){\n'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n\n},{\"./decode\":\"C:\\\\projects\\\\lightning\\\\node_modules\\\\querystring-es3\\\\decode.js\",\"./encode\":\"C:\\\\projects\\\\lightning\\\\node_modules\\\\querystring-es3\\\\encode.js\"}],\"C:\\\\projects\\\\lightning\\\\node_modules\\\\underscore\\\\underscore.js\":[function(require,module,exports){\n(function (global){\n// Underscore.js 1.9.1\n// http://underscorejs.org\n// (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` (`self`) in the browser, `global`\n // on the server, or `this` in some virtual machines. We use `self`\n // instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n this ||\n {};\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype;\n var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n // Create quick reference variables for speed access to core prototypes.\n var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for their old module API. If we're in\n // the browser, add `_` as a global object.\n // (`nodeType` is checked to ensure that `module`\n // and `exports` are not HTML elements.)\n if (typeof exports != 'undefined' && !exports.nodeType) {\n if (typeof module != 'undefined' && !module.nodeType && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.9.1';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n var builtinIteratee;\n\n // An internal function to generate callbacks that can be applied to each\n // element in a collection, returning the desired result — either `identity`,\n // an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (_.iteratee !== builtinIteratee) return _.iteratee(value, context);\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value) && !_.isArray(value)) return _.matcher(value);\n return _.property(value);\n };\n\n // External wrapper for our callback generator. Users may customize\n // `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n // This abstraction hides the internal-only argCount argument.\n _.iteratee = builtinIteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // Some functions take a variable number of arguments, or a few expected\n // arguments at the beginning and then a variable number of values to operate\n // on. This helper accumulates all remaining arguments past the function’s\n // argument length (or an explicit `startIndex`), into an array that becomes\n // the last argument. Similar to ES6’s \"rest parameter\".\n var restArguments = function(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var shallowProperty = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n var has = function(obj, path) {\n return obj != null && hasOwnProperty.call(obj, path);\n }\n\n var deepGet = function(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object.\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = shallowProperty('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n var createReduce = function(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n };\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? _.findIndex : _.findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (_.isFunction(path)) {\n func = path;\n } else if (_.isArray(path)) {\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return _.map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n });\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection.\n _.shuffle = function(obj) {\n return _.sample(obj, Infinity);\n };\n\n // Sample **n** random values from a collection using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? _.clone(obj) : _.values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = _.random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n });\n\n var reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (_.isString(obj)) {\n // Keep surrogate pair characters together\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n }, true);\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, Boolean);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, output) {\n output = output || [];\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (shallow) {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n } else {\n flatten(value, shallow, strict, output);\n idx = output.length;\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = restArguments(function(array, otherArrays) {\n return _.difference(array, otherArrays);\n });\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // The faster algorithm will not work with an iteratee if the iteratee\n // is not a one-to-one function, so providing an iteratee will disable\n // the faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = restArguments(function(arrays) {\n return _.uniq(flatten(arrays, true, true));\n });\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n });\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices.\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = restArguments(_.unzip);\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values. Passing by pairs is the reverse of _.pairs.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions.\n var createPredicateIndexFinder = function(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n };\n\n // Returns the first index on an array-like that passes a predicate test.\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions.\n var createIndexFinder = function(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n };\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Chunk a single array into multiple arrays, each containing `count` or fewer\n // items.\n _.chunk = function(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments.\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = restArguments(function(func, context, args) {\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n });\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder by default, allowing any combination of arguments to be\n // pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\n _.partial = restArguments(function(func, boundArgs) {\n var placeholder = _.partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n });\n\n _.partial.placeholder = _;\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = _.bind(obj[key], obj);\n }\n });\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n });\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, result;\n\n var later = function(context, args) {\n timeout = null;\n if (args) result = func.apply(context, args);\n };\n\n var debounced = restArguments(function(args) {\n if (timeout) clearTimeout(timeout);\n if (immediate) {\n var callNow = !timeout;\n timeout = setTimeout(later, wait);\n if (callNow) result = func.apply(this, args);\n } else {\n timeout = _.delay(later, wait, this, args);\n }\n\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return debounced;\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n _.restArguments = restArguments;\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n var collectNonEnumProps = function(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = _.isFunction(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n };\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`.\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object.\n // In contrast to _.map it returns an object.\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n // The opposite of _.object.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`.\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s).\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test.\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Internal pick helper function to determine if `obj` has key `key`.\n var keyInObj = function(value, key, obj) {\n return key in obj;\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (_.isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = _.allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n });\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = _.map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n });\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq, deepEq;\n eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n };\n\n // Internal recursive comparison function for `isEqual`.\n deepEq = function(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError, isMap, isWeakMap, isSet, isWeakSet.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol', 'Map', 'WeakMap', 'Set', 'WeakSet'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\n var nodelist = root.document && root.document.childNodes;\n if (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return !_.isSymbol(obj) && isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`?\n _.isNaN = function(obj) {\n return _.isNumber(obj) && isNaN(obj);\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, path) {\n if (!_.isArray(path)) {\n return has(obj, path);\n }\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (obj == null || !hasOwnProperty.call(obj, key)) {\n return false;\n }\n obj = obj[key];\n }\n return !!length;\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n // Creates a function that, when passed an object, will traverse that object’s\n // properties down the given `path`, specified as an array of keys or indexes.\n _.property = function(path) {\n if (!_.isArray(path)) {\n return shallowProperty(path);\n }\n return function(obj) {\n return deepGet(obj, path);\n };\n };\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n if (obj == null) {\n return function(){};\n }\n return function(path) {\n return !_.isArray(path) ? obj[path] : deepGet(obj, path);\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // Traverses the children of `obj` along `path`. If a child is a function, it\n // is invoked with its parent as context. Returns the value of the final\n // child, or `fallback` if any child is undefined.\n _.result = function(obj, path, fallback) {\n if (!_.isArray(path)) path = [path];\n var length = path.length;\n if (!length) {\n return _.isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = _.isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var chainResult = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return chainResult(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return chainResult(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return String(this._wrapped);\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define == 'function' && define.amd) {\n define('underscore', [], function() {\n return _;\n });\n }\n}());\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\GetACardModal\\\\GetACardModal.html.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _window = window,\n html = _window.html,\n url = _window.url,\n routes = _window.routes;\n\nexports['default'] = function () {\n return '\\n
\\n ' + html('getCard.needCard') + '\\n ' + html('getCard.youNeedACard') + '
' + html('getCard.getByMobile') + '
\\n
\\n ' + html('getCard.getCard') + '\\n ' + html('getCard.noIHaveCard') + '\\n
\\n ' + html('getCard.getCard') + '\\n ' + html('getCard.noIHaveCard') + '\\n';\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\GetACardModal\\\\GetACardModal.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _modal = require('../common/modal');\n\nvar _GetACardModal = require('./GetACardModal.html');\n\nvar _GetACardModal2 = _interopRequireDefault(_GetACardModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GetACardModal = function (_Modal) {\n _inherits(GetACardModal, _Modal);\n\n function GetACardModal() {\n _classCallCheck(this, GetACardModal);\n\n var content = (0, _GetACardModal2['default'])();\n var modalContents = {\n classes: ['GetACardModal'],\n title: window.html('getCard.needCard'),\n hiddenTitle: true,\n content: content\n };\n Cookies.set('gacPromoDismissed', 1, { httpOnly: false });\n return _possibleConstructorReturn(this, (GetACardModal.__proto__ || Object.getPrototypeOf(GetACardModal)).call(this, modalContents));\n }\n\n return GetACardModal;\n}(_modal.Modal);\n\nexports['default'] = GetACardModal;\n\n},{\"../common/modal\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\common\\\\modal.js\",\"./GetACardModal.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\GetACardModal\\\\GetACardModal.html.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\campaign\\\\templates\\\\Campaign.html.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports['default'] = function (_ref) {\n var campaign = _ref.campaign,\n roomClass = _ref.roomClass;\n return '\\n
\\n
\\n
\\n
\\n

\\n ' + campaign.name.toUpperCase() + '\\n


\\n
\\n
\\n
\\n
    \\n
  • \\n
\\n
\\n
\\n ' + campaign.description + '\\n
\\n
\\n ' + (campaign.type === 'BLR' ? '\\n
\\n ' + (campaign.items.length > 1 ? '\\n \\n  ' + window.html('hero.alsoAvailableAudiobook') + ' \\n \\n ' : '') + '\\n
\\n ' : '') + '\\n
\\n
\\n
\\n';\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\campaign\\\\views\\\\Campaign.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Title = require('../../media/models/Title');\n\nvar _Title2 = _interopRequireDefault(_Title);\n\nvar _TitleCard = require('../../media/TitleCard');\n\nvar _TitleCard2 = _interopRequireDefault(_TitleCard);\n\nvar _TitleActions = require('../../../title-actions/TitleActions');\n\nvar _TitleActions2 = _interopRequireDefault(_TitleActions);\n\nvar _Campaign = require('../templates/Campaign.html');\n\nvar _Campaign2 = _interopRequireDefault(_Campaign);\n\nvar _svgLoader = require('../../../util/svgLoader');\n\nvar _svgLoader2 = _interopRequireDefault(_svgLoader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Campaign = function (_Backbone$View) {\n _inherits(Campaign, _Backbone$View);\n\n _createClass(Campaign, [{\n key: 'roomClass',\n get: function get() {\n return this.currentRoom ? 'is-' + this.currentRoom.themeName : '';\n }\n }]);\n\n function Campaign(_ref) {\n var bus = _ref.bus,\n currentRoom = _ref.currentRoom,\n campaign = _ref.campaign;\n\n _classCallCheck(this, Campaign);\n\n var _this = _possibleConstructorReturn(this, (Campaign.__proto__ || Object.getPrototypeOf(Campaign)).apply(this, arguments));\n\n _this.bus = bus;\n _this.currentRoom = currentRoom;\n _this.campaign = campaign;\n\n _this.model = _this.model || new _Title2['default']();\n _this.titleActions = new _TitleActions2['default']({ bus: _this.bus });\n _this.titleCard = new _TitleCard2['default']({ model: _this.model });\n\n _this.listenTo(_this.model, 'title:action', _this._handleTitleAction);\n return _this;\n }\n\n _createClass(Campaign, [{\n key: 'render',\n value: function render() {\n var $campaign = $((0, _Campaign2['default'])(this));\n\n this.model.setContext({\n campaign: this.campaign\n });\n\n $campaign.find('.Campaign-fullCoverContainer').append(this.titleCard.render().el);\n\n this.$el.empty().append($campaign);\n\n (0, _svgLoader2['default'])();\n }\n }, {\n key: '_handleTitleAction',\n value: function _handleTitleAction(_ref2) {\n var action = _ref2.action,\n model = _ref2.model;\n\n this.titleActions.perform(action, model);\n }\n }]);\n\n return Campaign;\n}(Backbone.View);\n\nexports['default'] = Campaign;\n\n},{\"../../../title-actions/TitleActions\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\title-actions\\\\TitleActions.js\",\"../../../util/svgLoader\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\svgLoader.js\",\"../../media/TitleCard\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\TitleCard.js\",\"../../media/models/Title\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\models\\\\Title.js\",\"../templates/Campaign.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\campaign\\\\templates\\\\Campaign.html.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\CollectionDefinition.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _MediaInterface = require('../media/MediaInterface');\n\nvar _MediaInterface2 = _interopRequireDefault(_MediaInterface);\n\nvar _GeneratedCollectionDetails = require('../../../../business-objects/GeneratedCollectionDetails');\n\nvar _GeneratedCollectionDetails2 = _interopRequireDefault(_GeneratedCollectionDetails);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// ref: Thunder.Models.ResponseModels.CollectionDefinition\nvar CollectionDefinition = function (_Backbone$Model) {\n _inherits(CollectionDefinition, _Backbone$Model);\n\n _createClass(CollectionDefinition, [{\n key: 'defaults',\n value: function defaults() {\n return {\n id: '0',\n name: '',\n description: '',\n availabilityOption: '',\n showOnlyAvailable: false,\n showOnlyPrerelease: false,\n sortByAvailability: false,\n curatedCollectionDetails: null,\n generatedCollectionDetails: null,\n lastModified: null,\n order: 0,\n\n // Computed property\n totalItems: 0\n };\n }\n }, {\n key: 'idAttribute',\n get: function get() {\n return 'id';\n }\n }, {\n key: 'collectionOptions',\n get: function get() {\n var options = {\n includeFacets: false,\n perPage: this.pageSize || 6,\n shuffle: this.shuffle || this.isLuckyDay\n };\n if (this.get('sortByAvailability') || this.get('availabilityOption') === 'available-first') {\n options.availableFirst = true;\n }\n if (this.get('showOnlyAvailable') || this.get('availabilityOption') === 'available-only') {\n options.showOnlyAvailable = true;\n }\n if (this.get('showOnlyPrerelease')) {\n options.showOnlyPrerelease = true;\n }\n if (this.useListOrder) {\n options.sortBy = 'listorder';\n }\n\n return options;\n }\n }, {\n key: 'isLuckyDay',\n get: function get() {\n return this.get('availabilityOption') === 'available-luckyday';\n }\n }, {\n key: 'isGenerated',\n get: function get() {\n return !_(this.get('generatedCollectionDetails')).isEmpty();\n }\n }, {\n key: 'isCurated',\n get: function get() {\n return !_(this.get('curatedCollectionDetails')).isEmpty();\n }\n }, {\n key: 'useListOrder',\n get: function get() {\n return this.isCurated && this.get('curatedCollectionDetails').isOrdered;\n }\n\n /**\n * @prop {TitleCollection} collection\n * @memberof CollectionDefinition\n */\n\n }]);\n\n function CollectionDefinition() {\n _classCallCheck(this, CollectionDefinition);\n\n var _this = _possibleConstructorReturn(this, (CollectionDefinition.__proto__ || Object.getPrototypeOf(CollectionDefinition)).apply(this, arguments));\n\n _this._mediaInterface = new _MediaInterface2['default']();\n\n _this.titleCollection = _this._mediaInterface.items;\n\n _this.listenTo(_this.titleCollection, 'all', function () {\n _this.set('totalItems', _this.titleCollection.length);\n });\n return _this;\n }\n\n _createClass(CollectionDefinition, [{\n key: 'fetchCollectionTitles',\n value: function fetchCollectionTitles(_ref) {\n var patronSettings = _ref.patronSettings,\n room = _ref.room;\n\n // Parse the current room's maturityLevels if there is a room, and a maturityLevels filter has been set\n var roomHasMaturityLevelFilter = !_.isEmpty(room && room.filters && room.filters.maturityLevels);\n\n var patronMaturityLevelPreferences = this._parsePatronAudienceSettings(patronSettings);\n\n if (this.isGenerated) {\n var genColDetails = this.get('generatedCollectionDetails');\n if (this.attributes.sortBy) {\n genColDetails.sortBy = this.attributes.sortBy;\n }\n var details = new _GeneratedCollectionDetails2['default'](genColDetails);\n var params = details.serializeForSearch();\n\n if (!!patronSettings.showOnlyAvailable) {\n params.showOnlyAvailable = true;\n }\n\n // If we are in a room with maturity filters applied, the filters will be apart of the collection definition and we can simply query for the collection\n // User preferences should NOT override a room's maturity filter\n if (roomHasMaturityLevelFilter) {\n return this._mediaInterface.fetchCollectionByParameters(params, this.collectionOptions);\n }\n // Otherwise determine if the User's maturity filter settings cover the collection's maturityLevel settings\n else {\n var generatedCollectionOptions = Object.assign({}, this.collectionOptions);\n\n if (!_(patronMaturityLevelPreferences).isEmpty() && _(params.maturityLevel).isEmpty()) {\n Object.assign(generatedCollectionOptions, { maturityLevel: patronMaturityLevelPreferences });\n }\n\n // Fake an empty response if all the auto generated collection's filters are not covered by the user's maturity level settings\n return this._patronFiltersPermitCollection(params.maturityLevel, patronMaturityLevelPreferences) ? this._mediaInterface.fetchCollectionByParameters(params, generatedCollectionOptions) : this._mediaInterface.fetchEmptyResponse();\n }\n }\n // else if \"isCurated\"\n else {\n var curatedCollectionOptions = Object.assign({}, this.collectionOptions);\n\n if (!!patronSettings.showOnlyAvailable) {\n curatedCollectionOptions.showOnlyAvailable = true;\n }\n\n // If we are NOT in a room, apply a user's maturity settings if present to the collection request\n // The expectation is that if none of the content satisfies the user's filter its acceptable that no results are returned\n if (_(room).isEmpty()) {\n Object.assign(curatedCollectionOptions, { maturityLevel: patronMaturityLevelPreferences });\n }\n\n return this._mediaInterface.fetchCollectionById(this.id, curatedCollectionOptions);\n }\n }\n\n // Convert the patron audience settings model into an array of filter terms that MediaInterface understands, ex:\n // \"audience-setting\": {\n // \"all\" : false,\n // \"juvenile\" : false,\n // \"youngadult\" : true,\n // \"generalcontent\" : true,\n // \"adultonly\" : true\n // }\n // to: [\"youngadult\", \"generalcontent\", \"adultonly\"]\n /** @returns {string[]} */\n\n }, {\n key: '_parsePatronAudienceSettings',\n value: function _parsePatronAudienceSettings(patronSettings) {\n var patronAudienceSetting = patronSettings && patronSettings['audience-setting'] || {};\n\n if (_(patronAudienceSetting).isEmpty() || patronAudienceSetting.all) {\n return [];\n }\n\n var audienceFilters = [];\n _(patronAudienceSetting).each(function (isApplied, key) {\n if (isApplied && key !== \"all\") {\n audienceFilters.push(key);\n }\n });\n\n return audienceFilters;\n }\n }, {\n key: '_patronFiltersPermitCollection',\n value: function _patronFiltersPermitCollection() {\n var collectionMaturityFilters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var userMaturityFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (userMaturityFilters.length === 0) {\n return true;\n }\n\n var collectionLower = collectionMaturityFilters.map(function (filter) {\n return filter.toLowerCase();\n });\n var userLower = userMaturityFilters.map(function (filter) {\n return filter.toLowerCase();\n });\n\n return _(collectionLower).difference(userLower).length === 0;\n }\n }]);\n\n return CollectionDefinition;\n}(Backbone.Model);\n\nexports['default'] = CollectionDefinition;\n\n},{\"../../../../business-objects/GeneratedCollectionDetails\":\"C:\\\\projects\\\\lightning\\\\business-objects\\\\GeneratedCollectionDetails.js\",\"../media/MediaInterface\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\MediaInterface.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\CollectionHighlightFactory.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _CollectionHighlight = require('../collection_highlight/views/CollectionHighlight');\n\nvar _CollectionHighlight2 = _interopRequireDefault(_CollectionHighlight);\n\nvar _SlantedCollectionHightlight = require('../collection_highlight_slanted/SlantedCollectionHightlight');\n\nvar _SlantedCollectionHightlight2 = _interopRequireDefault(_SlantedCollectionHightlight);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _window = window,\n featureManager = _window.featureManager;\n\nvar CollectionHighlightViewFactory = function () {\n function CollectionHighlightViewFactory() {\n _classCallCheck(this, CollectionHighlightViewFactory);\n }\n\n _createClass(CollectionHighlightViewFactory, null, [{\n key: 'Build',\n value: function Build(collectionDefinition, viewOptions) {\n var forceSlanted = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (featureManager.isEnabled('LuckyDay') && collectionDefinition.isLuckyDay || forceSlanted) {\n return new _SlantedCollectionHightlight2['default'](viewOptions);\n } else {\n return new _CollectionHighlight2['default'](viewOptions);\n }\n }\n }]);\n\n return CollectionHighlightViewFactory;\n}();\n\nexports['default'] = CollectionHighlightViewFactory;\n\n},{\"../collection_highlight/views/CollectionHighlight\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight\\\\views\\\\CollectionHighlight.js\",\"../collection_highlight_slanted/SlantedCollectionHightlight\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight_slanted\\\\SlantedCollectionHightlight.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\CollectionManager.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _CollectionDefinition = require('./CollectionDefinition');\n\nvar _CollectionDefinition2 = _interopRequireDefault(_CollectionDefinition);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CollectionManager = function (_Backbone$Collection) {\n _inherits(CollectionManager, _Backbone$Collection);\n\n function CollectionManager() {\n _classCallCheck(this, CollectionManager);\n\n return _possibleConstructorReturn(this, (CollectionManager.__proto__ || Object.getPrototypeOf(CollectionManager)).apply(this, arguments));\n }\n\n _createClass(CollectionManager, [{\n key: 'model',\n get: function get() {\n return _CollectionDefinition2['default'];\n }\n }]);\n\n return CollectionManager;\n}(Backbone.Collection);\n\nexports['default'] = CollectionManager;\n\n},{\"./CollectionDefinition\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\CollectionDefinition.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\PageManager.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _CollectionDefinition = require('./CollectionDefinition');\n\nvar _CollectionDefinition2 = _interopRequireDefault(_CollectionDefinition);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar PageManager = function (_Backbone$Model) {\n _inherits(PageManager, _Backbone$Model);\n\n function PageManager() {\n _classCallCheck(this, PageManager);\n\n return _possibleConstructorReturn(this, (PageManager.__proto__ || Object.getPrototypeOf(PageManager)).apply(this, arguments));\n }\n\n _createClass(PageManager, [{\n key: 'fetchRoomById',\n\n\n // page == room, page has views, one of which is the home-page collections collection\n // ref: /v2/libraries/qa/pages\n value: function fetchRoomById() {\n var _this2 = this;\n\n var roomId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'home';\n\n this.url = window.url(window.routes.rest.rooms.get, { roomId: roomId });\n\n return new Promise(function (resolve, reject) {\n _this2.fetch({\n timeout: 10000,\n success: function success(model, response, options) {\n return resolve(response);\n },\n error: function error(model, response, options) {\n return reject(response);\n }\n });\n });\n }\n }, {\n key: 'fetchCampaignById',\n value: function fetchCampaignById(campaignId) {\n return new Promise(function (resolve, reject) {\n $.ajax({\n url: window.url(window.routes.rest.campaigns.get, { campaignId: campaignId }),\n dataType: 'json',\n timeout: 10000\n }).done(function (response) {\n return resolve(response);\n }).fail(function (jqHXR, textStatus, errorThrown) {\n return reject(jqHXR);\n });\n });\n }\n }, {\n key: 'fetchCollectionById',\n value: function fetchCollectionById(collectionId) {\n return new Promise(function (resolve, reject) {\n $.ajax({\n url: window.url(window.routes.rest.collections.getById, { id: collectionId }),\n dataType: 'json',\n timeout: 10000\n }).done(function (response) {\n return resolve(new _CollectionDefinition2['default'](response));\n }).fail(function (jqHXR, textStatus, errorThrown) {\n return reject(jqHXR);\n });\n });\n }\n }, {\n key: 'getView',\n value: function getView(viewName) {\n if (!this.isLoaded) {\n return null;\n }\n\n return (viewName || '').toLowerCase() === 'home' ? _(this.attributes.views).findWhere({ isDefault: true }) : _(this.attributes.views).findWhere({ name: viewName });\n }\n }, {\n key: 'getCampaigns',\n value: function getCampaigns() {\n return this.isLoaded && this.attributes.campaigns;\n }\n }, {\n key: 'idAttribute',\n get: function get() {\n return 'pageId';\n }\n }, {\n key: 'isLoaded',\n get: function get() {\n return !_.isEmpty(this.attributes);\n }\n }]);\n\n return PageManager;\n}(Backbone.Model);\n\nexports['default'] = PageManager;\n\n},{\"./CollectionDefinition\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\CollectionDefinition.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\PageView.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nrequire('../../util/Promise');\n\nvar _Error = require('../../components/common/templates/Error.html');\n\nvar _Error2 = _interopRequireDefault(_Error);\n\nvar _processForwardedAction = require('../../util/title-actions/processForwardedAction');\n\nvar _processForwardedAction2 = _interopRequireDefault(_processForwardedAction);\n\nvar _HashManager = require('../../components/common/HashManager');\n\nvar _HashManager2 = _interopRequireDefault(_HashManager);\n\nvar _TitleCollection = require('../media/models/TitleCollection');\n\nvar _TitleCollection2 = _interopRequireDefault(_TitleCollection);\n\nvar _PatronTitleStatus = require('../../models/PatronTitleStatus');\n\nvar _PatronTitleStatus2 = _interopRequireDefault(_PatronTitleStatus);\n\nvar _PageManager = require('./PageManager');\n\nvar _PageManager2 = _interopRequireDefault(_PageManager);\n\nvar _CollectionManager = require('./CollectionManager');\n\nvar _CollectionManager2 = _interopRequireDefault(_CollectionManager);\n\nvar _CollectionHighlight = require('../collection_highlight/views/CollectionHighlight');\n\nvar _CollectionHighlight2 = _interopRequireDefault(_CollectionHighlight);\n\nvar _SlantedCollectionHightlight = require('../collection_highlight_slanted/SlantedCollectionHightlight');\n\nvar _SlantedCollectionHightlight2 = _interopRequireDefault(_SlantedCollectionHightlight);\n\nvar _CollectionHighlightFactory = require('./CollectionHighlightFactory');\n\nvar _CollectionHighlightFactory2 = _interopRequireDefault(_CollectionHighlightFactory);\n\nvar _Campaign = require('../campaign/views/Campaign');\n\nvar _Campaign2 = _interopRequireDefault(_Campaign);\n\nvar _LibbyTout = require('../libby_tout/LibbyTout.html');\n\nvar _LibbyTout2 = _interopRequireDefault(_LibbyTout);\n\nvar _querystring = require('querystring');\n\nvar _querystring2 = _interopRequireDefault(_querystring);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _window = window,\n Logger = _window.Logger,\n Waypoint = _window.Waypoint,\n html = _window.html;\nvar _window$OverDrive = window.OverDrive,\n isAuthenticated = _window$OverDrive.isAuthenticated,\n hasLinkedCards = _window$OverDrive.hasLinkedCards;\n\nvar PageView = function (_Backbone$View) {\n _inherits(PageView, _Backbone$View);\n\n _createClass(PageView, [{\n key: 'generateHeroPlaceholderEl',\n\n\n // LHTNG-2082: Visual palceholder for Hero section\n value: function generateHeroPlaceholderEl() {\n return $('
');\n }\n }]);\n\n function PageView(_ref) {\n var viewId = _ref.viewId,\n room = _ref.room,\n bus = _ref.bus,\n featureManager = _ref.featureManager,\n patronSettings = _ref.patronSettings;\n\n _classCallCheck(this, PageView);\n\n var _this = _possibleConstructorReturn(this, (PageView.__proto__ || Object.getPrototypeOf(PageView)).apply(this, arguments));\n\n _this.viewId = viewId;\n _this.room = room;\n _this.bus = bus;\n _this.featureManager = featureManager;\n _this.patronSettings = patronSettings;\n _this.pageSize = 10;\n _this.lazyWaypointIndex = 2;\n\n _this.pageManager = new _PageManager2['default']();\n _this.collectionManager = new _CollectionManager2['default']();\n _this.views = [];\n\n _this.collectionErrors = [];\n\n // Provide a way to simulate collections and campaigns failing to load. This helps with testing dynamic\n // collection loading logic.\n _this.collectionIndexesToFail = null;\n _this.failCampaign = false;\n\n var rawParams = window.location.search[0] === '?' ? window.location.search.substr(1) : window.location.search;\n var queryParams = _querystring2['default'].parse(rawParams);\n\n var collectionsToFail = queryParams.collectionsToFail;\n if (collectionsToFail && collectionsToFail.length > 0) {\n _this.collectionIndexesToFail = collectionsToFail.split(',').map(function (val) {\n return parseInt(val, 10);\n });\n }\n\n _this.failCampaign = Boolean(queryParams.failCampaign);\n\n var forcedSlantedGridCollections = queryParams.forcedSlantedGridCollections;\n if (forcedSlantedGridCollections && forcedSlantedGridCollections.length > 0) {\n _this.forcedSlantedGridCollectionIndexes = forcedSlantedGridCollections.split(',').map(function (v) {\n return parseInt(v, 10);\n });\n }\n\n _this.forceAllSlantedGridCollections = Boolean(queryParams.forceAllSlantedGridCollections);\n\n var slantedGridTitleCountOverride = queryParams.slantedGridTitleCountOverride;\n if (slantedGridTitleCountOverride) {\n _this.slantedGridTitleCountOverride = slantedGridTitleCountOverride;\n }\n\n _this.update();\n return _this;\n }\n\n _createClass(PageView, [{\n key: 'update',\n value: function update() {\n var _this2 = this;\n\n this.$el.empty();\n\n this.views.forEach(function (view) {\n return view.remove();\n });\n this.views = [];\n\n this.pageManager.fetchRoomById(this.room && this.room.id || 'home').then(function () {\n _this2.views = _this2.initViews();\n _this2.unrenderedViews = _this2.views.slice();\n _this2._loadPage();\n });\n }\n }, {\n key: '_loadPage',\n value: function _loadPage() {\n var isFirstPage = this.unrenderedViews.length === this.views.length;\n\n this._renderPage(this.pageSize, isFirstPage ? this.lazyWaypointIndex : 0);\n\n if (isFirstPage) {\n this._renderLibbyTout();\n }\n }\n }, {\n key: '_renderPage',\n value: function _renderPage(rowCount) {\n var _this3 = this;\n\n var wayPointIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n\n if (wayPointIndex && wayPointIndex < rowCount - 1) {\n\n // Paint the whole set of collections right away so scrolling speed is consistent\n // before and after you trigger the waypoint for lazy-loading.\n this._paintCollections(this.unrenderedViews.slice(0, rowCount));\n\n this._fetchRows(wayPointIndex + 1).then(function (collections) {\n\n _this3._updatePatronTitleStatus(collections);\n\n // Should this really be here? We can just do it right away if we want at the cost of _potentially_ one\n // extra patron title status call. Meh.\n _this3._performForwardedAction();\n\n if (_this3.views[wayPointIndex]) {\n var $el = _this3.views[wayPointIndex].$el;\n\n var waypoint = $('
');\n $el.after(waypoint);\n\n var breakpoint = new Waypoint.Inview({\n element: waypoint,\n enter: function enter() {\n breakpoint.destroy();\n\n if (typeof newrelic !== 'undefined') {\n newrelic.addPageAction('lazyLoadWaypointHit', { page: 'homepage' });\n }\n\n _this3._fetchRows(rowCount - (wayPointIndex + 1)).then(function (_collections) {\n _this3._updatePatronTitleStatus(_collections);\n _this3._pageLoadComplete();\n });\n }\n });\n }\n });\n } else {\n this._fetchRows(rowCount).then(function (collections) {\n _this3._updatePatronTitleStatus(collections);\n _this3._pageLoadComplete();\n });\n }\n }\n }, {\n key: '_fetchRows',\n value: function _fetchRows(rowCount) {\n var _this4 = this;\n\n var collectionsDone = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n\n var views = this.unrenderedViews.splice(0, rowCount);\n this._paintCollections(views);\n\n return new Promise(function (resolve) {\n _this4._syncRows(views, collectionsDone).then(function (result) {\n if (result.failed) {\n _this4._fetchRows(result.failed, collectionsDone).then(function (collections) {\n resolve(collections);\n });\n } else {\n resolve(collectionsDone);\n }\n });\n });\n }\n }, {\n key: '_syncRows',\n value: function _syncRows(views, collections) {\n\n var requestQueue = views.map(function (view) {\n return view.sync();\n });\n\n return Promise.settle(requestQueue).then(function (results) {\n var succeeded = results.filter(function (result) {\n return result.fulfilled && result.value;\n });\n var failed = results.filter(function (result) {\n return !result.fulfilled || !result.value;\n });\n\n succeeded.map(function (request) {\n return collections.push(request.value);\n });\n\n if (failed.length) {\n // Make sure we make errors visible for debugging\n failed.forEach(function (failure) {\n if (failure && failure.value) {\n console.error(failure.value);\n }\n });\n }\n\n return { failed: failed.length };\n });\n }\n }, {\n key: '_paintCollections',\n value: function _paintCollections(views) {\n var frag = document.createDocumentFragment();\n\n views.forEach(function (view) {\n if (!view.isPainted) {\n frag.appendChild(view.el);\n view.isPainted = true;\n }\n });\n\n this.el.appendChild(frag);\n }\n }, {\n key: '_pageLoadComplete',\n value: function _pageLoadComplete() {\n var _this5 = this;\n\n if (this.unrenderedViews.length > 0) {\n var $loadMore = $('').on('click', function () {\n _this5._loadPage();\n $loadMore.remove();\n });\n\n this.$el.append($loadMore);\n }\n\n if (this.collectionErrors.length > 0) {\n var allCollectionsFailed = this.views.length === 0;\n this._logPageErrors(this.collectionErrors, allCollectionsFailed);\n\n if (allCollectionsFailed) {\n this.$el.empty().append((0, _Error2['default'])());\n }\n }\n\n this.collectionErrors = [];\n }\n }, {\n key: '_logPageErrors',\n value: function _logPageErrors(failed, allFailed) {\n var howMany = allFailed ? 'Total' : 'Partial';\n var errors = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = failed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var failure = _step.value;\n\n errors.push({\n 'id': failure.id,\n 'type': failure.type,\n 'statusText': failure.statusText,\n 'status': failure.status\n });\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var counts = _.countBy(errors, function (error) {\n return error.type + ':' + error.statusText;\n });\n Logger.log('error', howMany + ' HomePage Ajax Error', { message: 'HighlightErrorRollup', errors: errors, counts: counts, page: 'home' });\n }\n }, {\n key: 'initViews',\n value: function initViews() {\n var _this6 = this;\n\n var views = [];\n\n var campaigns = this.pageManager.getCampaigns();\n\n var showCampaign = campaigns && campaigns.length > 0 && !window.OverDrive.isVisitor;\n if (showCampaign) {\n this.campaign = null;\n\n this.campaignView = new _Campaign2['default']({ bus: this.bus, currentRoom: this.room });\n this.campaignView.$el.append(this.generateHeroPlaceholderEl());\n\n views.push(this.campaignView);\n\n this.campaignView.sync = function () {\n return _this6.pageManager.fetchCampaignById(campaigns[0].id).then(function (campaign) {\n _this6.campaign = !_(campaign).isEmpty() && !_(campaign).isEmpty(campaign.items) && campaign;\n\n if (_this6.campaign && !_this6.failCampaign) {\n _this6.campaignView.campaign = _this6.campaign;\n _this6.campaignView.model.set(_this6.campaign.items[0]);\n _this6.campaignView.model.updatePatronState();\n _this6.campaignView.render();\n\n return _this6.campaignView;\n } else {\n _this6.campaignView.remove();\n _this6.removeView(_this6.campaignView);\n _this6.campaignView = null;\n }\n }, function (error) {\n error.id = campaigns[0].id;\n error.statusText = !!error.statusText ? error.statusText : 'UnknownStatus';\n error.type = 'Ajax Error: Campaign';\n\n _this6.campaignView.remove();\n _this6.removeView(_this6.campaignView);\n\n _this6.collectionErrors.push(error);\n\n _this6.campaignView = null;\n throw error;\n });\n };\n }\n\n var view = this.pageManager.getView(this.viewId);\n\n if (this._shouldTruncateCollections) {\n view.collectionDefinitions = view.collectionDefinitions.slice(0, 10);\n }\n\n this.collectionManager.reset(view.collectionDefinitions);\n\n this.collectionManager.each(function (collectionDefinition, index) {\n var isHero = !showCampaign && index === 0;\n\n // TODO: Thought is that the TitleCard template will render in \"dummy\" state\n collectionDefinition.titleCollection.reset([{ placeholder: true }, { placeholder: true }, { placeholder: true }, { placeholder: true }, { placeholder: true }, { placeholder: true }]);\n\n var viewArgs = {\n model: collectionDefinition,\n bus: _this6.bus,\n featureManager: _this6.featureManager,\n room: _this6.room,\n isHero: isHero\n };\n\n if (_this6.slantedGridTitleCountOverride) {\n viewArgs.titleCountOverride = _this6.slantedGridTitleCountOverride;\n }\n\n var forceSlantedGridView = _this6.forceAllSlantedGridCollections || _this6.forcedSlantedGridCollectionIndexes && _this6.forcedSlantedGridCollectionIndexes.includes(index);\n if (forceSlantedGridView) {\n collectionDefinition.shuffle = true;\n }\n\n var collectionHighlightView = _CollectionHighlightFactory2['default'].Build(collectionDefinition, viewArgs, forceSlantedGridView);\n collectionDefinition.pageSize = collectionHighlightView.desiredTitleCount;\n\n if (isHero) {\n collectionHighlightView.$el.append(_this6.generateHeroPlaceholderEl());\n }\n\n views.push(collectionHighlightView.render());\n\n collectionHighlightView.sync = function () {\n return collectionDefinition.fetchCollectionTitles({ patronSettings: _this6.patronSettings, room: _this6.room }).then(function () {\n var simulateFailure = _this6.collectionIndexesToFail && _this6.collectionIndexesToFail.includes(index);\n if (collectionDefinition.titleCollection.length && !simulateFailure) {\n collectionHighlightView.render();\n collectionHighlightView.toggleTitleVisibility(true);\n\n return collectionDefinition;\n } else {\n // Clean up the failed row\n collectionHighlightView.remove();\n _this6.removeView(collectionHighlightView);\n throw new Error('No collection contents retrieved');\n }\n }, function (error) {\n collectionHighlightView.remove();\n _this6.removeView(collectionHighlightView);\n\n error.id = collectionDefinition.id;\n error.statusText = !!error.statusText ? error.statusText : 'UnknownStatus';\n error.type = 'Ajax Error: Collection';\n\n _this6.collectionErrors.push(error);\n\n throw error;\n });\n };\n });\n\n return views;\n }\n }, {\n key: 'removeView',\n value: function removeView(view) {\n this.views = this.views.filter(function (v) {\n return v !== view;\n });\n\n if (view instanceof _Campaign2['default'] || view.isHero && this.views[0]) {\n this.views[0].makeHero();\n this._renderLibbyTout();\n }\n }\n }, {\n key: '_updatePatronTitleStatus',\n value: function _updatePatronTitleStatus(views) {\n if (window.OverDrive.isAuthenticated && window.OverDrive.hasLinkedCards && views && views.length > 0) {\n var titles = [];\n\n views.forEach(function (view) {\n if (view instanceof _Campaign2['default']) {\n titles.push(view.model);\n } else {\n titles.push.apply(titles, _toConsumableArray(view.titleCollection.models));\n }\n });\n\n var patronTitleStatus = new _PatronTitleStatus2['default']();\n\n patronTitleStatus.fetchTitleStatus(titles).then(function () {\n patronTitleStatus.updateTitleCollectionState(_(titles));\n });\n }\n }\n }, {\n key: '_renderLibbyTout',\n value: function _renderLibbyTout() {\n var _this7 = this;\n\n if (this.libbytout) {\n this.libbytout.remove();\n }\n\n var frag = document.createDocumentFragment();\n if (this.featureManager.isEnabled('libbyTout') && this.featureManager.isEnabled('promoteLibby') && !this.room) {\n var $tout = $((0, _LibbyTout2['default'])(window.OverDrive.optimizeForChina));\n\n if ((this.viewId || '').toLowerCase() === 'home') {\n $tout = $('
').append($tout);\n }\n frag.appendChild($tout[0]);\n this.libbytout = $tout;\n\n $(window).on('resize scroll', function () {\n if (_this7.isInViewport(_this7.libbytout.find('.LibbyTout-wayPoint'))) {\n _this7.libbytout.find('.libbyIcon-container').addClass('libbyIcon-animate');\n } else {\n _this7.libbytout.find('.libbyIcon-container').removeClass('libbyIcon-animate');\n }\n });\n }\n\n this.views[0].$el.after(frag);\n }\n }, {\n key: 'isInViewport',\n value: function isInViewport(element) {\n var elementTop = element.offset().top;\n var elementBottom = elementTop + element.outerHeight();\n\n var viewportTop = $(window).scrollTop();\n var viewportBottom = viewportTop + $(window).height();\n\n if (viewportTop === 0) {\n return false; // fake it when scroll is at the top, but image is still in view\n }\n\n return elementBottom > viewportTop && elementTop < viewportBottom;\n }\n }, {\n key: '_performForwardedAction',\n value: function _performForwardedAction() {\n if (isAuthenticated && hasLinkedCards && _HashManager2['default'].get('action')) {\n var titles = [];\n if (this.campaignView) {\n titles.push(this.campaignView.model);\n }\n this.collectionManager.each(function (collectionDefinition) {\n titles.push.apply(titles, _toConsumableArray(collectionDefinition.titleCollection.models));\n });\n var forwardedAction = new _processForwardedAction2['default'](new _TitleCollection2['default'](titles), this.bus);\n forwardedAction.executeAction();\n window.forwardedAction = forwardedAction;\n }\n }\n }, {\n key: '_shouldTruncateCollections',\n get: function get() {\n // The OD app on iOS 8 and 9 crashes on the home page if there are too many collections. LHTNG-2387\n var deviceInfo = detectshun.browser();\n var inApp = Cookies.get('omcbrowse') !== undefined;\n if (inApp && deviceInfo.ios && deviceInfo.bowser.osversion) {\n var versionParts = deviceInfo.bowser.osversion.split('.');\n if (versionParts && versionParts.length > 0) {\n var majorVersion = parseInt(versionParts[0], 10);\n if (majorVersion && majorVersion < 10) {\n return true;\n }\n }\n }\n return false;\n }\n }]);\n\n return PageView;\n}(Backbone.View);\n\nexports['default'] = PageView;\n\n\n},{\"../../components/common/HashManager\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\common\\\\HashManager.js\",\"../../components/common/templates/Error.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\common\\\\templates\\\\Error.html.js\",\"../../models/PatronTitleStatus\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\models\\\\PatronTitleStatus.js\",\"../../util/Promise\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\Promise.js\",\"../../util/title-actions/processForwardedAction\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\title-actions\\\\processForwardedAction.js\",\"../campaign/views/Campaign\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\campaign\\\\views\\\\Campaign.js\",\"../collection_highlight/views/CollectionHighlight\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight\\\\views\\\\CollectionHighlight.js\",\"../collection_highlight_slanted/SlantedCollectionHightlight\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight_slanted\\\\SlantedCollectionHightlight.js\",\"../libby_tout/LibbyTout.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\libby_tout\\\\LibbyTout.html.js\",\"../media/models/TitleCollection\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\models\\\\TitleCollection.js\",\"./CollectionHighlightFactory\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\CollectionHighlightFactory.js\",\"./CollectionManager\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\CollectionManager.js\",\"./PageManager\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\PageManager.js\",\"querystring\":\"C:\\\\projects\\\\lightning\\\\node_modules\\\\querystring-es3\\\\index.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight\\\\templates\\\\collection_highlight.html.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports['default'] = function (_ref) {\n var name = _ref.name,\n room = _ref.room,\n seeAllUrl = _ref.seeAllUrl;\n return '\\n
\\n
\\n
\\n
\\n \\n

\\n \\n ' + name + '\\n \\n \\n

\\n \\n ' + html('seeAll') + '\\n \\n \\n
\\n
    \\n
    \\n
    \\n
    \\n
    ';\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight\\\\views\\\\CollectionHighlight.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _TitleCollectionView = require('../../media/TitleCollectionView');\n\nvar _TitleCollectionView2 = _interopRequireDefault(_TitleCollectionView);\n\nvar _collection_highlight = require('../templates/collection_highlight.html');\n\nvar _collection_highlight2 = _interopRequireDefault(_collection_highlight);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CollectionHighlight = function (_Backbone$View) {\n _inherits(CollectionHighlight, _Backbone$View);\n\n _createClass(CollectionHighlight, [{\n key: 'viewAttributes',\n value: function viewAttributes(collection) {\n\n var classes = [];\n\n if (this.isHero) {\n classes.push('large-block-grid-' + collection.length);\n } else {\n classes.push('large-block-grid-6');\n }\n\n if (collection.length <= 2) {\n classes.push('small-block-grid-' + collection.length);\n }\n\n if (collection.length >= 3) {\n classes.push('small-block-grid-2 medium-block-grid-3');\n }\n\n return {\n 'class': 'titleContainer ' + classes.join(' ')\n };\n }\n }]);\n\n function CollectionHighlight(_ref) {\n var bus = _ref.bus,\n room = _ref.room,\n _ref$isHero = _ref.isHero,\n isHero = _ref$isHero === undefined ? false : _ref$isHero;\n\n _classCallCheck(this, CollectionHighlight);\n\n var _this = _possibleConstructorReturn(this, (CollectionHighlight.__proto__ || Object.getPrototypeOf(CollectionHighlight)).apply(this, arguments));\n\n _this.template = _collection_highlight2['default'];\n\n\n _this.bus = bus;\n _this.room = room;\n _this.collection = _this.model.titleCollection;\n _this.isHero = isHero;\n\n _this.render();\n return _this;\n }\n\n _createClass(CollectionHighlight, [{\n key: 'render',\n value: function render() {\n var $view = $(this.template(_.extend({}, this.model.attributes, { room: this.room, seeAllUrl: this.seeAllUrl })));\n\n this.titleCollectionView && this.titleCollectionView.remove();\n\n this.titleCollectionView = new _TitleCollectionView2['default']({\n el: $view.find('.titleContainer'),\n bus: this.bus,\n attributes: this.viewAttributes(this.collection),\n collection: this.collection,\n coverWidths: { mobile: 145, tablet: 160, desktop: 190 },\n isInHero: this.isHero,\n context: {\n collectionDefinition: this.model,\n room: this.room\n }\n });\n\n // ref: LHTNG-1970 - hiding the last two elements so we can remove the overflow hidden on the parent container\n $view.find('.Item').each(function (i, el) {\n if (i > 3) {\n $(el).addClass('show-for-medium-up');\n }\n });\n\n this.$el.empty().append($view);\n if (this.isHero) {\n this.makeHero();\n }\n\n return this;\n }\n }, {\n key: 'makeHero',\n value: function makeHero() {\n this.isHero = true;\n this.$el.find('.collection-container').addClass('Hero');\n this.$el.find('.icon-forward-arrow').remove();\n var description = this.model.attributes.description;\n if (description) {\n this.$el.find('.collectionTitle').after('

    ' + description + '

    ');\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n this.titleCollectionView && this.titleCollectionView.remove();\n _get(CollectionHighlight.prototype.__proto__ || Object.getPrototypeOf(CollectionHighlight.prototype), 'remove', this).call(this);\n }\n }, {\n key: 'toggleTitleVisibility',\n value: function toggleTitleVisibility(isVisible) {\n var title = this.$el.find('.collectionTitle');\n isVisible ? title.removeClass('invisible') : title.addClass('invisible');\n }\n }, {\n key: 'seeAllUrl',\n get: function get() {\n var collectionId = this.model.get('id');\n return collectionId ? window.url(window.routes.collectionById, { collectionId: collectionId }) : window.url(window.routes.youMayLikeCollection);\n }\n }, {\n key: 'desiredTitleCount',\n get: function get() {\n return 6;\n }\n }]);\n\n return CollectionHighlight;\n}(Backbone.View);\n\nexports['default'] = CollectionHighlight;\n\n},{\"../../media/TitleCollectionView\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\TitleCollectionView.js\",\"../templates/collection_highlight.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight\\\\templates\\\\collection_highlight.html.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight_slanted\\\\SlantedCollectionHightlight.html.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports['default'] = function (_ref) {\n var coverGridSizeClass = _ref.coverGridSizeClass,\n collectionTitle = _ref.collectionTitle,\n collectionDescription = _ref.collectionDescription,\n collectionId = _ref.collectionId,\n coversHtml = _ref.coversHtml,\n bannerBackgroundColor = _ref.bannerBackgroundColor,\n bannerTextColor = _ref.bannerTextColor,\n isHero = _ref.isHero,\n useFallbackDisplay = _ref.useFallbackDisplay,\n fallBackGridWidth = _ref.fallBackGridWidth;\n return '\\n
    \\n
    \\n
    \\n
    \\n

    ' + collectionTitle + '

    \\n
    ' + collectionDescription + '
    \\n ' + window.text('seeAll') + '\\n
    \\n
    \\n
    \\n
    \\n
    \\n ' + (useFallbackDisplay ? '
      \\n ' + coversHtml.map(function (html) {\n return '
    • ' + html + '
    • ';\n }).join('') + '\\n
    ' : '
    \\n ' + coversHtml.map(function (coverHtml, index) {\n return '\\n
    \\n ' + coverHtml + '\\n
    ';\n }).join('') + '\\n
    ') + '\\n
    \\n
    \\n
    \\n
    \\n ' + window.text('seeAll') + '\\n
    \\n';\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight_slanted\\\\SlantedCollectionHightlight.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _SlantedCollectionHightlight = require('./SlantedCollectionHightlight.html');\n\nvar _SlantedCollectionHightlight2 = _interopRequireDefault(_SlantedCollectionHightlight);\n\nvar _Cover = require('../media/Cover');\n\nvar _Cover2 = _interopRequireDefault(_Cover);\n\nvar _TitleName = require('../media/views/TitleInfo/TitleName');\n\nvar _TitleName2 = _interopRequireDefault(_TitleName);\n\nvar _colorUtility = require('../../../../lib/colorUtility');\n\nvar _colorUtility2 = _interopRequireDefault(_colorUtility);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _window = window,\n OverDrive = _window.OverDrive;\n\nvar SlantedCollectionHighlight = function (_Backbone$View) {\n _inherits(SlantedCollectionHighlight, _Backbone$View);\n\n function SlantedCollectionHighlight(_ref) {\n var bus = _ref.bus,\n room = _ref.room,\n _ref$isHero = _ref.isHero,\n isHero = _ref$isHero === undefined ? false : _ref$isHero,\n _ref$titleCountOverri = _ref.titleCountOverride,\n titleCountOverride = _ref$titleCountOverri === undefined ? null : _ref$titleCountOverri;\n\n _classCallCheck(this, SlantedCollectionHighlight);\n\n var _this = _possibleConstructorReturn(this, (SlantedCollectionHighlight.__proto__ || Object.getPrototypeOf(SlantedCollectionHighlight)).apply(this, arguments));\n\n _this.template = _SlantedCollectionHightlight2['default'];\n\n\n _this._views = [];\n _this.bus = bus;\n _this.room = room;\n _this.isHero = isHero;\n _this.highContrastMode = window.OverDrive.highContrast;\n _this.titleCountOverride = titleCountOverride;\n\n _this._vertToHorizBreakpointPx = 720;\n _this._coverBlockWidthPercentLarge = 0.58;\n _this._coverBlockWidthPercentageSmall = 1;\n\n _this._smallGridMaxWidthPx = 555;\n _this._mediumGridMaxWidthPx = 667;\n _this._largeGridMaxWidthPx = 1280;\n _this._coverPlaceholderHtml = '
    ';\n return _this;\n }\n\n _createClass(SlantedCollectionHighlight, [{\n key: 'render',\n value: function render() {\n this.$el.empty();\n var colors = this.getTitlePanelColors();\n\n var sizeInfo = this.getGridSize();\n this.$el.empty().append($(this.template({\n coverGridSizeClass: sizeInfo['class'],\n collectionTitle: this.model.get('name'),\n collectionDescription: this.model.get('description'),\n collectionId: this.model.get('id'),\n coversHtml: this.getCoversHtml(),\n bannerBackgroundColor: colors.background,\n bannerTextColor: colors.foreground,\n isHero: this.isHero,\n useFallbackDisplay: this.useFallbackDisplay,\n fallBackGridWidth: sizeInfo.gridWidthFallback\n })));\n\n this.$el.find('.textBlockInner a').on('mouseover', function (evt) {\n evt.currentTarget.style.color = colors.foregroundHover;\n }).on('mouseout', function (evt) {\n evt.currentTarget.style.color = colors.foreground;\n });\n\n return this;\n }\n }, {\n key: 'getGridSize',\n value: function getGridSize() {\n\n var xlarge = {\n 'class': 'extraLarge',\n numCovers: 39,\n numCoversFallback: 47,\n numTilesFallback: 117,\n gridWidthFallback: 13,\n placeholderIndexes: [4, 5, 6, 7, 8, 9, 10, 11, 12, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 48, 49, 50, 51, 52, 53, 54, 55, 62, 63, 64, 65, 66, 67, 68, 69, 70, 77, 78, 79, 80, 81, 82, 83, 84, 91, 92, 93, 94, 95, 96, 97, 98, 99, 104, 105, 106, 107, 108, 109, 110, 111, 112]\n };\n\n var large = {\n 'class': 'large',\n numCovers: 25,\n numCoversFallback: 25,\n numTilesFallback: 54,\n gridWidthFallback: 9,\n placeholderIndexes: [0, 4, 5, 6, 7, 8, 14, 15, 16, 17, 18, 25, 26, 27, 28, 35, 36, 37, 38, 39, 44, 45, 46, 47, 48, 49, 52, 53]\n };\n\n var medium = {\n 'class': 'medium',\n numCovers: 17,\n numCoversFallback: 21,\n numTilesFallback: 35,\n gridWidthFallback: 7,\n placeholderIndexes: [0, 4, 5, 6, 12, 13, 14, 21, 22, 28, 29, 30, 31]\n };\n\n var small = {\n 'class': 'small',\n numCovers: 12,\n numCoversFallback: 20,\n numTilesFallback: 20,\n gridWidthFallback: 5,\n placeholderIndexes: [0, 10, 15, 16]\n };\n\n // take the max of the available width and height so we don't need to rerender when the device rotates\n var largeDimension = Math.max(window.screen.availWidth, window.screen.availHeight);\n var smallDimension = Math.min(window.screen.availWidth, window.screen.availHeight);\n\n var landscapeMaxGridWidth = largeDimension < this._vertToHorizBreakpointPx ? largeDimension * this._coverBlockWidthPercentageSmall : largeDimension * this._coverBlockWidthPercentLarge;\n\n var portraitMaxGridWidth = smallDimension < this._vertToHorizBreakpointPx ? smallDimension * this._coverBlockWidthPercentageSmall : smallDimension * this._coverBlockWidthPercentLarge;\n\n var maxCoverGridWidth = Math.max(landscapeMaxGridWidth, portraitMaxGridWidth);\n\n if (maxCoverGridWidth <= this._smallGridMaxWidthPx) {\n return small;\n } else if (maxCoverGridWidth <= this._mediumGridMaxWidthPx) {\n return medium;\n } else if (maxCoverGridWidth <= this._largeGridMaxWidthPx) {\n return large;\n } else {\n return xlarge;\n }\n }\n }, {\n key: 'getTitlePanelColors',\n value: function getTitlePanelColors() {\n\n var backgroundColor = void 0;\n\n if (this.highContrastMode) {\n backgroundColor = _colorUtility2['default'].highContrastBlue;\n } else {\n // choose a different cover for the source color when the title block is rendered above the cover grid.\n // The effect is nicer if the source cover is abuts the colored area that matches it.\n var colorSourceTitle = this.model.titleCollection.first();\n if (window.innerWidth < this._vertToHorizBreakpointPx && this.model.titleCollection.length > 2) {\n colorSourceTitle = this.model.titleCollection.at(2);\n }\n\n var cover = colorSourceTitle.getCover(300);\n backgroundColor = '#a79d99';\n if (this.isHero && OverDrive.colors.primary) {\n backgroundColor = OverDrive.colors.primary;\n } else if (!colorSourceTitle.isPlaceholder && cover && cover.primaryColor) {\n backgroundColor = cover.primaryColor.hex;\n } else {\n backgroundColor = '#a79d99';\n }\n }\n\n var foregroundColor = _colorUtility2['default'].getTextColorFromHex(backgroundColor);\n\n return {\n background: backgroundColor,\n foreground: foregroundColor,\n foregroundHover: _colorUtility2['default'].shadeColorHex(backgroundColor, 0.2)\n };\n }\n\n // Render one cover for each available title and then repeat them to reach the\n // desired cover count\n\n }, {\n key: 'getCoversHtml',\n value: function getCoversHtml() {\n this.renderBaseCovers();\n var sizeInfo = this.getGridSize();\n\n var numRequired = !this.useFallbackDisplay ? sizeInfo.numCovers : sizeInfo.numTilesFallback;\n\n var results = [];\n while (results.length < numRequired) {\n for (var i = 0; i < this._coverMarkup.length && results.length < numRequired;) {\n if (!this.useFallbackDisplay || !sizeInfo.placeholderIndexes.includes(results.length)) {\n results.push(this._coverMarkup[i]);\n ++i;\n } else {\n // The fallback display mode uses placeholder covers to fill out the parts of the grid\n // that will be clipped off by the parent container.\n results.push(this._coverPlaceholderHtml);\n }\n }\n }\n return results;\n }\n }, {\n key: 'renderBaseCovers',\n value: function renderBaseCovers() {\n var _this2 = this;\n\n this._views.forEach(function (view) {\n return view.remove();\n });\n this._views = [];\n this._coverMarkup = [];\n this.model.titleCollection.each(function (title) {\n\n if (title.isPlaceholder) {\n _this2._coverMarkup.push(_this2._coverPlaceholderHtml);\n } else {\n var cover = new _Cover2['default']({\n model: title,\n coverWidths: { mobile: 200, tablet: 300, desktop: 400 },\n isInHero: _this2.isHero\n });\n cover.render();\n\n // we add a hidden title name for screen readers\n var titleName = new _TitleName2['default']({ model: title });\n\n _this2._coverMarkup.push(cover.el.innerHTML + '

    ' + titleName.el.innerHTML + '

    ');\n\n _this2._views.push(cover);\n _this2._views.push(titleName);\n }\n });\n }\n }, {\n key: 'remove',\n value: function remove() {\n this._views.forEach(function (v) {\n return v.remove();\n });\n _get(SlantedCollectionHighlight.prototype.__proto__ || Object.getPrototypeOf(SlantedCollectionHighlight.prototype), 'remove', this).call(this);\n }\n }, {\n key: 'makeHero',\n value: function makeHero() {\n this.isHero = true;\n this.$el.find('.mainBox').addClass('hero');\n var colors = this.getTitlePanelColors();\n this.$el.find('.textBlockOuter').attr('style', 'background-color:' + colors.background + ';color:' + colors.foreground);\n }\n }, {\n key: 'toggleTitleVisibility',\n value: function toggleTitleVisibility(isVisible) {\n var title = this.$el.find('.textBlockInner');\n isVisible ? title.removeClass('invisible') : title.addClass('invisible');\n }\n }, {\n key: 'desiredTitleCount',\n get: function get() {\n if (this.titleCountOverride) {\n return this.titleCountOverride;\n }\n\n var sizeInfo = this.getGridSize();\n return this.useFallbackDisplay ? sizeInfo.numCoversFallback : sizeInfo.numCovers;\n }\n }, {\n key: 'useFallbackDisplay',\n get: function get() {\n return window.Modernizr && !window.Modernizr.cssgrid;\n }\n }]);\n\n return SlantedCollectionHighlight;\n}(Backbone.View);\n\nexports['default'] = SlantedCollectionHighlight;\n\n},{\"../../../../lib/colorUtility\":\"C:\\\\projects\\\\lightning\\\\lib\\\\colorUtility.js\",\"../media/Cover\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\Cover.js\",\"../media/views/TitleInfo/TitleName\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo\\\\TitleName.js\",\"./SlantedCollectionHightlight.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_highlight_slanted\\\\SlantedCollectionHightlight.html.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\common\\\\HashManager.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _querystring = require('querystring');\n\nvar _querystring2 = _interopRequireDefault(_querystring);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar HashManager = function () {\n function HashManager() {\n _classCallCheck(this, HashManager);\n }\n\n _createClass(HashManager, null, [{\n key: 'parse',\n value: function parse() {\n var hashObject = _querystring2['default'].parse(location.hash.substr(1));\n\n _.keys(hashObject).forEach(function (key) {\n hashObject[key] = _.flatten([hashObject[key] || []]);\n });\n\n return hashObject;\n }\n }, {\n key: 'update',\n value: function update(object) {\n var newHash = _querystring2['default'].stringify(object);\n if (newHash !== '&') {\n location.hash = newHash;\n }\n }\n }, {\n key: 'get',\n value: function get(key) {\n var response = this.parse();\n\n if (_.isString(key)) {\n return response[key];\n }\n\n return response;\n }\n }, {\n key: 'set',\n value: function set(key, value) {\n var hash = this.parse();\n\n hash[key] = _.flatten([value]);\n\n this.update(hash);\n }\n }, {\n key: 'push',\n value: function push(key, value) {\n var hash = this.parse();\n\n hash[key] = hash[key] || [];\n hash[key].push(value);\n\n this.update(hash);\n }\n }, {\n key: 'remove',\n value: function remove(key) {\n var hash = this.parse();\n\n hash[key] && delete hash[key];\n\n this.update(hash);\n }\n }]);\n\n return HashManager;\n}();\n\nexports['default'] = HashManager;\n\n},{\"querystring\":\"C:\\\\projects\\\\lightning\\\\node_modules\\\\querystring-es3\\\\index.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\common\\\\modal.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Modal = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keycodes = require('../../util/keycodes');\n\nvar _keycodes2 = _interopRequireDefault(_keycodes);\n\nvar _modal = require('./templates/modal.html');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Modal = function (_Backbone$View) {\n _inherits(Modal, _Backbone$View);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.isSelectEvent = function (e) {\n return (e.type === 'click' || e.which === 13 || e.which === 32) && (e.preventDefault() || true);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: 'initialize',\n value: function initialize(options) {\n _.extend(this, this.defaults, options);\n\n this.tpl = _modal2['default'];\n this.setElement(this.tpl(this));\n\n if (this.id.length) {\n this.$el.attr('id', this.id);\n }\n\n this.$content = this.$el.find('.modal-container');\n\n this.$content.empty().append(this.content);\n\n this.$el.addClass(this.classes.join(' '));\n\n this.$title = this.$el.find('.modal-title');\n\n if (this.hiddenTitle) {\n this.$title.css(\"opacity\", \"0\");\n }\n\n if (this.autoRender) {\n this._render();\n }\n\n this._bindEvents();\n }\n }, {\n key: '_render',\n value: function _render() {\n if (this.attachToDocument) {\n // For Foundation to work as expected we need to have the element attached to the DOM before calling .foundation('reveal', 'open')\n $('body').append(this.el);\n }\n\n if (this.autoShow) {\n this.show();\n }\n\n return this;\n }\n }, {\n key: '_bindEvents',\n\n\n // We dont actually want to use the Foundation modal events since they get weird fast...\n // lets use our own so consumers dont have to know its foundation\n value: function _bindEvents() {\n var _this2 = this;\n\n this.$el.on('click keydown', '.js-close', function (e) {\n _this2.isSelectEvent(e) && _this2.trigger('cancel', _this2);\n });\n\n if (this.defaultButtonBehaviour) {\n this.on('close cancel', function () {\n _this2.close();\n });\n }\n\n this.$el.on('keypress', '*', function (e) {\n if (e.which === _keycodes2['default'].TAB) {\n _this2._keepFocus(e);\n }\n });\n }\n }, {\n key: 'show',\n value: function show() {\n var _this3 = this;\n\n this._beforeShow();\n this.$el.foundation('reveal', 'open');\n this.trigger('show', this);\n\n this.$el.on('keydown', function (e) {\n _this3._keepFocus(e);\n });\n\n // Execute code after the modal is displayed\n this.$el.on('opened.fndtn.reveal', function () {\n return _this3._afterShow();\n });\n\n // Traps foundation bug that closes modal on dropdown \"closed\", not an issue in 5.5.3+\n this.$el.off('closed');\n\n // Handle foundation close events from ESC and BG clicks\n this.$el.on('close.fndtn.reveal', function () {\n _this3.$el.off('close.fndtn.reveal');\n _this3.trigger('close');\n });\n }\n }, {\n key: '_beforeShow',\n value: function _beforeShow() {\n this.focused = $(document.activeElement);\n }\n }, {\n key: '_afterShow',\n value: function _afterShow() {\n this.$el.attr('aria-hidden', false);\n $('.container').attr('aria-hidden', 'true');\n $('.row.footer').attr('aria-hidden', 'true');\n $('.nav-container').attr('aria-hidden', 'true');\n\n this.$title.focus();\n this._setScroll();\n }\n }, {\n key: '_setScroll',\n value: function _setScroll() {\n var offset = window.pageYOffset - parseInt(this.$el.css('top').slice(0, -2), 10); // the 'top' styling is baked in by foundation\n if (window.innerHeight < this.el.offsetHeight - offset) {\n // scroll tall modals into view as much as fits\n offset = Math.min(this.el.offsetHeight - window.innerHeight + 10, -5);\n } else if (window.innerWidth < 641) {\n // mobile view padding\n offset -= 5;\n }\n this.el.scrollIntoView(); // sets scroll to top of modal\n window.scrollBy(0, offset); // adjusts scroll according to calculated offset\n }\n }, {\n key: '_keepFocus',\n value: function _keepFocus(e) {\n var activeElem = $(document.activeElement);\n var firstFocusable = this.$title || this.$el.find(':focusable:visible').first();\n var lastFocusable = this.$el.find(':focusable:visible').last();\n\n if (activeElem.is(firstFocusable) && e.which === _keycodes2['default'].TAB && e.shiftKey) {\n e.preventDefault();\n lastFocusable.focus();\n } else if ($(activeElem).is(lastFocusable) && e.which === _keycodes2['default'].TAB && !e.shiftKey) {\n e.preventDefault();\n firstFocusable.focus();\n }\n }\n }, {\n key: 'hide',\n value: function hide() {\n this.$el.foundation('reveal', 'close');\n this.trigger('hide', this);\n $('.container').attr('aria-hidden', 'false');\n $('.row.footer').attr('aria-hidden', 'false');\n $('.nav-container').attr('aria-hidden', 'false');\n this.focused.focus();\n }\n }, {\n key: 'close',\n value: function close() {\n this.hide();\n this.remove();\n }\n }, {\n key: 'defaults',\n get: function get() {\n return {\n autoShow: true,\n autoRender: true,\n closeOnEsc: true,\n closeOnBlur: true,\n\n id: '',\n classes: ['small'],\n buttonAlign: 'right',\n title: 'Title',\n hiddenTitle: false,\n content: 'Some Content',\n submitText: html('ok'),\n cancelText: html('cancel'),\n attachToDocument: true,\n defaultButtonBehaviour: true,\n showCloseButton: true\n };\n }\n }]);\n\n return Modal;\n}(Backbone.View);\n\nexports.Modal = Modal;\n\n\n},{\"../../util/keycodes\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\keycodes.js\",\"./templates/modal.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\common\\\\templates\\\\modal.html.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\common\\\\templates\\\\Error.html.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports['default'] = function () {\n return '\\n
    \\n
    \\n
    \\n
    \\n
    \\n ' + window.text('error.errorContactSupport', { link: '' + window.html('pleaseContactSupport') + '' }) + '\\n
    \\n
    \\n
    \\n
    \\n
    \\n';\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\common\\\\templates\\\\modal.html.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports['default'] = function (_ref) {\n var title = _ref.title,\n closeOnEsc = _ref.closeOnEsc,\n closeOnBlur = _ref.closeOnBlur,\n showCloseButton = _ref.showCloseButton;\n return '
    \\n
    \\n

    ' + title + '

    \\n ' + (showCloseButton ? '×' : '') + '\\n
    \\n\\n
    \\n
    ';\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\libby_tout\\\\LibbyTout.html.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports['default'] = function () {\n var isChina = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\n var appLinksUS = function appLinksUS() {\n return '\\n
    \\n
    \\n \\''\\n
    \\n
    \\n \\''\\n
    \\n \\n
    ';\n };\n\n var appLinksCN = function appLinksCN() {\n return '\\n
    \\n
    \\n 360\\n
    \\n
    \\n Lenovo\\n
    \\n
    \\n PP\\n
    \\n
    ';\n };\n\n return '\\n
    \\n \\n\\n
    \\n
    \\n

    ' + window.html('libbyTout.heading') + '

    \\n
    ' + window.html('libbyTout.message') + '
    \\n ' + window.html('libbyTout.learnMore') + '\\n
    \\n
    \\n\\n
    \\n ' + (isChina ? appLinksCN() : appLinksUS()) + '\\n
    \\n \\n
    \\n
    ';\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\ContextMenu.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ContextMenu = require('./templates/ContextMenu.html');\n\nvar _ContextMenu2 = _interopRequireDefault(_ContextMenu);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _window = window,\n featureManager = _window.featureManager,\n url = _window.url,\n routes = _window.routes,\n OverDrive = _window.OverDrive,\n text = _window.text,\n html = _window.html;\n\nvar ContextMenu = function (_Backbone$View) {\n _inherits(ContextMenu, _Backbone$View);\n\n function ContextMenu() {\n _classCallCheck(this, ContextMenu);\n\n var _this = _possibleConstructorReturn(this, (ContextMenu.__proto__ || Object.getPrototypeOf(ContextMenu)).apply(this, arguments));\n\n _this.template = _ContextMenu2['default'];\n\n _this.isKeyboardSelectEvent = function (e) {\n return (e.which === 13 || e.which === 32) && (e.preventDefault() || true);\n };\n\n _this.rid = Math.random().toString(36).substring(7);\n\n _this.listenTo(_this.model, 'change:isInHistory', function () {\n return _this.render();\n });\n\n _this.render();\n return _this;\n }\n // TODO: Go back and refactor out data tied to the DOM in the template -alance\n\n\n _createClass(ContextMenu, [{\n key: 'events',\n value: function events() {\n return {\n 'click .js-historyAction': '_handleClick',\n 'keydown .js-historyAction': '_handleKey',\n 'keydown .js-context-button': 'toggle'\n };\n }\n }, {\n key: '_handleClick',\n value: function _handleClick() {\n this.model.trigger('title:action', { action: 'history', model: this.model });\n }\n }, {\n key: '_handleKey',\n value: function _handleKey(e) {\n e.stopImmediatePropagation();\n\n if (e.keyCode === 13 || e.keyCode === 32) {\n this.model.trigger('title:action', { action: 'history', model: this.model });\n }\n }\n }, {\n key: '_getSampleText',\n value: function _getSampleText() {\n var type = this.model.get('type').id;\n\n if (type === 'audiobook' || type === 'music') {\n return text('sampleListen');\n } else if (type === 'video') {\n return text('sampleWatch');\n }\n\n return text('sampleRead');\n }\n }, {\n key: '_getHistoryActionLabel',\n value: function _getHistoryActionLabel() {\n var title = this.model.get('title');\n if (this.model.get('isInHistory')) {\n return html('readingHistory.removeTitle', { title: title });\n } else {\n return html('readingHistory.addTitle', { title: title });\n }\n }\n }, {\n key: '_getHistoryActionText',\n value: function _getHistoryActionText() {\n if (this.model.get('isInHistory')) {\n return html('readingHistory.remove');\n } else {\n return html('readingHistory.add');\n }\n }\n }, {\n key: 'render',\n value: function render() {\n this.$el.empty().append(this.template(this.viewModel));\n\n return this;\n }\n }, {\n key: 'toggle',\n value: function toggle(e) {\n if (this.isKeyboardSelectEvent(e)) {\n window.Foundation.libs.dropdown.toggle(this.$el.find('.js-context-button'));\n }\n }\n }, {\n key: 'viewModel',\n get: function get() {\n var seriesSearchUrl = '';\n if (featureManager.isEnabled('enhancedSeries') && this.model.get('detailedSeries')) {\n seriesSearchUrl = url(routes.searchByType, { type: 'seriesId', query: this.model.get('detailedSeries').seriesId, sortBy: 'readingOrder' });\n } else if (this.model.get('series')) {\n seriesSearchUrl = url(routes.searchByType, { type: 'series', query: this.model.get('series'), sortBy: 'newlyadded' });\n }\n\n return {\n id: this.model.id,\n rid: this.rid,\n title: this.model.get('title'),\n typeId: this.model.get('type').id,\n sampleHref: this.model.get('sample').href || '',\n sampleText: this._getSampleText(),\n alignment: 'bottom',\n historyActionLabel: this._getHistoryActionLabel(),\n historyActionText: this._getHistoryActionText(),\n historyEnabled: OverDrive.showHistoryFeature && !this.model.get('isPreReleaseTitle'),\n gaHistoryAction: this.model.get('isInHistory') ? 'history-remove' : 'history-add',\n seriesSearchUrl: seriesSearchUrl\n };\n }\n }]);\n\n return ContextMenu;\n}(Backbone.View);\n\nexports['default'] = ContextMenu;\n\n},{\"./templates/ContextMenu.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\templates\\\\ContextMenu.html.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\Cover.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Cover = require('./templates/Cover.html');\n\nvar _Cover2 = _interopRequireDefault(_Cover);\n\nvar _NoCover = require('./templates/NoCover.html');\n\nvar _NoCover2 = _interopRequireDefault(_NoCover);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _window = window,\n Logger = _window.Logger;\n\nvar Cover = function (_Backbone$View) {\n _inherits(Cover, _Backbone$View);\n\n function Cover(_ref) {\n var coverWidths = _ref.coverWidths,\n isInHero = _ref.isInHero,\n _ref$isTitleHistory = _ref.isTitleHistory,\n isTitleHistory = _ref$isTitleHistory === undefined ? false : _ref$isTitleHistory;\n\n _classCallCheck(this, Cover);\n\n var _this = _possibleConstructorReturn(this, (Cover.__proto__ || Object.getPrototypeOf(Cover)).apply(this, arguments));\n\n _this.coverWidths = _.extend({ mobile: 145, tablet: 160, desktop: 190 }, coverWidths);\n _this.isInHero = isInHero;\n _this.isTitleHistory = isTitleHistory;\n\n _this.listenTo(_this.model, 'change', _this._render);\n _this._render();\n return _this;\n }\n\n _createClass(Cover, [{\n key: 'remove',\n value: function remove() {\n $(window).off('resize.' + this.model.id);\n }\n }, {\n key: '_render',\n value: function _render() {\n var _this2 = this;\n\n var media = this.model.toJSON();\n\n var device = detectshun.browser();\n var coverWidth = device.mobile ? this.coverWidths.mobile : device.tablet ? this.coverWidths.tablet : this.coverWidths.desktop;\n var cover = this.model.getCover(coverWidth);\n\n if (this.model.isPlaceholder) {\n var $cover = '
    ';\n this.$el.empty().append($cover);\n } else if (cover && cover.href) {\n var _$cover = $((0, _Cover2['default'])({\n media: media,\n coverColor: cover && cover.primaryColor && cover.primaryColor.hex || 'inherit',\n src: cover && cover.href,\n href: this.model.titleDetailsUrl,\n label: window.text('cover.coverImageLabel', { title: media.title, creator: media.firstCreatorName }),\n noSampleClass: media.sample.href == null ? 'is-noSample' : ''\n }));\n\n // LHTNG-2105: In the event that an image fails to load, wipe out the href's and update the model to trigger a render()\n _$cover.find('img').on('error', function () {\n\n // LHTNG-2143\n Logger && Logger.log('error', 'CDN Error', {\n type: 'image',\n titleId: media.id,\n src: cover && cover.href\n });\n\n var imagesRemoved = JSON.parse(JSON.stringify(_this2.model.attributes.covers));\n\n _(imagesRemoved).each(function (image) {\n delete image.href;\n });\n\n _this2.model.set({ covers: imagesRemoved });\n });\n\n this.$el.empty().append(_$cover);\n } else if (this.isTitleHistory) {\n this.$el.empty().append('\\n \"'\\n ');\n } else {\n\n var creatorText = this.model.isMagazine ? this.model.get('edition') : this.model.get('firstCreatorName');\n this.$el.empty().append((0, _NoCover2['default'])({\n media: media,\n href: this.model.titleDetailsUrl,\n isInHero: this.isInHero,\n coverWidth: coverWidth,\n coverHeight: coverWidth * 293 / 220,\n creatorText: creatorText\n }));\n $(window).on('resize.' + this.model.id, _.bind(this._manageOverflow, this, '.CoverImageContainer .noCoverAvailable .title', this.model.get('title')));\n $(window).on('resize.' + this.model.id, _.bind(this._manageOverflow, this, '.CoverImageContainer .noCoverAvailable .author', creatorText));\n $(window).on('resize.' + this.model.id, _.bind(this._resizeClearImage, this));\n\n // timeout gives browser chance to draw and set innerHTML values used\n setTimeout(function () {\n _this2._manageOverflow('.CoverImageContainer .noCoverAvailable .title', _this2.model.get('title'));\n _this2._manageOverflow('.CoverImageContainer .noCoverAvailable .author', creatorText);\n _this2._resizeClearImage();\n }, 1);\n }\n\n return this;\n }\n }, {\n key: '_resizeClearImage',\n value: function _resizeClearImage() {\n var image = this.el.querySelector('img');\n if (image) {\n $(image).height($(image).parent().width() * 293 / 220);\n }\n }\n }, {\n key: '_manageOverflow',\n value: function _manageOverflow(selector, resetText) {\n var element = this.el.querySelector(selector);\n if (element) {\n element.innerHTML = resetText;\n if (selector.indexOf('.title') !== -1) {\n if ($(element).width() < 100) {\n $(element).css('font-size', '14px');\n } else if ($(element).width() < 125 && $(element).width() >= 100) {\n $(element).css('font-size', '16px');\n } else if ($(element).width() < 150 && $(element).width() >= 125) {\n $(element).css('font-size', '18px');\n } else if ($(element).width() >= 150) {\n $(element).css('font-size', '20px');\n }\n } else if (selector.indexOf('.author') !== -1) {\n if ($(element).width() < 110) {\n $(element).css('font-size', '10px');\n } else if ($(element).width() < 135 && $(element).width() >= 110) {\n $(element).css('font-size', '12px');\n } else if ($(element).width() < 160 && $(element).width() >= 135) {\n $(element).css('font-size', '14px');\n } else if ($(element).width() >= 160) {\n $(element).css('font-size', '16px');\n }\n }\n if (element.scrollHeight > 0 && element.scrollHeight > element.clientHeight) {\n var text = element.innerHTML;\n text = text.replace(/\\W+$/g, '') + '...'; // remove trailing special characters and add ellipsis\n while (text !== '...' && element.scrollHeight > element.clientHeight) {\n text = text.replace(/\\W*\\w\\W*(\\.{3})$/g, '$1'); // remove a non-ellipsis character and unwanted characters around itΩ\n element.innerHTML = text;\n }\n // todo: put a min width an height on this! We know what the heights are for particular screen widths\n }\n }\n }\n }]);\n\n return Cover;\n}(Backbone.View);\n\nexports['default'] = Cover;\n\n},{\"./templates/Cover.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\templates\\\\Cover.html.js\",\"./templates/NoCover.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\templates\\\\NoCover.html.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\MediaInterface.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _MediaParameters = require('../../../../models/dao/MediaParameters');\n\nvar _MediaParameters2 = _interopRequireDefault(_MediaParameters);\n\nvar _TitleCollection = require('./models/TitleCollection');\n\nvar _TitleCollection2 = _interopRequireDefault(_TitleCollection);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MediaInterface = function () {\n function MediaInterface() {\n _classCallCheck(this, MediaInterface);\n\n _.extend(this, Backbone.Events);\n\n this.items = new _TitleCollection2['default']();\n this.facets = {};\n this.sortOptions = [];\n }\n\n _createClass(MediaInterface, [{\n key: 'quickSearch',\n value: function quickSearch(term, options) {\n return this._fetch(_.extend({}, { query: term }, options));\n }\n }, {\n key: 'search',\n value: function search(parameters, options) {\n return this._fetch(_.extend({}, parameters, options));\n }\n }, {\n key: 'fetchCollectionById',\n value: function fetchCollectionById(id, options) {\n return this._fetch(_.extend({}, { collectionId: id }, options));\n }\n }, {\n key: 'fetchCollectionByParameters',\n value: function fetchCollectionByParameters(collectionFilters, options) {\n return this._fetch(_.extend({}, collectionFilters, options));\n }\n\n /** Utility function to simulate a data call, but deliberatley return an empty result set */\n\n }, {\n key: 'fetchEmptyResponse',\n value: function fetchEmptyResponse() {\n this.trigger('sync:start', this, { mediaParameters: null });\n\n var emptyResponse = {\n items: [],\n facets: {},\n sortOptions: []\n };\n\n this._fetchDone(emptyResponse, 'synthetic');\n\n this.trigger('sync:end', this);\n\n return Promise.resolve(emptyResponse);\n }\n\n /**\n * @param {MediaParameters} parameters\n * @memberof MediaInterface\n */\n\n }, {\n key: '_fetch',\n value: function _fetch(parameters) {\n var _this = this;\n\n if (!parameters) {\n parameters = {};\n }\n\n // if a title id is specificed then no facets will be calculated regardless of the params sent.\n if (!parameters.includedFacets && !parameters.titleId) {\n parameters.includedFacets = window.OverDrive.supportedFacets;\n }\n\n if (window.featureManager.isEnabled('LuckyDay') && parameters.shuffle) {\n var sorts = ['mostpopular', 'releasedate', 'title', 'author', 'newlyadded', 'lowcirculating', 'mostpopular-site'];\n parameters.sortBy = sorts[Math.floor(Math.random() * sorts.length)];\n }\n\n var mediaParameters = new _MediaParameters2['default'](parameters);\n\n if (!!window.OverDrive.showOnlyAvailable) {\n mediaParameters.showOnlyAvailable = true;\n }\n\n this.trigger('sync:start', this, { mediaParameters: mediaParameters });\n\n return new Promise(function (resolve, reject) {\n $.ajax({\n url: window.url(window.routes.rest.media.index),\n method: 'POST',\n dataType: 'json',\n contentType: 'application/json; charset=utf-8',\n data: JSON.stringify(mediaParameters.serialize()),\n timeout: 10000\n }).done(function (data, textStatus, jqXHR) {\n if (window.featureManager.isEnabled('LuckyDay') && parameters.shuffle) {\n data.items = data.items && _.shuffle(data.items);\n }\n _this._fetchDone(data, textStatus, jqXHR);\n _this.trigger('sync:end', _this);\n resolve(data);\n }).fail(function (jqXHR, textStatus, errorThrown) {\n _this._fetchFail(jqXHR, textStatus, errorThrown);\n _this.trigger('sync:end', _this);\n reject(jqXHR);\n });\n });\n }\n }, {\n key: '_fetchDone',\n value: function _fetchDone(data, textStatus, jqXHR) {\n this.items.reset(data.items);\n this.trigger('sync:success', this, { data: data, textStatus: textStatus, jqXHR: jqXHR });\n }\n }, {\n key: '_fetchFail',\n value: function _fetchFail(jqXHR, textStatus, errorThrown) {\n this.trigger('sync:fail', this, { jqXHR: jqXHR, textStatus: textStatus, errorThrown: errorThrown });\n }\n }]);\n\n return MediaInterface;\n}();\n\nexports['default'] = MediaInterface;\n\n},{\"../../../../models/dao/MediaParameters\":\"C:\\\\projects\\\\lightning\\\\models\\\\dao\\\\MediaParameters.js\",\"./models/TitleCollection\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\models\\\\TitleCollection.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\TitleActionButton.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TitleActionButton = function (_Backbone$View) {\n _inherits(TitleActionButton, _Backbone$View);\n\n function TitleActionButton(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === undefined ? 'link' : _ref$type,\n action = _ref.action,\n style = _ref.style;\n\n _classCallCheck(this, TitleActionButton);\n\n var _this = _possibleConstructorReturn(this, (TitleActionButton.__proto__ || Object.getPrototypeOf(TitleActionButton)).apply(this, arguments));\n\n _this.isSelectEvent = function (e) {\n return (e.type === 'click' || e.which === 13 || e.which === 32) && (e.preventDefault() || true);\n };\n\n _this.type = type;\n\n _this.hasCustomAction = false;\n if (!!action) {\n _this.action = action;\n _this.hasCustomAction = true;\n }\n\n _this.style = style;\n\n _this.$button = $('';\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ContextMenu = require('../ContextMenu');\n\nvar _ContextMenu2 = _interopRequireDefault(_ContextMenu);\n\nvar _TitleAuthor = require('./TitleInfo/TitleAuthor');\n\nvar _TitleAuthor2 = _interopRequireDefault(_TitleAuthor);\n\nvar _TitleEdition = require('./TitleInfo/TitleEdition');\n\nvar _TitleEdition2 = _interopRequireDefault(_TitleEdition);\n\nvar _TitleName = require('./TitleInfo/TitleName');\n\nvar _TitleName2 = _interopRequireDefault(_TitleName);\n\nvar _TitleFormatBadge = require('./TitleInfo/TitleFormatBadge');\n\nvar _TitleFormatBadge2 = _interopRequireDefault(_TitleFormatBadge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TitleInfo = function (_Backbone$View) {\n _inherits(TitleInfo, _Backbone$View);\n\n _createClass(TitleInfo, [{\n key: 'className',\n get: function get() {\n return 'title-info';\n }\n }]);\n\n function TitleInfo() {\n _classCallCheck(this, TitleInfo);\n\n var _this = _possibleConstructorReturn(this, (TitleInfo.__proto__ || Object.getPrototypeOf(TitleInfo)).apply(this, arguments));\n\n _this._views = [];\n\n _this.render();\n return _this;\n }\n\n _createClass(TitleInfo, [{\n key: '_reset',\n value: function _reset() {\n this._views.forEach(function (view) {\n return view.remove();\n });\n this._views = [];\n }\n }, {\n key: 'remove',\n value: function remove() {\n this._reset();\n _get(TitleInfo.prototype.__proto__ || Object.getPrototypeOf(TitleInfo.prototype), 'remove', this).call(this);\n }\n }, {\n key: 'render',\n value: function render() {\n this._reset();\n\n this._views.push(this.contextMenu = new _ContextMenu2['default']({ model: this.model }));\n if (this.model.isMagazine) {\n this._views.push(this.titleEdition = new _TitleEdition2['default']({ model: this.model }));\n } else {\n this._views.push(this.titleAuthor = new _TitleAuthor2['default']({ model: this.model }));\n }\n\n this._views.push(this.titleName = new _TitleName2['default']({ model: this.model }));\n this._views.push(this.titleFormatBadge = new _TitleFormatBadge2['default']({ typeId: this.model.get('type').id }));\n\n this.$el.empty();\n this.$el.append(this.titleName.$el, this.contextMenu.$el.addClass('text-right'), this.model.isMagazine ? this.titleEdition.$el : this.titleAuthor.$el, this.titleFormatBadge.$el);\n }\n }]);\n\n return TitleInfo;\n}(Backbone.View);\n\nexports['default'] = TitleInfo;\n\n},{\"../ContextMenu\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\ContextMenu.js\",\"./TitleInfo/TitleAuthor\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo\\\\TitleAuthor.js\",\"./TitleInfo/TitleEdition\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo\\\\TitleEdition.js\",\"./TitleInfo/TitleFormatBadge\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo\\\\TitleFormatBadge.js\",\"./TitleInfo/TitleName\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo\\\\TitleName.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo\\\\TitleAuthor.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Backbone = window.Backbone;\n\n\nvar path = require('path');\nvar TitleAuthorTemplate = \"\\\" class=\\\"secondary-hover-underline\\\" href=\\\"<%= href %>\\\" aria-label=\\\"<%= label %>\\\"><%= text %>\";\n\nvar TitleAuthor = Backbone.View.extend({\n template: _.template(TitleAuthorTemplate),\n\n className: 'title-author',\n\n tagName: 'p',\n\n initialize: function initialize() {\n if (this.model.get('type').id !== 'periodicals') {\n this.render();\n }\n },\n render: function render() {\n var title = this.model.toJSON();\n\n var contents = window.html('cover.noAuthorAvailable');\n\n if (!_.isEmpty(title.firstCreatorName)) {\n var viewData = {\n href: window.url(window.routes.searchByType, { type: 'creatorId', query: title.firstCreatorId, sortBy: 'newlyadded' }),\n label: window.text('cover.searchByAuthor', { author: _.escape(this.model.get('firstCreatorName')) }),\n text: _.escape(title.firstCreatorName)\n };\n\n contents = window.text('byLine', { creator: this.template(viewData) });\n }\n\n this.$el.html(contents);\n }\n});\n\nexports['default'] = TitleAuthor;\n\n\n},{\"path\":\"C:\\\\projects\\\\lightning\\\\node_modules\\\\path-browserify\\\\index.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo\\\\TitleEdition.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TitleEdition = function (_Backbone$View) {\n _inherits(TitleEdition, _Backbone$View);\n\n function TitleEdition() {\n _classCallCheck(this, TitleEdition);\n\n var _this = _possibleConstructorReturn(this, (TitleEdition.__proto__ || Object.getPrototypeOf(TitleEdition)).apply(this, arguments));\n\n _this.render();\n return _this;\n }\n\n _createClass(TitleEdition, [{\n key: 'render',\n value: function render() {\n var node = $('
    ' + this.model.get('edition') + '
    ');\n this.setElement(node);\n }\n }]);\n\n return TitleEdition;\n}(Backbone.View);\n\nexports['default'] = TitleEdition;\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo\\\\TitleFormatBadge.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _TitleFormatBadge = require('../../templates/TitleFormatBadge.html');\n\nvar _TitleFormatBadge2 = _interopRequireDefault(_TitleFormatBadge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar TitleFormatBadge = Backbone.View.extend({\n initialize: function initialize(_ref) {\n var typeId = _ref.typeId;\n\n this.typeId = typeId;\n this.render();\n },\n render: function render() {\n this.setElement($((0, _TitleFormatBadge2['default'])({ typeId: this.typeId })));\n }\n});\n\nexports['default'] = TitleFormatBadge;\n\n},{\"../../templates/TitleFormatBadge.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\templates\\\\TitleFormatBadge.html.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\views\\\\TitleInfo\\\\TitleName.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _TitleName = require('../../templates/TitleName.html');\n\nvar _TitleName2 = _interopRequireDefault(_TitleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TitleName = function (_Backbone$View) {\n _inherits(TitleName, _Backbone$View);\n\n function TitleName() {\n _classCallCheck(this, TitleName);\n\n var _this = _possibleConstructorReturn(this, (TitleName.__proto__ || Object.getPrototypeOf(TitleName)).apply(this, arguments));\n\n _this.template = _TitleName2['default'];\n _this.render();\n return _this;\n }\n\n _createClass(TitleName, [{\n key: '_assembleLabel',\n value: function _assembleLabel() {\n var labelParts = [];\n\n labelParts.push(this.model.get('title'));\n\n if (!!this.model.get('firstCreatorName')) {\n labelParts.push(window.html('byLine', { creator: this.model.isMagazine ? this.model.get('publisher').name : this.model.get('firstCreatorName') }));\n }\n\n labelParts.push(this.model.availabilityText());\n\n labelParts.push(this.model.get('type').name);\n\n return labelParts.join(' ');\n }\n }, {\n key: 'render',\n value: function render() {\n var viewData = {\n titleId: this.model.id,\n href: this.model.titleDetailsUrl,\n ariaLabel: _.escape(this._assembleLabel()),\n title: _.escape(this.model.get('title'))\n };\n\n this.setElement($(this.template(viewData)));\n }\n }]);\n\n return TitleName;\n}(Backbone.View);\n\nexports['default'] = TitleName;\n\n},{\"../../templates/TitleName.html\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\templates\\\\TitleName.html.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\models\\\\PatronTitleStatus.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Title = require('../components/media/models/Title');\n\nvar _Title2 = _interopRequireDefault(_Title);\n\nvar _TitleCollection = require('../components/media/models/TitleCollection');\n\nvar _TitleCollection2 = _interopRequireDefault(_TitleCollection);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// This is a replacement for PatronMediaItemsModel (ecmascript\\models\\patron_media_items.js)\n// We should gradually transition to using this as time permits and we can take the time to validate funtionality\nvar PatronTitleStatus = function (_Backbone$Model) {\n _inherits(PatronTitleStatus, _Backbone$Model);\n\n function PatronTitleStatus() {\n _classCallCheck(this, PatronTitleStatus);\n\n return _possibleConstructorReturn(this, (PatronTitleStatus.__proto__ || Object.getPrototypeOf(PatronTitleStatus)).apply(this, arguments));\n }\n\n _createClass(PatronTitleStatus, [{\n key: 'fetchTitleStatus',\n value: function fetchTitleStatus(titleCollection) {\n var statusTypes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var titleArray = titleCollection.models || titleCollection || [];\n\n if (titleArray.length === 0) {\n return Promise.resolve();\n }\n\n var titleIds = _.map(_(titleArray).pluck('id'), Number);\n\n this.request = this.fetch({ data: JSON.stringify({ titleIds: titleIds, statusTypes: statusTypes }), type: 'POST', contentType: 'application/json' });\n\n return this.request;\n }\n\n /** @param {Title} title */\n\n }, {\n key: 'updateTitleState',\n value: function updateTitleState(title) {\n title.updatePatronState(this.attributes);\n }\n }, {\n key: 'updateTitleCollectionState',\n\n\n /** @param {TitleCollection} titleCollection */\n value: function updateTitleCollectionState(titleCollection) {\n var _this2 = this;\n\n // we provide an empty array for any status attributes that were not fetched\n // in order to avoid breaking anything downstream\n this.stubAttributes();\n this.titleIds.forEach(function (titleId) {\n var model = titleCollection.findWhere({ id: titleId });\n\n if (model) {\n _this2.updateTitleState(model);\n }\n });\n }\n }, {\n key: 'stubAttributes',\n value: function stubAttributes() {\n if (!this.get('onReadingHistory')) {\n this.set('onReadingHistory', []);\n }\n if (!this.get('starRatings')) {\n this.set('starRatings', []);\n }\n if (!this.get('onCheckouts')) {\n this.set('onCheckouts', []);\n }\n if (!this.get('onHolds')) {\n this.set('onHolds', []);\n }\n if (!this.get('onWishlist')) {\n this.set('onWishlist', []);\n }\n if (!this.get('recommendedToLibrary')) {\n this.set('recommendedToLibrary', []);\n }\n }\n }, {\n key: 'url',\n get: function get() {\n return window.url(window.routes.mediaInfo);\n }\n }, {\n key: 'titleIds',\n get: function get() {\n return _.union(this.get('onReadingHistory'), _.keys(this.get('starRatings')), this.get('onCheckouts'), this.get('onHolds'), this.get('onWishlist'), this.get('recommendedToLibrary'));\n }\n }]);\n\n return PatronTitleStatus;\n}(Backbone.Model);\n\nexports['default'] = PatronTitleStatus;\n\n},{\"../components/media/models/Title\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\models\\\\Title.js\",\"../components/media/models/TitleCollection\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\models\\\\TitleCollection.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\pages\\\\home.js\":[function(require,module,exports){\n'use strict';\n\nvar _PageView = require('../components/collection_campaign_page/PageView');\n\nvar _PageView2 = _interopRequireDefault(_PageView);\n\nvar _GetACardModal = require('../components/GetACardModal/GetACardModal');\n\nvar _GetACardModal2 = _interopRequireDefault(_GetACardModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvoid (window.pageView = new _PageView2['default']({\n el: '.Carousels',\n viewId: 'home',\n bus: window.globalEvents,\n room: window.OverDrive.currentRoom,\n featureManager: window.featureManager,\n patronSettings: window.patronSettings\n}));\n\n$(function () {\n if (window.OverDrive.showGetACardModal) {\n new _GetACardModal2['default']();\n }\n});\n\n},{\"../components/GetACardModal/GetACardModal\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\GetACardModal\\\\GetACardModal.js\",\"../components/collection_campaign_page/PageView\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\collection_campaign_page\\\\PageView.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\title-actions\\\\TitleActions.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TitleActions = function () {\n function TitleActions(_ref) {\n var bus = _ref.bus,\n context = _ref.context;\n\n _classCallCheck(this, TitleActions);\n\n this.bus = bus;\n\n this.context = {\n room: undefined,\n collectionDefinition: undefined\n };\n\n _.extend(this.context, context);\n }\n\n _createClass(TitleActions, [{\n key: 'perform',\n value: function perform(action, titleModel) {\n if (typeof this['_' + action] === 'function') {\n this['_' + action](titleModel);\n }\n }\n }, {\n key: '_borrow',\n value: function _borrow(titleModel) {\n this.bus.trigger('title:borrow', titleModel, this.context);\n }\n }, {\n key: '_hold',\n value: function _hold(titleModel) {\n this.bus.trigger('title:hold', titleModel, this.context);\n }\n }, {\n key: '_wish',\n value: function _wish(titleModel) {\n this.bus.trigger('title:wishlist', titleModel, this.context);\n }\n }, {\n key: '_recommend',\n value: function _recommend(titleModel) {\n this.bus.trigger('title:recommend', titleModel, this.context);\n }\n }, {\n key: '_nook',\n value: function _nook(titleModel) {\n this.bus.trigger('title:nook', titleModel, this.context);\n }\n }, {\n key: '_rating',\n value: function _rating(titleModel) {\n this.bus.trigger('title:rating', titleModel, this.context);\n }\n }, {\n key: '_history',\n value: function _history(titleModel) {\n this.bus.trigger('title:history', titleModel, this.context);\n }\n }, {\n key: '_download',\n value: function _download(titleModel) {\n this.bus.trigger('title:download', titleModel, this.context);\n }\n }, {\n key: '_preview',\n value: function _preview(titleModel) {\n this.bus.trigger('title:preview', titleModel, this.context);\n }\n }, {\n key: '_renew',\n value: function _renew(titleModel) {\n this.bus.trigger('title:renew', titleModel, this.context);\n }\n }, {\n key: '_requestAgain',\n value: function _requestAgain(titleModel) {\n this.bus.trigger('title:requestAgain', titleModel, this.context);\n }\n }, {\n key: 'setContextRoom',\n value: function setContextRoom(room) {\n if (_(room).isEmpty()) {\n delete this.context.room;\n } else {\n this.context.room = room;\n }\n\n return this;\n }\n }, {\n key: 'setContextCollection',\n value: function setContextCollection(titleCollection) {\n if (_(titleCollection).isEmpty()) {\n delete this.context.titleCollection;\n } else {\n this.context.titleCollection = titleCollection;\n }\n\n return this;\n }\n }]);\n\n return TitleActions;\n}();\n\nexports['default'] = TitleActions;\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\title-actions\\\\TitleState.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TitleState = function () {\n function TitleState() {\n _classCallCheck(this, TitleState);\n }\n\n _createClass(TitleState, null, [{\n key: 'getState',\n value: function getState(media, patronItems) {\n var featureManager = window.featureManager;\n\n if (featureManager.isEnabled('internationalDemoMode')) {\n return 'preview';\n }\n\n var mediaId = media.id;\n\n var isOnHold = patronItems && patronItems.onHolds.indexOf(mediaId) > -1;\n var isOnCheckouts = patronItems && patronItems.onCheckouts.indexOf(mediaId) > -1;\n var isOnRecommendations = patronItems && patronItems.recommendedToLibrary.indexOf(mediaId) > -1 || media.isRecommended;\n var isAvailable = media.isAvailable || featureManager.isEnabled('LuckyDay') && media.luckyDayAvailableCopies > 0;\n\n if (/account\\/loans/.test(window.location.href) && media.isRenewable && featureManager.isEnabled('content-holds')) {\n if (isOnHold) {\n return 'requested';\n } else if (media.holdsCount <= 0 && media.ownedCopies >= 0 && !(featureManager.isEnabled('LuckyDay') && media.isLuckyDayCheckout) && featureManager.isEnabled('renewTitles')) {\n return 'renew';\n }\n return 'requestAgain';\n }\n\n if (isOnCheckouts) {\n return 'borrowed';\n }\n\n if (isOnHold && !isAvailable) {\n return 'onHold';\n }\n\n if (isOnRecommendations && !isAvailable && !media.isHoldable) {\n return 'recommended';\n }\n\n if (isAvailable) {\n if (media.type.id === 'periodicals') {\n return 'nook';\n }\n\n return 'borrow';\n }\n\n if (!media.isOwned && media.isRecommendableToLibrary && featureManager.isEnabled('recommend-to-library')) {\n return 'recommend';\n }\n\n if (media.isHoldable && featureManager.isEnabled('content-holds')) {\n return 'hold';\n }\n\n return 'unavailable';\n }\n }, {\n key: 'isOnWishlist',\n value: function isOnWishlist(media, patronItems) {\n return patronItems && patronItems.onWishlist.indexOf(media.id) > -1;\n }\n }, {\n key: 'isOnReadingHistory',\n value: function isOnReadingHistory(media, patronItems) {\n return patronItems && patronItems.onReadingHistory.indexOf(media.id) > -1;\n }\n }, {\n key: 'starRating',\n value: function starRating(media, patronItems) {\n // Returns 0 if not rated\n return patronItems && patronItems.starRatings && patronItems.starRatings[media.id] || 0;\n }\n }]);\n\n return TitleState;\n}();\n\nexports['default'] = TitleState;\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\Promise.js\":[function(require,module,exports){\n\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// ES6 version of settle\nPromise.settle = function (promises) {\n var PromiseInspection = function PromiseInspection(fulfilled, value) {\n _classCallCheck(this, PromiseInspection);\n\n this.fulfilled = fulfilled;\n this.value = value;\n };\n\n return Promise.all(promises.map(function (p) {\n return (\n // make sure any values are wrapped in a promise\n Promise.resolve(p).then(function (val) {\n return new PromiseInspection(true, val);\n })[\"catch\"](function (err) {\n return new PromiseInspection(false, err);\n })\n );\n }));\n};\n\n// wrapping Promise notation around an ajax call\nPromise.ajax = function (options) {\n return new Promise(function (resolve, reject) {\n return $.ajax(options).done(function (response) {\n return resolve(response);\n }).fail(function (xhr, status, err) {\n return reject(err);\n });\n });\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\forwardedActions.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.recommend = undefined;\n\nvar _Title = require('../components/media/models/Title');\n\nvar _Title2 = _interopRequireDefault(_Title);\n\nvar _TitleActions = require('../title-actions/TitleActions');\n\nvar _TitleActions2 = _interopRequireDefault(_TitleActions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// process instant forward actions (refactored)\nvar recommend = function recommend(qs, action, bus) {\n if (action) {\n var mediaId = action.split('~')[1];\n var $actionLink = $('.js-recommend[data-media-id=\"' + mediaId + '\"]');\n if ($actionLink.length > 0) {\n // remove the fragment\n history.replaceState(null, null, window.location.pathname + qs);\n\n // have to do a js click instead of jQuery on ?\n $actionLink[0].click();\n } else {\n // Remove action from url\n history.replaceState(null, null, window.location.pathname + qs);\n var title = new _Title2['default']();\n var promise = new Promise(function (resolve, reject) {\n title.getTitleAsync(mediaId, resolve, reject);\n });\n\n promise.then(function () {\n var titleAction = new _TitleActions2['default']({ bus: bus });\n titleAction.perform('recommend', title);\n });\n }\n }\n};\n\nexports.recommend = recommend;\n\n},{\"../components/media/models/Title\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\models\\\\Title.js\",\"../title-actions/TitleActions\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\title-actions\\\\TitleActions.js\"}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\keycodes.js\":[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar keys = Object.freeze({\n TAB: 9,\n ENTER: 13,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32\n});\nexports[\"default\"] = keys;\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\svgLoader.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n// LHTNG-1817 - Dynamic SVG Loader\nexports['default'] = function () {\n $(function () {\n try {\n delete $.ajaxSettings.headers['csrf-token'];\n\n $('.svg.dynamic-loader').each(function (i, el) {\n var $elm = $(el);\n var src = $elm.attr('data-src');\n\n if (!_(src).isEmpty() && !$elm.html()) {\n $.get(window.OverDrive.cdn + '/public/img/' + src).then(function (response) {\n if (!$elm.html()) {\n $elm.append($('svg', response));\n }\n });\n }\n });\n } finally {\n $.ajaxSetup({\n headers: { 'csrf-token': $('#csrf').val() || OverDrive._csrf }\n });\n }\n });\n};\n\n},{}],\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\title-actions\\\\processForwardedAction.js\":[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _HashManager = require('../../components/common/HashManager');\n\nvar _HashManager2 = _interopRequireDefault(_HashManager);\n\nvar _Title = require('../../components/media/models/Title');\n\nvar _Title2 = _interopRequireDefault(_Title);\n\nvar _TitleActions = require('../../title-actions/TitleActions');\n\nvar _TitleActions2 = _interopRequireDefault(_TitleActions);\n\nvar _forwardedActions = require('../forwardedActions.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ProcessForwardedAction = function () {\n function ProcessForwardedAction(collection, bus, model) {\n _classCallCheck(this, ProcessForwardedAction);\n\n var hash = _HashManager2['default'].get('action')[0];\n this.actionArr = hash ? hash.split('~') : [];\n this.action = this.actionArr[0] || null;\n this.mediaId = this.actionArr[1] || null;\n this.rating = this.actionArr[2] || 0;\n this.model = model || null;\n this.collection = collection.models;\n this.bus = bus;\n }\n\n // Execute user forwarded action\n\n\n _createClass(ProcessForwardedAction, [{\n key: 'executeAction',\n value: function executeAction() {\n var _this = this;\n\n if (!this.action || !this.mediaId) {\n return;\n }\n\n if (!this.model || this.model && this.model.get('id') !== this.mediaId) {\n this.model = _.find(this.collection, function (model) {\n return model.id === _this.mediaId;\n });\n }\n\n var titleActions = new _TitleActions2['default']({ bus: this.bus });\n\n if (this.model) {\n // Title model is on page\n _HashManager2['default'].remove('action');\n\n // LHTNG-1685 - Throw conflict modal if title is isOwned on a 'recommend' forwarded action\n if (this.action === 'recommend' && this.model.get('isOwned')) {\n if (this.model.get('titleState') === 'borrow') {\n this.bus.trigger('title:hold:conflict', { titleModel: this.model });\n } else {\n this.bus.trigger('title:borrow:conflict', { titleModel: this.model });\n }\n\n return;\n }\n\n this.model.set('userStarRating', this.rating);\n titleActions.perform(this.action, this.model);\n } else if (this.action === 'recommend' && $('a.primary-action[data-media-id=\"' + this.mediaId + '\"]').length > 0) {\n // Recommended from the preview row\n // Remove after RTL preview row is refactored\n (0, _forwardedActions.recommend)('', this.action, this.bus);\n _HashManager2['default'].remove('action');\n } else {\n // Title model is not on page, fetch async\n var title = new _Title2['default']();\n var promise = new Promise(function (resolve, reject) {\n title.getTitleAsync(_this.mediaId, resolve, reject);\n });\n\n promise.then(function () {\n _this.model && _this.model.set('userStarRating', _this.rating);\n titleActions.perform(_this.action, title);\n _HashManager2['default'].remove('action');\n });\n }\n }\n }]);\n\n return ProcessForwardedAction;\n}();\n\nexports['default'] = ProcessForwardedAction;\n\n},{\"../../components/common/HashManager\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\common\\\\HashManager.js\",\"../../components/media/models/Title\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\components\\\\media\\\\models\\\\Title.js\",\"../../title-actions/TitleActions\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\title-actions\\\\TitleActions.js\",\"../forwardedActions.js\":\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\util\\\\forwardedActions.js\"}]},{},[\"C:\\\\projects\\\\lightning\\\\public\\\\ecmascript\\\\pages\\\\home.js\"])\n\n","const _ = require('underscore');\n\n// ref: OverDrive.Thunder.Models.DataModels.GeneratedCollectionDetails\nmodule.exports = class GeneratedCollectionDetails {\n constructor() {\n this.mediaType = '';\n this.language = '';\n this.publisherEntityId = null; // int\n this.maturityLevels = []; // string\n this.subjects = []; // string\n\n this.sortBy = '';\n this.maxItems = undefined; // int\n\n Object.assign(this, ...arguments);\n }\n\n // Translates GeneratedCollectionDetails model to parameters that align with the MediaParameters model for executing a \"search\"\n serializeForSearch() {\n let model = _.extend({}, this);\n\n // language is an array in MediaParameters\n model.language = _(_.flatten([model.language])).reject((val) => _.isEmpty(val));\n\n // maturityLevels is called maturityLevel\n model.maturityLevel = _(_.flatten([model.maturityLevels])).reject((val) => _.isEmpty(val));\n delete model.maturityLevels;\n\n // subjects is called subject\n model.subject = _(_.flatten([model.subjects])).reject((val) => _.isEmpty(val));\n delete model.subjects;\n\n return model;\n }\n};\n","export default class ColorUtility {\n\n // see _vars.scss for the corresponding css color vars\n //\n static get highContrastBlue(){\n return '#0000FF';\n }\n\n static get highContrastBlueHover(){\n return '#0000F5';\n }\n\n static get highContrastYellow(){\n return '#FFFF00';\n }\n\n static get highContrastYellowHover() {\n return '#F5E600';\n }\n\n// credit: https://stackoverflow.com/a/39077686\n // This will accept three character shorthand hex colors as well as the standard six character format.\n static hexToRGB(hexColor){\n return hexColor.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i\n ,(m, r, g, b) => '#' + r + r + g + g + b + b)\n .substring(1).match(/.{2}/g)\n .map(x => parseInt(x, 16));\n }\n\n static rgbToHex(rgb) {\n let nToHex = function (n) {\n let hex = parseInt(n, 10).toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n };\n return '#' + nToHex(rgb[0]) + nToHex(rgb[1]) + nToHex(rgb[2]);\n }\n\n static getTextColorFromRGB(backgroundRGB){\n // Standard contrast calculation based on the Y component of the YIQ color space. Libby uses the same default Luma threshold.\n // https://github.com/bksh/dewey-js/blob/ebb7189241c5eade8000776d97cd5451bf643e3d/src/app/base/cover-guru.js#L10\n // https://en.wikipedia.org/wiki/YIQ#From_RGB_to_YIQ\n const LUMA_THRESHOLD_YIQ = 190;\n return (backgroundRGB[0] * 299 + backgroundRGB[1] * 587 + backgroundRGB[2] * 114) / 1000 > LUMA_THRESHOLD_YIQ ? '#000000' : '#ffffff';\n }\n\n static getTextColorFromHex(backgroundHex){\n let rgb = ColorUtility.hexToRGB(backgroundHex);\n return ColorUtility.getTextColorFromRGB(rgb);\n }\n\n static shadeColorHex(hexColor, percent){\n let rgb = ColorUtility.hexToRGB(hexColor);\n let shadedRGB = ColorUtility.shadeColor(rgb, percent);\n return ColorUtility.rgbToHex(shadedRGB);\n }\n\n static shadeColor(rgb, percent){\n percent = Math.abs(percent);\n let hsl = ColorUtility.rgbToHsl(rgb[0], rgb[1], rgb[2]);\n let l = hsl[2];\n if (l >= 0.5){\n percent *= -1;\n }\n l = l + percent;\n hsl[2] = l;\n return ColorUtility.hslToRgb(hsl[0], hsl[1], hsl[2]);\n }\n\n /**\n * Credit: taken from https://stackoverflow.com/a/9493060\n *\n * Converts an HSL color value to RGB. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes h, s, and l are contained in the set [0, 1] and\n * returns r, g, and b in the set [0, 255].\n *\n * @param {number} h The hue\n * @param {number} s The saturation\n * @param {number} l The lightness\n * @return {Array} The RGB representation\n */\n static hslToRgb(h, s, l){\n var r, g, b;\n\n if (s === 0){\n r = g = b = l; // achromatic\n } else {\n let hue2rgb = function (p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n };\n\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n }\n\n /**\n * Credit: taken from https://stackoverflow.com/a/9493060\n *\n * Converts an RGB color value to HSL. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes r, g, and b are contained in the set [0, 255] and\n * returns h, s, and l in the set [0, 1].\n *\n * @param {number} r The red color value\n * @param {number} g The green color value\n * @param {number} b The blue color value\n * @return {Array} The HSL representation\n */\n static rgbToHsl(r, g, b){\n r = r / 255;\n g = g / 255;\n b = b / 255;\n let max = Math.max(r, g, b);\n let min = Math.min(r, g, b);\n let h, s, l = (max + min) / 2;\n\n if (max === min){\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max){\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n\n return [h, s, l];\n }\n\n}\n","const _ = require('underscore');\n\n/**\n * Defines all the available input parameters for the media endpoint\n * @class MediaParameters\n * ref: https://thunder-api.test.overdrive.com/docs/ui/index#!/Media/V2Media_IndexMedia\n */\nmodule.exports = class MediaParameters {\n\n constructor() {\n this.query = '';\n this.mediaType = '';\n this.title = '';\n this.series = '';\n this.publisherId = '';\n this.publisherEntityId = null;\n this.imprintId = '';\n this.identifier = '';\n this.creator = '';\n this.creatorId = null;\n this.addedDate = '';\n this.availableFirst = null;\n this.showOnlyAvailable = false;\n this.showOnlyPrerelease = false;\n this.hasAudioSynchronizedText = null;\n this.collectionId = 0;\n\n // All of the following arrays are string arrays\n this.format = [];\n this.subject = [];\n this.bisacCode = [];\n this.maturityLevel = [];\n this.language = [];\n this.atosLevel = [];\n this.lexileScore = [];\n this.interestLevel = [];\n this.gradeLevel = [];\n this.includedFacets = [];\n\n this.sortBy = 'relevance';\n this.show = 'owned';\n this.page = 1;\n this.perPage = 24;\n this.includeFacets = true;\n this.includeNoFormatTitles = false;\n this.filterCpcTitles = false;\n this.maxItems = 0;\n\n Object.assign(this, ...arguments);\n }\n\n applyRoomFiltersAndUserPrefs(roomFilters, userPreferences) {\n if (roomFilters) {\n // Note that the names don't match up so we can't just extend\n if (roomFilters.maturityLevels) {\n this.maturityLevel = roomFilters.maturityLevels;\n }\n if (roomFilters.subjects) {\n this.subject = roomFilters.subjects;\n }\n if (roomFilters.language) {\n this.language = roomFilters.language;\n }\n if (roomFilters.mediaType) {\n this.mediaType = roomFilters.mediaType;\n }\n }\n\n if (userPreferences) {\n // There may be more user prefs to apply besides audience-settings but this\n // was the immediate need. We can add more as they come up.\n if (userPreferences['audience-setting'] && this.maturityLevel.length === 0) {\n let audience = userPreferences['audience-setting'];\n let maturityLevels = [];\n _.each(_.keys(audience), function(key) {\n if (audience[key] && key !== 'all') {\n maturityLevels.push(key);\n }\n });\n if (maturityLevels.length > 0) {\n this.maturityLevel = maturityLevels;\n }\n }\n }\n }\n\n serialize() {\n let response = _.extend({}, this);\n\n // Remove all properties that do not have a value set\n Object.keys(response).forEach((key) => {\n !this._hasValue(response[key]) && delete response[key];\n });\n\n return response;\n }\n\n _hasValue(value) {\n return !((_(value).isObject() && _(value).isEmpty()) || !value) || value === false;\n }\n};\n","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Underscore.js 1.9.1\n// http://underscorejs.org\n// (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` (`self`) in the browser, `global`\n // on the server, or `this` in some virtual machines. We use `self`\n // instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n this ||\n {};\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype;\n var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n // Create quick reference variables for speed access to core prototypes.\n var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for their old module API. If we're in\n // the browser, add `_` as a global object.\n // (`nodeType` is checked to ensure that `module`\n // and `exports` are not HTML elements.)\n if (typeof exports != 'undefined' && !exports.nodeType) {\n if (typeof module != 'undefined' && !module.nodeType && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.9.1';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n var builtinIteratee;\n\n // An internal function to generate callbacks that can be applied to each\n // element in a collection, returning the desired result — either `identity`,\n // an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (_.iteratee !== builtinIteratee) return _.iteratee(value, context);\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value) && !_.isArray(value)) return _.matcher(value);\n return _.property(value);\n };\n\n // External wrapper for our callback generator. Users may customize\n // `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n // This abstraction hides the internal-only argCount argument.\n _.iteratee = builtinIteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // Some functions take a variable number of arguments, or a few expected\n // arguments at the beginning and then a variable number of values to operate\n // on. This helper accumulates all remaining arguments past the function’s\n // argument length (or an explicit `startIndex`), into an array that becomes\n // the last argument. Similar to ES6’s \"rest parameter\".\n var restArguments = function(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var shallowProperty = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n var has = function(obj, path) {\n return obj != null && hasOwnProperty.call(obj, path);\n }\n\n var deepGet = function(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object.\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = shallowProperty('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n var createReduce = function(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n };\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? _.findIndex : _.findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (_.isFunction(path)) {\n func = path;\n } else if (_.isArray(path)) {\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return _.map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n });\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection.\n _.shuffle = function(obj) {\n return _.sample(obj, Infinity);\n };\n\n // Sample **n** random values from a collection using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? _.clone(obj) : _.values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = _.random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n });\n\n var reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (_.isString(obj)) {\n // Keep surrogate pair characters together\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n }, true);\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, Boolean);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, output) {\n output = output || [];\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (shallow) {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n } else {\n flatten(value, shallow, strict, output);\n idx = output.length;\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = restArguments(function(array, otherArrays) {\n return _.difference(array, otherArrays);\n });\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // The faster algorithm will not work with an iteratee if the iteratee\n // is not a one-to-one function, so providing an iteratee will disable\n // the faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = restArguments(function(arrays) {\n return _.uniq(flatten(arrays, true, true));\n });\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n });\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices.\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = restArguments(_.unzip);\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values. Passing by pairs is the reverse of _.pairs.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions.\n var createPredicateIndexFinder = function(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n };\n\n // Returns the first index on an array-like that passes a predicate test.\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions.\n var createIndexFinder = function(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n };\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Chunk a single array into multiple arrays, each containing `count` or fewer\n // items.\n _.chunk = function(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments.\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = restArguments(function(func, context, args) {\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n });\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder by default, allowing any combination of arguments to be\n // pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\n _.partial = restArguments(function(func, boundArgs) {\n var placeholder = _.partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n });\n\n _.partial.placeholder = _;\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = _.bind(obj[key], obj);\n }\n });\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n });\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, result;\n\n var later = function(context, args) {\n timeout = null;\n if (args) result = func.apply(context, args);\n };\n\n var debounced = restArguments(function(args) {\n if (timeout) clearTimeout(timeout);\n if (immediate) {\n var callNow = !timeout;\n timeout = setTimeout(later, wait);\n if (callNow) result = func.apply(this, args);\n } else {\n timeout = _.delay(later, wait, this, args);\n }\n\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return debounced;\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n _.restArguments = restArguments;\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n var collectNonEnumProps = function(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = _.isFunction(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n };\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`.\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object.\n // In contrast to _.map it returns an object.\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n // The opposite of _.object.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`.\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s).\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test.\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Internal pick helper function to determine if `obj` has key `key`.\n var keyInObj = function(value, key, obj) {\n return key in obj;\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (_.isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = _.allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n });\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = _.map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n });\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq, deepEq;\n eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n };\n\n // Internal recursive comparison function for `isEqual`.\n deepEq = function(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError, isMap, isWeakMap, isSet, isWeakSet.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol', 'Map', 'WeakMap', 'Set', 'WeakSet'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\n var nodelist = root.document && root.document.childNodes;\n if (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return !_.isSymbol(obj) && isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`?\n _.isNaN = function(obj) {\n return _.isNumber(obj) && isNaN(obj);\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, path) {\n if (!_.isArray(path)) {\n return has(obj, path);\n }\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (obj == null || !hasOwnProperty.call(obj, key)) {\n return false;\n }\n obj = obj[key];\n }\n return !!length;\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n // Creates a function that, when passed an object, will traverse that object’s\n // properties down the given `path`, specified as an array of keys or indexes.\n _.property = function(path) {\n if (!_.isArray(path)) {\n return shallowProperty(path);\n }\n return function(obj) {\n return deepGet(obj, path);\n };\n };\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n if (obj == null) {\n return function(){};\n }\n return function(path) {\n return !_.isArray(path) ? obj[path] : deepGet(obj, path);\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // Traverses the children of `obj` along `path`. If a child is a function, it\n // is invoked with its parent as context. Returns the value of the final\n // child, or `fallback` if any child is undefined.\n _.result = function(obj, path, fallback) {\n if (!_.isArray(path)) path = [path];\n var length = path.length;\n if (!length) {\n return _.isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = _.isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var chainResult = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return chainResult(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return chainResult(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return String(this._wrapped);\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define == 'function' && define.amd) {\n define('underscore', [], function() {\n return _;\n });\n }\n}());\n","const { html, url, routes } = window;\n\nexport default () => `\n
    \n ${ html('getCard.needCard') }\n ${ html('getCard.youNeedACard') }
    ${ html('getCard.getByMobile') }
    \n
    \n ${ html('getCard.getCard') }\n ${ html('getCard.noIHaveCard') }\n`;\n","import { Modal } from '../common/modal';\nimport GetACardTemplate from './GetACardModal.html';\n\nexport default class GetACardModal extends Modal {\n constructor() {\n let content = GetACardTemplate();\n let modalContents = {\n classes : ['GetACardModal'],\n title: window.html('getCard.needCard'),\n hiddenTitle: true,\n content\n };\n Cookies.set('gacPromoDismissed', 1, {httpOnly: false});\n super(modalContents);\n }\n}\n","export default ({campaign, roomClass}) => `\n
    \n
    \n
    \n
    \n

    \n ${campaign.name.toUpperCase()}\n


    \n
    \n
    \n
    \n
      \n
    • \n
    \n
    \n
    \n ${campaign.description}\n
    \n
    \n ${campaign.type === 'BLR' ? `\n
    \n ${campaign.items.length > 1 ? `\n \n  ${window.html('hero.alsoAvailableAudiobook')} \n \n ` : ''}\n
    \n ` : ''}\n
    \n
    \n
    \n`;\n","import Title from '../../media/models/Title';\nimport TitleCard from '../../media/TitleCard';\nimport TitleActions from '../../../title-actions/TitleActions';\nimport CampaignTemplate from '../templates/Campaign.html';\nimport svgLoader from '../../../util/svgLoader';\n\nexport default class Campaign extends Backbone.View {\n\n get roomClass() {\n return this.currentRoom ? `is-${this.currentRoom.themeName}` : '';\n }\n\n constructor({ bus, currentRoom, campaign }) {\n super(...arguments);\n\n this.bus = bus;\n this.currentRoom = currentRoom;\n this.campaign = campaign;\n\n this.model = this.model || new Title();\n this.titleActions = new TitleActions({ bus: this.bus });\n this.titleCard = new TitleCard({ model: this.model });\n\n this.listenTo(this.model, 'title:action', this._handleTitleAction);\n }\n\n render() {\n let $campaign = $(CampaignTemplate(this));\n\n this.model.setContext({\n campaign: this.campaign\n });\n\n $campaign.find('.Campaign-fullCoverContainer').append(this.titleCard.render().el);\n\n this.$el.empty().append($campaign);\n\n svgLoader();\n }\n\n _handleTitleAction({action, model}) {\n this.titleActions.perform(action, model);\n }\n}\n","import MediaInterface from '../media/MediaInterface';\n\nimport GeneratedCollectionDetails from '../../../../business-objects/GeneratedCollectionDetails';\n\n// ref: Thunder.Models.ResponseModels.CollectionDefinition\nexport default class CollectionDefinition extends Backbone.Model {\n\n get idAttribute() { return 'id'; }\n\n get collectionOptions() {\n let options = {\n includeFacets: false,\n perPage: this.pageSize || 6,\n shuffle: this.shuffle || this.isLuckyDay\n };\n if (this.get('sortByAvailability') || this.get('availabilityOption') === 'available-first') {\n options.availableFirst = true;\n }\n if (this.get('showOnlyAvailable') || this.get('availabilityOption') === 'available-only') {\n options.showOnlyAvailable = true;\n }\n if (this.get('showOnlyPrerelease')) {\n options.showOnlyPrerelease = true;\n }\n if (this.useListOrder){\n options.sortBy = 'listorder';\n }\n\n return options;\n }\n\n defaults() {\n return {\n id : '0',\n name : '',\n description : '',\n availabilityOption : '',\n showOnlyAvailable : false,\n showOnlyPrerelease : false,\n sortByAvailability : false,\n curatedCollectionDetails : null,\n generatedCollectionDetails : null,\n lastModified : null,\n order : 0,\n\n // Computed property\n totalItems : 0\n };\n }\n\n get isLuckyDay(){\n return this.get('availabilityOption') === 'available-luckyday';\n }\n\n get isGenerated() {\n return !_(this.get('generatedCollectionDetails')).isEmpty();\n }\n\n get isCurated() {\n return !_(this.get('curatedCollectionDetails')).isEmpty();\n }\n\n get useListOrder(){\n return this.isCurated && this.get('curatedCollectionDetails').isOrdered;\n }\n\n /**\n * @prop {TitleCollection} collection\n * @memberof CollectionDefinition\n */\n constructor() {\n super(...arguments);\n\n this._mediaInterface = new MediaInterface();\n\n this.titleCollection = this._mediaInterface.items;\n\n this.listenTo(this.titleCollection, 'all', () => {\n this.set('totalItems', this.titleCollection.length);\n });\n }\n\n fetchCollectionTitles({ patronSettings, room}) {\n // Parse the current room's maturityLevels if there is a room, and a maturityLevels filter has been set\n let roomHasMaturityLevelFilter = !_.isEmpty(room && room.filters && room.filters.maturityLevels);\n\n let patronMaturityLevelPreferences = this._parsePatronAudienceSettings(patronSettings);\n\n if (this.isGenerated) {\n let genColDetails = this.get('generatedCollectionDetails');\n if (this.attributes.sortBy) {\n genColDetails.sortBy = this.attributes.sortBy;\n }\n let details = new GeneratedCollectionDetails(genColDetails);\n let params = details.serializeForSearch();\n\n if (!!patronSettings.showOnlyAvailable) {\n params.showOnlyAvailable = true;\n }\n\n // If we are in a room with maturity filters applied, the filters will be apart of the collection definition and we can simply query for the collection\n // User preferences should NOT override a room's maturity filter\n if (roomHasMaturityLevelFilter) {\n return this._mediaInterface.fetchCollectionByParameters(params, this.collectionOptions);\n }\n // Otherwise determine if the User's maturity filter settings cover the collection's maturityLevel settings\n else {\n let generatedCollectionOptions = Object.assign({}, this.collectionOptions);\n\n if (!_(patronMaturityLevelPreferences).isEmpty() && _(params.maturityLevel).isEmpty()) {\n Object.assign(generatedCollectionOptions, { maturityLevel: patronMaturityLevelPreferences });\n }\n\n // Fake an empty response if all the auto generated collection's filters are not covered by the user's maturity level settings\n return this._patronFiltersPermitCollection(params.maturityLevel, patronMaturityLevelPreferences)\n ? this._mediaInterface.fetchCollectionByParameters(params, generatedCollectionOptions)\n : this._mediaInterface.fetchEmptyResponse();\n }\n }\n // else if \"isCurated\"\n else {\n let curatedCollectionOptions = Object.assign({}, this.collectionOptions);\n\n if (!!patronSettings.showOnlyAvailable) {\n curatedCollectionOptions.showOnlyAvailable = true;\n }\n\n // If we are NOT in a room, apply a user's maturity settings if present to the collection request\n // The expectation is that if none of the content satisfies the user's filter its acceptable that no results are returned\n if (_(room).isEmpty()) {\n Object.assign(curatedCollectionOptions, { maturityLevel: patronMaturityLevelPreferences });\n }\n\n return this._mediaInterface.fetchCollectionById(this.id, curatedCollectionOptions);\n }\n }\n\n // Convert the patron audience settings model into an array of filter terms that MediaInterface understands, ex:\n // \"audience-setting\": {\n // \"all\" : false,\n // \"juvenile\" : false,\n // \"youngadult\" : true,\n // \"generalcontent\" : true,\n // \"adultonly\" : true\n // }\n // to: [\"youngadult\", \"generalcontent\", \"adultonly\"]\n /** @returns {string[]} */\n _parsePatronAudienceSettings(patronSettings) {\n let patronAudienceSetting = patronSettings && patronSettings['audience-setting'] || {};\n\n if (_(patronAudienceSetting).isEmpty() || patronAudienceSetting.all) {\n return [];\n }\n\n let audienceFilters = [];\n _(patronAudienceSetting).each((isApplied, key) => {\n if (isApplied && key !== \"all\") {\n audienceFilters.push(key);\n }\n });\n\n return audienceFilters;\n }\n\n _patronFiltersPermitCollection(collectionMaturityFilters = [], userMaturityFilters = []) {\n if (userMaturityFilters.length === 0) {\n return true;\n }\n\n const collectionLower = collectionMaturityFilters.map((filter) => filter.toLowerCase());\n const userLower = userMaturityFilters.map((filter) => filter.toLowerCase());\n\n return _(collectionLower).difference(userLower).length === 0;\n }\n}\n","import CollectionHighlightView from '../collection_highlight/views/CollectionHighlight';\nimport SlantedCollectionHighlight from '../collection_highlight_slanted/SlantedCollectionHightlight';\nconst {featureManager} = window;\n\nexport default class CollectionHighlightViewFactory\n{\n static Build(collectionDefinition, viewOptions, forceSlanted = false){\n if ((featureManager.isEnabled('LuckyDay') && collectionDefinition.isLuckyDay) || forceSlanted){\n return new SlantedCollectionHighlight(viewOptions);\n }\n else {\n return new CollectionHighlightView(viewOptions);\n }\n }\n}\n","import CollectionDefinition from './CollectionDefinition';\n\nexport default class CollectionManager extends Backbone.Collection {\n get model() { return CollectionDefinition; }\n}\n","import CollectionDefinition from './CollectionDefinition';\n\nexport default class PageManager extends Backbone.Model {\n\n get idAttribute() { return 'pageId'; }\n\n get isLoaded() {\n return !_.isEmpty(this.attributes);\n }\n\n // page == room, page has views, one of which is the home-page collections collection\n // ref: /v2/libraries/qa/pages\n fetchRoomById(roomId = 'home') {\n this.url = window.url(window.routes.rest.rooms.get, { roomId });\n\n return new Promise((resolve, reject) => {\n this.fetch({\n timeout: 10000,\n success: (model, response, options) => resolve(response),\n error: (model, response, options) => reject(response)\n });\n });\n }\n\n fetchCampaignById(campaignId) {\n return new Promise((resolve, reject) => {\n $.ajax({\n url: window.url(window.routes.rest.campaigns.get, {campaignId}),\n dataType: 'json',\n timeout: 10000\n })\n .done((response) => resolve(response))\n .fail((jqHXR, textStatus, errorThrown) => reject(jqHXR));\n });\n }\n\n fetchCollectionById(collectionId) {\n return new Promise((resolve, reject) => {\n $.ajax({\n url: window.url(window.routes.rest.collections.getById, { id: collectionId }),\n dataType: 'json',\n timeout: 10000\n })\n .done((response) => resolve(new CollectionDefinition(response)))\n .fail((jqHXR, textStatus, errorThrown) => reject(jqHXR));\n });\n }\n\n getView(viewName) {\n if (!this.isLoaded) { return null; }\n\n return (viewName || '').toLowerCase() === 'home'\n ? _(this.attributes.views).findWhere({ isDefault: true })\n : _(this.attributes.views).findWhere({ name: viewName });\n }\n\n getCampaigns() {\n return this.isLoaded && this.attributes.campaigns;\n }\n}\n","const { Logger, Waypoint, html } = window;\nconst { isAuthenticated, hasLinkedCards } = window.OverDrive;\n\n\nimport '../../util/Promise';\nimport ErrorTemplate from '../../components/common/templates/Error.html';\n\nimport ProcessForwardedAction from '../../util/title-actions/processForwardedAction';\nimport HashManager from '../../components/common/HashManager';\nimport TitleCollection from '../media/models/TitleCollection';\n\nimport PatronTitleStatus from '../../models/PatronTitleStatus';\n\nimport PageManager from './PageManager';\nimport CollectionManager from './CollectionManager';\nimport CollectionHighlightView from '../collection_highlight/views/CollectionHighlight';\nimport SlantedCollectionHighlight from '../collection_highlight_slanted/SlantedCollectionHightlight';\nimport CollectionHighlightFactory from './CollectionHighlightFactory';\nimport Campaign from '../campaign/views/Campaign';\n\nimport LibbyToutTemplate from '../libby_tout/LibbyTout.html';\nimport QueryString from 'querystring';\n\nexport default class PageView extends Backbone.View {\n\n // LHTNG-2082: Visual palceholder for Hero section\n generateHeroPlaceholderEl() { return $('
    '); }\n\n constructor({ viewId, room, bus, featureManager, patronSettings }) {\n super(...arguments);\n\n this.viewId = viewId;\n this.room = room;\n this.bus = bus;\n this.featureManager = featureManager;\n this.patronSettings = patronSettings;\n this.pageSize = 10;\n this.lazyWaypointIndex = 2;\n\n this.pageManager = new PageManager();\n this.collectionManager = new CollectionManager();\n this.views = [];\n\n this.collectionErrors = [];\n\n // Provide a way to simulate collections and campaigns failing to load. This helps with testing dynamic\n // collection loading logic.\n this.collectionIndexesToFail = null;\n this.failCampaign = false;\n\n let rawParams = window.location.search[0] === '?' ? window.location.search.substr(1) : window.location.search;\n let queryParams = QueryString.parse(rawParams);\n\n let collectionsToFail = queryParams.collectionsToFail;\n if (collectionsToFail && collectionsToFail.length > 0) {\n this.collectionIndexesToFail = collectionsToFail.split(',').map((val) => parseInt(val, 10));\n }\n\n this.failCampaign = Boolean(queryParams.failCampaign);\n\n let forcedSlantedGridCollections = queryParams.forcedSlantedGridCollections;\n if (forcedSlantedGridCollections && forcedSlantedGridCollections.length > 0){\n this.forcedSlantedGridCollectionIndexes = forcedSlantedGridCollections.split(',').map((v) => parseInt(v, 10));\n }\n\n this.forceAllSlantedGridCollections = Boolean(queryParams.forceAllSlantedGridCollections);\n\n let slantedGridTitleCountOverride = queryParams.slantedGridTitleCountOverride;\n if (slantedGridTitleCountOverride){\n this.slantedGridTitleCountOverride = slantedGridTitleCountOverride;\n }\n\n this.update();\n }\n\n update() {\n this.$el.empty();\n\n this.views.forEach((view) => view.remove());\n this.views = [];\n\n this.pageManager.fetchRoomById(this.room && this.room.id || 'home').then(() => {\n this.views = this.initViews();\n this.unrenderedViews = this.views.slice();\n this._loadPage();\n });\n }\n\n _loadPage() {\n let isFirstPage = this.unrenderedViews.length === this.views.length;\n\n this._renderPage(this.pageSize, (isFirstPage ? this.lazyWaypointIndex : 0));\n\n if (isFirstPage) {\n this._renderLibbyTout();\n }\n }\n\n _renderPage(rowCount, wayPointIndex = 0){\n\n if (wayPointIndex && wayPointIndex < rowCount - 1) {\n\n // Paint the whole set of collections right away so scrolling speed is consistent\n // before and after you trigger the waypoint for lazy-loading.\n this._paintCollections(this.unrenderedViews.slice(0, rowCount));\n\n this._fetchRows(wayPointIndex + 1)\n .then((collections) => {\n\n this._updatePatronTitleStatus(collections);\n\n // Should this really be here? We can just do it right away if we want at the cost of _potentially_ one\n // extra patron title status call. Meh.\n this._performForwardedAction();\n\n if (this.views[wayPointIndex]){\n let $el = this.views[wayPointIndex].$el;\n\n let waypoint = $('
    ');\n $el.after(waypoint);\n\n let breakpoint = new Waypoint.Inview({\n element: waypoint,\n enter: () => {\n breakpoint.destroy();\n\n if (typeof (newrelic) !== 'undefined'){\n newrelic.addPageAction('lazyLoadWaypointHit', {page: 'homepage'});\n }\n\n this._fetchRows(rowCount - (wayPointIndex + 1)).then((_collections) => {\n this._updatePatronTitleStatus(_collections);\n this._pageLoadComplete();\n });\n }\n });\n }\n\n });\n } else {\n this._fetchRows(rowCount).then((collections) => {\n this._updatePatronTitleStatus(collections);\n this._pageLoadComplete();\n });\n }\n }\n\n _fetchRows(rowCount, collectionsDone = []){\n\n let views = this.unrenderedViews.splice(0, rowCount);\n this._paintCollections(views);\n\n return new Promise((resolve) => {\n this._syncRows(views, collectionsDone).then((result) => {\n if (result.failed){\n this._fetchRows(result.failed, collectionsDone).then((collections) => {\n resolve(collections);\n });\n }\n else {\n resolve(collectionsDone);\n }\n });\n });\n }\n\n _syncRows(views, collections) {\n\n let requestQueue = views.map((view) => view.sync());\n\n return Promise.settle(requestQueue).then(\n (results) => {\n const succeeded = results.filter((result) => result.fulfilled && result.value);\n const failed = results.filter((result) => !result.fulfilled || !result.value);\n\n succeeded.map((request) => collections.push(request.value));\n\n if (failed.length){\n // Make sure we make errors visible for debugging\n failed.forEach((failure) => {\n if (failure && failure.value){\n console.error(failure.value);\n }\n\n });\n }\n\n return { failed: failed.length };\n }\n );\n }\n\n _paintCollections(views){\n let frag = document.createDocumentFragment();\n\n views.forEach((view) => {\n if (!view.isPainted){\n frag.appendChild(view.el);\n view.isPainted = true;\n }\n });\n\n this.el.appendChild(frag);\n }\n\n _pageLoadComplete(){\n if (this.unrenderedViews.length > 0) {\n let $loadMore = $(``).on('click', () => {\n this._loadPage();\n $loadMore.remove();\n });\n\n this.$el.append($loadMore);\n }\n\n if (this.collectionErrors.length > 0){\n let allCollectionsFailed = this.views.length === 0;\n this._logPageErrors(this.collectionErrors, allCollectionsFailed);\n\n if (allCollectionsFailed) {\n this.$el.empty().append(ErrorTemplate());\n }\n }\n\n this.collectionErrors = [];\n }\n\n _logPageErrors(failed, allFailed) {\n const howMany = allFailed ? 'Total' : 'Partial';\n let errors = [];\n for (let failure of failed) {\n errors.push({\n 'id': failure.id,\n 'type': failure.type,\n 'statusText': failure.statusText,\n 'status':failure.status\n });\n }\n let counts = _.countBy(errors, (error) => error.type + ':' + error.statusText);\n Logger.log('error', `${howMany} HomePage Ajax Error`, {message: 'HighlightErrorRollup', errors: errors, counts:counts, page:'home'});\n }\n\n initViews() {\n let views = [];\n\n let campaigns = this.pageManager.getCampaigns();\n\n let showCampaign = campaigns && campaigns.length > 0 && !window.OverDrive.isVisitor;\n if (showCampaign) {\n this.campaign = null;\n\n this.campaignView = new Campaign({ bus: this.bus, currentRoom: this.room });\n this.campaignView.$el.append(this.generateHeroPlaceholderEl());\n\n views.push(this.campaignView);\n\n this.campaignView.sync = () => this.pageManager.fetchCampaignById(campaigns[0].id).then(\n (campaign) => {\n this.campaign = !_(campaign).isEmpty() && !_(campaign).isEmpty(campaign.items) && campaign;\n\n if (this.campaign && !this.failCampaign) {\n this.campaignView.campaign = this.campaign;\n this.campaignView.model.set(this.campaign.items[0]);\n this.campaignView.model.updatePatronState();\n this.campaignView.render();\n\n return this.campaignView;\n }\n else {\n this.campaignView.remove();\n this.removeView(this.campaignView);\n this.campaignView = null;\n }\n },\n (error) => {\n error.id = campaigns[0].id;\n error.statusText = !!error.statusText ? error.statusText : 'UnknownStatus';\n error.type = 'Ajax Error: Campaign';\n\n this.campaignView.remove();\n this.removeView(this.campaignView);\n\n this.collectionErrors.push(error);\n\n this.campaignView = null;\n throw error;\n }\n );\n }\n\n let view = this.pageManager.getView(this.viewId);\n\n if (this._shouldTruncateCollections) {\n view.collectionDefinitions = view.collectionDefinitions.slice(0, 10);\n }\n\n this.collectionManager.reset(view.collectionDefinitions);\n\n this.collectionManager.each((collectionDefinition, index) => {\n let isHero = !showCampaign && index === 0;\n\n // TODO: Thought is that the TitleCard template will render in \"dummy\" state\n collectionDefinition.titleCollection.reset([\n { placeholder: true },\n { placeholder: true },\n { placeholder: true },\n { placeholder: true },\n { placeholder: true },\n { placeholder: true }\n ]);\n\n let viewArgs = {\n model : collectionDefinition,\n bus : this.bus,\n featureManager : this.featureManager,\n room : this.room,\n isHero\n };\n\n if (this.slantedGridTitleCountOverride){\n viewArgs.titleCountOverride = this.slantedGridTitleCountOverride;\n }\n\n let forceSlantedGridView = this.forceAllSlantedGridCollections || (this.forcedSlantedGridCollectionIndexes && this.forcedSlantedGridCollectionIndexes.includes(index));\n if (forceSlantedGridView){\n collectionDefinition.shuffle = true;\n }\n\n let collectionHighlightView = CollectionHighlightFactory.Build(collectionDefinition, viewArgs, forceSlantedGridView);\n collectionDefinition.pageSize = collectionHighlightView.desiredTitleCount;\n\n\n if (isHero) {\n collectionHighlightView.$el.append(this.generateHeroPlaceholderEl());\n }\n\n views.push(collectionHighlightView.render());\n\n collectionHighlightView.sync = () => collectionDefinition.fetchCollectionTitles({ patronSettings: this.patronSettings, room: this.room}).then(\n () => {\n let simulateFailure = this.collectionIndexesToFail && this.collectionIndexesToFail.includes(index);\n if (collectionDefinition.titleCollection.length && !simulateFailure) {\n collectionHighlightView.render();\n collectionHighlightView.toggleTitleVisibility(true);\n\n return collectionDefinition;\n } else {\n // Clean up the failed row\n collectionHighlightView.remove();\n this.removeView(collectionHighlightView);\n throw new Error('No collection contents retrieved');\n }\n },\n (error) => {\n collectionHighlightView.remove();\n this.removeView(collectionHighlightView);\n\n error.id = collectionDefinition.id;\n error.statusText = !!error.statusText ? error.statusText : 'UnknownStatus';\n error.type = 'Ajax Error: Collection';\n\n this.collectionErrors.push(error);\n\n throw error;\n }\n );\n });\n\n return views;\n }\n\n removeView(view){\n this.views = this.views.filter((v) => v !== view);\n\n if (view instanceof Campaign || (view.isHero && this.views[0])) {\n this.views[0].makeHero();\n this._renderLibbyTout();\n }\n }\n\n _updatePatronTitleStatus(views) {\n if (window.OverDrive.isAuthenticated && window.OverDrive.hasLinkedCards && views && views.length > 0) {\n let titles = [];\n\n views.forEach((view) => {\n if (view instanceof Campaign){\n titles.push(view.model);\n }\n else {\n titles.push(...view.titleCollection.models);\n }\n });\n\n let patronTitleStatus = new PatronTitleStatus();\n\n patronTitleStatus.fetchTitleStatus(titles).then(() => {\n patronTitleStatus.updateTitleCollectionState(_(titles));\n });\n }\n }\n\n _renderLibbyTout() {\n\n if (this.libbytout){\n this.libbytout.remove();\n }\n\n let frag = document.createDocumentFragment();\n if (this.featureManager.isEnabled('libbyTout') && this.featureManager.isEnabled('promoteLibby') && !this.room) {\n let $tout = $(LibbyToutTemplate(window.OverDrive.optimizeForChina));\n\n if ((this.viewId || '').toLowerCase() === 'home') {\n $tout = $('
    ').append($tout);\n }\n frag.appendChild($tout[0]);\n this.libbytout = $tout;\n\n $(window).on('resize scroll', () => {\n if (this.isInViewport(this.libbytout.find('.LibbyTout-wayPoint'))) {\n this.libbytout.find('.libbyIcon-container').addClass('libbyIcon-animate');\n }\n else {\n this.libbytout.find('.libbyIcon-container').removeClass('libbyIcon-animate');\n }\n });\n }\n\n this.views[0].$el.after(frag);\n }\n\n isInViewport(element) {\n let elementTop = element.offset().top;\n let elementBottom = elementTop + element.outerHeight();\n\n let viewportTop = $(window).scrollTop();\n let viewportBottom = viewportTop + $(window).height();\n\n if (viewportTop === 0) {\n return false; // fake it when scroll is at the top, but image is still in view\n }\n\n return elementBottom > viewportTop && elementTop < viewportBottom;\n }\n\n _performForwardedAction() {\n if (isAuthenticated && hasLinkedCards && HashManager.get('action')) {\n let titles = [];\n if (this.campaignView) {\n titles.push(this.campaignView.model);\n }\n this.collectionManager.each((collectionDefinition) => {\n titles.push(...collectionDefinition.titleCollection.models);\n });\n const forwardedAction = new ProcessForwardedAction(new TitleCollection(titles), this.bus);\n forwardedAction.executeAction();\n window.forwardedAction = forwardedAction;\n }\n }\n\n get _shouldTruncateCollections() {\n // The OD app on iOS 8 and 9 crashes on the home page if there are too many collections. LHTNG-2387\n let deviceInfo = detectshun.browser();\n let inApp = Cookies.get('omcbrowse') !== undefined;\n if (inApp && deviceInfo.ios && deviceInfo.bowser.osversion) {\n let versionParts = deviceInfo.bowser.osversion.split('.');\n if (versionParts && versionParts.length > 0) {\n let majorVersion = parseInt(versionParts[0], 10);\n if (majorVersion && majorVersion < 10) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","export default ({ name, room, seeAllUrl }) => `\n
    \n
    \n
    \n
    \n \n

    \n \n ${name}\n \n \n

    \n \n ${html('seeAll')}\n \n \n
    \n
      \n
      \n
      \n
      \n
      `;\n","import TitleCollectionView from '../../media/TitleCollectionView';\nimport CollectionHighlightTemplate from '../templates/collection_highlight.html';\n\n\nexport default class CollectionHighlight extends Backbone.View {\n\n template = CollectionHighlightTemplate;\n\n viewAttributes(collection) {\n\n let classes = [];\n\n if (this.isHero) {\n classes.push(`large-block-grid-${collection.length}`);\n }\n else {\n classes.push(`large-block-grid-6`);\n }\n\n if (collection.length <= 2) {\n classes.push(`small-block-grid-${collection.length}`);\n }\n\n if (collection.length >= 3) {\n classes.push(`small-block-grid-2 medium-block-grid-3`);\n }\n\n return {\n class: `titleContainer ${ classes.join(' ') }`\n };\n }\n\n constructor({ bus, room, isHero = false }) {\n super(...arguments);\n\n this.bus = bus;\n this.room = room;\n this.collection = this.model.titleCollection;\n this.isHero = isHero;\n\n this.render();\n }\n\n get seeAllUrl() {\n const collectionId = this.model.get('id');\n return collectionId ? window.url(window.routes.collectionById, {collectionId}) : window.url(window.routes.youMayLikeCollection);\n }\n\n get desiredTitleCount(){\n return 6;\n }\n\n render() {\n let $view = $(this.template(_.extend({}, this.model.attributes, { room: this.room, seeAllUrl: this.seeAllUrl })));\n\n this.titleCollectionView && this.titleCollectionView.remove();\n\n this.titleCollectionView = new TitleCollectionView({\n el : $view.find('.titleContainer'),\n bus : this.bus,\n attributes : this.viewAttributes(this.collection),\n collection : this.collection,\n coverWidths : { mobile: 145, tablet: 160, desktop: 190 },\n isInHero : this.isHero,\n context : {\n collectionDefinition : this.model,\n room : this.room\n }\n });\n\n // ref: LHTNG-1970 - hiding the last two elements so we can remove the overflow hidden on the parent container\n $view.find('.Item').each((i, el) => {\n if (i > 3) {\n $(el).addClass('show-for-medium-up');\n }\n });\n\n this.$el.empty().append($view);\n if(this.isHero) {\n this.makeHero();\n }\n\n return this;\n }\n\n makeHero() {\n this.isHero = true;\n this.$el.find('.collection-container').addClass('Hero');\n this.$el.find('.icon-forward-arrow').remove();\n let description = this.model.attributes.description;\n if (description) {\n this.$el.find('.collectionTitle').after(`

      ${description}

      `);\n }\n }\n\n remove() {\n this.titleCollectionView && this.titleCollectionView.remove();\n super.remove();\n }\n\n toggleTitleVisibility(isVisible){\n let title = this.$el.find('.collectionTitle');\n isVisible ? title.removeClass('invisible') : title.addClass('invisible');\n }\n}\n","export default ({coverGridSizeClass, collectionTitle, collectionDescription, collectionId, coversHtml, bannerBackgroundColor, bannerTextColor, isHero, useFallbackDisplay, fallBackGridWidth}) => `\n
      \n
      \n
      \n
      \n

      ${collectionTitle}

      \n
      ${collectionDescription}
      \n ${window.text('seeAll')}\n
      \n
      \n
      \n
      \n
      \n ${useFallbackDisplay ?\n `
        \n ${coversHtml.map((html) => `
      • ${html}
      • `).join('')}\n
      ` :\n `
      \n ${coversHtml.map((coverHtml, index) => `\n
      \n ${coverHtml}\n
      `).join('')}\n
      `}\n
      \n
      \n
      \n
      \n ${window.text('seeAll')}\n
      \n`;\n\n","import SlantedGridTemplate from './SlantedCollectionHightlight.html';\nimport Cover from '../media/Cover';\nimport TitleName from '../media/views/TitleInfo/TitleName';\nimport ColorUtility from '../../../../lib/colorUtility';\nconst {OverDrive} = window;\n\n\nexport default class SlantedCollectionHighlight extends Backbone.View {\n\n template = SlantedGridTemplate;\n constructor({ bus, room, isHero = false, titleCountOverride = null }) {\n super(...arguments);\n\n this._views = [];\n this.bus = bus;\n this.room = room;\n this.isHero = isHero;\n this.highContrastMode = window.OverDrive.highContrast;\n this.titleCountOverride = titleCountOverride;\n\n this._vertToHorizBreakpointPx = 720;\n this._coverBlockWidthPercentLarge = 0.58;\n this._coverBlockWidthPercentageSmall = 1;\n\n this._smallGridMaxWidthPx = 555;\n this._mediumGridMaxWidthPx = 667;\n this._largeGridMaxWidthPx = 1280;\n this._coverPlaceholderHtml = '
      ';\n }\n\n render() {\n this.$el.empty();\n let colors = this.getTitlePanelColors();\n\n let sizeInfo = this.getGridSize();\n this.$el.empty().append(\n $(this.template({\n coverGridSizeClass: sizeInfo.class,\n collectionTitle: this.model.get('name'),\n collectionDescription: this.model.get('description'),\n collectionId: this.model.get('id'),\n coversHtml: this.getCoversHtml(),\n bannerBackgroundColor: colors.background,\n bannerTextColor: colors.foreground,\n isHero: this.isHero,\n useFallbackDisplay: this.useFallbackDisplay,\n fallBackGridWidth: sizeInfo.gridWidthFallback\n })));\n\n this.$el.find('.textBlockInner a').on('mouseover', (evt) => {\n evt.currentTarget.style.color = colors.foregroundHover;\n }).on('mouseout', (evt) => {\n evt.currentTarget.style.color = colors.foreground;\n });\n\n return this;\n }\n\n get desiredTitleCount(){\n if (this.titleCountOverride){\n return this.titleCountOverride;\n }\n\n let sizeInfo = this.getGridSize();\n return this.useFallbackDisplay ? sizeInfo.numCoversFallback : sizeInfo.numCovers;\n }\n\n get useFallbackDisplay(){\n return window.Modernizr && !window.Modernizr.cssgrid;\n }\n\n getGridSize(){\n\n const xlarge = {\n class: 'extraLarge',\n numCovers: 39,\n numCoversFallback: 47,\n numTilesFallback: 117,\n gridWidthFallback: 13,\n placeholderIndexes: [4,5,6,7,8,9,10,11,12,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,48,49,50,51,52,53,54,55,62,63,64,65,66,67,68,69,70,77,78,79,80,81,82,83,84,91,92,93,94,95,96,97,98,99,104,105,106,107,108,109,110,111,112]\n };\n\n const large = {\n class: 'large',\n numCovers: 25,\n numCoversFallback: 25,\n numTilesFallback: 54,\n gridWidthFallback: 9,\n placeholderIndexes: [0,4,5,6,7,8,14,15,16,17,18,25,26,27,28,35,36,37,38,39,44,45,46,47,48,49,52,53]\n };\n\n const medium = {\n class: 'medium',\n numCovers: 17,\n numCoversFallback: 21,\n numTilesFallback: 35,\n gridWidthFallback: 7,\n placeholderIndexes: [0,4,5,6,12,13,14,21,22,28,29,30,31]\n };\n\n const small = {\n class: 'small',\n numCovers: 12,\n numCoversFallback: 20,\n numTilesFallback: 20,\n gridWidthFallback: 5,\n placeholderIndexes: [0,10,15,16]\n };\n\n // take the max of the available width and height so we don't need to rerender when the device rotates\n let largeDimension = Math.max(window.screen.availWidth, window.screen.availHeight);\n let smallDimension = Math.min(window.screen.availWidth, window.screen.availHeight);\n\n let landscapeMaxGridWidth = (largeDimension < this._vertToHorizBreakpointPx)\n ? largeDimension * this._coverBlockWidthPercentageSmall\n : largeDimension * this._coverBlockWidthPercentLarge;\n\n let portraitMaxGridWidth = (smallDimension < this._vertToHorizBreakpointPx)\n ? smallDimension * this._coverBlockWidthPercentageSmall\n : smallDimension * this._coverBlockWidthPercentLarge;\n\n let maxCoverGridWidth = Math.max(landscapeMaxGridWidth, portraitMaxGridWidth);\n\n if (maxCoverGridWidth <= this._smallGridMaxWidthPx){\n return small;\n } else if (maxCoverGridWidth <= this._mediumGridMaxWidthPx){\n return medium;\n } else if (maxCoverGridWidth <= this._largeGridMaxWidthPx){\n return large;\n } else {\n return xlarge;\n }\n }\n\n getTitlePanelColors(){\n\n let backgroundColor;\n\n if (this.highContrastMode){\n backgroundColor = ColorUtility.highContrastBlue;\n } else {\n // choose a different cover for the source color when the title block is rendered above the cover grid.\n // The effect is nicer if the source cover is abuts the colored area that matches it.\n let colorSourceTitle = this.model.titleCollection.first();\n if (window.innerWidth < this._vertToHorizBreakpointPx && this.model.titleCollection.length > 2){\n colorSourceTitle = this.model.titleCollection.at(2);\n }\n\n let cover = colorSourceTitle.getCover(300);\n backgroundColor = '#a79d99';\n if (this.isHero && OverDrive.colors.primary){\n backgroundColor = OverDrive.colors.primary;\n }\n else if (!colorSourceTitle.isPlaceholder && cover && cover.primaryColor){\n backgroundColor = cover.primaryColor.hex;\n } else {\n backgroundColor = '#a79d99';\n }\n }\n\n let foregroundColor = ColorUtility.getTextColorFromHex(backgroundColor);\n\n return {\n background: backgroundColor,\n foreground: foregroundColor,\n foregroundHover: ColorUtility.shadeColorHex(backgroundColor, 0.2)\n };\n }\n\n // Render one cover for each available title and then repeat them to reach the\n // desired cover count\n getCoversHtml(){\n this.renderBaseCovers();\n let sizeInfo = this.getGridSize();\n\n let numRequired = !this.useFallbackDisplay ? sizeInfo.numCovers : sizeInfo.numTilesFallback;\n\n let results = [];\n while (results.length < numRequired){\n for (let i = 0; i < this._coverMarkup.length && (results.length < numRequired);){\n if (!this.useFallbackDisplay || !sizeInfo.placeholderIndexes.includes(results.length)){\n results.push(this._coverMarkup[i]);\n ++i;\n } else {\n // The fallback display mode uses placeholder covers to fill out the parts of the grid\n // that will be clipped off by the parent container.\n results.push(this._coverPlaceholderHtml);\n }\n }\n }\n return results;\n }\n\n renderBaseCovers() {\n this._views.forEach((view) => view.remove());\n this._views = [];\n this._coverMarkup = [];\n this.model.titleCollection.each((title) => {\n\n if (title.isPlaceholder){\n this._coverMarkup.push(this._coverPlaceholderHtml);\n }\n else {\n let cover = new Cover({\n model: title,\n coverWidths: {mobile: 200, tablet: 300, desktop: 400},\n isInHero: this.isHero\n });\n cover.render();\n\n // we add a hidden title name for screen readers\n let titleName = new TitleName({model: title});\n\n this._coverMarkup.push(`${cover.el.innerHTML}

      ${titleName.el.innerHTML}

      `);\n\n this._views.push(cover);\n this._views.push(titleName);\n }\n });\n }\n\n remove() {\n this._views.forEach((v) => v.remove());\n super.remove();\n }\n\n makeHero() {\n this.isHero = true;\n this.$el.find('.mainBox').addClass('hero');\n let colors = this.getTitlePanelColors();\n this.$el.find('.textBlockOuter').attr('style', `background-color:${colors.background};color:${colors.foreground}`);\n }\n\n toggleTitleVisibility(isVisible) {\n let title = this.$el.find('.textBlockInner');\n isVisible ? title.removeClass('invisible') : title.addClass('invisible');\n }\n}\n","import QueryString from 'querystring';\n\nexport default class HashManager {\n\n static parse() {\n let hashObject = QueryString.parse(location.hash.substr(1));\n\n _.keys(hashObject).forEach((key) => {\n hashObject[key] = _.flatten([hashObject[key] || []]);\n });\n\n return hashObject;\n }\n\n static update(object) {\n let newHash = QueryString.stringify(object);\n if (newHash !== '&'){\n location.hash = newHash;\n }\n }\n\n static get(key) {\n let response = this.parse();\n\n if (_.isString(key)) {\n return response[key];\n }\n\n return response;\n }\n\n static set(key, value) {\n let hash = this.parse();\n\n hash[key] = _.flatten([value]);\n\n this.update(hash);\n }\n\n static push(key, value) {\n let hash = this.parse();\n\n hash[key] = hash[key] || [];\n hash[key].push(value);\n\n this.update(hash);\n }\n\n static remove(key) {\n let hash = this.parse();\n\n hash[key] && delete hash[key];\n\n this.update(hash);\n }\n}\n","import keys from '../../util/keycodes';\nimport ModalTemplate from './templates/modal.html';\n\nclass Modal extends Backbone.View {\n\n get defaults() {\n return {\n autoShow : true,\n autoRender : true,\n closeOnEsc : true,\n closeOnBlur : true,\n\n id : '',\n classes : ['small'],\n buttonAlign : 'right',\n title : 'Title',\n hiddenTitle : false,\n content : 'Some Content',\n submitText : html('ok'),\n cancelText : html('cancel'),\n attachToDocument : true,\n defaultButtonBehaviour : true,\n showCloseButton : true\n };\n }\n\n initialize(options) {\n _.extend(this, this.defaults, options);\n\n this.tpl = ModalTemplate;\n this.setElement(this.tpl(this));\n\n if (this.id.length) {\n this.$el.attr('id', this.id);\n }\n\n this.$content = this.$el.find('.modal-container');\n\n this.$content.empty().append(this.content);\n\n this.$el.addClass(this.classes.join(' '));\n\n this.$title = this.$el.find('.modal-title');\n\n if (this.hiddenTitle) {\n this.$title.css(\"opacity\", \"0\");\n }\n\n if (this.autoRender) {\n this._render();\n }\n\n this._bindEvents();\n }\n\n _render() {\n if (this.attachToDocument) {\n // For Foundation to work as expected we need to have the element attached to the DOM before calling .foundation('reveal', 'open')\n $('body').append(this.el);\n }\n\n if (this.autoShow) {\n this.show();\n }\n\n return this;\n }\n\n isSelectEvent = (e) => (e.type === 'click' || e.which === 13 || e.which === 32) && (e.preventDefault() || true);\n\n // We dont actually want to use the Foundation modal events since they get weird fast...\n // lets use our own so consumers dont have to know its foundation\n _bindEvents() {\n this.$el.on('click keydown', '.js-close', (e) => {\n this.isSelectEvent(e) && this.trigger('cancel', this);\n });\n\n if (this.defaultButtonBehaviour) {\n this.on('close cancel', () => { this.close(); });\n }\n\n this.$el.on('keypress', '*', (e) => {\n if (e.which === keys.TAB) {\n this._keepFocus(e);\n }\n });\n }\n\n show() {\n this._beforeShow();\n this.$el.foundation('reveal', 'open');\n this.trigger('show', this);\n\n this.$el.on('keydown', (e) => {\n this._keepFocus(e);\n });\n\n // Execute code after the modal is displayed\n this.$el.on('opened.fndtn.reveal', () => this._afterShow());\n\n // Traps foundation bug that closes modal on dropdown \"closed\", not an issue in 5.5.3+\n this.$el.off('closed');\n\n // Handle foundation close events from ESC and BG clicks\n this.$el.on('close.fndtn.reveal', () => {\n this.$el.off('close.fndtn.reveal');\n this.trigger('close');\n });\n }\n\n _beforeShow() {\n this.focused = $(document.activeElement);\n }\n\n _afterShow() {\n this.$el.attr('aria-hidden', false);\n $('.container').attr('aria-hidden', 'true');\n $('.row.footer').attr('aria-hidden', 'true');\n $('.nav-container').attr('aria-hidden', 'true');\n\n this.$title.focus();\n this._setScroll();\n }\n\n _setScroll() {\n let offset = window.pageYOffset - parseInt(this.$el.css('top').slice(0, -2), 10); // the 'top' styling is baked in by foundation\n if (window.innerHeight < this.el.offsetHeight - offset) { // scroll tall modals into view as much as fits\n offset = Math.min(this.el.offsetHeight - window.innerHeight + 10, -5);\n }\n else if (window.innerWidth < 641) { // mobile view padding\n offset -= 5;\n }\n this.el.scrollIntoView(); // sets scroll to top of modal\n window.scrollBy(0, offset); // adjusts scroll according to calculated offset\n }\n\n _keepFocus(e) {\n const activeElem = $(document.activeElement);\n const firstFocusable = this.$title || this.$el.find(':focusable:visible').first();\n const lastFocusable = this.$el.find(':focusable:visible').last();\n\n if (activeElem.is(firstFocusable) && e.which === keys.TAB && e.shiftKey) {\n e.preventDefault();\n lastFocusable.focus();\n } else if ($(activeElem).is(lastFocusable) && e.which === keys.TAB && !e.shiftKey) {\n e.preventDefault();\n firstFocusable.focus();\n }\n }\n\n hide() {\n this.$el.foundation('reveal', 'close');\n this.trigger('hide', this);\n $('.container').attr('aria-hidden', 'false');\n $('.row.footer').attr('aria-hidden', 'false');\n $('.nav-container').attr('aria-hidden', 'false');\n this.focused.focus();\n }\n\n close() {\n this.hide();\n this.remove();\n }\n}\n\nexport { Modal };\n","export default () => `\n
      \n
      \n
      \n
      \n
      \n ${window.text('error.errorContactSupport', {link: `${window.html('pleaseContactSupport')}`})}\n
      \n
      \n
      \n
      \n
      \n`;\n","export default ({title, closeOnEsc, closeOnBlur, showCloseButton}) => `
      \n
      \n

      ${ title }

      \n ${showCloseButton ? `×` : ''}\n
      \n\n
      \n
      `;\n","export default (isChina = false) => {\n\n let appLinksUS = () => `\n
      \n
      \n ${ window.html(\n
      \n
      \n ${ window.html(\n
      \n \n
      `;\n\n let appLinksCN = () => `\n
      \n
      \n 360\n
      \n
      \n Lenovo\n
      \n
      \n PP\n
      \n
      `;\n\n return `\n
      \n \n\n
      \n
      \n

      ${ window.html('libbyTout.heading') }

      \n
      ${ window.html('libbyTout.message') }
      \n ${ window.html('libbyTout.learnMore') }\n
      \n
      \n\n
      \n ${ (isChina ? appLinksCN() : appLinksUS()) }\n
      \n \n
      \n
      `;\n};\n","import ContextMenuTemplate from './templates/ContextMenu.html';\nconst {featureManager, url, routes, OverDrive, text, html} = window;\n\nexport default class ContextMenu extends Backbone.View {\n // TODO: Go back and refactor out data tied to the DOM in the template -alance\n template = ContextMenuTemplate;\n\n constructor() {\n super(...arguments);\n\n this.rid = Math.random().toString(36).substring(7);\n\n this.listenTo(this.model, 'change:isInHistory', () => this.render());\n\n this.render();\n }\n\n events() {\n return {\n 'click .js-historyAction' : '_handleClick',\n 'keydown .js-historyAction' : '_handleKey',\n 'keydown .js-context-button' : 'toggle'\n };\n }\n\n _handleClick() {\n this.model.trigger('title:action', { action: 'history', model: this.model });\n }\n\n _handleKey(e) {\n e.stopImmediatePropagation();\n\n if (e.keyCode === 13 || e.keyCode === 32) {\n this.model.trigger('title:action', { action: 'history', model: this.model });\n }\n }\n\n get viewModel() {\n let seriesSearchUrl = '';\n if (featureManager.isEnabled('enhancedSeries') && this.model.get('detailedSeries')) {\n seriesSearchUrl = url(routes.searchByType, {type: 'seriesId', query: this.model.get('detailedSeries').seriesId, sortBy: 'readingOrder'});\n }\n else if (this.model.get('series')) {\n seriesSearchUrl = url(routes.searchByType, { type: 'series', query: this.model.get('series'), sortBy: 'newlyadded' });\n }\n\n return {\n id : this.model.id,\n rid : this.rid,\n title : this.model.get('title'),\n typeId : this.model.get('type').id,\n sampleHref : this.model.get('sample').href || '',\n sampleText : this._getSampleText(),\n alignment : 'bottom',\n historyActionLabel : this._getHistoryActionLabel(),\n historyActionText : this._getHistoryActionText(),\n historyEnabled : OverDrive.showHistoryFeature && !this.model.get('isPreReleaseTitle'),\n gaHistoryAction : this.model.get('isInHistory') ? 'history-remove' : 'history-add',\n seriesSearchUrl : seriesSearchUrl\n };\n }\n\n _getSampleText() {\n const type = this.model.get('type').id;\n\n if (type === 'audiobook' || type === 'music') {\n return text('sampleListen');\n } else if (type === 'video') {\n return text('sampleWatch');\n }\n\n return text('sampleRead');\n }\n\n _getHistoryActionLabel() {\n const title = this.model.get('title');\n if (this.model.get('isInHistory')) {\n return html('readingHistory.removeTitle', {title});\n }\n else {\n return html('readingHistory.addTitle', {title});\n }\n }\n\n _getHistoryActionText() {\n if (this.model.get('isInHistory')) {\n return html('readingHistory.remove');\n }\n else {\n return html('readingHistory.add');\n }\n }\n\n render() {\n this.$el.empty().append(this.template(this.viewModel));\n\n return this;\n }\n\n isKeyboardSelectEvent = (e) => (e.which === 13 || e.which === 32) && (e.preventDefault() || true);\n\n toggle(e) {\n if (this.isKeyboardSelectEvent(e)) {\n window.Foundation.libs.dropdown.toggle(this.$el.find('.js-context-button'));\n }\n }\n}\n","const { Logger } = window;\n\nimport CoverTemplate from './templates/Cover.html';\nimport NoCoverTemplate from './templates/NoCover.html';\n\nexport default class Cover extends Backbone.View {\n constructor({coverWidths, isInHero, isTitleHistory = false}) {\n super(...arguments);\n\n this.coverWidths = _.extend({mobile: 145, tablet: 160, desktop: 190}, coverWidths);\n this.isInHero = isInHero;\n this.isTitleHistory = isTitleHistory;\n\n this.listenTo(this.model, 'change', this._render);\n this._render();\n }\n\n remove() {\n $(window).off(`resize.${this.model.id}`);\n }\n\n _render() {\n const media = this.model.toJSON();\n\n const device = detectshun.browser();\n const coverWidth = device.mobile ? this.coverWidths.mobile : device.tablet ? this.coverWidths.tablet : this.coverWidths.desktop;\n const cover = this.model.getCover(coverWidth);\n\n if (this.model.isPlaceholder) {\n let $cover = `
      `;\n this.$el.empty().append($cover);\n }\n\n else if (cover && cover.href) {\n let $cover = $(CoverTemplate({\n media,\n coverColor : cover && cover.primaryColor && cover.primaryColor.hex || 'inherit',\n src : cover && cover.href,\n href : this.model.titleDetailsUrl,\n label : window.text('cover.coverImageLabel', { title: media.title, creator: media.firstCreatorName }),\n noSampleClass : media.sample.href == null ? 'is-noSample' : ''\n }));\n\n // LHTNG-2105: In the event that an image fails to load, wipe out the href's and update the model to trigger a render()\n $cover.find('img').on('error', () => {\n\n // LHTNG-2143\n Logger && Logger.log('error', 'CDN Error', {\n type : 'image',\n titleId : media.id,\n src : cover && cover.href\n });\n\n let imagesRemoved = JSON.parse(JSON.stringify(this.model.attributes.covers));\n\n _(imagesRemoved).each((image) => { delete image.href; });\n\n this.model.set({ covers: imagesRemoved });\n });\n\n this.$el.empty().append($cover);\n }\n else if (this.isTitleHistory) {\n this.$el.empty().append(\n `\n \"${\n `\n );\n }\n else {\n\n let creatorText = this.model.isMagazine ? this.model.get('edition') : this.model.get('firstCreatorName');\n this.$el.empty().append(NoCoverTemplate({\n media,\n href : this.model.titleDetailsUrl,\n isInHero : this.isInHero,\n coverWidth : coverWidth,\n coverHeight : coverWidth * 293 / 220,\n creatorText : creatorText\n }));\n $(window).on(`resize.${this.model.id}`, _.bind(this._manageOverflow, this, '.CoverImageContainer .noCoverAvailable .title', this.model.get('title')));\n $(window).on(`resize.${this.model.id}`, _.bind(this._manageOverflow, this, '.CoverImageContainer .noCoverAvailable .author', creatorText));\n $(window).on(`resize.${this.model.id}`, _.bind(this._resizeClearImage, this));\n\n // timeout gives browser chance to draw and set innerHTML values used\n setTimeout(() => {\n this._manageOverflow('.CoverImageContainer .noCoverAvailable .title', this.model.get('title'));\n this._manageOverflow('.CoverImageContainer .noCoverAvailable .author', creatorText);\n this._resizeClearImage();\n }, 1);\n\n }\n\n return this;\n }\n\n _resizeClearImage() {\n const image = this.el.querySelector('img');\n if (image) {\n $(image).height($(image).parent().width() * 293 / 220);\n }\n\n }\n _manageOverflow(selector, resetText) {\n const element = this.el.querySelector(selector);\n if (element) {\n element.innerHTML = resetText;\n if (selector.indexOf('.title') !== -1) {\n if ($(element).width() < 100) {\n $(element).css('font-size', '14px');\n }\n else if ($(element).width() < 125 && $(element).width() >= 100) {\n $(element).css('font-size', '16px');\n }\n else if ($(element).width() < 150 && $(element).width() >= 125) {\n $(element).css('font-size', '18px');\n }\n else if ($(element).width() >= 150) {\n $(element).css('font-size', '20px');\n }\n }\n else if (selector.indexOf('.author') !== -1) {\n if ($(element).width() < 110) {\n $(element).css('font-size', '10px');\n }\n else if ($(element).width() < 135 && $(element).width() >= 110) {\n $(element).css('font-size', '12px');\n }\n else if ($(element).width() < 160 && $(element).width() >= 135) {\n $(element).css('font-size', '14px');\n }\n else if ($(element).width() >= 160) {\n $(element).css('font-size', '16px');\n }\n }\n if (element.scrollHeight > 0 && element.scrollHeight > element.clientHeight) {\n let text = element.innerHTML;\n text = `${text.replace(/\\W+$/g, '')}...`; // remove trailing special characters and add ellipsis\n while (text !== '...' && element.scrollHeight > element.clientHeight) {\n text = text.replace(/\\W*\\w\\W*(\\.{3})$/g, '$1'); // remove a non-ellipsis character and unwanted characters around itΩ\n element.innerHTML = text;\n }\n // todo: put a min width an height on this! We know what the heights are for particular screen widths\n }\n }\n }\n}\n","import MediaParameters from '../../../../models/dao/MediaParameters';\nimport TitleCollection from './models/TitleCollection';\n\nexport default class MediaInterface {\n\n constructor() {\n _.extend(this, Backbone.Events);\n\n this.items = new TitleCollection();\n this.facets = {};\n this.sortOptions = [];\n }\n\n quickSearch(term, options) {\n return this._fetch(_.extend({}, { query: term }, options));\n }\n\n search(parameters, options) {\n return this._fetch(_.extend({}, parameters, options));\n }\n\n fetchCollectionById(id, options) {\n return this._fetch(_.extend({}, { collectionId: id }, options));\n }\n\n fetchCollectionByParameters(collectionFilters, options) {\n return this._fetch(_.extend({}, collectionFilters, options));\n }\n\n /** Utility function to simulate a data call, but deliberatley return an empty result set */\n fetchEmptyResponse() {\n this.trigger('sync:start', this, { mediaParameters: null });\n\n let emptyResponse = {\n items : [],\n facets : {},\n sortOptions : []\n };\n\n this._fetchDone(emptyResponse, 'synthetic');\n\n this.trigger('sync:end', this);\n\n return Promise.resolve(emptyResponse);\n }\n\n /**\n * @param {MediaParameters} parameters\n * @memberof MediaInterface\n */\n _fetch(parameters) {\n\n if (!parameters){\n parameters = {};\n }\n\n // if a title id is specificed then no facets will be calculated regardless of the params sent.\n if (!parameters.includedFacets && !parameters.titleId){\n parameters.includedFacets = window.OverDrive.supportedFacets;\n }\n\n if (window.featureManager.isEnabled('LuckyDay') && parameters.shuffle){\n const sorts = ['mostpopular', 'releasedate', 'title', 'author', 'newlyadded', 'lowcirculating', 'mostpopular-site'];\n parameters.sortBy = sorts[Math.floor(Math.random() * sorts.length)];\n }\n\n let mediaParameters = new MediaParameters(parameters);\n\n if (!!window.OverDrive.showOnlyAvailable) {\n mediaParameters.showOnlyAvailable = true;\n }\n\n this.trigger('sync:start', this, { mediaParameters });\n\n return new Promise((resolve, reject) => {\n $.ajax({\n url: window.url(window.routes.rest.media.index),\n method : 'POST',\n dataType: 'json',\n contentType: 'application/json; charset=utf-8',\n data : JSON.stringify(mediaParameters.serialize()),\n timeout: 10000\n })\n .done((data, textStatus, jqXHR) => {\n if (window.featureManager.isEnabled('LuckyDay') && parameters.shuffle){\n data.items = data.items && _.shuffle(data.items);\n }\n this._fetchDone(data, textStatus, jqXHR);\n this.trigger('sync:end', this);\n resolve(data);\n })\n .fail((jqXHR, textStatus, errorThrown) => {\n this._fetchFail(jqXHR, textStatus, errorThrown);\n this.trigger('sync:end', this);\n reject(jqXHR);\n });\n });\n }\n\n _fetchDone(data, textStatus, jqXHR) {\n this.items.reset(data.items);\n this.trigger('sync:success', this, { data, textStatus, jqXHR });\n }\n\n _fetchFail(jqXHR, textStatus, errorThrown) {\n this.trigger('sync:fail', this, { jqXHR, textStatus, errorThrown });\n }\n}\n","export default class TitleActionButton extends Backbone.View {\n\n constructor({type = 'link', action, style}) {\n super(...arguments);\n\n this.type = type;\n\n this.hasCustomAction = false;\n if (!!action) {\n this.action = action;\n this.hasCustomAction = true;\n }\n\n this.style = style;\n\n this.$button = $('`;\n","import ContextMenu from '../ContextMenu';\nimport TitleAuthor from './TitleInfo/TitleAuthor';\nimport TitleEdition from './TitleInfo/TitleEdition';\nimport TitleName from './TitleInfo/TitleName';\nimport TitleFormatBadge from './TitleInfo/TitleFormatBadge';\n\nexport default class TitleInfo extends Backbone.View {\n\n get className() { return 'title-info'; }\n\n constructor() {\n super(...arguments);\n this._views = [];\n\n this.render();\n }\n\n _reset() {\n this._views.forEach((view) => view.remove());\n this._views = [];\n }\n\n remove() {\n this._reset();\n super.remove();\n }\n\n render() {\n this._reset();\n\n this._views.push(this.contextMenu = new ContextMenu({model: this.model}));\n if (this.model.isMagazine){\n this._views.push(this.titleEdition = new TitleEdition({model: this.model}));\n } else {\n this._views.push(this.titleAuthor = new TitleAuthor({model: this.model}));\n }\n\n this._views.push(this.titleName = new TitleName({model: this.model}));\n this._views.push(this.titleFormatBadge = new TitleFormatBadge({typeId: this.model.get('type').id}));\n\n this.$el.empty();\n this.$el.append(\n this.titleName.$el,\n this.contextMenu.$el.addClass('text-right'),\n this.model.isMagazine ? this.titleEdition.$el : this.titleAuthor.$el,\n this.titleFormatBadge.$el\n );\n }\n}\n","const Backbone = window.Backbone;\n\nconst fs = require('fs');\nconst path = require('path');\nconst TitleAuthorTemplate = fs.readFileSync(path.join(__dirname, '../../templates/TitleAuthor.html'), 'utf8');\n\nconst TitleAuthor = Backbone.View.extend({\n template: _.template(TitleAuthorTemplate),\n\n className: 'title-author',\n\n tagName: 'p',\n\n initialize() {\n if (this.model.get('type').id !== 'periodicals') {\n this.render();\n }\n },\n\n render() {\n let title = this.model.toJSON();\n\n let contents = window.html('cover.noAuthorAvailable');\n\n if (!_.isEmpty(title.firstCreatorName)) {\n const viewData = {\n href : window.url(window.routes.searchByType, { type: 'creatorId', query: title.firstCreatorId, sortBy: 'newlyadded' }),\n label : window.text('cover.searchByAuthor', { author: _.escape(this.model.get('firstCreatorName')) }),\n text : _.escape(title.firstCreatorName)\n };\n\n contents = window.text('byLine', { creator: this.template(viewData) });\n }\n\n this.$el.html(contents);\n }\n\n});\n\nexport default TitleAuthor;\n","\nexport default class TitleEdition extends Backbone.View {\n constructor() {\n super(...arguments);\n this.render();\n }\n\n render() {\n let node = $(`
      ${this.model.get('edition')}
      `);\n this.setElement(node);\n }\n}\n","import TitleFormatBadgeTemplate from '../../templates/TitleFormatBadge.html';\n\nconst TitleFormatBadge = Backbone.View.extend({\n initialize({typeId}) {\n this.typeId = typeId;\n this.render();\n },\n\n render() {\n this.setElement($(TitleFormatBadgeTemplate({typeId: this.typeId})));\n }\n});\n\nexport default TitleFormatBadge;\n","import TitleNameTemplate from '../../templates/TitleName.html';\n\nexport default class TitleName extends Backbone.View {\n constructor() {\n super(...arguments);\n\n this.template = TitleNameTemplate;\n this.render();\n }\n\n _assembleLabel() {\n let labelParts = [];\n\n labelParts.push(this.model.get('title'));\n\n if (!!this.model.get('firstCreatorName')) {\n labelParts.push(window.html('byLine', {creator: this.model.isMagazine ? this.model.get('publisher').name : this.model.get('firstCreatorName')}));\n }\n\n labelParts.push(this.model.availabilityText());\n\n labelParts.push(this.model.get('type').name);\n\n return labelParts.join(' ');\n }\n\n render() {\n const viewData = {\n titleId : this.model.id,\n href : this.model.titleDetailsUrl,\n ariaLabel : _.escape(this._assembleLabel()),\n title : _.escape(this.model.get('title'))\n };\n \n this.setElement($(this.template(viewData)));\n }\n}\n\n","import Title from '../components/media/models/Title';\nimport TitleCollection from '../components/media/models/TitleCollection';\n\n// This is a replacement for PatronMediaItemsModel (ecmascript\\models\\patron_media_items.js)\n// We should gradually transition to using this as time permits and we can take the time to validate funtionality\nexport default class PatronTitleStatus extends Backbone.Model {\n\n get url(){\n return window.url(window.routes.mediaInfo);\n }\n\n fetchTitleStatus(titleCollection, statusTypes = null) {\n let titleArray = titleCollection.models || titleCollection || [];\n\n if (titleArray.length === 0) {\n return Promise.resolve();\n }\n\n let titleIds = _.map(_(titleArray).pluck('id'), Number);\n\n this.request = this.fetch({ data: JSON.stringify({titleIds, statusTypes}), type: 'POST', contentType: 'application/json' });\n\n return this.request;\n }\n\n /** @param {Title} title */\n updateTitleState(title) {\n title.updatePatronState(this.attributes);\n }\n\n get titleIds() {\n return _.union(\n this.get('onReadingHistory'),\n _.keys(this.get('starRatings')),\n this.get('onCheckouts'),\n this.get('onHolds'),\n this.get('onWishlist'),\n this.get('recommendedToLibrary'));\n }\n\n /** @param {TitleCollection} titleCollection */\n updateTitleCollectionState(titleCollection) {\n // we provide an empty array for any status attributes that were not fetched\n // in order to avoid breaking anything downstream\n this.stubAttributes();\n this.titleIds.forEach((titleId) => {\n const model = titleCollection.findWhere({ id: titleId });\n\n if (model) {\n this.updateTitleState(model);\n }\n });\n }\n\n stubAttributes() {\n if (!this.get('onReadingHistory')){\n this.set('onReadingHistory', []);\n }\n if (!this.get('starRatings')){\n this.set('starRatings', []);\n }\n if (!this.get('onCheckouts')){\n this.set('onCheckouts', []);\n }\n if (!this.get('onHolds')){\n this.set('onHolds', []);\n }\n if (!this.get('onWishlist')){\n this.set('onWishlist', []);\n }\n if (!this.get('recommendedToLibrary')){\n this.set('recommendedToLibrary', []);\n }\n }\n}\n","import PageView from '../components/collection_campaign_page/PageView';\n\nimport GetACardModal from '../components/GetACardModal/GetACardModal';\n\nvoid (window.pageView = new PageView ({\n el : '.Carousels',\n viewId : 'home',\n bus : window.globalEvents,\n room : window.OverDrive.currentRoom,\n featureManager : window.featureManager,\n patronSettings : window.patronSettings\n}));\n\n$(() => {\n if (window.OverDrive.showGetACardModal) {\n new GetACardModal();\n }\n});\n","export default class TitleActions {\n\n constructor({ bus, context }) {\n this.bus = bus;\n\n this.context = {\n room : undefined,\n collectionDefinition: undefined\n };\n\n _.extend(this.context, context);\n }\n\n perform(action, titleModel) {\n if (typeof this[`_${action}`] === 'function') {\n this[`_${action}`](titleModel);\n }\n }\n\n _borrow(titleModel) {\n this.bus.trigger('title:borrow', titleModel, this.context);\n }\n\n _hold(titleModel) {\n this.bus.trigger('title:hold', titleModel, this.context);\n }\n\n _wish(titleModel) {\n this.bus.trigger('title:wishlist', titleModel, this.context);\n }\n\n _recommend(titleModel) {\n this.bus.trigger('title:recommend', titleModel, this.context);\n }\n\n _nook(titleModel) {\n this.bus.trigger('title:nook', titleModel, this.context);\n }\n\n _rating(titleModel) {\n this.bus.trigger('title:rating', titleModel, this.context);\n }\n\n _history(titleModel) {\n this.bus.trigger('title:history', titleModel, this.context);\n }\n\n _download(titleModel) {\n this.bus.trigger('title:download', titleModel, this.context);\n }\n\n _preview(titleModel){\n this.bus.trigger('title:preview', titleModel, this.context);\n }\n\n _renew(titleModel){\n this.bus.trigger('title:renew', titleModel, this.context);\n }\n\n _requestAgain(titleModel){\n this.bus.trigger('title:requestAgain', titleModel, this.context);\n }\n\n setContextRoom(room) {\n if(_(room).isEmpty()) {\n delete this.context.room;\n } else {\n this.context.room = room;\n }\n\n return this;\n }\n\n setContextCollection(titleCollection) {\n if(_(titleCollection).isEmpty()) {\n delete this.context.titleCollection;\n } else {\n this.context.titleCollection = titleCollection;\n }\n\n return this;\n }\n}\n","class TitleState {\n\n static getState(media, patronItems) {\n const featureManager = window.featureManager;\n\n if (featureManager.isEnabled('internationalDemoMode')){\n return 'preview';\n }\n\n let mediaId = media.id;\n\n let isOnHold = patronItems && patronItems.onHolds.indexOf(mediaId) > -1;\n let isOnCheckouts = patronItems && patronItems.onCheckouts.indexOf(mediaId) > -1;\n let isOnRecommendations = patronItems && patronItems.recommendedToLibrary.indexOf(mediaId) > -1 || media.isRecommended;\n let isAvailable = media.isAvailable || (featureManager.isEnabled('LuckyDay') && media.luckyDayAvailableCopies > 0);\n\n if (/account\\/loans/.test(window.location.href) && media.isRenewable && featureManager.isEnabled('content-holds')) {\n if (isOnHold) {\n return 'requested';\n }\n else if (media.holdsCount <= 0 && media.ownedCopies >= 0 && !(featureManager.isEnabled('LuckyDay') && media.isLuckyDayCheckout) && featureManager.isEnabled('renewTitles')) {\n return 'renew';\n }\n return 'requestAgain';\n }\n\n if (isOnCheckouts) {\n return 'borrowed';\n }\n\n if (isOnHold && !isAvailable) {\n return 'onHold';\n }\n\n if (isOnRecommendations && !isAvailable && !media.isHoldable) {\n return 'recommended';\n }\n\n if (isAvailable) {\n if (media.type.id === 'periodicals') {\n return 'nook';\n }\n\n return 'borrow';\n }\n\n if (!media.isOwned &&\n media.isRecommendableToLibrary &&\n featureManager.isEnabled('recommend-to-library')) {\n return 'recommend';\n }\n\n if (media.isHoldable && featureManager.isEnabled('content-holds')) {\n return 'hold';\n }\n\n return 'unavailable';\n }\n\n static isOnWishlist(media, patronItems) {\n return patronItems && patronItems.onWishlist.indexOf(media.id) > -1;\n }\n\n static isOnReadingHistory(media, patronItems) {\n return patronItems && patronItems.onReadingHistory.indexOf(media.id) > -1;\n }\n\n static starRating(media, patronItems) {\n // Returns 0 if not rated\n return patronItems && patronItems.starRatings && patronItems.starRatings[media.id] || 0;\n }\n}\n\nexport default TitleState;\n","// ES6 version of settle\nPromise.settle = function(promises) {\n class PromiseInspection {\n constructor(fulfilled, value) {\n this.fulfilled = fulfilled;\n this.value = value;\n }\n }\n\n return Promise.all(promises.map((p) =>\n // make sure any values are wrapped in a promise\n Promise.resolve(p).then((val) => new PromiseInspection(true, val)).catch((err) => new PromiseInspection(false, err))));\n};\n\n// wrapping Promise notation around an ajax call\nPromise.ajax = function(options) {\n return new Promise((resolve, reject) =>\n $.ajax(options)\n .done((response) => resolve(response))\n .fail((xhr, status, err) => reject(err))\n );\n};\n","import Title from '../components/media/models/Title';\nimport TitleActions from '../title-actions/TitleActions';\n\n// process instant forward actions (refactored)\nconst recommend = function(qs, action, bus) {\n if (action) {\n const mediaId = action.split('~')[1];\n const $actionLink = $(`.js-recommend[data-media-id=\"${mediaId}\"]`);\n if ($actionLink.length > 0) {\n // remove the fragment\n history.replaceState(null, null, window.location.pathname + qs);\n\n // have to do a js click instead of jQuery on ?\n $actionLink[0].click();\n } else {\n // Remove action from url\n history.replaceState(null, null, window.location.pathname + qs);\n let title = new Title();\n let promise = new Promise((resolve, reject) => {\n title.getTitleAsync(mediaId, resolve, reject);\n });\n\n promise.then(() => {\n let titleAction = new TitleActions({bus});\n titleAction.perform('recommend', title);\n });\n }\n }\n};\n\nexport {\n recommend\n};\n","const keys = Object.freeze({\n TAB: 9,\n ENTER: 13,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32\n});\nexport default keys;\n","// LHTNG-1817 - Dynamic SVG Loader\nexport default () => {\n $(() => {\n try {\n delete $.ajaxSettings.headers['csrf-token'];\n\n $('.svg.dynamic-loader').each((i, el) => {\n let $elm = $(el);\n let src = $elm.attr('data-src');\n\n if (!_(src).isEmpty() && !$elm.html()) {\n $.get(`${window.OverDrive.cdn}/public/img/${src}`).then((response) => {\n if (!$elm.html()) {\n $elm.append($('svg', response));\n }\n });\n }\n });\n }\n finally {\n $.ajaxSetup({\n headers: {'csrf-token': $('#csrf').val() || OverDrive._csrf}\n });\n }\n });\n};\n","import HashManager from '../../components/common/HashManager';\nimport Title from '../../components/media/models/Title';\nimport TitleActions from '../../title-actions/TitleActions';\nimport {recommend} from '../forwardedActions.js';\n\nexport default class ProcessForwardedAction {\n constructor(collection, bus, model) {\n let hash = HashManager.get('action')[0];\n this.actionArr = hash ? hash.split('~') : [];\n this.action = this.actionArr[0] || null;\n this.mediaId = this.actionArr[1] || null;\n this.rating = this.actionArr[2] || 0;\n this.model = model || null;\n this.collection = collection.models;\n this.bus = bus;\n }\n\n // Execute user forwarded action\n executeAction() {\n if (!this.action || !this.mediaId) {\n return;\n }\n\n if (!this.model || (this.model && this.model.get('id') !== this.mediaId)) {\n this.model = _.find(this.collection, (model) => model.id === this.mediaId);\n }\n\n let titleActions = new TitleActions({bus: this.bus});\n\n if (this.model) {\n // Title model is on page\n HashManager.remove('action');\n\n // LHTNG-1685 - Throw conflict modal if title is isOwned on a 'recommend' forwarded action\n if (this.action === 'recommend' && this.model.get('isOwned')) {\n if (this.model.get('titleState') === 'borrow') {\n this.bus.trigger('title:hold:conflict', { titleModel: this.model });\n } else {\n this.bus.trigger('title:borrow:conflict', { titleModel: this.model });\n }\n\n return;\n }\n\n this.model.set('userStarRating', this.rating);\n titleActions.perform(this.action, this.model);\n\n } else if (this.action === 'recommend' && $(`a.primary-action[data-media-id=\"${this.mediaId}\"]`).length > 0) {\n // Recommended from the preview row\n // Remove after RTL preview row is refactored\n recommend('', this.action, this.bus);\n HashManager.remove('action');\n } else {\n // Title model is not on page, fetch async\n let title = new Title();\n let promise = new Promise((resolve, reject) => {\n title.getTitleAsync(this.mediaId, resolve, reject);\n });\n\n promise.then(() => {\n this.model && this.model.set('userStarRating', this.rating);\n titleActions.perform(this.action, title);\n HashManager.remove('action');\n });\n }\n }\n}\n"]}