tao-test/app/taoQtiTest/views/js/qtiTestRunner.min.js.map

1 line
5.0 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["lib/jquery-1.8.0.min.js","lib/lodash.min.js","context.js","core/format.js","i18n.js","lib/polyfill/es6-promise.js","core/promise.js","core/providerRegistry.js","core/delegator.js","lib/async.js","lib/uuid.js","core/eventifier.js","core/communicator.js","core/polling.js","core/tokenHandler.js","core/communicator/poll.js","layout/loading-bar.js","util/regexEscape.js","util/wrapLongWords.js","util/encode.js","lib/handlebars.js","tpl.js","ui/feedback/feedback!tpl","ui/feedback.js","core/logger/api.js","core/logger/console.js","core/logger.js","../../../taoTests/views/js/runner/runner.js","core/store/localstorage.js","lib/store/idbstore.js","core/store/indexdb.js","core/store.js","core/cachedStore.js","core/areaBroker.js","../../../taoTests/views/js/runner/areaBroker.js","../../../taoTests/views/js/runner/proxy.js","lib/moment-with-locales.min.js","lib/moment-timezone.min.js","../../../taoTests/views/js/runner/probeOverseer.js","../../../taoQtiTest/views/js/runner/helpers/map.js","util/url.js","../../../taoItems/views/js/assets/manager.js","../../../taoItems/views/js/runner/api/itemRunner.js","lib/class.js","../../../taoQtiItem/views/js/qtiItem/core/qtiClasses.js","../../../taoQtiItem/views/js/qtiItem/helper/util.js","../../../taoQtiItem/views/js/qtiItem/helper/rendererConfig.js","../../../taoQtiItem/views/js/qtiItem/core/Element.js","../../../taoQtiItem/views/js/qtiItem/core/Loader.js","../../../taoQtiItem/views/js/qtiItem/helper/interactionHelper.js","ui/themeLoader.js","../../../taoQtiItem/views/js/qtiRunner/core/Renderer.js","ui/themes.js","../../../taoItems/views/js/assets/strategies.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/config.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/Renderer.js","../../../taoQtiItem/views/js/runner/provider/manager/picManager.js","../../../taoQtiItem/views/js/runner/provider/qti.js","../../../taoQtiItem/views/js/runner/qtiItemRunner.js","../../../taoQtiTest/views/js/runner/provider/layout!tpl","../../../taoQtiTest/views/js/runner/provider/qti.js","lib/jquery-ui-1.8.23.custom.min.js","helpers.js","../../../taoQtiTest/views/js/runner/config/qtiServiceConfig.js","../../../taoQtiTest/views/js/runner/proxy/qtiServiceProxy.js","core/pluginLoader.js","ui/hider.js","core/plugin.js","../../../taoTests/views/js/runner/plugin.js","../../../taoQtiTest/views/js/runner/plugins/content/rubricBlock/rubricBlock!tpl","../../../taoQtiTest/views/js/runner/plugins/content/rubricBlock/rubricBlock.js","../../../taoQtiTest/views/js/runner/plugins/content/overlay/overlay.js","ui/dialog/tpl/body!tpl","ui/dialog/tpl/buttons!tpl","core/pluginifier.js","core/dataattrhandler.js","ui/modal.js","ui/dialog.js","ui/dialog/alert.js","ui/dialog/confirm.js","../../../taoQtiTest/views/js/runner/plugins/content/dialog/dialog.js","../../../taoQtiTest/views/js/runner/plugins/content/dialog/exitMessages.js","../../../taoQtiTest/views/js/runner/plugins/content/loading/loading.js","../../../taoQtiTest/views/js/runner/plugins/content/feedback/feedback.js","../../../taoQtiTest/views/js/runner/plugins/controls/connectivity/connectivity.js","../../../taoQtiTest/views/js/runner/plugins/controls/testState/testState.js","lib/polyfill/performance-now.js","core/timer.js","../../../taoQtiTest/views/js/runner/plugins/controls/duration/duration.js","../../../taoQtiTest/views/js/runner/plugins/controls/title/title!tpl","../../../taoQtiTest/views/js/runner/plugins/controls/title/title.js","core/encoder/time.js","../../../taoQtiTest/views/js/runner/plugins/controls/timer/timer!tpl","../../../taoQtiTest/views/js/runner/plugins/controls/timer/timerComponent.js","../../../taoQtiTest/views/js/runner/helpers/messages.js","../../../taoQtiTest/views/js/runner/plugins/controls/timer/timers!tpl","../../../taoQtiTest/views/js/runner/plugins/controls/timer/timer.js","../../../taoQtiTest/views/js/runner/plugins/controls/progressbar/progressbar!tpl","ui/progressbar.js","../../../taoQtiTest/views/js/runner/plugins/controls/progressbar/progressbar.js","ui/component/tpl/component!tpl","ui/component.js","ui/autoscroll.js","../../../taoQtiTest/views/js/runner/plugins/controls/review/navigator!tpl","../../../taoQtiTest/views/js/runner/plugins/controls/review/navigatorTree!tpl","../../../taoQtiTest/views/js/runner/plugins/controls/review/navigator.js","../../../taoQtiTest/views/js/runner/plugins/navigation/button!tpl","../../../taoQtiTest/views/js/runner/plugins/controls/review/review.js","../../../taoQtiTest/views/js/runner/plugins/navigation/next.js","../../../taoQtiTest/views/js/runner/plugins/navigation/previous.js","../../../taoQtiTest/views/js/runner/plugins/navigation/nextSection.js","../../../taoQtiTest/views/js/runner/plugins/navigation/skip.js","../../../taoQtiTest/views/js/runner/plugins/tools/comment/comment!tpl","../../../taoQtiTest/views/js/runner/plugins/tools/comment/comment.js","lib/interact.js","ui/dynamicComponent/layout!tpl","ui/dynamicComponent.js","lib/calculator/template!tpl","lib/calculator/index.js","ui/calculator.js","../../../taoQtiTest/views/js/runner/plugins/tools/calculator.js","../../../taoQtiTest/views/js/runner/plugins/loader.js","lib/require-css/normalize.js","lib/require-css/css.js","css!taoQtiTestCss/new-test-runner","../../../taoQtiTest/views/js/controller/runner/runner.js","../../../taoQtiItem/views/js/qtiItem/core/Container.js","../../../taoQtiItem/views/js/qtiItem/core/IdentifiedElement.js","../../../taoQtiItem/views/js/qtiItem/core/Img.js","../../../taoQtiItem/views/js/qtiItem/mixin/Mixin.js","../../../taoQtiItem/views/js/qtiItem/mixin/Container.js","../../../taoQtiItem/views/js/qtiItem/mixin/ContainerInline.js","../../../taoQtiItem/views/js/qtiItem/mixin/NamespacedElement.js","../../../taoQtiItem/views/js/qtiItem/core/Include.js","../../../taoQtiItem/views/js/qtiItem/mixin/ContainerItemBody.js","../../../taoQtiItem/views/js/qtiItem/core/Item.js","../../../taoQtiItem/views/js/qtiItem/core/Math.js","../../../taoQtiItem/views/js/qtiItem/core/Object.js","../../../taoQtiItem/views/js/qtiItem/mixin/CustomElement.js","../../../taoQtiItem/views/js/qtiItem/core/PortableInfoControl.js","../../../taoQtiItem/views/js/qtiItem/core/ResponseProcessing.js","../../../taoQtiItem/views/js/qtiItem/core/RubricBlock.js","../../../taoQtiItem/views/js/qtiItem/core/Stylesheet.js","../../../taoQtiItem/views/js/qtiItem/core/choices/Choice.js","../../../taoQtiItem/views/js/qtiItem/core/choices/Hotspot.js","../../../taoQtiItem/views/js/qtiItem/core/choices/AssociableHotspot.js","../../../taoQtiItem/views/js/qtiItem/core/choices/ContainerChoice.js","../../../taoQtiItem/views/js/qtiItem/core/choices/Gap.js","../../../taoQtiItem/views/js/qtiItem/core/choices/GapImg.js","../../../taoQtiItem/views/js/qtiItem/core/choices/TextVariableChoice.js","../../../taoQtiItem/views/js/qtiItem/core/choices/GapText.js","../../../taoQtiItem/views/js/qtiItem/core/choices/HotspotChoice.js","../../../taoQtiItem/views/js/qtiItem/core/choices/Hottext.js","../../../taoQtiItem/views/js/qtiItem/core/choices/InlineChoice.js","../../../taoQtiItem/views/js/qtiItem/core/choices/SimpleAssociableChoice.js","../../../taoQtiItem/views/js/qtiItem/core/choices/SimpleChoice.js","../../../taoQtiItem/views/js/qtiItem/core/choices/TextEntry.js","../../../taoQtiItem/views/js/qtiItem/core/feedbacks/Feedback.js","../../../taoQtiItem/views/js/qtiItem/core/feedbacks/FeedbackBlock.js","../../../taoQtiItem/views/js/qtiItem/core/feedbacks/FeedbackInline.js","../../../taoQtiItem/views/js/qtiItem/core/feedbacks/ModalFeedback.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/Interaction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/Prompt.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/BlockInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/AssociateInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/ChoiceInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/ContainerInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/CustomInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/InlineInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/EndAttemptInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/ExtendedTextInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/GapMatchInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/ObjectInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/GraphicInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/GraphicAssociateInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/GraphicGapMatchInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/GraphicOrderInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/HotspotInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/HottextInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/InlineChoiceInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/MatchInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/MediaInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/OrderInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/SelectPointInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/SliderInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/TextEntryInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/interactions/UploadInteraction.js","../../../taoQtiItem/views/js/qtiItem/core/response/SimpleFeedbackRule.js","../../../taoQtiItem/views/js/qtiItem/core/variables/VariableDeclaration.js","../../../taoQtiItem/views/js/qtiItem/core/variables/OutcomeDeclaration.js","../../../taoQtiItem/views/js/qtiItem/core/variables/ResponseDeclaration.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/container!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/Container.js","ui/waitForMedia.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/img!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/container.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/Img.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/include!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/Include.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/item!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/itemStylesheetHandler.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/Item.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/math!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/Math.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/modalFeedback!tpl","../../../taoQtiItem/views/js/qtiItem/helper/container.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/ModalFeedback.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/object!tpl","core/mimetypes.json!json","core/mimetype.js","urlParser.js","ui/mediaplayer/tpl/player!tpl","ui/mediaplayer/css/player!css","lib/sliders/jquery.nouislider.js","ui/mediaplayer.js","iframeNotifier.js","ui/previewer.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/Object.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/infoControl!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/PortableElement.js","../../../taoQtiItem/views/js/runtime/qtiInfoControlContext.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/PortableInfoControl.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/rubricBlock!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/RubricBlock.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/stylesheet!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/Stylesheet.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/choices/gap!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/choices/Gap.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/choices/gapImg!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/choices/GapImg.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/choices/choice!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/choices/GapText.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/choices/hottext!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/choices/Hottext.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/choices/inlineChoice!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/choices/InlineChoice.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.AssociateInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/choices/simpleAssociableChoice.matchInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.MatchInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/choices/simpleChoice.choiceInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/choices/SimpleChoice.ChoiceInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/choices/SimpleChoice.OrderInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/associateInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/associateInteraction.pair!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/instruction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/instructions/Instruction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/notification!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/instructions/instructionManager.js","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/PciPrettyPrint.js","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/PciResponse.js","util/capitalize.js","util/adaptSize.js","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/sizeAdapter.js","core/mouseEvent.js","ui/interactUtils.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/AssociateInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/choiceInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/ChoiceInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/endAttemptInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/EndAttemptInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/extendedTextInteraction!tpl","ui/ckeditor/dtdHandler.js","ui/ckeditor/ckConfigurator.js","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/ckConfigurator.js","lib/polyfill/placeholders.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/ExtendedTextInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/gapMatchInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/GapMatchInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/graphicAssociateInteraction!tpl","lib/raphael/raphael.js","lib/raphael/scale.raphael.js","json!taoQtiItem/qtiCommonRenderer/renderers/graphic-style.json","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/Graphic.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/GraphicAssociateInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/graphicGapMatchInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/GraphicGapMatchInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/graphicOrderInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/GraphicOrderInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/hotspotInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/HotspotInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/hottextInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/HottextInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/inlineChoiceInteraction!tpl","lib/select2/select2.min.js","lib/jquery.qtip/jquery.qtip.js","ui/tooltip.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/InlineChoiceInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/matchInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/MatchInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/mediaInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/MediaInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/orderInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/OrderInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/customInteraction!tpl","../../../taoQtiItem/views/js/runtime/qtiCustomInteractionContext.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/PortableCustomInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/prompt!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/Prompt.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/selectPointInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/SelectPointInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/sliderInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/SliderInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/textEntryInteraction!tpl","util/locale.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/TextEntryInteraction.js","../../../taoQtiItem/views/js/qtiCommonRenderer/tpl/interactions/uploadInteraction!tpl","../../../taoQtiItem/views/js/qtiCommonRenderer/helpers/uploadMime.js","../../../taoQtiItem/views/js/qtiCommonRenderer/renderers/interactions/UploadInteraction.js","../../../../../../../../../onLayerEnd0.js"],"names":["a","b","G","F","p","each","split","s","c","J","d","nodeType","e","replace","I","toLowerCase","getAttribute","H","test","parseJSON","f","data","K","isEmptyObject","ba","bb","bh","parentNode","bi","bj","isFunction","grep","call","be","filter","inArray","bk","bl","createDocumentFragment","createElement","length","pop","bC","getElementsByTagName","appendChild","ownerDocument","bD","hasData","_data","g","h","events","handle","event","add","extend","bE","clearAttributes","mergeAttributes","nodeName","outerHTML","support","html5Clone","innerHTML","trim","bv","type","defaultChecked","checked","value","selected","defaultSelected","defaultValue","text","removeAttribute","expando","bF","querySelectorAll","bG","bX","charAt","toUpperCase","slice","bV","bY","css","contains","bZ","style","display","cb","bH","b$","bO","exec","Math","max","b_","bU","parseFloat","ca","offsetWidth","offsetHeight","boxSizing","bP","boxSizingReliable","bR","appendTo","body","remove","bI","frameBorder","width","height","bJ","contentWindow","contentDocument","document","write","close","removeChild","ch","isArray","cd","cy","i","substr","cz","dataTypes","j","k","l","cu","unshift","cA","ajaxSettings","flatOptions","cB","contents","responseFields","shift","mimeType","getResponseHeader","converters","cC","dataFilter","dataType","splice","state","error","cK","XMLHttpRequest","cL","ActiveXObject","cT","setTimeout","cM","now","cU","cS","concat","cV","cR","Deferred","always","elem","startTime","duration","tweens","run","notifyWith","resolveWith","promise","props","opts","specialEasing","originalProperties","originalOptions","createTween","Tween","easing","push","stop","rejectWith","this","cW","start","fx","timer","anim","queue","progress","done","complete","fail","camelCase","cssHooks","expand","cX","m","n","o","q","_queueHooks","unqueued","empty","fire","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","cO","show","hide","removeData","end","cY","prototype","init","cZ","opacity","c_","isWindow","defaultView","parentWindow","location","navigator","jQuery","$","Array","indexOf","Object","toString","hasOwnProperty","String","fn","source","r","t","u","v","w","x","y","z","A","B","C","D","addEventListener","removeEventListener","ready","readyState","detachEvent","E","constructor","context","parseHTML","isPlainObject","attr","merge","getElementById","id","find","selector","jquery","makeArray","size","toArray","get","pushStack","prevObject","eq","first","last","apply","arguments","join","map","sort","noConflict","isReady","readyWait","holdReady","trigger","off","window","isNumeric","isNaN","isFinite","Error","buildFragment","cacheable","clone","fragment","childNodes","JSON","parse","Function","parseXML","DOMParser","parseFromString","async","loadXML","documentElement","noop","globalEval","execScript","eval","guid","proxy","access","Date","getTime","attachEvent","frameElement","doScroll","Callbacks","once","memory","stopOnFalse","disable","unique","has","disabled","lock","locked","fireWith","fired","then","resolve","reject","notify","pipe","when","setAttribute","cssText","leadingWhitespace","firstChild","tbody","htmlSerialize","hrefNormalized","cssFloat","checkOn","optSelected","getSetAttribute","className","enctype","cloneNode","boxModel","compatMode","submitBubbles","changeBubbles","focusinBubbles","deleteExpando","noCloneEvent","reliableMarginRight","pixelPosition","noCloneChecked","optDisabled","fireEvent","radioValue","lastChild","checkClone","appendChecked","submit","change","focusin","insertBefore","reliableHiddenOffsets","doesNotIncludeMarginInBodyOffset","offsetTop","getComputedStyle","top","marginRight","cache","deletedIds","uuid","random","noData","embed","object","applet","acceptData","toJSON","cleanData","attributes","name","substring","triggerHandler","dequeue","delay","speeds","clearTimeout","clearQueue","L","M","N","O","P","Q","R","S","T","U","removeAttr","prop","removeProp","propFix","addClass","removeClass","toggleClass","hasClass","val","valHooks","set","option","specified","select","selectedIndex","options","attrFn","isXMLDoc","attrHooks","tabindex","readonly","for","class","maxlength","cellspacing","cellpadding","rowspan","colspan","usemap","frameborder","contenteditable","propHooks","tabIndex","getAttributeNode","parseInt","href","nodeValue","coords","button","createAttribute","setAttributeNode","V","W","X","Y","Z","_","special","hover","handler","triggered","dispatch","delegateType","bindType","origType","namespace","delegateCount","setup","global","RegExp","teardown","removeEvent","customEvent","getData","setData","changeData","Event","isTrigger","exclusive","namespace_re","result","target","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","delegateTarget","preDispatch","is","matches","currentTarget","isImmediatePropagationStopped","handleObj","stopPropagation","postDispatch","fixHooks","keyHooks","which","charCode","keyCode","mouseHooks","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","srcElement","metaKey","bindReady","load","focus","blur","beforeunload","onbeforeunload","simulate","isSimulated","originalEvent","defaultPrevented","returnValue","getPreventDefault","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","form","_submit_bubble","propertyName","_just_changed","on","one","bind","unbind","live","die","delegate","undelegate","toggle","click","bd","setFilters","bf","POS","lastIndex","index","uniqueSort","bg","match","preFilter","part","captures","dir","sizset","relative","ID","CLASS","NAME","TAG","ATTR","PSEUDO","CHILD","needsContext","sizzleFilter","getElementsByName","createComment","getElementsByClassName","bm","selectors","cacheLength","order","attrHandle","createPseudo",">"," ","+","~","nextSibling","previousSibling","pseudos","not","enabled","parent","textContent","innerText","bc","header","radio","checkbox","file","password","image","reset","input","activeElement","hasFocus","active","even","odd","lt","gt","nth","filters","isXML","compareDocumentPosition","getText","sourceIndex","compile","runs","dirruns","matchesSelector","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","msMatchesSelector","expr","children","next","prev","closest","prevAll","addBack","andSelf","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","sibling","reverse","bn","bo","bp","bq","br","bs","bt","bu","bw","bx","by","bz","legend","thead","tr","td","col","area","bA","bB","optgroup","tfoot","colgroup","caption","th","append","createTextNode","wrapAll","wrapInner","wrap","unwrap","replaceWith","domManip","prepend","before","clean","after","html","detach","src","ajax","url","throws","fragments","prependTo","insertAfter","replaceAll","uaMatch","browser","version","userAgent","webkit","safari","sub","superclass","bK","bL","bM","bN","bQ","bS","position","visibility","bT","letterSpacing","fontWeight","lineHeight","bW","cssNumber","fillOpacity","orphans","widows","zIndex","cssProps","float","swap","minWidth","maxWidth","currentStyle","left","runtimeStyle","pixelLeft","$1","hidden","visible","margin","padding","border","cc","ce","cf","cg","serialize","param","serializeArray","elements","encodeURIComponent","traditional","ci","cj","ck","cl","cm","cn","co","cp","cq","cr","cs","ct","cv","cw","cx","responseText","success","getScript","getJSON","ajaxSetup","isLocal","contentType","processData","accepts","xml","json","*","* text","text html","text json","text xml","ajaxPrefilter","ajaxTransport","ifModified","lastModified","etag","status","statusText","statusCode","setRequestHeader","getAllResponseHeaders","overrideMimeType","abort","crossDomain","hasContent","headers","beforeSend","timeout","send","cD","cE","cF","cG","jsonp","jsonpCallback","script","text script","head","scriptCharset","charset","onload","onreadystatechange","cH","cI","cJ","xhr","cors","username","open","xhrFields","responseXML","unload","cN","cP","cQ","cur","unit","Animation","tweener","prefilter","pos","step","animate","fadeTo","speed","timers","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","old","linear","swing","cos","PI","tick","setInterval","interval","clearInterval","slow","fast","animated","c$","offset","setOffset","bodyOffset","getBoundingClientRect","pageYOffset","pageXOffset","offsetLeft","using","offsetParent","scrollTo","Height","Width","content","","define","amd","charCodeAt","undefined","false","null","number","string","true","qe","we","__chain__","__wrapped__","je","nt","xt","ze","he","Le","nodeClass","Te","Ye","Xe","Se","tt","Ht","__bindData__","funcNames","funcDecomp","Mt","et","rt","ht","ot","dt","at","ie","argsObject","oe","jt","nr","it","Dt","er","de","Fe","ft","createCallback","pt","le","Ee","st","ee","unindexedChars","nonEnumArgs","enumPrototypes","enumErrorProps","nonEnumShadows","kt","pe","$e","se","Ve","zt","vt","ve","yt","argsClass","ownLast","mt","He","We","_t","wt","Ct","Et","Zt","Ot","Be","St","At","It","Nt","Bt","Pt","Rt","Ft","Tt","$t","Lt","Pe","Kt","qt","Wt","Gt","ar","Jt","Vt","leading","maxWait","trailing","ir","Ce","me","Ut","chain","Qt","Xt","Yt","ut","defaults","pick","ne","Boolean","te","re","ue","Number","ae","TypeError","fe","ge","ye","ceil","floor","_e","getPrototypeOf","xe","propertyIsEnumerable","ke","Oe","defineProperty","create","Ae","Ie","De","Ne","keys","min","Re","toLocaleString","valueOf",0,"WinRTError","spliceObjects","templateSettings","escape","evaluate","interpolate","variable","imports","Ke","Ge","Je","Me","&","<","\"","'","Ue","Qe","Ze","rr","ur","or","lr","assign","bindAll","bindKey","compact","compose","constant","countBy","curry","debounce","defer","difference","flatten","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","functions","groupBy","indexBy","initial","intersection","invert","invoke","mapValues","memoize","omit","pairs","partial","partialRight","pluck","property","pull","range","rest","shuffle","sortBy","tap","throttle","times","transform","union","uniq","values","where","without","xor","zip","zipObject","collect","drop","eachRight","methods","tail","unzip","cloneDeep","every","findIndex","findKey","findLast","findLastIndex","findLastKey","identity","isArguments","isBoolean","isDate","isElement","isEmpty","isEqual","isNull","isNumber","isObject","isRegExp","isString","isUndefined","lastIndexOf","mixin","reduce","reduceRight","runInContext","some","sortedIndex","template","unescape","uniqueId","all","any","detect","findWhere","foldl","foldr","include","inject","sample","take","VERSION","configurable","enumerable","writable","boolean","function","\\","\n","\r","\t","","","exports","module","config","pattern","message","replacements","acc","replacement","stringify","i18nTr","format","translations","__","localized","lib$es6$promise$utils$$objectOrFunction","lib$es6$promise$utils$$isFunction","lib$es6$promise$utils$$isMaybeThenable","lib$es6$promise$asap$$setScheduler","scheduleFn","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$setAsap","asapFn","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$useNextTick","nextTick","process","versions","node","setImmediate","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$useMutationObserver","iterations","observer","lib$es6$promise$asap$$BrowserMutationObserver","observe","characterData","lib$es6$promise$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$es6$promise$asap$$useSetTimeout","lib$es6$promise$asap$$len","callback","lib$es6$promise$asap$$queue","arg","lib$es6$promise$asap$$attemptVertex","require","vertx","runOnLoop","runOnContext","lib$es6$promise$$internal$$noop","lib$es6$promise$$internal$$selfFullfillment","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$getThen","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$tryThen","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$handleForeignThenable","thenable","sealed","lib$es6$promise$$internal$$resolve","lib$es6$promise$$internal$$fulfill","reason","lib$es6$promise$$internal$$reject","_label","lib$es6$promise$$internal$$handleOwnThenable","_state","lib$es6$promise$$internal$$FULFILLED","_result","lib$es6$promise$$internal$$REJECTED","lib$es6$promise$$internal$$subscribe","lib$es6$promise$$internal$$handleMaybeThenable","maybeThenable","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","lib$es6$promise$$internal$$PENDING","_subscribers","child","onFulfillment","onRejection","subscribers","settled","detail","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$es6$promise$$internal$$initializePromise","resolver","lib$es6$promise$enumerator$$Enumerator","Constructor","enumerator","_instanceConstructor","_validateInput","_input","_remaining","_init","_enumerate","_validationError","lib$es6$promise$promise$all$$all","entries","lib$es6$promise$enumerator$$default","lib$es6$promise$promise$race$$race","lib$es6$promise$utils$$isArray","lib$es6$promise$promise$resolve$$resolve","lib$es6$promise$promise$reject$$reject","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$promise$$Promise","_id","lib$es6$promise$promise$$counter","lib$es6$promise$polyfill$$polyfill","local","self","Promise","cast","lib$es6$promise$promise$$default","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserWindow","lib$es6$promise$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","_eachEntry","entry","_settledAt","_willSettleAt","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$promise$reject$$default","race","_setScheduler","_setAsap","_asap","catch","lib$es6$promise$polyfill$$default","lib$es6$promise$umd$$ES6Promise","polyfill","es6Promise","providerRegistry","validator","registerProvider","provider","valid","_providers","getProvider","providerName","clearProviders","delegator","api","fnName","response","args","defaultProvider","_slice","wrapper","eventifier","extendedConfig","forward","required","only_once","called","root","previous_async","_each","arr","iterator","_map","results","_reduce","memo","_keys","obj","completed","err","eachSeries","iterate","forEachSeries","eachLimit","limit","_eachLimit","forEachLimit","started","running","replenish","doParallel","doParallelLimit","doSeries","_asyncMap","eachfn","mapSeries","mapLimit","_mapLimit","reversed","_filter","filterSeries","selectSeries","_reject","rejectSeries","_detect","main_callback","detectSeries","criteria","right","auto","tasks","listeners","addListener","removeListener","taskComplete","task","taskCallback","safeResults","rkey","requires","abs","listener","waterfall","wrapIterator","_parallel","parallel","parallelLimit","series","makeCallback","_concat","concatSeries","whilst","doWhilst","until","doUntil","worker","concurrency","_insert","item","saturated","workers","drain","cargo","payload","working","ts","ds","_console_fn","console","log","hasher","queues","memoized","key","unmemoized","unmemoize","count","counter","timesSeries","fns","that","newargs","nextargs","_applyEach","go","applyEach","applyEachSeries","forever","CHARS","len","radix","chars","createAsyncCallstack","handlers","callstack","prevent","preventNow","immediate","asyncMode","_args","successes","getEventNames","eventNames","getName","eventName","getNamespace","globalNs","getHandlerObject","between","logger","targetName","eventHandlers","getHandlers","ns","eventApi","nsHandlers","triggerEvent","mergedHandlers","serial","method","debug","communicatorFactory","communicator","states","getState","setState","destroy","stepPromise","getConfig","_defaultInterval","pollingFactory","iter","action","autoStart","startTimer","iteration","stopped","pending","stopTimer","polling","processing","_next","getInterval","setAction","getAction","setContext","ctx","getContext","setMax","getMax","getIteration","stateName","tokenHandlerFactory","initialToken","token","getToken","currentToken","setToken","newToken","pollProvider","tokenHandler","service","messagesQueue","promises","request","msg","idx","responses","messages","jqXHR","textStatus","errorThrown","purpose","code","throttledSend","getHeaderHeight","headerElements","$element","headerHeight","outerHeight","$loadingBar","originalHeight","$win","$doc","$contentWrap","$versionWarning","$header","regexEscape","wrapLongWords","str","threshold","cut","chunkExp","longWords","_reQuot","_reApos","encodeHTML","encodeAttribute","attribute","Handlebars","__module4__","SafeString","__exports__","__module3__","__dependency1__","escapeChar","chr","escapeExpression","possible","badChars","`","__module5__","Exception","line","firstLine","firstColumn","tmp","errorProps","lineNumber","column","__module2__","__dependency2__","HandlebarsEnvironment","helpers","partials","registerDefaultHelpers","instance","registerHelper","inverse","ret","createFrame","conditional","hash","includeZero","Utils","level","COMPILER_REVISION","REVISION_CHANGES",1,2,3,4,"objectType","registerPartial","methodMap","DEBUG","INFO","WARN","ERROR","__module6__","__dependency3__","checkRevision","compilerInfo","compilerRevision","currentRevision","runtimeVersions","compilerVersions","templateSpec","env","invokePartialWrapper","VM","invokePartial","container","programs","program","programWrapper","common","programWithDepth","prog","depth","__module1__","__dependency4__","__dependency5__","base","runtime","hb","spec","__module7__","LocationInfo","locInfo","first_line","first_column","lastColumn","last_column","lastLine","last_line","AST","ProgramNode","statements","inverseStrip","inverseLocationInfo","firstInverseNode","strip","MustacheNode","rawParams","escapeFlag","escaped","SexprNode","sexpr","isRoot","params","eligibleHelper","isHelper","isSimple","PartialNode","partialName","BlockNode","mustache","original","path","isInverse","ContentNode","HashNode","IdNode","parts","dig","separator","isScoped","stringModeValue","PartialNameNode","DataNode","StringNode","IntegerNode","integer","BooleanNode","bool","CommentNode","comment","__module9__","handlebars","stripFlags","Parser","yy","parser","trace","symbols_","EOF","simpleInverse","statement","openInverse","closeBlock","openBlock","CONTENT","COMMENT","OPEN_BLOCK","CLOSE","OPEN_INVERSE","OPEN_ENDBLOCK","OPEN","OPEN_UNESCAPED","CLOSE_UNESCAPED","OPEN_PARTIAL","partial_option0","sexpr_repetition0","sexpr_option0","dataName","STRING","INTEGER","BOOLEAN","OPEN_SEXPR","CLOSE_SEXPR","hash_repetition_plus0","hashSegment","EQUALS","DATA","pathSegments","SEP","$accept","$end","terminals_",5,14,15,16,18,19,20,22,23,24,25,32,33,34,35,36,40,41,42,44,"productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","table",8,9,11,12,13,6,7,17,21,30,43,26,10,28,27,29,31,37,38,39,"defaultActions",50,"parseError","lex","lexer","stack","vstack","lstack","recovering","setInput","yylloc","yyloc","ranges","symbol","preErrorSymbol","newState","expected","yyval","errStr","showPosition","loc","_more","_less","matched","conditionStack","lines","unput","oldLines","more","less","pastInput","past","upcomingInput","pre","tempMatch","rules","_currentRules","flex","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","mu","inclusive","emu","com","INITIAL","__module8__","__module10__","Compiler","precompile","ast","environment","JavaScriptCompiler","compileInput","compiled","compiler","disassemble","opcode","opcodes","out","equals","other","otherOpcode","depths","list","knownHelpers","helperMissing","blockHelperMissing","if","unless","with","accept","compileProgram","usePartial","addDepth","block","classifySexpr","helperSexpr","simpleSexpr","ambiguousSexpr","pair","stringParams","noEscape","isBlock","setupFullMustacheParams","knownHelpersOnly","declare","isEligible","pushParams","__module11__","Literal","nameLookup","isValidJavaScriptVariableName","revision","appendToBuffer","initializeBuffer","quotedString","asObject","isChild","environments","aliases","preamble","stackSlot","stackVars","registers","hashes","compileStack","inlineStack","compileChildren","stripNext","pushSource","createFunctionContext","copies","lastContext","locals","alias","mergeSource","functionSource","buffer","blockValue","setupParams","replaceStack","current","ambiguousBlockValue","topStack","lastHelper","appendContent","pendingContent","flushInline","popStack","appendEscaped","lookupOnContext","pushContext","pushStackLiteral","resolvePossibleLambda","functionType","lookup","lookupData","pushStringParam","pushString","emptyHash","pushHash","types","contexts","popHash","pushLiteral","pushProgram","programExpression","invokeHelper","paramSize","useRegister","helper","setupHelper","nonHelper","paramsInit","callParams","helperMissingParams","invokeKnownHelper","invokeAmbiguous","helperCall","helperName","nextStack","assignToHash","matchExistingProgram","programParams","register","incrStack","createdStack","usedLiteral","prefix","inline","isInline","topStackName","wrapped","missingParams","foundHelper","setupOptions","reservedWords","compilerWords","RESERVED_WORDS","__module0__","_create","buildMap","extension","glue","delimiter","startIndex","stopIndex","increment","var1","var2","req","isBuild","fs","readFileSync","toUrl","raw","pluginName","moduleName","depth0","stack1","encode","tpl","receiver","methodName","$feedBackBox","currents","categories","volatile","persistent","levels","created","displayed","closed","merged","collapsed","defaultOptions","info","warning","danger","wrapLongWordsAfter","encodeHtml","feedbackApi","category","_trigger","isInState","_container","_getTimeout","$btn","previous","collapse","caller","feedbackState","verify","feedbackFactory","$container","fb","defaultLevel","fatal","warn","logQueue","loggerFactory","time","flush","providers","levelName","loggerApi","consoleLogger","loggers","loggerProviders","testRunnerFactory","pluginFactories","providerRun","runner","pluginRun","execStack","getPlugins","plugin","reportError","areaBroker","probeOverseer","testData","testContext","testMap","plugins","render","finish","itemStates","pluginFactory","getAreaBroker","loadItem","itemRef","itemData","setItemState","renderItem","unloadItem","disableItem","getItemState","enableItem","destroyed","getPlugin","loadAreaBroker","getProxy","loadProxy","getProbeOverseer","loadProbeOverseer","getPersistentState","setPersistentState","stored","loaded","getTestData","setTestData","getTestContext","setTestContext","getTestMap","setTestMap","scope","jump","skip","exit","why","pause","resume","ref","storage","localStorage","localStorageBackend","storeName","getItem","ex","setItem","removeItem","clear","keyPattern","definition","defaultErrorHandler","defaultSuccessHandler","storePrefix","dbVersion","keyPath","autoIncrement","onStoreReady","onError","indexes","implementationPreference","IDBStore","kwArgs","dbName","availableImplementations","implName","implementation","idb","keyRange","IDBKeyRange","webkitIDBKeyRange","mozIDBKeyRange","consts","READ_ONLY","READ_WRITE","VERSION_CHANGE","NEXT","NEXT_NO_DUPLICATE","PREV","PREV_NO_DUPLICATE","openDB","proto","db","store","_insertIdCount","openRequest","preventSuccessCallback","onerror","gotVersionErr","errorCode","onsuccess","objectStoreNames","emptyTransaction","transaction","objectStore","existingIndexes","getIndexList","indexData","indexName","normalizeIndexData","hasIndex","actualIndex","complies","indexComplies","onupgradeneeded","optionalParameters","createObjectStore","deleteIndex","createIndex","multiEntry","_indexName","deleteDatabase","onSuccess","deleteRequest","put","putRequest","hasSuccess","putTransaction","oncomplete","onabort","_addIdPropertyIfNeeded","getTransaction","getRequest","removeTransaction","batch","dataArray","batchTransaction","onItemSuccess","operation","onItemError","putBatch","batchData","upsertBatch","keyField","record","removeBatch","keyArray","getBatch","arrayType","getAll","getAllTransaction","_getAllNative","_getAllCursor","getAllRequest","cursorRequest","openCursor","cursor","clearTransaction","clearRequest","dataObj","indexNames","actual","exp","act","onItem","autoContinue","filterDuplicates","writeAccess","onEnd","Infinity","allowItemRejection","directionType","cursorTransaction","cursorTarget","recordCount","advance","onItemReturn","query","processedItems","countRequest","evt","makeKeyRange","hasLower","lower","hasUpper","upper","isOnly","only","bound","excludeLower","excludeUpper","lowerBound","upperBound","indexDbBackend","innerStore","writePromise","getStore","ensureSerie","getWritingPromise","runWrite","returnKey","supportsIndexedDB","dectectionDone","isIndexDBSupported","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","backend","hasIndexDB","storeInstance","backends","indexDb","cachedStoreFactory","storageName","storageKey","defaultKey","requiredAreas","mapping","broker","areas","HTMLElement","defineAreas","getContainer","getArea","requireAreas","proxyFactory","proxyName","getParams","mergedParams","extraCallParams","getMiddlewares","middlewares","applyMiddlewares","command","middleware","delegateProxy","communicatorPromise","proxyAdapter","initConfig","_defaults","use","destroyCommunicator","getTokenHandler","getCommunicator","loadCommunicator","addCallActionParams","sendVariables","variables","callTestAction","uri","submitItem","callItemAction","telemetry","signal","moment","Rd","Da","utc","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","_pf","_isValid","_d","invalidWeekday","_strict","bigHour","NaN","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Td","Ud","updateOffset","Vd","Sd","_abbr","abbr","Wd","isValid","pow","$d","localeData","ordinal","Xd","Zd","invalidDate","longDateFormat","Yd","_w","_a","UTC","getUTCDate","_months","month","_monthsShort","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","monthsParse","date","year","aa","_monthsParseExact","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","da","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","ea","suppressDeprecationWarnings","fa","ga","ha","wa","ia","createFromInputFallback","ja","getFullYear","setFullYear","ka","getUTCFullYear","setUTCFullYear","la","ma","na","oa","getUTCDay","pa","dayOfYear","qa","ra","week","sa","ta","_useUTC","getUTCMonth","getMonth","getDate","ua","va","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","GG","Ea","_week","dow","doy","gg","ISO_8601","xa","_meridiem","meridiemHour","isPM","ya","score","za","day","hour","minute","second","millisecond","Aa","Ba","preparse","Ca","Fa","Ga","Ha","Ia","quarter","_milliseconds","_days","_bubble","Ja","Ka","utcOffset","La","Ma","setTime","Na","round","getTimezoneOffset","Oa","_changeInProgress","Za","Pa","Qa","Ra","subtract","Sa","Ta","Ua","Va","_isDSTShifted","Wa","Xa","Ya","ms","milliseconds","$a","ab","from","to","isAfter","isBefore","startOf","diff","calendar","eb","gb","endOf","ib","jb","isSame","kb","lb","mb","nb","locale","ob","toISOString","toDate","pb","defaultFormat","postformat","qb","humanize","rb","sb","tb","ub","vb","wb","hours","minutes","seconds","weekday","isoWeekday","xb","yb","zb","Ab","Bb","Cb","years","Db","Eb","Fb","Gb","Hb","isUTC","strict","Ib","Jb","Nb","Kb","isoWeek","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","weekdaysParse","Wb","_weekdays","isFormat","Xb","_weekdaysShort","Yb","_weekdaysMin","Zb","_weekdaysParse","_minWeekdaysParse","_shortWeekdaysParse","_fullWeekdaysParse","weekdays","weekdaysShort","weekdaysMin","$b","getDay","_b","ac","dc","meridiem","ec","_meridiemParse","fc","gc","hc","ic","jc","kc","lc","parseZone","mc","_calendar","nc","_longDateFormat","oc","_invalidDate","pc","_ordinal","qc","rc","_relativeTime","sc","tc","_ordinalParseLenient","_ordinalParse","uc","vc","wc","xc","yc","zc","Ac","Bc","qf","Cc","Dc","Ec","Fc","Gc","Ic","Hc","days","Jc","Kc","Lc","as","Mc","Nc","Oc","Pc","relativeTime","Qc","Gf","Hf","Rc","Sc","pastFuture","Tc","If","asSeconds","Uc","Vc","mm","hh","dd","MM","Wc","Zc","Xc","Yc","$c","_c","ad","ed","fd","gd","fg","eg","hd","jd","pg","kd","ld","md","nd","pd","od","qd","rd","sd","rg","ud","vd","wd","sg","xd","yd","zd","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Lg","Md","Nd","Od","Pd","nominative","accusative","genitive","Qd","momentProperties","monthsShortRegex","monthsRegex","parseTwoDigitYear","weekYear","isoWeekYear","_isPm","af","df","ef","ff","gf","fromNow","toNow","invalidAt","isBetween","isSameOrAfter","isSameOrBefore","lang","parsingFlags","toObject","unix","creationData","isLeapYear","quarters","daysInMonth","weeks","isoWeeks","weeksInYear","isoWeeksInYear","hasAlignedHourOffset","isDST","isDSTShifted","isUtcOffset","isUtc","zoneAbbr","zoneName","dates","zone","hf","jf","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","kf","LTS","LT","LL","LLL","LLLL","lf","mf","nf","of","future","pf","firstDayOfYear","firstDayOfWeek","ordinalParse","langData","rf","sf","tf","uf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Jf","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","toIsoString","invalid","isMoment","isDuration","defineLocale","normalizeUnits","relativeTimeThreshold","Kf","Lf","meridiemParse","Mf","١","٢","٣","٤","٥","٦","٧","٨","٩","٠","Nf","Of","Pf","Qf","Rf","Sf","Tf",70,80,100,60,90,"Uf","standalone","Vf","১","২","৩","","৫","৬","","৮","৯","","Wf","Xf","༡","༢","༣","༤","༥","༦","༧","༨","༩","༠","Yf","Zf","$f","shortMonthsParse","longMonthsParse","ag","monthsNominativeEl","monthsGenitiveEl","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","ll","lll","llll","dg","۱","۲","۳","۴","۵","۶","۷","۸","۹","۰","hg","ig","jg","kg","lg","mg","ng","monthsParseExact","og","१","२","३","४","५","६","७","८","९","","qg","ss","tg","words","correctGrammaticalCase","translate","ug","vg","wg","xg","၁","၂","၃","၄","၅","၆","၇","၈","၉","","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","௧","௨","௩","௪","௫","௬","௭","௮","௯","","Mg","Ng","abbrs","offsets","untils","population","_set","toTimeString","offsetScore","abbrScore","scoreOffsetAt","zones","links","dataVersion","didShowError","tz","_z","_index","moveAmbiguousForward","moveInvalidForward","_zones","_links","_names","link","zoneExists","guess","names","Zone","unpack","unpackBase60","needsOffset","defaultZone","setDefault","timeZone","testIdentifier","overseer","writing","probes","collectEvent","probe","eventNs","probeHandler","timestamp","timezone","capture","latency","collectLatencyEvent","listen","startHandler","marker","stopHandler","getQueue","startEvents","stopEvents","getStorage","newStorage","getProbes","flushed","savedQueue","removeHandler","getEmptyStats","answered","flagged","viewed","total","getJumps","jumps","getParts","getJump","getPart","partName","getSection","sectionName","section","sections","itemName","identifier","getItemAt","getTestStats","stats","getPartStats","getSectionStats","getScopeStats","getItemPart","getItemSection","items","updateItemStats","computeItemStats","computeStats","collection","parsers","absolute","base64","urlUtil","parsed","queryString","$2","isAbsolute","isRelative","isBase64","encodeAsXmlAttr","build","chunk","assetManagerFactory","strategies","parseUrl","assetManager","_strategies","addStrategy","strategy","setStrategies","newStrategies","resolved","inputUrl","resolveBy","clearCache","itemRunnerFactory","flow","newData","initDone","pendingTask","assets","elt","renderDone","clearDone","getResponses","initializing","fnTest","xyz","Class","_super","callee","assessmentItem","responseProcessing","_simpleFeedbackRule","stylesheet","math","img","outcomeDeclaration","responseDeclaration","rubricBlock","associableHotspot","gap","gapImg","gapText","hotspotChoice","hottext","inlineChoice","simpleAssociableChoice","simpleChoice","associateInteraction","choiceInteraction","endAttemptInteraction","extendedTextInteraction","gapMatchInteraction","graphicAssociateInteraction","graphicGapMatchInteraction","graphicOrderInteraction","hotspotInteraction","hottextInteraction","inlineChoiceInteraction","matchInteraction","mediaInteraction","orderInteraction","prompt","selectPointInteraction","sliderInteraction","textEntryInteraction","uploadInteraction","feedbackBlock","feedbackInline","modalFeedback","customInteraction","infoControl","util","buildSerial","buildId","usedIds","suffix","exists","getUsedIds","buildIdentifier","useSuffix","getUsedIdentifiers","qtiClass","findInCollection","element","collectionNames","searchedSerial","found","collectionName","nameToken","addMarkupNamespace","markup","$3","$4","removeMarkupNamespaces","getMarkupUsedNamespaces","namespaces","slash","rendererConfigHelper","getOptionsFromArguments","placeholder","subclass","renderer","isRenderer","rendererConfig","_instances","Element","relatedItem","metaData","setAttributes","initContainer","initObject","getSerial","elts","getComposingElements","removeAttributes","getAttributes","attrNames","getBody","getObject","isA","getUsedClasses","composingElts","getRelatedItem","setRelatedItem","recursive","setRenderer","getRenderer","_renderer","tplData","defaultData","tag","resolveUrl","rendering","renderTpl","postRender","altClassName","postRenderers","$scope","clazz","_containClass","regex","isset","issetElement","unset","unsetElement","allClassStr","qtiElement","getElementBySerial","composingElements","qtiClasses","loadPortableCustomElementData","portableElement","typeIdentifier","entryPoint","properties","libraries","Loader","classesLocation","qti","setClassesLocation","getRequiredClasses","loadRequiredClasses","reload","requiredClasses","requiredClass","_this","QtiClass","getLoadedClasses","loadItemData","Qti","loadContainer","outcomes","outcome","buildOutcome","addOutcomeDeclaration","feedbacks","feedback","buildElement","addModalFeedback","stylesheets","addStylesheet","buildResponse","addResponseDeclaration","feedbackRules","fbData","buildSimpleFeedbackRule","setResponseProcessing","buildResponseProcessing","setNamespaces","setSchemaLocations","schemaLocations","setApipAccessibility","apipAccessibility","loadAndBuildElement","loadElement","loadElementData","loadElements","allElements","elementData","howMatch","correctResponse","correctResponses","mapEntries","areaMapping","mappingAttributes","feedbackRule","setCondition","comparedValue","feedbackOutcome","feedbackThen","modalFeedbacks","feedbackElse","comparedOutcome","rp","processingType","bodyObject","bodyData","eltData","setElement","bdy","loadObjectData","loadInteractionData","loadChoiceData","loadMathData","loadPicData","interaction","buildInteractionChoices","loadPciData","choices","matchSet","choice","addChoice","gapImgs","addGapImg","_alt","setMathML","mathML","annotations","encoding","setAnnotation","pci","pic","convertChoices","outputType","findChoices","inputType","getChoice","getChoiceByIdentifier","shuffleChoices","serialToIdentifier","choiceSerial","triggerThemeChange","themeId","createStyleSheet","theme","rel","data-type","data-name","data-id","getLink","isAttached","enable","$nodes","themeLoader","defaultTheme","activeTheme","themes","styles","available","$link","getActiveTheme","interactionHelper","getDocumentBaseUrl","protocol","host","pathname","_isValidRenderer","classCorrect","_renderableClasses","subClass","_renderableSubclasses","_dependencies","Renderer","_locations","_renderers","shuffledChoices","_getClassRenderer","setOption","setOptions","getOption","getAssetManager","getThemeLoader","qtiSubclass","res","decorators","renderDirect","setResponse","qtiInteraction","getResponse","resetResponse","getLoadedRenderers","renderersLocations","reqClass","deps","requiredSubClasses","setShuffledChoices","identificationType","getShuffledChoices","reshuffle","returnedType","getChoices","getRenderers","getLocations","getAbsoluteUrl","relUrl","absUrl","runtimeLocations","runtimeLocation","baseUrl","NewRenderer","what","getAvailable","slashcat","directory","external","taomedia","assetStrategies","itemThemes","portableAssetStrategy","root_url","locations","simpleChoice.choiceInteraction","simpleChoice.orderInteraction","simpleAssociableChoice.matchInteraction","simpleAssociableChoice.associateInteraction","enableDragAndDrop","associate","associateDragAndDrop","gapMatch","gapMatchDragAndDrop","graphicGapMatch","graphicGapMatchDragAndDrop","orderDragAndDrop","picManager","_pic","_item","getPic","getTypeIdentifier","getDom","_dom","tool","broken","dom","outerWidth","picManagerCollection","getList","force","_list","getElements","manager","managerFactory","picId","execute","executeAll","enablePic","disablePic","showPic","hidePic","enableAll","disableAll","showAll","hideAll","collectionFactory","QtiLoader","QtiRenderer","qtiItemRuntimeProvider","rendererOptions","_loader","feedbackData","itemSession","outcomeIdentifier","$feedbackContent","responseIdentifier","themeName","getInteractions","itemRunner","qtiRuntimeProvider","cachedStore","mapHelper","qtiItemRunner","layoutTpl","assetPortableElement","qtiProvider","$layout","toolbox","navigation","control","panel","proxyConfig","serviceCallId","loadPersistentStates","persistencePromise","stateStorage","setPromise","computeNext","itemUri","updateStats","interacting","itemAttemptId","itemIdentifier","attempt","performSubmit","itemAnswered","displayFeedbacks","itemSessionState","itemDuration","itemPosition","direction","computeNextMove","isTimeout","suspended","getItemLabel","label","remainingAttempts","renderTo","itemState","rubrics","changeState","getContentArea","traceData","curCSS","ui","ALT","BACKSPACE","CAPS_LOCK","COMMA","COMMAND","COMMAND_LEFT","COMMAND_RIGHT","CONTROL","DELETE","DOWN","END","ENTER","ESCAPE","HOME","INSERT","LEFT","MENU","NUMPAD_ADD","NUMPAD_DECIMAL","NUMPAD_DIVIDE","NUMPAD_ENTER","NUMPAD_MULTIPLY","NUMPAD_SUBTRACT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SHIFT","SPACE","TAB","UP","WINDOWS","propAttr","_focus","scrollParent","msie","disableSelection","selectstart","enableSelection","innerWidth","innerHeight","focusable","tabbable","minHeight","borderWidth","hasScroll","isOverAxis","isOver","widget","Widget","_createWidget","widgetName","widgetEventPrefix","widgetBaseClass","bridge","_getCreateOptions","metadata","_setOptions","_setOption","mouseup","cancel","distance","_mouseInit","_mouseDown","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseStarted","_mouseUp","_mouseDownEvent","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","_mouseDrag","_mouseStop","collision","my","fractions","targetWidth","targetHeight","elemWidth","elemHeight","collisionPosition","collisionWidth","collisionHeight","bgiframe","fit","flip","background","mouse","addClasses","axis","connectToSortable","containment","cursorAt","grid","iframeFix","refreshPositions","revert","revertDuration","scroll","scrollSensitivity","scrollSpeed","snap","snapMode","snapTolerance","_getHandle","_createHelper","_cacheHelperProportions","ddmanager","_cacheMargins","cssPosition","positionAbs","margins","_getParentOffset","_getRelativeOffset","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","dragStart","_convertPositionTo","_uiHash","drag","dropped","dragStop","helperProportions","bottom","tagName","scrollHeight","scrollWidth","relative_container","cancelHelperRemoval","draggable","sortables","shouldRevert","_helper","currentItem","_intersectsWith","containerCache","fromOutside","_cursor","_opacity","overflowOffset","snapElements","snapping","snapItem","release","_zIndex","activeClass","greedy","hoverClass","tolerance","isover","isout","proportions","droppables","_activate","_deactivate","_over","_out","_drop","intersect","droppable","clickOffset","default","greedyChild","alsoResize","animateDuration","animateEasing","aspectRatio","autoHide","ghost","handles","maxHeight","_aspectRatio","originalElement","_proportionallyResizeElements","elementIsWrapper","marginLeft","marginTop","marginBottom","originalResizeStyle","_proportionallyResize","sw","nw","_renderAxis","_handles","mouseover","resizing","documentScroll","_renderProxy","originalSize","sizeDiff","originalMousePosition","_propagate","_change","_updateVirtualBoundaries","shiftKey","_updateRatio","_respectSize","_updateCache","_vBoundaries","borderDif","elementOffset","resizable","resize","containerElement","containerOffset","containerPosition","parentData","containerSize","autoRefresh","dragged","refresh","startselected","selecting","unselecting","selectees","opos","ctrlKey","unselected","selectable","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","floating","reverting","_refreshItems","_removeCurrentsFromItems","currentContainer","domPosition","_createPlaceholder","_storedCursor","_storedOpacity","_storedZIndex","_preserveHelperProportions","containers","dragging","lastPositionAbs","_intersectsWithPointer","_intersectsWithSides","_rearrange","_contactContainers","_storedCSS","over","_noFinalSort","_getItemsAsjQuery","connected","expression","forcePointerForContainers","_getDragVerticalDirection","_getDragHorizontalDirection","_connectWith","toleranceElement","custom","refreshContainers","update","sender","sortable","autoHeight","clearStyle","collapsible","fillSpace","icons","headerSelected","navigationFilter","_findActive","_createIcons","_keydown","aria-expanded","aria-selected","_clickHandler","_destroyIcons","fillHeight","activate","altKey","newHeader","oldHeader","newContent","oldContent","_toggle","toShow","toHide","_completed","down","proxied","proxiedDuration","accordion","animations","slide","paddingTop","paddingBottom","bounceslide","autoFocus","minLength","isMultiLine","role","aria-autocomplete","aria-haspopup","_move","_keyEvent","menu","term","searching","selectedItem","search","closing","_initSource","mousedown","beforeunloadHandler","autocomplete","_search","_response","__response","_normalize","_suggest","deactivate","_renderMenu","_resizeMenu","_renderItem","escapeRegex","aria-activedescendant","move","nextPage","previousPage","primary","secondary","_determineButtonType","hasTitle","buttonElement","keyup","_resetButton","buttons","autoOpen","closeOnEscape","closeText","dialogClass","modal","title","originalTitle","dialog","getTitleId","uiDialog","keydown","aria-labelledby","moveToTop","uiDialogTitlebar","uiDialogTitlebarCloseText","beforeclose","beforeClose","_makeDraggable","_makeResizable","_createButtons","_isOpen","overlay","maxZ","isOpen","$el","_size","_position","_minHeight","instances","oldInstances","orientation","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_valueMin","_start","_valueMax","_trimAlignValue","_slide","_stop","_refreshValue","elementSize","_normValueFromMouse","_clickOffset","_value","_values","toFixed","slider","ajaxOptions","cookie","idPrefix","panelTemplate","spinner","tabTemplate","_tabify","_tabId","_sanitizeSelector","_cookie","_ui","tab","anchors","_cleanup","lis","panels","_getIndex","tabs","rotation","rotate","_rotate","_unrotate","Datepicker","_curInst","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","isRTL","showMonthAfterYear","yearSuffix","showOn","showAnim","showOptions","defaultDate","appendText","buttonText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","changeMonth","changeYear","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","minDate","maxDate","beforeShowDay","beforeShow","onSelect","onChangeMonthYear","onClose","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","altFormat","constrainInput","showButtonPanel","autoSize","dpDiv","bindHover","datepicker","_isDisabledDatepicker","instActive","extendRemove","PROP_NAME","dpuuid","markerClassName","maxRows","_widgetDatepicker","setDefaults","_attachDatepicker","settings","inlineSettings","attrName","attrValue","inst","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","_doKeyDown","keypress","_doKeyPress","_doKeyUp","_get","_autoSize","_disableDatepicker","_showDatepicker","alt","_lastInput","_hideDatepicker","setMonth","setDate","_formatDate","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","_dialogInst","_dialogInput","_pos","clientWidth","clientHeight","blockUI","_destroyDatepicker","_enableDatepicker","_getInst","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","_setDateFromField","_getDate","_selectDay","_adjustDate","_clearDate","_gotoToday","_possibleChars","fromCharCode","lastVal","parseDate","_getFormatConfig","_findPos","opera","_checkOffset","_getBorders","effects","_generateHTML","_attachHandlers","_getNumberOfMonths","yearshtml","thin","medium","thick","_tidyDialog","unblockUI","_checkExternalClick","_adjustInstDate","currentDay","currentMonth","currentYear","_notifyChange","_selectMonthYear","_selectDate","formatDate","noWeekends","_ticksTo1970","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","getYear","_restrictMinMax","_determineDate","setHours","setMinutes","setSeconds","setMilliseconds","getHours","today","selectDay","selectMonth","selectYear","_canAdjustMonth","_isInRange","_generateMonthYearHeader","_getFirstDayOfMonth","initialized","transparent","effect","colorInit","aqua","azure","beige","black","blue","brown","cyan","darkblue","darkcyan","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkviolet","fuchsia","gold","green","indigo","khaki","lightblue","lightcyan","lightgreen","lightgrey","lightpink","lightyellow","lime","magenta","maroon","navy","olive","orange","pink","purple","violet","red","silver","white","yellow","borderBottom","borderColor","borderLeft","borderRight","borderTop","animateClass","_addClass","_removeClass","_toggleClass","switchClass","save","restore","setMode","getBaseline","createWrapper","fontSize","removeWrapper","setTransition","cssUnit","mode","_show","_hide","__toggle","Sine","Circ","sqrt","Elastic","sin","Back","Bounce","blind","bounce","clip","explode","pieces","fade","fold","horizFirst","highlight","backgroundColor","backgroundImage","color","pulsate","puff","percent","scale","origin","shake","transfer","loadingBar","Helpers","postJson","post","getMainContainer","sectionIndex","getMainContainerSelector","$tabs","selectTabByName","getTabIndexByName","openTab","getTabIndexByUrl","closeTab","updateTabUrl","tabObj","tabName","loading","_load","_href","_autoFx","textCutter","maxLength","taobase_www","createMessage","createErrorMessage","createInfoMessage","isFlashPluginEnabled","loadCss","_url","controller","_entries","configFactory","getTestDefinition","testDefinition","getTestCompilation","testCompilation","getServiceCallId","getServiceController","bootstrap","serviceController","getServiceExtension","serviceExtension","getTestActionUrl","getItemActionUrl","testServiceCallId","itemDefinition","getTelemetryUrl","getTimeout","getCommunicationConfig","communication","noToken","requestPromise","configStorage","_runningPromise","runRequest","qtiServiceProxy","itemResponse","requiredPlugins","modules","excludes","loader","dependencies","loadedModules","dependency","getCategories","pluginList","jqWrap","hiddenClass","isHidden","real","$elt","pluginContent","install","getHost","setConfig","getContent","setContent","hostName","hider","containerTpl","blankifyLinks","testRunner","getTestRunner","shield","unshield","$contentArea","testConfig","pluginsConfig","overlayConfig","full","program1","icon","program2","basePlugin","dataNs","currentOptions","disableClass","Pluginifier","expose","toExposeName","privateMethod","publicMethod","listenerEvent","useTarget","bubbled","letDefaultOn","shouldPreventDefault","DataAttrHandler","inner","$target","$outer","getTarget","createPlugin","callPluginMethod","relativeRegex","targetSelector","modalCloseClass","modalOverlayClass","startClosed","disableClosing","vCenter","$context","animateDiff","$modal","modalOverlay","$overlay","_open","_destroy","_bindEvents","_resize","_close","_unBindEvents","topOffset","onOpen","modalHeight","windowHeight","windowWidth","modalWidth","bodyTpl","buttonsTpl","_scope","_definedButtons","ok","yes","no","autoRender","autoDestroy","initOptions","$html","$buttons","rendered","_onButtonClick","setButtons","btn","_install","extraParameters","_execute","_setFocusOnModal","$btnOk","dialogFactory","dlg","refuse","accepted","onOkBtn","dialogAlert","dialogConfirm","currentFeedback","closeCurrent","disconnect","reconnect","performance","nowOffset","timing","navigationStart","timerFactory","startDuration","disableAutoStart","elapsed","getDuration","initContext","initItemAttemptId","durationStore","stopwatch","initDuration","attemptDuration","attemptId","titles","titleTpl","isDeepestSectionVisible","sectionTitle","getControlArea","modelValue","decode","timeEncoder","timerTpl","hasAnimationFrame","precision","timerTypes","testPart","timerComponentFactory","remaining","warnings","$display","requestAnimationFrame","showed","point","isCurrentItemAnswered","getExitMessage","isItemCurrentlyAnswered","unansweredCount","flaggedCount","itemsCountMessage","timerBoxTpl","timerRefresh","exitMessage","isTimedSection","timeConstraints","constraint","qtiClassName","timerWarning","currentTimers","getTimerConfig","timeConstraint","closestPreviousWarning","leaveTimedSection","testPartId","sectionId","nbItems","positionInSection","removeTimer","addTimer","updateTimers","checkStorage","timerConfig","savedTime","timeStore","timeoutScope","timeoutRef","currentVal","runTimeout","doMove","cancelMove","showProgress","progressBar","$pgElt","_update","progressTpl","progressUpdater","progressIndicator","progressScope","updater","percentage","numberItems","ratio","numberCompleted","getTestPart","getTestSection","progressScopeCounter","testSection","positionInPart","currentPosition","$progressLabel","$progressControl","progressData","progressbar","defaultTpl","component","specs","componentTpl","componentState","componentApi","$component","flag","getElement","getTemplate","setTemplate","autoscroll","currentScrollTop","minScrollTop","maxScrollTop","program4","isLinear","program8","program6","program9","program10","program11","program13","program15","program19","program17","program23","program21","program26","program24","program29","program27","navigatorTpl","navigatorTreeTpl","navigatorFactory","flagItem","$item","_cssCls","setItemFlag","navigatorApi","controls","autoScroll","$filterBar","_selectors","filterBar","$filters","$tree","tree","$infoAnswered","infoAnswered","$infoViewed","infoViewed","$infoUnanswered","infoUnanswered","$infoFlagged","infoFlagged","$linearState","linearState","updateConfig","collapseHandle","openSelected","infoPanelLabels","togglePanel","infoPanel","partLabels","$panel","openOnly","sectionLabels","itemLabels","canFlag","unseen","linearStart","currentFilter","canCollapse","preventsUnseen","_iconCls","itemIcons","activeItem","counters","actives","collapsiblePanels","notFlagged","notAnswered","_filterMap","unanswered","filtered","progression","writeCount","$items","$section","$filtered","scopeClass","scopedMap","getScopedMap","$place","hierarchy","opened","collapseSelector","buttonTpl","getFlagItemButtonData","itemFlagged","buttonData","getToggleButtonData","createButton","updateButton","$button","setFlag","unsetFlag","showReview","hideReview","isEnabled","navigatorConfig","reviewScreen","$flagItemButton","review","$toggleButton","markReview","$toolboxContainer","getToolboxArea","$panelContainer","getPanelArea","isLast","updateElement","getNavigationArea","navigationMode","canMoveBackward","nextSection","nextSectionWarning","allowSkipping","commentTpl","togglePlugin","allowComment","$form","$input","$cancel","$submit","realWindow","blank","_window","getWindow","thing","Window","isDocFrag","DocumentFragment","isBool","trySelector","querySelector","dest","pointerExtend","deprecated","vendor","prefixedPropREs","copyCoords","page","client","setEventXY","targetObj","pointers","pointer","pointerAverage","getPageXY","tmpXY","getClientXY","setEventDeltas","hypot","vx","vy","isNativePointer","supportsTouch","Touch","getXY","xy","isOperaMobile","scrollX","scrollY","getScrollXY","win","getPointerId","pointerId","getActualElement","SVGElementInstance","correspondingUseElement","rootNode","getElementClientRect","clientRect","SVGElement","getClientRects","getElementRect","isIOS7","getTouchPair","touches","changedTouches","average","screenX","screenY","touchBBox","minX","minY","maxX","maxY","touchDistance","deltaSource","sourceX","sourceY","dx","dy","touchAngle","prevAngle","angle","atan","dr","drClamped","getOriginXY","interactable","parentElement","getRect","_getQBezierValue","p1","p2","p3","iT","getQuadraticCurvePoint","startX","startY","cpX","cpY","endX","endY","easeOutQuad","nodeContains","inContext","_context","testIgnore","interactableElement","ignoreFrom","matchesUpTo","testAllow","allowFrom","checkAxis","thisAxis","checkSnap","checkRestrict","restrict","checkAutoScroll","withinInteractionLimit","maxActions","maxPerElement","activeInteractions","targetCount","targetElementCount","interactions","otherAction","prepared","maxInteractions","indexOfDeepestElement","dropzone","deepestZone","deepestZoneParents","dropzoneParents","SVGSVGElement","ownerSVGElement","Interaction","dropTarget","dropElement","prevDropTarget","prevDropElement","edges","matchElements","inertiaStatus","smoothEnd","ending","startEvent","upCoords","sx","sy","t0","vx0","vys","resumeDx","resumeDy","lambda_v0","one_ve_v0","boundInertiaFrame","inertiaFrame","boundSmoothEndFrame","smoothEndFrame","activeDrops","dropzones","rects","pointerIds","downTargets","downTimes","holdTimers","prevCoords","curCoords","startCoords","pointerDelta","downEvent","downPointer","_eventTarget","_curEventTarget","prevEvent","tapTime","prevTap","startOffset","restrictOffset","snapOffsets","gesture","startDistance","prevDistance","startAngle","snapStatus","realX","realY","snappedX","snappedY","targets","changed","restrictStatus","restrictedX","restrictedY","restricted","pointerIsDown","pointerWasMoved","gesturing","resizeAxes","getInteractionFromPointer","eventType","eventTarget","mouseEvent","pointerType","inertia","allowResume","supportsPointerEvent","doOnInteractions","curEventTarget","prevTouchTime","_updateEventTargets","InteractEvent","phase","related","starting","relativePoints","elementRect","x0","y0","clientX0","clientY0","zeroResumeDelta","square","axes","box","prevScale","velocityX","velocityY","atan2","overlap","up","swipe","velocity","preventOriginalDefault","getActionCursor","actionCursors","cursorKey","edgeNames","checkResizeEdge","rect","defaultActionChecker","resizeEdges","shouldResize","actionIsEnabled","resizeOptions","edge","validateAction","actionName","delegateListener","useCapture","fakeEvent","delegated","delegatedEvents","delegateUseCapture","interact","interactables","Interactable","_element","_iEvents","Node","PointerEvent","pEventTypes","pointerDown","pointerHover","_doc","documents","listenToDocument","warnOnce","warned","endAllInteractions","pointerEnd","doc","MSPointerEvent","selectorDown","pointerMove","pointerOver","pointerOut","pointerUp","pointerCancel","autoScrollMove","parentDoc","windowParentError","checkAndPreventDefault","useAttachEvent","currentAction","array","nodeList","ie8MatchesSelector","prefixedMatchesSelector","el","dynamicDrop","actionChecker","styleCursor","dropChecker","manualStart","preserveAspectRatio","perAction","endOnly","resistance","minSpeed","endSpeed","smoothEndDuration","_holdDuration","dtx","prevTimeX","dty","prevTimeY","scrollBy","isScrolling","cancelFrame","reqFrame","DocumentTouch","pointerMoveTolerance","atob","resizex","resizey","resizexy","resizetop","resizeleft","resizebottom","resizeright","resizetopleft","resizebottomright","resizetopright","resizebottomleft","wheelEvent","eventTypes","globalEvents","appName","platform","appVersion","cancelAnimationFrame","elementIndex","typeCount","attachedListeners","supplied","useCount","listenerIndex","immediatePropagationStopped","preventDef","stopProp","stopImmProp","addEvent","_elements","_targets","_attachedListeners","ptr","pushCurMatches","curMatches","curMatchElements","prevTargetElement","addPointer","elementInteractable","elementAction","forEachSelector","validateSelector","pushMatches","eventCopy","pointerIndex","pointerHold","collectEventTargets","forceAction","newAction","setModifications","preEnd","shouldMove","shouldSnap","shouldRestrict","setSnapping","setRestriction","setStartOffsets","snapOffset","pageUp","clientUp","inertiaPosition","recordPointer","duplicateMove","absX","absY","targetAxis","thisInteraction","getDraggable","selectorInteractable","dragEvent","setActiveDrops","dropEvents","getDropEvents","fireActiveDrops","dragMove","draggableElement","getDrop","leave","enter","resizeStart","resizeEvent","startRect","linkedEdges","_linkedEdges","resizeStartAspectRatio","resizeRects","delta","deltaRect","resizeMove","invertible","originalEdges","gestureStart","gestureEvent","gestureMove","removePointer","ie8Dblclick","endEvent","inertiaOptions","pointerSpeed","inertiaPossible","endSnap","endRestrict","snapRestrict","vy0","v0","calcInertia","statusObject","useStatusXY","modifiedXe","modifiedYe","collectDrops","drops","dropElements","currentElement","prevElement","dragElement","possibleDrops","validDrops","dropCheck","dropIndex","pointerEvent","dragLeave","prevDropzone","dragEnter","dragmove","clearTargets","lambda","quadPoint","collectSelectors","els","isSet","firePointers","createNewDoubleTap","originalPointer","propagationStopped","doubleTap","matchElement","pageCoords","relIndex","inRange","snapChanged","restriction","inertiaDur","interactionListeners","indexOfElement","setOnEvents","phases","ondrop","ondropactivate","ondropdeactivate","ondragenter","ondragleave","ondropmove","onstart","onmove","onend","oninertiastart","setPerAction","checker","dropOverlap","horizontal","vertical","dragRect","overlapArea","overlapRatio","newValue","squareResize","gesturable","actions","thisOption","createSnapGrid","gridOffset","paths","elementOrigin","allActions","rectChecker","iEvent","onEvent","funcName","eventList","matchFound","useCap","perActions","setting","enableDragging","enableResizing","enableGesturing","downTime","getPointerAverage","getTouchBBox","getTouchDistance","getTouchAngle","newvalue","offsetX","offsetY","gridx","gridy","newX","newY","elems","lastTime","vendors","currTime","timeToCall","draggableContainer","largeWidthThreshold","smallWidthThreshold","dynamicComponent","resetPosition","resetSize","$content","dynComponentFactory","_moveItem","webkitTransform","_resizeItem","$title","interactElement","$draggingLayer","dataset","templateTpl","createCalc","calcMod","calculate","_fixDecimal","handleInput","isOperation","lastKeyDown","calckey","clearNext","dot","operationPressed","lastNum","getLastNum","onsubmit","_initButtonHighlight","forms","calcTemplate","calcObj","nextID","onkeydown","onkeypress","onclick","_addFocusListener","press","num","calculators","strLength","setSelectionRange","JSCALC","calc","calcs","getCalcs","calcArray","calcMods","newCalcs","removeAll","calculatorBuild","calculator","calculatorFactory","$calculatorContainer","pluginLoader","exitMessages","connectivity","testState","tools","convertURIBase","fromBase","toBase","absUrlRegEx","protocolRegEx","removeDoubleSlashes","toBaseProtocol","fromBaseProtocol","relativeURI","absoluteURI","baseParts","uriParts","curPart","slashes","normalizeCSS","engine","useImportLoad","useOnload","cssAPI","pluginBuilder","curStyle","curSheet","ieCurCallback","createStyle","styleSheet","sheet","ieCnt","ieLoads","createIeLoad","addImport","processIeLoad","nextLoad","importLoad","loadInterval","cssRules","linkLoad","styleSheets","normalize","cssId","initRunner","exitUrl","requiredOptions","runnerController","startOptions","missingOption","Container","setElements","removeElement","elementsData","contentModel","IdentifiedElement","Img","augment","targetClass","_parent","Mixin","getNamespaces","nsUriFragment","defaultNsName","defaultNsUri","setNamespace","NamespacedElement","Include","Item","getResponseDeclaration","elementCollection","addNamespace","getSchemaLocations","apip","getApipAccessibility","removeStyleSheet","stylesheetExists","$dummy","$children","_stripMathTags","nsName","_stripNamespace","_isEmptyMathML","mathStr","$math","getAnnotation","removeAnnotation","getMathML","latex","QtiObject","getMediaType","mimetype","video","audio","propNames","propName","getProperties","getMarkupNamespace","markupNs","defaultMarkupNsName","defaultMarkupNsUri","setMarkupNamespace","CustomElement","PortableInfoControl","readyStack","onReady","triggerReady","ResponseProcessing","RubricBlock","Stylesheet","Choice","getInteraction","QtiChoice","QtiHotspot","QtiAssociableHotspot","ContainerChoice","QtiGap","QtiGapImg","QtiTextVariableChoice","QtiGapText","QtiHotspotChoice","Hottext","QtiInlineChoice","QtiContainerChoice","QtiSimpleAssociableChoice","QtiSimpleChoice","QtiTextEntry","Feedback","FeedbackBlock","FeedbackInline","ModalFeedback","QtiInteraction","responseId","_type","choiceShuffle","interactionData","renderedChoice","tplName","Prompt","BlockInteraction","AssociateInteraction","ChoiceInteraction","ContainerInteraction","CustomInteraction","pciReadyCallbacks","onPciReady","triggerPciReady","onPci","offPci","triggerPci","InlineInteraction","ExtendedTextInteraction","multiple","maxStringLoop","GapMatchInteraction","getGaps","QtiBlockInteraction","QtiObjectInteraction","QtiGraphicInteraction","GraphicInteraction","GraphicAssociateInteraction","GraphicGapMatchInteraction","removeGapImg","getGapImgs","getGapImg","GraphicOrderInteraction","HotspotInteraction","HottextInteraction","InlineChoiceInteraction","SimpleAssociableChoice","MatchInteraction","matchSet1","matchSet2","ObjectInteraction","MediaInteraction","media","OrderInteraction","SelectPointInteraction","SliderInteraction","TextEntryInteraction","UploadInteraction","SimpleFeedbackRule","_comparedValues","setFeedbackElse","_toString","VariableDeclaration","ResponseDeclaration","getFeedbackRules","rule","isCardinality","cardinalities","comparison","program3","equal","_ns","waitForMedia","allLoadedCallback","allLoaded","$img","imageLoaded","program5","program7","_containers","_$containerContext","_getSelector","containerHelper","triggerResponseChangeEvent","extraData","targetBlank","informLoaded","attach","$head","sep","itemStylesheetHandler","MathJax","Hub","Queue","feedbackStyle","_checkContainerType","_getBodyDom","_setBodyDomClass","newClass","oldClass","$wrapper","_setDomClass","$bodyDom","setEncodedDataToDom","oldValue","_getEncodedDataString","_prefix","setEncodedData","getEncodedData","removeEncodedData","hasEncodedData","$body","coreContainerHelper","modalFeedbackRenderer","$itemBody","requiredHeight","mimes","extensions","flash","geogebra","rdf","font","js","shell","mathml","pdf","office","archive","mimeTypes","getResourceType","mime","getFileType","extMatch","ext","getCategory","UrlParser","detachedAnchor","urlParts","extractParams","decodeURIComponent","setParams","addParam","getPaths","getUrl","exclude","hostname","port","getBaseUrl","lastPart","checkCORS","parsedUrl","youtube","sources","poster","program12","throwError","RangeError","throwEqualError","subRangeRatio","typeMatch","isInstance","asArray","addClassFor","fromPercentage","toPercentage","isPercentage","toStepping","xVal","xPct","fromStepping","getStep","xSteps","fixEvent","touch","points","Format","Formatting","FormatDefaults","Link","formatting","isTooltip","isMethod","is$","isInput","methodIsFunction","methodIsName","output","testStep","testRange","testStart","testSnap","testConnect","connect","testOrientation","ort","testMargin","testDirection","testBehaviour","fixed","testSerialization","sliders","ser","tests","behaviour","serialization","addHandle","Classes","additions","addElement","addElements","addLinks","addConnection","addHandles","addSlider","closure","baseSize","$Base","fireEvents","$Target","setHandle","delimit","$Handles","$Locations","$Serialization","getPositions","instant","calcPoint","positions","proposal","vSet","vGet","retour","saved","initialize","rebuild","newOptions","noUiSlider","$val","pointerEnabled","msPointerEnabled","negative","preNegative","mark","esc","isNeg","playerTpl","_debugMode","_reYoutube","_reAppleMobiles","_volumeMin","_volumeMax","_volumeRange","volume","startMuted","maxPlays","canPause","loop","_mimeTypes","video/webm","video/mp4","video/ogg","audio/mpeg","audio/mp4","audio/ogg","audio/wav","_extractYoutubeId","_ensureNumber","_leadingZero","_timerFormat","_needTypeAdjust","_getAdjustedType","_configToSources","_checkSupport","canPlayType","_support","canPlay","canPlayAudio","canPlayVideo","_mediaAudio","_mediaVideo","canControl","_youtubeManager","injected","player","injectApi","$elem","YT","Player","videoId","playerVars","autoplay","showinfo","wmode","modestbranding","disablekb","playsinline","enablejsapi","onStateChange","apiReady","isApiReady","check","_youtubePlayer","mediaplayer","loopEvents","$media","callbacks","_callbacks","getIframe","ev","_onReady","stopPolling","_onEnd","_onPlay","startPolling","_onPause","_onTimeUpdate","mediaplayerFactory","youtubePolling","getPosition","getCurrentTime","getVolume","setVolume","setSize","seek","seekTo","play","playVideo","pauseVideo","stopVideo","mute","isMuted","addMedia","cueVideoById","setMedia","loadVideoById","_nativePlayer","played","mediaElem","networkState","HTMLMediaElement","NETWORK_NO_SOURCE","_onError","_onRecoverError","NETWORK_LOADING","currentTime","muted","_players","_setType","_reset","_initEvents","_initSources","_initType","_unbindEvents","_destroySlider","$seekSlider","$volumeSlider","_initState","_buildDom","_updateDuration","_updatePosition","_playingState","_initPlayer","_initSize","internal","_canPlay","autoStartAt","_canPause","_canResume","restart","rewind","_setState","unmute","_updateVolume","getTimesPlayed","timesPlayed","getType","getSources","setSource","_getSource","addSource","$controls","_fromState","_toState","isCORS","$player","$seek","$volume","$position","$duration","_renderSlider","$action","_updateVolumeSlider","_updatePositionSlider","_updatePositionLabel","_updateDurationSlider","_updateDurationLabel","_playLimitReached","ended","hasAccess","windowElt","__knownParent__","xDomMessaging","iframeNotifier","containerClass","defaultSize","previewGenerator","placeHolder","youtubeTemplate","videoTemplate","audioTemplate","imageTemplate","pdfTemplate","flashTemplate","mathmlTemplate","xmlTemplate","htmlTemplate","generate","tmpl","jsonurl","previewer","_clearPlayer","desc","defSize","previewOptions","fixMarkupMediaSources","imgSrcPattern","_picHooks","taoQtiInfoControlContext","picHook","notifyReady","picInstance","createPciInstance","PortableElement","qtiInfoControlContext","_getPic","_taoInfoControl","localRequireConfig","$dom","setSerializedState","getSerializedState","objetLabel","objectLabel","maxChoices","instructionTpl","_notificationLevels","Instruction","defaultMessage","currentMessage","isValidLevel","checkState","getId","setLevel","getLevel","setMessage","validate","notifTpl","_instructions","instructionManager","validateInstructions","instruction","appendInstruction","validateCallback","removeInstructions","resetInstructions","minMaxChoiceInstructions","choiceCount","minInstructionSet","appendNotification","$notif","_remove","removeNotifications","printBase","withType","print","_formatters","formatter","baseType","printList","printRecord","directedPair","intOrIdentifier","pciPrettyPrint","_qtiModelPciResponseCardinalities","single","ordered","unserialize","mappedCardinality","cardinality","responseValues","prettyPrint","capitalize","allWords","ucFirst","adaptSize","$elements","dimensions","dimension","both","dispatchEvent","allowedEvents","createEvent","eventOptions","MouseEvent","initMouseEvent","bubbles","cancelable","view","triggerMouseEvent","iFrameDragFixCb","simulateDrop","interactHelper","iFrameDragFixOn","simulateDropCb","iFrameDragFixOff","tapOn","domElement","moveElement","restoreOriginalPosition","pairTpl","instructionMgr","pciResponse","sizeAdapter","interactUtils","setChoice","$choice","usage","_setChoice","responseMappingMode","$resultArea","$pair","thisPairSerial","$otherRepeatedPair","$otherPair","otherPairSerial","unsetChoice","$filledChoice","triggerChange","$parent","swapping","renderEmptyPairs","_iFrameDragFix","draggableSelector","$activeDrop","resultSelector","choiceSelector","isDragAndDropEnabled","dragOptions","dropOptions","$choiceArea","$activeChoice","$bin","binSelector","_getChoice","_resetSelection","_unsetChoice","_isInsertionMode","_isModeEditing","_handleChoiceActivate","_activateChoice","_handleResultActivate","targetSerial","_activateResult","_setInstructions","_getRawResponse","_setPairs","addedPairs","$emptyPair","$divs","aIndex","bIndex","listStyle","KEY_CODE_SPACE","KEY_CODE_ENTER","KEY_CODE_UP","KEY_CODE_DOWN","KEY_CODE_TAB","_pseudoLabel","$choiceInputs","_triggerInput","$nextInput","$prevInput","$choiceBox","highlightInvalidInput","$li","$icon","getCustomData","listStyles","_setVal","expectedLength","program16","program18","maxWords","program20","patternMask","program14","program22","program25","xhtml","dtdHandler","dtdMode","dtds","html5Only","getParentsOf","_normalizeElement","getChildrenOf","isChildOf","isParentOf","getDtd","getMode","removed","substracted","PF","bdi","bdo","canvas","cite","datalist","del","dfn","em","iframe","ins","kbd","keygen","meter","noscript","ruby","samp","small","span","strong","sup","textarea","var","wbr","FO","address","article","aside","blockquote","details","div","dl","fieldset","figure","footer","h1","h2","h3","h4","h5","h6","hgroup","hr","nav","ol","ul","meta","#","DP","acronym","basefont","big","isindex","strike","DFO","center","noframes","dtd","track","summary","figcaption","li","$block","$blockLimit","$cdata","$editable","$empty","$inline","$list","$listItem","$nonBodyContent","$nonEditable","$object","$removeEmpty","$tabIndex","$tableContent","$transparent","$intermediate","listCnt","actCnt","actLnt","overrides","qtiDtd","h5Len","ckeditor","originalConfig","CKEDITOR","ckConfigurator","toolbarPresets","extendedText","ckConfig","disableAutoInline","entities","entities_processNumerical","autoParagraph","extraPlugins","floatSpaceDockedOffsetY","forcePasteAsPlainText","skin","language","removePlugins","linkShowAdvancedTab","justifyClasses","linkShowTargetTab","coreStyles_underline","specialChars","_updatePlugins","positionedPlugins","itCnt","itLen","idxItem","numToReplace","stringVal","tbCnt","toolbar","stringVals","positionedPluginArr","extraPluginArr","pluginProps","editor","toolbarType","resourcemgr","toolbars","allowedContent","qtiImage","TaoQtiImage","qtiInclude","TaoQtiInclude","underline","TaoUnderline","mathJax","TaoQtiMaths","wanted","linkTypes","getContents","moveCaret","createTextRange","selectionStart","changeType","Placeholders","safeActiveElement","hidePlaceholder","keydownValue","valueChanged","isPlaceholderValue","ATTR_CURRENT_VAL","ATTR_ACTIVE","classNameRegExp","ATTR_MAXLENGTH","ATTR_INPUT_TYPE","showPlaceholder","placeholderClassName","handleElem","handleInputsLength","handleTextareasLength","handleInputs","handleTextareas","inputs","textareas","disablePlaceholders","enablePlaceholders","makeFocusHandler","hideOnInput","makeBlurHandler","makeKeydownHandler","keydownVal","badKeys","makeKeyupHandler","makeClickHandler","makeSubmitHandler","newElement","ATTR_FORM_HANDLED","ATTR_EVENTS_BOUND","liveUpdates","styleElem","styleRules","validTypes","placeholderStyleColor","ATTR_OPTION_FOCUS","ATTR_OPTION_LIVE","nativeSupport","ckEditor","minStrings","placeholderType","_isMultiple","limiter","inputLimiter","placeholderText","ckOptions","defaultLanguage","resize_enabled","secure","forceCustomDomain","_getNumStrings","_setPattern","_getFormat","_setUpCKEditor","listenKeyPress","_getCKEditor","_setMultipleVal","setText","numericBase","maxStrings","_getTextareaValue","$textarea","$charsCounter","$wordsCounter","expectedLines","_parsePattern","ignoreKeyCodes","triggerKeyCodes","limitHandler","getWordsCount","getCharsCount","updateCounter","_ckEditorData","patt","_destroyCkEditor","_stripTags","tempNode","regexChar","regexWords","setReadOnly","readOnly","clearText","_choiceUsages","getGap","gapSelector","_handleChoiceSelect","_handleFilledGapSelect","_handleGapSelect","$flowContainer","filledGapSelector","$dragged","glob","current_event","wildcard","fun","numsort","eve","oldstop","indexed","ii","_events","jj","nes","es","attrs","subname","nts","funcs","f2","factory","_engine","nu","repush","cacher","postprocessor","newf","clrToString","hex","catmullRom2bezier","crp","iLen","base3","p4","t1","t2","bezlen","x1","y1","x2","y2","x3","y3","x4","y4","z2","Tvalues","Cvalues","sum","xbase","ybase","comb","getTatLen","mmax","mmin","nx","ny","denominator","px","py","px2","py2","interHelper","bez1","bez2","justCount","bbox1","bezierBBox","bbox2","isBBoxIntersect","l1","l2","n1","n2","dots1","dots2","findDotsAtSegment","di","di1","dj","dj1","interPathHelper","path1","path2","_path2curve","x1m","y1m","x2m","y2m","pi","pj","intr","kk","segment1","segment2","Matrix","x_y_w_h","CubicBezierAtTime","p1x","p1y","p2x","p2y","sampleCurveX","ax","solve","epsilon","solveCurveX","ay","d2","percents","newAnim","toFloat","sortByNumber","runAnimation","totalOrigin","isInAnim","isInAnimSet","animationElements","initstatus","availableAnimAttrs","paper","customAttributes","availableAttrs","getRGB","toColour","pathes","path2curve","toPath","equaliseTransform","matrix","to2","getBBox","extractTransform","Str","from2","easyeasy","easing_formulas","bezierrg","curve","repeat","animation","requestAnimFrame","stopAnimation","paperproto","circle","ellipse","formatrg","oldRaphael","was","Raphael","Paper","touchMap","mousemove","lowerCase","objectToString","colourRegExp","_ISURL","isnan","-Infinity","toInt","upperCase","_availableAttrs","arrow-end","arrow-start","clip-rect","fill","fill-opacity","font-family","font-size","font-style","font-weight","gradient","letter-spacing","rx","ry","stroke","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","_availableAnimAttrs","commaSpaces","hsrg","hs","p2s","pathCommand","tCommand","pathValues","eldata","_radial_gradient","rectPath","_rectPath","ellipsePath","getPath","_getPath","bbox","_getBBox","mapPath","pathi","_g","SVGAngle","hasFeature","behavior","adj","svg","vml","_Paper","_oid","rad","deg","snapTo","rem","createUUID","uuidRegEx","uuidReplacer","setWindow","newwin","initWin","toHex","bod","docum","createPopup","queryCommandValue","computedStyle","getPropertyValue","hsbtoString","hsltoString","rgbtoString","prepareRGB","clr","packageRGB","rgb","hsb2rgb","hsl2rgb","rgb2hsl","rgb2hsb","_path2string","_preload","colour","hsb","hsl","getColor","parsePathString","pathString","pth","pathClone","paramCounts","parseTransformString","TString","ps","sleep","c1x","c1y","c2x","c2y","t13","t12","t3","mx","alpha","curveDim","isPointInsideBBox","pathIntersection","pathIntersectionNumber","isPointInsidePath","pathBBox","_removedFactory","methodname","pathDimensions","dim","xmin","ymin","xmax","ymax","pathArray","pathToRelative","_pathToRelative","pathToAbsolute","_pathToAbsolute","crz","dots","l2c","q2c","_13","_23","a2c","large_arc_flag","sweep_flag","_120","f1","rx2","ry2","asin","f2old","x2old","y2old","c1","s1","c2","s2","tan","hx","hy","m1","m2","m3","m4","newres","findDotAtSegment","qx","qy","attrs2","processPath","pcom","tq","fixArc","pp","fixM","a1","a2","seg","seg2","seglen","seg2len","tear","_parseDots","par","_tear","toMatrix","_tofront","_toback","_insertafter","el2","_insertbefore","transformPath","_extractTransform","tstr","tdata","tlen","inver","dirtyT","getEmpty","_equaliseTransform","tt1","tt2","_getContainer","pixelWidth","pixelHeight","matrixproto","norm","mag","toFilter","row","scalex","shear","scaley","acos","isSuperSimple","noRotation","toTransformString","shorter","preventTouch","stopTouch","getEventPosition","olde","targetTouches","detacher","dragi","_drag","getElementByPoint","move_scope","dragUp","unmousemove","unmouseup","end_scope","start_scope","elproto","shape","f_in","f_out","scope_in","scope_out","mouseout","unhover","unmouseover","unmouseout","onDragOver","undrag","unmousedown","__set__","itemsArray","Set","setStart","setFinish","setViewBox","raphael","getOffset","docElem","elementFromPoint","so","sr","createSVGRect","hits","getIntersectionList","getById","raphaelid","getElementsByBBox","bot","thisArg","getElementsByPoint","isPointInside","realPath","isWithoutTransform","dirty","bboxwt","glow","offsetx","offsety","getPointAtSegmentLength","getLengthFactory","istotal","subpath","onlystart","sp","subpaths","getTotalLength","getPointAtLength","getSubpathsAtLength","getSubpath","<>","backIn","backOut","elastic","easeIn","easeOut","easeInOut","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","Now","paused","upto255","animateWith","onAnimation","setproto","insertion","todel","arglen","collector","glowConfig","shape2","index2","registerFont","face","fonts","fontcopy","glyphs","family","glyph","getFont","weight","stretch","normal","bold","lighter","bolder","fontName","thefont","letter_spacing","line_spacing","letters","notfirst","shifty","descent","curr","fullfill","tokenRegex","objNotationRegex","replacer","quote","quotedName","isFunc","ninja","isLoaded","xlink","markers","classic","diamond","oval","markerCounter","setAttributeNS","createElementNS","webkitTapHighlightColor","addGradientFill","fy","SVG","_fx","_fy","vector","defs","gradientTransform","stop-color","updatePosition","patternTransform","addArrow","isEnd","refX","arrows","endPath","endMarker","startPath","startMarker","pathId","markerId","markerHeight","markerWidth","orient","refY","xlink:href","startdx","enddx","dasharray","none","-",".","-.","-..",". ","- ","--","- .","--.","--..","addDashes","butt","dashes","setFillAndStroke","vis","att","pn","hl","clip-path","startString","endString","_vbSize","isURL","patternUnits","stops","stop-opacity","cssrule","tuneText","tspan","texts","tspans","dif","def","subkey","toFront","toBack","fltr","stdDeviation","_blur","_viewBox","con","isFloating","cnvs","xmlns","_left","_top","renderfix","viewBox","getScreenCTM","createSVGMatrix","fillString","bites","blurregexp","cssDot","pathTypes","ovalTypes","path2vml","vals","isMove","compensation","setCoords","fillpos","kx","ky","coordsize","coordorigin","fillsize","newpath","isOval","clipRect","dstyle","textpath","textpathStyle","fontFamily","fontStyle","newfill","createNode","newstroke","strokeColor","joinstyle","miterlimit","endcap","dashstyle","brect","dirtyattrs","bbx","fxfy","color2","clrs","colors","focussize","focusposition","oldt","vbs","_viewBoxShift","vbt","skew","isGrad","isPatt","bbt","Path","textpathok","addRule","rvml","scaleRaphael","nestedWrapper","vmlDiv","changeSize","clipping","ratioW","ratioH","newHeight","newWidth","txt","_fontSize","mod","_font","newSize","scaleAll","amount","basic","layer","creator","imageset-rect-stroke","imageset-rect-no-stroke","imageset-img","order-text","score-text-default","score-text","small-text","layer-pos-text","target-hover","target-success","assoc","assoc-layer","assoc-bullet","close-bg","touch-circle","gstyle","shapeMap","poly","coordsValidator","qti2raphCoordsMapper","raph2qtiCoordsMapper","GraphicHelper","_style","setStyle","responsivePaper","resizePaper","givenWidth","factor","$editor","containerWidth","resizer","imgId","shaper","shapeCoords","qtiCoords","raphaelCoords","flashing","updateElementState","touchEffect","touchstart","createTouchCircle","createTarget","tBBox","half","coord","mapper","radius","tCircle","createText","scaledFontSize","updateTitle","createShapeText","shapeClick","createBorderedImage","halfPad","rw","rh","ix","iy","iw","ih","shadow","highlightError","restoredState","getPoint","isResponsive","rwidth","rheight","wfactor","clickPoint","pw","ph","graphic","_vsets","_renderChoice","_paperUnSelect","maxAssociations","assocs","_shapesUnSelectable","_getActiveElement","_createPath","_isMatchable","_shapesSelectable","destElement","onRemove","showCloser","closerBg","removeSet","closer","hideCloser","unclick","vset","srcBullet","destBullet","midPath","matching","matchMax","matchable","responseValue","el1","toRemove","activeDrop","$gapList","gapFillers","_renderGapList","handleShapeSelect","rElement","_selectShape","toggleActiveGapState","_setInactiveGapState","_setActiveGapState","gapFillersSelector","$gapImages","bgImage","trackResponse","$clone","gapFiller","shapeOffset","activeOffset","currentCount","$active","$imageBox","boxOffset","z-index","gapFillerImage","tooltip","$orderList","_renderOrderList","_unselectShape","$orderers","$orderer","_createTexts","_showText","_hideText","transf","pseudoLabel","$inupt","currentChoices","each2","selectionEnd","selection","createRange","moveStart","textTransform","whiteSpace","/","quietMillis","transport","select2","ajaxDefaults","hasError","matcher","createSearchChoice","tokenSeparators","Select2","ESC","CTRL","isArrow","isControl","isFunctionKey","Ⓐ","","À","Á","Â","Ầ","Ấ","Ẫ","Ẩ","Ã","Ā","Ă","Ằ","Ắ","Ẵ","Ẳ","Ȧ","Ǡ","Ä","Ǟ","Ả","Å","Ǻ","Ǎ","Ȁ","Ȃ","Ạ","Ậ","Ặ","Ḁ","Ą","Ⱥ","Ɐ","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ⓑ","","Ḃ","Ḅ","Ḇ","Ƀ","Ƃ","Ɓ","Ⓒ","","Ć","Ĉ","Ċ","Č","Ç","Ḉ","Ƈ","Ȼ","Ꜿ","Ⓓ","","Ḋ","Ď","Ḍ","Ḑ","Ḓ","Ḏ","Đ","Ƌ","Ɗ","Ɖ","Ꝺ","DZ","DŽ","Dz","Dž","Ⓔ","","È","É","Ê","Ề","Ế","Ễ","Ể","Ẽ","Ē","Ḕ","Ḗ","Ĕ","Ė","Ë","Ẻ","Ě","Ȅ","Ȇ","Ẹ","Ệ","Ȩ","Ḝ","Ę","Ḙ","Ḛ","Ɛ","Ǝ","Ⓕ","","Ḟ","Ƒ","Ꝼ","Ⓖ","","Ǵ","Ĝ","Ḡ","Ğ","Ġ","Ǧ","Ģ","Ǥ","Ɠ","Ꞡ","Ᵹ","Ꝿ","Ⓗ","","Ĥ","Ḣ","Ḧ","Ȟ","Ḥ","Ḩ","Ḫ","Ħ","Ⱨ","Ⱶ","Ɥ","Ⓘ","","Ì","Í","Î","Ĩ","Ī","Ĭ","İ","Ï","Ḯ","Ỉ","Ǐ","Ȉ","Ȋ","Ị","Į","Ḭ","Ɨ","Ⓙ","","Ĵ","Ɉ","Ⓚ","","Ḱ","Ǩ","Ḳ","Ķ","Ḵ","Ƙ","Ⱪ","Ꝁ","Ꝃ","Ꝅ","Ꞣ","Ⓛ","","Ŀ","Ĺ","Ľ","Ḷ","Ḹ","Ļ","Ḽ","Ḻ","Ł","Ƚ","Ɫ","Ⱡ","Ꝉ","Ꝇ","Ꞁ","LJ","Lj","Ⓜ","","Ḿ","Ṁ","Ṃ","Ɱ","Ɯ","Ⓝ","","Ǹ","Ń","Ñ","Ṅ","Ň","Ṇ","Ņ","Ṋ","Ṉ","Ƞ","Ɲ","Ꞑ","Ꞥ","NJ","Nj","Ⓞ","","Ò","Ó","Ô","Ồ","Ố","Ỗ","Ổ","Õ","Ṍ","Ȭ","Ṏ","Ō","Ṑ","Ṓ","Ŏ","Ȯ","Ȱ","Ö","Ȫ","Ỏ","Ő","Ǒ","Ȍ","Ȏ","Ơ","Ờ","Ớ","Ỡ","Ở","Ợ","Ọ","Ộ","Ǫ","Ǭ","Ø","Ǿ","Ɔ","Ɵ","Ꝋ","Ꝍ","Ƣ","Ꝏ","Ȣ","Ⓟ","","Ṕ","Ṗ","Ƥ","Ᵽ","Ꝑ","Ꝓ","Ꝕ","Ⓠ","","Ꝗ","Ꝙ","Ɋ","Ⓡ","","Ŕ","Ṙ","Ř","Ȑ","Ȓ","Ṛ","Ṝ","Ŗ","Ṟ","Ɍ","Ɽ","","Ꞧ","Ꞃ","Ⓢ","","ẞ","Ś","Ṥ","Ŝ","Ṡ","Š","Ṧ","Ṣ","Ṩ","Ș","Ş","Ȿ","Ꞩ","Ꞅ","Ⓣ","","Ṫ","Ť","Ṭ","Ț","Ţ","Ṱ","Ṯ","Ŧ","Ƭ","Ʈ","Ⱦ","Ꞇ","Ꜩ","Ⓤ","","Ù","Ú","Û","Ũ","Ṹ","Ū","Ṻ","Ŭ","Ü","Ǜ","Ǘ","Ǖ","Ǚ","Ủ","Ů","Ű","Ǔ","Ȕ","Ȗ","Ư","Ừ","Ứ","Ữ","Ử","Ự","Ụ","Ṳ","Ų","Ṷ","Ṵ","Ʉ","Ⓥ","","Ṽ","Ṿ","Ʋ","Ꝟ","Ʌ","Ꝡ","Ⓦ","","Ẁ","Ẃ","Ŵ","Ẇ","Ẅ","Ẉ","Ⱳ","Ⓧ","","Ẋ","Ẍ","Ⓨ","","Ỳ","Ý","Ŷ","Ỹ","Ȳ","Ẏ","Ÿ","Ỷ","Ỵ","Ƴ","Ɏ","Ỿ","Ⓩ","","Ź","Ẑ","Ż","Ž","Ẓ","Ẕ","Ƶ","Ȥ","Ɀ","Ⱬ","Ꝣ","ⓐ","","ẚ","à","á","â","ầ","ấ","ẫ","ẩ","ã","ā","ă","ằ","ắ","ẵ","ẳ","ȧ","ǡ","ä","ǟ","ả","å","ǻ","ǎ","ȁ","ȃ","ạ","ậ","ặ","ḁ","ą","ⱥ","ɐ","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ⓑ","","ḃ","ḅ","ḇ","ƀ","ƃ","ɓ","ⓒ","","ć","ĉ","ċ","č","ç","ḉ","ƈ","ȼ","ꜿ","ↄ","ⓓ","","ḋ","ď","ḍ","ḑ","ḓ","ḏ","đ","ƌ","ɖ","ɗ","ꝺ","dz","dž","ⓔ","","è","é","ê","ề","ế","ễ","ể","ẽ","ē","ḕ","ḗ","ĕ","ė","ë","ẻ","ě","ȅ","ȇ","ẹ","ệ","ȩ","ḝ","ę","ḙ","ḛ","ɇ","ɛ","ǝ","ⓕ","","ḟ","ƒ","ꝼ","ⓖ","","ǵ","ĝ","ḡ","ğ","ġ","ǧ","ģ","ǥ","ɠ","ꞡ","ᵹ","ꝿ","ⓗ","","ĥ","ḣ","ḧ","ȟ","ḥ","ḩ","ḫ","ẖ","ħ","ⱨ","ⱶ","ɥ","ƕ","ⓘ","","ì","í","î","ĩ","ī","ĭ","ï","ḯ","ỉ","ǐ","ȉ","ȋ","ị","į","ḭ","ɨ","ı","ⓙ","","ĵ","ǰ","ɉ","ⓚ","","ḱ","ǩ","ḳ","ķ","ḵ","ƙ","ⱪ","ꝁ","ꝃ","ꝅ","ꞣ","ⓛ","","ŀ","ĺ","ľ","ḷ","ḹ","ļ","ḽ","ḻ","ſ","ł","ƚ","ɫ","ⱡ","ꝉ","ꞁ","ꝇ","lj","ⓜ","","ḿ","ṁ","ṃ","ɱ","ɯ","ⓝ","","ǹ","ń","ñ","ṅ","ň","ṇ","ņ","ṋ","ṉ","ƞ","ɲ","ʼn","ꞑ","ꞥ","nj","ⓞ","","ò","ó","ô","ồ","ố","ỗ","ổ","õ","ṍ","ȭ","ṏ","ō","ṑ","ṓ","ŏ","ȯ","ȱ","ö","ȫ","ỏ","ő","ǒ","ȍ","ȏ","ơ","ờ","ớ","ỡ","ở","ợ","ọ","ộ","ǫ","ǭ","ø","ǿ","ɔ","ꝋ","ꝍ","ɵ","ƣ","ȣ","ꝏ","ⓟ","","ṕ","ṗ","ƥ","ᵽ","ꝑ","ꝓ","ꝕ","ⓠ","","ɋ","ꝗ","ꝙ","ⓡ","","ŕ","ṙ","ř","ȑ","ȓ","ṛ","ṝ","ŗ","ṟ","ɍ","ɽ","ꝛ","ꞧ","ꞃ","ⓢ","","ß","ś","ṥ","ŝ","ṡ","š","ṧ","ṣ","ṩ","ș","ş","ȿ","ꞩ","ꞅ","ẛ","ⓣ","","ṫ","ẗ","ť","ṭ","ț","ţ","ṱ","ṯ","ŧ","ƭ","ʈ","ⱦ","ꞇ","ꜩ","ⓤ","","ù","ú","û","ũ","ṹ","ū","ṻ","ŭ","ü","ǜ","ǘ","ǖ","ǚ","ủ","ů","ű","ǔ","ȕ","ȗ","ư","ừ","ứ","ữ","ử","ự","ụ","ṳ","ų","ṷ","ṵ","ʉ","ⓥ","","ṽ","ṿ","ʋ","ꝟ","ʌ","ꝡ","ⓦ","","ẁ","ẃ","ŵ","ẇ","ẅ","ẘ","ẉ","ⱳ","ⓧ","","ẋ","ẍ","ⓨ","","ỳ","ý","ŷ","ỹ","ȳ","ẏ","ÿ","ỷ","ẙ","ỵ","ƴ","ɏ","ỿ","ⓩ","","ź","ẑ","ż","ž","ẓ","ẕ","ƶ","ȥ","ɀ","ⱬ","ꝣ","Ά","Έ","Ή","Ί","Ϊ","Ό","Ύ","Ϋ","Ώ","ά","έ","ή","ί","ϊ","ΐ","ό","ύ","ϋ","ΰ","ω","ς","prepareOpts","createContainer","liveRegion","aria-live","containerId","containerEventName","adaptContainerCssClass","containerCss","containerCssClass","elementTabIndex","dropdown","adaptDropdownCssClass","dropdownCssClass","queryCount","resultsPage","highlightUnderEvent","_touchEvent","touchMoved","clearTouchMoved","selectHighlighted","loadMoreIfNeeded","mousewheel","updateResults","nextSearchTerm","initSelection","monitorSource","maximumInputLength","autofocus","searchInputPlaceholder","_sync","propertyObserver","optionToData","populateResults","sortResults","formatResultCssClass","formatResult","escapeMarkup","formatMatches","tags","getPlaceholder","getPlaceholderOption","createSearchChoicePosition","MozMutationObserver","subtree","triggerSelect","blurOnChange","isInterfaceEnabled","enabledInterface","enableInterface","_enabled","_readonly","positionDropdown","focusSearch","dropdownAutoWidth","dropdownCss","shouldOpen","clearDropdownAlignmentPreference","opening","selectOnBlur","noFocus","clearSearch","externalSearch","getMaximumSelectionSize","maximumSelectionSize","ensureHighlightVisible","findHighlightableChoices","moveHighlight","removeHighlight","_touchMoved","countSelectableResults","loadMorePadding","postprocessResults","formatLoadMore","tokenize","showSearchInput","formatSelectionTooBig","minimumInputLength","formatInputTooShort","showSearch","formatInputTooLong","formatSearching","formatAjaxError","formatNoMatches","placeholderOption","initContainerWidth","focusser","minimumResultsForSearch","shouldFocusInput","isFocused","openOnEnter","allowClear","setPlaceholder","isPlaceholderOptionSelected","updateSelection","added","formatSelection","formatSelectionCssClass","selectChoice","searchContainer","keydowns","unselect","resizeSearch","clearPlaceholder","getMaxSearchWidth","getVal","addSelectedChoice","tokenizer","closeOnSelect","setVal","buildChangeDetails","onSortStart","onSortEnd","multi","msMaxTouchPoints","locales","en","markMatch","stripDiacritics","abstract","qtip","QTip","NULL","NAMESPACE","FALSE","onTooltip","lastClass","waiting","hiddenDuringWait","positioning","triggering","invalidOpt","invalidContent","sanitizeOptions","deferred","TRUE","classes","PLUGINS","sanitize","convertNotation","notation","setCallback","checks","createWidgetClass","cls","WIDGET","showMethod","CLASS_DISABLED","hideMethod","ontoTooltip","SELECTOR","ontoTarget","inactiveMethod","inactive","repositionMethod","reposition","QTIP","ATTR_ID","posOptions","docBody","newTarget","metadata5","html5","solo","viewport","CORNER","overwrite","ATTR_HAS","suppress","oldtitle","camel","vendorCss","ucProp","cssPrefixes","intCss","Tip","Modal","PROTOTYPE","CHECKS","trackingBound","WIDTH","HEIGHT","TOP","BOTTOM","CENTER","FLIPINVERT","INACTIVE_EVENTS","CLASS_FIXED","CLASS_DEFAULT","CLASS_FOCUS","CLASS_HOVER","replaceSuffix","BROWSER","iOS","_when","deferreds","posClass","_createPosClass","tracking","adjust","aria-atomic","aria-describedby","aria-hidden","_createTitle","_updateTitle","_createButton","_updateContent","_setWidget","_unassignEvents","_assignEvents","builtin","^id$","nextid","new_id","^prerender","^content.text$","^content.attr$","^content.title$","_removeTitle","^content.button$","_updateButton","^content.title.(text|button)$","^position.(my|at)$","^position.container$","^show.ready$","^style.classes$","^style.(width|height)","^style.widget|content.title","^style.def","^events.(render|show|move|hide|focus|blur)$","^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)","precedance","rmove","rrender","_waitForContent","images","imagesLoaded","titlebar","abbrev","pluginCalculations","adjusted","tooltipWidth","tooltipHeight","isScroll","imagemap","adjustable","scrolled","parentOffset","quirks","Corner","corner","forceY","identicalState","allow","contentOptions","sameTarget","_storeMouse","qtips","curIndex","newIndex","zindex","aria-label","_bind","_unbind","showEvents","hideEvents","showTargets","hideTargets","similarTargets","toggleEvents","showIndex","_assignInitialEvents","hoverIntent","prerender","showTarget","hideTarget","onTarget","containerTarget","viewportTarget","documentTarget","windowTarget","isAncestor","inactiveEvents","returned","keepData","func","TIP","MARGIN","BORDER","COLOR","BG_COLOR","TRANSPARENT","IMPORTANT","HASCANVAS","INVALID","PIXEL_RATIO","devicePixelRatio","BACKING_STORE_RATIO","backingStorePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","SCALE","createVML","tip","lineJoin","miterLimit","_swapDimensions","_resetDimensions","_useTitle","_parseCorner","_parseWidth","side","_parseRadius","_invalidColour","compare","_parseColours","borderSide","colorElem","_calculateSize","bigHyp","isCenter","smallHyp","hyp","_calculateTip","width2","height2","tips","tl","_drawCoords","beginPath","moveTo","lineTo","closePath","bigCoords","curSize","mimic","clearRect","fillStyle","antialias","$this","fillcolor","filled","stroked","corners","userOffset","shiftflip","popposite","opposite","newCorner","shiftonly","cornerTop","cornerLeft","user","^position.my|style.tip.(corner|mimic|border)$","^style.tip.(height|width)$","^content.title|style.(classes|widget)$","otherSide","side1","side2","lengthName","targetLength","elemLength","initialPos","mySide","atSide","isShift","myLength","atLength","sideOffset","viewportScroll","viewportOffset","containerStatic","overflow1","overflow2","viewportWidth","viewportHeight","newMy","methodX","methodY","polys","polygon","baseCoords","compareX","compareY","_angles","rxc","rys","frameOffset","mtx","transformed","strokeWidth2","baseVal","numberOfItems","createSVGPoint","matrixTransform","MODAL","OVERLAY","MODALCLASS","MODALSELECTOR","mapName","isTabIndexNotNaN","focusInputs","blurElems","focusableElems","stealFocus","targetOnTop","onLast","prevState","stealfocus","visibleModals","modal_zindex","oEvent","^show.modal.(on|blur)$","themesMap","dark","qtipConstructor","_emptyValue","_defaultOptions","allowEmpty","choiceIdentifier","depth1","inWarning","_onCheckboxSelected","_filterResponse","_inferValue","firstId","secondId","currentResponse","_countChoices","_maxMatchReached","association","_getChoiceDefinitionByIdentifier","matchMin","_countAssociations","rawResponse","rawChoices","_getRawChoices","matchset","minAssociations","superClosure","onMaxChoicesReached","report","onMatchMaxReached","originalBackgroundColor","originalColor","responseCount","inferValue","resizeVideo","mediaElement","initMediaPlayer","canBePlayed","rTimer","delayedResize","_isDropzoneVisible","$dropzoneElement","_insertDropzone","insertPosition","draggedMiddle","_getMiddleOf","previousMiddle","currentMiddle","_adjustDropzonePosition","draggedBox","$prevResult","$nextResult","prevMiddle","nextMiddle","elementBox","$iconAdd","$iconRemove","$iconBefore","$iconAfter","$dragContainer","_activeControls","_resetControls","_setSelection","_addChoiceToSelection","$results","_toggleResultSelection","_removeChoice","_moveResultBefore","$prev","_moveResultAfter","$next","hasBeenDroppedInResultArea","dropzoneIndex","_freezeSize","$orderArea","instructionMax","initialOrder","$choices","choice1","choice2","_pciHooks","taoQtiCustomInteractionContext","pciHook","pciInstance","notifyDone","pciTypeIdentifier","qtiCustomInteractionContext","_getPci","_taoCustomInteraction","serializedState","_enableSelection","changePoint","isTouch","untouchstart","_slideTo","sliderCurrentValue","sliderValue","$sliderLabels","$sliderCurrentValue","$sliderValue","steps","sliderSize","stepLabel","middleStep","leftOffset","middleValue","startValue","configuration","getDecimalSeparator","decimalSeparator","getThousandsSeparator","thousandsSeparator","ones","isPreviewable","uploadMime","getMimeTypes","uploadHelper","validateFileType","expectedType","_initialInstructions","_readyInstructions","_handleSelectedFiles","filename","filetype","reader","FileReader","base64Data","commaPosition","base64Raw","visibleFileUploadPreview","$previewArea","imgNaturalWidth","isOversized","$originalImg","$largeDisplay","itemWidth","winWidth","fullHeight","naturalWidth","$modalBody","onloadstart","onprogress","percentProgress","readAsDataURL","_resetGui","changeListener","files","resetGui"],"mappings":"AAAA,CACA,SAAAA,EAAAC,GAAA,QAAAC,GAAAF,GAAA,GAAAC,GAAAE,EAAAH,KAAA,OAAAI,GAAAC,KAAAL,EAAAM,MAAAC,GAAA,SAAAP,EAAAQ,GAAAP,EAAAO,IAAA,IAAAP,EAAA,QAAAQ,GAAAT,EAAAQ,EAAAE,GAAA,GAAAA,IAAAT,GAAA,IAAAD,EAAAW,SAAA,CAAA,GAAAC,GAAA,QAAAJ,EAAAK,QAAAC,EAAA,OAAAC,aAAA,IAAAL,EAAAV,EAAAgB,aAAAJ,GAAA,gBAAAF,GAAA,CAAA,IAAAA,EAAA,SAAAA,GAAA,EAAA,UAAAA,GAAA,EAAA,SAAAA,EAAA,MAAAA,EAAA,KAAAA,GAAAA,EAAAO,EAAAC,KAAAR,GAAAN,EAAAe,UAAAT,GAAAA,EAAA,MAAAU,IAAAhB,EAAAiB,KAAArB,EAAAQ,EAAAE,OAAAA,GAAAT,EAAA,MAAAS,GAAA,QAAAY,GAAAtB,GAAA,GAAAC,EAAA,KAAAA,IAAAD,GAAA,IAAA,SAAAC,IAAAG,EAAAmB,cAAAvB,EAAAC,MAAA,WAAAA,EAAA,OAAA,CAAA,QAAA,EAAA,QAAAuB,MAAA,OAAA,EAAA,QAAAC,MAAA,OAAA,EAAA,QAAAC,IAAA1B,GAAA,OAAAA,IAAAA,EAAA2B,YAAA,KAAA3B,EAAA2B,WAAAhB,SAAA,QAAAiB,IAAA5B,EAAAC,GAAA,EAAAD,GAAAA,EAAAC,SAAAD,GAAA,IAAAA,EAAAW,SAAA,OAAAX,GAAA,QAAA6B,IAAA7B,EAAAC,EAAAO,GAAA,GAAAP,EAAAA,GAAA;AAAAG,AAAA,EAAA0B,WAAA7B,GAAA,MAAAG,GAAA2B,KAAA/B,EAAA,SAAAA,EAAAU,GAAA,GAAAE,KAAAX,EAAA+B,KAAAhC,EAAAU,EAAAV,EAAA,OAAAY,KAAAJ,GAAA,IAAAP,EAAAU,SAAA,MAAAP,GAAA2B,KAAA/B,EAAA,SAAAA,EAAAU,GAAA,MAAAV,KAAAC,IAAAO,GAAA,IAAA,gBAAAP,GAAA,CAAA,GAAAS,GAAAN,EAAA2B,KAAA/B,EAAA,SAAAA,GAAA,MAAA,KAAAA,EAAAW,UAAA,IAAAsB,GAAAf,KAAAjB,GAAA,MAAAG,GAAA8B,OAAAjC,EAAAS,GAAAF,EAAAP,GAAAG,EAAA8B,OAAAjC,EAAAS,GAAA,MAAAN,GAAA2B,KAAA/B,EAAA,SAAAA,EAAAU,GAAA,MAAAN,GAAA+B,QAAAnC,EAAAC,IAAA,IAAAO,IAAA,QAAA4B,IAAApC,GAAA,GAAAC,GAAAoC,GAAA/B,MAAA,KAAAE,EAAAR,EAAAsC,wBAAA,IAAA9B,EAAA+B,cAAA,KAAAtC,EAAAuC,QAAAhC,EAAA+B,cAAAtC,EAAAwC,MAAA,OAAAjC,GAAA,QAAAkC,IAAA1C,EAAAC,GAAA,MAAAD,GAAA2C,qBAAA1C,GAAA,IAAAD,EAAA4C,YAAA5C,EAAA6C,cAAAN,cAAAtC,IAAA,QAAA6C,IAAA9C,EAAAC,GAAA,GAAA,IAAAA,EAAAU,UAAAP,EAAA2C,QAAA/C,GAAA,CAAA,GAAAQ,GAAAE,EAAAE,EAAAQ,EAAAhB,EAAA4C,MAAAhD,GAAAiD,EAAA7C,EAAA4C,MAAA/C,EAAAmB,GAAA8B,EAAA9B,EAAA+B;AAAA,AACA,ACFA,GDCAD,EAAA,OAAAD,GAAAG,OAAAH,EAAAE,SAAA,KAAA3C,IAAA0C,GAAA,IAAAxC,EAAA,EAAAE,EAAAsC,EAAA1C,GAAAgC,OAAA5B,EAAAF,EAAAA,IAAAN,EAAAiD,MAAAC,IAAArD,EAAAO,EAAA0C,EAAA1C,GAAAE,IAAAuC,EAAA5B,OAAA4B,EAAA5B,KAAAjB,EAAAmD,UAAAN,EAAA5B,QAAA,QAAAmC,IAAAxD,EAAAC,GAAA,GAAAO,EAAA,KAAAP,EAAAU,WAAAV,EAAAwD,iBAAAxD,EAAAwD,kBAAAxD,EAAAyD,iBAAAzD,EAAAyD,gBAAA1D,GAAAQ,EAAAP,EAAA0D,SAAA5C,cAAA,WAAAP,GAAAP,EAAA0B,aAAA1B,EAAA2D,UAAA5D,EAAA4D,WAAAxD,EAAAyD,QAAAC,YAAA9D,EAAA+D,YAAA3D,EAAA4D,KAAA/D,EAAA8D,aAAA9D,EAAA8D,UAAA/D,EAAA+D,YAAA,UAAAvD,GAAAyD,GAAA/C,KAAAlB,EAAAkE,OAAAjE,EAAAkE,eAAAlE,EAAAmE,QAAApE,EAAAoE,QAAAnE,EAAAoE,QAAArE,EAAAqE,QAAApE,EAAAoE,MAAArE,EAAAqE,QAAA,WAAA7D,EAAAP,EAAAqE,SAAAtE,EAAAuE,gBAAA,UAAA/D,GAAA,aAAAA,EAAAP,EAAAuE,aAAAxE,EAAAwE,aAAA,WAAAhE,GAAAP,EAAAwE,OAAAzE,EAAAyE,OAAAxE,EAAAwE,KAAAzE,EAAAyE;AAAAxE,ACAA,EDAAyE,gBAAAtE,EAAAuE,UAAA,QAAAC,IAAA5E,GAAA,MAAA,mBAAAA,GAAA2C,qBAAA3C,EAAA2C,qBAAA,KAAA,mBAAA3C,GAAA6E,iBAAA7E,EAAA6E,iBAAA,QAAA,QAAAC,IAAA9E,GAAAiE,GAAA/C,KAAAlB,EAAAkE,QAAAlE,EAAAmE,eAAAnE,EAAAoE,SAAA,QAAAW,IAAA/E,EAAAC,GAAA,GAAAA,IAAAD,GAAA,MAAAC,EAAA,KAAA,GAAAO,GAAAP,EAAA+E,OAAA,GAAAC,cAAAhF,EAAAiF,MAAA,GAAAxE,EAAAT,EAAAW,EAAAuE,GAAA3C,OAAA5B,KAAA,GAAAX,EAAAkF,GAAAvE,GAAAJ,EAAAP,IAAAD,GAAA,MAAAC,EAAA,OAAAS,GAAA,QAAA0E,IAAApF,EAAAC,GAAA,MAAAD,GAAAC,GAAAD,EAAA,SAAAI,EAAAiF,IAAArF,EAAA,aAAAI,EAAAkF,SAAAtF,EAAA6C,cAAA7C,GAAA,QAAAuF,IAAAvF,EAAAC,GAAA,IAAA,GAAAO,GAAAE,EAAAE,KAAAQ,EAAA,EAAA6B,EAAAjD,EAAAwC,OAAAS,EAAA7B,EAAAA,IAAAZ,EAAAR,EAAAoB,GAAAZ,EAAAgF,QAAA5E,EAAAQ,GAAAhB,EAAA4C,MAAAxC,EAAA,cAAAP,IAAAW,EAAAQ,IAAA,SAAAZ,EAAAgF,MAAAC,UAAAjF,EAAAgF,MAAAC,QAAA,IAAA,KAAAjF,EAAAgF,MAAAC,SAAAL,GAAA5E,KAAAI,EAAAQ,GAAAhB,EAAA4C,MAAAxC,EAAA,aAAAkF,GAAAlF,EAAAmD,cAAAjD,EAAAiF,GAAAnF,EAAA;ACCA,CDDAI,EAAAQ,IAAA,SAAAV,GAAAN,EAAA4C,MAAAxC,EAAA,aAAAE,IAAA,KAAAU,EAAA,EAAA6B,EAAA7B,EAAAA,IAAAZ,EAAAR,EAAAoB,GAAAZ,EAAAgF,QAAAvF,GAAA,SAAAO,EAAAgF,MAAAC,SAAA,KAAAjF,EAAAgF,MAAAC,UAAAjF,EAAAgF,MAAAC,QAAAxF,EAAAW,EAAAQ,IAAA,GAAA,QAAA,OAAApB,GAAA,QAAA4F,IAAA5F,EAAAC,EAAAO,GAAA,GAAAE,GAAAmF,GAAAC,KAAA7F,EAAA,OAAAS,GAAAqF,KAAAC,IAAA,EAAAtF,EAAA,IAAAF,GAAA,KAAAE,EAAA,IAAA,MAAAT,EAAA,QAAAgG,IAAAjG,EAAAC,EAAAO,EAAAE,GAAA,IAAA,GAAAE,GAAAJ,KAAAE,EAAA,SAAA,WAAA,EAAA,UAAAT,EAAA,EAAA,EAAAmB,EAAA,EAAA,EAAAR,EAAAA,GAAA,EAAA,WAAAJ,IAAAY,GAAAhB,EAAAiF,IAAArF,EAAAQ,EAAA0F,GAAAtF,IAAA,IAAAF,GAAA,YAAAF,IAAAY,GAAA+E,WAAAR,GAAA3F,EAAA,UAAAkG,GAAAtF,MAAA,GAAA,WAAAJ,IAAAY,GAAA+E,WAAAR,GAAA3F,EAAA,SAAAkG,GAAAtF,GAAA,WAAA,KAAAQ,GAAA+E,WAAAR,GAAA3F,EAAA,UAAAkG,GAAAtF,MAAA,EAAA,YAAAJ,IAAAY,GAAA+E,WAAAR,GAAA3F,EAAA,SAAAkG,GAAAtF,GAAA,WAAA,GAAA,OAAAQ,GAAA,QAAAgF,IAAApG,EAAAC,EAAAO,GAAA,GAAAE,GAAA,UAAAT,EAAAD,EAAAqG,YAAArG,EAAAsG,aAAA1F,GAAA,EAAAQ,EAAAhB,EAAAyD,QAAA0C,WAAA,eAAAnG,EAAAiF,IAAArF,EAAA;AAAA,ACEA,GDFA,GAAAU,EAAA,CAAA,GAAAA,EAAAiF,GAAA3F,EAAAC,IAAA,EAAAS,GAAA,MAAAA,KAAAA,EAAAV,EAAAwF,MAAAvF,IAAAuG,GAAAtF,KAAAR,GAAA,MAAAA,EAAAE,GAAAQ,IAAAhB,EAAAyD,QAAA4C,mBAAA/F,IAAAV,EAAAwF,MAAAvF,IAAAS,EAAAyF,WAAAzF,IAAA,EAAA,MAAAA,GAAAuF,GAAAjG,EAAAC,EAAAO,IAAAY,EAAA,SAAA,WAAAR,GAAA,KAAA,QAAA8E,IAAA1F,GAAA,GAAA0G,GAAA1G,GAAA,MAAA0G,IAAA1G,EAAA,IAAAC,GAAAG,EAAA,IAAAJ,EAAA,KAAA2G,SAAA/F,EAAAgG,MAAApG,EAAAP,EAAAoF,IAAA,UAAA,OAAApF,GAAA4G,UAAA,SAAArG,GAAA,KAAAA,KAAAsG,GAAAlG,EAAAgG,KAAAhE,YAAAkE,IAAA1G,EAAAmD,OAAA3C,EAAA2B,cAAA,WAAAwE,YAAA,EAAAC,MAAA,EAAAC,OAAA,KAAAC,IAAAJ,GAAAvE,gBAAA2E,IAAAJ,GAAAK,eAAAL,GAAAM,iBAAAC,SAAAH,GAAAI,MAAA,+BAAAJ,GAAAK,SAAAtH,EAAAiH,GAAAN,KAAAhE,YAAAsE,GAAA3E,cAAAvC,IAAAQ,EAAAmF,GAAA1F,EAAA,WAAAW,EAAAgG,KAAAY,YAAAV,KAAAJ,GAAA1G,GAAAQ,EAAAA,EAAA,QAAAiH,IAAAzH,EAAAC,EAAAO,EAAAE,GAAA,GAAAE;AAAA,ACGA,GDHAR,EAAAsH,QAAAzH,GAAAG,EAAAC,KAAAJ,EAAA,SAAAA,EAAAW,GAAAJ,GAAAmH,GAAAzG,KAAAlB,GAAAU,EAAAV,EAAAY,GAAA6G,GAAAzH,EAAA,KAAA,gBAAAY,GAAAX,EAAA,IAAA,IAAAW,EAAAJ,EAAAE,SAAA,IAAAF,GAAA,WAAAJ,EAAA8D,KAAAjE,GAAAS,EAAAV,EAAAC,OAAA,KAAAW,IAAAX,GAAAwH,GAAAzH,EAAA,IAAAY,EAAA,IAAAX,EAAAW,GAAAJ,EAAAE,GAAA,QAAAkH,IAAA5H,GAAA,MAAA,UAAAC,EAAAO,GAAA,gBAAAP,KAAAO,EAAAP,EAAAA,EAAA,IAAA,IAAAS,GAAAE,EAAAQ,EAAA6B,EAAAhD,EAAAc,cAAAT,MAAAC,GAAA2C,EAAA,EAAA2E,EAAA5E,EAAAT,MAAA,IAAApC,EAAA0B,WAAAtB,GAAA,KAAAqH,EAAA3E,EAAAA,IAAAxC,EAAAuC,EAAAC,GAAA9B,EAAA,MAAAF,KAAAR,GAAAU,IAAAV,EAAAA,EAAAoH,OAAA,IAAA,KAAAlH,EAAAZ,EAAAU,GAAAV,EAAAU,OAAAE,EAAAQ,EAAA,UAAA,QAAAZ,IAAA,QAAAuH,IAAA/H,EAAAQ,EAAAE,EAAAE,EAAAQ,EAAA6B,GAAA7B,EAAAA,GAAAZ,EAAAwH,UAAA,GAAA/E,EAAAA,MAAAA,EAAA7B,IAAA,CAAA,KAAA,GAAA8B,GAAA2E,EAAA7H,EAAAoB,GAAA6G,EAAA,EAAAC,EAAAL,EAAAA,EAAArF,OAAA,EAAA2F,EAAAnI,IAAAoI,GAAAF,EAAAD,IAAAE,IAAAjF,GAAA+E,IAAA/E,EAAA2E,EAAAI,GAAAzH,EAAAE,EAAAE,GAAA,gBAAAsC,MAAAiF,GAAAlF,EAAAC,GAAAA,EAAAjD,GAAAO,EAAAwH,UAAAK,QAAAnF,GAAAA,EAAA6E,GAAA/H,EAAAQ,EAAAE,EAAAE,EAAAsC,EAAAD,IAAA,QAAAkF,IAAAjF,KAAAD,EAAA,OAAAC,EAAA6E,GAAA/H,EAAAQ,EAAAE,EAAAE,EAAA,IAAAqC;AAAAC,ACIA,EDJA,QAAAoF,IAAAtI,EAAAQ,GAAA,GAAAE,GAAAE,EAAAQ,EAAAhB,EAAAmI,aAAAC,eAAA,KAAA9H,IAAAF,GAAAA,EAAAE,KAAAT,KAAAmB,EAAAV,GAAAV,EAAAY,IAAAA,OAAAF,GAAAF,EAAAE,GAAAE,IAAAR,EAAAmD,QAAA,EAAAvD,EAAAY,GAAA,QAAA6H,IAAAzI,EAAAQ,EAAAE,GAAA,GAAAE,GAAAQ,EAAA6B,EAAAC,EAAA2E,EAAA7H,EAAA0I,SAAAT,EAAAjI,EAAAgI,UAAAE,EAAAlI,EAAA2I,cAAA,KAAAvH,IAAA8G,GAAA9G,IAAAV,KAAAF,EAAA0H,EAAA9G,IAAAV,EAAAU,GAAA,MAAA,MAAA6G,EAAA,IAAAA,EAAAW,QAAAhI,IAAAX,IAAAW,EAAAZ,EAAA6I,UAAArI,EAAAsI,kBAAA,gBAAA,IAAAlI,EAAA,IAAAQ,IAAAyG,GAAA,GAAAA,EAAAzG,IAAAyG,EAAAzG,GAAAF,KAAAN,GAAA,CAAAqH,EAAAI,QAAAjH,EAAA,OAAA,GAAA6G,EAAA,IAAAvH,GAAAuC,EAAAgF,EAAA,OAAA,CAAA,IAAA7G,IAAAV,GAAA,CAAA,IAAAuH,EAAA,IAAAjI,EAAA+I,WAAA3H,EAAA,IAAA6G,EAAA,IAAA,CAAAhF,EAAA7B,CAAA,OAAA8B,IAAAA,EAAA9B,GAAA6B,EAAAA,GAAAC,EAAA,MAAAD,IAAAA,IAAAgF,EAAA,IAAAA,EAAAI,QAAApF,GAAAvC,EAAAuC,IAAA,OAAA,QAAA+F,IAAAhJ,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAAjD,EAAAgI,UAAA9C,QAAAhC,EAAAD,EAAA,GAAA4E,KAAAI,EAAA,CAAA,IAAAjI,EAAAiJ,aAAAhJ,EAAAD,EAAAiJ,WAAAhJ,EAAAD,EAAAkJ,WAAAjG,EAAA,GAAA,IAAAzC,IAAAR,GAAA+I,WAAAlB,EAAArH,EAAAO,eAAAf,EAAA+I,WAAAvI;AAAA,ACKA,KDLAI,EAAAqC,IAAAgF,IAAA,GAAA,MAAArH,EAAA,CAAA,GAAA,MAAAsC,GAAAA,IAAAtC,EAAA,CAAA,GAAAJ,EAAAqH,EAAA3E,EAAA,IAAAtC,IAAAiH,EAAA,KAAAjH,IAAAJ,EAAA,IAAAE,IAAAmH,GAAA,GAAAzG,EAAAV,EAAAJ,MAAA,KAAAc,EAAA,KAAAR,IAAAJ,EAAAqH,EAAA3E,EAAA,IAAA9B,EAAA,KAAAyG,EAAA,KAAAzG,EAAA,KAAA,CAAAZ,KAAA,EAAAA,EAAAqH,EAAAnH,GAAAmH,EAAAnH,MAAA,IAAAE,EAAAQ,EAAA,GAAA6B,EAAAkG,OAAAlB,IAAA,EAAArH,GAAA,OAAA,GAAAJ,KAAA,EAAA,GAAAA,GAAAR,EAAA,UAAAC,EAAAO,EAAAP,OAAA,KAAAA,EAAAO,EAAAP,GAAA,MAAAiI,GAAA,OAAAkB,MAAA,cAAAC,MAAA7I,EAAA0H,EAAA,sBAAAhF,EAAA,OAAAtC,IAAAsC,EAAAtC,EAAA,OAAAwI,MAAA,UAAA/H,KAAApB,GAAA,QAAAqJ,MAAA,IAAA,MAAA,IAAAtJ,GAAAuJ,eAAA,MAAAtJ,KAAA,QAAAuJ,MAAA,IAAA,MAAA,IAAAxJ,GAAAyJ,cAAA,qBAAA,MAAAxJ,KAAA,QAAAyJ,MAAA,MAAAC,YAAA,WAAAC,GAAA3J,GAAA,GAAA2J,GAAAxJ,EAAAyJ,MAAA,QAAAC,IAAA9J,EAAAC,GAAAG,EAAAC,KAAAJ,EAAA,SAAAA,EAAAO,GAAA,IAAA,GAAAE,IAAAqJ,GAAA9J,QAAA+J,OAAAD,GAAA,MAAAnJ,EAAA,EAAAQ,EAAAV,EAAA8B,OAAApB,EAAAR,EAAAA,IAAA,GAAAF,EAAAE,GAAAoB,KAAAhC,EAAAC,EAAAO,GAAA;ACMA,GDNA,QAAAyJ,IAAAjK,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAA,EAAAqC,EAAAiH,GAAA1H,OAAAU,EAAA9C,EAAA+J,WAAAC,OAAA,iBAAAvC,GAAAwC,OAAAxC,EAAA,WAAA,IAAA,GAAA5H,GAAA2J,IAAAF,KAAAlJ,EAAAuF,KAAAC,IAAA,EAAAiC,EAAAqC,UAAArC,EAAAsC,SAAAtK,GAAAS,EAAA,GAAAF,EAAAyH,EAAAsC,UAAA,GAAA3J,EAAA,EAAAQ,EAAA6G,EAAAuC,OAAAhI,OAAApB,EAAAR,EAAAA,IAAAqH,EAAAuC,OAAA5J,GAAA6J,IAAA/J,EAAA,OAAAwC,GAAAwH,WAAA1K,GAAAiI,EAAAvH,EAAAF,IAAA,EAAAE,GAAAU,EAAAZ,GAAA0C,EAAAyH,YAAA3K,GAAAiI,KAAA,IAAAA,EAAA/E,EAAA0H,SAAAP,KAAArK,EAAA6K,MAAAzK,EAAAmD,UAAAtD,GAAA6K,KAAA1K,EAAAmD,QAAA,GAAAwH,kBAAAvK,GAAAwK,mBAAA/K,EAAAgL,gBAAAzK,EAAA8J,UAAAV,IAAAF,KAAAa,SAAA/J,EAAA+J,SAAAC,UAAAU,YAAA,SAAAjL,EAAAO,EAAAE,GAAA,GAAAE,GAAAR,EAAA+K,MAAAnL,EAAAiI,EAAA6C,KAAA7K,EAAAO,EAAAyH,EAAA6C,KAAAC,cAAA9K,IAAAgI,EAAA6C,KAAAM,OAAA,OAAAnD,GAAAuC,OAAAa,KAAAzK,GAAAA,GAAA0K,KAAA,SAAArL,GAAA,IAAA,GAAAO,GAAA,EAAAE,EAAAT,EAAAgI,EAAAuC,OAAAhI,OAAA,EAAA9B,EAAAF,EAAAA,IAAAyH,EAAAuC,OAAAhK,GAAAiK,IAAA;AAAA,ACOA,MDPAxK,GAAAiD,EAAAyH,YAAA3K,GAAAiI,EAAAhI,IAAAiD,EAAAqI,WAAAvL,GAAAiI,EAAAhI,IAAAuL,QAAAtD,EAAAD,EAAA4C,KAAA,KAAAY,GAAAvD,EAAAD,EAAA6C,KAAAC,eAAA9H,EAAArC,EAAAA,IAAA,GAAAF,EAAAwJ,GAAAtJ,GAAAoB,KAAAiG,EAAAjI,EAAAkI,EAAAD,EAAA6C,MAAA,MAAApK,EAAA,OAAAoJ,IAAA7B,EAAAC,GAAA9H,EAAA0B,WAAAmG,EAAA6C,KAAAY,QAAAzD,EAAA6C,KAAAY,MAAA1J,KAAAhC,EAAAiI,GAAA7H,EAAAuL,GAAAC,MAAAxL,EAAAmD,OAAAsE,GAAAgE,KAAA5D,EAAA6D,MAAA7D,EAAA6C,KAAAgB,MAAAzB,KAAArK,KAAAiI,EAAA8D,SAAA9D,EAAA6C,KAAAiB,UAAAC,KAAA/D,EAAA6C,KAAAkB,KAAA/D,EAAA6C,KAAAmB,UAAAC,KAAAjE,EAAA6C,KAAAoB,MAAA9B,OAAAnC,EAAA6C,KAAAV,QAAA,QAAAqB,IAAAzL,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,EAAAQ,EAAA6B,CAAA,KAAAzC,IAAAR,GAAA,GAAAU,EAAAN,EAAA+L,UAAA3L,GAAAI,EAAAX,EAAAS,GAAAU,EAAApB,EAAAQ,GAAAJ,EAAAsH,QAAAtG,KAAAR,EAAAQ,EAAA,GAAAA,EAAApB,EAAAQ,GAAAY,EAAA,IAAAZ,IAAAE,IAAAV,EAAAU,GAAAU,QAAApB,GAAAQ,IAAAyC,EAAA7C,EAAAgM,SAAA1L,GAAAuC,GAAA,UAAAA,GAAA,CAAA7B,EAAA6B,EAAAoJ,OAAAjL,SAAApB,GAAAU,EAAA,KAAAF,IAAAY,GAAAZ,IAAAR,KAAAA,EAAAQ,GAAAY,EAAAZ,GAAAP,EAAAO,GAAAI,OAAAX,GAAAS,GAAAE,EAAA,QAAA0L,IAAAtM,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,EAAA6B,EAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAAqD,KAAAe,EAAAvM,EAAAwF,MAAAgH,KAAAC,KAAAC,EAAA1M,EAAAW,UAAAyE,GAAApF;AAAAQ,ACQA,EDRAsL,QAAA7D,EAAA7H,EAAAuM,YAAA3M,EAAA,MAAA,MAAAiI,EAAA2E,WAAA3E,EAAA2E,SAAA,EAAA1E,EAAAD,EAAA4E,MAAAC,KAAA7E,EAAA4E,MAAAC,KAAA,WAAA7E,EAAA2E,UAAA1E,MAAAD,EAAA2E,WAAAzE,EAAAiC,OAAA,WAAAjC,EAAAiC,OAAA,WAAAnC,EAAA2E,WAAAxM,EAAA0L,MAAA9L,EAAA,MAAAwC,QAAAyF,EAAA4E,MAAAC,YAAA,IAAA9M,EAAAW,WAAA,UAAAV,IAAA,SAAAA,MAAAO,EAAAuM,UAAAR,EAAAQ,SAAAR,EAAAS,UAAAT,EAAAU,WAAA,WAAA7M,EAAAiF,IAAArF,EAAA,YAAA,SAAAI,EAAAiF,IAAArF,EAAA,WAAAI,EAAAyD,QAAAqJ,wBAAA,WAAAxH,GAAA1F,EAAA2D,UAAA4I,EAAAY,KAAA,EAAAZ,EAAA9G,QAAA,iBAAAjF,EAAAuM,WAAAR,EAAAQ,SAAA,SAAA3M,EAAAyD,QAAAuJ,kBAAAjF,EAAA6D,KAAA,WAAAO,EAAAQ,SAAAvM,EAAAuM,SAAA,GAAAR,EAAAS,UAAAxM,EAAAuM,SAAA,GAAAR,EAAAU,UAAAzM,EAAAuM,SAAA,KAAA,KAAArM,IAAAT,GAAA,GAAAmB,EAAAnB,EAAAS,GAAA2M,GAAAvH,KAAA1E,GAAA;AAAA,ACSA,SDTAnB,GAAAS,GAAAU,KAAAsL,EAAA,OAAA,QAAA,QAAAD,GAAApB,KAAA3K,GAAA,GAAAuC,EAAAwJ,EAAAjK,OAAA,IAAAU,EAAA9C,EAAA4C,MAAAhD,EAAA,WAAAI,EAAA4C,MAAAhD,EAAA,aAAA0M,EAAAtM,EAAAJ,GAAAsN,OAAAnF,EAAA6D,KAAA,WAAA5L,EAAAJ,GAAAuN,SAAApF,EAAA6D,KAAA,WAAA,GAAA/L,EAAAG,GAAAoN,WAAAxN,EAAA,UAAA,EAAA,KAAAC,IAAAuM,GAAApM,EAAAoF,MAAAxF,EAAAC,EAAAuM,EAAAvM,MAAAS,EAAA,EAAAuC,EAAAvC,EAAAA,IAAAE,EAAA6L,EAAA/L,GAAAmH,EAAAM,EAAA+C,YAAAtK,EAAA8L,EAAAxJ,EAAAtC,GAAA,GAAA4L,EAAA5L,GAAAsC,EAAAtC,IAAAR,EAAAoF,MAAAxF,EAAAY,GAAAA,IAAAsC,KAAAA,EAAAtC,GAAAiH,EAAA6D,MAAAgB,IAAA7E,EAAA4F,IAAA5F,EAAA6D,MAAA7D,EAAA6D,MAAA,UAAA9K,GAAA,WAAAA,EAAA,EAAA,IAAA,QAAA8M,IAAA1N,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,MAAA,IAAA8M,IAAAC,UAAAC,KAAA5N,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,QAAAiN,IAAA7N,EAAAC,GAAA,IAAA,GAAAO,GAAAE,GAAAuG,OAAAjH,GAAAY,EAAA,EAAA,EAAAA,EAAAA,GAAA,EAAAX,EAAAO,EAAA0F,GAAAtF,GAAAF,EAAA,SAAAF,GAAAE,EAAA,UAAAF,GAAAR,CAAA,OAAAC,KAAAS,EAAAoN,QAAApN,EAAAsG,MAAAhH,GAAAU,EAAA,QAAAqN,IAAA/N,GAAA,MAAAI,GAAA4N,SAAAhO,GAAAA,EAAA,IAAAA,EAAAW,SAAAX,EAAAiO,aAAAjO,EAAAkO,cAAA;ACUA,CDVA,GAAA1N,GAAAE,EAAAE,EAAAZ,EAAAqH,SAAAjG,EAAApB,EAAAmO,SAAAlL,EAAAjD,EAAAoO,UAAAlL,EAAAlD,EAAAqO,OAAAxG,EAAA7H,EAAAsO,EAAArG,EAAAsG,MAAAZ,UAAAtC,KAAAnD,EAAAqG,MAAAZ,UAAAzI,MAAAiD,EAAAoG,MAAAZ,UAAAa,QAAAjC,EAAAkC,OAAAd,UAAAe,SAAAlC,EAAAiC,OAAAd,UAAAgB,eAAAlC,EAAAmC,OAAAjB,UAAA3J,KAAA5D,EAAA,SAAAJ,EAAAC,GAAA,MAAA,IAAAG,GAAAyO,GAAAjB,KAAA5N,EAAAC,EAAAO,IAAAkM,EAAA,wCAAAoC,OAAAC,EAAA,KAAAxO,EAAA,MAAAyO,EAAAD,EAAA7N,KAAA,KAAA,yBAAA,aAAA+N,EAAA,2CAAAC,EAAA,6BAAAC,EAAA,gBAAAC,EAAA,uBAAAC,EAAA,qCAAAC,EAAA,qEAAAC,EAAA,QAAAC,EAAA,eAAAC,EAAA,SAAAzP,EAAAC,GAAA,OAAAA,EAAA,IAAAgF;ACWA,EDXAyK,EAAA,WAAA9O,EAAA+O,kBAAA/O,EAAAgP,oBAAA,mBAAAF,GAAA,GAAAtP,EAAAyP,SAAA,aAAAjP,EAAAkP,aAAAlP,EAAAmP,YAAA,qBAAAL,GAAAtP,EAAAyP,UAAAG,IAAA5P,GAAAyO,GAAAzO,EAAAuN,WAAAsC,YAAA7P,EAAAwN,KAAA,SAAA5N,EAAAQ,EAAAE,GAAA,GAAAU,GAAA6B,EAAA4E,CAAA,KAAA7H,EAAA,MAAAwL,KAAA,IAAAxL,EAAAW,SAAA,MAAA6K,MAAA0E,QAAA1E,KAAA,GAAAxL,EAAAwL,KAAAhJ,OAAA,EAAAgJ,IAAA,IAAA,gBAAAxL,GAAA,CAAA,GAAAoB,EAAA,MAAApB,EAAAgF,OAAA,IAAA,MAAAhF,EAAAgF,OAAAhF,EAAAwC,OAAA,IAAAxC,EAAAwC,QAAA,GAAA,KAAAxC,EAAA,MAAAiP,EAAAnJ,KAAA9F,GAAAoB,IAAAA,EAAA,KAAAZ,GAAA,CAAA,GAAAY,EAAA,GAAA,MAAAZ,GAAAA,YAAAJ,GAAAI,EAAA,GAAAA,EAAAqH,EAAArH,GAAAA,EAAAG,SAAAH,EAAAqC,eAAArC,EAAAI,EAAAZ,EAAAI,EAAA+P,UAAA/O,EAAA,GAAAyG,GAAA,GAAAqH,EAAAhO,KAAAE,EAAA,KAAAhB,EAAAgQ,cAAA5P,IAAAgL,KAAA6E,KAAArO,KAAAhC,EAAAQ,GAAA,GAAAJ,EAAAkQ,MAAA9E,KAAAxL,EAAA,IAAAiD,EAAArC,EAAA2P,eAAAnP,EAAA,IAAA6B,GAAAA,EAAAtB,WAAA,CAAA,GAAAsB,EAAAuN,KAAApP,EAAA,GAAA,MAAAV,GAAA+P,KAAAzQ;AAAAwL,ACYA,KDZAhJ,OAAA,EAAAgJ,KAAA,GAAAvI,EAAA,MAAAuI,MAAA0E,QAAAtP,EAAA4K,KAAAkF,SAAA1Q,EAAAwL,KAAA,OAAAhL,GAAAA,EAAAmQ,QAAAnQ,GAAAE,GAAA+P,KAAAzQ,GAAAwL,KAAAyE,YAAAzP,GAAAiQ,KAAAzQ,GAAA,MAAAI,GAAA0B,WAAA9B,GAAAU,EAAAmP,MAAA7P,IAAAA,EAAA0Q,WAAAzQ,IAAAuL,KAAAkF,SAAA1Q,EAAA0Q,SAAAlF,KAAA0E,QAAAlQ,EAAAkQ,SAAA9P,EAAAwQ,UAAA5Q,EAAAwL,QAAAkF,SAAA,GAAAC,OAAA,QAAAnO,OAAA,EAAAqO,KAAA,WAAA,MAAArF,MAAAhJ,QAAAsO,QAAA,WAAA,MAAA5I,GAAAlG,KAAAwJ,OAAAuF,IAAA,SAAA/Q,GAAA,MAAA,OAAAA,EAAAwL,KAAAsF,UAAA,EAAA9Q,EAAAwL,KAAAA,KAAAhJ,OAAAxC,GAAAwL,KAAAxL,IAAAgR,UAAA,SAAAhR,EAAAC,EAAAO,GAAA,GAAAE,GAAAN,EAAAkQ,MAAA9E,KAAAyE,cAAAjQ,EAAA,OAAAU,GAAAuQ,WAAAzF,KAAA9K,EAAAwP,QAAA1E,KAAA0E,QAAA,SAAAjQ,EAAAS,EAAAgQ,SAAAlF,KAAAkF,UAAAlF,KAAAkF,SAAA,IAAA,IAAAlQ,EAAAP,IAAAS,EAAAgQ,SAAAlF,KAAAkF,SAAA,IAAAzQ,EAAA,IAAAO,EAAA,KAAAE,GAAAL,KAAA,SAAAL,EAAAC;AAAA,ACaA,MDbAG,GAAAC,KAAAmL,KAAAxL,EAAAC,IAAA4P,MAAA,SAAA7P,GAAA,MAAAI,GAAAyP,MAAAjF,UAAAoB,KAAAhM,GAAAwL,MAAA0F,GAAA,SAAAlR,GAAA,MAAAA,IAAAA,EAAA,KAAAA,EAAAwL,KAAAtG,MAAAlF,GAAAwL,KAAAtG,MAAAlF,EAAAA,EAAA,IAAAmR,MAAA,WAAA,MAAA3F,MAAA0F,GAAA,IAAAE,KAAA,WAAA,MAAA5F,MAAA0F,GAAA,KAAAhM,MAAA,WAAA,MAAAsG,MAAAwF,UAAA9I,EAAAmJ,MAAA7F,KAAA8F,WAAA,QAAApJ,EAAAlG,KAAAsP,WAAAC,KAAA,OAAAC,IAAA,SAAAxR,GAAA,MAAAwL,MAAAwF,UAAA5Q,EAAAoR,IAAAhG,KAAA,SAAAvL,EAAAO,GAAA,MAAAR,GAAAgC,KAAA/B,EAAAO,EAAAP,OAAAwN,IAAA,WAAA,MAAAjC,MAAAyF,YAAAzF,KAAAyE,YAAA,OAAA5E,KAAApD,EAAAwJ,QAAAA,KAAAtI,UAAAA,QAAA/I,EAAAyO,GAAAjB,KAAAD,UAAAvN,EAAAyO,GAAAzO,EAAAmD,OAAAnD,EAAAyO,GAAAtL,OAAA,WAAA,GAAAvD,GAAAQ,EAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAAoO,UAAA,OAAAzJ,EAAA,EAAAI,EAAAqJ,UAAA9O,OAAA0F,GAAA,CAAA,KAAA,iBAAAhF,KAAAgF,EAAAhF,EAAAA,EAAAoO,UAAA;AAAAzJ,ACcA,EDdA,GAAA,gBAAA3E,KAAA9C,EAAA0B,WAAAoB,KAAAA,MAAA+E,IAAAJ,IAAA3E,EAAAsI,OAAA3D,GAAAI,EAAAJ,EAAAA,IAAA,GAAA,OAAA7H,EAAAsR,UAAAzJ,IAAA,IAAArH,IAAAR,GAAAU,EAAAwC,EAAA1C,GAAAI,EAAAZ,EAAAQ,GAAA0C,IAAAtC,IAAAsH,GAAAtH,IAAAR,EAAAgQ,cAAAxP,KAAAQ,EAAAhB,EAAAsH,QAAA9G,MAAAQ,GAAAA,GAAA,EAAA6B,EAAAvC,GAAAN,EAAAsH,QAAAhH,GAAAA,MAAAuC,EAAAvC,GAAAN,EAAAgQ,cAAA1P,GAAAA,KAAAwC,EAAA1C,GAAAJ,EAAAmD,OAAA2E,EAAAjF,EAAArC,IAAAA,IAAAX,IAAAiD,EAAA1C,GAAAI,GAAA,OAAAsC,IAAA9C,EAAAmD,QAAAmO,WAAA,SAAAzR,GAAA,MAAAD,GAAAsO,IAAAlO,IAAAJ,EAAAsO,EAAAzG,GAAA5H,GAAAD,EAAAqO,SAAAjO,IAAAJ,EAAAqO,OAAAnL,GAAA9C,GAAAuR,SAAA,EAAAC,UAAA,EAAAC,UAAA,SAAA7R,GAAAA,EAAAI,EAAAwR,YAAAxR,EAAAyP,OAAA,IAAAA,MAAA,SAAA7P,GAAA,GAAAA,KAAA,KAAAI,EAAAwR,WAAAxR,EAAAuR,QAAA,CAAA,IAAA/Q,EAAAgG,KAAA,MAAA+C,YAAAvJ,EAAAyP,MAAA,EAAAzP,GAAAuR,SAAA,EAAA3R,KAAA,KAAAI,EAAAwR,UAAA,IAAAlR,EAAAiK,YAAA/J,GAAAR,IAAAA,EAAAyO,GAAAiD,SAAA1R,EAAAQ,GAAAkR,QAAA,SAAAC,IAAA,YAAAjQ,WAAA,SAAA9B;AAAA,ACeA,MDfA,aAAAI,EAAA8D,KAAAlE,IAAA0H,QAAA6G,MAAA7G,SAAA,SAAA1H,GAAA,MAAA,UAAAI,EAAA8D,KAAAlE,IAAAgO,SAAA,SAAAhO,GAAA,MAAA,OAAAA,GAAAA,GAAAA,EAAAgS,QAAAC,UAAA,SAAAjS,GAAA,OAAAkS,MAAA/L,WAAAnG,KAAAmS,SAAAnS,IAAAkE,KAAA,SAAAlE,GAAA,MAAA,OAAAA,EAAA4O,OAAA5O,GAAAgQ,EAAAzD,EAAAvK,KAAAhC,KAAA,UAAAoQ,cAAA,SAAApQ,GAAA,IAAAA,GAAA,WAAAI,EAAA8D,KAAAlE,IAAAA,EAAAW,UAAAP,EAAA4N,SAAAhO,GAAA,OAAA,CAAA,KAAA,GAAAA,EAAAiQ,cAAAzD,EAAAxK,KAAAhC,EAAA,iBAAAwM,EAAAxK,KAAAhC,EAAAiQ,YAAAtC,UAAA,iBAAA,OAAA,EAAA,MAAAnN,GAAA,OAAA,EAAA,GAAAE,EAAA,KAAAA,IAAAV,IAAA,MAAAU,KAAAT,GAAAuM,EAAAxK,KAAAhC,EAAAU,IAAAa,cAAA,SAAAvB,GAAA,GAAAC,EAAA,KAAAA,IAAAD,GAAA,OAAA,CAAA,QAAA,GAAAqJ,MAAA,SAAArJ,GAAA,KAAA,IAAAoS,OAAApS,IAAAmQ,UAAA,SAAAnQ,EAAAC,EAAAO,GAAA,GAAAE,EAAA,OAAAV,IAAA,gBAAAA,IAAA,iBAAAC,KAAAO,EAAAP;AAAAA,ACgBA,EDhBA,GAAAA,EAAAA,GAAAW,GAAAF,EAAAwO,EAAApJ,KAAA9F,KAAAC,EAAAsC,cAAA7B,EAAA,MAAAA,EAAAN,EAAAiS,eAAArS,GAAAC,EAAAO,EAAA,SAAAJ,EAAAkQ,UAAA5P,EAAA4R,UAAAlS,EAAAmS,MAAA7R,EAAA8R,UAAA9R,EAAA8R,UAAAC,cAAA,MAAAtR,UAAA,SAAAlB,GAAA,MAAAA,IAAA,gBAAAA,IAAAA,EAAAG,EAAA4D,KAAA/D,GAAAD,EAAA0S,MAAA1S,EAAA0S,KAAAC,MAAA3S,EAAA0S,KAAAC,MAAA1S,GAAAkP,EAAAjO,KAAAjB,EAAAY,QAAAwO,EAAA,KAAAxO,QAAAyO,EAAA,KAAAzO,QAAAuO,EAAA,KAAA,GAAAwD,UAAA,UAAA3S,SAAAG,GAAAiJ,MAAA,iBAAApJ,IAAA,MAAA4S,SAAA,SAAArS,GAAA,GAAAE,GAAAE,CAAA,KAAAJ,GAAA,gBAAAA,GAAA,MAAA,KAAA,KAAAR,EAAA8S,WAAAlS,EAAA,GAAAkS,WAAApS,EAAAE,EAAAmS,gBAAAvS,EAAA,cAAAE,EAAA,GAAA+I,eAAA,oBAAA/I,EAAAsS,MAAA,QAAAtS,EAAAuS,QAAAzS,IAAA,MAAAY,GAAAV,EAAAT,EAAA,QAAAS,IAAAA,EAAAwS,iBAAAxS,EAAAiC,qBAAA,eAAAH,SAAApC,EAAAiJ,MAAA,gBAAA7I;AAAAE,ACiBA,GDjBAyS,KAAA,aAAAC,WAAA,SAAAnT,GAAAA,GAAA8O,EAAA7N,KAAAjB,KAAAD,EAAAqT,YAAA,SAAApT,GAAAD,EAAAsT,KAAAtR,KAAAhC,EAAAC,KAAAA,IAAAkM,UAAA,SAAAnM,GAAA,MAAAA,GAAAa,QAAA0O,EAAA,OAAA1O,QAAA2O,EAAAC,IAAA9L,SAAA,SAAA3D,EAAAC,GAAA,MAAAD,GAAA2D,UAAA3D,EAAA2D,SAAAsB,gBAAAhF,EAAAgF,eAAA5E,KAAA,SAAAL,EAAAQ,EAAAE,GAAA,GAAAE,GAAAQ,EAAA,EAAA6B,EAAAjD,EAAAwC,OAAAU,EAAAD,IAAAhD,GAAAG,EAAA0B,WAAA9B,EAAA,IAAAU,EAAA,GAAAwC,GAAA,IAAAtC,IAAAZ,GAAA,GAAAQ,EAAA6Q,MAAArR,EAAAY,GAAAF,MAAA,EAAA,UAAA,MAAAuC,EAAA7B,GAAAZ,EAAA6Q,MAAArR,EAAAoB,KAAAV,MAAA,QAAA,IAAAwC,GAAA,IAAAtC,IAAAZ,GAAA,GAAAQ,EAAAwB,KAAAhC,EAAAY,GAAAA,EAAAZ,EAAAY,OAAA,EAAA,UAAA,MAAAqC,EAAA7B,GAAAZ,EAAAwB,KAAAhC,EAAAoB,GAAAA,EAAApB,EAAAoB,SAAA,IAAA,MAAApB,IAAAgE,KAAAyI,EAAA,SAAAzM,GAAA,MAAA,OAAAA,EAAA,GAAAyM,EAAAzK,KAAAhC,IAAA,SAAAA,GAAA,MAAA,OAAAA,EAAA,GAAAA,EAAA0O,WAAA7N,QAAAmO,EAAA,KAAA4B,UAAA,SAAA5Q,EAAAC,GAAA,GAAAO,GAAAE,EAAAT;AAAA,ACkBA,MDlBA,OAAAD,IAAAQ,EAAAJ,EAAA8D,KAAAlE,GAAA,MAAAA,EAAAwC,QAAA,WAAAhC,GAAA,aAAAA,GAAA,WAAAA,GAAAJ,EAAA4N,SAAAhO,GAAAiI,EAAAjG,KAAAtB,EAAAV,GAAAI,EAAAkQ,MAAA5P,EAAAV,IAAAU,GAAAyB,QAAA,SAAAnC,EAAAC,EAAAO,GAAA,GAAAE,EAAA,IAAAT,EAAA,CAAA,GAAAkI,EAAA,MAAAA,GAAAnG,KAAA/B,EAAAD,EAAAQ,EAAA,KAAAE,EAAAT,EAAAuC,OAAAhC,EAAAA,EAAA,EAAAA,EAAAuF,KAAAC,IAAA,EAAAtF,EAAAF,GAAAA,EAAA,EAAAE,EAAAF,EAAAA,IAAA,GAAAA,IAAAP,IAAAA,EAAAO,KAAAR,EAAA,MAAAQ,GAAA,MAAA,IAAA8P,MAAA,SAAAtQ,EAAAQ,GAAA,GAAAE,GAAAF,EAAAgC,OAAA5B,EAAAZ,EAAAwC,OAAApB,EAAA,CAAA,IAAA,gBAAAV,GAAA,KAAAA,EAAAU,EAAAA,IAAApB,EAAAY,KAAAJ,EAAAY,OAAA,MAAAZ,EAAAY,KAAAnB,GAAAD,EAAAY,KAAAJ,EAAAY,IAAA,OAAApB,GAAAwC,OAAA5B,EAAAZ,GAAA+B,KAAA,SAAA/B,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,KAAAQ,EAAA,EAAA6B,EAAAjD,EAAAwC,MAAA,KAAAhC,IAAAA,EAAAyC,EAAA7B,EAAAA,IAAAV,IAAAT,EAAAD,EAAAoB,GAAAA,GAAAZ,IAAAE,GAAAE,EAAAyK,KAAArL,EAAAoB,GAAA,OAAAR,IAAA4Q,IAAA,SAAAxR,EAAAQ,EAAAE,GAAA,GAAAE,GAAAQ,EAAA6B,KAAAC,EAAA,EAAA2E,EAAA7H,EAAAwC,OAAAyF,EAAAjI,YAAAI,IAAAyH,IAAA5H,GAAA,gBAAA4H,KAAAA,EAAA,GAAA7H,EAAA,IAAAA,EAAA6H,EAAA,IAAA,IAAAA,GAAAzH,EAAAsH,QAAA1H;AAAA,ACmBA,GDnBAiI,EAAA,KAAAJ,EAAA3E,EAAAA,IAAAtC,EAAAJ,EAAAR,EAAAkD,GAAAA,EAAAxC,GAAA,MAAAE,IAAAqC,EAAAA,EAAAT,QAAA5B,OAAA,KAAAQ,IAAApB,GAAAY,EAAAJ,EAAAR,EAAAoB,GAAAA,EAAAV,GAAA,MAAAE,IAAAqC,EAAAA,EAAAT,QAAA5B,EAAA,OAAAqC,GAAA+G,OAAAqH,SAAApO,IAAAsQ,KAAA,EAAAC,MAAA,SAAAxT,EAAAQ,GAAA,GAAAE,GAAAE,EAAAQ,CAAA,OAAA,gBAAAZ,KAAAE,EAAAV,EAAAQ,GAAAA,EAAAR,EAAAA,EAAAU,GAAAN,EAAA0B,WAAA9B,IAAAY,EAAAsH,EAAAlG,KAAAsP,UAAA,GAAAlQ,EAAA,WAAA,MAAApB,GAAAqR,MAAA7Q,EAAAI,EAAAoJ,OAAA9B,EAAAlG,KAAAsP,cAAAlQ,EAAAmS,KAAAvT,EAAAuT,KAAAvT,EAAAuT,MAAAnS,EAAAmS,MAAAnT,EAAAmT,OAAAnS,GAAAnB,GAAAwT,OAAA,SAAAzT,EAAAQ,EAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,GAAA,GAAA2E,GAAAI,EAAA,MAAAvH,EAAAwH,EAAA,EAAAC,EAAAnI,EAAAwC,MAAA,IAAA9B,GAAA,gBAAAA,GAAA,CAAA,IAAAwH,IAAAxH,GAAAN,EAAAqT,OAAAzT,EAAAQ,EAAA0H,EAAAxH,EAAAwH,GAAA,EAAAjF,EAAArC,EAAAQ,GAAA,MAAA,IAAAR,IAAAX,EAAA,CAAA,GAAA4H,EAAA3E,IAAAjD,GAAAG,EAAA0B,WAAAlB,GAAAqH,IAAAJ,GAAAA,EAAArH,EAAAA,EAAA,SAAAR,EAAAC,EAAAO,GAAA,MAAAqH,GAAA7F,KAAA5B,EAAAJ,GAAAQ,MAAAA,EAAAwB,KAAAhC,EAAAY,GAAAJ,EAAA,OAAAA,EAAA,KAAA2H,EAAAD,EAAAA,IAAA1H,EAAAR,EAAAkI,GAAAxH,EAAAmH,EAAAjH,EAAAoB,KAAAhC,EAAAkI,GAAAA,EAAA1H,EAAAR,EAAAkI,GAAAxH,IAAAE,EAAAsC;AAAA9B,ACoBA,EDpBA,EAAA,MAAAA,GAAApB,EAAAiI,EAAAzH,EAAAwB,KAAAhC,GAAAmI,EAAA3H,EAAAR,EAAA,GAAAU,GAAAuC,GAAA4G,IAAA,WAAA,OAAA,GAAA6J,OAAAC,aAAAvT,EAAAyP,MAAAjF,QAAA,SAAA3K,GAAA,IAAAS,EAAA,GAAAA,EAAAN,EAAA+J,WAAA,aAAAvJ,EAAAkP,YAAA,YAAAlP,EAAAkP,YAAAlP,EAAA+O,iBAAAhG,WAAAvJ,EAAAyP,MAAA,OAAA,IAAAjP,EAAA+O,iBAAA/O,EAAA+O,iBAAA,mBAAAD,GAAA,GAAA1P,EAAA2P,iBAAA,OAAAvP,EAAAyP,OAAA,OAAA,CAAAjP,EAAAgT,YAAA,qBAAAlE,GAAA1P,EAAA4T,YAAA,SAAAxT,EAAAyP,MAAA,IAAArP,IAAA,CAAA,KAAAA,EAAA,MAAAR,EAAA6T,cAAAjT,EAAAsS,gBAAA,MAAA9R,IAAAZ,GAAAA,EAAAsT,UAAA,QAAA7Q,KAAA,IAAA7C,EAAAuR,QAAA,CAAA,IAAAnR,EAAAsT,SAAA,QAAA,MAAA9T,GAAA,MAAA2J,YAAA1G,EAAA,IAAA7C,EAAAyP,YAAA,MAAAnP,GAAAkK,QAAA3K,IAAAG,EAAAC,KAAA,0DAAAC,MAAA,KAAA,SAAAN,EAAAC;AAAA+P,ACqBA,EDrBA,WAAA/P,EAAA,KAAAA,EAAAc,gBAAAP,EAAAJ,EAAAQ,EAAA,IAAAT,KAAAC,GAAA2T,UAAA,SAAA/T,GAAAA,EAAA,gBAAAA,GAAAG,EAAAH,IAAAE,EAAAF,GAAAI,EAAAmD,UAAAvD,EAAA,IAAAQ,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAA2E,KAAAI,GAAAjI,EAAAgU,SAAA9L,EAAA,SAAAjI,GAAA,IAAAO,EAAAR,EAAAiU,QAAAhU,EAAAS,GAAA,EAAAwC,EAAA9B,GAAA,EAAAA,EAAA,EAAA6B,EAAA4E,EAAArF,OAAA5B,GAAA,EAAAiH,GAAA5E,EAAAC,EAAAA,IAAA,GAAA2E,EAAA3E,GAAAmO,MAAApR,EAAA,GAAAA,EAAA,OAAA,GAAAD,EAAAkU,YAAA,CAAA1T,GAAA,CAAA,OAAAI,GAAA,EAAAiH,IAAAI,EAAAA,EAAAzF,QAAA0F,EAAAD,EAAAW,SAAApI,EAAAqH,KAAAM,EAAAgM,YAAAhM,GAAA7E,IAAA,WAAA,GAAAuE,EAAA,CAAA,GAAA5H,GAAA4H,EAAArF,QAAA,QAAA9B,GAAAT,GAAAG,EAAAC,KAAAJ,EAAA,SAAAA,EAAAO,IAAAJ,EAAA0B,WAAAtB,IAAAR,EAAAoU,QAAAjM,EAAAkM,IAAA7T,GAAAA,GAAAA,EAAAgC,QAAA9B,EAAAF,GAAAqH,EAAAwD,KAAA7K,MAAA8Q,WAAA1Q,EAAAqC,EAAA4E,EAAArF,OAAAhC,IAAAY,EAAAnB,EAAAiI,EAAA1H,IAAA,MAAAgL,OAAA3E,OAAA,WAAA,MAAAgB,IAAAzH,EAAAC,KAAAiR,UAAA,SAAAtR,EAAAC,GAAA,IAAA,GAAAO,IAAAA,EAAAJ,EAAA+B,QAAAlC,EAAA4H,EAAArH,IAAA,IAAAqH,EAAAsB,OAAA3I,EAAA,GAAAI,IAAAqC,GAAAzC,GAAAyC,IAAAC,GAAA1C,GAAA0C;ACsBA,GDtBAsI,MAAA6I,IAAA,SAAArU,GAAA,MAAAI,GAAA+B,QAAAnC,EAAA6H,GAAA,IAAAgF,MAAA,WAAA,MAAAhF,MAAA2D,MAAA2I,QAAA,WAAA,MAAAtM,GAAAI,EAAAzH,EAAAP,EAAAuL,MAAA8I,SAAA,WAAA,OAAAzM,GAAA0M,KAAA,WAAA,MAAAtM,GAAAhI,EAAAO,GAAA2H,EAAAgM,UAAA3I,MAAAgJ,OAAA,WAAA,OAAAvM,GAAAwM,SAAA,SAAAzU,EAAAC,GAAA,MAAAA,GAAAA,MAAAA,GAAAD,EAAAC,EAAAiF,MAAAjF,EAAAiF,QAAAjF,GAAA4H,KAAAnH,GAAAuH,KAAArH,EAAAqH,EAAAoD,KAAApL,GAAAiI,EAAAjI,IAAAuL,MAAAsB,KAAA,WAAA,MAAA3E,GAAAsM,SAAAjJ,KAAA8F,WAAA9F,MAAAkJ,MAAA,WAAA,QAAAhU,GAAA,OAAAyH,IAAA/H,EAAAmD,QAAA4G,SAAA,SAAAnK,GAAA,GAAAC,KAAA,UAAA,OAAAG,EAAA2T,UAAA,eAAA,aAAA,SAAA,OAAA3T,EAAA2T,UAAA,eAAA,aAAA,SAAA,WAAA3T,EAAA2T,UAAA,YAAAvT,EAAA,UAAAE,GAAA0I,MAAA,WAAA,MAAA5I,IAAA4J,OAAA;AAAA,ACuBA,MDvBAxJ,GAAAoL,KAAAsF,WAAApF,KAAAoF,WAAA9F,MAAAmJ,KAAA,WAAA,GAAA3U,GAAAsR,SAAA,OAAAlR,GAAA+J,SAAA,SAAA3J,GAAAJ,EAAAC,KAAAJ,EAAA,SAAAA,EAAAS,GAAA,GAAAU,GAAAV,EAAA,GAAAuC,EAAAjD,EAAAC,EAAAW,GAAAF,EAAA,IAAAN,EAAA0B,WAAAmB,GAAA,WAAA,GAAAjD,GAAAiD,EAAAoO,MAAA7F,KAAA8F,UAAAtR,IAAAI,EAAA0B,WAAA9B,EAAA4K,SAAA5K,EAAA4K,UAAAoB,KAAAxL,EAAAoU,SAAA1I,KAAA1L,EAAAqU,QAAA9I,SAAAvL,EAAAsU,QAAAtU,EAAAY,EAAA,QAAAoK,OAAA5K,EAAAJ,EAAAgL,MAAAxL,KAAAQ,EAAAY,MAAApB,EAAA,OAAA4K,WAAAA,QAAA,SAAA5K,GAAA,MAAA,gBAAAA,GAAAI,EAAAmD,OAAAvD,EAAAU,GAAAA,IAAAE,IAAA,OAAAF,GAAAqU,KAAArU,EAAAiU,KAAAvU,EAAAC,KAAAJ,EAAA,SAAAD,EAAAoB,GAAA,GAAA6B,GAAA7B,EAAA,GAAA8B,EAAA9B,EAAA,EAAAV,GAAAU,EAAA,IAAA6B,EAAAK,IAAAJ,GAAAD,EAAAK,IAAA,WAAA9C,EAAA0C,GAAAjD,EAAA,EAAAD,GAAA,GAAAmU,QAAAlU,EAAA,GAAA,GAAAsU,MAAA3T,EAAAQ,EAAA,IAAA6B,EAAA6J,KAAAlM,EAAAQ,EAAA,GAAA,QAAA6B,EAAAwR,WAAA/T,EAAAkK,QAAAhK,GAAAZ,GAAAA,EAAAgC,KAAApB,EAAAA,GAAAA,GAAAoU,KAAA,SAAAhV,GAAA,GAAAkD,GAAA2E,EAAAI,EAAAhI,EAAA,EAAAO,EAAA0H,EAAAlG,KAAAsP,WAAA5Q,EAAAF,EAAAgC,OAAA5B,EAAA,IAAAF,GAAAV,GAAAI,EAAA0B,WAAA9B,EAAA4K,SAAAlK,EAAA,EAAAU,EAAA,IAAAR,EAAAZ,EAAAI,EAAA+J,WAAAlH,EAAA,SAAAjD,EAAAC,EAAAO;AAAA,ACwBA,MDxBA,UAAAE,GAAAT,EAAAD,GAAAwL,KAAAhL,EAAAR,GAAAsR,UAAA9O,OAAA,EAAA0F,EAAAlG,KAAAsP,WAAA5Q,EAAAF,IAAA0C,EAAA9B,EAAAsJ,WAAAzK,EAAAO,KAAAI,GAAAQ,EAAAuJ,YAAA1K,EAAAO,IAAA,IAAAE,EAAA,EAAA,IAAAwC,EAAA,GAAAqL,OAAA7N,GAAAmH,EAAA,GAAA0G,OAAA7N,GAAAuH,EAAA,GAAAsG,OAAA7N,GAAAA,EAAAT,EAAAA,IAAAO,EAAAP,IAAAG,EAAA0B,WAAAtB,EAAAP,GAAA2K,SAAApK,EAAAP,GAAA2K,UAAAoB,KAAA/I,EAAAhD,EAAAgI,EAAAzH,IAAA0L,KAAA9K,EAAAyT,QAAA9I,SAAA9I,EAAAhD,EAAA4H,EAAA3E,MAAAtC,CAAA,OAAAA,IAAAQ,EAAAuJ,YAAA1C,EAAAzH,GAAAY,EAAAwJ,aAAAxK,EAAAyD,QAAA,WAAA,GAAA5D,GAAAO,EAAAE,EAAAU,EAAA6B,EAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAAoE,EAAAC,EAAA5L,EAAA2B,cAAA,MAAA,IAAAiK,EAAAyI,aAAA,YAAA,KAAAzI,EAAAzI,UAAA,qEAAAvD,EAAAgM,EAAA7J,qBAAA,KAAAjC,EAAA8L,EAAA7J,qBAAA,KAAA,GAAAjC,EAAA8E,MAAA0P,QAAA,iCAAA1U,IAAAA,EAAAgC,SAAA9B,EAAA,QAAAU,GAAAR,EAAA2B,cAAA;AAAAU,ACyBA,EDzBA7B,EAAAwB,YAAAhC,EAAA2B,cAAA,WAAAW,EAAAsJ,EAAA7J,qBAAA,SAAA,GAAA1C,GAAAkV,kBAAA,IAAA3I,EAAA4I,WAAAzU,SAAA0U,OAAA7I,EAAA7J,qBAAA,SAAAH,OAAA8S,gBAAA9I,EAAA7J,qBAAA,QAAAH,OAAAgD,MAAA,MAAAtE,KAAAR,EAAAM,aAAA,UAAAuU,eAAA,OAAA7U,EAAAM,aAAA,QAAA8M,QAAA,OAAA5M,KAAAR,EAAA8E,MAAAsI,SAAA0H,WAAA9U,EAAA8E,MAAAgQ,SAAAC,QAAA,OAAAvS,EAAAmB,MAAAqR,YAAAzS,EAAAqB,SAAAqR,gBAAA,MAAAnJ,EAAAoJ,UAAAC,UAAAjV,EAAA2B,cAAA,QAAAsT,QAAA/R,WAAA,kBAAAlD,EAAA2B,cAAA,OAAAuT,WAAA,GAAAlS,UAAAmS,SAAA,eAAAnV,EAAAoV,WAAAC,eAAA,EAAAC,eAAA,EAAAC,gBAAA,EAAAC,eAAA;AAAAC,AC0BA,cD1BA,EAAAnJ,wBAAA,EAAAE,kBAAA,EAAAkJ,qBAAA,EAAA7P,mBAAA,EAAA8P,eAAA,GAAArT,EAAAkB,SAAA,EAAAnE,EAAAuW,eAAAtT,EAAA4S,WAAA,GAAA1R,QAAAhD,EAAAkT,UAAA,EAAArU,EAAAwW,aAAAxT,EAAAqR,QAAA,WAAA9H,GAAAtL,KAAA,MAAAuL,GAAAxM,EAAAmW,eAAA,EAAA,IAAA5J,EAAAmD,kBAAAnD,EAAAoH,aAAApH,EAAAkK,YAAAlK,EAAAoH,YAAA,UAAArH,EAAA,WAAAtM,EAAAoW,cAAA,IAAA7J,EAAAsJ,WAAA,GAAAY,UAAA,WAAAlK,EAAAuD,YAAA,UAAAxD,IAAArJ,EAAAtC,EAAA2B,cAAA,SAAAW,EAAAmB,MAAA,IAAAnB,EAAA+R,aAAA,OAAA,SAAAhV,EAAA0W,WAAA,MAAAzT,EAAAmB,MAAAnB,EAAA+R,aAAA,UAAA,WAAA/R,EAAA+R,aAAA,OAAA,KAAAzI,EAAA5J,YAAAM,GAAA2E,EAAAjH,EAAA0B,yBAAAuF,EAAAjF,YAAA4J,EAAAoK;AAAA3W,AC2BA,ED3BA4W,WAAAhP,EAAAiO,WAAA,GAAAA,WAAA,GAAAc,UAAAxS,QAAAnE,EAAA6W,cAAA5T,EAAAkB,QAAAyD,EAAAL,YAAAtE,GAAA2E,EAAAjF,YAAA4J,GAAAA,EAAAoH,YAAA,IAAA1L,KAAA6O,QAAA,EAAAC,QAAA,EAAAC,SAAA,GAAAhP,EAAA,KAAAC,EAAAC,EAAAF,IAAAuE,GAAArE,IAAAqE,EAAAyI,aAAAhN,EAAA,WAAAE,EAAA,kBAAAqE,GAAAvE,IAAAhI,EAAAiI,EAAA,WAAAC,CAAA,OAAA/H,GAAA,WAAA,GAAAI,GAAAE,EAAAU,EAAA6B,EAAAC,EAAA,6DAAA2E,EAAAjH,EAAA+B,qBAAA,QAAA,EAAAkF,KAAArH,EAAAI,EAAA2B,cAAA,OAAA/B,EAAAgF,MAAA0P,QAAA,mFAAArN,EAAAqP,aAAA1W,EAAAqH,EAAAuN,YAAA1U,EAAAE,EAAA2B,cAAA,OAAA/B,EAAAoC,YAAAlC,GAAAA,EAAAqD,UAAA,8CAAA3C,EAAAV,EAAAiC,qBAAA;AAAAvB,AC4BA,ED5BA,GAAAoE,MAAA0P,QAAA,2CAAA/M,EAAA,IAAA/G,EAAA,GAAAkF,aAAAlF,EAAA,GAAAoE,MAAAC,QAAA,GAAArE,EAAA,GAAAoE,MAAAC,QAAA,OAAAxF,EAAAkX,sBAAAhP,GAAA,IAAA/G,EAAA,GAAAkF,aAAA5F,EAAAqD,UAAA,GAAArD,EAAA8E,MAAA0P,QAAA,wKAAAjV,EAAAsG,UAAA,IAAA7F,EAAA2F,YAAApG,EAAAmX,iCAAA,IAAAvP,EAAAwP,UAAArX,EAAAsX,mBAAArX,EAAAsW,cAAA,QAAAvW,EAAAsX,iBAAA5W,EAAA,WAAA6W,IAAAtX,EAAAwG,kBAAA,SAAAzG,EAAAsX,iBAAA5W,EAAA,QAAAsG,MAAA,QAAAA,MAAA/D,EAAArC,EAAA2B,cAAA,OAAAU,EAAAuC,MAAA0P,QAAAxU,EAAA8E,MAAA0P,QAAAhS;AAAAD,AC6BA,ED7BAuC,MAAAgS,YAAAvU,EAAAuC,MAAAwB,MAAA,IAAAtG,EAAA8E,MAAAwB,MAAA,MAAAtG,EAAAkC,YAAAK,GAAAhD,EAAAqW,qBAAAnQ,YAAAnG,EAAAsX,iBAAArU,EAAA,WAAAuU,cAAA,mBAAA9W,GAAA8E,MAAA2H,OAAAzM,EAAAqD,UAAA,GAAArD,EAAA8E,MAAA0P,QAAAhS,EAAA,8CAAAjD,EAAAiN,uBAAA,IAAAxM,EAAA2F,YAAA3F,EAAA8E,MAAAC,QAAA,QAAA/E,EAAA8E,MAAAuH,SAAA,UAAArM,EAAAqD,UAAA,cAAArD,EAAA0U,WAAA5P,MAAAwB,MAAA,MAAA/G,EAAAmN,iBAAA,IAAA1M,EAAA2F,YAAA7F,EAAAgF,MAAA2H,KAAA,GAAAtF,EAAAL,YAAAhH,GAAAA,EAAAE,EAAAU,EAAA6B,EAAA,QAAA4E,EAAAL,YAAAgF,GAAAhM,EAAAE,EAAAU,EAAA6B,EAAAC,EAAA2E,EAAA2E,EAAA,KAAAvM,IAAA,IAAAgB,GAAA,sBAAAH,EAAA,UAAAV,GAAAmD,QAAAkU,SAAAC,cAAAC,KAAA,EAAAhT,QAAA,UAAAvE,EAAAyO,GAAA8B,OAAA5K,KAAA6R,UAAA/W,QAAA,MAAA;AAAAgX,AC8BA,QD9BAC,OAAA,EAAAC,OAAA,6CAAAC,QAAA,GAAAjV,QAAA,SAAA/C,GAAA,MAAAA,GAAAA,EAAAW,SAAAP,EAAAqX,MAAAzX,EAAAI,EAAAuE,UAAA3E,EAAAI,EAAAuE,WAAA3E,IAAAsB,EAAAtB,IAAAqB,KAAA,SAAArB,EAAAQ,EAAAE,EAAAE,GAAA,GAAAR,EAAA6X,WAAAjY,GAAA,CAAA,GAAAoB,GAAA6B,EAAAC,EAAA9C,EAAAuE,QAAAkD,EAAA,gBAAArH,GAAAyH,EAAAjI,EAAAW,SAAAuH,EAAAD,EAAA7H,EAAAqX,MAAAzX,EAAAmI,EAAAF,EAAAjI,EAAAkD,GAAAlD,EAAAkD,IAAAA,CAAA,IAAAiF,GAAAD,EAAAC,KAAAvH,GAAAsH,EAAAC,GAAA9G,QAAAwG,GAAAnH,IAAAT,EAAA,MAAAkI,KAAAF,EAAAjI,EAAAkD,GAAAiF,EAAA/H,EAAAsX,WAAAjV,SAAArC,EAAAuX,KAAAxP,EAAAjF,GAAAgF,EAAAC,KAAAD,EAAAC,MAAAF,IAAAC,EAAAC,GAAA+P,OAAA9X,EAAA+S,QAAA,gBAAA3S,IAAA,kBAAAA,MAAAI,EAAAsH,EAAAC,GAAA/H,EAAAmD,OAAA2E,EAAAC,GAAA3H,GAAA0H,EAAAC,GAAA9G,KAAAjB,EAAAmD,OAAA2E,EAAAC,GAAA9G,KAAAb,IAAAY,EAAA8G,EAAAC,GAAAvH,IAAAQ,EAAAC,OAAAD,EAAAC,SAAAD,EAAAA,EAAAC,MAAAX,IAAAT,IAAAmB,EAAAhB,EAAA+L,UAAA3L,IAAAE,GAAAmH,GAAA5E,EAAA7B,EAAAZ,GAAA,MAAAyC,IAAAA,EAAA7B,EAAAhB,EAAA+L,UAAA3L,MAAAyC,EAAA7B,EAAA6B,IAAAuK,WAAA,SAAAxN,EAAAC,EAAAO;AAAA,AC+BA,GD/BAJ,EAAA6X,WAAAjY,GAAA,CAAA,GAAAU,GAAAE,EAAAQ,EAAA6B,EAAAjD,EAAAW,SAAAuC,EAAAD,EAAA7C,EAAAqX,MAAAzX,EAAA6H,EAAA5E,EAAAjD,EAAAI,EAAAuE,SAAAvE,EAAAuE,OAAA,IAAAzB,EAAA2E,GAAA,CAAA,GAAA5H,IAAAS,EAAAF,EAAA0C,EAAA2E,GAAA3E,EAAA2E,GAAAxG,MAAA,CAAAjB,EAAAsH,QAAAzH,KAAAA,IAAAS,GAAAT,GAAAA,IAAAA,EAAAG,EAAA+L,UAAAlM,GAAAA,EAAAA,IAAAS,IAAAT,GAAAA,EAAAK,MAAA,MAAA,KAAAM,EAAA,EAAAQ,EAAAnB,EAAAuC,OAAApB,EAAAR,EAAAA,UAAAF,GAAAT,EAAAW,GAAA,MAAAJ,EAAAc,EAAAlB,EAAAmB,eAAAb,GAAA,QAAAF,UAAA0C,GAAA2E,GAAAxG,KAAAC,EAAA4B,EAAA2E,QAAA5E,EAAA7C,EAAA+X,WAAAnY,IAAA,GAAAI,EAAAyD,QAAAuS,eAAAlT,GAAAA,EAAA8O,aAAA9O,GAAA2E,GAAA3E,EAAA2E,GAAA,SAAA7E,MAAA,SAAAhD,EAAAC,EAAAO,GAAA,MAAAJ,GAAAiB,KAAArB,EAAAC,EAAAO,GAAA,IAAAyX,WAAA,SAAAjY,GAAA,GAAAC,GAAAD,EAAA2D,UAAAvD,EAAAyX,OAAA7X,EAAA2D,SAAA5C,cAAA,QAAAd,GAAAA,KAAA,GAAAD,EAAAgB,aAAA,aAAAf,KAAAG,EAAAyO,GAAAtL,QAAAlC,KAAA,SAAArB,EAAAQ,GAAA,GAAAE,GAAAE,EAAAQ,EAAA6B,EAAAC,EAAA2E,EAAA2D,KAAA,GAAAvD,EAAA,EAAAC,EAAA,IAAA,IAAAlI,IAAAC,EAAA,CAAA,GAAAuL,KAAAhJ,SAAA0F,EAAA9H,EAAAiB,KAAAwG;AAAA,ACgCA,IDhCAA,EAAAlH,WAAAP,EAAA4C,MAAA6E,EAAA,gBAAA,CAAA,IAAAzG,EAAAyG,EAAAuQ,WAAAlV,EAAA9B,EAAAoB,OAAAU,EAAA+E,EAAAA,IAAAhF,EAAA7B,EAAA6G,GAAAoQ,KAAA,IAAApV,EAAAuL,QAAA,WAAAvL,EAAA7C,EAAA+L,UAAAlJ,EAAAqV,UAAA,IAAA7X,EAAAoH,EAAA5E,EAAAiF,EAAAjF,IAAA7C,GAAA4C,MAAA6E,EAAA,eAAA,GAAA,MAAAK,GAAA,MAAA,gBAAAlI,GAAAwL,KAAAnL,KAAA,WAAAD,EAAAiB,KAAAmK,KAAAxL,MAAAU,EAAAV,EAAAM,MAAA,IAAA,GAAAI,EAAA,GAAAA,EAAA,GAAA,IAAAA,EAAA,GAAA,GAAAE,EAAAF,EAAA,GAAA,IAAAN,EAAAqT,OAAAjI,KAAA,SAAAhL,GAAA,MAAAA,KAAAP,GAAAiI,EAAAsD,KAAA+M,eAAA,UAAA3X,GAAAF,EAAA,KAAAwH,IAAAjI,GAAA4H,IAAAK,EAAA9H,EAAAiB,KAAAwG,EAAA7H,GAAAkI,EAAAzH,EAAAoH,EAAA7H,EAAAkI,IAAAA,IAAAjI,GAAAS,EAAA,GAAA8K,KAAAnK,KAAAX,EAAA,IAAAwH,IAAAxH,EAAA,GAAAF,MAAAgL,MAAAnL,KAAA,WAAA,GAAAJ,GAAAG,EAAAoL,KAAAvL,GAAAsY,eAAA,UAAA3X,EAAAF,GAAAN,EAAAiB,KAAAmK,KAAAxL,EAAAQ,GAAAP,EAAAsY,eAAA,aAAA3X,EAAAF,OAAA,KAAAF,EAAA8Q,UAAA9O,OAAA,EAAA,MAAA,KAAAgL,WAAA,SAAAxN,GAAA,MAAAwL,MAAAnL,KAAA;AAAAD,ACiCA,EDjCAoN,WAAAhC,KAAAxL,QAAAI,EAAAmD,QAAAuI,MAAA,SAAA9L,EAAAC,EAAAO,GAAA,GAAAE,EAAA,OAAAV,IAAAC,GAAAA,GAAA,MAAA,QAAAS,EAAAN,EAAA4C,MAAAhD,EAAAC,GAAAO,KAAAE,GAAAN,EAAAsH,QAAAlH,GAAAE,EAAAN,EAAA4C,MAAAhD,EAAAC,EAAAG,EAAAwQ,UAAApQ,IAAAE,EAAA2K,KAAA7K,IAAAE,OAAA,QAAA8X,QAAA,SAAAxY,EAAAC,GAAAA,EAAAA,GAAA,IAAA,IAAAO,GAAAJ,EAAA0L,MAAA9L,EAAAC,GAAAS,EAAAF,EAAAoI,QAAAhI,EAAAR,EAAAuM,YAAA3M,EAAAC,GAAAmB,EAAA,WAAAhB,EAAAoY,QAAAxY,EAAAC,GAAA,gBAAAS,IAAAA,EAAAF,EAAAoI,SAAAlI,IAAA,OAAAT,GAAAO,EAAA6H,QAAA,oBAAAzH,GAAA0K,KAAA5K,EAAAsB,KAAAhC,EAAAoB,EAAAR,KAAAJ,EAAAgC,QAAA5B,GAAAA,EAAAiM,MAAAC,QAAAH,YAAA,SAAA3M,EAAAC,GAAA,GAAAO,GAAAP,EAAA,YAAA,OAAAG,GAAA4C,MAAAhD,EAAAQ,IAAAJ,EAAA4C,MAAAhD,EAAAQ,GAAAqM,MAAAzM,EAAA2T,UAAA,eAAAzQ,IAAA,WAAAlD,EAAAoN,WAAAxN,EAAAC,EAAA,SAAA,GAAAG,EAAAoN,WAAAxN,EAAAQ,GAAA,UAAAJ,EAAAyO,GAAAtL,QAAAuI,MAAA,SAAA9L,EAAAQ,GAAA,GAAAE,GAAA,CAAA,OAAA,gBAAAV,KAAAQ,EAAAR;AAAAA,ACkCA,EDlCA,KAAAU,KAAA4Q,UAAA9O,OAAA9B,EAAAN,EAAA0L,MAAAN,KAAA,GAAAxL,GAAAQ,IAAAP,EAAAuL,KAAAA,KAAAnL,KAAA,WAAA,GAAAJ,GAAAG,EAAA0L,MAAAN,KAAAxL,EAAAQ,EAAAJ,GAAAuM,YAAAnB,KAAAxL,GAAA,OAAAA,GAAA,eAAAC,EAAA,IAAAG,EAAAoY,QAAAhN,KAAAxL,MAAAwY,QAAA,SAAAxY,GAAA,MAAAwL,MAAAnL,KAAA,WAAAD,EAAAoY,QAAAhN,KAAAxL,MAAAyY,MAAA,SAAAzY,EAAAC,GAAA,MAAAD,GAAAI,EAAAuL,GAAAvL,EAAAuL,GAAA+M,OAAA1Y,IAAAA,EAAAA,EAAAC,EAAAA,GAAA,KAAAuL,KAAAM,MAAA7L,EAAA,SAAAA,EAAAO,GAAA,GAAAE,GAAAiJ,WAAA1J,EAAAD,EAAAQ,GAAA8K,KAAA,WAAAqN,aAAAjY,OAAAkY,WAAA,SAAA5Y,GAAA,MAAAwL,MAAAM,MAAA9L,GAAA,UAAA4K,QAAA,SAAA5K,EAAAQ,GAAA,GAAAE,GAAAE,EAAA,EAAAQ,EAAAhB,EAAA+J,WAAAlH,EAAAuI,KAAAtI,EAAAsI,KAAAhJ,OAAAqF,EAAA,aAAAjH,GAAAQ,EAAAuJ,YAAA1H,GAAAA,IAAA,KAAA,gBAAAjD,KAAAQ,EAAAR,EAAAA,EAAAC,GAAAD,EAAAA,GAAA,KAAAkD,MAAAxC,EAAAN,EAAA4C,MAAAC,EAAAC,GAAAlD,EAAA,gBAAAU,EAAAmM,QAAAjM,IAAAF,EAAAmM,MAAAvJ,IAAAuE;AAAA,ACmCA,MDnCAA,KAAAzG,EAAAwJ,QAAApK,KAAA,IAAAqY,GAAAC,EAAAC,EAAAC,EAAA,YAAAC,EAAA,MAAAC,EAAA,sBAAAC,EAAA,6CAAAC,EAAA,eAAAC,EAAA,8HAAAC,EAAAlZ,EAAAyD,QAAA8R,eAAAvV,GAAAyO,GAAAtL,QAAA8M,KAAA,SAAArQ,EAAAC,GAAA,MAAAG,GAAAqT,OAAAjI,KAAApL,EAAAiQ,KAAArQ,EAAAC,EAAAqR,UAAA9O,OAAA,IAAA+W,WAAA,SAAAvZ,GAAA,MAAAwL,MAAAnL,KAAA,WAAAD,EAAAmZ,WAAA/N,KAAAxL,MAAAwZ,KAAA,SAAAxZ,EAAAC,GAAA,MAAAG,GAAAqT,OAAAjI,KAAApL,EAAAoZ,KAAAxZ,EAAAC,EAAAqR,UAAA9O,OAAA,IAAAiX,WAAA,SAAAzZ,GAAA,MAAAA,GAAAI,EAAAsZ,QAAA1Z,IAAAA,EAAAwL,KAAAnL,KAAA,WAAA,IAAAmL,KAAAxL,GAAAC,QAAAuL,MAAAxL,GAAA,MAAAQ,QAAAmZ,SAAA,SAAA3Z;AAAA,ACoCA,GDpCAC,GAAAO,EAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,CAAA,IAAA9C,EAAA0B,WAAA9B,GAAA,MAAAwL,MAAAnL,KAAA,SAAAJ,GAAAG,EAAAoL,MAAAmO,SAAA3Z,EAAAgC,KAAAwJ,KAAAvL,EAAAuL,KAAAoK,aAAA,IAAA5V,GAAA,gBAAAA,GAAA,IAAAC,EAAAD,EAAAM,MAAAC,GAAAC,EAAA,EAAAE,EAAA8K,KAAAhJ,OAAA9B,EAAAF,EAAAA,IAAA,GAAAI,EAAA4K,KAAAhL,GAAA,IAAAI,EAAAD,SAAA,GAAAC,EAAAgV,WAAA,IAAA3V,EAAAuC,OAAA,CAAA,IAAApB,EAAA,IAAAR,EAAAgV,UAAA,IAAA3S,EAAA,EAAAC,EAAAjD,EAAAuC,OAAAU,EAAAD,EAAAA,KAAA7B,EAAAoN,QAAA,IAAAvO,EAAAgD,GAAA,OAAA7B,GAAAnB,EAAAgD,GAAA,IAAArC,GAAAgV,UAAAxV,EAAA4D,KAAA5C,OAAAR,GAAAgV,UAAA5V,CAAA,OAAAwL,OAAAoO,YAAA,SAAA5Z,GAAA,GAAAQ,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAA2E,CAAA,IAAAzH,EAAA0B,WAAA9B,GAAA,MAAAwL,MAAAnL,KAAA,SAAAJ,GAAAG,EAAAoL,MAAAoO,YAAA5Z,EAAAgC,KAAAwJ,KAAAvL,EAAAuL,KAAAoK,aAAA,IAAA5V,GAAA,gBAAAA,IAAAA,IAAAC,EAAA,IAAAO,GAAAR,GAAA,IAAAM,MAAAC,GAAA2C,EAAA,EAAA2E,EAAA2D,KAAAhJ,OAAAqF,EAAA3E,EAAAA,IAAA,GAAAtC,EAAA4K,KAAAtI,GAAA,IAAAtC,EAAAD,UAAAC,EAAAgV,UAAA,CAAA,IAAAlV,GAAA,IAAAE,EAAAgV,UAAA,KAAA/U,QAAAmY,EAAA;AAAA5X,ACqCA,EDrCA,EAAA6B,EAAAzC,EAAAgC,OAAAS,EAAA7B,EAAAA,IAAA,KAAAV,EAAA8N,QAAA,IAAAhO,EAAAY,GAAA,KAAA,IAAAV,EAAAA,EAAAG,QAAA,IAAAL,EAAAY,GAAA,IAAA,IAAAR,GAAAgV,UAAA5V,EAAAI,EAAA4D,KAAAtD,GAAA,GAAA,MAAA8K,OAAAqO,YAAA,SAAA7Z,EAAAC,GAAA,GAAAO,SAAAR,GAAAU,EAAA,iBAAAT,EAAA,OAAAG,GAAA0B,WAAA9B,GAAAwL,KAAAnL,KAAA,SAAAG,GAAAJ,EAAAoL,MAAAqO,YAAA7Z,EAAAgC,KAAAwJ,KAAAhL,EAAAgL,KAAAoK,UAAA3V,GAAAA,KAAAuL,KAAAnL,KAAA,WAAA,GAAA,WAAAG,EAAA,IAAA,GAAAI,GAAAQ,EAAA,EAAA6B,EAAA7C,EAAAoL,MAAAtI,EAAAjD,EAAA4H,EAAA7H,EAAAM,MAAAC,GAAAK,EAAAiH,EAAAzG,MAAA8B,EAAAxC,EAAAwC,GAAAD,EAAA6W,SAAAlZ,GAAAqC,EAAAC,EAAA,WAAA,eAAAtC,QAAA,cAAAJ,GAAA,YAAAA,KAAAgL,KAAAoK,WAAAxV,EAAA4C,MAAAwI,KAAA,gBAAAA,KAAAoK,WAAApK,KAAAoK,UAAApK,KAAAoK,WAAA5V,KAAA,EAAA,GAAAI,EAAA4C,MAAAwI,KAAA,kBAAA,OAAAsO,SAAA,SAAA9Z,GAAA,IAAA,GAAAC,GAAA,IAAAD,EAAA,IAAAQ,EAAA,EAAAE,EAAA8K,KAAAhJ,OAAA9B,EAAAF,EAAAA,IAAA,GAAA,IAAAgL,KAAAhL,GAAAG,WAAA,IAAA6K,KAAAhL,GAAAoV,UAAA,KAAA/U,QAAAmY,EAAA,KAAAxK,QAAAvO,GAAA,GAAA,OAAA;AAAA,ACsCA,ODtCA,GAAA8Z,IAAA,SAAA/Z,GAAA,GAAAQ,GAAAE,EAAAE,EAAAQ,EAAAoK,KAAA,EAAA,EAAA,GAAA8F,UAAA9O,OAAA,MAAA5B,GAAAR,EAAA0B,WAAA9B,GAAAwL,KAAAnL,KAAA,SAAAK,GAAA,GAAAU,GAAA6B,EAAA7C,EAAAoL,KAAA,KAAAA,KAAA7K,WAAAS,EAAAR,EAAAZ,EAAAgC,KAAAwJ,KAAA9K,EAAAuC,EAAA8W,OAAA/Z,EAAA,MAAAoB,EAAAA,EAAA,GAAA,gBAAAA,GAAAA,GAAA,GAAAhB,EAAAsH,QAAAtG,KAAAA,EAAAhB,EAAAoR,IAAApQ,EAAA,SAAApB,GAAA,MAAA,OAAAA,EAAA,GAAAA,EAAA,MAAAQ,EAAAJ,EAAA4Z,SAAAxO,KAAAtH,OAAA9D,EAAA4Z,SAAAxO,KAAA7H,SAAA5C,eAAAP,GAAA,OAAAA,IAAAA,EAAAyZ,IAAAzO,KAAApK,EAAA,WAAAnB,IAAAuL,KAAAnH,MAAAjD,KAAA,IAAAA,EAAA,MAAAZ,GAAAJ,EAAA4Z,SAAA5Y,EAAA8C,OAAA9D,EAAA4Z,SAAA5Y,EAAAuC,SAAA5C,eAAAP,GAAA,OAAAA,KAAAE,EAAAF,EAAAuQ,IAAA3P,EAAA,YAAAnB,EAAAS,GAAAA,EAAAU,EAAAiD,MAAA,gBAAA3D,GAAAA,EAAAG,QAAAoY,EAAA,IAAA,MAAAvY,EAAA,GAAAA,OAAAN,EAAAmD,QAAAyW,UAAAE,QAAAnJ,IAAA,SAAA/Q,GAAA,GAAAC,GAAAD,EAAAoY,WAAA/T,KAAA,QAAApE,GAAAA,EAAAka,UAAAna,EAAAqE,MAAArE,EAAAyE;ACuCA,GDvCA2V,QAAArJ,IAAA,SAAA/Q,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAQ,EAAApB,EAAAqa,cAAApX,KAAAC,EAAAlD,EAAAsa,QAAAzS,EAAA,eAAA7H,EAAAkE,IAAA,IAAA,EAAA9C,EAAA,MAAA,KAAA,KAAAZ,EAAAqH,EAAAzG,EAAA,EAAAV,EAAAmH,EAAAzG,EAAA,EAAA8B,EAAAV,OAAA9B,EAAAF,EAAAA,IAAA,GAAAI,EAAAsC,EAAA1C,GAAAI,EAAA0D,WAAAlE,EAAAyD,QAAA4S,aAAA7V,EAAA0T,SAAA,OAAA1T,EAAAI,aAAA,gBAAAJ,EAAAe,WAAA2S,WAAAlU,EAAAuD,SAAA/C,EAAAe,WAAA,aAAA,CAAA,GAAA1B,EAAAG,EAAAQ,GAAAmZ,MAAAlS,EAAA,MAAA5H,EAAAgD,GAAAoI,KAAApL,GAAA,MAAA4H,KAAA5E,EAAAT,QAAAU,EAAAV,OAAApC,EAAA8C,EAAA9B,IAAA2Y,MAAA9W,GAAAgX,IAAA,SAAAja,EAAAC,GAAA,GAAAO,GAAAJ,EAAAwQ,UAAA3Q,EAAA,OAAAG,GAAAJ,GAAAyQ,KAAA,UAAApQ,KAAA,WAAAmL,KAAAlH,SAAAlE,EAAA+B,QAAA/B,EAAAoL,MAAAuO,MAAAvZ,IAAA,IAAAA,EAAAgC,SAAAxC,EAAAqa,cAAA,IAAA7Z,KAAA+Z,UAAAlK,KAAA,SAAArQ,EAAAQ,EAAAE,EAAAE,GAAA,GAAAQ,GAAA6B,EAAAC,EAAA2E,EAAA7H,EAAAW,QAAA,IAAAX,GAAA,IAAA6H,GAAA,IAAAA,GAAA,IAAAA,EAAA,MAAAjH,IAAAR,EAAA0B,WAAA1B,EAAAyO,GAAArO,IAAAJ,EAAAJ,GAAAQ,GAAAE,GAAA,mBAAAV,GAAAgB,aAAAZ,EAAAoZ,KAAAxZ,EAAAQ,EAAAE,IAAAwC,EAAA,IAAA2E,IAAAzH,EAAAoa,SAAAxa;AAAAkD,ACwCA,IDxCA1C,EAAAA,EAAAO,cAAAkC,EAAA7C,EAAAqa,UAAAja,KAAA6Y,EAAAnY,KAAAV,GAAAsY,EAAAD,IAAAnY,IAAAT,EAAA,OAAAS,MAAAN,GAAAmZ,WAAAvZ,EAAAQ,GAAAyC,GAAA,OAAAA,IAAAC,IAAA9B,EAAA6B,EAAAgX,IAAAja,EAAAU,EAAAF,MAAAP,EAAAmB,GAAApB,EAAAiV,aAAAzU,EAAA,GAAAE,GAAAA,GAAAuC,GAAA,OAAAA,IAAAC,GAAA,QAAA9B,EAAA6B,EAAA8N,IAAA/Q,EAAAQ,IAAAY,GAAAA,EAAApB,EAAAgB,aAAAR,GAAA,OAAAY,EAAAnB,EAAAmB,KAAAmY,WAAA,SAAAvZ,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAA,CAAA,IAAAhD,GAAA,IAAAD,EAAAW,SAAA,IAAAD,EAAAT,EAAAK,MAAAC,GAAA0C,EAAAvC,EAAA8B,OAAAS,IAAArC,EAAAF,EAAAuC,GAAArC,IAAAJ,EAAAJ,EAAAsZ,QAAA9Y,IAAAA,EAAAQ,EAAAiY,EAAAnY,KAAAN,GAAAQ,GAAAhB,EAAAiQ,KAAArQ,EAAAY,EAAA,IAAAZ,EAAA0E,gBAAA4U,EAAA1Y,EAAAJ,GAAAY,GAAAZ,IAAAR,KAAAA,EAAAQ,IAAA,KAAAia,WAAAvW,MAAA+V,IAAA,SAAAja,EAAAC,GAAA,GAAAiZ,EAAAhY,KAAAlB,EAAA2D,WAAA3D,EAAA2B,WAAAvB,EAAAiJ,MAAA,sCAAA,KAAAjJ,EAAAyD,QAAA8S,YAAA,UAAA1W,GAAAG,EAAAuD,SAAA3D,EAAA,SAAA,CAAA,GAAAQ,GAAAR,EAAAqE,KAAA,OAAArE,GAAAiV,aAAA,OAAAhV;AAAAO,ACyCA,IDzCAR,EAAAqE,MAAA7D,GAAAP,KAAAoE,OAAA0M,IAAA,SAAA/Q,EAAAC,GAAA,MAAA4Y,IAAAzY,EAAAuD,SAAA3D,EAAA,UAAA6Y,EAAA9H,IAAA/Q,EAAAC,GAAAA,IAAAD,GAAAA,EAAAqE,MAAA,MAAA4V,IAAA,SAAAja,EAAAC,EAAAO,GAAA,MAAAqY,IAAAzY,EAAAuD,SAAA3D,EAAA,UAAA6Y,EAAAoB,IAAAja,EAAAC,EAAAO,QAAAR,EAAAqE,MAAApE,MAAAyZ,SAAAgB,SAAA,WAAAC,SAAA,WAAAC,MAAA,UAAAC,QAAA,YAAAC,UAAA,YAAAC,YAAA,cAAAC,YAAA,cAAAC,QAAA,UAAAC,QAAA,UAAAC,OAAA,SAAAC,YAAA,cAAAC,gBAAA,mBAAA7B,KAAA,SAAAxZ,EAAAQ,EAAAE,GAAA,GAAAE,GAAAQ,EAAA6B,EAAAC,EAAAlD,EAAAW,QAAA,IAAAX,GAAA,IAAAkD,GAAA,IAAAA,GAAA,IAAAA,EAAA,MAAAD,GAAA,IAAAC,IAAA9C,EAAAoa,SAAAxa,GAAAiD,IAAAzC,EAAAJ,EAAAsZ,QAAAlZ,IAAAA,EAAAY,EAAAhB,EAAAkb,UAAA9a,IAAAE,IAAAT,EAAAmB,GAAA,OAAAA,KAAAR,EAAAQ,EAAA6Y,IAAAja,EAAAU,EAAAF,MAAAP,EAAAW,EAAAZ,EAAAQ,GAAAE,EAAAU,GAAA,OAAAA,IAAA,QAAAR,EAAAQ,EAAA2P,IAAA/Q,EAAAQ,IAAAI,EAAAZ,EAAAQ;AC0CA,ED1CA8a,WAAAC,UAAAxK,IAAA,SAAA/Q,GAAA,GAAAQ,GAAAR,EAAAwb,iBAAA,WAAA,OAAAhb,IAAAA,EAAA2Z,UAAAsB,SAAAjb,EAAA6D,MAAA,IAAA8U,EAAAjY,KAAAlB,EAAA2D,WAAAyV,EAAAlY,KAAAlB,EAAA2D,WAAA3D,EAAA0b,KAAA,EAAAzb,OAAA6Y,GAAA/H,IAAA,SAAA/Q,EAAAQ,GAAA,GAAAE,GAAAE,EAAAR,EAAAoZ,KAAAxZ,EAAAQ,EAAA,OAAAI,MAAA,GAAA,iBAAAA,KAAAF,EAAAV,EAAAwb,iBAAAhb,KAAAE,EAAAib,aAAA,EAAAnb,EAAAO,cAAAd,GAAAga,IAAA,SAAAja,EAAAC,EAAAO,GAAA,GAAAE,EAAA,OAAAT,MAAA,EAAAG,EAAAmZ,WAAAvZ,EAAAQ,IAAAE,EAAAN,EAAAsZ,QAAAlZ,IAAAA,EAAAE,IAAAV,KAAAA,EAAAU,IAAA,GAAAV,EAAAiV,aAAAzU,EAAAA,EAAAO,gBAAAP,IAAA8Y,IAAAP,GAAAV,MAAA,EAAA7H,IAAA,EAAAoL,QAAA,GAAA/C,EAAAzY,EAAA4Z,SAAA6B,QAAA9K,IAAA,SAAA/Q,EAAAQ,GAAA,GAAAE,EAAA,OAAAA,GAAAV,EAAAwb,iBAAAhb,GAAAE,IAAAqY,EAAAvY,GAAA,KAAAE,EAAA2D,MAAA3D,EAAAyZ,WAAAzZ,EAAA2D,MAAApE,GAAAga,IAAA,SAAAja,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAAwb,iBAAAhb,EAAA,OAAAE,KAAAA,EAAAE,EAAAkb,gBAAAtb;AAAAR,AC2CA,ED3CA+b,iBAAArb,IAAAA,EAAA2D,MAAApE,EAAA,KAAAG,EAAAC,MAAA,QAAA,UAAA,SAAAL,EAAAC,GAAAG,EAAAqa,UAAAxa,GAAAG,EAAAmD,OAAAnD,EAAAqa,UAAAxa,IAAAga,IAAA,SAAAja,EAAAQ,GAAA,MAAA,KAAAA,GAAAR,EAAAiV,aAAAhV,EAAA,QAAAO,GAAA,YAAAJ,EAAAqa,UAAAY,iBAAAtK,IAAA8H,EAAA9H,IAAAkJ,IAAA,SAAAja,EAAAC,EAAAO,GAAA,KAAAP,IAAAA,EAAA,SAAA4Y,EAAAoB,IAAAja,EAAAC,EAAAO,MAAAJ,EAAAyD,QAAA0R,gBAAAnV,EAAAC,MAAA,OAAA,MAAA,QAAA,UAAA,SAAAL,EAAAQ,GAAAJ,EAAAqa,UAAAja,GAAAJ,EAAAmD,OAAAnD,EAAAqa,UAAAja,IAAAuQ,IAAA,SAAA/Q,GAAA,GAAAU,GAAAV,EAAAgB,aAAAR,EAAA,EAAA,OAAA,QAAAE,EAAAT,EAAAS,OAAAN,EAAAyD,QAAA2B,QAAApF,EAAAqa,UAAAjV,OAAAuL,IAAA,SAAA/Q,GAAA,MAAAA,GAAAwF,MAAA0P,QAAAnU,eAAAd,GAAAga,IAAA,SAAAja,EAAAC,GAAA,MAAAD,GAAAwF,MAAA0P,QAAA,GAAAjV,KAAAG,EAAAyD,QAAA6R,cAAAtV,EAAAkb,UAAAhX,SAAAlE,EAAAmD,OAAAnD,EAAAkb,UAAAhX;AAAAyM,AC4CA,ID5CA,SAAA/Q,GAAA,GAAAC,GAAAD,EAAA2B,UAAA,OAAA1B,KAAAA,EAAAoa,cAAApa,EAAA0B,YAAA1B,EAAA0B,WAAA0Y,eAAA,SAAAja,EAAAyD,QAAAgS,UAAAzV,EAAAsZ,QAAA7D,QAAA,YAAAzV,EAAAyD,QAAA4R,SAAArV,EAAAC,MAAA,QAAA,YAAA,WAAAD,EAAA4Z,SAAAxO,OAAAuF,IAAA,SAAA/Q,GAAA,MAAA,QAAAA,EAAAgB,aAAA,SAAA,KAAAhB,EAAAqE,UAAAjE,EAAAC,MAAA,QAAA,YAAA,WAAAD,EAAA4Z,SAAAxO,MAAApL,EAAAmD,OAAAnD,EAAA4Z,SAAAxO,OAAAyO,IAAA,SAAAja,EAAAC,GAAA,MAAAG,GAAAsH,QAAAzH,GAAAD,EAAAoE,QAAAhE,EAAA+B,QAAA/B,EAAAJ,GAAA+Z,MAAA9Z,IAAA,EAAA,WAAA,IAAA+b,GAAA,+BAAAC,EAAA,yBAAAC,EAAA,0BAAAC,EAAA,OAAAC,EAAA,+BAAA9N,EAAA,kCAAA+N,EAAA,SAAArc,GAAA,MAAAI,GAAAiD,MAAAiZ,QAAAC,MAAAvc,EAAAA,EAAAa,QAAAqb,EAAA;AC6CA,CD7CA9b,GAAAiD,OAAAC,IAAA,SAAAtD,EAAAQ,EAAAE,EAAAE,EAAAQ,GAAA,GAAA6B,GAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAAoE,EAAAC,EAAAC,EAAAC,EAAAqC,CAAA,IAAA,IAAA/O,EAAAW,UAAA,IAAAX,EAAAW,UAAAH,GAAAE,IAAAuC,EAAA7C,EAAA4C,MAAAhD,IAAA,CAAA,IAAAU,EAAA8b,UAAA/P,EAAA/L,EAAAA,EAAA+L,EAAA+P,QAAApb,EAAAqL,EAAAiE,UAAAhQ,EAAA6S,OAAA7S,EAAA6S,KAAAnT,EAAAmT,QAAA1L,EAAA5E,EAAAE,OAAA0E,IAAA5E,EAAAE,OAAA0E,MAAA3E,EAAAD,EAAAG,OAAAF,IAAAD,EAAAG,OAAAF,EAAA,SAAAlD,GAAA,MAAA,mBAAAI,IAAAJ,GAAAI,EAAAiD,MAAAoZ,YAAAzc,EAAAkE,KAAAjE,EAAAG,EAAAiD,MAAAqZ,SAAArL,MAAAnO,EAAAmH,KAAAiH,YAAApO,EAAAmH,KAAArK,GAAAQ,EAAAJ,EAAA4D,KAAAqY,EAAA7b,IAAAF,MAAA,KAAA2H,EAAA,EAAAA,EAAAzH,EAAAgC,OAAAyF,IAAAC,EAAA+T,EAAAnW,KAAAtF,EAAAyH,QAAAE,EAAAD,EAAA,GAAAqE,GAAArE,EAAA,IAAA,IAAA5H,MAAA,KAAAmR,OAAA1C,EAAA3O,EAAAiD,MAAAiZ,QAAAnU,OAAAA,GAAA/G,EAAA2N,EAAA4N,aAAA5N,EAAA6N,WAAAzU,EAAA4G,EAAA3O,EAAAiD,MAAAiZ,QAAAnU,OAAAqE,EAAApM,EAAAmD,QAAAW,KAAAiE,EAAA0U,SAAA3U,EAAA,GAAA7G,KAAAT,EAAA4b,QAAA9b,EAAA6S,KAAA7S,EAAA6S,KAAA7C,SAAAtP,EAAA0b,UAAAvQ,EAAAgF,KAAA,MAAA9E,GAAAC,EAAA7E,EAAAM,GAAAuE,IAAAA,EAAA7E,EAAAM;AAAAuE,AC8CA,ED9CAqQ,cAAA,EAAAhO,EAAAiO,OAAAjO,EAAAiO,MAAAhb,KAAAhC,EAAAY,EAAA2L,EAAArJ,MAAA,IAAAlD,EAAA2P,iBAAA3P,EAAA2P,iBAAAxH,EAAAjF,GAAA,GAAAlD,EAAA4T,aAAA5T,EAAA4T,YAAA,KAAAzL,EAAAjF,KAAA6L,EAAAzL,MAAAyL,EAAAzL,IAAAtB,KAAAhC,EAAAwM,GAAAA,EAAAgQ,QAAAjJ,OAAA/G,EAAAgQ,QAAAjJ,KAAA7S,EAAA6S,OAAAnS,EAAAsL,EAAAvD,OAAAuD,EAAAqQ,gBAAA,EAAAvQ,GAAAE,EAAArB,KAAAmB,GAAApM,EAAAiD,MAAA4Z,OAAA9U,IAAA,CAAAnI,GAAA,OAAAid,UAAApW,OAAA,SAAA7G,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,GAAAQ,GAAA6B,EAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAAoE,EAAAC,EAAAC,EAAAC,EAAAqC,EAAA3O,EAAA2C,QAAA/C,IAAAI,EAAA4C,MAAAhD,EAAA,IAAA+O,IAAAxC,EAAAwC,EAAA5L,QAAA,CAAA,IAAAlD,EAAAG,EAAA4D,KAAAqY,EAAApc,GAAA,KAAAK,MAAA,KAAAc,EAAA,EAAAA,EAAAnB,EAAAuC,OAAApB,IAAA,GAAA6B,EAAAgZ,EAAAnW,KAAA7F,EAAAmB,QAAA8B,EAAA2E,EAAA5E,EAAA,GAAAgF,EAAAhF,EAAA,GAAAC,EAAA,CAAA,IAAAsJ,EAAApM,EAAAiD,MAAAiZ,QAAApZ,OAAAA,GAAAxC,EAAA8L,EAAAmQ,aAAAnQ,EAAAoQ,WAAA1Z,EAAAuJ,EAAAF,EAAArJ,OAAAgF,EAAAuE,EAAAjK,OAAAyF,EAAAA,EAAA,GAAAiV,QAAA,UAAAjV,EAAA3H,MAAA,KAAAmR,OAAAF,KAAA,iBAAA,WAAA,KAAApJ,EAAA,EAAAA,EAAAsE,EAAAjK,OAAA2F,IAAAuE,EAAAD,EAAAtE;AC+CA,CD/CAvH,GAAAiH,IAAA6E,EAAAmQ,aAAArc,GAAAA,EAAA+S,OAAA7G,EAAA6G,SAAAtL,GAAAA,EAAA/G,KAAAwL,EAAAoQ,eAAApc,GAAAA,IAAAgM,EAAAgE,UAAA,OAAAhQ,GAAAgM,EAAAgE,YAAAjE,EAAAtD,OAAAhB,IAAA,GAAAuE,EAAAgE,UAAAjE,EAAAsQ,gBAAAvQ,EAAA3F,QAAA2F,EAAA3F,OAAA7E,KAAAhC,EAAA0M,GAAA,KAAAD,EAAAjK,QAAA0F,IAAAuE,EAAAjK,WAAAgK,EAAA2Q,UAAA3Q,EAAA2Q,SAAAnb,KAAAhC,EAAAiI,EAAA8G,EAAA3L,WAAA,IAAAhD,EAAAgd,YAAApd,EAAAkD,EAAA6L,EAAA3L,cAAAmJ,GAAArJ,QAAA,KAAAA,IAAAqJ,GAAAnM,EAAAiD,MAAAwD,OAAA7G,EAAAkD,EAAAjD,EAAAmB,GAAAZ,EAAAE,GAAA,EAAAN,GAAAmB,cAAAgL,WAAAwC,GAAA3L,OAAAhD,EAAAoN,WAAAxN,EAAA,UAAA,MAAAqd,aAAAC,SAAA,EAAAC,SAAA,EAAAC,YAAA,GAAA1L,QAAA,SAAAtR,EAAAE,EAAAU,EAAA6B,GAAA,IAAA7B,GAAA,IAAAA,EAAAT,UAAA,IAAAS,EAAAT,SAAA,CAAA,GAAAuC,GAAA2E,EAAAI,EAAAC,EAAAC,EAAAoE,EAAAC,EAAAC,EAAAC,EAAAqC,EAAAxO,EAAAC,EAAA0D,MAAA1D,EAAAwO,IAAA,IAAAV,EAAApN,KAAAX,EAAAH,EAAAiD,MAAAoZ,WAAA,MAAA,IAAAlc,EAAAiO,QAAA,MAAA,IAAAjO,EAAAA,EAAA2E,MAAA,EAAA,IAAA2C,GAAA;AAAAtH,ACgDA,EDhDAiO,QAAA,MAAA,IAAAQ,EAAAzO,EAAAD,MAAA,KAAAC,EAAAyO,EAAApG,QAAAoG,EAAAyC,UAAArQ,GAAAhB,EAAAiD,MAAAga,YAAA9c,MAAAH,EAAAiD,MAAA4Z,OAAA1c,GAAA,MAAA,IAAAC,EAAA,gBAAAA,GAAAA,EAAAJ,EAAAuE,SAAAnE,EAAA,GAAAJ,GAAAqd,MAAAld,EAAAC,GAAA,GAAAJ,GAAAqd,MAAAld,GAAAC,EAAA0D,KAAA3D,EAAAC,EAAAkd,WAAA,EAAAld,EAAAmd,UAAA9V,EAAArH,EAAAsc,UAAA9N,EAAAuC,KAAA,KAAA/Q,EAAAod,aAAApd,EAAAsc,UAAA,GAAAI,QAAA,UAAAlO,EAAAuC,KAAA,iBAAA,WAAA,KAAAhF,EAAAhM,EAAAiO,QAAA,KAAA,EAAA,KAAAjO,EAAA,IAAAa,EAAA,CAAA8B,EAAA9C,EAAAqX,KAAA,KAAAxP,IAAA/E,GAAAA,EAAA+E,GAAA9E,QAAAD,EAAA+E,GAAA9E,OAAA5C,IAAAH,EAAAiD,MAAAyO,QAAAtR,EAAAE,EAAAwC,EAAA+E,GAAA7E,OAAAiH,MAAA,EAAA,QAAA,GAAA7J,EAAAqd,OAAA5d,EAAAO,EAAAsd,SAAAtd,EAAAsd,OAAA1c,GAAAV,EAAA,MAAAA,EAAAN,EAAAwQ,UAAAlQ,MAAAA,EAAA2H,QAAA7H,GAAAgM,EAAApM,EAAAiD,MAAAiZ,QAAA/b,OAAAiM,EAAAsF,SAAAtF,EAAAsF,QAAAT,MAAAjQ,EAAAV,MAAA,EAAA,MAAA,IAAAgM,IAAAtL,EAAAoL,EAAAoQ,UAAArc,KAAA0C,IAAAuJ,EAAAuR,WAAA3d,EAAA4N,SAAA5M,GAAA;AAAA,ACiDA,IDjDA2N,EAAAvC,EAAAmQ,cAAApc,EAAA2H,EAAAoG,EAAApN,KAAA6N,EAAAxO,GAAAa,EAAAA,EAAAO,WAAAwG,EAAA/G,EAAA8G,EAAAA,EAAAA,EAAAvG,WAAA+K,EAAArB,MAAAnD,EAAA6G,IAAA5G,EAAAD,CAAAC,MAAA/G,EAAAyB,eAAAjC,IAAA8L,EAAArB,MAAAlD,EAAA8F,aAAA9F,EAAA+F,cAAAlO,EAAA+O,IAAA,IAAA9G,EAAA,EAAAA,EAAAyE,EAAAlK,SAAAhC,EAAAwd,uBAAA/V,IAAAC,EAAAwE,EAAAzE,GAAA,GAAAzH,EAAA0D,KAAAwI,EAAAzE,GAAA,GAAAwE,GAAArM,EAAA4C,MAAAkF,EAAA,eAAA1H,EAAA0D,OAAA9D,EAAA4C,MAAAkF,EAAA,UAAAuE,GAAAA,EAAA4E,MAAAnJ,EAAAxH,GAAA+L,EAAAF,GAAArE,EAAAqE,GAAAE,GAAArM,EAAA6X,WAAA/P,IAAAuE,EAAA4E,MAAAnJ,EAAAxH,MAAA,GAAAF,EAAAyd,gBAAA,OAAAzd,GAAA0D,KAAA3D,GAAA0C,IAAAzC,EAAA0d,wBAAA1R,EAAA2R,UAAA3R,EAAA2R,SAAA9M,MAAAjQ,EAAAyB,cAAAnC,MAAA,KAAA,UAAAH,IAAAH,EAAAuD,SAAAvC,EAAA,OAAAhB,EAAA6X,WAAA7W,IAAAmL,GAAAnL,EAAAb,KAAA,UAAAA,GAAA,SAAAA,GAAA,IAAAC,EAAAsd,OAAAzX,eAAAjG,EAAA4N,SAAA5M,KAAA+G,EAAA/G,EAAAmL,GAAApE,IAAA/G,EAAAmL,GAAA,MAAAnM,EAAAiD,MAAAoZ,UAAAlc,EAAAa,EAAAb,KAAAH,EAAAiD,MAAAoZ,UAAAxc;AAAAkI,ACkDA,IDlDA/G,EAAAmL,GAAApE,IAAA3H,EAAAqd,SAAAnB,SAAA,SAAAlc,GAAAA,EAAAJ,EAAAiD,MAAA+a,IAAA5d,GAAAR,EAAAqD,MAAA,IAAA3C,GAAAE,EAAAQ,EAAA6B,EAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAAoE,EAAAE,GAAArM,EAAA4C,MAAAwI,KAAA,eAAAhL,EAAA0D,UAAAwI,EAAAD,EAAAsQ,cAAAhO,KAAA7J,MAAAlD,KAAAsP,WAAA/Q,GAAAC,EAAAmd,YAAAnd,EAAAsc,UAAA9N,EAAA5O,EAAAiD,MAAAiZ,QAAA9b,EAAA0D,UAAA+K,IAAA,IAAAF,EAAA,GAAAvO,EAAAA,EAAA6d,eAAA7S,MAAAwD,EAAAsP,aAAAtP,EAAAsP,YAAAtc,KAAAwJ,KAAAhL,MAAA,EAAA,CAAA,GAAAkM,KAAAlM,EAAAqb,QAAA,UAAArb,EAAA0D,MAAA,IAAAjB,EAAA7C,EAAAoL,MAAAvI,EAAAiN,QAAA1E,KAAApK,EAAAZ,EAAAsd,OAAA1c,GAAAoK,KAAApK,EAAAA,EAAAO,YAAA6J,KAAA,GAAApK,EAAAkT,YAAA,GAAA,UAAA9T,EAAA0D,KAAA,CAAA,IAAA2D,KAAAK,KAAAjF,EAAA,GAAA7B,EAAAV,EAAA,EAAAgM,EAAAhM,EAAAA,IAAAyH,EAAAsE,EAAA/L,GAAA6L,EAAApE,EAAAuI,SAAA7I,EAAA0E,KAAAtM,IAAA4H,EAAA0E,GAAAtJ,EAAAsb,GAAAhS,IAAA1E,EAAA0E,IAAArE,EAAAmD,KAAAlD,EAAAD,GAAA1F,QAAAyM,EAAA5D,MAAAhB,KAAAjJ,EAAAod,QAAAtW,IAAA,IAAAuE,EAAAjK,OAAAkK,GAAAuC,EAAA5D,MAAAhB,KAAAmB,KAAAgT,QAAA/R,EAAAvH,MAAAwH,KAAAhM,EAAA,EAAAA,EAAAuO,EAAAzM,SAAAhC,EAAAwd,uBAAAtd,IAAA,IAAAuH,EAAAgH,EAAAvO;AAAAF,ACmDA,EDnDAie,cAAAxW,EAAAoC,KAAAzJ,EAAA,EAAAA,EAAAqH,EAAAuW,QAAAhc,SAAAhC,EAAAke,gCAAA9d,IAAAuH,EAAAF,EAAAuW,QAAA5d,IAAAL,IAAAC,EAAAsc,YAAA3U,EAAA2U,WAAAtc,EAAAod,cAAApd,EAAAod,aAAA1c,KAAAiH,EAAA2U,cAAAtc,EAAAa,KAAA8G,EAAA9G,KAAAb,EAAAme,UAAAxW,EAAAjF,IAAA9C,EAAAiD,MAAAiZ,QAAAnU,EAAA0U,eAAAzZ,QAAA+E,EAAAqU,SAAAnL,MAAApJ,EAAAoC,KAAA0E,GAAA7L,IAAAjD,IAAAO,EAAAqd,OAAA3a,EAAAA,KAAA,IAAA1C,EAAAyd,iBAAAzd,EAAAoe,oBAAA,OAAA5P,GAAA6P,cAAA7P,EAAA6P,aAAA7c,KAAAwJ,KAAAhL,GAAAA,EAAAqd,SAAAhT,MAAA,mKAAAvK,MAAA,KAAAwe,YAAAC,UAAAlU,MAAA,4BAAAvK,MAAA,KAAA4B,OAAA,SAAAlC,EAAAC;AAAA,ACoDA,MDpDA,OAAAD,EAAAgf,QAAAhf,EAAAgf,MAAA,MAAA/e,EAAAgf,SAAAhf,EAAAgf,SAAAhf,EAAAif,SAAAlf,IAAAmf,YAAAtU,MAAA,mGAAAvK,MAAA,KAAA4B,OAAA,SAAAlC,EAAAQ,GAAA,GAAAE,GAAAU,EAAA6B,EAAAC,EAAA1C,EAAAqb,OAAAhU,EAAArH,EAAA4e,WAAA,OAAA,OAAApf,EAAAqf,OAAA,MAAA7e,EAAA8e,UAAA5e,EAAAV,EAAA8d,OAAAjb,eAAAjC,EAAAQ,EAAAV,EAAAwS,gBAAAjQ,EAAAvC,EAAAkG,KAAA5G,EAAAqf,MAAA7e,EAAA8e,SAAAle,GAAAA,EAAAme,YAAAtc,GAAAA,EAAAsc,YAAA,IAAAne,GAAAA,EAAAoe,YAAAvc,GAAAA,EAAAuc,YAAA,GAAAxf,EAAAyf,MAAAjf,EAAAkf,SAAAte,GAAAA,EAAAue,WAAA1c,GAAAA,EAAA0c,WAAA,IAAAve,GAAAA,EAAAwe,WAAA3c,GAAAA,EAAA2c,WAAA,KAAA5f,EAAA6f,eAAAhY,IAAA7H,EAAA6f,cAAAhY,IAAA7H,EAAA8d,OAAAtd,EAAAsf,UAAAjY,IAAA7H,EAAAgf,OAAA9b,IAAAjD,IAAAD,EAAAgf,MAAA,EAAA9b,EAAA,EAAA,EAAAA,EAAA,EAAA,EAAAA,EAAA,EAAA,GAAAlD,IAAAoe,IAAA,SAAApe;AAAA,ACqDA,GDrDAA,EAAAI,EAAAuE,SAAA,MAAA3E,EAAA,IAAAC,GAAAO,EAAAE,EAAAV,EAAAoB,EAAAhB,EAAAiD,MAAAyb,SAAA9e,EAAAkE,UAAAjB,EAAA7B,EAAAyJ,MAAAW,KAAAX,MAAAb,OAAA5I,EAAAyJ,OAAAW,KAAAX,KAAA,KAAA7K,EAAAI,EAAAqd,MAAA/c,GAAAT,EAAAgD,EAAAT,OAAAvC,GAAAO,EAAAyC,IAAAhD,GAAAD,EAAAQ,GAAAE,EAAAF,EAAA,OAAAR,GAAA8d,SAAA9d,EAAA8d,OAAApd,EAAAqf,YAAAnf,GAAA,IAAAZ,EAAA8d,OAAAnd,WAAAX,EAAA8d,OAAA9d,EAAA8d,OAAAnc,YAAA3B,EAAAggB,UAAAhgB,EAAAggB,QAAA5e,EAAAc,OAAAd,EAAAc,OAAAlC,EAAAU,GAAAV,GAAAsc,SAAAzM,OAAAmN,MAAA5c,EAAA6f,WAAAC,MAAAnC,UAAA,GAAAoC,OAAAxD,aAAA,WAAAyD,MAAAzD,aAAA,YAAA0D,cAAArD,MAAA,SAAAhd,EAAAC,EAAAO,GAAAJ,EAAA4N,SAAAxC,QAAAA,KAAA8U,eAAA9f,IAAA2c,SAAA,SAAAnd,EAAAC,GAAAuL,KAAA8U,iBAAArgB,IAAAuL,KAAA8U,eAAA,SAAAC,SAAA,SAAAvgB,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAR,EAAAmD,OAAA,GAAAnD,GAAAqd,MAAAjd,GAAA0D,KAAAlE,EAAAwgB,aAAA,EAAAC;ACsDA,EDtDA/f,GAAAN,EAAAiD,MAAAyO,QAAAlR,EAAA,KAAAX,GAAAG,EAAAiD,MAAAqZ,SAAA1a,KAAA/B,EAAAW,GAAAA,EAAAsd,sBAAA1d,EAAAyd,mBAAA7d,EAAAiD,MAAAD,OAAAhD,EAAAiD,MAAAqZ,SAAAtc,EAAAgd,YAAAxc,EAAAgP,oBAAA,SAAA5P,EAAAC,EAAAO,GAAAR,EAAA4P,qBAAA5P,EAAA4P,oBAAA3P,EAAAO,GAAA,IAAA,SAAAR,EAAAC,EAAAO,GAAA,GAAAE,GAAA,KAAAT,CAAAD,GAAA+P,cAAA,mBAAA/P,GAAAU,KAAAV,EAAAU,GAAA,MAAAV,EAAA+P,YAAArP,EAAAF,KAAAJ,EAAAqd,MAAA,SAAAzd,EAAAC,GAAA,MAAAuL,gBAAApL,GAAAqd,OAAAzd,GAAAA,EAAAkE,MAAAsH,KAAAiV,cAAAzgB,EAAAwL,KAAAtH,KAAAlE,EAAAkE,KAAAsH,KAAA0S,mBAAAle,EAAA0gB,kBAAA1gB,EAAA2gB,eAAA,GAAA3gB,EAAA4gB,mBAAA5gB,EAAA4gB,oBAAAnf,GAAAD,IAAAgK,KAAAtH,KAAAlE,EAAAC,GAAAG,EAAAmD,OAAAiI,KAAAvL,GAAAuL,KAAAqV,UAAA7gB,GAAAA,EAAA6gB,WAAAzgB,EAAAyJ,MAAA2B,KAAApL,EAAAuE,UAAA,EAAA3E,QAAA,GAAAI,GAAAqd,MAAAzd,EAAAC;ACuDA,EDvDAG,EAAAqd,MAAA9P,WAAAsQ,eAAA,WAAAzS,KAAA0S,mBAAAzc,EAAA,IAAAzB,GAAAwL,KAAAiV,aAAAzgB,KAAAA,EAAAie,eAAAje,EAAAie,iBAAAje,EAAA2gB,aAAA,IAAA/B,gBAAA,WAAApT,KAAAwS,qBAAAvc,EAAA,IAAAzB,GAAAwL,KAAAiV,aAAAzgB,KAAAA,EAAA4e,iBAAA5e,EAAA4e,kBAAA5e,EAAA8gB,cAAA,IAAAC,yBAAA,WAAAvV,KAAAkT,8BAAAjd,GAAA+J,KAAAoT,mBAAAV,mBAAA1c,GAAAwc,qBAAAxc,GAAAkd,8BAAAld,IAAApB,EAAAC,MAAA2gB,WAAA,YAAAC,WAAA,YAAA,SAAAjhB,EAAAC,GAAAG,EAAAiD,MAAAiZ,QAAAtc,IAAA2c,aAAA1c,EAAA2c,SAAA3c,EAAAmD,OAAA,SAAApD,GAAA,GAAAQ,GAAAE,EAAA8K,KAAA5K,EAAAZ,EAAA6f,cAAAze,EAAApB,EAAA2e,SAAAvd,GAAAsP;AAAA,ACwDA,QDxDA9P,GAAAA,IAAAF,IAAAN,EAAAkF,SAAA5E,EAAAE,MAAAZ,EAAAkE,KAAA9C,EAAAyb,SAAArc,EAAAY,EAAAob,QAAAnL,MAAA7F,KAAA8F,WAAAtR,EAAAkE,KAAAjE,GAAAO,MAAAJ,EAAAyD,QAAAoS,gBAAA7V,EAAAiD,MAAAiZ,QAAAvF,QAAAiG,MAAA,WAAA,MAAA5c,GAAAuD,SAAA6H,KAAA,SAAA,MAAApL,GAAAiD,MAAAC,IAAAkI,KAAA,iCAAA,SAAAxL,GAAA,GAAAQ,GAAAR,EAAA8d,OAAApd,EAAAN,EAAAuD,SAAAnD,EAAA,UAAAJ,EAAAuD,SAAAnD,EAAA,UAAAA,EAAA0gB,KAAAjhB,CAAAS,KAAAN,EAAA4C,MAAAtC,EAAA,sBAAAN,EAAAiD,MAAAC,IAAA5C,EAAA,iBAAA,SAAAV,GAAAA,EAAAmhB,gBAAA,IAAA/gB,EAAA4C,MAAAtC,EAAA,oBAAA,OAAAme,aAAA,SAAA7e,GAAAA,EAAAmhB,uBAAAnhB,GAAAmhB,eAAA3V,KAAA7J,aAAA3B,EAAA0d,WAAAtd,EAAAiD,MAAAkd,SAAA,SAAA/U,KAAA7J,WAAA3B,GAAA,KAAAmd,SAAA,WAAA,MAAA/c,GAAAuD,SAAA6H,KAAA,SAAA,MAAApL,GAAAiD,MAAAwD,OAAA2E,KAAA;ACyDA,IDzDApL,EAAAyD,QAAAqS,gBAAA9V,EAAAiD,MAAAiZ,QAAAtF,QAAAgG,MAAA,WAAA,MAAAhB,GAAA9a,KAAAsK,KAAA7H,YAAA,aAAA6H,KAAAtH,MAAA,UAAAsH,KAAAtH,QAAA9D,EAAAiD,MAAAC,IAAAkI,KAAA,yBAAA,SAAAxL,GAAA,YAAAA,EAAAygB,cAAAW,eAAA5V,KAAA6V,eAAA,KAAAjhB,EAAAiD,MAAAC,IAAAkI,KAAA,gBAAA,SAAAxL,GAAAwL,KAAA6V,gBAAArhB,EAAA0d,YAAAlS,KAAA6V,eAAA,GAAAjhB,EAAAiD,MAAAkd,SAAA,SAAA/U,KAAAxL,GAAA,OAAA,OAAAI,GAAAiD,MAAAC,IAAAkI,KAAA,yBAAA,SAAAxL,GAAA,GAAAC,GAAAD,EAAA8d,MAAA9B,GAAA9a,KAAAjB,EAAA0D,YAAAvD,EAAA4C,MAAA/C,EAAA,sBAAAG,EAAAiD,MAAAC,IAAArD,EAAA,iBAAA,SAAAD,GAAAwL,KAAA7J,aAAA3B,EAAAwgB,cAAAxgB,EAAA0d,WAAAtd,EAAAiD,MAAAkd,SAAA,SAAA/U,KAAA7J,WAAA3B,GAAA;AC0DA,GD1DAI,EAAA4C,MAAA/C,EAAA,oBAAA,OAAAmD,OAAA,SAAApD,GAAA,GAAAC,GAAAD,EAAA8d,MAAA,OAAAtS,QAAAvL,GAAAD,EAAAwgB,aAAAxgB,EAAA0d,WAAA,UAAAzd,EAAAiE,MAAA,aAAAjE,EAAAiE,KAAAlE,EAAA2e,UAAAnC,QAAAnL,MAAA7F,KAAA8F,WAAA,QAAA6L,SAAA,WAAA,MAAA/c,GAAAiD,MAAAwD,OAAA2E,KAAA,YAAAwQ,EAAA9a,KAAAsK,KAAA7H,aAAAvD,EAAAyD,QAAAsS,gBAAA/V,EAAAC,MAAA8f,MAAA,UAAAC,KAAA,YAAA,SAAApgB,EAAAC,GAAA,GAAAO,GAAA,EAAAE,EAAA,SAAAV,GAAAI,EAAAiD,MAAAkd,SAAAtgB,EAAAD,EAAA8d,OAAA1d,EAAAiD,MAAA+a,IAAApe,IAAA,GAAAI,GAAAiD,MAAAiZ,QAAArc,IAAA+c,MAAA,WAAA,IAAAxc,KAAAI,EAAA+O,iBAAA3P,EAAAU,GAAA,IAAAyc,SAAA,WAAA,MAAA3c,GAAAI,EAAAgP,oBAAA5P,EAAAU,GAAA,OAAAN,EAAAyO,GAAAtL,QAAA+d,GAAA,SAAAthB,EAAAQ,EAAAE,EAAAE,EAAAQ,GAAA,GAAA6B,GAAAC,CAAA,IAAA,gBAAAlD,GAAA,CAAA,gBAAAQ,KAAAE,EAAAA,GAAAF;AAAAA,AC2DA,ED3DAP,EAAA,KAAAiD,IAAAlD,GAAAwL,KAAA8V,GAAApe,EAAA1C,EAAAE,EAAAV,EAAAkD,GAAA9B,EAAA,OAAAoK,MAAA,GAAA,MAAA9K,GAAA,MAAAE,GAAAA,EAAAJ,EAAAE,EAAAF,EAAAP,GAAA,MAAAW,IAAA,gBAAAJ,IAAAI,EAAAF,EAAAA,EAAAT,IAAAW,EAAAF,EAAAA,EAAAF,EAAAA,EAAAP,IAAAW,KAAA,EAAAA,EAAAY,OAAA,KAAAZ,EAAA,MAAA4K,KAAA,OAAA,KAAApK,IAAA6B,EAAArC,EAAAA,EAAA,SAAAZ,GAAA,MAAAI,KAAA2R,IAAA/R,GAAAiD,EAAAoO,MAAA7F,KAAA8F,YAAA1Q,EAAA2S,KAAAtQ,EAAAsQ,OAAAtQ,EAAAsQ,KAAAnT,EAAAmT,SAAA/H,KAAAnL,KAAA,WAAAD,EAAAiD,MAAAC,IAAAkI,KAAAxL,EAAAY,EAAAF,EAAAF,MAAA+gB,IAAA,SAAAvhB,EAAAC,EAAAO,EAAAE,GAAA,MAAA8K,MAAA8V,GAAAthB,EAAAC,EAAAO,EAAAE,EAAA,IAAAqR,IAAA,SAAA/R,EAAAQ,EAAAE,GAAA,GAAAE,GAAAQ,CAAA,IAAApB,GAAAA,EAAAie,gBAAAje,EAAA2e,UAAA,MAAA/d,GAAAZ,EAAA2e,UAAAve,EAAAJ,EAAAqe,gBAAAtM,IAAAnR,EAAAkc,UAAAlc,EAAAic,SAAA,IAAAjc,EAAAkc,UAAAlc,EAAAic,SAAAjc,EAAA8P,SAAA9P,EAAA4b,SAAAhR,IAAA,IAAA,gBAAAxL,GAAA,CAAA,IAAAoB,IAAApB,GAAAwL,KAAAuG,IAAA3Q,EAAAZ,EAAAR,EAAAoB,GAAA,OAAAoK,MAAA,OAAAhL,KAAA,GAAA,kBAAAA,MAAAE,EAAAF;AEDA,AFCAA,AC4DA,ED5DAP,GAAAS,KAAA,IAAAA,EAAAc,IAAAgK,KAAAnL,KAAA,WAAAD,EAAAiD,MAAAwD,OAAA2E,KAAAxL,EAAAU,EAAAF,MAAAghB,KAAA,SAAAxhB,EAAAC,EAAAO,GAAA,MAAAgL,MAAA8V,GAAAthB,EAAA,KAAAC,EAAAO,IAAAihB,OAAA,SAAAzhB,EAAAC,GAAA,MAAAuL,MAAAuG,IAAA/R,EAAA,KAAAC,IAAAyhB,KAAA,SAAA1hB,EAAAC,EAAAO,GAAA,MAAAJ,GAAAoL,KAAA0E,SAAAoR,GAAAthB,EAAAwL,KAAAkF,SAAAzQ,EAAAO,GAAAgL,MAAAmW,IAAA,SAAA3hB,EAAAC,GAAA,MAAAG,GAAAoL,KAAA0E,SAAA6B,IAAA/R,EAAAwL,KAAAkF,UAAA,KAAAzQ,GAAAuL,MAAAoW,SAAA,SAAA5hB,EAAAC,EAAAO,EAAAE,GAAA,MAAA8K,MAAA8V,GAAArhB,EAAAD,EAAAQ,EAAAE,IAAAmhB,WAAA,SAAA7hB,EAAAC,EAAAO,GAAA,MAAA,IAAA8Q,UAAA9O,OAAAgJ,KAAAuG,IAAA/R,EAAA,MAAAwL,KAAAuG,IAAA9R,EAAAD,GAAA,KAAAQ,IAAAsR,QAAA,SAAA9R,EAAAC,GAAA,MAAAuL,MAAAnL,KAAA,WAAAD,EAAAiD,MAAAyO,QAAA9R,EAAAC,EAAAuL,SAAA+M,eAAA,SAAAvY,EAAAC,GAAA,MAAAuL,MAAA,GAAApL,EAAAiD,MAAAyO,QAAA9R,EAAAC,EAAAuL,KAAA,IAAA,GAAA,QAAAsW,OAAA,SAAA9hB,GAAA,GAAAC,GAAAqR,UAAA9Q,EAAAR,EAAAuT,MAAAnT,EAAAmT,OAAA7S,EAAA,EAAAE,EAAA,SAAAJ;AEAA,AFAA,GAAAI,IAAAR,EAAA4C,MAAAwI,KAAA,aAAAxL,EAAAuT,OAAA,GAAA7S,CAAA,OAAAN,GAAA4C,MAAAwI,KAAA,aAAAxL,EAAAuT,KAAA3S,EAAA,GAAAJ,EAAAyd,iBAAAhe,EAAAW,GAAAyQ,MAAA7F,KAAA8F,aAAA,EAAA,KAAA1Q,EAAA2S,KAAA/S,EAAAE,EAAAT,EAAAuC,QAAAvC,EAAAS,KAAA6S,KAAA/S,CAAA,OAAAgL,MAAAuW,MAAAnhB,IAAA2b,MAAA,SAAAvc,EAAAC,GAAA,MAAAuL,MAAAwV,WAAAhhB,GAAAihB,WAAAhhB,GAAAD,MAAAI,EAAAC,KAAA,0MAAAC,MAAA,KAAA,SAAAN,EAAAC,GAAAG,EAAAyO,GAAA5O,GAAA,SAAAD,EAAAQ,GAAA,MAAA,OAAAA,IAAAA,EAAAR,EAAAA,EAAA,MAAAsR,UAAA9O,OAAA,EAAAgJ,KAAA8V,GAAArhB,EAAA,KAAAD,EAAAQ,GAAAgL,KAAAsG,QAAA7R,IAAAkc,EAAAjb,KAAAjB,KAAAG,EAAAiD,MAAAyb,SAAA7e,GAAAG,EAAAiD,MAAA0b,UAAA3C,EAAAlb,KAAAjB,KAAAG,EAAAiD,MAAAyb,SAAA7e,GAAAG,EAAAiD,MAAA8b;AECA,GFDA,SAAAnf,EAAAC,GAAA,QAAA+hB,IAAAhiB,EAAAC,EAAAO,EAAAE,GAAA,IAAA,GAAAE,GAAA,EAAAQ,EAAAnB,EAAAuC,OAAApB,EAAAR,EAAAA,IAAAwb,EAAApc,EAAAC,EAAAW,GAAAJ,EAAAE,GAAA,QAAAuB,IAAAjC,EAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,GAAA,GAAA6B,GAAAC,EAAAoL,EAAA2T,WAAAhiB,EAAAc,cAAA,OAAAmC,IAAAkZ,EAAA/S,MAAApJ,IAAAD,KAAAiD,EAAArC,KAAAohB,GAAAhiB,GAAA,IAAAU,EAAAuC,KAAArC,GAAAqC,EAAAT,OAAA,EAAAU,EAAAD,EAAAzC,EAAAY,MAAA,QAAA8gB,IAAAliB,EAAAQ,EAAAE,EAAAE,EAAAQ,GAAA,IAAA,GAAA6B,GAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAAoE,EAAAC,EAAApM,EAAA,EAAAsM,EAAAtL,EAAAoB,OAAAjC,EAAAsY,EAAAsJ,IAAAnT,EAAA,GAAAkO,QAAA,IAAA3c,EAAAuO,OAAA,MAAAC,EAAA,IAAA,KAAAE,EAAA,WAAA,IAAA,GAAAjP,GAAA,EAAAQ,EAAA8Q,UAAA9O,OAAA,EAAAhC,EAAAR,EAAAA,IAAAsR,UAAAtR,KAAAC,IAAAgD,EAAAjD,GAAAC,IAAAyM,EAAAtM,EAAAA,IAAA,CAAA,IAAAG,EAAAuF,KAAA,IAAA9F,EAAAoB,EAAAhB,GAAA6H,KAAAJ,EAAA,EAAAK,EAAAtH,EAAAqC,EAAA1C,EAAAuF,KAAA9F,IAAAwM,EAAAjM,EAAA6hB,UAAAnf,EAAAof,MAAApf,EAAA,GAAAT,OAAAgK,EAAA3E,IAAA0E,EAAAvM,EAAAkF,MAAA2C,EAAA5E,EAAAof,OAAAxa,EAAA2E,EAAArE,GAAA3H,GAAAgP,EAAAtO,KAAAqL,KAAArE,IAAAC,EAAAD,GAAAA,EAAAtH,IAAAsC,EAAAjC,EAAAC,KAAAqL,MAAAA,EAAAA,EAAArH,MAAA,EAAA,IAAArE,QAAA2O,EAAA,QAAAvM,EAAAT,OAAA,GAAAS,EAAA,GAAApC,QAAAmO,EAAAC,GAAA/G,EAAAjG,GAAAsK,EAAAtJ,EAAA,GAAAA,EAAA,GAAAkF,EAAAD,EAAAhF;AEEA,ACHA,AHCAgF,GAAAD,EAAAA,EAAA+B,OAAA9B,IAAAqE,EAAAvM,EAAAkF,MAAA2C,KAAA,MAAA0E,EAAAiD,EAAAtO,KAAAqL,GAAAyV,GAAAzV,EAAAtE,EAAAvH,EAAAE,GAAAwb,EAAA7P,EAAA/L,EAAAE,EAAAE,EAAAA,EAAAoJ,OAAA9B,GAAAA,GAAAuE,EAAA4E,MAAA3Q,EAAAuH,IAAAmU,EAAApc,EAAAQ,EAAAE,EAAAE,GAAA,MAAA,KAAA8L,EAAAhM,EAAA0b,EAAAkG,WAAA5hB,GAAA,QAAA6hB,IAAAviB,EAAAC,EAAAO,GAAA,IAAA,GAAAE,GAAAE,EAAAQ,EAAA6B,KAAA4E,EAAA,EAAAI,EAAAyH,EAAA5J,KAAA9F,GAAAkI,GAAAD,EAAAxF,QAAAwF,EAAAxF,MAAA0F,EAAAD,GAAAlI,EAAAwiB,MAAA/S,KAAA,IAAAlD,EAAA+B,EAAAmU,UAAAjW,EAAA8B,EAAApM,OAAAuK,GAAAjM,GAAAP,IAAAiD,EAAA,OAAAtC,EAAAuH,EAAAN,KAAAK,EAAAL,IAAA,IAAA5E,EAAAoI,KAAA3K,MAAA+L,IAAA7L,EAAA,IAAAA,GAAAA,GAAA,CAAAsH,GAAA,GAAAD,EAAAuH,EAAA1J,KAAAlF,MAAAA,EAAAA,EAAAsE,MAAA+C,EAAA,GAAAzF,QAAA0F,EAAAxH,EAAA2K,MAAAqX,KAAAza,EAAAxF,MAAA5B,QAAA0O,EAAA,KAAAoT,SAAA1a,IAAA,KAAA7G,IAAAoL,IAAAvE,EAAA4Q,EAAAzX,GAAA0E,KAAAlF,OAAA2L,EAAAnL,KAAA6G,EAAAsE,EAAAnL,GAAA6G,EAAAhI,EAAAO,OAAAI,EAAAA,EAAAsE,MAAA+C,EAAAW,QAAApG,QAAA0F,EAAAxH,EAAA2K,MAAAqX,KAAAthB,EAAAuhB,SAAA1a,IAAA,KAAAC,EAAA,MAAA,MAAAA,IAAAkU,EAAA/S,MAAArJ,GAAAiD,EAAA,QAAAvB,IAAA1B,EAAAC,EAAAW,GAAA,GAAAQ,GAAAnB,EAAA2iB,IAAA3f,EAAAsJ,GAAA,OAAAvM,KAAAA,EAAA,SAAAA,GAAA,MAAAA,KAAAY,IAAAX,EAAAkR,MAAA,SAAAlR,EAAAO;AGAA,AHAA,KAAAP,EAAAA,EAAAmB,IAAA,GAAA,IAAAnB,EAAAU,SAAA,MAAAX,GAAAC,EAAAO,IAAAP,GAAA,SAAAA,EAAAW,GAAA,IAAA,GAAAsC,GAAA2E,EAAA5E,EAAA,IAAAvC,EAAAuH,EAAAJ,EAAA,IAAArH,EAAAP,EAAAA,EAAAmB,IAAA,GAAA,IAAAnB,EAAAU,SAAA,CAAA,IAAAuC,EAAAjD,EAAAyM,MAAAzE,EAAA,MAAAhI,GAAA4iB,MAAA,IAAA,gBAAA3f,IAAA,IAAAA,EAAAsL,QAAA3G,IAAA,GAAA5H,EAAA4iB,OAAA,MAAA5iB,OAAA,CAAA,GAAAA,EAAAyM,GAAAzE,EAAAjI,EAAAC,EAAAW,GAAA,MAAAX,GAAA4iB,QAAA,EAAA5iB,CAAAA,GAAA4iB,QAAA,KAAA,QAAAjhB,IAAA5B,EAAAC,GAAA,MAAAD,GAAA,SAAAQ,EAAAE,GAAA,GAAAE,GAAAX,EAAAO,EAAAE,EAAA,OAAAE,IAAAZ,EAAAY,KAAA,EAAAJ,EAAAI,EAAAF,IAAAT,EAAA,QAAA4B,IAAA7B,EAAAC,EAAAO,GAAA,IAAA,GAAAE,GAAAE,EAAAQ,EAAA,EAAAV,EAAAV,EAAAoB,GAAAA,IAAAkN,EAAAwU,SAAApiB,EAAAgiB,MAAA9hB,EAAAc,GAAAd,EAAA0N,EAAAwU,SAAApiB,EAAAgiB,MAAAziB,IAAAS,EAAAiiB,SAAAtX,KAAApL,EAAAO,GAAAI,EAAAgB,GAAAhB,EAAA0N,EAAApM,OAAAxB,EAAAgiB,MAAArR,MAAA,KAAA3Q,EAAAiiB,WAAA,OAAA/hB,GAAA,QAAAwB,IAAApC,GAAA,MAAA,UAAAC,EAAAO,GAAA,IAAA,GAAAE,GAAAE,EAAA,EAAAF,EAAAV,EAAAY,GAAAA,IAAA,GAAAF,EAAAT,EAAAO,GAAA,OAAA,CAAA,QAAA,GAAA,GAAAA,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAAlD,EAAAqH,SAAAQ,EAAA3E,EAAAgQ,gBAAAjL,EAAA,YAAAC,GAAA,EAAAC,GAAA,EAAAoE,EAAA,EAAAC,KAAAtH,MAAAuH,KAAApB,KAAAqB,GAAA,WAAA3G,KAAA6R,UAAA/W,QAAA,IAAA,IAAAkO,EAAA,sBAAAxO,EAAA,mCAAAyO,EAAAzO,EAAAM,QAAA,IAAA,MAAAoO,EAAA,eAAAC,EAAA,MAAAH,EAAA,KAAAxO,EAAA,IAAAwO,EAAA,OAAAE,EAAAF,EAAA,wCAAAC,EAAA,QAAAD,EAAA,OAAAI,EAAA,KAAA5O,EAAA,4GAAA6O,EAAA,iEAAAC,EAAAN,EAAA,4BAAAA,EAAA,IAAAO,EAAA,oCAAAJ,EAAA,IAAAC,EAAAtO,QAAA,EAAA,GAAA,gBAAA0O,EAAA,GAAA2N,QAAA,IAAAnO,EAAA,8BAAAA,EAAA,KAAA,KAAAS,EAAA,GAAA0N,QAAA,IAAA7N,GAAAI,EAAA,GAAAyN,QAAA5N,EAAA,OAAAP,EAAA,QAAA,KAAAW,EAAA,GAAAwN,QAAA,sBAAAnO,EAAA,IAAAO,EAAA,OAAAP,EAAA,kBAAAiB,EAAA,GAAAkN,QAAA5N,EAAApK,MAAA,GAAA,IAAA,2BAAAmK,EAAA,KAAAlP,EAAA,qCAAAD,EAAA,sBAAAe,EAAA,UAAAH,EAAA,OAAAL,EAAA,gCAAAa,EAAA,YAAAuX;AGCA,AHDAkK,GAAA,GAAA7F,QAAA,MAAA3c,EAAA,KAAAyiB,MAAA,GAAA9F,QAAA,QAAA3c,EAAA,KAAA0iB,KAAA,GAAA/F,QAAA,mBAAA3c,EAAA,cAAA2iB,IAAA,GAAAhG,QAAA,KAAA3c,EAAAM,QAAA,KAAA,SAAA,KAAAsiB,KAAA,GAAAjG,QAAA,IAAAhO,GAAAkU,OAAA,GAAAlG,QAAA,IAAA/N,GAAAkU,MAAA,GAAAnG,QAAA,sCAAAnO,EAAA,+BAAAA,EAAA,cAAAA,EAAA,aAAAA,EAAA,SAAA,KAAAoT,IAAA,GAAAjF,QAAA9N,EAAA,MAAAkU,aAAA,GAAApG,QAAA,IAAAnO,EAAA,UAAAK,EAAA,MAAA0J,KAAAC,KAAAC,KAAAC,KAAAC,EAAA,SAAAlZ,GAAA,MAAAA,GAAAujB,cAAA,EAAAvjB,GAAAmZ,EAAA,SAAAnZ,GAAA,MAAA,UAAAC,GAAA,MAAA,UAAAA,EAAA0D,SAAA5C,eAAAd,EAAAiE,OAAAlE,IAAAoZ,EAAA,SAAApZ,GAAA,MAAA,UAAAC,GAAA,GAAAO,GAAAP,EAAA0D,SAAA5C,aAAA,QAAA,UAAAP,GAAA,WAAAA,IAAAP,EAAAiE,OAAAlE;AGEA,GHFAqZ,EAAA,SAAArZ,GAAA,GAAAC,IAAA,EAAAO,EAAA0C,EAAAX,cAAA,MAAA,KAAAtC,EAAAD,EAAAQ,GAAA,MAAAE,IAAA,MAAAF,GAAA,KAAAP,GAAAqZ,EAAAD,EAAA,SAAArZ,GAAAA,EAAA+D,UAAA,mBAAA,IAAA9D,SAAAD,GAAA4W,UAAA5V,aAAA,WAAA,OAAA,YAAAf,GAAA,WAAAA,IAAA+b,EAAA3C,EAAA,SAAArZ,GAAAA,EAAAwQ,GAAA9D,EAAA,EAAA1M,EAAA+D,UAAA,YAAA2I,EAAA,oBAAAA,EAAA,WAAA7E,EAAAqP,aAAAlX,EAAA6H,EAAAuN,WAAA,IAAAnV,GAAAiD,EAAAsgB,mBAAAtgB,EAAAsgB,kBAAA9W,GAAAlK,SAAA,EAAAU,EAAAsgB,kBAAA9W,EAAA,GAAAlK,MAAA,OAAAS,IAAAC,EAAAqN,eAAA7D,GAAA7E,EAAAL,YAAAxH,GAAAC,IAAAgc,EAAA5C,EAAA,SAAArZ,GAAA,MAAAA,GAAA4C,YAAAM,EAAAugB,cAAA,KAAA,IAAAzjB,EAAA2C,qBAAA,KAAAH,SAAA0Z,EAAA7C,EAAA,SAAArZ,GAAA,MAAAA,GAAA+D,UAAA,mBAAA/D,EAAAoV,kBAAApV,GAAAoV,WAAApU,eAAAiH,GAAA,MAAAjI,EAAAoV,WAAApU,aAAA;AGGA,GHHAmb,EAAA9C,EAAA,SAAArZ,GAAA,MAAAA,GAAA+D,UAAA,yDAAA/D,EAAA0jB,wBAAA,IAAA1jB,EAAA0jB,uBAAA,KAAAlhB,QAAAxC,EAAA4W,UAAAhB,UAAA,IAAA,IAAA5V,EAAA0jB,uBAAA,KAAAlhB,SAAA,IAAA4Z,EAAA,SAAApc,EAAAC,EAAAO,EAAAE,GAAAF,EAAAA,MAAAP,EAAAA,GAAAiD,CAAA,IAAAtC,GAAAQ,EAAA6B,EAAA4E,EAAAI,EAAAhI,EAAAU,QAAA,IAAA,IAAAsH,GAAA,IAAAA,EAAA,QAAA,KAAAjI,GAAA,gBAAAA,GAAA,MAAAQ,EAAA,IAAAyC,EAAAzB,GAAAvB,IAAAgD,IAAAvC,IAAAE,EAAAT,EAAA2F,KAAA9F,IAAA,GAAA6H,EAAAjH,EAAA,IAAA,GAAA,IAAAqH,EAAA,CAAA,GAAA7G,EAAAnB,EAAAsQ,eAAA1I,IAAAzG,IAAAA,EAAAO,WAAA,MAAAnB,EAAA,IAAAY,EAAAoP,KAAA3I,EAAA,MAAArH,GAAA6K,KAAAjK,GAAAZ,MAAA,IAAAP,EAAA4C,gBAAAzB,EAAAnB,EAAA4C,cAAA0N,eAAA1I,KAAApG,GAAAxB,EAAAmB,IAAAA,EAAAoP,KAAA3I,EAAA,MAAArH,GAAA6K,KAAAjK,GAAAZ,MAAA,CAAA,GAAAI,EAAA,GAAA,MAAA6L,GAAA4E,MAAA7Q,EAAAgM,EAAAxK,KAAA/B,EAAA0C,qBAAA3C,GAAA,IAAAQ,CAAA,KAAAqH,EAAAjH,EAAA,KAAAub,GAAAlc,EAAAyjB,uBAAA,MAAAjX,GAAA4E,MAAA7Q,EAAAgM,EAAAxK,KAAA/B,EAAAyjB,uBAAA7b,GAAA;AGIA,AHJArH,EAAA,MAAAmjB,IAAA3jB,EAAAC,EAAAO,EAAAE,EAAAuC,IAAAqL,EAAA8N,EAAAwH,WAAAC,YAAA,GAAArB,MAAA3J,EAAAiL,OAAA,KAAA,OAAAC,cAAAC,aAAA9K,EAAAzI,MAAAsS,GAAA9f,EAAA,SAAAjD,EAAAC,EAAAO,GAAA,SAAAP,GAAAsQ,iBAAAtI,IAAAzH,EAAA,CAAA,GAAAE,GAAAT,EAAAsQ,eAAAvQ,EAAA,OAAAU,IAAAA,EAAAiB,YAAAjB,QAAA,SAAAV,EAAAQ,EAAAE,GAAA,SAAAF,GAAA+P,iBAAAtI,IAAAvH,EAAA,CAAA,GAAAE,GAAAJ,EAAA+P,eAAAvQ,EAAA,OAAAY,GAAAA,EAAA4P,KAAAxQ,SAAAY,GAAA4a,mBAAAvT,GAAArH,EAAA4a,iBAAA,MAAAnX,QAAArE,GAAAY,GAAAX,OAAAijB,IAAAjH,EAAA,SAAAjc,EAAAC,GAAA,aAAAA,GAAA0C,uBAAAsF,EAAAhI,EAAA0C,qBAAA3C,GAAA,QAAA,SAAAA,EAAAC,GAAA,GAAAO,GAAAP,EAAA0C,qBAAA3C,EAAA,IAAA,MAAAA,EAAA,CAAA,IAAA,GAAAU,GAAAE,KAAAQ,EAAA,EAAAV,EAAAF,EAAAY,GAAAA,IAAA,IAAAV,EAAAC,UAAAC,EAAAyK,KAAA3K,EAAA,OAAAE,GAAA,MAAAJ,KAAAsiB,UAAAmB,KAAArB,IAAA,aAAAzR,OAAA;AGKA,EHLA+S,KAAAtB,IAAA,cAAAuB,KAAAvB,IAAA,kBAAAzR,OAAA,GAAAiT,KAAAxB,IAAA,oBAAAH,WAAAU,KAAA,SAAAnjB,GAAA,MAAAA,GAAA,GAAAA,EAAA,GAAAa,QAAAS,EAAA,IAAAtB,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAA,IAAAa,QAAAS,EAAA,IAAA,OAAAtB,EAAA,KAAAA,EAAA,GAAA,IAAAA,EAAA,GAAA,KAAAA,EAAAkF,MAAA,EAAA,IAAAme,MAAA,SAAArjB,GAAA,MAAAA,GAAA,GAAAA,EAAA,GAAAe,cAAA,QAAAf,EAAA,IAAAA,EAAA,IAAAoc,EAAA/S,MAAArJ,EAAA,IAAAA,EAAA,KAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAA,GAAA,GAAA,SAAAA,EAAA,IAAA,QAAAA,EAAA,KAAAA,EAAA,KAAAA,EAAA,GAAAA,EAAA,IAAA,QAAAA,EAAA,KAAAA,EAAA,IAAAoc,EAAA/S,MAAArJ,EAAA,IAAAA,GAAAojB,OAAA,SAAApjB,GAAA,GAAAC,GAAAO,EAAAR,EAAA,EAAA,OAAA6Y,GAAAwK,MAAAniB,KAAAlB,EAAA,IAAA,MAAAQ,IAAAP,EAAAyP,EAAA5J,KAAAtF,KAAAP,EAAAwC,QAAAzC,EAAA,GAAAA,EAAA,GAAAkF,MAAA,EAAAjF,EAAA,GAAAuC,OAAAhC,EAAAgC,OAAA,GAAAhC,EAAAP,EAAA,GAAAiF,MAAA,EAAA,KAAAlF,EAAAmJ,OAAA,EAAA,EAAA3I,GAAAR,EAAA,IAAAA,KAAAkC,QAAA6gB,GAAA9f,EAAA,SAAAjD,GAAA,MAAAA,GAAAA,EAAAa,QAAAS,EAAA,IAAA,SAAArB;AGMA,AHNA,MAAAA,GAAAe,aAAA,QAAAhB,IAAA,SAAAA,GAAA,MAAAA,GAAAA,EAAAa,QAAAS,EAAA,IAAA,SAAArB,GAAA,GAAAO,SAAAP,GAAAub,mBAAAvT,GAAAhI,EAAAub,iBAAA,KAAA,OAAAhb,IAAAA,EAAA6D,QAAArE,IAAAkjB,IAAA,SAAAljB,GAAA,MAAA,MAAAA,EAAA,WAAA,OAAA,IAAAA,EAAAA,EAAAa,QAAAS,EAAA,IAAAP,cAAA,SAAAd,GAAA,MAAAA,GAAA0D,UAAA1D,EAAA0D,SAAA5C,gBAAAf,KAAAgjB,MAAA,SAAAhjB,GAAA,GAAAC,GAAA6Y,EAAA9Y,EAAA,OAAAC,KAAAA,EAAA6Y,EAAA9Y,GAAA,GAAAkd,QAAA,MAAAnO,EAAA,IAAA/O,EAAA,IAAA+O,EAAA,OAAAgK,EAAA1N,KAAArL,GAAA+Y,EAAAvW,OAAA8L,EAAAuV,mBAAA/K,GAAAC,EAAAnQ,UAAA,SAAA5I,GAAA,MAAAC,GAAAiB,KAAAlB,EAAA4V,iBAAA5V,GAAAgB,eAAAiH,GAAAjI,EAAAgB,aAAA,UAAA,MAAAmiB,KAAA,SAAAnjB,EAAAC,EAAAO,GAAA,MAAAP,GAAA,SAAAS,GAAA,GAAAE,GAAAwb,EAAA/L,KAAA3P,EAAAV,GAAAoB,EAAAR,EAAA,EAAA,IAAA,MAAAA,EAAA,MAAA,OAAAX,CAAA,QAAAA,GAAA,IAAA,IAAA,MAAAmB,KAAAZ;AGOA,AHPA,IAAA,KAAA,MAAAY,KAAAZ,CAAA,KAAA,KAAA,MAAAA,IAAA,IAAAY,EAAAoN,QAAAhO,EAAA,KAAA,KAAA,MAAAA,IAAAY,EAAAoN,QAAAhO,GAAA,EAAA,KAAA,KAAA,MAAAA,IAAAY,EAAA0G,OAAA1G,EAAAoB,OAAAhC,EAAAgC,UAAAhC,CAAA,KAAA,KAAA,OAAA,IAAAY,EAAA,KAAAoN,QAAAhO,GAAA,EAAA,KAAA,KAAA,MAAAY,KAAAZ,GAAAY,EAAA0G,OAAA,EAAAtH,EAAAgC,OAAA,KAAAhC,EAAA,MAAA,SAAAP,GAAA,MAAA,OAAAmc,EAAA/L,KAAApQ,EAAAD,KAAAqjB,MAAA,SAAArjB,EAAAC,EAAAO,EAAAE,GAAA,GAAA,QAAAV,EAAA,CAAA,GAAAY,GAAA2L,GAAA,OAAA,UAAAvM,GAAA,GAAAC,GAAAmB,EAAA6B,EAAA,EAAAC,EAAAlD,CAAA,IAAA,IAAAQ,GAAA,IAAAE,EAAA,OAAA,CAAA,IAAAT,EAAAD,EAAA2B,WAAA1B,IAAAA,EAAAyM,KAAA9L,IAAAZ,EAAA6iB,QAAA,CAAA,IAAA3f,EAAAjD,EAAAmV,WAAAlS,IAAA,IAAAA,EAAAvC,WAAAuC,EAAA2f,SAAA5f,EAAAC,IAAAlD,IAAAkD,EAAAA,EAAAmhB,aAAApkB,EAAAyM,GAAA9L,EAAA,MAAAQ,GAAApB,EAAA6iB,OAAAniB,EAAA,IAAAF,EAAA,IAAAY,EAAAA,EAAAZ,IAAA,GAAAY,EAAAZ,GAAA,GAAA,MAAA,UAAAP,GAAA,GAAAO,GAAAP,CAAA,QAAAD,GAAA,IAAA,OAAA,IAAA,QAAA,KAAAQ,EAAAA,EAAA8jB,iBAAA,GAAA,IAAA9jB,EAAAG,SAAA,OAAA;AGQA,AHRA,GAAA,UAAAX,EAAA,OAAA,CAAAQ,GAAAP,CAAA,KAAA,OAAA,KAAAO,EAAAA,EAAA6jB,aAAA,GAAA,IAAA7jB,EAAAG,SAAA,OAAA,CAAA,QAAA,KAAAyiB,OAAA,SAAApjB,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAA0N,EAAAiW,QAAAvkB,IAAAsO,EAAAiW,QAAAvkB,EAAAe,cAAA,OAAAH,IAAAwb,EAAA/S,MAAA,uBAAArJ,GAAAY,EAAA2iB,aAAA3iB,EAAAX,EAAAO,EAAAE,GAAAE,IAAA2jB,SAAAC,IAAAtL,EAAA,SAAAlZ,EAAAC,EAAAO,GAAA,GAAAE,GAAA2B,GAAArC,EAAAa,QAAA0O,EAAA,MAAAtP,EAAAO,EAAA,OAAA,UAAAR,GAAA,OAAAU,EAAAV,MAAAykB,QAAA,SAAAzkB,GAAA,MAAAA,GAAAsU,YAAA,GAAAA,SAAA,SAAAtU,GAAA,MAAAA,GAAAsU,YAAA,GAAAlQ,QAAA,SAAApE,GAAA,GAAAC,GAAAD,EAAA2D,SAAA5C,aAAA,OAAA,UAAAd,KAAAD,EAAAoE,SAAA,WAAAnE,KAAAD,EAAAsE,UAAAA,SAAA,SAAAtE,GAAA,MAAAA,GAAA2B,YAAA3B,EAAA2B,WAAA0Y,cAAAra,EAAAsE,YAAA,GAAAogB,OAAA,SAAA1kB,GAAA,OAAAsO,EAAAiW,QAAA1X,MAAA7M;AGSA,EHTA6M,MAAA,SAAA7M,GAAA,GAAAC,EAAA,KAAAD,EAAAA,EAAAoV,WAAApV,GAAA,CAAA,GAAAA,EAAA2D,SAAA,KAAA,KAAA1D,EAAAD,EAAAW,WAAA,IAAAV,EAAA,OAAA,CAAAD,GAAAA,EAAAqkB,YAAA,OAAA,GAAA/e,SAAA4T,EAAA,SAAAlZ,GAAA,MAAA,UAAAC,GAAA,OAAAA,EAAA0kB,aAAA1kB,EAAA2kB,WAAAC,GAAA5kB,IAAAuO,QAAAxO,GAAA,MAAAqU,IAAA6E,EAAA,SAAAlZ,GAAA,MAAA,UAAAC,GAAA,MAAAmc,GAAApc,EAAAC,GAAAuC,OAAA,KAAAsiB,OAAA,SAAA9kB,GAAA,MAAAc,GAAAI,KAAAlB,EAAA2D,WAAAc,KAAA,SAAAzE,GAAA,GAAAC,GAAAO,CAAA,OAAA,UAAAR,EAAA2D,SAAA5C,eAAA,UAAAd,EAAAD,EAAAkE,QAAA,OAAA1D,EAAAR,EAAAgB,aAAA,UAAAR,EAAAO,gBAAAd,IAAA8kB,MAAA5L,EAAA,SAAA6L,SAAA7L,EAAA,YAAA8L,KAAA9L,EAAA,QAAA+L,SAAA/L,EAAA,YAAAgM,MAAAhM,EAAA,SAAApC,OAAAqC,EAAA,UAAAgM,MAAAhM,EAAA,SAAAyC,OAAA,SAAA7b,GAAA,GAAAC,GAAAD,EAAA2D,SAAA5C,aAAA,OAAA,UAAAd,GAAA,WAAAD,EAAAkE,MAAA,WAAAjE;AGUA,EHVAolB,MAAA,SAAArlB,GAAA,MAAAS,GAAAS,KAAAlB,EAAA2D,WAAAwc,MAAA,SAAAngB,GAAA,GAAAC,GAAAD,EAAA6C,aAAA,OAAA7C,KAAAC,EAAAqlB,iBAAArlB,EAAAslB,UAAAtlB,EAAAslB,gBAAAvlB,EAAAkE,QAAAlE,EAAA0b,OAAA8J,OAAA,SAAAxlB,GAAA,MAAAA,KAAAA,EAAA6C,cAAAyiB,gBAAArD,YAAA9Q,MAAA,SAAAnR,EAAAC,EAAAO,GAAA,MAAAA,GAAAR,EAAAkF,MAAA,IAAAlF,EAAA,KAAAoR,KAAA,SAAApR,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAAyC,KAAA,OAAAjC,GAAAR,GAAAU,IAAA+kB,KAAA,SAAAzlB,EAAAC,EAAAO,GAAA,IAAA,GAAAE,MAAAE,EAAAJ,EAAA,EAAA,EAAAY,EAAApB,EAAAwC,OAAApB,EAAAR,EAAAA,GAAA,EAAAF,EAAA2K,KAAArL,EAAAY,GAAA,OAAAF,IAAAglB,IAAA,SAAA1lB,EAAAC,EAAAO,GAAA,IAAA,GAAAE,MAAAE,EAAAJ,EAAA,EAAA,EAAAY,EAAApB,EAAAwC,OAAApB,EAAAR,EAAAA,GAAA,EAAAF,EAAA2K,KAAArL,EAAAY,GAAA,OAAAF,IAAAilB,GAAA,SAAA3lB,EAAAC,EAAAO,GAAA,MAAAA,GAAAR,EAAAkF,OAAAjF,GAAAD,EAAAkF,MAAA,GAAAjF,IAAA2lB,GAAA,SAAA5lB,EAAAC,EAAAO,GAAA,MAAAA,GAAAR,EAAAkF,MAAA,GAAAjF,EAAA,GAAAD,EAAAkF,OAAAjF,EAAA,IAAAiR,GAAA,SAAAlR,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAAmJ,QAAAlJ,EAAA,EAAA,OAAAO,GAAAR,EAAAU;AGWA,GHXA4N,GAAA2T,WAAA4D,IAAAvX,EAAA2T,WAAA/Q,GAAA5C,EAAAwX,QAAAxX,EAAAiW,QAAArI,IAAA5N,EAAAyV,YAAArI,KAAA,SAAA1b,GAAA,MAAAA,GAAAgB,aAAA,OAAA,IAAAkD,KAAA,SAAAlE,GAAA,MAAAA,GAAAgB,aAAA,WAAAgb,IAAA1N,EAAAwV,MAAAzY,KAAA,QAAAiD,EAAAmC,KAAAwS,KAAA,SAAAjjB,EAAAC,GAAA,aAAAA,GAAAujB,oBAAAvb,EAAAhI,EAAAujB,kBAAAxjB,GAAA,SAAAmc,IAAA7N,EAAAwV,MAAA3a,OAAA,EAAA,EAAA,SAAAmF,EAAAmC,KAAAuS,MAAA,SAAAhjB,EAAAC,EAAAO,GAAA,aAAAP,GAAAyjB,yBAAAzb,GAAAzH,EAAA,OAAAP,EAAAyjB,uBAAA1jB,IAAA,KAAAwM,EAAAxK,KAAA6F,EAAA4K,WAAA,GAAA,GAAA9R,SAAA,MAAA0b,GAAA7P,EAAA,SAAAxM,GAAA,IAAA,GAAAC,GAAAO,KAAAP,EAAAuL,KAAAxL,GAAAA,IAAAQ,EAAA6K,KAAApL,EAAA,OAAAO,IAAA,GAAAgB,IAAA4a,EAAA2J,MAAA,SAAA/lB,GAAA,GAAAC,GAAAD,IAAAA,EAAA6C,eAAA7C,GAAAkT,eAAA,OAAAjT,GAAA,SAAAA,EAAA0D,UAAA,GAAAlC,GAAA2a,EAAA9W,SAAAuC,EAAAme,wBAAA,SAAAhmB,EAAAC;AGYA,AHZA,SAAA,GAAAD,EAAAgmB,wBAAA/lB,KAAA4H,EAAAvC,SAAA,SAAAtF,EAAAC,GAAA,GAAAO,GAAA,IAAAR,EAAAW,SAAAX,EAAAkT,gBAAAlT,EAAAU,EAAAT,EAAA0B,UAAA,OAAA3B,KAAAU,MAAAA,GAAA,IAAAA,EAAAC,UAAAH,EAAA8E,UAAA9E,EAAA8E,SAAA5E,KAAA,SAAAV,EAAAC,GAAA,KAAAA,EAAAA,EAAA0B,YAAA,GAAA1B,IAAAD,EAAA,OAAA,CAAA,QAAA,GAAA6kB,GAAAzI,EAAA6J,QAAA,SAAAjmB,GAAA,GAAAC,GAAAO,EAAA,GAAAE,EAAA,EAAAE,EAAAZ,EAAAW,QAAA,IAAAC,GAAA,GAAA,IAAAA,GAAA,IAAAA,GAAA,KAAAA,EAAA,CAAA,GAAA,gBAAAZ,GAAA2kB,YAAA,MAAA3kB,GAAA2kB,WAAA,KAAA3kB,EAAAA,EAAAoV,WAAApV,EAAAA,EAAAA,EAAAqkB,YAAA7jB,GAAAqkB,GAAA7kB,OAAA,IAAA,IAAAY,GAAA,IAAAA,EAAA,MAAAZ,GAAA2b,cAAA,MAAA1b,EAAAD,EAAAU,GAAAA,IAAAF,GAAAqkB,GAAA5kB,EAAA,OAAAO,GAAA4b,GAAA/L,KAAA,SAAArQ,EAAAC,GAAA,GAAAO,GAAAE,EAAAc,GAAAxB,EAAA,OAAAU,KAAAT,EAAAA,EAAAc,eAAAuN,EAAAyV,WAAA9jB,GAAAqO,EAAAyV,WAAA9jB,GAAAD,GAAAsZ,GAAA5Y,EAAAV,EAAAgB,aAAAf,IAAAO,EAAAR,EAAAwb,iBAAAvb,GAAAO,EAAA,iBAAAR,GAAAC,GAAAD,EAAAC,GAAAA,EAAA,KAAAO,EAAA2Z,UAAA3Z,EAAA6D,MAAA,KAAA;AGaA,EHbA+X,EAAA/S,MAAA,SAAArJ,GAAA,KAAA,IAAAoS,OAAA,0CAAApS,KAAA,EAAA,GAAAyR,KAAA,WAAA,MAAAtJ,GAAA,IAAAN,EAAAme,wBAAAplB,EAAA,SAAAZ,EAAAC,GAAA,MAAAD,KAAAC,GAAAiI,GAAA,EAAA,IAAAlI,EAAAgmB,yBAAA/lB,EAAA+lB,wBAAA,EAAAhmB,EAAAgmB,wBAAA/lB,GAAAD,EAAAgmB,yBAAA,GAAA,IAAAplB,EAAA,SAAAZ,EAAAC,GAAA,GAAAD,IAAAC,EAAA,MAAAiI,IAAA,EAAA,CAAA,IAAAlI,EAAAkmB,aAAAjmB,EAAAimB,YAAA,MAAAlmB,GAAAkmB,YAAAjmB,EAAAimB,WAAA,IAAA1lB,GAAAE,EAAAE,KAAAqC,KAAAC,EAAAlD,EAAA2B,WAAAkG,EAAA5H,EAAA0B,WAAAsG,EAAA/E,CAAA,IAAAA,IAAA2E,EAAA,MAAAzG,GAAApB,EAAAC,EAAA,KAAAiD,EAAA,MAAA,EAAA,KAAA2E,EAAA,MAAA,EAAA,MAAAI,GAAArH,EAAAyH,QAAAJ,GAAAA,EAAAA,EAAAtG,UAAA,KAAAsG,EAAAJ,EAAAI,GAAAhF,EAAAoF,QAAAJ,GAAAA,EAAAA,EAAAtG,UAAAnB,GAAAI,EAAA4B,OAAA9B,EAAAuC,EAAAT,MAAA,KAAA,GAAA2F,GAAA,EAAA3H,EAAA2H,GAAAzH,EAAAyH,EAAAA,IAAA,GAAAvH,EAAAuH,KAAAlF,EAAAkF,GAAA,MAAA/G,GAAAR,EAAAuH,GAAAlF,EAAAkF;AGcA,AHdA,MAAAA,KAAA3H,EAAAY,EAAApB,EAAAiD,EAAAkF,GAAA,IAAA/G,EAAAR,EAAAuH,GAAAlI,EAAA,IAAAmB,EAAA,SAAApB,EAAAC,EAAAO,GAAA,GAAAR,IAAAC,EAAA,MAAAO,EAAA,KAAA,GAAAE,GAAAV,EAAAqkB,YAAA3jB,GAAA,CAAA,GAAAA,IAAAT,EAAA,MAAA,EAAAS,GAAAA,EAAA2jB,YAAA,MAAA,KAAAjI,EAAAkG,WAAA,SAAAtiB,GAAA,GAAAC,GAAAO,EAAA,CAAA,IAAAI,IAAAsH,EAAAC,EAAAnI,EAAAyR,KAAA7Q,GAAAsH,GAAA,KAAAjI,EAAAD,EAAAQ,GAAAA,IAAAP,IAAAD,EAAAQ,EAAA,IAAAR,EAAAmJ,OAAA3I,IAAA,EAAA,OAAAR,GAAA,IAAAqC,IAAA+Z,EAAA+J,QAAA,SAAAnmB,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,EAAA6B,EAAA+V,EAAAhZ,EAAA,IAAAiD,GAAAA,EAAAiN,UAAAjQ,EAAA,MAAAgD,EAAA,KAAArC,EAAA2hB,GAAAviB,EAAAC,EAAAO,GAAAY,EAAA,EAAAV,EAAAE,EAAAQ,GAAAA,IAAAR,EAAAQ,GAAAS,GAAAnB,EAAAT,EAAAO,EAAA,OAAAyC,GAAA+V,EAAAhZ,GAAAoC,GAAAxB,GAAAqC,EAAAiN,QAAAjQ,EAAAgD,EAAAmjB,KAAAnjB,EAAAojB,QAAA,EAAApN,EAAA5N,KAAArL,GAAAiZ,EAAAzW,OAAA8L,EAAAuV,mBAAA7K,GAAAC,EAAArQ,SAAA3F,EAAAmZ,GAAAoC,QAAA,SAAAxe,EAAAC,GAAA,MAAAmc,GAAApc,EAAA,KAAA,KAAAC,IAAAmc,EAAAkK,gBAAA,SAAAtmB,EAAAC,GAAA,MAAAmc,GAAAnc,EAAA,KAAA,MAAAD,IAAAwC,OAAA,EAAA,IAAAmhB,IAAA,SAAA3jB,EAAAC,EAAAW,EAAAQ,EAAA6B,GAAAjD,EAAAA,EAAAa,QAAA0O,EAAA,KAAA,IAAArM,GAAA2E,EAAAI,EAAAC,EAAAC,EAAAoE,EAAAnM,EAAAsM,EAAAqC,EAAAxO,EAAAP,EAAAwiB,MAAA/S,GAAAT,EAAAhP,EAAAwiB,MAAAxS,GAAAf,EAAAhP,EAAAU;AGeA,AHfA,GAAAkY,EAAAsJ,IAAAjhB,KAAAlB,GAAA,MAAAkiB,IAAAliB,EAAAC,EAAAW,EAAAQ,EAAAb,EAAA,IAAAa,EAAA8B,EAAAsJ,EAAAxK,KAAAZ,EAAA,OAAA,IAAAb,GAAA,IAAAA,EAAAiC,OAAA,CAAA,GAAAwM,EAAAxM,OAAA,GAAA,IAAAyM,IAAAhM,IAAA1C,EAAAsY,EAAAkK,GAAAjd,KAAAkJ,EAAA,KAAA,CAAA,GAAA/O,EAAAqO,EAAAmC,KAAAsS,GAAAxiB,EAAA,GAAAN,EAAAgD,GAAA,IAAAhD,EAAA,MAAAW,EAAAZ,GAAAA,EAAAkF,MAAA8J,EAAApG,QAAApG,QAAA,IAAAkK,GAAAnM,EAAAL,EAAA4F,KAAAkJ,EAAA,OAAAzO,EAAA8hB,OAAApiB,EAAA0B,YAAA1B,EAAA8O,EAAAC,EAAAvM,MAAA8J,EAAAwC,EAAAzO,MAAA,QAAA,GAAA2H,EAAA,EAAAC,EAAAoG,EAAAwV,MAAAthB,OAAA0F,EAAAD,EAAAA,IAAA,GAAA7H,EAAAkO,EAAAwV,MAAA7b,GAAA1H,EAAAsY,EAAAzY,GAAA0F,KAAAyG,GAAA,CAAA,GAAArJ,EAAAoL,EAAAmC,KAAArQ,IAAAG,EAAA,IAAA,IAAAM,QAAAS,EAAA,IAAAoL,EAAAzJ,GAAA,MAAAC,EAAA,QAAAqJ,KAAAwC,IAAA/O,EAAAA,EAAAkF,MAAA,EAAAlF,EAAAwC,OAAAuM,EAAAvM,QAAA+J,EAAA1L,QAAAgY,EAAAzY,GAAA,IAAAJ,GAAAyM,EAAA4E,MAAAzQ,EAAA4L,EAAAxK,KAAAkB,EAAA,IAAA,QAAA,GAAAlD,EAAA,IAAA6H,EAAAxF,GAAArC,EAAAC,EAAAgD,GAAAvC,EAAAmH,EAAAwe,UAAA,MAAAnjB,IAAAA,EAAAoL,EAAAmC,KAAAyS,IAAA,IAAAhjB,EAAAgB,KAAAlB,IAAAC,EAAA0B,YAAA1B,IAAAgI,EAAA,EAAAE,EAAAjF,EAAA+E,GAAAA,IAAAzH,EAAAqH,EAAAue,OAAAve,EAAAM,EAAAlI,IAAAW,EAAAyK,KAAAlD,EAAA,OAAAvH,GAAAsC,GAAA2B,kBAAA;AGgBA,AHhBA,GAAA7E,GAAAC,EAAA0jB,GAAAnjB,EAAA,QAAAE,EAAA,gDAAAE,KAAAQ,GAAA,WAAA6B,EAAA4E,EAAAye,iBAAAze,EAAA0e,oBAAA1e,EAAA2e,uBAAA3e,EAAA4e,kBAAA5e,EAAA6e,iBAAArN,GAAA,SAAArZ,GAAAA,EAAA+D,UAAA,8CAAA/D,EAAA6E,iBAAA,cAAArC,QAAA5B,EAAAyK,KAAA,MAAA0D,EAAA,gEAAA/O,EAAA6E,iBAAA,YAAArC,QAAA5B,EAAAyK,KAAA,cAAAgO,EAAA,SAAArZ,GAAAA,EAAA+D,UAAA,kBAAA/D,EAAA6E,iBAAA,cAAArC,QAAA5B,EAAAyK,KAAA,SAAA0D,EAAA,gBAAA/O,EAAA+D,UAAA,wBAAA/D,EAAA6E,iBAAA,YAAArC,QAAA5B,EAAAyK,KAAA,WAAA;AGiBA,GHjBAzK,EAAAA,EAAA4B,QAAA,GAAA0a,QAAAtc,EAAA2Q,KAAA,MAAAoS,GAAA,SAAA3jB,EAAAU,EAAAU,EAAA6B,EAAAC,GAAA,KAAAD,GAAAC,GAAAtC,GAAAA,EAAAM,KAAAlB,IAAA,GAAA,IAAAU,EAAAC,SAAA,IAAA,MAAA8L,GAAA4E,MAAAjQ,EAAAoL,EAAAxK,KAAAtB,EAAAmE,iBAAA7E,GAAA,IAAAoB,EAAA,MAAAyG,QAAA,IAAA,IAAAnH,EAAAC,UAAA,WAAAD,EAAAiD,SAAA5C,cAAA,CAAA,GAAAkH,GAAAvH,EAAAM,aAAA,MAAAkH,EAAAD,GAAAyE,EAAAvE,EAAAjI,EAAAgB,KAAAlB,IAAAU,EAAAiB,YAAAjB,CAAAuH,GAAAC,EAAAA,EAAArH,QAAAL,EAAA,QAAAE,EAAAuU,aAAA,KAAA/M,EAAA,KAAA,MAAAuE,GAAA4E,MAAAjQ,EAAAoL,EAAAxK,KAAAmG,EAAAtD,iBAAA7E,EAAAa,QAAA4O,EAAA,QAAAvH,EAAA,UAAA,IAAA9G,EAAA,MAAAyG,IAAA,QAAAI,GAAAvH,EAAAgE,gBAAA,OAAA,MAAAzE,GAAAD,EAAAU,EAAAU,EAAA6B,EAAAC,IAAAD,IAAAoW,EAAA,SAAApZ,GAAAD,EAAAiD,EAAAjB,KAAA/B,EAAA,MAAA,KAAAgD,EAAAjB,KAAA/B,EAAA,qBAAAmB,EAAAiK,KAAAiD,EAAAkU,MAAAY,QAAA,MAAA5iB,OAAAY,EAAA,GAAA8b,QAAA9b,EAAAmQ,KAAA,MAAA6K,EAAAkK,gBAAA,SAAArmB,EAAAO,GAAA,GAAAA,EAAAA,EAAAK,QAAAH,EAAA;AGkBA,EHlBAc,GAAAvB,IAAAmB,EAAAF,KAAAV,IAAAI,GAAAA,EAAAM,KAAAV,IAAA,IAAA,GAAA0C,GAAAD,EAAAjB,KAAA/B,EAAAO,EAAA,IAAA0C,GAAAlD,GAAAC,EAAAoH,UAAA,KAAApH,EAAAoH,SAAA1G,SAAA,MAAAuC,GAAA,MAAA2E,IAAA,MAAAuU,GAAA5b,EAAA,KAAA,MAAAP,IAAAuC,OAAA,OAAA4Z,EAAA/L,KAAAjQ,EAAAiQ,KAAAjQ,EAAAqQ,KAAA2L,EAAAhc,EAAAumB,KAAAvK,EAAAwH,UAAAxjB,EAAAumB,KAAA,KAAAvmB,EAAAumB,KAAApC,QAAAnkB,EAAAgU,OAAAgI,EAAAkG,WAAAliB,EAAAqE,KAAA2X,EAAA6J,QAAA7lB,EAAAoa,SAAA4B,EAAA2J,MAAA3lB,EAAAkF,SAAA8W,EAAA9W,UAAAtF,EAAA,IAAA6kB,IAAA,SAAA7C,GAAA,iCAAA/f,GAAA,iBAAAigB,GAAA9hB,EAAAumB,KAAAnE,MAAAc,aAAAf,IAAAqE,UAAA,EAAAle,UAAA,EAAAme,MAAA,EAAAC,MAAA,EAAA1mB,GAAAyO,GAAAtL,QAAAkN,KAAA,SAAAzQ,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAAsI,IAAA,IAAA,gBAAAxL,GAAA,MAAAI,GAAAJ,GAAAkC,OAAA,WAAA,IAAAjC,EAAA,EAAAO,EAAA0C,EAAAV,OAAAhC,EAAAP,EAAAA,IAAA,GAAAG,EAAAkF,SAAApC,EAAAjD,GAAAuL,MAAA,OAAA,GAAA,KAAAvI,EAAAuI,KAAAwF,UAAA,GAAA,OAAAhR,GAAAC,EAAA,EAAAO,EAAAgL,KAAAhJ,OAAAhC,EAAAP,EAAAA,IAAA,GAAAS,EAAAuC,EAAAT;AGmBA,AHnBApC,EAAAqQ,KAAAzQ,EAAAwL,KAAAvL,GAAAgD,GAAAhD,EAAA,EAAA,IAAAW,EAAAF,EAAAE,EAAAqC,EAAAT,OAAA5B,IAAA,IAAAQ,EAAA,EAAAV,EAAAU,EAAAA,IAAA,GAAA6B,EAAA7B,KAAA6B,EAAArC,GAAA,CAAAqC,EAAAkG,OAAAvI,IAAA,EAAA,OAAA,MAAAqC,IAAAoR,IAAA,SAAArU,GAAA,GAAAC,GAAAO,EAAAJ,EAAAJ,EAAAwL,MAAA9K,EAAAF,EAAAgC,MAAA,OAAAgJ,MAAAtJ,OAAA,WAAA,IAAAjC,EAAA,EAAAS,EAAAT,EAAAA,IAAA,GAAAG,EAAAkF,SAAAkG,KAAAhL,EAAAP,IAAA,OAAA,KAAAukB,IAAA,SAAAxkB,GAAA,MAAAwL,MAAAwF,UAAAnP,GAAA2J,KAAAxL,GAAA,GAAA,MAAAA,IAAAkC,OAAA,SAAAlC,GAAA,MAAAwL,MAAAwF,UAAAnP,GAAA2J,KAAAxL,GAAA,GAAA,SAAAA,IAAAue,GAAA,SAAAve,GAAA,QAAAA,IAAA,gBAAAA,GAAAkiB,GAAAhhB,KAAAlB,GAAAI,EAAAJ,EAAAwL,KAAA0E,SAAAmS,MAAA7W,KAAA,KAAA,EAAApL,EAAA8B,OAAAlC,EAAAwL,MAAAhJ,OAAA,EAAAgJ,KAAAtJ,OAAAlC,GAAAwC,OAAA,IAAAukB,QAAA,SAAA/mB,EAAAC,GAAA,IAAA,GAAAO,GAAAE,EAAA,EAAAE,EAAA4K,KAAAhJ,OAAApB,KAAA6B,EAAAif,GAAAhhB,KAAAlB,IAAA,gBAAAA,GAAAI,EAAAJ,EAAAC,GAAAuL,KAAA0E,SAAA,EAAAtP,EAAAF,EAAAA,IAAA,IAAAF,EAAAgL,KAAA9K,GAAAF,GAAAA,EAAAqC,eAAArC,IAAAP,GAAA,KAAAO,EAAAG,UAAA;AGoBA,AHpBA,GAAAsC,EAAAA,EAAAof,MAAA7hB,GAAA,GAAAJ,EAAAqQ,KAAA6V,gBAAA9lB,EAAAR,GAAA,CAAAoB,EAAAiK,KAAA7K,EAAA,OAAAA,EAAAA,EAAAmB,WAAA,MAAAP,GAAAA,EAAAoB,OAAA,EAAApC,EAAAgU,OAAAhT,GAAAA,EAAAoK,KAAAwF,UAAA5P,EAAA,UAAApB,IAAAqiB,MAAA,SAAAriB,GAAA,MAAAA,GAAA,gBAAAA,GAAAI,EAAA+B,QAAAqJ,KAAA,GAAApL,EAAAJ,IAAAI,EAAA+B,QAAAnC,EAAA2Q,OAAA3Q,EAAA,GAAAA,EAAAwL,MAAAA,KAAA,IAAAA,KAAA,GAAA7J,WAAA6J,KAAAwb,UAAAxkB,OAAA,IAAAc,IAAA,SAAAtD,EAAAC,GAAA,GAAAO,GAAA,gBAAAR,GAAAI,EAAAJ,EAAAC,GAAAG,EAAAwQ,UAAA5Q,GAAAA,EAAAW,UAAAX,GAAAA,GAAAU,EAAAN,EAAAkQ,MAAA9E,KAAAuF,MAAAvQ,EAAA,OAAAgL,MAAAwF,UAAAtP,GAAAlB,EAAA,KAAAkB,GAAAhB,EAAA,IAAAA,EAAAN,EAAAgU,OAAA1T,KAAAumB,QAAA,SAAAjnB,GAAA,MAAAwL,MAAAlI,IAAA,MAAAtD,EAAAwL,KAAAyF,WAAAzF,KAAAyF,WAAA/O,OAAAlC,OAAAI,EAAAyO,GAAAqY,QAAA9mB,EAAAyO,GAAAoY,QAAA7mB,EAAAC,MAAAqkB,OAAA,SAAA1kB,GAAA,GAAAC,GAAAD,EAAA2B,UAAA,OAAA1B,IAAA,KAAAA,EAAAU,SAAAV,EAAA,MAAAknB,QAAA,SAAAnnB;AGqBA,AHrBA,MAAAI,GAAAwiB,IAAA5iB,EAAA,eAAAonB,aAAA,SAAApnB,EAAAC,EAAAO,GAAA,MAAAJ,GAAAwiB,IAAA5iB,EAAA,aAAAQ,IAAAqmB,KAAA,SAAA7mB,GAAA,MAAA4B,IAAA5B,EAAA,gBAAA8mB,KAAA,SAAA9mB,GAAA,MAAA4B,IAAA5B,EAAA,oBAAAqnB,QAAA,SAAArnB,GAAA,MAAAI,GAAAwiB,IAAA5iB,EAAA,gBAAAgnB,QAAA,SAAAhnB,GAAA,MAAAI,GAAAwiB,IAAA5iB,EAAA,oBAAAsnB,UAAA,SAAAtnB,EAAAC,EAAAO,GAAA,MAAAJ,GAAAwiB,IAAA5iB,EAAA,cAAAQ,IAAA+mB,UAAA,SAAAvnB,EAAAC,EAAAO,GAAA,MAAAJ,GAAAwiB,IAAA5iB,EAAA,kBAAAQ,IAAAgnB,SAAA,SAAAxnB,GAAA,MAAAI,GAAAqnB,SAAAznB,EAAA2B,gBAAAyT,WAAApV,IAAA4mB,SAAA,SAAA5mB,GAAA,MAAAI,GAAAqnB,QAAAznB,EAAAoV,aAAA1M,SAAA,SAAA1I,GAAA,MAAAI,GAAAuD,SAAA3D,EAAA,UAAAA,EAAAoH,iBAAApH,EAAAmH,cAAAE,SAAAjH,EAAAkQ,SAAAtQ,EAAAyS,cAAA,SAAAzS,EAAAC;AGsBA,AHtBAG,EAAAyO,GAAA7O,GAAA,SAAAQ,EAAAE,GAAA,GAAAE,GAAAR,EAAAoR,IAAAhG,KAAAvL,EAAAO,EAAA,OAAAqkB,IAAA3jB,KAAAlB,KAAAU,EAAAF,GAAAE,GAAA,gBAAAA,KAAAE,EAAAR,EAAA8B,OAAAxB,EAAAE,IAAAA,EAAA4K,KAAAhJ,OAAA,IAAA+f,GAAAviB,GAAAI,EAAAgU,OAAAxT,GAAAA,EAAA4K,KAAAhJ,OAAA,GAAAwf,GAAA9gB,KAAAlB,KAAAY,EAAAA,EAAA8mB,WAAAlc,KAAAwF,UAAApQ,EAAAZ,EAAAkI,EAAAlG,KAAAsP,WAAAC,KAAA,SAAAnR,EAAAmD,QAAArB,OAAA,SAAAlC,EAAAC,EAAAO,GAAA,MAAAA,KAAAR,EAAA,QAAAA,EAAA,KAAA,IAAAC,EAAAuC,OAAApC,EAAAqQ,KAAA6V,gBAAArmB,EAAA,GAAAD,IAAAC,EAAA,OAAAG,EAAAqQ,KAAA+N,QAAAxe,EAAAC,IAAA2iB,IAAA,SAAA5iB,EAAAQ,EAAAE,GAAA,IAAA,GAAAE,MAAAQ,EAAApB,EAAAQ,GAAAY,GAAA,IAAAA,EAAAT,WAAAD,IAAAT,GAAA,IAAAmB,EAAAT,WAAAP,EAAAgB,GAAAmd,GAAA7d,KAAA,IAAAU,EAAAT,UAAAC,EAAAyK,KAAAjK,GAAAA,EAAAA,EAAAZ,EAAA,OAAAI,IAAA6mB,QAAA,SAAAznB,EAAAC,GAAA,IAAA,GAAAO,MAAAR,EAAAA,EAAAA,EAAAqkB,YAAA,IAAArkB,EAAAW,UAAAX,IAAAC,GAAAO,EAAA6K,KAAArL,EAAA,OAAAQ,KAAA,IAAA6B,IAAA,6JAAAshB,GAAA,6BAAAgE,GAAA,OAAAC,GAAA,0EAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,0BAAAC,GAAA,yCAAAC,GAAA,GAAAhL,QAAA,OAAA7a,GAAA,WAAA,KAAA4B,GAAA,uBAAAkkB,GAAA,oCAAAC,GAAA,uBAAAC,GAAA,2CAAAC;AGuBA,AHvBApO,QAAA,EAAA,+BAAA,aAAAqO,QAAA,EAAA,aAAA,eAAAC,OAAA,EAAA,UAAA,YAAAC,IAAA,EAAA,iBAAA,oBAAAC,IAAA,EAAA,qBAAA,yBAAAC,KAAA,EAAA,mCAAA,uBAAAC,MAAA,EAAA,QAAA,UAAAzK,UAAA,EAAA,GAAA,KAAA0K,GAAAzmB,GAAAxB,GAAAkoB,GAAAD,GAAAjmB,YAAAhC,EAAA2B,cAAA,OAAA+lB,IAAAS,SAAAT,GAAApO,OAAAoO,GAAAjT,MAAAiT,GAAAU,MAAAV,GAAAW,SAAAX,GAAAY,QAAAZ,GAAAE,MAAAF,GAAAa,GAAAb,GAAAI,GAAAtoB,EAAAyD,QAAAyR,gBAAAgT,GAAAnK,UAAA,EAAA,SAAA,WAAA/d,EAAAyO,GAAAtL,QAAAkB,KAAA,SAAAzE,GAAA,MAAAI,GAAAqT,OAAAjI,KAAA,SAAAxL,GAAA,MAAAA,KAAAC,EAAAG,EAAAqE,KAAA+G,MAAAA,KAAAqB,QAAAuc,QAAA5d,KAAA,IAAAA,KAAA,GAAA3I,eAAAjC,GAAAyoB,eAAArpB;AGwBA,EHxBA,KAAAA,EAAAsR,UAAA9O,SAAA8mB,QAAA,SAAAtpB,GAAA,GAAAI,EAAA0B,WAAA9B,GAAA,MAAAwL,MAAAnL,KAAA,SAAAJ,GAAAG,EAAAoL,MAAA8d,QAAAtpB,EAAAgC,KAAAwJ,KAAAvL,KAAA,IAAAuL,KAAA,GAAA,CAAA,GAAAvL,GAAAG,EAAAJ,EAAAwL,KAAA,GAAA3I,eAAAqO,GAAA,GAAAqB,OAAA,EAAA/G,MAAA,GAAA7J,YAAA1B,EAAAiX,aAAA1L,KAAA,IAAAvL,EAAAuR,IAAA,WAAA,IAAA,GAAAxR,GAAAwL,KAAAxL,EAAAoV,YAAA,IAAApV,EAAAoV,WAAAzU,UAAAX,EAAAA,EAAAoV,UAAA,OAAApV,KAAAopB,OAAA5d,MAAA,MAAAA,OAAA+d,UAAA,SAAAvpB,GAAA,MAAAI,GAAA0B,WAAA9B,GAAAwL,KAAAnL,KAAA,SAAAJ,GAAAG,EAAAoL,MAAA+d,UAAAvpB,EAAAgC,KAAAwJ,KAAAvL,MAAAuL,KAAAnL,KAAA,WAAA,GAAAJ,GAAAG,EAAAoL,MAAAhL,EAAAP,EAAAyI,UAAAlI,GAAAgC,OAAAhC,EAAA8oB,QAAAtpB,GAAAC,EAAAmpB,OAAAppB,MAAAwpB,KAAA,SAAAxpB,GAAA,GAAAC,GAAAG,EAAA0B,WAAA9B,EAAA,OAAAwL,MAAAnL,KAAA,SAAAG,GAAAJ,EAAAoL,MAAA8d,QAAArpB,EAAAD,EAAAgC,KAAAwJ,KAAAhL,GAAAR,MAAAypB,OAAA;AGyBA,AHzBA,MAAAje,MAAAkZ,SAAArkB,KAAA,WAAAD,EAAAuD,SAAA6H,KAAA,SAAApL,EAAAoL,MAAAke,YAAAle,KAAAiH,cAAAhF,OAAA2b,OAAA,WAAA,MAAA5d,MAAAme,SAAArY,WAAA,EAAA,SAAAtR,IAAA,IAAAwL,KAAA7K,UAAA,KAAA6K,KAAA7K,WAAA6K,KAAA5I,YAAA5C,MAAA4pB,QAAA,WAAA,MAAApe,MAAAme,SAAArY,WAAA,EAAA,SAAAtR,IAAA,IAAAwL,KAAA7K,UAAA,KAAA6K,KAAA7K,WAAA6K,KAAA0L,aAAAlX,EAAAwL,KAAA4J,eAAAyU,OAAA,WAAA,IAAAnoB,GAAA8J,KAAA,IAAA,MAAAA,MAAAme,SAAArY,WAAA,EAAA,SAAAtR,GAAAwL,KAAA7J,WAAAuV,aAAAlX,EAAAwL,OAAA,IAAA8F,UAAA9O,OAAA,CAAA,GAAAxC,GAAAI,EAAA0pB,MAAAxY,UAAA,OAAA9F,MAAAwF,UAAA5Q,EAAAkQ,MAAAtQ,EAAAwL,MAAA,SAAAA,KAAAkF,YAAAqZ,MAAA,WAAA,IAAAroB,GAAA8J,KAAA,IAAA,MAAAA,MAAAme,SAAArY,WAAA,EAAA,SAAAtR;AG0BA,AH1BAwL,KAAA7J,WAAAuV,aAAAlX,EAAAwL,KAAA6Y,cAAA,IAAA/S,UAAA9O,OAAA,CAAA,GAAAxC,GAAAI,EAAA0pB,MAAAxY,UAAA,OAAA9F,MAAAwF,UAAA5Q,EAAAkQ,MAAA9E,KAAAxL,GAAA,QAAAwL,KAAAkF,YAAA7J,OAAA,SAAA7G,EAAAC,GAAA,IAAA,GAAAO,GAAAE,EAAA,EAAA,OAAAF,EAAAgL,KAAA9K,IAAAA,MAAAV,GAAAI,EAAA8B,OAAAlC,GAAAQ,IAAAgC,WAAAvC,GAAA,IAAAO,EAAAG,WAAAP,EAAA+X,UAAA3X,EAAAmC,qBAAA,MAAAvC,EAAA+X,WAAA3X,KAAAA,EAAAmB,YAAAnB,EAAAmB,WAAA6F,YAAAhH,GAAA,OAAAgL,OAAAqB,MAAA,WAAA,IAAA,GAAA7M,GAAAC,EAAA,EAAA,OAAAD,EAAAwL,KAAAvL,IAAAA,IAAA,IAAA,IAAAD,EAAAW,UAAAP,EAAA+X,UAAAnY,EAAA2C,qBAAA,MAAA3C,EAAAoV,YAAApV,EAAAwH,YAAAxH,EAAAoV,WAAA,OAAA5J,OAAA+G,MAAA,SAAAvS,EAAAC,GAAA,MAAAD,GAAA,MAAAA,GAAA,EAAAA,EAAAC,EAAA,MAAAA,EAAAD,EAAAC,EAAAuL,KAAAgG,IAAA,WAAA,MAAApR,GAAAmS,MAAA/G,KAAAxL,EAAAC,MAAA+pB,KAAA,SAAAhqB;AG2BA,AH3BA,MAAAI,GAAAqT,OAAAjI,KAAA,SAAAxL,GAAA,GAAAQ,GAAAgL,KAAA,OAAA9K,EAAA,EAAAE,EAAA4K,KAAAhJ,MAAA,IAAAxC,IAAAC,EAAA,MAAA,KAAAO,EAAAG,SAAAH,EAAAuD,UAAAlD,QAAA8iB,GAAA,IAAA1jB,CAAA,IAAA,gBAAAD,KAAAgoB,GAAA9mB,KAAAlB,KAAAI,EAAAyD,QAAAyR,gBAAA4S,GAAAhnB,KAAAlB,MAAAI,EAAAyD,QAAAsR,oBAAAwS,GAAAzmB,KAAAlB,MAAAsoB,IAAAT,GAAA/hB,KAAA9F,KAAA,GAAA,KAAA,GAAAe,eAAA,CAAAf,EAAAA,EAAAa,QAAA+mB,GAAA,YAAA,KAAA,KAAAhnB,EAAAF,EAAAA,IAAAF,EAAAgL,KAAA9K,OAAA,IAAAF,EAAAG,WAAAP,EAAA+X,UAAA3X,EAAAmC,qBAAA,MAAAnC,EAAAuD,UAAA/D,EAAAQ,GAAA,EAAA,MAAAY,KAAAZ,GAAAgL,KAAAqB,QAAAuc,OAAAppB,IAAA,KAAAA,EAAAsR,UAAA9O,SAAAknB,YAAA,SAAA1pB,GAAA,MAAA0B,IAAA8J,KAAA,IAAAA,KAAAhJ,OAAAgJ,KAAAwF,UAAA5Q,EAAAA,EAAA0B,WAAA9B,GAAAA,IAAAA,GAAA,cAAAA,GAAAwL,KAAApL,EAAA0B,WAAA9B,GAAAwL,KAAAnL,KAAA,SAAAJ,GAAA,GAAAO,GAAAJ,EAAAoL,MAAA9K,EAAAF,EAAAwpB;AG4BA,AH5BAxpB,EAAAkpB,YAAA1pB,EAAAgC,KAAAwJ,KAAAvL,EAAAS,OAAA,gBAAAV,KAAAA,EAAAI,EAAAJ,GAAAiqB,UAAAze,KAAAnL,KAAA,WAAA,GAAAJ,GAAAuL,KAAA6Y,YAAA7jB,EAAAgL,KAAA7J,UAAAvB,GAAAoL,MAAA3E,SAAA5G,EAAAG,EAAAH,GAAA4pB,OAAA7pB,GAAAI,EAAAI,GAAA4oB,OAAAppB,OAAAiqB,OAAA,SAAAjqB,GAAA,MAAAwL,MAAA3E,OAAA7G,GAAA,IAAA2pB,SAAA,SAAA3pB,EAAAQ,EAAAE,GAAAV,KAAAgK,OAAAqH,SAAArR,EAAA,IAAAY,GAAAQ,EAAA6B,EAAAC,EAAA2E,EAAA,EAAAI,EAAAjI,EAAA,GAAAkI,KAAAC,EAAAqD,KAAAhJ,MAAA,KAAApC,EAAAyD,QAAAgT,YAAA1O,EAAA,GAAA,gBAAAF,IAAAkgB,GAAAjnB,KAAA+G,GAAA,MAAAuD,MAAAnL,KAAA,WAAAD,EAAAoL,MAAAme,SAAA3pB,EAAAQ,EAAAE,IAAA,IAAAN,EAAA0B,WAAAmG,GAAA,MAAAuD,MAAAnL,KAAA,SAAAO,GAAA,GAAAQ,GAAAhB,EAAAoL,KAAAxL,GAAA,GAAAiI,EAAAjG,KAAAwJ,KAAA5K,EAAAJ,EAAAY,EAAA4oB,OAAA/pB,GAAAmB,EAAAuoB,SAAA3pB,EAAAQ,EAAAE,IAAA,IAAA8K,KAAA,GAAA,CAAA,GAAA5K,EAAAR,EAAAiS,cAAArS,EAAAwL,KAAAtD,GAAAjF,EAAArC,EAAA4R,SAAApR,EAAA6B,EAAAmS,WAAA,IAAAnS,EAAAwP,WAAAjQ,SAAAS,EAAA7B,GAAAA,EAAA,IAAAZ,EAAAA,GAAAJ,EAAAuD,SAAAvC,EAAA;AG6BA,AH7BA8B,EAAAtC,EAAA0R,WAAAnK,EAAA,EAAAA,EAAAN,EAAAA,IAAAnH,EAAAsB,KAAAxB,GAAAJ,EAAAuD,SAAA6H,KAAA3D,GAAA,SAAAnF,GAAA8I,KAAA3D,GAAA,SAAA2D,KAAA3D,GAAAA,IAAA3E,EAAAD,EAAA7C,EAAAmS,MAAAtP,GAAA,GAAA,GAAAA,GAAA7B,EAAA,KAAA8G,EAAA1F,QAAApC,EAAAC,KAAA6H,EAAA,SAAAlI,EAAAC,GAAAA,EAAAiqB,IAAA9pB,EAAA+pB,KAAA/pB,EAAA+pB,MAAAC,IAAAnqB,EAAAiqB,IAAAhmB,KAAA,MAAAgF,SAAA,SAAA8J,OAAA,EAAAiK,QAAA,EAAAoN,UAAA,IAAAjqB,EAAAiJ,MAAA,WAAAjJ,EAAAgT,YAAAnT,EAAAwE,MAAAxE,EAAA0kB,aAAA1kB,EAAA8D,WAAA,IAAAlD,QAAAwnB,GAAA,KAAApoB,EAAA0B,YAAA1B,EAAA0B,WAAA6F,YAAAvH,KAAA,MAAAuL,SAAApL,EAAAiS,cAAA,SAAArS,EAAAQ,EAAAE,GAAA,GAAAU,GAAA6B,EAAAC,EAAA2E,EAAA7H,EAAA,EAAA,OAAAQ,GAAAA,GAAAI,EAAAJ,GAAAA,EAAA,IAAAA,GAAAqC,eAAArC,EAAA,IAAAA,EAAA,mBAAAA,GAAA8B,yBAAA9B,EAAAI,GAAA,IAAAZ,EAAAwC,QAAA,gBAAAqF,IAAAA,EAAArF,OAAA,KAAAhC,IAAAI,GAAA,MAAAiH,EAAA7C,OAAA,KAAAijB,GAAA/mB,KAAA2G,KAAAzH,EAAAyD,QAAAgT,aAAAsR,GAAAjnB,KAAA2G,MAAAzH,EAAAyD,QAAAC,aAAAokB,GAAAhnB,KAAA2G,MAAA5E,GAAA;AG8BA,AH9BA7B,EAAAhB,EAAAkqB,UAAAziB,GAAA3E,EAAA9B,IAAAnB,GAAAmB,IAAAA,EAAAZ,EAAA8B,yBAAAlC,EAAA0pB,MAAA9pB,EAAAQ,EAAAY,EAAAV,GAAAuC,IAAA7C,EAAAkqB,UAAAziB,GAAA3E,GAAA9B,KAAAoR,SAAApR,EAAAkR,UAAArP,IAAA7C,EAAAkqB,aAAAlqB,EAAAC,MAAAsG,SAAA,SAAA4jB,UAAA,UAAArT,aAAA,SAAAsT,YAAA,QAAAC,WAAA,eAAA,SAAAzqB,EAAAC,GAAAG,EAAAyO,GAAA7O,GAAA,SAAAQ,GAAA,GAAAE,GAAAE,EAAA,EAAAQ,KAAA6B,EAAA7C,EAAAI,GAAA0C,EAAAD,EAAAT,OAAAqF,EAAA,IAAA2D,KAAAhJ,QAAAgJ,KAAA,GAAA7J,UAAA,KAAA,MAAAkG,GAAAA,GAAA,KAAAA,EAAAlH,UAAA,IAAAkH,EAAA4K,WAAAjQ,SAAA,IAAAU,EAAA,MAAAD,GAAAhD,GAAAuL,KAAA,IAAAA,IAAA,MAAAtI,EAAAtC,EAAAA,IAAAF,GAAAE,EAAA,EAAA4K,KAAA+G,OAAA,GAAA/G,MAAAuF,MAAA3Q,EAAA6C,EAAArC,IAAAX,GAAAS,GAAAU,EAAAA,EAAA4I,OAAAtJ,EAAA,OAAA8K,MAAAwF,UAAA5P,EAAApB,EAAAiD,EAAAyN,aAAAtQ,EAAAmD,QAAAgP,MAAA,SAAAvS,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,EAAA6B,CAAA,IAAA7C,EAAAyD,QAAAC,YAAA1D,EAAAoa,SAAAxa,KAAAkoB,GAAAhnB,KAAA,IAAAlB,EAAA2D,SAAA,KAAAV,EAAAjD,EAAA8V,WAAA,IAAAgT,GAAA/kB,UAAA/D,EAAA4D;AG+BA,AH/BAklB,GAAAthB,YAAAvE,EAAA6lB,GAAA1T,eAAAhV,EAAAyD,QAAAwS,cAAAjW,EAAAyD,QAAA2S,gBAAA,IAAAxW,EAAAW,UAAA,KAAAX,EAAAW,UAAAP,EAAAoa,SAAAxa,IAAA,IAAAwD,GAAAxD,EAAAiD,GAAAvC,EAAAkE,GAAA5E,GAAAY,EAAAgE,GAAA3B,GAAA7B,EAAA,EAAAV,EAAAU,KAAAA,EAAAR,EAAAQ,IAAAoC,GAAA9C,EAAAU,GAAAR,EAAAQ,GAAA,IAAAnB,IAAA6C,GAAA9C,EAAAiD,GAAAzC,GAAA,IAAAE,EAAAkE,GAAA5E,GAAAY,EAAAgE,GAAA3B,GAAA7B,EAAA,EAAAV,EAAAU,KAAAA,EAAA0B,GAAApC,EAAAU,GAAAR,EAAAQ,GAAA,OAAAV,GAAAE,EAAA,KAAAqC,GAAA6mB,MAAA,SAAA9pB,EAAAC,EAAAO,EAAAE,GAAA,GAAAU,GAAA6B,EAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAAoE,EAAAC,EAAAE,EAAAqC,EAAAxO,EAAA,EAAAyO,IAAA,KAAA/O,GAAA,mBAAAA,GAAAqC,yBAAArC,EAAAW,GAAAqC,EAAAhD,IAAAW,GAAAioB,GAAA,OAAA3lB,EAAAlD,EAAAO,IAAAA,IAAA,GAAA,gBAAA2C,KAAAA,GAAA,IAAAA,EAAA,CAAA,GAAA,gBAAAA,GAAA,GAAA6kB,GAAA7mB,KAAAgC,GAAA,CAAA,IAAAD,EAAAA,GAAAb,GAAAnC,GAAAkI,EAAAA,GAAAlF,EAAAL,YAAA3C,EAAAsC,cAAA,QAAAW,EAAAA,EAAArC,QAAA+mB,GAAA,aAAA/f,GAAAggB,GAAA/hB,KAAA5C,KAAA,GAAA,KAAA,GAAAnC,cAAAkH,EAAAqgB,GAAAzgB,IAAAygB,GAAAnK,SAAAjW,EAAAD,EAAA,GAAAE,EAAApE,UAAAkE,EAAA,GAAA/E,EAAA+E,EAAA,GAAAC,KAAAC,EAAAA,EAAAyO;AGgCA,AHhCA,IAAAxW,EAAAyD,QAAAwR,MAAA,IAAA9I,EAAAub,GAAA5mB,KAAAgC,GAAAsJ,EAAA,UAAA3E,GAAA0E,EAAA,YAAAtE,EAAA,IAAAsE,KAAApE,EAAAsK,WAAAtK,EAAAiN,YAAAjN,EAAAiN,WAAA3C,WAAArR,EAAAoL,EAAAhK,OAAA,EAAApB,GAAA,IAAAA,EAAAhB,EAAAuD,SAAA6I,EAAApL,GAAA,WAAAoL,EAAApL,GAAAqR,WAAAjQ,QAAAgK,EAAApL,GAAAO,WAAA6F,YAAAgF,EAAApL,KAAAhB,EAAAyD,QAAAsR,mBAAAwS,GAAAzmB,KAAAgC,IAAAiF,EAAA+O,aAAAjX,EAAAopB,eAAA1B,GAAA7hB,KAAA5C,GAAA,IAAAiF,EAAAiN,YAAAlS,EAAAiF,EAAAsK,WAAAtK,EAAAlF,EAAA2T,cAAA1T,GAAAjD,EAAAopB,eAAAnmB,EAAAA,GAAAvC,SAAAqO,EAAA3D,KAAAnI,GAAA8L,EAAA5O,EAAAkQ,MAAAtB,EAAA9L,GAAA,GAAAiF,IAAAlF,EAAAuE,YAAAW,GAAAjF,EAAAiF,EAAAlF,EAAA,OAAA7C,EAAAyD,QAAAiT,cAAA,IAAAvW,EAAA,EAAA,OAAA2C,EAAA8L,EAAAzO,IAAAA,IAAAH,EAAAuD,SAAAT,EAAA,SAAA4B,GAAA5B,GAAA,mBAAAA,GAAAP,sBAAAvC,EAAA2B,KAAAmB,EAAAP,qBAAA,SAAAmC,GAAA,IAAAtE,EAAA,IAAAkM,EAAA,SAAA1M,GAAA,OAAAA,EAAAkE,MAAAkkB,GAAAlnB,KAAAlB,EAAAkE,MAAAxD,EAAAA,EAAA2K,KAAArL,EAAA2B,WAAA3B,EAAA2B,WAAA6F,YAAAxH,GAAAA,GAAAQ,EAAAoC,YAAA5C,GAAA;AGiCA,EHjCAO,EAAA,EAAA,OAAA2C,EAAA8L,EAAAzO,IAAAA,IAAAH,EAAAuD,SAAAT,EAAA,WAAAwJ,EAAAxJ,KAAA1C,EAAAoC,YAAAM,GAAA,mBAAAA,GAAAP,uBAAAoM,EAAA3O,EAAA2B,KAAA3B,EAAAkQ,SAAApN,EAAAP,qBAAA,WAAA+J,GAAAsC,EAAA7F,OAAAkI,MAAArC,GAAAzO,EAAA,EAAA,GAAAyJ,OAAA+E,IAAAxO,GAAAwO,EAAAvM,QAAA,OAAAwM,IAAAmJ,UAAA,SAAAnY,EAAAC,GAAA,IAAA,GAAAO,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAA,EAAAC,EAAA9C,EAAAuE,QAAAkD,EAAAzH,EAAAqX,MAAAxP,EAAA7H,EAAAyD,QAAAuS,cAAAlO,EAAA9H,EAAAiD,MAAAiZ,QAAA,OAAA1b,EAAAZ,EAAAiD,IAAAA,IAAA,IAAAhD,GAAAG,EAAA6X,WAAArX,MAAAF,EAAAE,EAAAsC,GAAA1C,EAAAE,GAAAmH,EAAAnH,IAAA,CAAA,GAAAF,EAAA2C,OAAA,IAAA/B,IAAAZ,GAAA2C,OAAA+E,EAAA9G,GAAAhB,EAAAiD,MAAAwD,OAAAjG,EAAAQ,GAAAhB,EAAAgd,YAAAxc,EAAAQ,EAAAZ,EAAA4C,OAAAyE,GAAAnH,WAAAmH,GAAAnH,GAAAuH,QAAArH,GAAAsC,GAAAtC,EAAA8D,gBAAA9D,EAAA8D,gBAAAxB,GAAAtC,EAAAsC,GAAA,KAAA9C,EAAAsX,WAAArM,KAAA3K,QAAA,WAAA,GAAAV,GAAAC,CAAAG,GAAAsqB,QAAA,SAAA1qB,GAAAA,EAAAA,EAAAe,aAAA,IAAAd,GAAA,wBAAA6F,KAAA9F,IAAA,wBAAA8F,KAAA9F,IAAA,qCAAA8F,KAAA9F,IAAA,kBAAA8F,KAAA9F,IAAAA,EAAAwO,QAAA,cAAA,GAAA,gCAAA1I,KAAA9F;AGkCA,AHlCA,OAAA2qB,QAAA1qB,EAAA,IAAA,GAAA2qB,QAAA3qB,EAAA,IAAA,MAAAD,EAAAI,EAAAsqB,QAAAznB,EAAA4nB,WAAA5qB,KAAAD,EAAA2qB,UAAA1qB,EAAAD,EAAA2qB,UAAA,EAAA1qB,EAAA2qB,QAAA5qB,EAAA4qB,SAAA3qB,EAAA6qB,SAAA7qB,EAAA8qB,QAAA,GAAA3qB,EAAAuqB,QAAA1qB,EAAAG,EAAA4qB,IAAA,WAAA,QAAAhrB,GAAAC,EAAAO,GAAA,MAAA,IAAAR,GAAA6O,GAAAjB,KAAA3N,EAAAO,GAAAJ,EAAAmD,QAAA,EAAAvD,EAAAwL,MAAAxL,EAAAirB,WAAAzf,KAAAxL,EAAA6O,GAAA7O,EAAA2N,UAAAnC,OAAAxL,EAAA6O,GAAAoB,YAAAjQ,EAAAA,EAAAgrB,IAAAxf,KAAAwf,IAAAhrB,EAAA6O,GAAAjB,KAAA,QAAApN,GAAAA,EAAAE,GAAA,MAAAA,IAAAA,YAAAN,MAAAM,YAAAV,MAAAU,EAAAV,EAAAU,IAAAN,EAAAyO,GAAAjB,KAAA5L,KAAAwJ,KAAAhL,EAAAE,EAAAT,IAAAD,EAAA6O,GAAAjB,KAAAD,UAAA3N,EAAA6O,EAAA,IAAA5O,GAAAD,EAAAY,EAAA,OAAAZ,MAAA,IAAA2F,IAAAmB,GAAAI,GAAAgkB,GAAA,kBAAAC,GAAA,kBAAAC,GAAA,4BAAAC,GAAA,UAAAxlB,GAAA,GAAAqX,QAAA,KAAAxQ,EAAA,SAAA,KAAAlG,GAAA,GAAA0W,QAAA,KAAAxQ,EAAA,kBAAA,KAAA4e,GAAA,GAAApO,QAAA,YAAAxQ,EAAA,IAAA,KAAAhG,MAAA6kB;AGmCA,AHnCAC,SAAA,WAAAC,WAAA,SAAAhmB,QAAA,SAAAimB,IAAAC,cAAA,EAAAC,WAAA,IAAAC,WAAA,GAAA3lB,IAAA,MAAA,QAAA,SAAA,QAAAf,IAAA,SAAA,IAAA,MAAA,MAAA2mB,GAAA1rB,EAAAyO,GAAAiT,MAAA1hB,GAAAyO,GAAAtL,QAAA8B,IAAA,SAAArF,EAAAQ,GAAA,MAAAJ,GAAAqT,OAAAjI,KAAA,SAAAxL,EAAAQ,EAAAE,GAAA,MAAAA,KAAAT,EAAAG,EAAAoF,MAAAxF,EAAAQ,EAAAE,GAAAN,EAAAiF,IAAArF,EAAAQ,IAAAR,EAAAQ,EAAA8Q,UAAA9O,OAAA,IAAA8K,KAAA,WAAA,MAAA/H,IAAAiG,MAAA,IAAA+B,KAAA,WAAA,MAAAhI,IAAAiG,OAAAsW,OAAA,SAAA9hB,EAAAC,GAAA,GAAAO,GAAA,iBAAAR,EAAA,OAAAI,GAAA0B,WAAA9B,IAAAI,EAAA0B,WAAA7B,GAAA6rB,GAAAza,MAAA7F,KAAA8F,WAAA9F,KAAAnL,KAAA,YAAAG,EAAAR,EAAAoF,GAAAoG,OAAApL,EAAAoL,MAAA8B,OAAAlN,EAAAoL,MAAA+B,YAAAnN,EAAAmD,QAAA6I,UAAA0B,SAAAiD,IAAA,SAAA/Q,EAAAC,GAAA,GAAAA,EAAA,CAAA,GAAAO,GAAAmF,GAAA3F,EAAA,UAAA,OAAA,KAAAQ,EAAA,IAAAA;AGoCA,AHpCAurB,WAAAC,aAAA,EAAAJ,YAAA,EAAAC,YAAA,EAAA/d,SAAA,EAAAme,SAAA,EAAAC,QAAA,EAAAC,QAAA,EAAAhf,MAAA,GAAAif,UAAAC,QAAAjsB,EAAAyD,QAAA2R,SAAA,WAAA,cAAAhQ,MAAA,SAAAxF,EAAAQ,EAAAE,EAAAE,GAAA,GAAAZ,GAAA,IAAAA,EAAAW,UAAA,IAAAX,EAAAW,UAAAX,EAAAwF,MAAA,CAAA,GAAApE,GAAA6B,EAAAC,EAAA2E,EAAAzH,EAAA+L,UAAA3L,GAAAyH,EAAAjI,EAAAwF,KAAA,IAAAhF,EAAAJ,EAAAgsB,SAAAvkB,KAAAzH,EAAAgsB,SAAAvkB,GAAA9C,GAAAkD,EAAAJ,IAAA3E,EAAA9C,EAAAgM,SAAA5L,IAAAJ,EAAAgM,SAAAvE,GAAAnH,IAAAT,EAAA,MAAAiD,IAAA,OAAAA,KAAA9B,EAAA8B,EAAA6N,IAAA/Q,GAAA,EAAAY,MAAAX,EAAAmB,EAAA6G,EAAAzH,EAAA,IAAAyC,QAAAvC,GAAA,WAAAuC,IAAA7B,EAAAkqB,GAAAxlB,KAAApF,MAAAA,GAAAU,EAAA,GAAA,GAAAA,EAAA,GAAA+E,WAAA/F,EAAAiF,IAAArF,EAAAQ,IAAAyC,EAAA,YAAA,MAAAvC,GAAA,WAAAuC,GAAAiP,MAAAxR,KAAA,WAAAuC,IAAA7C,EAAA2rB,UAAAlkB,KAAAnH,GAAA,MAAAwC,GAAA,OAAAA,KAAAxC,EAAAwC,EAAA+W,IAAAja,EAAAU,EAAAE,MAAAX,IAAA,IAAAgI,EAAAzH,GAAAE,EAAA,MAAAwH,OAAA7C,IAAA,SAAArF,EAAAQ,EAAAE,EAAAE,GAAA,GAAAQ,GAAA6B,EAAAC,EAAA2E,EAAAzH,EAAA+L,UAAA3L;AGqCA,AHrCA,MAAAA,GAAAJ,EAAAgsB,SAAAvkB,KAAAzH,EAAAgsB,SAAAvkB,GAAA9C,GAAA/E,EAAAwF,MAAAqC,IAAA3E,EAAA9C,EAAAgM,SAAA5L,IAAAJ,EAAAgM,SAAAvE,GAAA3E,GAAA,OAAAA,KAAA9B,EAAA8B,EAAA6N,IAAA/Q,GAAA,EAAAY,IAAAQ,IAAAnB,IAAAmB,EAAAuE,GAAA3F,EAAAQ,IAAA,WAAAY,GAAAZ,IAAAkrB,MAAAtqB,EAAAsqB,GAAAlrB,IAAAE,GAAAE,IAAAX,GAAAgD,EAAAkD,WAAA/E,GAAAV,GAAAN,EAAA6R,UAAAhP,GAAAA,GAAA,EAAA7B,GAAAA,GAAAkrB,KAAA,SAAAtsB,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,IAAA,KAAAR,IAAAX,GAAAmB,EAAAR,GAAAZ,EAAAwF,MAAA5E,GAAAZ,EAAAwF,MAAA5E,GAAAX,EAAAW,EAAAF,GAAAF,EAAAwB,KAAAhC,EAAA,KAAAY,IAAAX,GAAAD,EAAAwF,MAAA5E,GAAAQ,EAAAR,EAAA,OAAAF,MAAAV,EAAAsX,iBAAA3R,GAAA,SAAA3F,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAAqU,iBAAAtX,EAAA,MAAAkD,EAAAlD,EAAAwF,KAAA,OAAAvC,KAAAzC,EAAAyC,EAAAhD,GAAA,KAAAO,IAAAJ,EAAAkF,SAAAtF,EAAA6C,cAAAqQ,gBAAAlT,KAAAQ,EAAAJ,EAAAoF,MAAAxF,EAAAC,IAAAuG,GAAAtF,KAAAV,IAAA6qB,GAAAnqB,KAAAjB,KAAAS,EAAAwC,EAAA8D,MAAApG,EAAAsC,EAAAqpB,SAAAnrB,EAAA8B,EAAAspB,SAAAtpB,EAAAqpB,SAAArpB,EAAAspB,SAAAtpB,EAAA8D,MAAAxG,EAAAA,EAAAyC,EAAA+D,MAAA9D,EAAA8D,MAAAtG,EAAAwC,EAAAqpB,SAAA3rB,EAAAsC,EAAAspB,SAAAprB;AGsCA,AHtCAZ,GAAAI,EAAAsS,gBAAAuZ,eAAA9mB,GAAA,SAAA3F,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,EAAAZ,EAAAysB,cAAAzsB,EAAAysB,aAAAxsB,GAAAmB,EAAApB,EAAAwF,KAAA,OAAA,OAAA5E,GAAAQ,GAAAA,EAAAnB,KAAAW,EAAAQ,EAAAnB,IAAAuG,GAAAtF,KAAAN,KAAAwqB,GAAAlqB,KAAAjB,KAAAO,EAAAY,EAAAsrB,KAAAhsB,EAAAV,EAAA2sB,cAAA3sB,EAAA2sB,aAAAD,KAAAhsB,IAAAV,EAAA2sB,aAAAD,KAAA1sB,EAAAysB,aAAAC,MAAAtrB,EAAAsrB,KAAA,aAAAzsB,EAAA,MAAAW,EAAAA,EAAAQ,EAAAwrB,UAAA,KAAAxrB,EAAAsrB,KAAAlsB,EAAAE,IAAAV,EAAA2sB,aAAAD,KAAAhsB,IAAA,KAAAE,EAAA,OAAAA,IAAAR,EAAAC,MAAA,SAAA,SAAA,SAAAL,EAAAC,GAAAG,EAAAgM,SAAAnM,IAAA8Q,IAAA,SAAA/Q,EAAAQ,EAAAE,GAAA,MAAAF,GAAA,IAAAR,EAAAqG,aAAA,SAAAV,GAAA3F,EAAA,WAAAoG,GAAApG,EAAAC,EAAAS,GAAAN,EAAAksB,KAAAtsB,EAAAurB,GAAA,WAAA,MAAAnlB,IAAApG,EAAAC,EAAAS,KAAA,QAAAuZ,IAAA,SAAAja,EAAAQ,EAAAE,GAAA,MAAAkF,IAAA5F,EAAAQ,EAAAE,EAAAuF,GAAAjG,EAAAC,EAAAS,EAAAN,EAAAyD,QAAA0C,WAAA,eAAAnG,EAAAiF,IAAArF,EAAA,cAAA,OAAAI,EAAAyD,QAAAiK,UAAA1N,EAAAgM,SAAA0B;AGuCA,AHvCAiD,IAAA,SAAA/Q,EAAAC,GAAA,MAAAkrB,IAAAjqB,MAAAjB,GAAAD,EAAAysB,aAAAzsB,EAAAysB,aAAAvqB,OAAAlC,EAAAwF,MAAAtD,SAAA,IAAA,IAAAiE,WAAA+W,OAAA2P,IAAA,GAAA5sB,EAAA,IAAA,IAAAga,IAAA,SAAAja,EAAAC,GAAA,GAAAO,GAAAR,EAAAwF,MAAA9E,EAAAV,EAAAysB,aAAA7rB,EAAAR,EAAA6R,UAAAhS,GAAA,iBAAA,IAAAA,EAAA,IAAA,GAAAmB,EAAAV,GAAAA,EAAAwB,QAAA1B,EAAA0B,QAAA,EAAA1B,GAAA2M,KAAA,EAAAlN,GAAA,GAAA,KAAAG,EAAA4D,KAAA5C,EAAAP,QAAAqqB,GAAA,MAAA1qB,EAAAkE,kBAAAlE,EAAAkE,gBAAA,UAAAhE,IAAAA,EAAAwB,UAAA1B,EAAA0B,OAAAgpB,GAAAhqB,KAAAE,GAAAA,EAAAP,QAAAqqB,GAAAtqB,GAAAQ,EAAA,IAAAR,MAAAR,EAAA,WAAAA,EAAAyD,QAAAyS,sBAAAlW,EAAAgM,SAAAoL,aAAAzG,IAAA,SAAA/Q,EAAAC,GAAA,MAAAG,GAAAksB,KAAAtsB,GAAAyF,QAAA,gBAAA,WAAA,MAAAxF,GAAA0F,GAAA3F,EAAA,eAAA,aAAAI,EAAAyD,QAAA0S,eAAAnW,EAAAyO,GAAA2c,UAAAprB,EAAAC,MAAA,MAAA,QAAA,SAAAL,EAAAC;AGwCA,AHxCAG,EAAAgM,SAAAnM,IAAA8Q,IAAA,SAAA/Q,EAAAQ,GAAA,GAAAA,EAAA,CAAA,GAAAE,GAAAiF,GAAA3F,EAAAC,EAAA,OAAAuG,IAAAtF,KAAAR,GAAAN,EAAAJ,GAAAwrB,WAAAvrB,GAAA,KAAAS,SAAAN,EAAAumB,MAAAvmB,EAAAumB,KAAAb,UAAA1lB,EAAAumB,KAAAb,QAAAgH,OAAA,SAAA9sB,GAAA,MAAA,KAAAA,EAAAqG,aAAA,IAAArG,EAAAsG,eAAAlG,EAAAyD,QAAAsT,uBAAA,UAAAnX,EAAAwF,OAAAxF,EAAAwF,MAAAC,SAAAE,GAAA3F,EAAA,aAAAI,EAAAumB,KAAAb,QAAAiH,QAAA,SAAA/sB,GAAA,OAAAI,EAAAumB,KAAAb,QAAAgH,OAAA9sB,KAAAI,EAAAC,MAAA2sB,OAAA,GAAAC,QAAA,GAAAC,OAAA,SAAA,SAAAltB,EAAAC,GAAAG,EAAAgM,SAAApM,EAAAC,IAAAoM,OAAA,SAAA7L,GAAA,GAAAE,GAAAE,EAAA,gBAAAJ,GAAAA,EAAAF,MAAA,MAAAE,GAAAY,IAAA,KAAAV,EAAA,EAAA,EAAAA,EAAAA,IAAAU,EAAApB,EAAAkG,GAAAxF,GAAAT,GAAAW,EAAAF,IAAAE,EAAAF,EAAA,IAAAE,EAAA,EAAA,OAAAQ,KAAAiqB,GAAAnqB,KAAAlB,KAAAI,EAAAgM,SAAApM,EAAAC,GAAAga,IAAArU,KAAA,IAAAunB,IAAA,OAAAxlB,GAAA,QAAAylB,GAAA,SAAAC,GAAA,mHAAAC,GAAA;AGyCA,AHzCAltB,EAAAyO,GAAAtL,QAAAgqB,UAAA,WAAA,MAAAntB,GAAAotB,MAAAhiB,KAAAiiB,mBAAAA,eAAA,WAAA,MAAAjiB,MAAAgG,IAAA,WAAA,MAAAhG,MAAAkiB,SAAAttB,EAAAwQ,UAAApF,KAAAkiB,UAAAliB,OAAAtJ,OAAA,WAAA,MAAAsJ,MAAA6M,OAAA7M,KAAA8I,WAAA9I,KAAApH,SAAAkpB,GAAApsB,KAAAsK,KAAA7H,WAAA0pB,GAAAnsB,KAAAsK,KAAAtH,SAAAsN,IAAA,SAAAxR,EAAAC,GAAA,GAAAO,GAAAJ,EAAAoL,MAAAuO,KAAA,OAAA,OAAAvZ,EAAA,KAAAJ,EAAAsH,QAAAlH,GAAAJ,EAAAoR,IAAAhR,EAAA,SAAAR,EAAAQ,GAAA,OAAA6X,KAAApY,EAAAoY,KAAAhU,MAAArE,EAAAa,QAAAusB,GAAA,YAAA/U,KAAApY,EAAAoY,KAAAhU,MAAA7D,EAAAK,QAAAusB,GAAA,WAAArc,SAAA3Q,EAAAotB,MAAA,SAAAxtB,EAAAQ,GAAA,GAAAE,GAAAE,KAAAQ,EAAA,SAAApB,EAAAC,GAAAA,EAAAG,EAAA0B,WAAA7B,GAAAA,IAAA,MAAAA,EAAA,GAAAA,EAAAW,EAAAA,EAAA4B,QAAAmrB,mBAAA3tB,GAAA,IAAA2tB,mBAAA1tB,GAAA,IAAAO,IAAAP,IAAAO,EAAAJ,EAAAmI,cAAAnI,EAAAmI,aAAAqlB;AG0CA,AH1CAxtB,EAAAsH,QAAA1H,IAAAA,EAAA2Q,SAAAvQ,EAAAgQ,cAAApQ,GAAAI,EAAAC,KAAAL,EAAA,WAAAoB,EAAAoK,KAAA6M,KAAA7M,KAAAnH,aAAA,KAAA3D,IAAAV,GAAAyH,GAAA/G,EAAAV,EAAAU,GAAAF,EAAAY,EAAA,OAAAR,GAAA2Q,KAAA,KAAA1Q,QAAAssB,GAAA,KAAA,IAAAU,IAAAC,GAAAC,GAAA,OAAAC,GAAA,gCAAAC,GAAA,8DAAAC,GAAA,iBAAAC,GAAA,QAAAC,GAAA,KAAAC,GAAA,sDAAAC,GAAA,gBAAAC,GAAA,iDAAAC,GAAApuB,EAAAyO,GAAAqR,KAAA9X,MAAAqmB,MAAAC,IAAA,OAAA,IAAA,KAAAb,GAAAzsB,EAAAsa,KAAA,MAAAiT,IAAAd,GAAAjtB,EAAA2B,cAAA,KAAAsrB,GAAAnS,KAAA,GAAAmS,GAAAA,GAAAnS,KAAAoS,GAAAS,GAAAzoB,KAAA+nB,GAAA9sB,mBAAAX,EAAAyO,GAAAqR,KAAA,SAAAlgB,EAAAQ,EAAAE,GAAA,GAAA,gBAAAV,IAAAwuB,GAAA,MAAAA,IAAAnd,MAAA7F,KAAA8F;AG2CA,AC5CA,AJCA,IAAA9F,KAAAhJ,OAAA,MAAAgJ,KAAA,IAAA5K,GAAAQ,EAAA6B,EAAAC,EAAAsI,KAAA3D,EAAA7H,EAAAwO,QAAA,IAAA,OAAA3G,IAAA,IAAAjH,EAAAZ,EAAAkF,MAAA2C,EAAA7H,EAAAwC,QAAAxC,EAAAA,EAAAkF,MAAA,EAAA2C,IAAAzH,EAAA0B,WAAAtB,IAAAE,EAAAF,EAAAA,EAAAP,GAAA,gBAAAO,KAAAY,EAAA,QAAAhB,EAAA+pB,MAAAC,IAAApqB,EAAAkE,KAAA9C,EAAA8H,SAAA,OAAA7H,KAAAb,EAAAyL,SAAA,SAAAjM,EAAAC,GAAAS,GAAAwC,EAAA7C,KAAAK,EAAAuC,IAAAjD,EAAA4uB,aAAA3uB,EAAAD,OAAAgM,KAAA,SAAAhM,GAAAiD,EAAAqO,UAAApO,EAAA8mB,KAAAppB,EAAAR,EAAA,SAAAgpB,OAAAppB,EAAAa,QAAAwtB,GAAA,KAAA5d,KAAA7P,GAAAZ,KAAAwL,MAAApL,EAAAC,KAAA,iEAAAC,MAAA,KAAA,SAAAN,EAAAC,GAAAG,EAAAyO,GAAA5O,GAAA,SAAAD,GAAA,MAAAwL,MAAA8V,GAAArhB,EAAAD,MAAAI,EAAAC,MAAA,MAAA,QAAA,SAAAL,EAAAQ,GAAAJ,EAAAI,GAAA,SAAAR,EAAAU,EAAAE,EAAAQ,GAAA,MAAAhB,GAAA0B,WAAApB,KAAAU,EAAAA,GAAAR,EAAAA,EAAAF,EAAAA,EAAAT,GAAAG,EAAA+pB,MAAAjmB,KAAA1D,EAAA4pB,IAAApqB,EAAAqB,KAAAX,EAAAmuB,QAAAjuB,EAAAsI,SAAA9H,OAAAhB,EAAAmD;AIAA,AJAAurB,UAAA,SAAA9uB,EAAAQ,GAAA,MAAAJ,GAAA2Q,IAAA/Q,EAAAC,EAAAO,EAAA,WAAAuuB,QAAA,SAAA/uB,EAAAC,EAAAO,GAAA,MAAAJ,GAAA2Q,IAAA/Q,EAAAC,EAAAO,EAAA,SAAAwuB,UAAA,SAAAhvB,EAAAC,GAAA,MAAAA,GAAAqI,GAAAtI,EAAAI,EAAAmI,eAAAtI,EAAAD,EAAAA,EAAAI,EAAAmI,cAAAD,GAAAtI,EAAAC,GAAAD,GAAAuI,cAAA6hB,IAAAyD,GAAAoB,QAAAhB,GAAA/sB,KAAA4sB,GAAA,IAAA7Q,QAAA,EAAA/Y,KAAA,MAAAgrB,YAAA,mDAAAC,aAAA,EAAAnc,OAAA,EAAAoc,SAAAC,IAAA,4BAAArF,KAAA,YAAAvlB,KAAA,aAAA6qB,KAAA,oCAAAC,IAAAb,IAAAhmB,UAAA2mB,IAAA,MAAArF,KAAA,OAAAsF,KAAA,QAAA3mB,gBAAA0mB,IAAA,cAAA5qB,KAAA,gBAAAsE,YAAAymB,SAAAxvB,EAAA4O,OAAA6gB,aAAA,EAAAC,YAAAtvB,EAAAe,UAAAwuB,WAAAvvB,EAAAyS,UAAArK;AICA,AJDA0H,SAAA,EAAAka,KAAA,IAAAwF,cAAAhoB,GAAAQ,IAAAynB,cAAAjoB,GAAA6mB,IAAAtE,KAAA,SAAAnqB,EAAAQ,GAAA,QAAA6O,GAAArP,EAAAQ,EAAAY,EAAAyG,GAAA,GAAAK,GAAA3H,EAAAyO,EAAAC,EAAAE,EAAAE,EAAA7O,CAAA,KAAA0O,IAAAA,EAAA,EAAAhM,GAAAyV,aAAAzV,GAAAD,EAAAhD,EAAAW,EAAAiH,GAAA,GAAAuH,EAAAU,WAAA9P,EAAA,EAAA,EAAA,EAAAoB,IAAA6N,EAAAxG,GAAAN,EAAAiH,EAAAhO,IAAApB,GAAA,KAAA,IAAAA,GAAA,MAAAA,GAAAmI,EAAA2nB,aAAA3gB,EAAAC,EAAAtG,kBAAA,iBAAAqG,IAAA/O,EAAA2vB,aAAArvB,GAAAyO,GAAAA,EAAAC,EAAAtG,kBAAA,QAAAqG,IAAA/O,EAAA4vB,KAAAtvB,GAAAyO,IAAA,MAAAnP,GAAAqP,EAAA,cAAAnH,GAAA,IAAAA,EAAAc,GAAAb,EAAA8G,GAAAI,EAAAnH,EAAAkB,MAAA7I,EAAA2H,EAAA7G,KAAA2N,EAAA9G,EAAAmB,MAAAnB,GAAA8G,KAAAA,EAAAK,IAAAA,GAAArP,KAAAqP,EAAA,QAAA,EAAArP,IAAAA,EAAA,KAAAoP,EAAA6gB,OAAAjwB,EAAAoP,EAAA8gB,WAAA,IAAA1vB,GAAA6O,GAAAnH,EAAAuE,EAAA9B,YAAA4B,GAAAhM,EAAA8O,EAAAD,IAAA3C,EAAAlB,WAAAgB,GAAA6C,EAAAC,EAAAL,IAAAI,EAAA+gB,WAAAphB,GAAAA,EAAA9O,EAAAgI,GAAAuE,EAAAsF,QAAA,QAAA5J,EAAA,UAAA,UAAAkH,EAAAjH,EAAAD,EAAA3H,EAAAyO,IAAAtC,EAAA+H,SAAAlI,GAAA6C,EAAAC,IAAApH,IAAAuE,EAAAsF,QAAA,gBAAA1C,EAAAjH;AIEA,EJFA/H,EAAAolB,QAAAplB,EAAAiD,MAAAyO,QAAA,cAAA,gBAAA9R,KAAAQ,EAAAR,EAAAA,EAAAC,GAAAO,EAAAA,KAAA,IAAAE,GAAAE,EAAAQ,EAAA6B,EAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAA/H,EAAA4uB,aAAAxuB,GAAA+L,EAAApE,EAAA+H,SAAA/H,EAAAqE,EAAAD,IAAApE,IAAAoE,EAAA5L,UAAA4L,YAAAnM,IAAAA,EAAAmM,GAAAnM,EAAAiD,MAAAoJ,EAAArM,EAAA+J,WAAAuC,EAAAtM,EAAA2T,UAAA,eAAAhF,EAAA5G,EAAAgoB,eAAAnhB,KAAAC,KAAAC,EAAA,EAAAC,EAAA,WAAAC,GAAAU,WAAA,EAAAsgB,iBAAA,SAAApwB,EAAAC,GAAA,IAAAiP,EAAA,CAAA,GAAA1O,GAAAR,EAAAe,aAAAf,GAAAiP,EAAAzO,GAAAyO,EAAAzO,IAAAR,EAAAgP,EAAAhP,GAAAC,EAAA,MAAAuL,OAAA6kB,sBAAA,WAAA,MAAA,KAAAnhB,EAAAtO,EAAA,MAAAkI,kBAAA,SAAA9I,GAAA,GAAAQ,EAAA,IAAA,IAAA0O,EAAA,CAAA,IAAA9N,EAAA,IAAAA,KAAAZ,EAAAwtB,GAAAloB,KAAAlF,IAAAQ,EAAAZ,EAAA,GAAAO,eAAAP,EAAA,EAAAA,GAAAY,EAAApB,EAAAe,eAAA,MAAAP,KAAAP,EAAA,KAAAO,GAAA8vB,iBAAA,SAAAtwB,GAAA,MAAAkP,KAAA/G,EAAAU,SAAA7I,GAAAwL,MAAA+kB,MAAA,SAAAvwB,GAAA,MAAAA,GAAAA,GAAAmP;AIGA,AJHAlM,GAAAA,EAAAstB,MAAAvwB,GAAAqP,EAAA,EAAArP,GAAAwL,MAAA,IAAAiB,EAAA7B,QAAAwE,GAAAA,EAAAyf,QAAAzf,EAAApD,KAAAoD,EAAA/F,MAAA+F,EAAAlD,KAAAkD,EAAAnD,SAAAS,EAAApJ,IAAA8L,EAAA+gB,WAAA,SAAAnwB,GAAA,GAAAA,EAAA,CAAA,GAAAC,EAAA,IAAA,EAAAiP,EAAA,IAAAjP,IAAAD,GAAA+O,EAAA9O,IAAA8O,EAAA9O,GAAAD,EAAAC,QAAAA,GAAAD,EAAAoP,EAAA6gB,QAAA7gB,EAAAhF,OAAAnK,GAAA,MAAAuL,OAAArD,EAAAiiB,MAAApqB,GAAAmI,EAAAiiB,KAAA,IAAAvpB,QAAAktB,GAAA,IAAAltB,QAAAstB,GAAAL,GAAA,GAAA,MAAA3lB,EAAAH,UAAA5H,EAAA4D,KAAAmE,EAAAe,UAAA,KAAAnI,cAAAT,MAAAC,GAAA,MAAA4H,EAAAqoB,cAAA3oB,EAAA0mB,GAAAzoB,KAAAqC,EAAAiiB,IAAArpB,eAAAoH,EAAAqoB,eAAA3oB,GAAAA,EAAA,IAAAimB,GAAA,IAAAjmB,EAAA,IAAAimB,GAAA,KAAAjmB,EAAA,KAAA,UAAAA,EAAA,GAAA,GAAA,QAAAimB,GAAA,KAAA,UAAAA,GAAA,GAAA,GAAA,QAAA3lB,EAAA9G,MAAA8G,EAAAgnB,aAAA,gBAAAhnB,GAAA9G,OAAA8G,EAAA9G,KAAAjB,EAAAotB,MAAArlB,EAAA9G,KAAA8G,EAAAylB,cAAA7lB,GAAAK,GAAAD,EAAA3H,EAAA4O,GAAA,IAAAF,EAAA,MAAAE,EAAA,IAAAnH,EAAAE,EAAA8U,OAAA9U,EAAAjE,KAAAiE,EAAAjE,KAAAe,cAAAkD,EAAAsoB,YAAAvC,GAAAhtB,KAAAiH,EAAAjE;AIIA,AJJA+D,GAAA,IAAA7H,EAAAolB,UAAAplB,EAAAiD,MAAAyO,QAAA,cAAA3J,EAAAsoB,aAAAtoB,EAAA9G,OAAA8G,EAAAiiB,MAAAgE,GAAAltB,KAAAiH,EAAAiiB,KAAA,IAAA,KAAAjiB,EAAA9G,WAAA8G,GAAA9G,MAAAX,EAAAyH,EAAAiiB,IAAAjiB,EAAAsP,SAAA,GAAA,CAAA,GAAAnI,GAAAlP,EAAAyJ,MAAA0F,EAAApH,EAAAiiB,IAAAvpB,QAAAytB,GAAA,OAAAhf,EAAAnH,GAAAiiB,IAAA7a,GAAAA,IAAApH,EAAAiiB,KAAAgE,GAAAltB,KAAAiH,EAAAiiB,KAAA,IAAA,KAAA,KAAA9a,EAAA,KAAAnH,EAAA9G,MAAA8G,EAAAsoB,YAAAtoB,EAAA+mB,eAAA,GAAA1uB,EAAA0uB,cAAA9f,EAAAghB,iBAAA,eAAAjoB,EAAA+mB,aAAA/mB,EAAA2nB,aAAApvB,EAAAA,GAAAyH,EAAAiiB,IAAAhqB,EAAA2vB,aAAArvB,IAAA0O,EAAAghB,iBAAA,oBAAAhwB,EAAA2vB,aAAArvB,IAAAN,EAAA4vB,KAAAtvB,IAAA0O,EAAAghB,iBAAA,gBAAAhwB,EAAA4vB,KAAAtvB,KAAA0O,EAAAghB,iBAAA,SAAAjoB,EAAAH,UAAA,IAAAG,EAAAinB,QAAAjnB,EAAAH,UAAA,IAAAG,EAAAinB,QAAAjnB,EAAAH,UAAA,KAAA,MAAAG,EAAAH,UAAA,GAAA,KAAA0mB,GAAA,WAAA,IAAAvmB,EAAAinB,QAAA;AIKA,AJLA,IAAAlnB,IAAAC,GAAAuoB,QAAAthB,EAAAghB,iBAAAloB,EAAAC,EAAAuoB,QAAAxoB,GAAA,KAAAC,EAAAwoB,YAAAxoB,EAAAwoB,WAAA3uB,KAAAuK,EAAA6C,EAAAjH,MAAA,GAAA,IAAA+G,EAAA,CAAAC,EAAA,OAAA,KAAAjH,KAAA2mB,QAAA,EAAAxlB,MAAA,EAAA4C,SAAA,GAAAmD,EAAAlH,GAAAC,EAAAD,GAAA,IAAAjF,EAAA8E,GAAA0mB,GAAAtmB,EAAA3H,EAAA4O,GAAA,CAAAA,EAAAU,WAAA,EAAA7H,GAAAuE,EAAAsF,QAAA,YAAA1C,EAAAjH,IAAAA,EAAA6K,OAAA7K,EAAAyoB,QAAA,IAAA1tB,EAAAyG,WAAA,WAAAyF,EAAAmhB,MAAA,YAAApoB,EAAAyoB,SAAA,KAAA1hB,EAAA,EAAAjM,EAAA4tB,KAAA7hB,EAAAK,GAAA,MAAAG,GAAA,KAAA,EAAAN,GAAA,KAAAM,EAAAH,GAAA,GAAAG,QAAAH,GAAA,GAAA,eAAA,OAAAD,GAAA,MAAAA,GAAAmhB,SAAA/K,OAAA,EAAAuK,gBAAAC,SAAA,IAAAc,OAAAC,GAAA,KAAAC,GAAA,oBAAAC,GAAA7wB,EAAAyJ,KAAAzJ,GAAA4uB,WAAAkC,MAAA,WAAAC,cAAA,WAAA,GAAAnxB,GAAA8wB,GAAAruB,OAAArC,EAAAuE,QAAA,IAAAssB,IAAA,OAAAzlB,MAAAxL,IAAA,EAAAA,KAAAI,EAAAwvB,cAAA,aAAA,SAAApvB,EAAAE,EAAAE;AIMA,AJNA,GAAAQ,GAAA6B,EAAAC,EAAA2E,EAAArH,EAAAa,KAAA4G,EAAAzH,EAAA4pB,IAAAliB,EAAA1H,EAAA0wB,SAAA,EAAA/oB,EAAAD,GAAA8oB,GAAA9vB,KAAA+G,GAAAsE,EAAArE,IAAAC,GAAA,gBAAAN,MAAArH,EAAA0uB,aAAA,IAAA1gB,QAAA,sCAAAwiB,GAAA9vB,KAAA2G,EAAA,OAAA,UAAArH,EAAAwH,UAAA,IAAAG,GAAAoE,GAAAnL,EAAAZ,EAAA2wB,cAAA/wB,EAAA0B,WAAAtB,EAAA2wB,eAAA3wB,EAAA2wB,gBAAA3wB,EAAA2wB,cAAAluB,EAAAjD,EAAAoB,GAAA+G,EAAA3H,EAAA4pB,IAAAniB,EAAApH,QAAAmwB,GAAA,KAAA5vB,GAAAmL,EAAA/L,EAAAa,KAAAwG,EAAAhH,QAAAmwB,GAAA,KAAA5vB,GAAA8G,IAAA1H,EAAA4pB,MAAA2G,GAAA7vB,KAAA+G,GAAA,IAAA,KAAAzH,EAAA0wB,MAAA,IAAA9vB,GAAAZ,EAAAuI,WAAA,eAAA,WAAA,MAAA7F,IAAA9C,EAAAiJ,MAAAjI,EAAA,mBAAA8B,EAAA,IAAA1C,EAAAwH,UAAA,GAAA,OAAAhI,EAAAoB,GAAA,WAAA8B,EAAAoO,WAAA1Q,EAAAwJ,OAAA,WAAApK,EAAAoB,GAAA6B,EAAAzC,EAAAY,KAAAZ,EAAA2wB,cAAAzwB,EAAAywB,cAAAL,GAAAzlB,KAAAjK,IAAA8B,GAAA9C,EAAA0B,WAAAmB,IAAAA,EAAAC,EAAA,IAAAA,EAAAD,EAAAhD,IAAA,UAAA,SAAAG,EAAA4uB;AIOA,AJPAI,SAAAgC,OAAA,6FAAA1oB,UAAA0oB,OAAA,yBAAAroB,YAAAsoB,cAAA,SAAArxB,GAAA,MAAAI,GAAAgT,WAAApT,GAAAA,MAAAI,EAAAwvB,cAAA,SAAA,SAAA5vB,GAAAA,EAAAyX,QAAAxX,IAAAD,EAAAyX,OAAA,GAAAzX,EAAAwwB,cAAAxwB,EAAAkE,KAAA,MAAAlE,EAAAid,QAAA,KAAA7c,EAAAyvB,cAAA,SAAA,SAAA7vB,GAAA,GAAAA,EAAAwwB,YAAA,CAAA,GAAAhwB,GAAAE,EAAAE,EAAA0wB,MAAA1wB,EAAA+B,qBAAA,QAAA,IAAA/B,EAAAsS,eAAA,QAAA2d,KAAA,SAAAzvB,EAAA6B,GAAAzC,EAAAI,EAAA2B,cAAA,UAAA/B,EAAAwS,MAAA,QAAAhT,EAAAuxB,gBAAA/wB,EAAAgxB,QAAAxxB,EAAAuxB,eAAA/wB,EAAA0pB,IAAAlqB,EAAAoqB,IAAA5pB,EAAAixB,OAAAjxB,EAAAkxB,mBAAA,SAAA1xB,EAAAY,IAAAA,IAAAJ,EAAAsP,YAAA,kBAAA5O,KAAAV,EAAAsP,eAAAtP,EAAAixB,OAAAjxB,EAAAkxB,mBAAA;AIQA,AJRAhxB,GAAAF,EAAAmB,YAAAjB,EAAA8G,YAAAhH,GAAAA,EAAAP,EAAAW,GAAAqC,EAAA,IAAA,aAAAvC,EAAAwW,aAAA1W,EAAAE,EAAA0U,aAAAmb,MAAA,WAAA/vB,GAAAA,EAAAixB,OAAA,EAAA,OAAA,IAAAE,IAAAC,GAAA5xB,EAAAyJ,cAAA,WAAA,IAAA,GAAAzJ,KAAA2xB,IAAAA,GAAA3xB,GAAA,EAAA,KAAA,EAAA6xB,GAAA,CAAAzxB,GAAAmI,aAAAupB,IAAA9xB,EAAAyJ,cAAA,WAAA,OAAA+B,KAAAyjB,SAAA3lB,MAAAE,MAAAF,GAAA,SAAAtJ,GAAAI,EAAAmD,OAAAnD,EAAAyD,SAAAsmB,OAAAnqB,EAAA+xB,OAAA/xB,GAAA,mBAAAA,MAAAI,EAAAmI,aAAAupB,OAAA1xB,EAAAyD,QAAAsmB,MAAA/pB,EAAAyvB,cAAA,SAAArvB,GAAA,IAAAA,EAAAgwB,aAAApwB,EAAAyD,QAAAkuB,KAAA,CAAA,GAAArxB,EAAA,QAAAmwB,KAAA,SAAAjwB,EAAAQ,GAAA,GAAA6B,GAAAC,EAAA2E,EAAArH,EAAAsxB,KAAA,IAAAtxB,EAAAwxB,SAAAnqB,EAAAoqB,KAAAzxB,EAAA0D,KAAA1D,EAAA4pB,IAAA5pB,EAAAwS,MAAAxS,EAAAwxB,SAAAxxB,EAAA0kB,UAAArd,EAAAoqB,KAAAzxB,EAAA0D,KAAA1D,EAAA4pB,IAAA5pB,EAAAwS,OAAAxS,EAAA0xB,UAAA,IAAAhvB,IAAA1C,GAAA0xB,UAAArqB,EAAA3E,GAAA1C,EAAA0xB,UAAAhvB,EAAA1C,GAAAqI,UAAAhB,EAAAyoB,kBAAAzoB,EAAAyoB,iBAAA9vB,EAAAqI;AISA,CJTArI,EAAAgwB,cAAA5vB,EAAA,sBAAAA,EAAA,oBAAA,iBAAA,KAAA,IAAAsC,IAAAtC,GAAAiH,EAAAuoB,iBAAAltB,EAAAtC,EAAAsC,IAAA,MAAA+E,IAAAJ,EAAAgpB,KAAArwB,EAAAiwB,YAAAjwB,EAAAa,MAAA,MAAAX,EAAA,SAAAV,EAAAY,GAAA,GAAAsC,GAAA+E,EAAAC,EAAAC,EAAAoE,CAAA,KAAA,GAAA7L,IAAAE,GAAA,IAAAiH,EAAAiI,YAAA,GAAApP,EAAAT,EAAAgD,IAAA4E,EAAA6pB,mBAAAtxB,EAAA+S,KAAAye,UAAAD,IAAA1uB,IAAArC,EAAA,IAAAiH,EAAAiI,YAAAjI,EAAA0oB,YAAA,CAAArtB,EAAA2E,EAAAooB,OAAA/nB,EAAAL,EAAAwoB,wBAAAloB,KAAAoE,EAAA1E,EAAAsqB,YAAA5lB,GAAAA,EAAA2G,kBAAA/K,EAAAknB,IAAA9iB,EAAA,KAAApE,EAAA1D,KAAAoD,EAAA+mB,aAAA,MAAA5uB,IAAA,IAAAiI,EAAAJ,EAAAqoB,WAAA,MAAA1jB,GAAAvE,EAAA,GAAA/E,IAAA1C,EAAAyuB,SAAAzuB,EAAAgwB,YAAA,OAAAttB,IAAAA,EAAA,KAAAA,EAAAiF,EAAA1D,KAAA,IAAA,KAAA,MAAAgI,GAAA7L,GAAAQ,EAAA,GAAAqL,GAAAtE,GAAA/G,EAAA8B,EAAA+E,EAAAE,EAAAD,IAAA1H,EAAAwS,MAAA,IAAAnL,EAAAiI,WAAAnG,WAAAjJ,EAAA,IAAAuC,IAAA4uB,GAAAD,KAAAD,KAAAA,MAAAvxB,EAAAJ,GAAAoyB,OAAAR,KAAAD,GAAA1uB,GAAAvC;AIUA,AJVAmH,EAAA6pB,mBAAAhxB,GAAAA,KAAA6vB,MAAA,WAAA7vB,GAAAA,EAAA,EAAA,OAAA,IAAAkJ,IAAAyoB,GAAAhlB,GAAA,yBAAAilB,GAAA,GAAApV,QAAA,iBAAAxQ,EAAA,cAAA,KAAA6lB,GAAA,cAAAroB,IAAAoC,IAAAvC,IAAAwlB,KAAA,SAAAvvB,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,EAAAQ,EAAAoK,KAAAN,YAAAlL,EAAAC,GAAAgD,EAAAqvB,GAAAxsB,KAAA7F,GAAAiD,EAAA9B,EAAAoxB,MAAA3qB,GAAA3E,GAAA,EAAA+E,EAAA,CAAA,IAAAhF,EAAA,CAAA,GAAAzC,GAAAyC,EAAA,GAAAvC,EAAAuC,EAAA,KAAA7C,EAAA2rB,UAAA/rB,GAAA,GAAA,MAAA,OAAAU,GAAAmH,EAAA,CAAAA,EAAAzH,EAAAiF,IAAAjE,EAAAiJ,KAAArK,GAAA,IAAAQ,GAAA,CAAA,GAAAI,GAAAqH,EAAAA,GAAA,KAAAJ,GAAAI,EAAA7H,EAAAoF,MAAApE,EAAAiJ,KAAArK,EAAA6H,EAAAnH,GAAAuH,EAAA7G,EAAAoxB,MAAAtvB,QAAA,IAAA+E,GAAAA,IAAArH,GAAAQ,EAAAqxB,KAAA/xB,EAAAU,EAAAsK,MAAA7D,EAAAzG,EAAAqM,IAAAxK,EAAA,GAAA4E,GAAA5E,EAAA,GAAA,GAAAzC,EAAAA,EAAA,MAAAY,KAAAhB,GAAAsyB,UAAAtyB,EAAAmD,OAAA0G,IAAA0oB,QAAA,SAAA3yB,EAAAC,GAAAG,EAAA0B,WAAA9B,IAAAC,EAAAD,EAAAA,GAAA,MAAAA,EAAAA,EAAAM,MAAA,IAAA,KAAA,GAAAE,GAAAE,EAAA,EAAAE,EAAAZ,EAAAwC,OAAA5B,EAAAF,EAAAA,IAAAF,EAAAR,EAAAU,GAAAqJ,GAAAvJ,GAAAuJ,GAAAvJ,OAAAuJ,GAAAvJ,GAAA6H,QAAApI,IAAA2yB,UAAA,SAAA5yB,EAAAC;AIWA,AJXAA,EAAAiK,GAAA7B,QAAArI,GAAAkK,GAAAmB,KAAArL,MAAAI,EAAA+K,MAAAuC,GAAAA,GAAAC,WAAAsC,YAAAvC,GAAAE,KAAA,SAAA5N,EAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,GAAAoK,KAAAnB,KAAArK,EAAAwL,KAAAgO,KAAAhZ,EAAAgL,KAAAJ,OAAAxK,GAAA,QAAA4K,KAAA8O,QAAAra,EAAAuL,KAAAE,MAAAF,KAAA3B,IAAA2B,KAAAgnB,MAAAhnB,KAAAiC,IAAA/M,EAAA8K,KAAAinB,KAAArxB,IAAAhB,EAAA2rB,UAAAvrB,GAAA,GAAA,OAAAgyB,IAAA,WAAA,GAAAxyB,GAAA0N,GAAA4N,UAAA9P,KAAAgO,KAAA,OAAAxZ,IAAAA,EAAA+Q,IAAA/Q,EAAA+Q,IAAAvF,MAAAkC,GAAA4N,UAAA6C,SAAApN,IAAAvF,OAAAf,IAAA,SAAAzK,GAAA,GAAAC,GAAAO,EAAAkN,GAAA4N,UAAA9P,KAAAgO,KAAA,OAAAhO,MAAAqnB,IAAA5yB,EAAAG,EAAAgL,OAAAI,KAAAJ,QAAApL,EAAAwL,KAAA8O,QAAA/P,SAAAvK,EAAA,EAAA,EAAAwL,KAAA8O,QAAA/P,UAAAiB,KAAA3B,KAAA2B,KAAAiC,IAAAjC,KAAAE,OAAAzL,EAAAuL,KAAAE,MAAAF,KAAA8O,QAAAwY,MAAAtnB,KAAA8O,QAAAwY,KAAA9wB,KAAAwJ,KAAAnB,KAAAmB,KAAA3B,IAAA2B,MAAAhL,GAAAA,EAAAyZ,IAAAzZ,EAAAyZ,IAAAzO,MAAAkC,GAAA4N,UAAA6C,SAAAlE,IAAAzO,MAAAA,OAAAkC,GAAAC,UAAAC,KAAAD,UAAAD,GAAAC;AIYA,AJZAD,GAAA4N,WAAA6C,UAAApN,IAAA,SAAA/Q,GAAA,GAAAC,EAAA,OAAA,OAAAD,EAAAqK,KAAArK,EAAAwZ,OAAAxZ,EAAAqK,KAAA7E,OAAA,MAAAxF,EAAAqK,KAAA7E,MAAAxF,EAAAwZ,OAAAvZ,EAAAG,EAAAiF,IAAArF,EAAAqK,KAAArK,EAAAwZ,MAAA,EAAA,IAAAvZ,GAAA,SAAAA,EAAAA,EAAA,GAAAD,EAAAqK,KAAArK,EAAAwZ,OAAAS,IAAA,SAAAja,GAAAI,EAAAuL,GAAAmnB,KAAA9yB,EAAAwZ,MAAApZ,EAAAuL,GAAAmnB,KAAA9yB,EAAAwZ,MAAAxZ,GAAAA,EAAAqK,KAAA7E,QAAA,MAAAxF,EAAAqK,KAAA7E,MAAApF,EAAAgsB,SAAApsB,EAAAwZ,QAAApZ,EAAAgM,SAAApM,EAAAwZ,OAAApZ,EAAAoF,MAAAxF,EAAAqK,KAAArK,EAAAwZ,KAAAxZ,EAAA6J,IAAA7J,EAAAyyB,MAAAzyB,EAAAqK,KAAArK,EAAAwZ,MAAAxZ,EAAA6J,OAAA6D,GAAA4N,UAAAqE,UAAAjS,GAAA4N,UAAAiE,YAAAtF,IAAA,SAAAja,GAAAA,EAAAqK,KAAA1J,UAAAX,EAAAqK,KAAA1I,aAAA3B,EAAAqK,KAAArK,EAAAwZ,MAAAxZ,EAAA6J,OAAAzJ,EAAAC,MAAA,SAAA,OAAA,QAAA,SAAAL,EAAAC,GAAA,GAAAO,GAAAJ,EAAAyO,GAAA5O,EAAAG,GAAAyO,GAAA5O,GAAA,SAAAS,EAAAE,EAAAQ,GAAA,MAAA,OAAAV,GAAA,iBAAAA,KAAAV,GAAAI,EAAA0B,WAAApB,IAAAN,EAAA0B,WAAAlB,GAAAJ,EAAA6Q,MAAA7F,KAAA8F,WAAA9F,KAAAunB,QAAAllB,GAAA5N,GAAA,GAAAS,EAAAE,EAAAQ;AIaA,IJbAhB,EAAAyO,GAAAtL,QAAAyvB,OAAA,SAAAhzB,EAAAC,EAAAO,EAAAE,GAAA,MAAA8K,MAAAtJ,OAAAkD,IAAAC,IAAA,UAAA,GAAAiI,OAAAG,MAAAslB,SAAAjlB,QAAA7N,GAAAD,EAAAQ,EAAAE,IAAAqyB,QAAA,SAAA/yB,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAR,EAAAmB,cAAAvB,GAAAoB,EAAAhB,EAAA6yB,MAAAhzB,EAAAO,EAAAE,GAAAuC,EAAA,WAAA,GAAAhD,GAAAgK,GAAAuB,KAAApL,EAAAmD,UAAAvD,GAAAoB,EAAAR,IAAAX,EAAAqL,MAAA,GAAA,OAAA1K,IAAAQ,EAAA0K,SAAA,EAAAN,KAAAnL,KAAA4C,GAAAuI,KAAAM,MAAA1K,EAAA0K,MAAA7I,IAAAqI,KAAA,SAAAtL,EAAAQ,EAAAE,GAAA,GAAAE,GAAA,SAAAZ,GAAA,GAAAC,GAAAD,EAAAsL,WAAAtL,GAAAsL,KAAArL,EAAAS,GAAA,OAAA,gBAAAV,KAAAU,EAAAF,EAAAA,EAAAR,EAAAA,EAAAC,GAAAO,GAAAR,KAAA,GAAAwL,KAAAM,MAAA9L,GAAA,SAAAwL,KAAAnL,KAAA,WAAA,GAAAJ,IAAA,EAAAO,EAAA,MAAAR,GAAAA,EAAA,aAAAoB,EAAAhB,EAAA8yB,OAAAjwB,EAAA7C,EAAA4C,MAAAwI,KAAA,IAAAhL,EAAAyC,EAAAzC,IAAAyC,EAAAzC,GAAA8K,MAAA1K,EAAAqC,EAAAzC,QAAA,KAAAA,IAAAyC,GAAAA,EAAAzC,IAAAyC,EAAAzC,GAAA8K,MAAAinB,GAAArxB,KAAAV,IAAAI,EAAAqC,EAAAzC,GAAA,KAAAA,EAAAY,EAAAoB,OAAAhC,KAAAY,EAAAZ,GAAA6J,OAAAmB,OAAA,MAAAxL,GAAAoB,EAAAZ,GAAAsL,QAAA9L,KAAAoB,EAAAZ,GAAAqL,KAAAP,KAAA5K;AIcA,AJdAT,GAAA,EAAAmB,EAAA+H,OAAA3I,EAAA,KAAAP,IAAAS,IAAAN,EAAAoY,QAAAhN,KAAAxL,QAAAI,EAAAC,MAAA8yB,UAAAtlB,GAAA,QAAAulB,QAAAvlB,GAAA,QAAAwlB,YAAAxlB,GAAA,UAAAylB,QAAAxlB,QAAA,QAAAylB,SAAAzlB,QAAA,QAAA0lB,YAAA1lB,QAAA,WAAA,SAAA9N,EAAAC,GAAAG,EAAAyO,GAAA7O,GAAA,SAAAA,EAAAQ,EAAAE,GAAA,MAAA8K,MAAAunB,QAAA9yB,EAAAD,EAAAQ,EAAAE,MAAAN,EAAA6yB,MAAA,SAAAjzB,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,GAAA,gBAAAA,GAAAI,EAAAmD,UAAAvD,IAAAiM,SAAAzL,IAAAA,GAAAP,GAAAG,EAAA0B,WAAA9B,IAAAA,EAAAuK,SAAAvK,EAAAoL,OAAA5K,GAAAP,GAAAA,IAAAG,EAAA0B,WAAA7B,IAAAA,EAAA,OAAAS,GAAA6J,SAAAnK,EAAAuL,GAAAoG,IAAA,EAAA,gBAAArR,GAAA6J,SAAA7J,EAAA6J,SAAA7J,EAAA6J,WAAAnK,GAAAuL,GAAA+M,OAAAtY,EAAAuL,GAAA+M,OAAAhY,EAAA6J,UAAAnK,EAAAuL,GAAA+M,OAAAyF,UAAA,MAAAzd,EAAAoL,OAAApL,EAAAoL,SAAA,KAAApL,EAAAoL,MAAA,MAAApL,EAAA+yB,IAAA/yB,EAAAuL,SAAAvL,EAAAuL,SAAA,WAAA7L,EAAA0B,WAAApB,EAAA+yB,MAAA/yB,EAAA+yB,IAAAzxB,KAAAwJ;AIeA,AJfA9K,EAAAoL,OAAA1L,EAAAoY,QAAAhN,KAAA9K,EAAAoL,QAAApL,GAAAN,EAAAgL,QAAAsoB,OAAA,SAAA1zB,GAAA,MAAAA,IAAA2zB,MAAA,SAAA3zB,GAAA,MAAA,GAAA+F,KAAA6tB,IAAA5zB,EAAA+F,KAAA8tB,IAAA,IAAAzzB,EAAA8yB,UAAA9yB,EAAAuL,GAAA+B,GAAAC,UAAAC,KAAAxN,EAAAuL,GAAAmoB,KAAA,WAAA,IAAA,GAAA9zB,GAAAC,EAAAG,EAAA8yB,OAAA1yB,EAAA,EAAAA,EAAAP,EAAAuC,OAAAhC,IAAAR,EAAAC,EAAAO,IAAAR,KAAAC,EAAAO,KAAAR,GAAAC,EAAAkJ,OAAA3I,IAAA,EAAAP,GAAAuC,QAAApC,EAAAuL,GAAAL,QAAAlL,EAAAuL,GAAAC,MAAA,SAAA5L,GAAAA,KAAAI,EAAA8yB,OAAA7nB,KAAArL,KAAAqyB,KAAAA,GAAA0B,YAAA3zB,EAAAuL,GAAAmoB,KAAA1zB,EAAAuL,GAAAqoB,YAAA5zB,EAAAuL,GAAAqoB,SAAA,GAAA5zB,EAAAuL,GAAAL,KAAA,WAAA2oB,cAAA5B,IAAAA,GAAA,MAAAjyB,EAAAuL,GAAA+M,QAAAwb,KAAA,IAAAC,KAAA,IAAAhW,SAAA,KAAA/d,EAAAuL,GAAAmnB,QAAA1yB,EAAAumB,MAAAvmB,EAAAumB,KAAAb,UAAA1lB,EAAAumB,KAAAb,QAAAsO,SAAA,SAAAp0B,GAAA,MAAAI,GAAA2B,KAAA3B,EAAA8yB,OAAA,SAAAjzB,GAAA,MAAAD,KAAAC,EAAAoK,OAAA7H,QAAA,IAAA6xB,IAAA,kBAAAj0B,GAAAyO,GAAAylB,OAAA,SAAAt0B;AIgBA,AJhBA,GAAAsR,UAAA9O,OAAA,MAAAxC,KAAAC,EAAAuL,KAAAA,KAAAnL,KAAA,SAAAJ,GAAAG,EAAAk0B,OAAAC,UAAA/oB,KAAAxL,EAAAC,IAAA,IAAAO,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAAoE,EAAAf,KAAA,GAAAgB,EAAAD,GAAAA,EAAA1J,aAAA,IAAA2J,EAAA,OAAA5L,EAAA4L,EAAA5F,QAAA2F,EAAAnM,EAAAk0B,OAAAE,WAAAjoB,IAAA7L,EAAA8L,EAAA0G,gBAAA9S,EAAAkF,SAAA5E,EAAA6L,IAAA/L,EAAA+L,EAAAkoB,wBAAArzB,EAAA2M,GAAAvB,GAAAvJ,EAAAvC,EAAAkf,WAAAhf,EAAAgf,WAAA,EAAA1c,EAAAxC,EAAA8e,YAAA5e,EAAA4e,YAAA,EAAA3X,EAAAzG,EAAAszB,aAAAh0B,EAAAif,UAAA1X,EAAA7G,EAAAuzB,aAAAj0B,EAAA6e,WAAArX,EAAA1H,EAAA+W,IAAA1P,EAAA5E,EAAAkF,EAAA3H,EAAAksB,KAAAzkB,EAAA/E,GAAAqU,IAAArP,EAAAwkB,KAAAvkB,KAAAoP,IAAA,EAAAmV,KAAA,KAAAtsB,EAAAk0B,QAAAE,WAAA,SAAAx0B,GAAA,GAAAC,GAAAD,EAAAqX,UAAA7W,EAAAR,EAAA40B,UAAA,OAAAx0B,GAAAyD,QAAAuT,mCAAAnX,GAAAkG,WAAA/F,EAAAiF,IAAArF,EAAA,eAAA,EAAAQ,GAAA2F,WAAA/F,EAAAiF,IAAArF,EAAA,gBAAA,IAAAuX,IAAAtX,EAAAysB,KAAAlsB,IAAA+zB,UAAA,SAAAv0B,EAAAC,EAAAO;AIiBA,AJjBA,GAAAE,GAAAN,EAAAiF,IAAArF,EAAA,WAAA,YAAAU,IAAAV,EAAAwF,MAAAgmB,SAAA,WAAA,IAAArjB,GAAAoE,EAAA3L,EAAAR,EAAAJ,GAAAoB,EAAAR,EAAA0zB,SAAArxB,EAAA7C,EAAAiF,IAAArF,EAAA,OAAAkD,EAAA9C,EAAAiF,IAAArF,EAAA,QAAA6H,GAAA,aAAAnH,GAAA,UAAAA,IAAAN,EAAA+B,QAAA,QAAAc,EAAAC,IAAA,GAAA+E,KAAAC,IAAAL,IAAAK,EAAAtH,EAAA4qB,WAAArjB,EAAAD,EAAAqP,IAAAhL,EAAArE,EAAAwkB,OAAAvkB,EAAAhC,WAAAlD,IAAA,EAAAsJ,EAAApG,WAAAjD,IAAA,GAAA9C,EAAA0B,WAAA7B,KAAAA,EAAAA,EAAA+B,KAAAhC,EAAAQ,EAAAY,IAAA,MAAAnB,EAAAsX,MAAAtP,EAAAsP,IAAAtX,EAAAsX,IAAAnW,EAAAmW,IAAApP,GAAA,MAAAlI,EAAAysB,OAAAzkB,EAAAykB,KAAAzsB,EAAAysB,KAAAtrB,EAAAsrB,KAAAngB,GAAA,SAAAtM,GAAAA,EAAA40B,MAAA7yB,KAAAhC,EAAAiI,GAAArH,EAAAyE,IAAA4C,KAAA7H,EAAAyO,GAAAtL,QAAAioB,SAAA,WAAA,GAAAhgB,KAAA,GAAA,CAAA,GAAAxL,GAAAwL,KAAA,GAAAvL,EAAAuL,KAAAspB,eAAAt0B,EAAAgL,KAAA8oB,SAAA5zB,EAAA2zB,GAAAnzB,KAAAjB,EAAA,GAAA0D,WAAA4T,IAAA,EAAAmV,KAAA,GAAAzsB,EAAAq0B,QAAA,OAAA9zB,GAAA+W,KAAApR,WAAA/F,EAAAiF,IAAArF,EAAA,eAAA,EAAAQ,EAAAksB,MAAAvmB,WAAA/F,EAAAiF,IAAArF,EAAA,gBAAA;AIkBA,AJlBAU,EAAA6W,KAAApR,WAAA/F,EAAAiF,IAAApF,EAAA,GAAA,oBAAA,EAAAS,EAAAgsB,MAAAvmB,WAAA/F,EAAAiF,IAAApF,EAAA,GAAA,qBAAA,GAAAsX,IAAA/W,EAAA+W,IAAA7W,EAAA6W,IAAAmV,KAAAlsB,EAAAksB,KAAAhsB,EAAAgsB,QAAAoI,aAAA,WAAA,MAAAtpB,MAAAgG,IAAA,WAAA,IAAA,GAAAxR,GAAAwL,KAAAspB,cAAAl0B,EAAAgG,KAAA5G,IAAAq0B,GAAAnzB,KAAAlB,EAAA2D,WAAA,WAAAvD,EAAAiF,IAAArF,EAAA,aAAAA,EAAAA,EAAA80B,YAAA,OAAA90B,IAAAY,EAAAgG,UAAAxG,EAAAC,MAAAkf,WAAA,cAAAI,UAAA,eAAA,SAAA3f,EAAAQ,GAAA,GAAAE,GAAA,IAAAQ,KAAAV,EAAAJ,GAAAyO,GAAA7O,GAAA,SAAAY,GAAA,MAAAR,GAAAqT,OAAAjI,KAAA,SAAAxL,EAAAY,EAAAQ,GAAA,GAAA6B,GAAA8K,GAAA/N,EAAA,OAAAoB,KAAAnB,EAAAgD,EAAAzC,IAAAyC,GAAAA,EAAAzC,GAAAyC,EAAAoE,SAAA6L,gBAAAtS,GAAAZ,EAAAY,QAAAqC,EAAAA,EAAA8xB,SAAAr0B,EAAAN,EAAA6C,GAAAsc,aAAAne,EAAAV,EAAAU,EAAAhB,EAAA6C,GAAA0c,aAAA3f,EAAAY,GAAAQ,IAAApB,EAAAY,EAAA0Q,UAAA9O,OAAA,SAAApC,EAAAC,MAAA20B,OAAA;AImBA,AJnBAC,MAAA,SAAA,SAAAj1B,EAAAQ,GAAAJ,EAAAC,MAAA4sB,QAAA,QAAAjtB,EAAAk1B,QAAA10B,EAAA20B,GAAA,QAAAn1B,GAAA,SAAAU,EAAAE,GAAAR,EAAAyO,GAAAjO,GAAA,SAAAA,EAAAQ,GAAA,GAAA6B,GAAAqO,UAAA9O,SAAA9B,GAAA,iBAAAE,IAAAsC,EAAAxC,IAAAE,KAAA,GAAAQ,KAAA,EAAA,SAAA,SAAA,OAAAhB,GAAAqT,OAAAjI,KAAA,SAAAhL,EAAAE,EAAAE,GAAA,GAAAQ,EAAA,OAAAhB,GAAA4N,SAAAxN,GAAAA,EAAA6G,SAAA6L,gBAAA,SAAAlT,GAAA,IAAAQ,EAAAG,UAAAS,EAAAZ,EAAA0S,gBAAAnN,KAAAC,IAAAxF,EAAAoG,KAAA,SAAA5G,GAAAoB,EAAA,SAAApB,GAAAQ,EAAAoG,KAAA,SAAA5G,GAAAoB,EAAA,SAAApB,GAAAoB,EAAA,SAAApB,KAAAY,IAAAX,EAAAG,EAAAiF,IAAA7E,EAAAE,EAAAE,EAAAsC,GAAA9C,EAAAoF,MAAAhF,EAAAE,EAAAE,EAAAsC,IAAA1C,EAAAyC,EAAArC,EAAAX,EAAAgD,QAAAjD,EAAAqO,OAAArO,EAAAsO,EAAAlO,EAAA,kBAAAg1B,SAAAA,OAAAC,KAAAD,OAAAC,IAAAhnB,QAAA+mB,OAAA,YAAA,WAAA,MAAAh1B,MAAA4R,QCIA,WAAA,QAAAxF,GAAAA,EAAAwC,EAAApO,GAAAA,GAAAA,GAAA,GAAA,CAAA,KAAA,GAAAmO,GAAAvC,EAAAA,EAAAhK,OAAA,IAAA5B,EAAAmO,GAAA,GAAAvC,EAAA5L,KAAAoO,EAAA,MAAApO;AGgBA,AHhBA,MAAA,GAAA,QAAAoO,GAAAA,EAAApO,GAAA,GAAAmO,SAAAnO,EAAA,IAAAoO,EAAAA,EAAA7G,EAAA,WAAA4G,GAAA,MAAAnO,EAAA,MAAAoO,GAAApO,GAAA,EAAA,EAAA,WAAAmO,GAAA,UAAAA,IAAAA,EAAA,SAAA,IAAAE,GAAA,UAAAF,EAAAnO,EAAAX,EAAAW,CAAA,OAAAoO,IAAAA,EAAAA,EAAAD,KAAAC,EAAAC,GAAA,UAAAF,EAAAC,GAAA,GAAAxC,EAAAwC,EAAApO,GAAA,EAAA,GAAAoO,EAAA,EAAA,GAAA,QAAApO,GAAA4L,GAAA,GAAAwC,GAAAxD,KAAArD,EAAAvH,QAAA4L,EAAA,IAAA,WAAA5L,GAAA,MAAA4L,EAAAwC,EAAAxC,IAAA,MAAA,CAAA,UAAA5L,GAAA,UAAAA,IAAAA,EAAA,SAAA,IAAAmO,GAAA,UAAAnO,EAAA4L,EAAAvM,EAAAuM,EAAAwC,EAAAA,EAAApO,KAAAoO,EAAApO,MAAA,WAAAA,GAAAoO,EAAAD,KAAAC,EAAAD,QAAA1D,KAAAmB,GAAAwC,EAAAD,IAAA,GACA,QAAAA,GAAAvC,GAAA,MAAAA,GAAA8oB,WAAA,GAAA,QAAArmB,GAAAzC,EAAAwC,GAAA,IAAA,GAAApO,GAAA4L,EAAAD,EAAAwC,EAAAC,EAAAzC,EAAA0C,EAAA,GAAAxC,EAAA7L,EAAA4B,SAAAyM,EAAAxC,GAAA,CAAA,GAAAzM,GAAAY,EAAAqO,GAAApH,EAAAkH,EAAAE,EAAA,IAAAjP,IAAA6H,EAAA,CAAA,GAAA7H,EAAA6H,GAAA,mBAAA7H,GAAA,MAAA,EAAA,IAAA6H,EAAA7H,GAAA,mBAAA6H,GAAA,MAAA,IAAA,MAAA2E,GAAAA,EAAAwC,EAAAxC,EAAA,QAAAC,GAAAD,GAAA,GAAAwC,GAAA,GAAAD,EAAAvC,EAAAhK,OAAAyM,EAAAzC,EAAA,GAAAC,EAAAD,EAAAuC,EAAA,EAAA,GAAA/O,EAAAwM,EAAAuC,EAAA;AGgBA,AHhBA,GAAAE,GAAA,gBAAAA,IAAAxC,GAAA,gBAAAA,IAAAzM,GAAA,gBAAAA,GAAA,OAAA,CAAA,KAAAiP,EAAA9G,IAAA8G,EAAA,SAAAA,EAAA,QAAAA,EAAA,QAAAA,EAAAsmB,WAAA,EAAA9oB,EAAAtE,IAAAsE,EAAAvE,EAAAsE,EAAAC,EAAAtE,EAAA8G,EAAAxC,EAAApB,KAAAzK,IAAAoO,EAAAD,GAAAtC,EAAApB,KAAAmB,EAAAwC,GAAA,OAAAvC,GAAA,QAAAzM,GAAAwM,GAAA,MAAA,KAAA2P,EAAA3P,GACA,QAAA3E,KAAA,MAAAqH,GAAAzM,UAAA,QAAA0F,KAAA,MAAAkH,GAAA5M,QAAAyF,EAAA,KAAAC,EAAA,KAAAoE,EAAA,KAAAipB,SAAA,EAAAhpB,EAAA,EAAAipB,QAAA,EAAAC,OAAA,KAAA3d,OAAA,KAAA1M,KAAA,KAAAsqB,OAAA,KAAAC,QAAA,EAAAL,WAAA,EAAA9oB,EAAA,MAAA,QAAArL,GAAAoL,GAAA,MAAA,kBAAAA,GAAAkC,UAAA,iBAAAlC,EAAA,IAAA,QAAAhM,GAAAgM,GAAAA,EAAAhK,OAAA,EAAA0M,EAAA1M,OAAA2M,GAAAD,EAAA7D,KAAAmB,GAAA,QAAApM,GAAAoM,GAAA,GAAAwC,GAAAxC,EAAArE,CAAA6G,IAAA5O,EAAA4O,GAAAxC,EAAAtE,EAAAsE,EAAArE,EAAAqE,EAAAD,EAAAC,EAAAuL,OAAAvL,EAAAkpB,OAAAlpB,EAAAmpB,OAAAnpB,EAAAC,EAAA,KAAA4C,EAAA7M,OAAA2M,GAAAE,EAAAhE,KAAAmB,GAAA,QAAAjM,GAAAiM,EAAAwC,EAAApO,GAAAoO,IAAAA,EAAA,GAAA,mBAAApO,KAAAA,EAAA4L,EAAAA,EAAAhK,OAAA;AGgBA,AHhBA,GAAAuM,GAAA,EAAAnO,GAAAA,EAAAoO,GAAA,CAAA,KAAA,GAAAC,GAAAV,MAAA,EAAA3N,EAAA,EAAAA,KAAAmO,EAAAnO,GAAAqO,EAAAF,GAAAvC,EAAAwC,EAAAD,EACA,OAAAE,GAAA,QAAAhM,GAAArC,GAAA,QAAAsO,GAAA1C,GAAA,MAAAA,IAAA,gBAAAA,KAAAqpB,GAAArpB,IAAAspB,GAAA9zB,KAAAwK,EAAA,eAAAA,EAAA,GAAA6C,GAAA7C,GAAA,QAAA6C,GAAA7C,EAAAwC,GAAAxD,KAAAuqB,YAAA/mB,EAAAxD,KAAAwqB,YAAAxpB,EAAA,QAAA2C,GAAA3C,GAAA,QAAAwC,KAAA,GAAAD,EAAA,CAAA,GAAAvC,GAAAjM,EAAAwO,EAAAknB,IAAA5kB,MAAA7E,EAAA8E,WAAA,GAAA9F,eAAAwD,GAAA,CAAA,GAAAvC,GAAAypB,GAAAt1B,EAAA+M,WAAAnB,EAAA5L,EAAAyQ,MAAA5E,EAAAD,GAAA8E,UAAA,OAAA6kB,IAAA3pB,GAAAA,EAAAC,EAAA,MAAA7L,GAAAyQ,MAAApC,EAAAzC,GAAA8E,WAAA,GAAA1Q,GAAA4L,EAAA,GAAAuC,EAAAvC,EAAA,GAAAyC,EAAAzC,EAAA,EAAA,OAAA4pB,IAAApnB,EAAAxC,GAAAwC,EAAA,QAAAmN,GAAA3P,EAAAwC,EAAApO,EAAAmO,EAAAE,GAAA,GAAArO,EAAA,CAAA,GAAA6L,GAAA7L,EAAA4L,EAAA,IAAA,mBAAAC,GAAA,MAAAA,GAAA,IAAA0pB,GAAA3pB,GAAA,MAAAA,EAAA,IAAAxM,GAAAq2B,GAAAr0B,KAAAwK,EAAA,KAAAwP,EAAAhc,KAAAs2B,GAAAC,WAAAn1B,EAAAoL,GAAA,MAAAA,EACA,IAAArE,GAAAquB,GAAAx2B,EAAA,QAAAA,GAAA,IAAA6Y,GAAA,IAAAvJ,GAAA,MAAA,IAAAnH,IAAAqE,EAAA,KAAAyP,GAAA,IAAAnD;AGeA,AHfA,MAAA,IAAA3Q,GAAAqE,EAAA,KAAA/L,GAAA,MAAAgM,GAAAtE,EAAAqE,EAAAsC,OAAAsK,EAAAtT,KAAA0G,IAAAC,EAAA2V,UAAA5V,EAAA4V,UAAA3V,EAAA,GAAAzM,EAAA61B,GAAArpB,GAAAwC,EAAA,CAAA,GAAA5O,IAAA2O,CAAAA,KAAAA,EAAAlH,KAAAoH,IAAAA,EAAApH,IAAA,KAAA,GAAA5E,GAAA8L,EAAAvM,OAAAS,KAAA,GAAA8L,EAAA9L,IAAAuJ,EAAA,MAAAyC,GAAAhM,EAAAwJ,GAAAzM,EAAAmI,EAAAqE,EAAAhK,eAAAiK,GAAAzM,EAAAO,EAAAiM,GAAAiqB,MAAAjqB,EAAA,OAAAxM,KAAA81B,GAAA9zB,KAAAwK,EAAA,WAAAC,EAAA4V,MAAA7V,EAAA6V,OAAAyT,GAAA9zB,KAAAwK,EAAA,WAAAC,EAAA4Y,MAAA7Y,EAAA6Y,QAAArW,GAAAD,EAAA1D,KAAAmB,GAAAyC,EAAA5D,KAAAoB,IAAAzM,EAAA02B,GAAAjO,IAAAjc,EAAA,SAAAA,EAAAxM,GAAAyM,EAAAzM,GAAAmc,EAAA3P,EAAAwC,EAAApO,EAAAmO,EAAAE,KAAA7O,IAAAI,EAAAuO,GAAAvO,EAAAyO,IAAAxC,GAAAA,EAAA,QAAAypB,IAAA1pB,GAAA,MAAA2pB,IAAA3pB,GAAAmqB,GAAAnqB,MAAA,QAAAoqB,IAAApqB,EAAAwC,EAAApO,GAAA,GAAA,kBAAA4L,GAAA,MAAAqqB,GACA,IAAA,mBAAA7nB,MAAA,aAAAxC,IAAA,MAAAA,EAAA,IAAAuC,GAAAvC,EAAAsqB,YAAA,IAAA,mBAAA/nB,KAAAunB,GAAAS,YAAAhoB,GAAAvC,EAAA6L,MAAAtJ,EAAAA,IAAAunB,GAAAU,YAAAjoB,GAAA,CAAA,GAAAE,GAAAhN,GAAAD,KAAAwK,EAAA8pB,IAAAS,YAAAhoB,GAAAQ,EAAArO,KAAA+N;AGeA,AHfAF,IAAAA,EAAAS,EAAAtO,KAAA+N,GAAAmnB,GAAA5pB,EAAAuC,IAAA,IAAA,IAAAA,IAAA,IAAAA,GAAA,EAAAA,EAAA,GAAA,MAAAvC,EAAA,QAAA5L,GAAA,IAAA,GAAA,MAAA,UAAAA,GAAA,MAAA4L,GAAAxK,KAAAgN,EAAApO,GAAA,KAAA,GAAA,MAAA,UAAAA,EAAAmO,GAAA,MAAAvC,GAAAxK,KAAAgN,EAAApO,EAAAmO,GAAA,KAAA,GAAA,MAAA,UAAAnO,EAAAmO,EAAAE,GAAA,MAAAzC,GAAAxK,KAAAgN,EAAApO,EAAAmO,EAAAE,GAAA,KAAA,GAAA,MAAA,UAAArO,EAAAmO,EAAAE,EAAAxC,GAAA,MAAAD,GAAAxK,KAAAgN,EAAApO,EAAAmO,EAAAE,EAAAxC,IAAA,MAAAwqB,IAAAzqB,EAAAwC,GAAA,QAAAkoB,IAAA1qB,GAAA,QAAAwC,KAAA,GAAAxC,GAAArE,EAAAnI,EAAAwL,IACA,IAAAyD,EAAA,CAAA,GAAA/L,GAAA3C,EAAA0O,EAAAgnB,IAAA5kB,MAAAnO,EAAAoO,WAAA,OAAA7E,GAAAjM,KAAA0C,IAAAA,EAAA3C,EAAA+Q,YAAA7E,GAAAwpB,GAAA5kB,MAAAnO,EAAAuJ,GAAAjM,GAAA0C,EAAAV,OAAAqF,IAAAkH,GAAA,GAAAmoB,IAAAt2B,EAAAR,EAAA2O,EAAA,GAAAA,EAAA7L,EAAA,KAAAlD,EAAA6H,MAAA3E,IAAAA,EAAAoO,WAAAlQ,IAAAR,EAAA4L,EAAAvJ,IAAAuI,eAAAwD,IAAAxC,EAAA0pB,GAAAt1B,EAAA+M,WAAAzK,EAAAtC,EAAAyQ,MAAA7E,EAAAtJ,GAAAizB,GAAAjzB,GAAAA,EAAAsJ,GAAA5L,EAAAyQ,MAAA7E,EAAAtJ,IAAA,GAAAtC,GAAA4L,EAAA,GAAAuC,EAAAvC,EAAA,GAAAyC,EAAAzC,EAAA,GAAAC,EAAAD,EAAA,GAAAxM,EAAAwM,EAAA,GAAA3E,EAAA2E,EAAA,GAAArE,EAAA,EAAA4G,EAAA3N,EAAA,EAAA2N,EAAAvO,EAAA,EAAAuO,EAAA3O,EAAA,EAAA2O,EAAA9L,EAAArC,CAAA,OAAAw1B,IAAApnB,EAAAxC;AGeA,AHfAwC,EAAA,QAAAmoB,IAAAv2B,EAAAmO,GAAA,GAAAE,GAAA,GAAAjP,EAAAo3B,KAAAvvB,EAAAjH,EAAAA,EAAA4B,OAAA,EAAA2F,EAAAN,GAAAwU,GAAArc,IAAAwM,EAAApL,IAAA,IAAA+G,EAAA,CAAA,GAAA3H,GAAAiM,EAAAsC,EAAAvO,IAAAR,EAAAgP,EAAAD,EAAAvO,GAAA2H,GAAA,EAAA,OAAA8G,EAAApH,GAAArH,EAAAI,EAAAqO,GAAA,EAAAjP,EAAA+O,EAAAvO,IAAAY,EAAAiK,KAAA7K,EAAA,OAAA2H,IAAA/H,EAAA2O,GAAA3N,EAAA,QAAAi2B,IAAA7qB,EAAAwC,EAAApO,EAAAmO,GAAAA,GAAAA,GAAA,GAAA,CACA,KAAA,GAAAE,GAAAzC,EAAAA,EAAAhK,OAAA,EAAAiK,OAAAsC,EAAAE,GAAA,CAAA,GAAAjP,GAAAwM,EAAAuC,EAAA,IAAA/O,GAAA,gBAAAA,IAAA,gBAAAA,GAAAwC,SAAAqzB,GAAA71B,IAAAs3B,GAAAt3B,IAAA,CAAAgP,IAAAhP,EAAAq3B,GAAAr3B,EAAAgP,EAAApO,GAAA,IAAAiH,GAAA,GAAAM,EAAAnI,EAAAwC,OAAApB,EAAAqL,EAAAjK,MAAA,KAAAiK,EAAAjK,QAAA2F,IAAAN,EAAAM,GAAAsE,EAAArL,KAAApB,EAAA6H,OAAAjH,IAAA6L,EAAApB,KAAArL,GAAA,MAAAyM,GAAA,QAAA8qB,IAAA/qB,EAAAwC,EAAApO,EAAAmO,EAAAE,EAAAxC,GAAA,GAAA7L,EAAA,CAAA,GAAAZ,GAAAY,EAAA4L,EAAAwC,EAAA,IAAA,mBAAAhP,GAAA,QAAAA,EAAA,GAAAwM,IAAAwC,EAAA,MAAA,KAAAxC,GAAA,EAAAA,GAAA,EAAAwC,CAAA,IAAAxC,IAAAA,KAAAA,GAAA0P,QAAA1P,KAAAwC,GAAAkN,QAAAlN,KAAA,OAAA,CAAA,IAAA,MAAAxC,GAAA,MAAAwC,EAAA,MAAAxC,KAAAwC,CAAA,IAAA7G,GAAAkuB,GAAAr0B,KAAAwK,GAAApM,EAAAi2B,GAAAr0B,KAAAgN,EAAA,IAAA7G,GAAAkR,IAAAlR,EAAAjI,GAAAE,GAAAiZ,IAAAjZ,EAAAF;AGeA,AHfAiI,AIZA,GJYA/H,EAAA,OAAA,CAAA,QAAA+H,GAAA,IAAA0Q,GAAA,IAAAvJ,GAAA,OAAA9C,IAAAwC,CACA,KAAAiN,GAAA,MAAAzP,KAAAA,EAAAwC,IAAAA,EAAA,GAAAxC,EAAA,EAAAA,GAAA,EAAAwC,EAAAxC,IAAAwC,CAAA,KAAAvO,GAAA,IAAAqY,GAAA,MAAAtM,IAAAgrB,GAAAxoB,GAAA,GAAA5O,EAAA+H,GAAAmG,GAAAlO,EAAA,CAAA,GAAAG,GAAAu1B,GAAA9zB,KAAAwK,EAAA,eAAAvJ,EAAA6yB,GAAA9zB,KAAAgN,EAAA,cAAA,IAAAzO,GAAA0C,EAAA,MAAAs0B,IAAAh3B,EAAAiM,EAAAwpB,YAAAxpB,EAAAvJ,EAAA+L,EAAAgnB,YAAAhnB,EAAApO,EAAAmO,EAAAE,EAAAxC,EAAA,IAAAtE,GAAAjI,IAAAo2B,GAAAC,YAAAn1B,EAAAoL,IAAApL,EAAA4N,IAAA,OAAA,CAAA,IAAA7G,GAAAmuB,GAAAmB,YAAAH,GAAA9qB,GAAAkrB,GAAAlrB,EAAAyD,YAAA1P,GAAA+1B,GAAAmB,YAAAH,GAAAtoB,GAAA0oB,GAAA1oB,EAAAiB,YAAA9H,GAAA5H,KAAAo3B,GAAAxvB,IAAAA,YAAAA,IAAAwvB,GAAAp3B,IAAAA,YAAAA,KAAA,eAAAiM,IAAA,eAAAwC,GAAA,OAAA,EAAA,IAAA7G,GAAA8G,EAAAA,IAAAA,EAAApH,KAAA4E,IAAAA,EAAA5E,KAAAtH,EAAA0O,EAAAzM,OAAAjC,KAAA,GAAA0O,EAAA1O,IAAAiM,EAAA,MAAAC,GAAAlM,IAAAyO,CACA,IAAA9L,GAAA,EAAAlD,GAAA,CAAA,IAAAiP,EAAA5D,KAAAmB,GAAAC,EAAApB,KAAA2D,GAAA5O,GAAA,GAAAG,EAAAiM,EAAAhK,OAAAU,EAAA8L,EAAAxM,QAAAxC,EAAAkD,GAAA3C,IAAAwO,EAAA,KAAA7L,KAAA,GAAA9C,EAAAG,EAAA0C,EAAA+L,EAAA9L;AAAA6L,AIbA,EJaA,KAAA3O,OAAAJ,EAAAu3B,GAAA/qB,EAAApM,GAAA6C,EAAArC,EAAAmO,EAAAE,EAAAxC,UAAA,MAAAzM,EAAAu3B,GAAA/qB,EAAAtJ,GAAAD,EAAArC,EAAAmO,EAAAE,EAAAxC,IAAA,UAAAmrB,IAAA5oB,EAAA,SAAAA,EAAAnH,EAAAM,GAAA,MAAA2tB,IAAA9zB,KAAAmG,EAAAN,IAAA3E,IAAAlD,EAAA81B,GAAA9zB,KAAAwK,EAAA3E,IAAA0vB,GAAA/qB,EAAA3E,GAAAmH,EAAApO,EAAAmO,EAAAE,EAAAxC,IAAA,SAAAzM,IAAA+O,GAAA6oB,GAAAprB,EAAA,SAAAA,EAAAwC,EAAApO,GAAA,MAAAk1B,IAAA9zB,KAAApB,EAAAoO,GAAAhP,EAAA,KAAAkD,EAAA,QAAA,OAAA+L,GAAAxM,MAAAgK,EAAAhK,MAAA0F,IAAA3H,EAAAyO,GAAAzO,EAAAiM,IAAAzM,EAAA,QAAA63B,IAAArrB,EAAAwC,EAAApO,EAAAmO,EAAAE,IAAA4mB,GAAA7mB,GAAA8oB,GAAArP,IAAAzZ,EAAA,SAAAA,EAAAvC,GAAA,GAAAzM,GAAA6H,EAAAM,EAAA6G,EAAA5N,EAAAoL,EAAAC,EAAA,IAAAuC,KAAAnH,EAAAguB,GAAA7mB,KAAA+oB,GAAA/oB,IAAA,CAAA,IAAA7G,EAAA4G,EAAAvM,OAAA2F,KAAA,GAAAnI,EAAA+O,EAAA5G,IAAA6G,EAAA,CAAA5N,EAAA6N,EAAA9G,EACA,OAAA,IAAAnI,EAAA,CAAA,GAAAQ,EAAAI,KAAAuH,EAAAvH,EAAAQ,EAAA4N,GAAAxO,EAAA,mBAAA2H,MAAA/G,EAAA+G,GAAA3H,IAAAY,EAAAyG,EAAAguB,GAAAz0B,GAAAA,KAAA22B,GAAA32B,GAAAA,MAAA2N,EAAA1D,KAAA2D,GAAAC,EAAA5D,KAAAjK,GAAAZ,GAAAq3B,GAAAz2B,EAAA4N,EAAApO,EAAAmO,EAAAE,QAAArO,KAAAuH,EAAAvH,EAAAQ,EAAA4N,GAAA,mBAAA7G,KAAAA,EAAA6G,IAAA,mBAAA7G,KAAA/G,EAAA+G,EAAAqE,GAAAC,GAAArL,IAAA,QAAAukB,IAAAnZ,EAAAwC,GAAA,MAAAxC,GAAAwrB,GAAAC,MAAAjpB,EAAAxC,EAAA;AIbA,CJaA,QAAA0rB,IAAAt3B,EAAAmO,EAAAE,GAAA,GAAAjP,GAAA,GAAAmI,EAAAivB,KAAAh2B,EAAAR,EAAAA,EAAA4B,OAAA,EAAAjC,KAAA0C,GAAA8L,GAAA3N,GAAAib,GAAAlU,IAAAqE,EAAAtJ,EAAA+L,GAAAhM,EAAA4E,IAAAtH,CAAA,KAAA0C,IAAAC,EAAAuJ,EAAAvJ,GAAAiF,EAAA6G,KAAAhP,EAAAoB,GAAA,CAAA,GAAA8N,GAAAtO,EAAAZ,GAAAqP,EAAAJ,EAAAA,EAAAC,EAAAlP,EAAAY,GAAAsO,GAAAH,GAAA/O,GAAAkD,EAAAA,EAAAV,OAAA,KAAA6M,EAAA,EAAAlH,EAAAjF,EAAAmM,OAAAJ,GAAAhM,IAAAC,EAAAmI,KAAAgE,GAAA9O,EAAA8K,KAAA6D,IAAA,MAAAjM,IAAAzC,EAAA0C,EAAAgF,GAAA9H,EAAA8C,IAAA+L,GAAAzO,EAAA0C,GAAA3C,EAAA,QAAAiuB,IAAAhiB,GAAA,MAAA,UAAAwC,EAAApO,EAAAmO,GAAA,GAAAE,KACA,IAAArO,EAAAsO,EAAAipB,eAAAv3B,EAAAmO,EAAA,GAAA8mB,GAAA7mB,GAAA,CAAAD,EAAA,EAAA,KAAA,GAAAtC,GAAAuC,EAAAxM,SAAAuM,EAAAtC,GAAA,CAAA,GAAAzM,GAAAgP,EAAAD,EAAAvC,GAAAyC,EAAAjP,EAAAY,EAAAZ,EAAA+O,EAAAC,GAAAA,QAAA0nB,IAAA1nB,EAAA,SAAAA,EAAAD,EAAAtC,GAAAD,EAAAyC,EAAAD,EAAApO,EAAAoO,EAAAD,EAAAtC,GAAAA,IAAA,OAAAwC,IAAA,QAAAmpB,IAAA5rB,EAAAwC,EAAApO,EAAAmO,EAAAE,EAAAxC,GAAA,GAAAzM,GAAA,EAAAgP,EAAAnH,EAAA,EAAAmH,EAAA7G,EAAA,GAAA6G,EAAA5N,EAAA,GAAA4N,CAAA,MAAA,EAAAA,GAAA2oB,GAAAnrB,IAAA,KAAA,IAAA6rB,GAAAlwB,KAAAvH,EAAA4B,SAAAwM,GAAA,IAAA7G,EAAAvH,GAAA,GAAAQ,IAAA2N,EAAAvM,SAAAwM,GAAA,IAAA5N,EAAA2N,GAAA,EAAA,IAAAvO,GAAAgM,GAAAA,EAAAsqB,YAAA,OAAAt2B,KAAA,IAAAA,GAAAA,EAAAD,EAAAC,GAAAA,EAAA,KAAAA,EAAA,GAAAD,EAAAC,EAAA,KAAAA,EAAA,KAAAA,EAAA,GAAAD,EAAAC,EAAA;AIbA,CJaAR,GAAA,EAAAQ,EAAA,KAAAA,EAAA,GAAAyO,IAAAjP,GAAA,EAAAQ,EAAA,KAAAwO,GAAA,IAAAnH,GAAA,EAAArH,EAAA,KAAAA,EAAA,GAAAiM,GAAAtE,GAAA8tB,GAAA5kB,MAAA7Q,EAAA,KAAAA,EAAA,OAAAI,GAAAQ,GAAAk3B,GAAAjnB,MAAA7Q,EAAA,KAAAA,EAAA,OAAAuO,GAAAvO,EAAA,IAAAwO,EAAAopB,GAAA/mB,MAAA,KAAA7Q,KAAA,GAAAwO,GAAA,KAAAA,EAAAG,EAAA+nB,KAAA1qB,EAAAwC,EAAApO,EAAAmO,EAAAE,EAAAxC,IACA,QAAA8rB,MAAArf,EAAAhW,EAAA/C,EAAA+Y,EAAAjZ,EAAAiZ,EAAA1Y,EAAA0Y,EAAAjW,EAAAiW,EAAArR,EAAA,GAAAqR,EAAAtY,EAAA,IAAAsY,EAAAjR,GAAA,CAAA,KAAA,GAAAuE,GAAAwC,EAAA,EAAAxC,EAAA8E,UAAAtC,GAAAA,IAAA,IAAA,GAAApO,KAAA4L,GAAA0M,EAAAtY,GAAA4L,EAAA5L,EAAAoO,GAAAkK,EAAAlZ,EAAAkZ,EAAAxY,EAAA,SAAAoF,KAAAkJ,GAAA,GAAAxC,EAAAgsB,GAAAxpB,EAAA,mBAAAA,EAAA,KAAApO,EAAAsY,CAAA,IAAAnK,GAAA,WAAAnO,EAAAF,EAAA,MAAAE,EAAAA,EAAA,mBAAAA,EAAAiH,EAAA,GAAAjH,GAAAX,GAAA8O,GAAA,0BAAAnO,EAAAX,EAAA,KAAAq2B,GAAAmC,iBAAA1pB,GAAA,2BAAAA,GAAA,gBAAAnO,EAAAqC,EAAA,YAAAqzB,GAAAoC,cAAA3pB,GAAA,sDAAAnO,EAAAqC,EAAA,YAAAqzB,GAAAqC,iBAAA5pB,GAAA;AAAAunB,AIbA,GJaAsC,iBAAA7pB,GAAA,mCACA,IAAAE,KAAA,IAAAqnB,GAAAqC,gBAAA1pB,EAAA5D,KAAA,wBAAAirB,GAAAsC,gBAAA3pB,EAAA5D,KAAA,mCAAAzK,EAAAqH,GAAArH,EAAAQ,EAAA2N,GAAA,mEAAAE,EAAAzM,SAAAuM,GAAA,MAAAE,EAAAsC,KAAA,MAAA,MAAAxC,GAAAnO,EAAAqC,EAAA,IAAAgM,EAAAzM,SAAAuM,GAAA,KAAAA,GAAA,QAAA,IAAAA,GAAA,eAAAnO,EAAAqH,GAAAgH,EAAA5D,KAAA,gBAAA4D,EAAAzM,SAAAuM,GAAA,MAAAE,EAAAsC,KAAA,MAAA,MAAAxC,GAAAnO,EAAAqC,EAAA,IAAAgM,EAAAzM,SAAAuM,GAAA,KAAAA,GAAA,IAAAunB,GAAAuC,eAAA,CAAA,IAAA9pB,GAAA,2FAAA7G,EAAA,EAAA,EAAAA,EAAAA,IAAA6G,GAAA,MAAAnO,EAAAsC,EAAAgF,GAAA,iCAAAtH,EAAAqH,IAAA8G,GAAA;AAAAA,AIbA,GJaA,KAAAnO,EAAAqC,EAAA,GACA8L,IAAA,IAAA,OAAAnO,EAAAX,GAAAq2B,GAAAoC,eAAA3pB,GAAA,KAAAA,GAAAnO,EAAAJ,EAAA,YAAAgM,EAAA,gCAAAwC,EAAAD,EAAA,KAAA6nB,GAAAlqB,EAAA0gB,GAAA0I,GAAAp1B,EAAA42B,GAAAzB,GAAAiD,GAAA5f,EAAA9X,EAAA23B,GAAA7c,EAAA8c,GAAAlgB,EAAAmgB,GAAA5C,IAAA,QAAAzQ,IAAApZ,GAAA,MAAA0sB,IAAA1sB,GAAA,QAAA4qB,MAAA,GAAApoB,IAAAA,EAAAE,EAAAV,WAAA2qB,GAAA3sB,EAAAwC,CAAA,OAAAA,GAAA,QAAAoqB,IAAA5sB,GAAA,MAAA,kBAAAA,IAAA6sB,GAAAn4B,KAAAsL,GAAA,QAAA8sB,IAAA9sB,GAAA,GAAAwC,GAAApO,CAAA,QAAA4L,GAAA6pB,GAAAr0B,KAAAwK,IAAAtM,IAAA8O,EAAAxC,EAAAyD,YAAA0nB,GAAA3oB,MAAAA,YAAAA,OAAAsnB,GAAAiD,WAAAjC,GAAA9qB,KAAA8pB,GAAAC,WAAAn1B,EAAAoL,IAAA,EAAA8pB,GAAAkD,SAAA5B,GAAAprB,EAAA,SAAAA,EAAAwC,EAAAD,GAAA,MAAAnO,GAAAk1B,GAAA9zB,KAAA+M,EAAAC,IAAA,KAAA,IAAApO,IAAAg3B,GAAAprB,EAAA,SAAAA,EAAAwC,GAAApO,EAAAoO,IACA,mBAAApO,IAAAk1B,GAAA9zB,KAAAwK,EAAA5L,IAAA,QAAA64B,IAAAjtB,GAAA,MAAAktB,IAAAltB,GAAA,QAAA8qB,IAAA9qB,GAAA,MAAAA,IAAA,gBAAAA,IAAA,gBAAAA,GAAAhK,QAAA6zB,GAAAr0B,KAAAwK,IAAA6M,IAAA;AIdA,CJcA,QAAA4O,IAAAzb,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA4qB,GAAAntB,GAAAyC,EAAAF,EAAAvM,MAAA,KAAAwM,EAAA4nB,GAAA5nB,EAAApO,EAAA,GAAAqO,MAAArO,EAAAmO,EAAAE,IAAA,IAAAD,EAAAxC,EAAA5L,GAAAA,EAAA4L,MAAA,MAAAA,GAAA,QAAAotB,IAAAptB,GAAA,GAAAwC,KAAA,OAAA4oB,IAAAprB,EAAA,SAAAA,EAAA5L,GAAA+2B,GAAAnrB,IAAAwC,EAAA3D,KAAAzK,KAAAoO,EAAAyC,OAAA,QAAAooB,IAAArtB,GAAA,IAAA,GAAAwC,GAAA,GAAApO,EAAA+4B,GAAAntB,GAAAuC,EAAAnO,EAAA4B,OAAAyM,OAAAD,EAAAD,GAAA,CAAA,GAAAtC,GAAA7L,EAAAoO,EAAAC,GAAAzC,EAAAC,IAAAA,EAAA,MAAAwC,GAAA,QAAA0oB,IAAAnrB,GAAA,MAAA,kBAAAA,GAAA,QAAA2pB,IAAA3pB,GAAA,SAAAA,IAAA0P,QAAA1P,KACA,QAAAstB,IAAAttB,GAAA,MAAA,gBAAAA,IAAAA,GAAA,gBAAAA,IAAA6pB,GAAAr0B,KAAAwK,IAAAyP,IAAA,EAAA,QAAA6c,IAAAtsB,GAAA,MAAA,gBAAAA,IAAAA,GAAA,gBAAAA,IAAA6pB,GAAAr0B,KAAAwK,IAAAsM,IAAA,EAAA,QAAAihB,IAAAvtB,GAAA,IAAA,GAAAwC,GAAA,GAAApO,EAAA+4B,GAAAntB,GAAAuC,EAAAnO,EAAA4B,OAAAyM,EAAA+qB,GAAAjrB,KAAAC,EAAAD,GAAAE,EAAAD,GAAAxC,EAAA5L,EAAAoO,GAAA,OAAAC,GAAA,QAAAgrB,IAAAztB,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA,GAAAE,EAAAmoB,KAAA3qB,EAAAD,EAAAA,EAAAhK,OAAA,EAAAxC,GAAA,CAAA,OAAAY,IAAA,EAAAA,EAAAs5B,GAAA,EAAAztB,EAAA7L,GAAAA,IAAA;AAAAi1B,AIdA,GJcArpB,GAAAxM,EAAA,GAAAiP,EAAAzC,EAAAwC,EAAApO,GAAA,gBAAA6L,GAAAzM,EAAA,IAAA84B,GAAAtsB,GAAAA,EAAAgC,QAAAQ,EAAApO,GAAAqO,EAAAzC,EAAAwC,EAAApO,IAAA81B,GAAAlqB,EAAA,SAAAA,GAAA,QAAAuC,EAAAnO,EAAA,SAAAZ,EAAAwM,IAAAwC,KAAAhP,EAAA,QAAAm6B,IAAA3tB,EAAAwC,EAAApO,GAAA,GAAAmO,IAAA,CAAA,IAAAC,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAAi1B,GAAArpB,GAAA,CAAA5L,EAAA,EACA,KAAA,GAAAqO,GAAAzC,EAAAhK,SAAA5B,EAAAqO,IAAAF,IAAAC,EAAAxC,EAAA5L,GAAAA,EAAA4L,WAAAkqB,IAAAlqB,EAAA,SAAAA,EAAA5L,EAAAqO,GAAA,MAAAF,KAAAC,EAAAxC,EAAA5L,EAAAqO,IAAA,OAAAF,GAAA,QAAAqrB,IAAA5tB,EAAAwC,EAAApO,GAAA,GAAAmO,KAAA,IAAAC,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAAi1B,GAAArpB,GAAA,CAAA5L,EAAA,EAAA,KAAA,GAAAqO,GAAAzC,EAAAhK,SAAA5B,EAAAqO,GAAA,CAAA,GAAAxC,GAAAD,EAAA5L,EAAAoO,GAAAvC,EAAA7L,EAAA4L,IAAAuC,EAAA1D,KAAAoB,QAAAiqB,IAAAlqB,EAAA,SAAAA,EAAA5L,EAAAqO,GAAAD,EAAAxC,EAAA5L,EAAAqO,IAAAF,EAAA1D,KAAAmB,IAAA,OAAAuC,GAAA,QAAAsrB,IAAA7tB,EAAAwC,EAAApO,GAAA,GAAAoO,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,IAAAi1B,GAAArpB,GAAA,CAAA,GAAAuC,EAAA,OAAA2nB,IAAAlqB,EAAA,SAAAA,EAAA5L,EAAAqO,GAAA,MAAAD,GAAAxC,EAAA5L,EAAAqO,IAAAF,EAAAvC,GAAA,GAAA,SAAAuC,EAAAnO,EAAA,EAAA,KAAA,GAAAqO,GAAAzC,EAAAhK,SAAA5B,EAAAqO,GAAA,CAAA,GAAAxC,GAAAD,EAAA5L,EAAA,IAAAoO,EAAAvC,EAAA7L,EAAA4L,GAAA,MAAAC;AIdA,EJcA,QAAAqrB,IAAAtrB,EAAAwC,EAAApO,GAAA,GAAAoO,GAAA,mBAAApO,IAAAi1B,GAAArpB,GAAA,CAAA5L,EAAA,EACA,KAAA,GAAAmO,GAAAvC,EAAAhK,SAAA5B,EAAAmO,IAAA,IAAAC,EAAAxC,EAAA5L,GAAAA,EAAA4L,UAAAkqB,IAAAlqB,EAAAwC,EAAApO,EAAA,OAAA4L,GAAA,QAAA8tB,IAAA9tB,EAAAwC,EAAApO,GAAA,GAAAmO,GAAAvC,EAAAyC,EAAAzC,EAAAA,EAAAhK,OAAA,CAAA,IAAAwM,EAAAA,GAAA,mBAAApO,GAAAoO,EAAA4nB,GAAA5nB,EAAApO,EAAA,GAAAi1B,GAAArpB,GAAA,KAAAyC,MAAA,IAAAD,EAAAxC,EAAAyC,GAAAA,EAAAzC,SAAA,CAAA,GAAA,gBAAAyC,GAAA,GAAAxC,GAAAktB,GAAAntB,GAAAyC,EAAAxC,EAAAjK,WAAA8zB,IAAAmC,gBAAAK,GAAAtsB,KAAAuC,EAAAvC,EAAAlM,MAAA,IAAAo2B,IAAAlqB,EAAA,SAAAA,EAAA5L,EAAAZ,GAAA,MAAAY,GAAA6L,EAAAA,IAAAwC,KAAAA,EAAAD,EAAAD,EAAAnO,GAAAA,EAAAZ,KAAA,MAAAwM,GAAA,QAAA+tB,IAAA/tB,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA,GAAAE,EAAAzC,EAAAA,EAAAhK,OAAA,EAAAiK,EAAAutB,GAAA,gBAAA/qB,GAAAA,EAAA,EAAA,IAAAD,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAAi1B,GAAArpB,GAAA,OAAAuC,EAAAE,GAAAxC,EAAAsC,GAAAC,EAAAxC,EAAAuC,GAAAA,EAAAvC,OAAAkqB,IAAAlqB,EAAA,SAAAA,EAAA5L,EAAAqO,GAAAxC,IAAAsC,GAAAC,EAAAxC,EAAA5L,EAAAqO,IACA,OAAAxC,GAAA,QAAA+tB,IAAAhuB,EAAAwC,EAAApO,GAAA,GAAAqO,GAAA,GAAA,EAAAxC,EAAAwC,CAAA,IAAA,kBAAAD,IAAApO,GAAAA,EAAAoO,KAAAxC,IAAAwC,EAAA;AAAA,AIfA,MJeAA,GAAA6mB,GAAArpB,GAAA,CAAA5L,EAAA,EAAA,KAAA,GAAAZ,GAAAwM,EAAAhK,SAAA5B,EAAAZ,GAAA,CAAA,GAAA6H,GAAA2E,EAAA5L,EAAAiH,GAAA4E,IAAAA,EAAA5E,QAAAmH,GAAA,MAAAA,GAAA8pB,GAAAtsB,GAAAuC,EAAAG,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAA81B,GAAAlqB,EAAA,SAAAA,EAAA5L,EAAAmO,GAAAnO,EAAAoO,EAAAxC,EAAA5L,EAAAmO,GAAAnO,EAAAqO,IAAAA,EAAArO,EAAA6L,EAAAD,IAAA,OAAAC,GAAA,QAAAguB,IAAAjuB,EAAAwC,EAAApO,EAAAmO,GAAA,GAAAE,GAAA,EAAAqC,UAAA9O,MAAA,IAAAwM,EAAAE,EAAAipB,eAAAnpB,EAAAD,EAAA,GAAA8mB,GAAArpB,GAAA,CAAA,GAAAC,GAAA,GAAAzM,EAAAwM,EAAAhK,MAAA,KAAAyM,IAAArO,EAAA4L,IAAAC,MAAAA,EAAAzM,GAAAY,EAAAoO,EAAApO,EAAA4L,EAAAC,GAAAA,EAAAD,OAAAkqB,IAAAlqB,EAAA,SAAAA,EAAAuC,EAAAtC,GAAA7L,EAAAqO,GAAAA,GAAA,EAAAzC,GAAAwC,EAAApO,EAAA4L,EAAAuC,EAAAtC,IAAA,OAAA7L,GAAA,QAAA85B,IAAAluB,EAAAwC,EAAApO,EAAAmO,GAAA,GAAAE,GAAA,EAAAqC,UAAA9O,MACA,OAAAwM,GAAAE,EAAAipB,eAAAnpB,EAAAD,EAAA,GAAAurB,GAAA9tB,EAAA,SAAAA,EAAAuC,EAAAtC,GAAA7L,EAAAqO,GAAAA,GAAA,EAAAzC,GAAAwC,EAAApO,EAAA4L,EAAAuC,EAAAtC,KAAA7L,EAAA,QAAA+5B,IAAAnuB,GAAA,GAAAwC,GAAA,GAAApO,EAAA4L,EAAAA,EAAAhK,OAAA,EAAAuM,EAAAirB,GAAA,gBAAAp5B,GAAAA,EAAA,EAAA,OAAAk3B,IAAAtrB,EAAA,SAAAA,GAAA,GAAA5L,GAAA+kB,GAAA,IAAA3W,EAAAD,GAAAC,GAAAD,EAAAnO,GAAAmO,EAAAnO,GAAA4L,IAAAuC,EAAA,QAAA6rB,IAAApuB,EAAAwC,EAAApO,GAAA,GAAAmO,EAAA,IAAAC,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA;AAAAi1B,AIfA,GJeArpB,GAAA,CAAA5L,EAAA,EAAA,KAAA,GAAAqO,GAAAzC,EAAAhK,SAAA5B,EAAAqO,KAAAF,EAAAC,EAAAxC,EAAA5L,GAAAA,EAAA4L,WAAAkqB,IAAAlqB,EAAA,SAAAA,EAAA5L,EAAAqO,GAAA,QAAAF,EAAAC,EAAAxC,EAAA5L,EAAAqO,KAAA,SAAAF,EAAA,QAAA8rB,IAAAruB,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA,EAAAE,EAAAzC,EAAAA,EAAAhK,OAAA,CAAA,IAAA,gBAAAwM,IAAA,MAAAA,EAAA,CAAA,GAAAvC,GAAA,EAAA,KAAAuC,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,KAAA6L,EAAAwC,GAAAD,EAAAxC,EAAAC,GAAAA,EAAAD,IAAAuC,QACA,IAAAA,EAAAC,EAAA,MAAAD,GAAAnO,EAAA,MAAA4L,GAAAA,EAAA,GAAAtJ,CAAA,OAAA3C,GAAAiM,EAAA,EAAAsuB,GAAAZ,GAAA,EAAAnrB,GAAAE,IAAA,QAAAkqB,IAAAnqB,EAAApO,EAAAmO,GAAA,GAAA,gBAAAA,GAAA,CAAA,GAAAE,GAAAD,EAAAA,EAAAxM,OAAA,CAAAuM,GAAA,EAAAA,EAAAmrB,GAAA,EAAAjrB,EAAAF,GAAAA,GAAA,MAAA,IAAAA,EAAA,MAAAA,GAAAgsB,GAAA/rB,EAAApO,GAAAoO,EAAAD,KAAAnO,EAAAmO,EAAA,EAAA,OAAAvC,GAAAwC,EAAApO,EAAAmO,GAAA,QAAAisB,IAAAxuB,EAAAwC,EAAApO,GAAA,GAAA,gBAAAoO,IAAA,MAAAA,EAAA,CAAA,GAAAD,GAAA,EAAAE,EAAA,GAAAxC,EAAAD,EAAAA,EAAAhK,OAAA,CAAA,KAAAwM,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,KAAAqO,EAAAxC,GAAAuC,EAAAxC,EAAAyC,GAAAA,EAAAzC,IAAAuC,QAAAA,GAAA,MAAAC,GAAApO,EAAA,EAAAs5B,GAAA,EAAAlrB,EAAA,OAAAzO,GAAAiM,EAAAuC,GAAA,QAAAgsB,IAAAvuB,EAAAwC,EAAApO,EAAAmO,GAAA,GAAAE,GAAA,EAAAxC,EAAAD,EAAAA,EAAAhK,OAAAyM;AAAA,AIfA,IJeArO,EAAAA,EAAAsO,EAAAipB,eAAAv3B,EAAAmO,EAAA,GAAA8nB,GAAA7nB,EAAApO,EAAAoO,GAAAvC,EAAAwC,GAAAF,EAAAE,EAAAxC,IAAA,EAAA7L,EAAA4L,EAAAuC,IAAAC,EAAAC,EAAAF,EAAA,EAAAtC,EAAAsC,CACA,OAAAE,GAAA,QAAAgsB,IAAAzuB,EAAAwC,EAAApO,EAAAmO,GAAA,MAAA,iBAAAC,IAAA,MAAAA,IAAAD,EAAAnO,EAAAA,EAAA,kBAAAoO,IAAAD,GAAAA,EAAAC,KAAAxC,EAAA,KAAAwC,EAAAA,GAAA,GAAA,MAAApO,IAAAA,EAAAsO,EAAAipB,eAAAv3B,EAAAmO,EAAA,IAAAmpB,GAAA1rB,EAAAwC,EAAApO,GAAA,QAAAs6B,MAAA,IAAA,GAAA1uB,GAAA,EAAA8E,UAAA9O,OAAA8O,UAAAA,UAAA,GAAAtC,EAAA,GAAApO,EAAA4L,EAAAguB,GAAAW,GAAA3uB,EAAA,WAAA,EAAAuC,EAAAirB,GAAA,EAAAp5B,EAAA,EAAAA,KAAAoO,EAAApO,GAAAmO,EAAAC,GAAAmsB,GAAA3uB,EAAAwC,EAAA,OAAAD,GAAA,QAAAqsB,IAAA5uB,EAAAwC,GAAA,GAAApO,GAAA,GAAAmO,EAAAvC,EAAAA,EAAAhK,OAAA,EAAAyM,IAAA,KAAAD,IAAAD,GAAA8mB,GAAArpB,EAAA,MAAAwC,QAAApO,EAAAmO,GAAA,CAAA,GAAAtC,GAAAD,EAAA5L,EAAAoO,GAAAC,EAAAxC,GAAAuC,EAAApO,GAAA6L,IAAAwC,EAAAxC,EAAA,IAAAA,EAAA,IAAA,MAAAwC,GAAA,QAAAgoB,IAAAzqB,EAAAwC,GAAA,MAAA,GAAAsC,UAAA9O,OAAA41B,GAAA5rB,EAAA,GAAAjM,EAAA+Q,UAAA,GAAA,KAAAtC,GAAAopB,GAAA5rB,EAAA,EAAA,KAAA,KAAAwC,GACA,QAAAqsB,IAAA7uB,EAAAwC,EAAApO,GAAA,GAAAmO,GAAAE,EAAAxC,EAAAzM,EAAA6H,EAAAM,EAAA/G,EAAAZ,EAAA,EAAAJ,GAAA,EAAAG,GAAA,CAAA,KAAAo3B,GAAAnrB,GAAA,KAAA,IAAA6rB;AAAA,AIhBA,GJgBArpB,EAAAkrB,GAAA,EAAAlrB,IAAA,GAAA,IAAApO,EAAA,GAAAqC,IAAA,EAAA1C,GAAA,MAAA41B,IAAAv1B,KAAAqC,EAAArC,EAAA06B,QAAAl7B,EAAA,WAAAQ,KAAAs5B,GAAAlrB,EAAApO,EAAA26B,UAAA,GAAAh7B,EAAA,YAAAK,GAAAA,EAAA46B,SAAAj7B,EAAA,IAAA2O,GAAA,WAAA,GAAAtO,GAAAoO,GAAAysB,KAAAz7B,EAAAY,GAAA,EAAAuH,EAAAuzB,GAAAxsB,EAAAtO,IAAAqO,GAAA0sB,GAAA1sB,GAAArO,EAAAQ,EAAA6N,EAAA9G,EAAA/G,EAAA8B,EAAAtC,IAAAJ,EAAAi7B,KAAAhvB,EAAAD,EAAA6E,MAAAxJ,EAAAkH,GAAA5G,GAAA8G,IAAAF,EAAAlH,EAAA,SAAAwH,EAAA,WAAAlH,GAAAwzB,GAAAxzB,GAAA8G,EAAA9G,EAAA/G,EAAA8B,GAAA3C,GAAAH,IAAA4O,KAAAxO,EAAAi7B,KAAAhvB,EAAAD,EAAA6E,MAAAxJ,EAAAkH,GAAA5G,GAAA8G,IAAAF,EAAAlH,EAAA,OAAA,OAAA,YAAA,GAAAkH,EAAAuC,UAAAtR,EAAAy7B,KAAA5zB,EAAA2D,KAAApK,EAAAb,IAAA4H,IAAAlF,IAAA,IAAA7C,EAAA,GAAAQ,GAAAqC,IAAAkF,MAAA,CAAA8G,GAAAhM,IAAAzC,EAAAR,EACA,IAAAkD,GAAA9C,GAAAJ,EAAAQ,GAAA+L,EAAA,GAAArJ,CAAAqJ,IAAA0C,IAAAA,EAAA0sB,GAAA1sB,IAAAzO,EAAAR,EAAAyM,EAAAD,EAAA6E,MAAAxJ,EAAAkH,IAAAE,IAAAA,EAAAysB,GAAArsB,EAAAnM,IAAA,MAAAqJ,IAAApE,EAAAA,EAAAwzB,GAAAxzB,GAAAA,GAAA6G,IAAA5O,IAAA+H,EAAAuzB,GAAAxsB,EAAAF,IAAApO,IAAA2L,GAAA,EAAAE,EAAAD,EAAA6E,MAAAxJ,EAAAkH,KAAAxC,GAAApE,GAAA8G,IAAAF,EAAAlH,EAAA,MAAA4E,GAAA,QAAAoqB,IAAArqB,GAAA,MAAAA,GAAA,QAAAovB,IAAApvB,EAAAwC,EAAApO,GAAA,GAAAmO,IAAA,EAAAE,EAAAD,GAAA4qB,GAAA5qB,EAAAA,KAAApO,GAAAqO,EAAAzM,UAAA,MAAA5B,IAAAA,EAAAoO;AAAAvC,AIhBA,EJgBA4C,EAAAL,EAAAxC,EAAAA,EAAA0C,EAAAD,EAAA2qB,GAAA5qB,KAAA,IAAApO,EAAAmO,GAAA,EAAAonB,GAAAv1B,IAAA,SAAAA,KAAAmO,EAAAnO,EAAAi7B,MAAA,IAAApvB,GAAAD,EAAAxM,EAAA23B,GAAAlrB,EAAAqrB,IAAA7oB,EAAA,SAAArO,GAAA,GAAAqO,GAAAzC,EAAA5L,GAAAoO,EAAApO,EAAAZ,KAAAyM,EAAAkB,UAAA/M,GAAA,WAAA,GAAAoO,GAAAxD,KAAAuqB,UAAAn1B,EAAA4K,KAAAwqB,YAAAh2B,GAAAY,EAAA,IAAAq1B,GAAA5kB,MAAArR,EAAAsR,WAAAtR,EAAAiP,EAAAoC,MAAA7E,EAAAxM,GAAA+O,GAAAC,EAAA,CAAA,GAAApO,IAAAZ,GAAAm2B,GAAAn2B,GAAA,MAAAwL,KACAxL,GAAA,GAAAyM,GAAAzM,GAAAA,EAAA+1B,UAAA/mB,EAAA,MAAAhP,OAAA,QAAA87B,OAAA,QAAAC,IAAAvvB,GAAA,MAAA,UAAAwC,GAAA,MAAAA,GAAAxC,IAAA,QAAAwvB,MAAA,MAAAxwB,MAAAwqB,YAAAp1B,EAAAA,EAAAq7B,GAAAC,SAAA9f,EAAA3N,SAAA7N,EAAAq7B,GAAAE,KAAA/f,EAAAjD,IAAAiD,CAAA,IAAA4d,IAAAp5B,EAAA2N,MAAA6tB,GAAAx7B,EAAAy7B,QAAAC,GAAA17B,EAAA8S,KAAA8kB,GAAA53B,EAAAgS,SAAA2pB,GAAA37B,EAAAmF,KAAAy2B,GAAA57B,EAAA67B,OAAA/E,GAAA92B,EAAA6N,OAAAiuB,GAAA97B,EAAAsc,OAAAsa,GAAA52B,EAAAgO,OAAAypB,GAAAz3B,EAAA+7B,UAAAC,MAAAxP,GAAAxsB,EAAAwR,MAAAzE,UAAAorB,GAAArB,GAAA/pB,UAAAsrB,GAAAzB,GAAA7pB,UAAAkvB,GAAAj8B,EAAAyb,EAAAga,GAAA0C,GAAArqB,SAAA2qB,GAAAqD,GAAA,IAAAlF,GAAAnB,IAAAx1B,QAAA,sBAAA,QAAAA,QAAA,wBAAA,OAAA,KAAAi8B,GAAAP,GAAAQ,KAAApB,GAAA/6B,EAAA+X,aAAAqf,GAAAuE,GAAAS,MAAA/6B,GAAAu2B,GAAA7qB,UAAAe,SAAAuuB,GAAA7D,GAAA6D,GAAAvF,GAAAwF,iBAAAD,GAAAnH,GAAAiD,GAAApqB,eAAAsnB,GAAA2G,GAAAvxB,KAAA8xB,GAAApE,GAAAqE,qBAAA1B,GAAA96B,EAAA+I,WAAA0zB,GAAAT,GAAAzzB,OAAAmvB,GAAAsE,GAAAv0B,QAAAi1B,GAAA;AAAA,AIhBA,IJgBA,GAAA9wB,MAAAwC,EAAAoqB,GAAApqB,EAAA0oB,GAAA6F,iBAAAvuB,EAAApO,EAAAoO,EAAAxC,EAAAA,EAAAA,IAAAwC,EACA,MAAAD,IAAA,MAAAnO,MAAA+1B,GAAAyC,GAAAzC,GAAAe,GAAA8F,SAAA7G,GAAA8G,GAAArE,GAAAqE,GAAAzD,GAAAtyB,UAAA+1B,GAAAC,GAAA98B,EAAAuR,SAAAwrB,GAAA/8B,EAAAsR,MAAA0rB,GAAAxE,GAAAwE,GAAAlG,GAAAmG,OAAAD,GAAA1D,GAAAqC,GAAAv2B,IAAA80B,GAAAyB,GAAAuB,IAAAC,GAAAn9B,EAAA6a,SAAAwc,GAAAsE,GAAA3kB,OAAA4e,KAAAA,IAAAloB,GAAA0rB,GAAAxD,GAAA3d,GAAAujB,GAAA5F,GAAAlnB,GAAAgtB,GAAA9F,GAAAl1B,GAAAk3B,GAAAhC,GAAAt2B,GAAAw3B,GAAAlB,GAAAva,GAAAugB,GAAAhG,GAAA/1B,GAAAi8B,GAAAlG,GAAA1d,GAAA0e,EAAA,IAAAwB,MAAAA,IAAA1qB,GAAA0qB,GAAA1pB,GAAA0pB,GAAA/c,IAAAhM,aAAA,EAAA+tB,gBAAA,EAAAtvB,UAAA,EAAAuvB,SAAA,GAAAjF,GAAAngB,GAAAmgB,GAAAlgB,IAAA7I,aAAA,EAAAvB,UAAA,EAAAuvB,SAAA,GAAAjF,GAAAtsB,GAAAssB,GAAA13B,GAAA03B,GAAAv4B,IAAAwP,aAAA,EAAAvB,UAAA,GAAAsqB,GAAA94B,IAAA+P,aAAA,GAAA,WAAA,IAAA,GAAAzD,GAAArM,EAAAqC,OAAAgK,KAAA,CAAA,GAAAwC,GAAApO,EAAAT,EAAAqM,EACA,KAAAwC,IAAAgqB,IAAAlD,GAAA9zB,KAAAg3B,GAAAhqB,KAAA8mB,GAAA9zB,KAAAg3B,GAAAhqB,GAAApO,KAAAo4B,GAAAhqB,GAAApO,IAAA,OAAAyO,EAAA1B,UAAAuB,EAAAvB,SAAA,IAAA2oB,IAAApnB,EAAArL,YAAA;AAAA,AIjBA,GJiBA2I,GAAA,WAAAhB,KAAA4D,EAAA,GAAAJ,GAAAkvB,EAAA,EAAA17B,OAAA,GAAAuM,IAAAvC,GAAAmB,WAAAswB,QAAA,EAAA5uB,EAAA,EAAA,KAAA,GAAAJ,KAAA,IAAAzC,GAAAuC,EAAA1D,KAAA4D,EAAA,KAAAA,IAAAqC,YAAAglB,GAAAiD,UAAAlD,GAAAr0B,KAAAsP,YAAA+H,EAAAid,GAAAmB,WAAAnmB,UAAArB,aAAAynB,MAAApmB,oBAAA0oB,KAAA1D,GAAAsC,eAAAuE,GAAAn7B,KAAAorB,GAAA,YAAA+P,GAAAn7B,KAAAorB,GAAA,QAAAkJ,GAAAqC,eAAAwE,GAAAn7B,KAAAwK,EAAA,aAAA8pB,GAAAU,YAAAoC,GAAAx4B,EAAAu9B,aAAA3uB,EAAAtO,KAAA+B,GAAAqzB,GAAAS,UAAA,gBAAAyB,IAAAngB,KAAAie,GAAAoC,YAAA,GAAAzpB,EAAAqnB,GAAAuC,gBAAA,UAAA33B,KAAA6N,GAAAunB,GAAAkD,QAAA,KAAAzqB,EAAA,GAAAunB,GAAA8H,eAAAxB,GAAAzzB,OAAAnH,KAAAgN,EAAA,EAAA,IAAAA,EAAA,IAAAsnB,GAAAmC,eAAA,MAAA,IAAA,GAAAf,GAAA,KAAA,EACA,KAAApB,GAAAC,YAAAF,GAAAr0B,KAAAqF,WAAAnH,MAAAwO,SAAA,GAAA,KAAA,MAAAjC,GAAA6pB,GAAAC,WAAA,IAAA;AAAArnB,AIjBA,EJiBAmvB,kBAAAC,OAAA,mBAAAC,SAAA,kBAAAC,YAAA19B,EAAA29B,SAAA,GAAAC,SAAAriB,EAAAnN,IAAAynB,KAAAT,GAAA,WAAA,QAAA1pB,MAAA,MAAA,UAAAwC,GAAA,GAAAmnB,GAAAnnB,GAAA,CAAAxC,EAAAmB,UAAAqB,CAAA,IAAAD,GAAA,GAAAvC,EAAAA,GAAAmB,UAAA,KAAA,MAAAoB,IAAAnO,EAAA6N,aAAA,IAAA2nB,IAAAkH,GAAA,SAAA9wB,EAAAwC,GAAAsK,EAAAjV,MAAA2K,EAAAsuB,GAAA9wB,EAAA,eAAA8M,IAAAwiB,EAAAxF,IAAAiD,YAAAjC,GAAA,SAAA9qB,GAAA,MAAAA,IAAA,gBAAAA,IAAA,gBAAAA,GAAAhK,QAAAszB,GAAA9zB,KAAAwK,EAAA,YAAA2wB,GAAAn7B,KAAAwK,EAAA,YAAA,GACA,IAAAqpB,IAAA4H,IAAA,SAAAjxB,GAAA,MAAAA,IAAA,gBAAAA,IAAA,gBAAAA,GAAAhK,QAAA6zB,GAAAr0B,KAAAwK,IAAA8B,IAAA,GAAAqwB,GAAApG,IAAAv4B,EAAA,IAAAY,EAAA,KAAAiH,EAAA,6BAAA5E,EAAA,cAAA02B,GAAAiE,GAAA,SAAApxB,GAAA,MAAA2pB,IAAA3pB,GAAA8pB,GAAAqC,gBAAA,kBAAAnsB,IAAA8pB,GAAAoC,aAAAlsB,EAAAhK,QAAA80B,GAAA9qB,GAAAmyB,GAAAnyB,GAAAoxB,GAAApxB;AIjBA,EJiBAmyB,GAAAC,IAAA5+B,EAAA,QAAA6H,EAAA,wCAAA5H,EAAA,qBAAAiP,EAAAyqB,GAAA12B,EAAA,mCAAA47B,IAAA7+B,EAAA,QAAA6H,EAAA,8FAAAqH,EAAAyqB,GAAA12B,EAAA,wCAAAzC,EAAA,MAAAs+B,IAAAj3B,EAAA,4BAAA+2B,GAAA/2B,EAAA5H,GAAA,GAAAi5B,IAAA6F,IAAA,QAAAC,IAAA,OAAA/a,IAAA,OAAAgb,IAAA,SAAAC,IAAA,SAAAxF,GAAAG,GAAAX,IAAAiG,GAAAzC,GAAA,IAAA/C,GAAAD,IAAAnoB,KAAA,KAAA,IAAA,KAAA6tB,GAAA1C,GAAA,IAAA/C,GAAAT,IAAA3nB,KAAA,IAAA,IAAA,KAAAmlB,GAAA6B,GAAAqG,IAAAnI,GAAA8B,GAAAsG,IAAAh3B,EAAAg3B,GAAAh3B,EAAAhH,QAAA,IAAA,oHAAAoC,EAAA,6BAAAo8B,GAAA9G,GAAAsG,IAAAjH,GAAAW,GAAAqG,GAAAE;AAAA72B,AIhBA,GJgBA,IAAAwgB,GAAA8P,GAAAqG,GAAAE,GACAnH,IAAA,OAAAA,GAAA,SAAAnrB,GAAA,MAAA,kBAAAA,IAAA6pB,GAAAr0B,KAAAwK,IAAAlL,GAAA,IAAAy2B,IAAAkF,GAAA,SAAAzwB,GAAA,IAAAA,GAAA6pB,GAAAr0B,KAAAwK,IAAAtM,IAAAo2B,GAAAiD,WAAAjC,GAAA9qB,GAAA,OAAA,CAAA,IAAAwC,GAAAxC,EAAAyxB,QAAAr9B,EAAAw4B,GAAApqB,KAAApO,EAAAq8B,GAAAjuB,KAAAiuB,GAAAr8B,EAAA,OAAAA,GAAA4L,GAAA5L,GAAAq8B,GAAAzwB,IAAA5L,EAAA04B,GAAA9sB,IAAA8sB,GAAAgG,GAAA9Q,GAAA,SAAAhiB,EAAAwC,EAAApO,GAAAk1B,GAAA9zB,KAAAwK,EAAA5L,GAAA4L,EAAA5L,KAAA4L,EAAA5L,GAAA,IAAA2+B,GAAA/Q,GAAA,SAAAhiB,EAAAwC,EAAApO,IAAAk1B,GAAA9zB,KAAAwK,EAAA5L,GAAA4L,EAAA5L,GAAA4L,EAAA5L,OAAAyK,KAAA2D,KAAAwwB,GAAAhR,GAAA,SAAAhiB,EAAAwC,EAAApO,GAAA4L,EAAA5L,GAAAoO,IAAAmsB,GAAAZ,GAAAkB,GAAArC,GAAAqC,GAAAa,GAAAzyB,MAAA4xB,IAAA,WAAA,OAAA,GAAAa,KAAA3oB,WAAA8rB,GAAA,GAAA1B,GAAA91B,EAAA,MAAA81B,GAAA,SAAAvxB,EAAAwC,GAAA,MAAA+uB,IAAAjF,GAAAtsB,GAAAA,EAAA3L,QAAA6O,EAAA,IAAAlD,EAAAwC,GAAA,GACA,OAAAE,GAAA6a,MAAA,SAAAvd,EAAAwC,GAAA,IAAA2oB,GAAA3oB,GAAA,KAAA,IAAAqpB,GAAA,OAAA,YAAA,MAAA,KAAA7rB,EAAAwC,EAAAqC,MAAA7F,KAAA8F,WAAA,SAAApC,EAAAwwB,OAAAjJ,GAAAvnB,EAAAqoB,GAAA,SAAA/qB,GAAA,GAAAwC,GAAAsC,UAAA1Q,EAAA,GAAAmO,EAAAsoB,GAAAroB,GAAA,GAAA,EAAA,GAAAA,EAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,MAAAxC,EAAA,EAAAuC,EAAAvM,OAAAyM,EAAA+qB,GAAAhrB;AAAA,AIjBA,IJiBAsnB,GAAAmC,gBAAAK,GAAAtsB,KAAAA,EAAAA,EAAAlM,MAAA,OAAAM,EAAAoO,GAAAC,EAAArO,GAAA4L,EAAAuC,EAAAnO,GAAA,OAAAqO,IAAAC,EAAAsS,KAAAyV,GAAA/nB,EAAAywB,QAAA,SAAAnzB,GAAA,IAAA,GAAAwC,GAAA,EAAAsC,UAAA9O,OAAA60B,GAAA/lB,WAAA,GAAA,EAAA,GAAAsoB,GAAAptB,GAAA5L,EAAA,GAAAmO,EAAAC,EAAAxM,SAAA5B,EAAAmO,GAAA,CAAA,GAAAE,GAAAD,EAAApO,EAAA4L,GAAAyC,GAAAmpB,GAAA5rB,EAAAyC,GAAA,EAAA,KAAA,KAAAzC,GAAA,MAAAA,IAAA0C,EAAA0wB,QAAA,SAAApzB,EAAAwC,GAAA,MAAA,GAAAsC,UAAA9O,OAAA41B,GAAAppB,EAAA,GAAAzO,EAAA+Q,UAAA,GAAA,KAAA9E,GAAA4rB,GAAAppB,EAAA,EAAA,KAAA,KAAAxC,IACA0C,EAAA2sB,MAAA,SAAArvB,GAAA,MAAAA,GAAA,GAAA6C,GAAA7C,GAAAA,EAAAupB,WAAA,EAAAvpB,GAAA0C,EAAA2wB,QAAA,SAAArzB,GAAA,IAAA,GAAAwC,GAAA,GAAApO,EAAA4L,EAAAA,EAAAhK,OAAA,EAAAuM,OAAAC,EAAApO,GAAA,CAAA,GAAAqO,GAAAzC,EAAAwC,EAAAC,IAAAF,EAAA1D,KAAA4D,GAAA,MAAAF,IAAAG,EAAA4wB,QAAA,WAAA,IAAA,GAAAtzB,GAAA8E,UAAAtC,EAAAxC,EAAAhK,OAAAwM,KAAA,IAAA2oB,GAAAnrB,EAAAwC,IAAA,KAAA,IAAAqpB,GAAA,OAAA,YAAA,IAAA,GAAArpB,GAAAsC,UAAA1Q,EAAA4L,EAAAhK,OAAA5B,KAAAoO,GAAAxC,EAAA5L,GAAAyQ,MAAA7F,KAAAwD,GAAA,OAAAA,GAAA;AAAAE,AIjBA,EJiBA6wB,SAAA,SAAAvzB,GAAA,MAAA,YAAA,MAAAA,KAAA0C,EAAA8wB,QAAAV,GAAApwB,EAAAsuB,OAAA,SAAAhxB,EAAAwC,GAAA,GAAApO,GAAAs1B,GAAA1pB,EAAA,OAAAwC,GAAAynB,GAAA71B,EAAAoO,GAAApO,GAAAsO,EAAAipB,eAAA,SAAA3rB,EAAAwC,EAAApO,GAAA,GAAAmO,SAAAvC,EAAA,IAAA,MAAAA,GAAA,YAAAuC,EAAA,MAAA6nB,IAAApqB,EAAAwC,EAAApO,EACA,IAAA,UAAAmO,EAAA,MAAAgtB,IAAAvvB,EAAA,IAAAyC,GAAA0qB,GAAAntB,GAAAC,EAAAwC,EAAA,GAAAjP,EAAAwM,EAAAC,EAAA,OAAA,IAAAwC,EAAAzM,QAAAxC,IAAAA,GAAAm2B,GAAAn2B,GAAA,SAAAgP,GAAA,IAAA,GAAApO,GAAAqO,EAAAzM,OAAAuM,GAAA,EAAAnO,MAAAmO,EAAAwoB,GAAAvoB,EAAAC,EAAArO,IAAA4L,EAAAyC,EAAArO,IAAA,MAAA,MAAA,MAAAmO,IAAA,SAAAvC,GAAA,MAAAA,GAAAA,EAAAC,GAAAzM,IAAAwM,IAAA,IAAAxM,GAAA,EAAAA,GAAA,EAAAwM,KAAA0C,EAAA+wB,MAAA,SAAAzzB,EAAAwC,GAAA,MAAAA,GAAA,gBAAAA,GAAAA,GAAAA,GAAAxC,EAAAhK,OAAA41B,GAAA5rB,EAAA,EAAA,KAAA,KAAA,KAAAwC,IAAAE,EAAAgxB,SAAA7E,GAAAnsB,EAAAgtB,SAAAmD,GAAAnwB,EAAAixB,MAAA,SAAA3zB,GAAA,IAAAmrB,GAAAnrB,GAAA,KAAA,IAAA6rB,GAAA,IAAArpB,GAAAzO,EAAA+Q,UAAA,EAAA,OAAAoqB,IAAA,WAAAlvB,EAAA6E,MAAAnO,EAAA8L,IAAA,IAAAE,EAAAuJ,MAAA,SAAAjM,EAAAwC;AAAA,AIjBA,IJiBA2oB,GAAAnrB,GAAA,KAAA,IAAA6rB,GAAA,IAAAz3B,GAAAL,EAAA+Q,UAAA,EACA,OAAAoqB,IAAA,WAAAlvB,EAAA6E,MAAAnO,EAAAtC,IAAAoO,IAAAE,EAAAkxB,WAAA,SAAA5zB,GAAA,MAAA2qB,IAAA3qB,EAAA6qB,GAAA/lB,WAAA,GAAA,EAAA,KAAApC,EAAAhN,OAAAk4B,GAAAlrB,EAAAmxB,QAAA,SAAA7zB,EAAAwC,EAAApO,EAAAmO,GAAA,MAAA,iBAAAC,IAAA,MAAAA,IAAAD,EAAAnO,EAAAA,EAAA,kBAAAoO,IAAAD,GAAAA,EAAAC,KAAAxC,EAAA,KAAAwC,EAAAA,GAAA,GAAA,MAAApO,IAAA4L,EAAA+tB,GAAA/tB,EAAA5L,EAAAmO,IAAAsoB,GAAA7qB,EAAAwC,IAAAE,EAAAoxB,QAAAxI,GAAA5oB,EAAAqxB,aAAAjG,GAAAprB,EAAAsxB,MAAA5I,GAAA1oB,EAAAuxB,WAAA,SAAAj0B,EAAAwC,EAAApO,GAAA,GAAAmO,KAAA6oB,IAAAprB,EAAA,SAAAA,EAAAwC,GAAAD,EAAA1D,KAAA2D,EAAAxC,IAAA,IAAAyC,GAAAF,EAAAvM,MAAA,KAAAwM,EAAA4nB,GAAA5nB,EAAApO,EAAA,GAAAqO,MAAA,IAAAD,EAAAD,EAAAE,KAAAF,EAAAE,GAAAzC,KAAA,MAAAA,IAAA0C,EAAAwxB,OAAAjY,GAAAvZ,EAAAyxB,YAAA1Y,GAAA/Y,EAAA0xB,UAAAhH,GAAA1qB,EAAA2xB,QAAAtB,GAAArwB,EAAA4xB,QAAAtB,GAAAtwB,EAAA6xB,QAAA,SAAAv0B,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA,EAAAE,EAAAzC,EAAAA,EAAAhK,OAAA,CACA,IAAA,gBAAAwM,IAAA,MAAAA,EAAA,CAAA,GAAAvC,GAAAwC,CAAA,KAAAD,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAA6L,KAAAuC,EAAAxC,EAAAC,GAAAA,EAAAD,IAAAuC;AIlBA,KJkBAA,GAAA,MAAAC,GAAApO,EAAA,EAAAoO,GAAAD,CAAA,OAAAxO,GAAAiM,EAAA,EAAAsuB,GAAAZ,GAAA,EAAAjrB,EAAAF,GAAAE,KAAAC,EAAA8xB,aAAA,WAAA,IAAA,GAAApgC,MAAAmO,EAAA,GAAAE,EAAAqC,UAAA9O,OAAAxC,EAAA6H,IAAAM,EAAAivB,KAAAh2B,EAAA+G,IAAAqE,EAAAjM,EAAAsH,MAAAkH,EAAAE,GAAA,CAAA,GAAAhM,GAAAqO,UAAAvC,IAAA8mB,GAAA5yB,IAAAq0B,GAAAr0B,MAAArC,EAAAyK,KAAApI,GAAAjD,EAAAqL,KAAAjK,GAAA6B,EAAAT,QAAA6Z,GAAA5P,EAAAsC,EAAAnO,EAAAmO,GAAAxO,KAAA,GAAAa,GAAAR,EAAA,GAAAsC,EAAA,GAAAgM,EAAA9N,EAAAA,EAAAoB,OAAA,EAAA6M,IAAA7C,GAAA,OAAAtJ,EAAAgM,GAAA,CAAA,GAAA3C,GAAAvM,EAAA,GAAAiD,EAAA7B,EAAA8B,EAAA,IAAA,GAAAqJ,EAAAyC,EAAAzC,EAAAtJ,GAAAkF,EAAA5H,EAAA0C,IAAA,CAAA,IAAA8L,EAAAE,GAAA1C,GAAAhM,GAAA8K,KAAApI,KAAA8L,GAAA,GAAAxC,EAAAvM,EAAA+O,GAAA,GAAAxC,EAAAyC,EAAAzC,EAAAtJ,GAAAkF,EAAAvH,EAAAmO,GAAA9L,IAAA,QAAAuJ,EAAA6C,GAAAhE,KAAApI,IACA,KAAAgM,MAAA1C,EAAAvM,EAAAiP,KAAA7O,EAAAmM,EAAA,OAAA/L,GAAAR,GAAAQ,EAAAD,GAAA8O,GAAAH,EAAA+xB,OAAApH,GAAA3qB,EAAAgyB,OAAA,SAAA10B,EAAAwC,GAAA,GAAApO,GAAAL,EAAA+Q,UAAA,GAAAvC,EAAA,GAAAE,EAAA,kBAAAD,GAAAvC,EAAAD,EAAAA,EAAAhK,OAAA,EAAAxC,EAAAg6B,GAAA,gBAAAvtB,GAAAA,EAAA,EAAA,OAAAqrB,IAAAtrB,EAAA,SAAAA,GAAAxM,IAAA+O,IAAAE,EAAAD,EAAAxC,EAAAwC,IAAAqC,MAAA7E,EAAA5L,KAAAZ,GAAAkP,EAAA2uB,KAAAlE,GAAAzqB,EAAAsC,IAAA+oB,GAAArrB,EAAAiyB,UAAA,SAAA30B,EAAAwC,EAAApO;AAAA,AIlBA,GJkBAmO,KAAA,OAAAC,GAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAA6nB,GAAAjc,EAAA,SAAAA,EAAA5L,EAAAqO,GAAAF,EAAAnO,GAAAoO,EAAAxC,EAAA5L,EAAAqO,KAAAF,GAAAG,EAAAlJ,IAAAw0B,GAAAtrB,EAAAkyB,QAAA,SAAA50B,EAAAwC,GAAA,IAAA2oB,GAAAnrB,GAAA,KAAA,IAAA6rB,GAAA,IAAAz3B,GAAA,WAAA,GAAAmO,GAAAnO,EAAA6W,MAAAxI,EAAAD,EAAAA,EAAAqC,MAAA7F,KAAA8F,WAAArR,EAAAqR,UAAA,EAAA,OAAAwkB,IAAA9zB,KAAA+M,EAAAE,GAAAF,EAAAE,GAAAF,EAAAE,GAAAzC,EAAA6E,MAAA7F,KAAA8F,WACA,OAAA1Q,GAAA6W,SAAA7W,GAAAsO,EAAAoB,MAAA,SAAA9D,GAAA,GAAAwC,GAAAsC,UAAA1Q,EAAA,CAAA,KAAAu1B,GAAA3pB,GAAA,MAAAA,EAAA,IAAA,gBAAAwC,GAAA,KAAApO,EAAAoO,EAAAxM,QAAA5B,EAAA,GAAA,kBAAAoO,GAAApO,EAAA,GAAA,GAAAmO,GAAA6nB,GAAA5nB,IAAApO,EAAA,GAAAoO,EAAApO,KAAA,OAAAA,GAAA,GAAA,kBAAAoO,GAAApO,EAAA,KAAAmO,EAAAC,IAAApO,GAAA,KAAA,GAAAoO,GAAAzO,EAAA+Q,UAAA,EAAA1Q,GAAAqO,EAAA,GAAAxC,EAAA5E,IAAA7H,EAAA6H,MAAAoH,EAAArO,GAAAi3B,GAAArrB,EAAAwC,EAAAC,GAAAF,EAAAtC,EAAAzM,EAAA,OAAAQ,GAAAiM,GAAAjM,EAAAR,GAAAwM,GAAA0C,EAAA4uB,IAAA,SAAAtxB,EAAAwC,EAAApO,GAAA,GAAAqO,GAAA,EAAA,EAAAxC,EAAAwC,CAAA,IAAA,kBAAAD,IAAApO,GAAAA,EAAAoO,KAAAxC,IAAAwC,EAAA,MAAA,MAAAA,GAAA6mB,GAAArpB,GAAA;AAAA5L,AIlBA,EJkBA,EAAA,KAAA,GAAAZ,GAAAwM,EAAAhK,SAAA5B,EAAAZ,GAAA,CAAA,GAAA6H,GAAA2E,EAAA5L,EAAA6L,GAAA5E,IAAA4E,EAAA5E,QAAAmH,GAAA,MAAAA,GAAA8pB,GAAAtsB,GAAAuC,EAAAG,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAA81B,GAAAlqB,EAAA,SAAAA,EAAA5L,EAAAmO,GAAAnO,EAAAoO,EAAAxC,EAAA5L,EAAAmO,GAAAE,EAAArO,IAAAqO,EAAArO,EAAA6L,EAAAD,IACA,OAAAC,IAAAyC,EAAAmyB,KAAA,SAAA70B,EAAAwC,EAAApO,GAAA,GAAAmO,KAAA,IAAA,kBAAAC,GAAA,CAAA,GAAAC,KAAA2oB,IAAAprB,EAAA,SAAAA,EAAAwC,GAAAC,EAAA5D,KAAA2D,IAAA,KAAA,GAAAC,GAAAkoB,GAAAloB,EAAAooB,GAAA/lB,WAAA,GAAA,EAAA,IAAA7E,EAAA,GAAAzM,EAAAiP,EAAAzM,SAAAiK,EAAAzM,GAAA,CAAA,GAAA6H,GAAAoH,EAAAxC,EAAAsC,GAAAlH,GAAA2E,EAAA3E,QAAAmH,GAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAAg3B,GAAAprB,EAAA,SAAAA,EAAA5L,EAAAqO,GAAAD,EAAAxC,EAAA5L,EAAAqO,KAAAF,EAAAnO,GAAA4L,IAAA,OAAAuC,IAAAG,EAAA8E,KAAA,SAAAxH,GAAA,GAAAwC,GAAApO,CAAA,KAAA+2B,GAAAnrB,GAAA,KAAA,IAAA6rB,GAAA,OAAA,YAAA,MAAArpB,GAAApO,GAAAoO,GAAA,EAAApO,EAAA4L,EAAA6E,MAAA7F,KAAA8F,WAAA9E,EAAA,KAAA5L,KAAAsO,EAAAoyB,MAAA,SAAA90B,GAAA,IAAA,GAAAwC,GAAA,GAAApO,EAAA+4B,GAAAntB,GAAAuC,EAAAnO,EAAA4B,OAAAyM,EAAA+qB,GAAAjrB,KAAAC,EAAAD,GAAA,CAAA,GAAAtC,GAAA7L,EAAAoO,EAAAC,GAAAD,IAAAvC,EAAAD,EAAAC,IAAA,MAAAwC,IACAC,EAAAqyB,QAAA,SAAA/0B;AAAA,AInBA,MJmBA4rB,IAAA5rB,EAAA,GAAAjM,EAAA+Q,UAAA,KAAApC,EAAAsyB,aAAA,SAAAh1B,GAAA,MAAA4rB,IAAA5rB,EAAA,GAAA,KAAAjM,EAAA+Q,UAAA,KAAApC,EAAAitB,KAAA,SAAA3vB,EAAAwC,EAAApO,GAAA,GAAAmO,KAAA,IAAA,kBAAAC,GAAA,IAAA,GAAAC,GAAA,GAAAxC,EAAA4qB,GAAA/lB,WAAA,GAAA,EAAA,GAAAtR,EAAAm2B,GAAA3pB,GAAAC,EAAAjK,OAAA,IAAAyM,EAAAjP,GAAA,CAAA,GAAA6H,GAAA4E,EAAAwC,EAAApH,KAAA2E,KAAAuC,EAAAlH,GAAA2E,EAAA3E,QAAAmH,GAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAAg3B,GAAAprB,EAAA,SAAAA,EAAA5L,EAAAqO,GAAAD,EAAAxC,EAAA5L,EAAAqO,KAAAF,EAAAnO,GAAA4L,IAAA,OAAAuC,IAAAG,EAAAuyB,MAAAtG,GAAAjsB,EAAAwyB,SAAA3F,GAAA7sB,EAAAyyB,KAAA,SAAAn1B,GAAA,IAAA,GAAAwC,GAAAsC,UAAA1Q,EAAA,EAAAmO,EAAAC,EAAAxM,OAAAyM,EAAAzC,EAAAA,EAAAhK,OAAA,IAAA5B,EAAAmO,GAAA,IAAA,GAAAtC,GAAA,GAAAzM,EAAAgP,EAAApO,KAAA6L,EAAAwC,GAAAzC,EAAAC,KAAAzM,IAAAq9B,GAAAr7B,KAAAwK,EAAAC,IAAA,GAAAwC,IACA,OAAAzC,IAAA0C,EAAA0yB,MAAA,SAAAp1B,EAAAwC,EAAApO,GAAA4L,GAAAA,GAAA,EAAA5L,EAAA,gBAAAA,GAAAA,GAAAA,GAAA,EAAA,MAAAoO,IAAAA,EAAAxC,EAAAA,EAAA,EAAA,IAAAuC,GAAA,EAAAC,GAAAkrB,GAAA,EAAA4C,IAAA9tB,EAAAxC,IAAA5L,GAAA,IAAA,KAAA,GAAAqO,GAAA+qB,GAAAhrB,KAAAD,EAAAC,GAAAC,EAAAF,GAAAvC,EAAAA,GAAA5L,CAAA,OAAAqO,IAAAC,EAAA2F,OAAA,SAAArI,EAAAwC,EAAApO;AAAA,AInBA,MJmBAoO,GAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAAw5B,GAAA5tB,EAAA,SAAAA,EAAA5L,EAAAmO,GAAA,OAAAC,EAAAxC,EAAA5L,EAAAmO,MAAAG,EAAArI,OAAA,SAAA2F,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA,GAAAE,EAAAzC,EAAAA,EAAAhK,OAAA,EAAAiK,IAAA,KAAAuC,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,KAAAmO,EAAAE,GAAArO,EAAA4L,EAAAuC,GAAAC,EAAApO,EAAAmO,EAAAvC,KAAAC,EAAApB,KAAAzK,GAAAy8B,GAAAr7B,KAAAwK,EAAAuC,IAAA,GAAAE,IAAA,OAAAxC,IAAAyC,EAAA2yB,KAAA7G,GAAA9rB,EAAA4yB,QAAAnH,GAAAzrB,EAAA6yB,OAAA,SAAAv1B,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA,GAAAtC,EAAAopB,GAAA7mB,GAAAhP,EAAAwM,EAAAA,EAAAhK,OAAA,EAAApB,EAAA44B,GAAA,gBAAAh6B,GAAAA,EAAA,EACA,KAAAyM,IAAAuC,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,IAAAk3B,GAAAtrB,EAAA,SAAAA,EAAA5L,EAAAqO,GAAA,GAAAjP,GAAAoB,IAAA2N,GAAA5G,GAAAsE,GAAAzM,EAAAuM,EAAAguB,GAAAvrB,EAAA,SAAAA,GAAA,MAAAxC,GAAAwC,MAAAhP,EAAAuM,EAAA1E,KAAA,GAAAmH,EAAAxC,EAAA5L,EAAAqO,GAAAjP,EAAAwM,EAAAuC,EAAA/O,EAAAyM,EAAAD,IAAAxM,EAAAoB,EAAAoB,OAAApB,EAAAqQ,KAAAxC,GAAAjP,KAAAwM,EAAApL,EAAApB,GAAAoB,EAAApB,GAAAwM,EAAAC,EAAAA,GAAAjM,EAAAgM,EAAAD,GAAAnM,EAAAoM,EAAA,OAAApL,IAAA8N,EAAA8yB,IAAA,SAAAx1B,EAAAwC,GAAA,MAAAA,GAAAxC,GAAAA,GAAA0C,EAAA+yB,SAAA,SAAAz1B,EAAAwC,EAAApO,GAAA,GAAAmO,IAAA,EAAAE,GAAA,CAAA,KAAA0oB,GAAAnrB,GAAA,KAAA,IAAA6rB,GAAA,QAAA,IAAAz3B,EAAAmO,GAAA,EAAAonB,GAAAv1B,KAAAmO,EAAA,WAAAnO,GAAAA,EAAA06B,QAAAvsB;AAAAE,AInBA,EJmBA,YAAArO,GAAAA,EAAA46B,SAAAvsB,GAAAhO,EAAAq6B,QAAAvsB,EAAA9N,EAAAs6B,QAAAvsB,EAAA/N,EAAAu6B,SAAAvsB,EAAAosB,GAAA7uB,EAAAwC,EAAA/N,IAAAiO,EAAAgzB,MAAA,SAAA11B,EAAAwC,EAAApO,GAAA4L,EAAA,IAAAA,GAAAA,GAAAA,EAAA,CAAA,IAAAuC,GAAA,GAAAE,EAAA+qB,GAAAxtB,EACA,KAAAwC,EAAA4nB,GAAA5nB,EAAApO,EAAA,KAAAmO,EAAAvC,GAAAyC,EAAAF,GAAAC,EAAAD,EAAA,OAAAE,IAAAC,EAAA4B,QAAA,SAAAtE,GAAA,MAAAA,IAAA,gBAAAA,GAAAhK,OAAA8zB,GAAAmC,gBAAAK,GAAAtsB,GAAAA,EAAAlM,MAAA,IAAAC,EAAAiM,GAAAutB,GAAAvtB,IAAA0C,EAAAizB,UAAA,SAAA31B,EAAAwC,EAAApO,EAAAmO,GAAA,GAAAE,GAAA4mB,GAAArpB,EAAA,IAAA,MAAA5L,EAAA,GAAAqO,EAAArO,SAAA,CAAA,GAAA6L,GAAAD,GAAAA,EAAAyD,WAAArP,GAAAs1B,GAAAzpB,GAAAA,EAAAkB,WAAA,MAAAqB,KAAAA,EAAAE,EAAAipB,eAAAnpB,EAAAD,EAAA,IAAAE,EAAAynB,GAAAjO,IAAAjc,EAAA,SAAAA,EAAAuC,EAAAE,GAAA,MAAAD,GAAApO,EAAA4L,EAAAuC,EAAAE,MAAArO,GAAAsO,EAAAkzB,MAAA,WAAA,MAAAlK,IAAAb,GAAA/lB,WAAA,GAAA,KAAApC,EAAAmzB,KAAApH,GAAA/rB,EAAAozB,OAAAvI,GAAA7qB,EAAAqzB,MAAAnI,GAAAlrB,EAAAszB,QAAA,SAAAh2B,GAAA,MAAA2qB,IAAA3qB,EAAAjM,EAAA+Q,UAAA,KAAApC,EAAAsa,KAAA,SAAAhd,EAAAwC,GAAA,MAAAopB,IAAAppB,EAAA,IAAAxC,KACA0C,EAAAuzB,IAAA;AAAA,AIpBA,IJoBA,GAAAj2B,GAAA,GAAAwC,EAAAsC,UAAA9O,SAAAgK,EAAAwC,GAAA,CAAA,GAAApO,GAAA0Q,UAAA9E,EAAA,IAAAqpB,GAAAj1B,IAAA02B,GAAA12B,GAAA,GAAAmO,GAAAA,EAAAmpB,GAAAf,GAAApoB,EAAAnO,GAAAoJ,OAAAmtB,GAAAv2B,EAAAmO,KAAAnO,EAAA,MAAAmO,QAAAG,EAAAwzB,IAAAxH,GAAAhsB,EAAAyzB,UAAAvH,GAAAlsB,EAAA0zB,QAAArI,GAAArrB,EAAA2zB,KAAA7H,GAAA9rB,EAAA7O,KAAAy3B,GAAA5oB,EAAA4zB,UAAAxI,GAAAprB,EAAA3L,OAAAkzB,GAAAvnB,EAAA6zB,QAAAnJ,GAAA1qB,EAAA6I,OAAAqjB,GAAAlsB,EAAAkL,OAAAggB,GAAAlrB,EAAA8zB,KAAAhI,GAAA9rB,EAAAkF,OAAA6mB,GAAA/rB,EAAA+zB,MAAA/H,GAAAU,GAAA1sB,GAAAA,EAAAqD,MAAA,SAAA/F,EAAAwC,EAAApO,EAAAmO,GAAA,MAAA,iBAAAC,IAAA,MAAAA,IAAAD,EAAAnO,EAAAA,EAAAoO,EAAAA,GAAA,GAAAmN,EAAA3P,EAAAwC,EAAA,kBAAApO,IAAAg2B,GAAAh2B,EAAAmO,EAAA,KAAAG,EAAAg0B,UAAA,SAAA12B,EAAAwC,EAAApO,GAAA,MAAAub,GAAA3P,GAAA,EAAA,kBAAAwC,IAAA4nB,GAAA5nB,EAAApO,EAAA,KAAAsO,EAAA5J,SAAA20B,GAAA/qB,EAAAovB,OAAA,SAAA9xB,GAAA,MAAA,OAAAA,EAAA,GAAAgrB,GAAAhrB,GAAA3L,QAAAu+B,GAAAxZ,KACA1W,EAAAi0B,MAAAhJ,GAAAjrB,EAAAuB,KAAA4pB,GAAAnrB,EAAAk0B,UAAA,SAAA52B,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA,GAAAE,EAAAzC,EAAAA,EAAAhK,OAAA,CAAA,KAAAwM,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,KAAAmO,EAAAE,GAAA,GAAAD,EAAAxC,EAAAuC,GAAAA,EAAAvC,GAAA,MAAAuC;AAAA,AIpBA,MJoBA,IAAAG,EAAAm0B,QAAA,SAAA72B,EAAAwC,EAAApO,GAAA,GAAAmO,EAAA,OAAAC,GAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAA6nB,GAAAjc,EAAA,SAAAA,EAAA5L,EAAAqO,GAAA,MAAAD,GAAAxC,EAAA5L,EAAAqO,IAAAF,EAAAnO,GAAA,GAAA,SAAAmO,GAAAG,EAAAo0B,SAAA,SAAA92B,EAAAwC,EAAApO,GAAA,GAAAmO,EAAA,OAAAC,GAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAA05B,GAAA9tB,EAAA,SAAAA,EAAA5L,EAAAqO,GAAA,MAAAD,GAAAxC,EAAA5L,EAAAqO,IAAAF,EAAAvC,GAAA,GAAA,SAAAuC,GAAAG,EAAAq0B,cAAA,SAAA/2B,EAAAwC,EAAApO,GAAA,GAAAmO,GAAAvC,EAAAA,EAAAhK,OAAA,CAAA,KAAAwM,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAAmO,KAAA,GAAAC,EAAAxC,EAAAuC,GAAAA,EAAAvC,GAAA,MAAAuC,EACA,OAAA,IAAAG,EAAAs0B,YAAA,SAAAh3B,EAAAwC,EAAApO,GAAA,GAAAmO,EAAA,OAAAC,GAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAAqnB,GAAAzb,EAAA,SAAAA,EAAA5L,EAAAqO,GAAA,MAAAD,GAAAxC,EAAA5L,EAAAqO,IAAAF,EAAAnO,GAAA,GAAA,SAAAmO,GAAAG,EAAAmF,IAAA,SAAA7H,EAAAwC,GAAA,MAAAxC,GAAAspB,GAAA9zB,KAAAwK,EAAAwC,IAAA,GAAAE,EAAAu0B,SAAA5M,GAAA3nB,EAAAV,QAAA2qB,GAAAjqB,EAAAw0B,YAAApM,GAAApoB,EAAAxH,QAAAmuB,GAAA3mB,EAAAy0B,UAAA,SAAAn3B,GAAA,OAAA,IAAAA,IAAA,IAAAA,GAAAA,GAAA,gBAAAA,IAAA6pB,GAAAr0B,KAAAwK,IAAAqM,IAAA;AIpBA,EJoBA3J,EAAA00B,OAAA,SAAAp3B,GAAA,MAAAA,IAAA,gBAAAA,IAAA6pB,GAAAr0B,KAAAwK,IAAA8C,IAAA,GAAAJ,EAAA20B,UAAA,SAAAr3B,GAAA,MAAAA,IAAA,IAAAA,EAAA7L,WAAA,GAAAuO,EAAA40B,QAAA,SAAAt3B,GAAA,GAAAwC,IAAA,CAAA,KAAAxC,EAAA,MAAAwC,EAAA,IAAApO,GAAAy1B,GAAAr0B,KAAAwK,GAAAuC,EAAAvC,EAAAhK,MACA,OAAA5B,IAAA0N,GAAA1N,GAAAkY,IAAAwd,GAAAiD,UAAA34B,GAAAyY,EAAAie,GAAA9qB,KAAA5L,GAAAV,GAAA,gBAAA6O,IAAA4oB,GAAAnrB,EAAArD,SAAA4F,GAAA0Z,GAAAjc,EAAA,WAAA,MAAAwC,IAAA,IAAAA,IAAAE,EAAA60B,QAAA,SAAAv3B,EAAAwC,EAAApO,EAAAmO,GAAA,MAAAwoB,IAAA/qB,EAAAwC,EAAA,kBAAApO,IAAAg2B,GAAAh2B,EAAAmO,EAAA,KAAAG,EAAAiD,SAAA,SAAA3F,GAAA,MAAAkxB,IAAAlxB,KAAAmxB,GAAAx3B,WAAAqG,KAAA0C,EAAApN,WAAA61B,GAAAzoB,EAAAgD,MAAA,SAAA1F,GAAA,MAAAstB,IAAAttB,IAAAA,IAAAA,GAAA0C,EAAA80B,OAAA,SAAAx3B,GAAA,MAAA,QAAAA,GAAA0C,EAAA+0B,SAAAnK,GAAA5qB,EAAAg1B,SAAA/N,GAAAjnB,EAAAkB,cAAA2nB,GAAA7oB,EAAAi1B,SAAA,SAAA33B,GAAA,MAAAA,IAAA0P,QAAA1P,KAAA6pB,GAAAr0B,KAAAwK,IAAA/L,IAAA,GAAAyO,EAAAk1B,SAAAtL;AAAA5pB,AIpBA,EJoBAm1B,YAAA,SAAA73B,GAAA,MAAA,mBAAAA,IACA0C,EAAAo1B,YAAA,SAAA93B,EAAAwC,EAAApO,GAAA,GAAAmO,GAAAvC,EAAAA,EAAAhK,OAAA,CAAA,KAAA,gBAAA5B,KAAAmO,GAAA,EAAAnO,EAAAs5B,GAAA,EAAAnrB,EAAAnO,GAAAk6B,GAAAl6B,EAAAmO,EAAA,IAAA,GAAAA,KAAA,GAAAvC,EAAAuC,KAAAC,EAAA,MAAAD,EAAA,OAAA,IAAAG,EAAAq1B,MAAA3I,GAAA1sB,EAAAwC,WAAA,WAAA,MAAA9Q,GAAAyb,EAAAwgB,GAAArxB,MAAA0D,EAAAiE,KAAA2oB,GAAA5sB,EAAArF,IAAA4xB,GAAAvsB,EAAAuM,SAAAgkB,GAAAvwB,EAAA0I,OAAA,SAAApL,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA,MAAAvC,EAAAyC,EAAA,MAAAD,CAAA,OAAA,OAAApO,IAAA,iBAAA4L,IAAAyC,GAAArO,EAAA4L,EAAAA,EAAA,GAAAyC,GAAA,iBAAAD,KAAApO,EAAAoO,EAAAC,GAAA,IAAAF,GAAAE,IAAAD,EAAA,GAAAxC,GAAAA,GAAA,EAAAyC,GAAAD,EAAAxC,EAAAA,EAAA,GAAAwC,GAAAA,GAAA,EAAApO,GAAA4L,EAAA,GAAAwC,EAAA,GAAApO,EAAAq3B,KAAA6C,GAAAtuB,EAAA5L,GAAAoO,EAAAxC,EAAArG,WAAA,QAAAvF,EAAA,IAAA4B,OAAA,KAAAwM,IAAA2W,GAAAnZ,EAAAwC,IAAAE,EAAAs1B,OAAA/J,GAAAvrB,EAAAu1B,YAAA/J,GAAAxrB,EAAA2O,OAAA,SAAArR,EAAAwC,GAAA,GAAAxC,EAAA,CAAA,GAAA5L,GAAA4L,EAAAwC,EACA,OAAA2oB,IAAA/2B,GAAA4L,EAAAwC,KAAApO,IAAAsO,EAAAw1B,aAAAzhC,EAAAiM,EAAA2B,KAAA,SAAArE;AAAA,AIrBA,GJqBAwC,GAAAxC,EAAAA,EAAAhK,OAAA,CAAA,OAAA,gBAAAwM,GAAAA,EAAA2qB,GAAAntB,GAAAhK,QAAA0M,EAAAy1B,KAAA/J,GAAA1rB,EAAA01B,YAAA7J,GAAA7rB,EAAA21B,SAAA,SAAAr4B,EAAAwC,EAAApO,GAAA,GAAAmO,GAAAG,EAAAmvB,gBAAA7xB,GAAAgrB,GAAAhrB,GAAA,IAAA5L,EAAAy+B,MAAAz+B,EAAAmO,EAAA,IAAAE,GAAAxC,EAAA4yB,MAAAz+B,EAAA89B,QAAA3vB,EAAA2vB,SAAA3vB,EAAA4qB,GAAAltB,GAAAA,EAAAstB,GAAAttB,GAAA5E,EAAA,EAAAM,EAAAvH,EAAA49B,aAAAzlB,EAAA3X,EAAA,SAAA+G,EAAAu0B,IAAA97B,EAAA09B,QAAAvlB,GAAAjK,OAAA,IAAA3G,EAAA2G,OAAA,KAAA3G,IAAArH,EAAAkY,EAAAD,GAAAjK,OAAA,KAAAlO,EAAA29B,UAAAxlB,GAAAjK,OAAA,KAAA,IAAAtC,GAAA3L,QAAAsH,EAAA,SAAA6G,EAAApO,EAAAmO,EAAAtC,EAAAtE,EAAA3H,GAAA,MAAAuO,KAAAA,EAAAtC,GAAArL,GAAAoL,EAAAtH,MAAA2C,EAAArH,GAAAK,QAAAoY,EAAAjZ,GAAAY,IAAAQ,GAAA,SAAAR,EAAA,OAAAuH,IAAA8G,GAAA,EAAA7N,GAAA,KAAA+G,EAAA,aAAA4G,IAAA3N,GAAA,YAAA2N,EAAA,sBAAAlH,EAAArH,EAAAwO,EAAAxM,OAAAwM,IACA5N,GAAA,KAAA+G,EAAAvH,EAAAA,EAAA69B,SAAAt2B,IAAAvH,EAAA,MAAAQ,EAAA,QAAAR,EAAA,KAAAQ,EAAA,KAAAA,GAAA6N,EAAA7N,EAAAP,QAAAuO,EAAA,IAAAhO,GAAAP,QAAA4O,EAAA,MAAA5O,QAAAmP,EAAA,OAAA5O,EAAA,YAAAR,EAAA,MAAAuH,EAAA,GAAAvH,EAAA,MAAAA,EAAA,SAAA,+BAAAqO,EAAA,0EAAA,KAAA7N,EAAA;AAAA,AIrBA,IJqBA,GAAAZ,GAAAg4B,GAAAzpB,EAAA,UAAA3N,GAAAiQ,MAAAnO,EAAAuJ,GAAA,MAAArM,GAAA,KAAAA,GAAA0O,OAAA1N,EAAAhB,EAAA,MAAA4O,GAAAxO,EAAAwO,IAAAxO,EAAAsO,OAAA1N,EAAAZ,IAAA0O,EAAA41B,SAAA,SAAAt4B,GAAA,MAAA,OAAAA,EAAA,GAAAgrB,GAAAhrB,GAAA3L,QAAAs+B,GAAA1F,KAAAvqB,EAAA61B,SAAA,SAAAv4B,GAAA,GAAAwC,KAAAzC,CAAA,OAAAirB,IAAA,MAAAhrB,EAAA,GAAAA,GAAAwC,GACAE,EAAA81B,IAAA7K,GAAAjrB,EAAA+1B,IAAArK,GAAA1rB,EAAAg2B,OAAA7K,GAAAnrB,EAAAi2B,UAAA9K,GAAAnrB,EAAAk2B,MAAA3K,GAAAvrB,EAAAm2B,MAAA3K,GAAAxrB,EAAAo2B,QAAArL,GAAA/qB,EAAAq2B,OAAA9K,GAAAmB,GAAA,WAAA,GAAApvB,KAAA,OAAAic,IAAAvZ,EAAA,SAAAF,EAAApO,GAAAsO,EAAAvB,UAAA/M,KAAA4L,EAAA5L,GAAAoO,KAAAxC,MAAA,GAAA0C,EAAAiC,MAAA0pB,GAAA3rB,EAAAkC,KAAA,SAAA5E,EAAAwC,EAAApO,GAAA,GAAAmO,GAAA,EAAAE,EAAAzC,EAAAA,EAAAhK,OAAA,CAAA,IAAA,gBAAAwM,IAAA,MAAAA,EAAA,CAAA,GAAAvC,GAAAwC,CAAA,KAAAD,EAAAE,EAAAipB,eAAAnpB,EAAApO,EAAA,GAAA6L,KAAAuC,EAAAxC,EAAAC,GAAAA,EAAAD,IAAAuC,QAAA,IAAAA,EAAAC,EAAA,MAAAD,GAAAnO,EAAA,MAAA4L,GAAAA,EAAAyC,EAAA,GAAA/L,CAAA,OAAA3C,GAAAiM,EAAA0tB,GAAA,EAAAjrB,EAAAF,KAAAG,EAAAs2B,OAAA,SAAAh5B,EAAAwC,EAAApO,GAAA,MAAA4L,IAAA,gBAAAA,GAAAhK,OAAAgK,EAAAutB,GAAAvtB,GAAA8pB,GAAAmC,gBAAAK,GAAAtsB,KAAAA,EAAAA,EAAAlM,MAAA;AAAA,AIrBA,MJqBA0O,GAAApO,EAAA4L,EAAAA,EAAAmZ,GAAA,EAAAnZ,EAAAhK,OAAA,IAAAU,GAAAsJ,EAAAmuB,GAAAnuB,GAAAA,EAAAhK,OAAAs4B,GAAAZ,GAAA,EAAAlrB,GAAAxC,EAAAhK,QAAAgK,IACA0C,EAAAu2B,KAAA5K,GAAA3rB,EAAAoiB,KAAAuJ,GAAApS,GAAAvZ,EAAA,SAAA1C,EAAAwC,GAAA,GAAApO,GAAA,WAAAoO,CAAAE,GAAAvB,UAAAqB,KAAAE,EAAAvB,UAAAqB,GAAA,SAAAA,EAAAD,GAAA,GAAAE,GAAAzD,KAAAuqB,UAAAtpB,EAAAD,EAAAhB,KAAAwqB,YAAAhnB,EAAAD,EAAA,OAAAE,IAAA,MAAAD,KAAAD,GAAAnO,GAAA,kBAAAoO,IAAA,GAAAK,GAAA5C,EAAAwC,GAAAxC,MAAAyC,EAAAw2B,QAAA,QAAAx2B,EAAAvB,UAAAkuB,MAAA,WAAA,MAAArwB,MAAAuqB,WAAA,EAAAvqB,MAAA0D,EAAAvB,UAAAe,SAAA,WAAA,MAAA8oB,IAAAhsB,KAAAwqB,cAAA9mB,EAAAvB,UAAAtJ,MAAA23B,GAAA9sB,EAAAvB,UAAAswB,QAAAjC,GAAAtF,IAAA,OAAA,MAAA,SAAA,SAAAlqB,GAAA,GAAAwC,GAAA4tB,GAAApwB,EAAA0C,GAAAvB,UAAAnB,GAAA,WAAA,GAAAA,GAAAhB,KAAAuqB,UAAAn1B,EAAAoO,EAAAqC,MAAA7F,KAAAwqB,YAAA1kB,UACA,OAAA9E,GAAA,GAAA6C,GAAAzO,EAAA4L,GAAA5L,KAAA81B,IAAA,OAAA,UAAA,OAAA,WAAA,SAAAlqB;AAAA,AItBA,GJsBAwC,GAAA4tB,GAAApwB,EAAA0C,GAAAvB,UAAAnB,GAAA,WAAA,MAAAwC,GAAAqC,MAAA7F,KAAAwqB,YAAA1kB,WAAA9F,QAAAkrB,IAAA,SAAA,QAAA,UAAA,SAAAlqB,GAAA,GAAAwC,GAAA4tB,GAAApwB,EAAA0C,GAAAvB,UAAAnB,GAAA,WAAA,MAAA,IAAA6C,GAAAL,EAAAqC,MAAA7F,KAAAwqB,YAAA1kB,WAAA9F,KAAAuqB,cAAAO,GAAA8H,eAAA1H,IAAA,MAAA,QAAA,UAAA,SAAAlqB,GAAA,GAAAwC,GAAA4tB,GAAApwB,GAAA5L,EAAA,UAAA4L,CAAA0C,GAAAvB,UAAAnB,GAAA,WAAA,GAAAA,GAAAhB,KAAAuqB,UAAAhnB,EAAAvD,KAAAwqB,YAAA/mB,EAAAD,EAAAqC,MAAAtC,EAAAuC,UAAA,OAAA,KAAAvC,EAAAvM,cAAAuM,GAAA,GAAAvC,GAAA5L,EAAA,GAAAyO,GAAAJ,EAAAzC,GAAAyC,KACAC,EAAA,GAAAhM,GAAAgM,KAAAG,KAAA9C,EAAA,EAAA7L,KAAAT,GAAA,GAAAyT,MAAA,GAAA2I,EAAA,GAAAlN,EAAA,GAAAlH,EAAA,kDAAAmH,EAAA,eAAAK,EAAA,kBAAAO,EAAA,6BAAAgJ,EAAA,kCAAAI,EAAA,OAAA7J,EAAA,2BAAAzO,EAAA,mBAAA4O,EAAAwN,OAAA,KAAAjV,EAAA,cAAA8Q,EAAA,OAAAvJ,EAAA,WAAAyJ,EAAA,2BAAAE,EAAA,mIAAA7Y,MAAA,KAAAH,EAAA,gGAAAG,MAAA,KAAA+Y,EAAA,qBAAA/K,EAAA,iBAAAuK,EAAA,mBAAAvJ,EAAA,gBAAA5C,EAAA,iBAAApL,EAAA,oBAAA2a,EAAA,kBAAA/b,EAAA,kBAAAO,EAAA,kBAAAqY,EAAA,kBAAAkD;AACAA,AIvBA,EJuBA1a,IAAA,EAAA0a,EAAA3C,GAAA2C,EAAA1N,GAAA0N,EAAAnD,GAAAmD,EAAA1M,GAAA0M,EAAAC,GAAAD,EAAA9b,GAAA8b,EAAAvb,GAAAub,EAAAlD,IAAA,CAAA,IAAA7X,IAAAq6B,SAAA,EAAAC,QAAA,EAAAC,UAAA,GAAAliB,GAAAqsB,cAAA,EAAAC,YAAA,EAAAvhC,MAAA,KAAAwhC,UAAA,GAAA3sB,GAAAlZ,EAAA,GAAAC,EAAA,KAAAO,EAAA,GAAAE,EAAA,GAAAE,EAAA,GAAAsO,EAAA,KAAAjM,EAAA,GAAAC,EAAA,KAAAW,QAAA,KAAAgE,EAAA,GAAAI,GAAA,GAAAiU,GAAA4pB,WAAA,EAAAC,YAAA,EAAAhuB,QAAA,EAAA2d,QAAA,EAAAC,QAAA,EAAAJ,WAAA,GAAApZ,GAAA6pB,KAAA,KAAA9G,IAAA,IAAA+G,KAAA,IAAAC,KAAA,IAAAC,IAAA,IAAAC,SAAA,QAAAC,SAAA,SAAAjqB,EAAAF,QAAAlK,UAAAA,QAAAxG,KAAA0qB,GAAAha,QAAAoqB,WAAAA,UAAAA,QAAA3lC,UAAA2lC,QAAA1P,GAAA1a,QAAAqqB,UAAAA,SAAAA,OAAA5lC,UAAA4lC,OAAArP,GAAAN,IAAAA,GAAA0P,UAAApQ,IAAAA,GAAAiB,GAAAjb,QAAAe,UAAAA,QACAka,IAAAA,GAAAla,SAAAka,IAAAA,GAAAnlB,SAAAmlB,KAAA/a,EAAA+a,GAAA,IAAA8E,IAAAh5B,GAAA,mBAAAmyB,SAAA,gBAAAA,QAAAC,KAAAD,OAAAC,KAAAjZ,EAAAC,EAAA4f;AAAA7G,AIvBA,OJuBA,YAAA,WAAA,MAAA6G,OAAA/F,IAAAU,GAAAM,IAAAN,GAAA0P,QAAArK,IAAA5f,EAAA4f,GAAA/F,GAAA7Z,EAAA4f,GAAA7f,EAAAC,EAAA4f,IAAAj6B,KAAAwJ,MACA4pB,OAAA,WAAA,UAAA,SAAAmR,QC5DA,MAAAA,QAAAC,WCEApR,OAAA,eAAA,UAAA,SAAA/Y,GACA,YAEA,IAAAoqB,SAAA,WAcA,OAAA,UAAAC,SACA,GAAAC,cAAAp4B,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACA,OAAA+K,GAAAmoB,OACAkC,QAAAlkB,MAAAikB,SACA,SAAAG,IAAApkB,MAAAH,OACA,GAAAwkB,aAAA,EACA,IAAAtR,SAAAoR,aAAAtkB,OAAA,CACA,OAAAG,OACA,IAAA,KAAAqkB,YAAApK,OAAAkK,aAAAtkB,OAAA,MACA,KAAA,KAAA,IACAwkB,YAAAn0B,KAAAo0B,UAAAH,aAAAtkB,QAAAxhB,QAAA,KAAA,IACA,MAAAD,IACA,KACA,SAAAimC,YAAAF,aAAAtkB,OAEAqkB,QAAAA,QAAA7lC,QAAA2hB,MAAAqkB;AEGA,CFDA,MAAAH,UAEAA,YAKAtR,OAAA,QAAA,SAAA,4BAAA,UAAA,eAAA,SAAA/Y,EAAA0qB,OAAA72B,QAAA82B,QC3CA,YAEA,IAAAC,cAAAF,OAAAE,aASAC,GAAA,SAAAR,SACA,GAAAS,WAAAF,aAAAP,SAAAO,aAAAP,SAAAA,OAOA,OALAp1B,WAAA9O,OAAA,IACA8O,UAAA,GAAA61B,UACAA,UAAAH,OAAA31B,MAAA,KAAAC,YAGA61B,UAIA,OAAAD,MChBA,WACA,YACA,SAAAE,yCAAAh4B,GACA,MAAA,kBAAAA,IAAA,gBAAAA,IAAA,OAAAA,EAGA,QAAAi4B,mCAAAj4B,GACA,MAAA,kBAAAA,GAGA,QAAAk4B,wCAAAl4B,GACA,MAAA,gBAAAA,IAAA,OAAAA;AAoBA,CAcA,QAAAm4B,oCAAAC,YACAC,wCAAAD,WAGA,QAAAE,+BAAAC,QACAC,2BAAAD,OAcA,QAAAE,qCACA,GAAAC,UAAAC,QAAAD,SAGAld,QAAAmd,QAAAC,SAAAC,KAAAzlB,MAAA,qCAIA,OAHAjU,OAAA7G,QAAAkjB,UAAA,MAAAA,QAAA,IAAA,OAAAA,QAAA,KACAkd,SAAAI,cAEA,WACAJ,SAAAK,8BAKA,QAAAC,uCACA,MAAA,YACAC,gCAAAF,8BAIA,QAAAG,6CACA,GAAAC,YAAA,EACAC,SAAA,GAAAC,+CAAAN,6BACAF,KAAA5gC,SAAAgiB,eAAA;AAvDA,AA0DA,MAFAmf,UAAAE,QAAAT,MAAAU,eAAA,IAEA,WACAV,KAAA5mC,KAAAknC,aAAAA,WAAA,GAKA,QAAAK,2CACA,GAAAC,SAAA,GAAAC,eAEA,OADAD,SAAAE,MAAAC,UAAAb,4BACA,WACAU,QAAAI,MAAAC,YAAA,IAIA,QAAAC,uCACA,MAAA,YACAx/B,WAAAw+B,4BAAA,IAKA,QAAAA,+BACA,IAAA,GAAAtgC,GAAA,EAAAuhC,0BAAAvhC,EAAAA,GAAA,EAAA,CACA,GAAAwhC,UAAAC,4BAAAzhC,GACA0hC,IAAAD,4BAAAzhC,EAAA,EAEAwhC,UAAAE,KAEAD,4BAAAzhC,GAAA0tB,OACA+T,4BAAAzhC,EAAA,GAAA0tB,OAGA6T,0BAAA;AAzFA,CA4FA,QAAAI,uCACA,IACA,GAAAz6B,GAAA06B,QACAC,MAAA36B,EAAA,QAEA,OADAs5B,iCAAAqB,MAAAC,WAAAD,MAAAE,aACAxB,sCACA,MAAAxnC,GACA,MAAAuoC,wCAkBA,QAAAU,oCAQA,QAAAC,+CACA,MAAA,IAAAnN,WAAA,4CAGA,QAAAoN,8CACA,MAAA,IAAApN,WAAA,wDAGA,QAAAqN,oCAAAp/B,SACA,IACA,MAAAA,SAAA+J,KACA,MAAAtL,OAEA,MADA4gC,2CAAA5gC,MAAAA;AAxIA,AAyIA4gC,2CAIA,QAAAC,oCAAAv1B,KAAAtQ,MAAA8lC,mBAAAC,kBACA,IACAz1B,KAAA3S,KAAAqC,MAAA8lC,mBAAAC,kBACA,MAAAxpC,GACA,MAAAA,IAIA,QAAAypC,kDAAAz/B,QAAA0/B,SAAA31B,MACAizB,2BAAA,SAAAh9B,SACA,GAAA2/B,SAAA,EACAlhC,MAAA6gC,mCAAAv1B,KAAA21B,SAAA,SAAAjmC,OACAkmC,SACAA,QAAA,EACAD,WAAAjmC,MACAmmC,mCAAA5/B,QAAAvG,OAEAomC,mCAAA7/B,QAAAvG,SAEA,SAAAqmC,QACAH,SACAA,QAAA,EAEAI,kCAAA//B,QAAA8/B,UACA,YAAA9/B,QAAAggC,QAAA;AApKA,CAsKAL,QAAAlhC,QACAkhC,QAAA,EACAI,kCAAA//B,QAAAvB,SAEAuB,SAGA,QAAAigC,8CAAAjgC,QAAA0/B,UACAA,SAAAQ,SAAAC,qCACAN,mCAAA7/B,QAAA0/B,SAAAU,SACAV,SAAAQ,SAAAG,oCACAN,kCAAA//B,QAAA0/B,SAAAU,SAEAE,qCAAAZ,SAAA/U,OAAA,SAAAlxB,OACAmmC,mCAAA5/B,QAAAvG,QACA,SAAAqmC,QACAC,kCAAA//B,QAAA8/B,UAKA,QAAAS,gDAAAvgC,QAAAwgC,eACA,GAAAA,cAAAn7B,cAAArF,QAAAqF,YACA46B,6CAAAjgC,QAAAwgC,mBACA;AA7LA,AA8LA,GAAAz2B,MAAAq1B,mCAAAoB,cAEAz2B,QAAAs1B,0CACAU,kCAAA//B,QAAAq/B,0CAAA5gC,OACAksB,SAAA5gB,KACA81B,mCAAA7/B,QAAAwgC,eACA/D,kCAAA1yB,MACA01B,iDAAAz/B,QAAAwgC,cAAAz2B,MAEA81B,mCAAA7/B,QAAAwgC,gBAKA,QAAAZ,oCAAA5/B,QAAAvG,OACAuG,UAAAvG,MACAsmC,kCAAA//B,QAAAk/B,+CACA1C,wCAAA/iC,OACA8mC,+CAAAvgC,QAAAvG,OAEAomC,mCAAA7/B,QAAAvG;AAjNA,CAqNA,QAAAgnC,6CAAAzgC,SACAA,QAAA0gC,UACA1gC,QAAA0gC,SAAA1gC,QAAAogC,SAGAO,mCAAA3gC,SAGA,QAAA6/B,oCAAA7/B,QAAAvG,OACAuG,QAAAkgC,SAAAU,qCAEA5gC,QAAAogC,QAAA3mC,MACAuG,QAAAkgC,OAAAC,qCAEA,IAAAngC,QAAA6gC,aAAAjpC,QACAolC,2BAAA2D,mCAAA3gC,UAIA,QAAA+/B,mCAAA//B,QAAA8/B,QACA9/B,QAAAkgC,SAAAU,qCACA5gC,QAAAkgC,OAAAG,oCACArgC,QAAAogC,QAAAN,OAEA9C,2BAAAyD,4CAAAzgC;AA5OA,CA+OA,QAAAsgC,sCAAAxmB,OAAAgnB,MAAAC,cAAAC,aACA,GAAAC,aAAAnnB,OAAA+mB,aACAjpC,OAAAqpC,YAAArpC,MAEAkiB,QAAA4mB,SAAA,KAEAO,YAAArpC,QAAAkpC,MACAG,YAAArpC,OAAAuoC,sCAAAY,cACAE,YAAArpC,OAAAyoC,qCAAAW,YAEA,IAAAppC,QAAAkiB,OAAAomB,QACAlD,2BAAA2D,mCAAA7mB,QAIA,QAAA6mB,oCAAA3gC,SACA,GAAAihC,aAAAjhC,QAAA6gC,aACAK,QAAAlhC,QAAAkgC,MAEA,IAAA,IAAAe,YAAArpC,OAAA,CAIA,IAAA,GAFAkpC,OAAArC,SAAA0C,OAAAnhC,QAAAogC,QAEAnjC,EAAA,EAAAA,EAAAgkC,YAAArpC,OAAAqF,GAAA,EACA6jC,MAAAG,YAAAhkC;AAtQA,AAuQAwhC,SAAAwC,YAAAhkC,EAAAikC,SAEAJ,MACAM,0CAAAF,QAAAJ,MAAArC,SAAA0C,QAEA1C,SAAA0C,OAIAnhC,SAAA6gC,aAAAjpC,OAAA,GAGA,QAAAypC,0CACAzgC,KAAAnC,MAAA,KAKA,QAAA6iC,qCAAA7C,SAAA0C,QACA,IACA,MAAA1C,UAAA0C,QACA,MAAAnrC,GAEA,MADAurC,4CAAA9iC,MAAAzI,EACAurC,4CAIA,QAAAH,2CAAAF,QAAAlhC,QAAAy+B,SAAA0C,QACA,GACA1nC,OAAAgF,MAAA+iC,UAAAC,OADAC,YAAAjF,kCAAAgC,SAGA,IAAAiD,aAWA,GAVAjoC,MAAA6nC,oCAAA7C,SAAA0C;AAtSA,AAwSA1nC,QAAA8nC,4CACAE,QAAA,EACAhjC,MAAAhF,MAAAgF,MACAhF,MAAA,MAEA+nC,WAAA,EAGAxhC,UAAAvG,MAEA,WADAsmC,mCAAA//B,QAAAm/B,kDAKA1lC,OAAA0nC,OACAK,WAAA,CAGAxhC,SAAAkgC,SAAAU,qCAEAc,aAAAF,UACA5B,mCAAA5/B,QAAAvG,OACAgoC,OACA1B,kCAAA//B,QAAAvB,OACAyiC,UAAAf,qCACAN,mCAAA7/B,QAAAvG,OACAynC,UAAAb,qCACAN,kCAAA//B,QAAAvG,QAIA,QAAAkoC,8CAAA3hC,QAAA4hC;AAtUA,AAuUA,IACAA,SAAA,SAAAnoC,OACAmmC,mCAAA5/B,QAAAvG,QACA,SAAAqmC,QACAC,kCAAA//B,QAAA8/B,UAEA,MAAA9pC,GACA+pC,kCAAA//B,QAAAhK,IAIA,QAAA6rC,wCAAAC,YAAArnB,OACA,GAAAsnB,YAAAnhC,IAEAmhC,YAAAC,qBAAAF,YACAC,WAAA/hC,QAAA,GAAA8hC,aAAA7C,iCAEA8C,WAAAE,eAAAxnB,QACAsnB,WAAAG,OAAAznB,MACAsnB,WAAAnqC,OAAA6iB,MAAA7iB,OACAmqC,WAAAI,WAAA1nB,MAAA7iB,OAEAmqC,WAAAK,QAEA,IAAAL,WAAAnqC,OACAioC,mCAAAkC,WAAA/hC,QAAA+hC,WAAA3B,UAEA2B,WAAAnqC,OAAAmqC,WAAAnqC,QAAA;AAjWA,AAkWAmqC,WAAAM,aACA,IAAAN,WAAAI,YACAtC,mCAAAkC,WAAA/hC,QAAA+hC,WAAA3B,WAIAL,kCAAAgC,WAAA/hC,QAAA+hC,WAAAO,oBA2EA,QAAAC,kCAAAC,SACA,MAAA,IAAAC,qCAAA7hC,KAAA4hC,SAAAxiC,QAGA,QAAA0iC,oCAAAF,SAaA,QAAAzB,eAAAtnC,OACAmmC,mCAAA5/B,QAAAvG,OAGA,QAAAunC,aAAAlB,QACAC,kCAAA//B,QAAA8/B,QAhBA,GAAAgC,aAAAlhC,KAEAZ,QAAA,GAAA8hC,aAAA7C,gCAEA,KAAA0D,+BAAAH,SAEA,MADAzC,mCAAA//B,QAAA,GAAA+xB,WAAA;AA7bA,AA8bA/xB,OAaA,KAAA,GAVApI,QAAA4qC,QAAA5qC,OAUAqF,EAAA,EAAA+C,QAAAkgC,SAAAU,oCAAAhpC,OAAAqF,EAAAA,IACAqjC,qCAAAwB,YAAA93B,QAAAw4B,QAAAvlC,IAAA0tB,OAAAoW,cAAAC,YAGA,OAAAhhC,SAGA,QAAA4iC,0CAAAz1B,QAEA,GAAA20B,aAAAlhC,IAEA,IAAAuM,QAAA,gBAAAA,SAAAA,OAAA9H,cAAAy8B,YACA,MAAA30B,OAGA,IAAAnN,SAAA,GAAA8hC,aAAA7C,gCAEA,OADAW,oCAAA5/B,QAAAmN,QACAnN,QAGA,QAAA6iC,wCAAA/C,QAEA,GAAAgC,aAAAlhC,KACAZ,QAAA,GAAA8hC,aAAA7C,gCAEA,OADAc,mCAAA//B,QAAA8/B;AAleA,AAmeA9/B,QAMA,QAAA8iC,0CACA,KAAA,IAAA/Q,WAAA,sFAGA,QAAAgR,qCACA,KAAA,IAAAhR,WAAA,yHA2GA,QAAAiR,kCAAApB,UACAhhC,KAAAqiC,IAAAC,mCACAtiC,KAAAs/B,OAAAvV,OACA/pB,KAAAw/B,QAAAzV,OACA/pB,KAAAigC,gBAEA5B,kCAAA2C,WACAnF,kCAAAmF,WACAkB,yCAGAliC,eAAAoiC,mCACAD;AApmBA,AAumBApB,6CAAA/gC,KAAAghC,WAsQA,QAAAuB,sCACA,GAAAC,MAEA,IAAA,mBAAA/wB,QACA+wB,MAAA/wB,WACA,IAAA,mBAAAgxB,MACAD,MAAAC,SAEA,KACAD,MAAAp7B,SAAA,iBACA,MAAAhS,GACA,KAAA,IAAAwR,OAAA,4EAIA,GAAA6G,GAAA+0B,MAAAE,UAEAj1B,GAAA,qBAAAxK,OAAAd,UAAAe,SAAA1M,KAAAiX,EAAArE,YAAAqE,EAAAk1B,QAIAH,MAAAE,QAAAE,kCAj6BA,GAAAC,gCAMAA,iCALA9/B,MAAA7G,QAKA6G,MAAA7G,QAJA,SAAA0H,GACA,MAAA,mBAAAX,OAAAd,UAAAe,SAAA1M,KAAAoN,GAMA,IAGAi5B,iCACAZ,wCA6GA6G,oCAjHAf,+BAAAc,gCACAjF,0BAAA,EAKAxB,+BAJAl5B;AAIA,AAiBA,SAjBA26B,SAAAE,KACAD,4BAAAF,2BAAAC,SACAC,4BAAAF,0BAAA,GAAAG,IACAH,2BAAA,EACA,IAAAA,4BAIA3B,wCACAA,wCAAAU,6BAEAmG,yCAaAC,oCAAA,mBAAAv8B,QAAAA,OAAAujB,OACAiZ,oCAAAD,wCACA9F,8CAAA+F,oCAAAC,kBAAAD,oCAAAE,uBACAC,6BAAA,mBAAA5G,UAAA,wBAAAr5B,SAAA1M,KAAA+lC,SAGA6G,+BAAA,mBAAAC,oBACA,mBAAAC,gBACA,mBAAAhG,gBAiDAQ,4BAAA,GAAA/6B,OAAA;AA/DA,AA4FA+/B,oCADAK,6BACA9G,oCACAY,8CACAH,4CACAsG,+BACAhG,0CACArT,SAAAgZ,qCAAA,kBAAA9E,SACAD,sCAEAL,qCAKA,IAAAqC,oCAAA,OACAT,qCAAA,EACAE,oCAAA,EAEAhB,0CAAA,GAAAgC,wCAkKAE,2CAAA,GAAAF;AA9QA,AAsWAQ,uCAAA9+B,UAAAk/B,eAAA,SAAAxnB,OACA,MAAAkoB,gCAAAloB,QAGAonB,uCAAA9+B,UAAAu/B,iBAAA,WACA,MAAA,IAAA96B,OAAA,4CAGAq6B,uCAAA9+B,UAAAq/B,MAAA,WACAxhC,KAAAw/B,QAAA,GAAAz8B,OAAA/C,KAAAhJ,QAGA,IAAA6qC,qCAAAZ,sCAEAA,wCAAA9+B,UAAAs/B,WAAA,WAOA,IAAA,GANAN,YAAAnhC,KAEAhJ,OAAAmqC,WAAAnqC,OACAoI,QAAA+hC,WAAA/hC,QACAya,MAAAsnB,WAAAG,OAEAjlC,EAAA,EAAA+C,QAAAkgC,SAAAU,oCAAAhpC,OAAAqF,EAAAA,IACA8kC,WAAAoC,WAAA1pB,MAAAxd,GAAAA;AA3XA,EA+XA4kC,uCAAA9+B,UAAAohC,WAAA,SAAAC,MAAAnnC,GACA,GAAA8kC,YAAAnhC,KACAhL,EAAAmsC,WAAAC,oBAEAtF,wCAAA0H,OACAA,MAAA/+B,cAAAzP,GAAAwuC,MAAAlE,SAAAU,oCACAwD,MAAA1D,SAAA,KACAqB,WAAAsC,WAAAD,MAAAlE,OAAAjjC,EAAAmnC,MAAAhE,UAEA2B,WAAAuC,cAAA1uC,EAAAoU,QAAAo6B,OAAAnnC,IAGA8kC,WAAAI,aACAJ,WAAA3B,QAAAnjC,GAAAmnC,QAIAvC,uCAAA9+B,UAAAshC,WAAA,SAAA7lC,MAAAvB,EAAAxD,OACA,GAAAsoC,YAAAnhC,KACAZ,QAAA+hC,WAAA/hC,OAEAA,SAAAkgC,SAAAU,qCACAmB,WAAAI,aAEA3jC,QAAA6hC,oCACAN,kCAAA//B,QAAAvG,OAEAsoC,WAAA3B,QAAAnjC,GAAAxD;AAzZA,AA6ZA,IAAAsoC,WAAAI,YACAtC,mCAAA7/B,QAAA+hC,WAAA3B,UAIAyB,uCAAA9+B,UAAAuhC,cAAA,SAAAtkC,QAAA/C,GACA,GAAA8kC,YAAAnhC,IAEA0/B,sCAAAtgC,QAAA2qB,OAAA,SAAAlxB,OACAsoC,WAAAsC,WAAAlE,qCAAAljC,EAAAxD,QACA,SAAAqmC,QACAiC,WAAAsC,WAAAhE,oCAAApjC,EAAA6iC,UAMA,IAAAyE,sCAAAhC,iCA4BAiC,sCAAA9B,mCAaA+B,yCAAA7B,yCAQA8B,wCAAA7B,uCAEAK,iCAAA,EAUAM,iCAAAR;AA1eA,AAqmBAA,iCAAA5I,IAAAmK,qCACAvB,iCAAA2B,KAAAH,sCACAxB,iCAAAh5B,QAAAy6B,yCACAzB,iCAAA/4B,OAAAy6B,wCACA1B,iCAAA4B,cAAAjI,mCACAqG,iCAAA6B,SAAA/H,8BACAkG,iCAAA8B,MAAA9H,2BAEAgG,iCAAAjgC,WACAsC,YAAA29B,iCAmMAj5B,KAAA,SAAAg3B,cAAAC,aACA,GAAAlnB,QAAAlZ,KACApC,MAAAsb,OAAAomB;AAlzBA,AAozBA,GAAA1hC,QAAA2hC,uCAAAY,eAAAviC,QAAA6hC,sCAAAW,YACA,MAAApgC,KAGA,IAAAkgC,OAAA,GAAAlgC,MAAAyE,YAAA45B,iCACAhsB,OAAA6G,OAAAsmB,OAEA,IAAA5hC,MAAA,CACA,GAAAigC,UAAA/3B,UAAAlI,MAAA,EACAw+B,4BAAA,WACAoE,0CAAA5iC,MAAAsiC,MAAArC,SAAAxrB,cAGAqtB,sCAAAxmB,OAAAgnB,MAAAC,cAAAC,YAGA,OAAAF,QA8BAiE,QAAA,SAAA/D,aACA,MAAApgC,MAAAmJ,KAAA,KAAAi3B,cA0BA,IAAAgE,mCAAA7B,mCAEA8B,iCACA3B,QAAAE;AA/3BA,AAg4BA0B,SAAAF,kCAIA,mBAAAxa,SAAAA,OAAA,IACAA,OAAA,8BAAA,WAAA,MAAAya,mCACA,mBAAAtJ,SAAAA,OAAA,QACAA,OAAA,QAAAsJ,gCACA,mBAAArkC,QACAA,KAAA,WAAAqkC,iCAGAD,qCACA5tC,KAAAwJ,MCl7BA4pB,OAAA,gBAAA,4BAAA,SAAA2a,YACA,YAKA,OAAA/9B,QAAAk8B,SAAA6B,WAAA7B,UCNA9Y,OAAA,yBAAA,UAAA,SAAA/Y,GACA,YAWA,SAAA2zB,kBAAAlyB,OAAAmyB,WAmBA,QAAAC,kBAAA73B,KAAA83B,UAEA,GAAAC,QAAA;AAGA,AFEA,IEFA/zB,EAAA+nB,SAAA/rB,OAAAA,KAAA7V,QAAA,EACA,KAAA,IAAAm6B,WAAA,kDAEA,KAAAtgB,EAAAjM,cAAA+/B,YAAA9zB,EAAAva,WAAAquC,SAAAviC,MACA,KAAA,IAAA+uB,WAAA,mEAQA,OANAyT,OAAAH,WAAA5zB,EAAAva,WAAAmuC,WAAAA,UAAAE,UAAAC,MAEAA,QACAC,WAAAh4B,MAAA83B,UAGA3kC,KAUA,QAAA8kC,aAAAC,cAEA,GAAAJ,SAGA,KAAAE,YAAA,IAAAh0B,EAAAxL,KAAAw/B,YACA,KAAA,IAAAj+B,OAAA,yBAaA,IAVAiK,EAAA+nB,SAAAmM,eAAAA,aAAA/tC,OAAA,EACA2tC,SAAAE,WAAAE,cACA,IAAAl0B,EAAAxL,KAAAw/B,cAGAE,aAAAl0B,EAAAwhB,KAAAwS,YAAA,GACAF,SAAAE,WAAAE;AFlCA,CEsCAJ,SACA,KAAA,IAAA/9B,OAAA,sCAGA,OAAA+9B,UAQA,QAAAK,kBAEA,MADAH,eACA7kC,KA7EA,GAAA6kC,cAoFA,OAnFAvyB,QAAAA,WA+EAA,OAAAoyB,iBAAAA,iBACApyB,OAAAwyB,YAAAA,YACAxyB,OAAA0yB,eAAAA,eAEA1yB,OAGA,MAAAkyB,oBCzGA5a,OAAA,kBACA,UACA,SAAA/Y,GACA,YAsBA,SAAAo0B,WAAAC,IAAAP,SAAA3J,QAsBA,QAAA5kB,UAAA+uB,QACA,GAAAC,UAAAC,IAEA,KAAAV,SAqBA,KAAA,IAAA/9B,OAAA,eAAAiG,KAAA,aApBA,KAAAgE,EAAAva,WAAAquC,SAAAQ,WAAAG,gBAiBA,KAAA,IAAA1+B,OAAA,6BAAAu+B,OAAA,WAAAt4B,KAAA,aAMA,OArBAw4B,MAAAE,OAAA/uC,KAAAsP,UAAA;AAGAs/B,AHZA,UGYAT,SAAAQ,SAAAG,iBAAAz/B,MAAAnB,QAAA2gC,MAEAG,UACAJ,SAAAI,QAAAJ,WAIAK,YAEAP,IAAA5+B,QAAAT,MAAAq/B,KAAAC,OAAAC,UAAA5mC,OAAA6mC,OASAD,SAhDA,GAAAM,gBAAA70B,EAAA6f,SAAAsK,WAAAtK,UACA+U,cAAAC,eAAAD,YAAAP,KAAAA,IAAA5+B,SACA5B,QAAAghC,eAAAC,QAAAhB,SAAAO,IACAI,gBAAAz0B,EAAAva,WAAAovC,eAAAJ,iBAAAI,eAAAJ,gBAAAz0B,EAAAlJ,KACA69B,QAAA30B,EAAAva,WAAAovC,eAAAF,SAAAE,eAAAF,QAAA,KACA34B,KAAA64B,eAAA74B,IA8CA,OA5CA64B,gBAAAE,WACAN,gBAAA,MA2CAlvB,SAxEA,GAAAsa,WACA7jB,KAAA,WACA44B,YAAA,GAGAF,UAAA7rC,KAsEA,OAAAurC;AHnCA,GGsCA,WCtFA,QAAAY,WAAAxiC,IACA,GAAAyiC,SAAA,CACA,OAAA,YACA,GAAAA,OAAA,KAAA,IAAAl/B,OAAA,+BACAk/B,SAAA,EACAziC,GAAAwC,MAAAkgC,KAAAjgC,YApBA,GAGAigC,MAAAC,eAHAx+B,QAKAu+B,MAAA/lC,KACA,MAAA+lC,OACAC,eAAAD,KAAAv+B,OAGAA,MAAAtB,WAAA,WAEA,MADA6/B,MAAAv+B,MAAAw+B,eACAx+B,MAcA,IAAAy+B,OAAA,SAAAC,IAAAC,UACA,GAAAD,IAAApR,QACA,MAAAoR,KAAApR,QAAAqR,SAEA,KAAA,GAAA9pC,GAAA,EAAAA,EAAA6pC,IAAAlvC,OAAAqF,GAAA,EACA8pC,SAAAD,IAAA7pC,GAAAA,EAAA6pC,MAIAE,KAAA,SAAAF,IAAAC,UACA,GAAAD,IAAAlgC,IACA,MAAAkgC,KAAAlgC,IAAAmgC,SAEA,IAAAE,WAIA,OAHAJ,OAAAC,IAAA,SAAAtiC,EAAAvH,EAAA7H,GACA6xC,QAAAxmC,KAAAsmC,SAAAviC,EAAAvH,EAAA7H,MAEA6xC,SAGAC,QAAA,SAAAJ,IAAAC,SAAAI,MACA,MAAAL,KAAAlN,OACAkN,IAAAlN,OAAAmN,SAAAI,OAEAN,MAAAC,IAAA,SAAAtiC,EAAAvH,EAAA7H;AACA+xC,AJaA,KIbAJ,SAAAI,KAAA3iC,EAAAvH,EAAA7H,KAEA+xC,OAGAC,MAAA,SAAAC,KACA,GAAAxjC,OAAAovB,KACA,MAAApvB,QAAAovB,KAAAoU,IAEA,IAAApU,QACA,KAAA,GAAA31B,KAAA+pC,KACAA,IAAAtjC,eAAAzG,IACA21B,KAAAxyB,KAAAnD,EAGA,OAAA21B,MAMA,oBAAAkK,UAAAA,QAAA,UAgBA/0B,MAAA80B,SAAAC,QAAAD,SACA,mBAAAI,cACAl1B,MAAAk1B,aAAA,SAAAr5B,IAEAq5B,aAAAr5B,KAIAmE,MAAAk1B,aAAAl1B,MAAA80B,UAvBA,kBAAAI,eACAl1B,MAAA80B,SAAA,SAAAj5B,IAEAq5B,aAAAr5B,KAEAmE,MAAAk1B,aAAAl1B,MAAA80B,WAGA90B,MAAA80B,SAAA,SAAAj5B,IACAlF,WAAAkF,GAAA,IAEAmE,MAAAk1B,aAAAl1B,MAAA80B,UAgBA90B,MAAA3S,KAAA,SAAAqxC,IAAAC,SAAAtI,UAEA,GADAA,SAAAA,UAAA,cACAqI,IAAAlvC,OACA,MAAA6mC;AAEA,AJxCA,GIwCA6I,WAAA,CACAT,OAAAC,IAAA,SAAAtiC,GACAuiC,SAAAviC,EAAAiiC,UAAA,SAAAc,KACAA,KACA9I,SAAA8I,KACA9I,SAAA,eAGA6I,WAAA,EACAA,WAAAR,IAAAlvC,QACA6mC,SAAA,aAMAr2B,MAAAstB,QAAAttB,MAAA3S,KAEA2S,MAAAo/B,WAAA,SAAAV,IAAAC,SAAAtI,UAEA,GADAA,SAAAA,UAAA,cACAqI,IAAAlvC,OACA,MAAA6mC,WAEA,IAAA6I,WAAA,EACAG,QAAA,WACAV,SAAAD,IAAAQ,WAAA,SAAAC,KACAA,KACA9I,SAAA8I,KACA9I,SAAA,eAGA6I,WAAA,EACAA,WAAAR,IAAAlvC,OACA6mC,SAAA,MAGAgJ,aAKAA,YAEAr/B,MAAAs/B,cAAAt/B,MAAAo/B,WAEAp/B,MAAAu/B,UAAA,SAAAb,IAAAc,MAAAb,SAAAtI,UACA,GAAAx6B,IAAA4jC,WAAAD,MACA3jC,IAAAwC,MAAA,MAAAqgC,IAAAC,SAAAtI,YAEAr2B,MAAA0/B,aAAA1/B,MAAAu/B;AAEA,AJ1FA,GI0FAE,YAAA,SAAAD,OAEA,MAAA,UAAAd,IAAAC,SAAAtI,UAEA,GADAA,SAAAA,UAAA,cACAqI,IAAAlvC,QAAA,GAAAgwC,MACA,MAAAnJ,WAEA,IAAA6I,WAAA,EACAS,QAAA,EACAC,QAAA,GAEA,QAAAC,aACA,GAAAX,WAAAR,IAAAlvC,OACA,MAAA6mC,WAGA,MAAAmJ,MAAAI,SAAAD,QAAAjB,IAAAlvC,QACAmwC,SAAA,EACAC,SAAA,EACAjB,SAAAD,IAAAiB,QAAA,GAAA,SAAAR,KACAA,KACA9I,SAAA8I,KACA9I,SAAA,eAGA6I,WAAA,EACAU,SAAA,EACAV,WAAAR,IAAAlvC,OACA6mC,WAGAwJ,oBAUAC,WAAA,SAAAjkC,IACA,MAAA,YACA,GAAAgiC,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UACA,OAAAzC,IAAAwC,MAAA,MAAA2B,MAAA3S,MAAA2J,OAAA6mC,SAGAkC,gBAAA,SAAAP,MAAA3jC,IACA,MAAA,YACA,GAAAgiC,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP;AACA,AJ3IA,MI2IAzC,IAAAwC,MAAA,MAAAohC,WAAAD,QAAAxoC,OAAA6mC,SAGAmC,SAAA,SAAAnkC,IACA,MAAA,YACA,GAAAgiC,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UACA,OAAAzC,IAAAwC,MAAA,MAAA2B,MAAAo/B,YAAApoC,OAAA6mC,SAKAoC,UAAA,SAAAC,OAAAxB,IAAAC,SAAAtI,UACA,GAAAwI,WACAH,KAAAE,KAAAF,IAAA,SAAAtiC,EAAAvH,GACA,OAAAwa,MAAAxa,EAAAxD,MAAA+K,KAEA8jC,OAAAxB,IAAA,SAAAtiC,EAAAi6B,UACAsI,SAAAviC,EAAA/K,MAAA,SAAA8tC,IAAAjjC,GACA2iC,QAAAziC,EAAAiT,OAAAnT,EACAm6B,SAAA8I,QAEA,SAAAA,KACA9I,SAAA8I,IAAAN,WAGA7+B,OAAAxB,IAAAshC,WAAAG,WACAjgC,MAAAmgC,UAAAH,SAAAC,WACAjgC,MAAAogC,SAAA,SAAA1B,IAAAc,MAAAb,SAAAtI,UACA,MAAAgK,WAAAb,OAAAd,IAAAC,SAAAtI,UAGA,IAAAgK,WAAA,SAAAb,OACA,MAAAO,iBAAAP,MAAAS;AJ1KA,CI+KAjgC,OAAAwxB,OAAA,SAAAkN,IAAAK,KAAAJ,SAAAtI,UACAr2B,MAAAo/B,WAAAV,IAAA,SAAAtiC,EAAAi6B,UACAsI,SAAAI,KAAA3iC,EAAA,SAAA+iC,IAAAjjC,GACA6iC,KAAA7iC,EACAm6B,SAAA8I,QAEA,SAAAA,KACA9I,SAAA8I,IAAAJ,SAIA/+B,MAAAuyB,OAAAvyB,MAAAwxB,OAEAxxB,MAAAoyB,MAAApyB,MAAAwxB,OAEAxxB,MAAAyxB,YAAA,SAAAiN,IAAAK,KAAAJ,SAAAtI,UACA,GAAAiK,UAAA1B,KAAAF,IAAA,SAAAtiC,GACA,MAAAA,KACAsY,SACA1U,OAAAwxB,OAAA8O,SAAAvB,KAAAJ,SAAAtI,WAGAr2B,MAAAqyB,MAAAryB,MAAAyxB,WAEA,IAAA8O,SAAA,SAAAL,OAAAxB,IAAAC,SAAAtI,UACA,GAAAwI,WACAH,KAAAE,KAAAF,IAAA,SAAAtiC,EAAAvH,GACA,OAAAwa,MAAAxa,EAAAxD,MAAA+K,KAEA8jC,OAAAxB,IAAA,SAAAtiC,EAAAi6B,UACAsI,SAAAviC,EAAA/K,MAAA,SAAA6K,GACAA,GACA2iC,QAAAxmC,KAAA+D,GAEAi6B,cAEA,SAAA8I,KACA9I,SAAAuI,KAAAC,QAAApgC,KAAA,SAAAzR,EAAAC;AACA,AJpNA,MIoNAD,GAAAqiB,MAAApiB,EAAAoiB,QACA,SAAAjT,GACA,MAAAA,GAAA/K,WAIA2O,OAAA9Q,OAAA4wC,WAAAS,SACAvgC,MAAAwgC,aAAAR,SAAAO,SAEAvgC,MAAAoH,OAAApH,MAAA9Q,OACA8Q,MAAAygC,aAAAzgC,MAAAwgC,YAEA,IAAAE,SAAA,SAAAR,OAAAxB,IAAAC,SAAAtI,UACA,GAAAwI,WACAH,KAAAE,KAAAF,IAAA,SAAAtiC,EAAAvH,GACA,OAAAwa,MAAAxa,EAAAxD,MAAA+K,KAEA8jC,OAAAxB,IAAA,SAAAtiC,EAAAi6B,UACAsI,SAAAviC,EAAA/K,MAAA,SAAA6K,GACAA,GACA2iC,QAAAxmC,KAAA+D,GAEAi6B,cAEA,SAAA8I,KACA9I,SAAAuI,KAAAC,QAAApgC,KAAA,SAAAzR,EAAAC,GACA,MAAAD,GAAAqiB,MAAApiB,EAAAoiB,QACA,SAAAjT,GACA,MAAAA,GAAA/K,WAIA2O,OAAA6B,OAAAi+B,WAAAY,SACA1gC,MAAA2gC,aAAAX,SAAAU,QAEA,IAAAE,SAAA,SAAAV,OAAAxB,IAAAC,SAAAkC,eACAX,OAAAxB,IAAA,SAAAtiC,EAAAi6B;AACAsI,AJxPA,SIwPAviC,EAAA,SAAAyO,QACAA,QACAg2B,cAAAzkC,GACAykC,cAAA,cAGAxK,cAGA,SAAA8I,KACA0B,kBAGA7gC,OAAAkyB,OAAA4N,WAAAc,SACA5gC,MAAA8gC,aAAAd,SAAAY,SAEA5gC,MAAA2xB,KAAA,SAAA+M,IAAAC,SAAAkC,eACA7gC,MAAA3S,KAAAqxC,IAAA,SAAAtiC,EAAAi6B,UACAsI,SAAAviC,EAAA,SAAAF,GACAA,IACA2kC,eAAA,GACAA,cAAA,cAEAxK,cAEA,SAAA8I,KACA0B,eAAA,MAIA7gC,MAAAiyB,IAAAjyB,MAAA2xB,KAEA3xB,MAAAmwB,MAAA,SAAAuO,IAAAC,SAAAkC,eACA7gC,MAAA3S,KAAAqxC,IAAA,SAAAtiC,EAAAi6B,UACAsI,SAAAviC,EAAA,SAAAF,GACAA,IACA2kC,eAAA,GACAA,cAAA,cAEAxK,cAEA,SAAA8I,KACA0B,eAAA,MAIA7gC,MAAAgyB,IAAAhyB,MAAAmwB,MAEAnwB,MAAA+uB,OAAA,SAAA2P,IAAAC,SAAAtI;AACAr2B,AJxSA,MIwSAxB,IAAAkgC,IAAA,SAAAtiC,EAAAi6B,UACAsI,SAAAviC,EAAA,SAAA+iC,IAAA4B,UACA5B,IACA9I,SAAA8I,KAGA9I,SAAA,MAAAhlC,MAAA+K,EAAA2kC,SAAAA,cAGA,SAAA5B,IAAAN,SACA,GAAAM,IACA,MAAA9I,UAAA8I,IAGA,IAAAtjC,IAAA,SAAA6d,KAAAsnB,OACA,GAAAh0C,GAAA0sB,KAAAqnB,SAAA9zC,EAAA+zC,MAAAD,QACA,OAAA9zC,GAAAD,EAAA,GAAAA,EAAAC,EAAA,EAAA,EAEAopC,UAAA,KAAAuI,KAAAC,QAAApgC,KAAA5C,IAAA,SAAAO,GACA,MAAAA,GAAA/K,YAMA2O,MAAAihC,KAAA,SAAAC,MAAA7K,UACAA,SAAAA,UAAA,YACA,IAAAxL,MAAAmU,MAAAkC,MACA,KAAArW,KAAAr7B,OACA,MAAA6mC,UAAA,KAGA,IAAAwI,YAEAsC,aACAC,YAAA,SAAAvlC,IACAslC,UAAA9rC,QAAAwG,KAEAwlC,eAAA,SAAAxlC,IACA,IAAA,GAAAhH,GAAA,EAAAA,EAAAssC,UAAA3xC,OAAAqF,GAAA,EACA,GAAAssC,UAAAtsC,KAAAgH,GAEA,WADAslC,WAAAhrC,OAAAtB,EAAA,IAKAysC,aAAA;AACA7C,AJtVA,MIsVA0C,UAAAjvC,MAAA,GAAA,SAAA2J,IACAA,OAIAulC,aAAA,WACApC,MAAAH,SAAArvC,SAAAq7B,KAAAr7B,SACA6mC,SAAA,KAAAwI,SACAxI,SAAA,gBAIAoI,MAAA5T,KAAA,SAAA31B,GACA,GAAAqsC,MAAAL,MAAAhsC,YAAA0K,WAAAshC,MAAAhsC,IAAAgsC,MAAAhsC,GACAssC,aAAA,SAAArC,KACA,GAAAtB,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EAIA,IAHAu/B,KAAAruC,QAAA,IACAquC,KAAAA,KAAA,IAEAsB,IAAA,CACA,GAAAsC,eACAhD,OAAAO,MAAAH,SAAA,SAAA6C,MACAD,YAAAC,MAAA7C,QAAA6C,QAEAD,YAAAvsC,GAAA2oC,KACAxH,SAAA8I,IAAAsC,aAEApL,SAAA,iBAGAwI,SAAA3pC,GAAA2oC,KACA79B,MAAAk1B,aAAAoM,eAGAK,SAAAJ,KAAArvC,MAAA,EAAAa,KAAA6uC,IAAAL,KAAA/xC,OAAA,QACAqN,MAAA,WACA,MAAAiiC,SAAA6C,SAAA,SAAA30C,EAAAoP;AACA,AJ1XA,MI0XApP,IAAA6xC,QAAAljC,eAAAS,KACA,KAAAyiC,QAAAljC,eAAAzG,GAEA,IAAA2H,QACA0kC,KAAAA,KAAA/xC,OAAA,GAAAgyC,aAAA3C,aAEA,CACA,GAAAgD,UAAA,WACAhlC,UACAwkC,eAAAQ,UACAN,KAAAA,KAAA/xC,OAAA,GAAAgyC,aAAA3C,UAGAuC,aAAAS,cAKA7hC,MAAA8hC,UAAA,SAAAZ,MAAA7K,UAEA,GADAA,SAAAA,UAAA,aACA6K,MAAAjkC,cAAA1B,MAAA,CACA,GAAA4jC,KAAA,GAAA//B,OAAA,4DACA,OAAAi3B,UAAA8I,KAEA,IAAA+B,MAAA1xC,OACA,MAAA6mC,WAEA,IAAA0L,cAAA,SAAApD,UACA,MAAA,UAAAQ,KACA,GAAAA,IACA9I,SAAAh4B,MAAA,KAAAC,WACA+3B,SAAA,iBAEA,CACA,GAAAwH,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,GACAuV,KAAA8qB,SAAA9qB;AACAA,AJ7ZA,KI8ZAgqB,KAAAxlC,KAAA0pC,aAAAluB,OAGAgqB,KAAAxlC,KAAAg+B,UAEAr2B,MAAAk1B,aAAA,WACAyJ,SAAAtgC,MAAA,KAAAw/B,UAKAkE,cAAA/hC,MAAA2+B,SAAAuC,UAGA,IAAAc,WAAA,SAAA9B,OAAAgB,MAAA7K,UAEA,GADAA,SAAAA,UAAA,aACA6K,MAAAjkC,cAAA1B,MACA2kC,OAAA1hC,IAAA0iC,MAAA,SAAArlC,GAAAw6B,UACAx6B,IACAA,GAAA,SAAAsjC,KACA,GAAAtB,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACAu/B,MAAAruC,QAAA,IACAquC,KAAAA,KAAA,IAEAxH,SAAArnC,KAAA,KAAAmwC,IAAAtB,SAGAxH,cAEA,CACA,GAAAwI,WACAqB,QAAA7yC,KAAA2xC,MAAAkC,OAAA,SAAAhsC,EAAAmhC,UACA6K,MAAAhsC,GAAA,SAAAiqC,KACA,GAAAtB,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACAu/B,MAAAruC,QAAA,IACAquC,KAAAA,KAAA,IAEAgB,QAAA3pC,GAAA2oC,KACAxH,SAAA8I,QAEA,SAAAA,KACA9I,SAAA8I,IAAAN;AJtcA,II2cA7+B,OAAAiiC,SAAA,SAAAf,MAAA7K,UACA2L,WAAAxjC,IAAAwB,MAAAxB,IAAAnR,KAAA2S,MAAA3S,MAAA6zC,MAAA7K,WAGAr2B,MAAAkiC,cAAA,SAAAhB,MAAA1B,MAAAnJ,UACA2L,WAAAxjC,IAAA6hC,UAAAb,OAAAnyC,KAAAoyC,WAAAD,QAAA0B,MAAA7K,WAGAr2B,MAAAmiC,OAAA,SAAAjB,MAAA7K,UAEA,GADAA,SAAAA,UAAA,aACA6K,MAAAjkC,cAAA1B,MACAyE,MAAAmgC,UAAAe,MAAA,SAAArlC,GAAAw6B,UACAx6B,IACAA,GAAA,SAAAsjC,KACA,GAAAtB,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACAu/B,MAAAruC,QAAA,IACAquC,KAAAA,KAAA,IAEAxH,SAAArnC,KAAA,KAAAmwC,IAAAtB,SAGAxH,cAEA,CACA,GAAAwI,WACA7+B,OAAAo/B,WAAAJ,MAAAkC,OAAA,SAAAhsC,EAAAmhC,UACA6K,MAAAhsC,GAAA,SAAAiqC,KACA,GAAAtB,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACAu/B,MAAAruC,QAAA,IACAquC,KAAAA,KAAA;AAEAgB,AJzeA,QIyeA3pC,GAAA2oC,KACAxH,SAAA8I,QAEA,SAAAA,KACA9I,SAAA8I,IAAAN,aAKA7+B,MAAA2+B,SAAA,SAAAuC,OACA,GAAAkB,cAAA,SAAA/yB,OACA,GAAAxT,IAAA,WAIA,MAHAqlC,OAAA1xC,QACA0xC,MAAA7xB,OAAAhR,MAAA,KAAAC,WAEAzC,GAAAgY,OAKA,OAHAhY,IAAAgY,KAAA,WACA,MAAAxE,OAAA6xB,MAAA1xC,OAAA,EAAA4yC,aAAA/yB,MAAA,GAAA,MAEAxT,GAEA,OAAAumC,cAAA,IAGApiC,MAAA3B,MAAA,SAAAxC,IACA,GAAAgiC,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACA,OAAA,YACA,MAAAzC,IAAAwC,MACA,KAAAw/B,KAAA7mC,OAAAuE,MAAAZ,UAAAzI,MAAAlD,KAAAsP,cAKA,IAAA+jC,SAAA,SAAAnC,OAAAxB,IAAA7iC,GAAAw6B,UACA,GAAAt6B,KACAmkC,QAAAxB,IAAA,SAAAtiC,EAAA1J,IACAmJ,GAAAO,EAAA,SAAA+iC,IAAA9iC,GACAN,EAAAA,EAAA/E,OAAAqF,OACA3J,GAAAysC,QAEA,SAAAA,KACA9I,SAAA8I,IAAApjC,KAGAiE,OAAAhJ,OAAA8oC,WAAAuC;AACAriC,AJthBA,MIshBAsiC,aAAAtC,SAAAqC,SAEAriC,MAAAuiC,OAAA,SAAAr0C,KAAAywC,SAAAtI,UACAnoC,OACAywC,SAAA,SAAAQ,KACA,MAAAA,KACA9I,SAAA8I,SAEAn/B,OAAAuiC,OAAAr0C,KAAAywC,SAAAtI,YAIAA,YAIAr2B,MAAAwiC,SAAA,SAAA7D,SAAAzwC,KAAAmoC,UACAsI,SAAA,SAAAQ,KACA,MAAAA,KACA9I,SAAA8I,UAEAjxC,OACA8R,MAAAwiC,SAAA7D,SAAAzwC,KAAAmoC,UAGAA,eAKAr2B,MAAAyiC,MAAA,SAAAv0C,KAAAywC,SAAAtI,UACAnoC,OASAmoC,WARAsI,SAAA,SAAAQ,KACA,MAAAA,KACA9I,SAAA8I,SAEAn/B,OAAAyiC,MAAAv0C,KAAAywC,SAAAtI,aAQAr2B,MAAA0iC,QAAA,SAAA/D,SAAAzwC,KAAAmoC,UACAsI,SAAA,SAAAQ,KACA,MAAAA,KACA9I,SAAA8I,UAEAjxC,OAIAmoC,WAHAr2B,MAAA0iC,QAAA/D,SAAAzwC,KAAAmoC;AJvkBA,II+kBAr2B,MAAAlH,MAAA,SAAA6pC,OAAAC,aAIA,QAAAC,SAAAnpC,EAAArL,KAAAwxB,IAAAwW,UACAhoC,KAAA4O,cAAA1B,QACAlN,MAAAA,OAEAowC,MAAApwC,KAAA,SAAAkzC,MACA,GAAAuB,OACAz0C,KAAAkzC,KACAlL,SAAA,kBAAAA,UAAAA,SAAA,KAGAxW,KACAnmB,EAAAwnC,MAAA7rC,QAAAytC,MAEAppC,EAAAwnC,MAAA7oC,KAAAyqC,MAGAppC,EAAAqpC,WAAArpC,EAAAwnC,MAAA1xC,SAAAozC,aACAlpC,EAAAqpC,YAEA/iC,MAAAk1B,aAAAx7B,EAAAq7B,WAtBAxS,SAAAqgB,cACAA,YAAA,EAyBA,IAAAI,SAAA,EACAtpC,GACAwnC,SACA0B,YAAAA,YACAG,UAAA,KACAlpC,MAAA,KACAopC,MAAA,KACA5qC,KAAA,SAAAhK,KAAAgoC,UACAwM,QAAAnpC,EAAArL,MAAA,EAAAgoC,WAEAhhC,QAAA,SAAAhH,KAAAgoC,UACAwM,QAAAnpC,EAAArL,MAAA,EAAAgoC,WAEAtB,QAAA,WACA,GAAAiO,QAAAtpC,EAAAkpC,aAAAlpC,EAAAwnC,MAAA1xC,OAAA,CACA,GAAA+xC,MAAA7nC,EAAAwnC,MAAAtrC;AACA8D,AJznBA,EIynBAG,OAAA,IAAAH,EAAAwnC,MAAA1xC,QACAkK,EAAAG,QAEAmpC,SAAA,CACA,IAAAnvB,MAAA,WACAmvB,SAAA,EACAzB,KAAAlL,UACAkL,KAAAlL,SAAAh4B,MAAAkjC,KAAAjjC,WAEA5E,EAAAupC,OAAAvpC,EAAAwnC,MAAA1xC,OAAAwzC,UAAA,GACAtpC,EAAAupC,QAEAvpC,EAAAq7B,WAEAriC,GAAA2rC,UAAAxqB,KACA8uB,QAAApB,KAAAlzC,KAAAqE,MAGAlD,OAAA,WACA,MAAAkK,GAAAwnC,MAAA1xC,QAEAowC,QAAA,WACA,MAAAoD,UAGA,OAAAtpC,IAGAsG,MAAAkjC,MAAA,SAAAP,OAAAQ,SACA,GAAAC,UAAA,EACAlC,SAEAgC,OACAhC,MAAAA,MACAiC,QAAAA,QACAJ,UAAA,KACAlpC,MAAA,KACAopC,MAAA,KACA5qC,KAAA,SAAAhK,KAAAgoC,UACAhoC,KAAA4O,cAAA1B,QACAlN,MAAAA,OAEAowC,MAAApwC,KAAA,SAAAkzC,MACAL,MAAA7oC,MACAhK,KAAAkzC,KACAlL,SAAA,kBAAAA,UAAAA,SAAA,OAEA6M,MAAAH,WAAA7B,MAAA1xC,SAAA2zC,SACAD,MAAAH;AJxqBA,GI2qBA/iC,MAAAk1B,aAAAgO,MAAAnO,UAEAA,QAAA,QAAAA,WACA,IAAAqO,QAAA,CACA,GAAA,IAAAlC,MAAA1xC,OAEA,YADA0zC,MAAAD,OAAAC,MAAAD,QAIA,IAAAI,IAAA,gBAAAF,SACAjC,MAAA/qC,OAAA,EAAAgtC,SACAjC,MAAA/qC,OAAA,GAEAmtC,GAAA1E,KAAAyE,GAAA,SAAA9B,MACA,MAAAA,MAAAlzC,MAGA60C,OAAArpC,OAAAqpC,MAAArpC,QACAupC,SAAA,EACAT,OAAAW,GAAA,WACAF,SAAA,CAEA,IAAAvF,MAAAv/B,SACAmgC,OAAA4E,GAAA,SAAAh1C,MACAA,KAAAgoC,UACAhoC,KAAAgoC,SAAAh4B,MAAA,KAAAw/B,QAIA9I,cAGAvlC,OAAA,WACA,MAAA0xC,OAAA1xC,QAEAowC,QAAA,WACA,MAAAwD,UAGA,OAAAF,OAGA,IAAAK,aAAA,SAAAl+B,MACA,MAAA,UAAAxJ,IACA,GAAAgiC,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACAzC,IAAAwC,MAAA,KAAAw/B,KAAA7mC,QAAA,SAAAmoC,KACA,GAAAtB,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA;AACA,AJztBA,mBIytBAklC,WACArE,IACAqE,QAAAntC,OACAmtC,QAAAntC,MAAA8oC,KAGAqE,QAAAn+B,OACAo5B,MAAAZ,KAAA,SAAAzhC,GACAonC,QAAAn+B,MAAAjJ,WAOA4D,OAAAyjC,IAAAF,YAAA,OACAvjC,MAAA4P,IAAA2zB,YAAA,OAKAvjC,MAAAouB,QAAA,SAAAvyB,GAAA6nC,QACA,GAAA3E,SACA4E,SACAD,QAAAA,QAAA,SAAAtnC,GACA,MAAAA,GAEA,IAAAwnC,UAAA,WACA,GAAA/F,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,WACA+3B,SAAAwH,KAAApuC,MACAo0C,IAAAH,OAAArlC,MAAA,KAAAw/B,KACAgG,OAAA9E,MACA1I,SAAAh4B,MAAA,KAAA0gC,KAAA8E,MAEAA,MAAAF,QACAA,OAAAE,KAAAxrC,KAAAg+B,WAGAsN,OAAAE,MAAAxN,UACAx6B,GAAAwC,MAAA,KAAAw/B,KAAA7mC,QAAA,WACA+nC,KAAA8E,KAAAvlC,SACA,IAAA5E,GAAAiqC,OAAAE,WACAF,QAAAE,IACA,KAAA,GAAAhvC,GAAA,EAAAM,EAAAuE,EAAAlK,OAAA2F,EAAAN,EAAAA,IACA6E,EAAA7E,GAAAwJ,MAAA,KAAAC;AJpwBA,CI2wBA,OAFAslC,UAAA7E,KAAAA,KACA6E,SAAAE,WAAAjoC,GACA+nC,UAGA5jC,MAAA+jC,UAAA,SAAAloC,IACA,MAAA,YACA,OAAAA,GAAAioC,YAAAjoC,IAAAwC,MAAA,KAAAC,aAIA0B,MAAAkvB,MAAA,SAAA8U,MAAArF,SAAAtI,UAEA,IAAA,GADA4N,YACApvC,EAAA,EAAAmvC,MAAAnvC,EAAAA,IACAovC,QAAA5rC,KAAAxD,EAEA,OAAAmL,OAAAxB,IAAAylC,QAAAtF,SAAAtI,WAGAr2B,MAAAkkC,YAAA,SAAAF,MAAArF,SAAAtI,UAEA,IAAA,GADA4N,YACApvC,EAAA,EAAAmvC,MAAAnvC,EAAAA,IACAovC,QAAA5rC,KAAAxD,EAEA,OAAAmL,OAAAmgC,UAAA8D,QAAAtF,SAAAtI,WAGAr2B,MAAA8sB,QAAA,WACA,GAAAqX,KAAA5oC,MAAAZ,UAAA+Z,QAAA1lB,KAAAsP,UACA,OAAA,YACA,GAAA8lC,MAAA5rC,KACAqlC,KAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,WACA+3B,SAAAwH,KAAApuC,KACAuQ,OAAAwxB,OAAA2S,IAAAtG,KAAA,SAAAwG,QAAAxoC,GAAAnJ;AACAmJ,AJ1yBA,GI0yBAwC,MAAA+lC,KAAAC,QAAArtC,QAAA,WACA,GAAAmoC,KAAA7gC,UAAA,GACAgmC,SAAA/oC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACA5L,IAAAysC,IAAAmF,eAGA,SAAAnF,IAAAN,SACAxI,SAAAh4B,MAAA+lC,MAAAjF,KAAAnoC,OAAA6nC,aAKA,IAAA0F,YAAA,SAAArE,OAAAiE,KACA,GAAAK,IAAA,WACA,GAAAJ,MAAA5rC,KACAqlC,KAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,WACA+3B,SAAAwH,KAAApuC,KACA,OAAAywC,QAAAiE,IAAA,SAAAtoC,GAAAnJ,IACAmJ,GAAAwC,MAAA+lC,KAAAvG,KAAA7mC,QAAAtE,OAEA2jC,UAEA,IAAA/3B,UAAA9O,OAAA,EAAA,CACA,GAAAquC,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACA,OAAAkmC,IAAAnmC,MAAA7F,KAAAqlC,MAGA,MAAA2G,IAGAxkC,OAAAykC,UAAA3E,WAAAyE,YACAvkC,MAAA0kC,gBAAA1E,SAAAuE,YAEAvkC,MAAA2kC,QAAA,SAAA9oC,GAAAw6B,UACA,QAAAxiB,MAAAsrB,KACA,GAAAA,IAAA;AACA,AJ70BA,GI60BA9I,SACA,MAAAA,UAAA8I,IAEA,MAAAA,KAEAtjC,GAAAgY,MAEAA,QAIA,mBAAAuO,SAAAA,OAAAC,IACAD,OAAA,WAAA,WACA,MAAApiB,SAIA,mBAAAuzB,SAAAA,OAAAD,QACAC,OAAAD,QAAAtzB,MAIAu+B,KAAAv+B,MAAAA,SCl6BAoiB,OAAA,cAAA,WAGA,GAAAwiB,OAAA,iEAAAt3C,MAAA,IA+BAqX,KAAA,SAAAkgC,IAAAC,OACA,GAAAjwC,GAAAkH,EAAAgpC,MAAAH,MAAAjgC,OAIA,IAHAmgC,MAAAA,OAAAC,MAAAv1C,OAGAq1C,IACA,IAAAhwC,EAAA,EAAAgwC,IAAAhwC,EAAAA,IACA8P,KAAA9P,GAAAkwC,MAAA,EAAAhyC,KAAA6R,SAAAkgC,WAYA,KALAngC,KAAA,GAAAA,KAAA,IAAAA,KAAA,IAAAA,KAAA,IAAA,IACAA,KAAA,IAAA,IAIA9P,EAAA,EAAA,GAAAA,EAAAA,IACA8P,KAAA9P,KACAkH,EAAA,EAAA,GAAAhJ,KAAA6R,SACAD,KAAA9P,GAAAkwC,MAAA,KAAAlwC,EAAA,EAAAkH,EAAA,EAAAA,GAKA,OAAA4I,MAAApG,KAAA,IAGA,OAAAoG,QCxBAyd,OAAA,mBACA,SACA,QACA,YACA,SAAA/Y,EAAArJ,MAAA2E;AACA,ANmBA,YMJA,SAAAqgC,sBAAAC,SAAA/nC,QAAA2gC,KAAAhiB,SAEA,GAAAqpB,WAAA77B,EAAA7K,IAAAymC,SAAA,SAAAz7B,SAGA,MAAA,UAAA9W,IA2BA,QAAAsG,QAEAtG,GAAA,MAAAmpB,SAAA,IAOA,QAAAspB,WACAzyC,GAAA,MAAAmpB,SAAA,IAOA,QAAAupB,cAEA1yC,GAAA,GAAA0M,OAAA,gBAAAyc,SAAA,EAAAwpB,WAAA,IA5CA,GAAAx6B,QACAy6B,WAAA,EACAC,MAAAl8B,EAAA9J,MAAAs+B,MACAxtC,OACA2I,KAAA,WAGA,MAFAssC,YAAA,EAEAtsC,MAEAmsC,QAAA,WACAG,WAAA,EAEAH,WAEAC,WAAA,WACAE,WAAA,EAEAF,cA+BAG,OAAAlwC,QAAAhF,OACAwa,OAAArB,QAAAnL,MAAAnB,QAAAqoC,OAEAD,YACAz6B,UAAA,EAEAs6B,UAEAnsC,UAMAgH,OAAAmiC,OAAA+C,UAAA,SAAA/F,IAAAN,SACA,GAAA2G,WAAAn8B,EAAAolB,MAAAoQ,QAAA;AACA,ANlEA,KMkEAx1B,EAAA7N,QAAAgqC,WAAA,IACA3pB,YAUA,QAAA4pB,eAAAC,YACA,OAAAr8B,EAAA+nB,SAAAsU,aAAAr8B,EAAAynB,QAAA4U,eAGAr8B,EAAAq8B,WAAAp4C,MAAA,QAAAu/B,UAAAwC,OAAAh+B,QAQA,QAAAs0C,SAAAC,WACA,MAAAA,WAAApqC,QAAA,KAAA,GACAoqC,UAAA9wC,OAAA,EAAA8wC,UAAApqC,QAAA,MAEAoqC,UAQA,QAAAC,cAAAD,WACA,MAAAA,WAAApqC,QAAA,KAAA,GACAoqC,UAAA9wC,OAAA8wC,UAAApqC,QAAA,KAAA,GAEAsqC,SAOA,QAAAC,oBACA,OACAlvB,UACAmvB,WACAjvB,UAUA,QAAAknB,YAAAnzB,OAAAm7B,QAEA,GAAAC,YAGAC,iBAQAC,YAAA,SAAAR,UAAA10C,MACA,GAAAmU,MAAAsgC,QAAAC,WACAS,GAAAR,aAAAD,UAKA,OAHA10C,MAAAA,MAAA;AACAi1C,AN/IA,cM+IAE,IAAAF,cAAAE,QACAF,cAAAE,IAAAhhC,MAAA8gC,cAAAE,IAAAhhC,OAAA0gC,mBACAI,cAAAE,IAAAhhC,MAAAnU,OAMAo1C,UAcAh4B,GAAA,SAAAo3B,WAAAl8B,SAMA,MALAH,GAAAva,WAAA0a,UACAH,EAAAikB,QAAAmY,cAAAC,YAAA,SAAAE,WACAQ,YAAAR,WAAAvtC,KAAAmR,WAGAhR,MAYAuG,IAAA,SAAA2mC,YAmBA,MAjBAr8B,GAAAikB,QAAAmY,cAAAC,YAAA,SAAAE,WAEA,GAAAvgC,MAAAsgC,QAAAC,WACAS,GAAAR,aAAAD,UAEAS,MAAAhhC,KAEA8gC,cAAAE,OAGAh9B,EAAAikB,QAAA6Y,cAAA,SAAAI,WAAAz8B,YACAy8B,WAAAlhC,OAAAghC,KAAAP,UAAAO,KAAAv8B,YACAy8B,WAAAlhC,MAAA0gC,wBAKAvtC,MAYAsG,QAAA,SAAA4mC;AAqCA,AN1PA,QM0PAc,cAAAvB,UAEA57B,EAAAikB,QAAA2X,SAAAe,QAAA,SAAAx8B,SACAA,QAAAnL,MAAA48B,KAAA4C,QAIAx0B,EAAAikB,QAAA2X,SAAAluB,MAAA,SAAAvN,SACAA,QAAAnL,MAAA48B,KAAA4C,QA5CA,GAAA5C,MAAAziC,KACAqlC,QAAA3rC,MAAAlD,KAAAsP,UAAA,EA+CA,OA7CA+K,GAAAikB,QAAAmY,cAAAC,YAAA,SAAAE,WACA,GAAAS,IAAAR,aAAAD,WACAvgC,KAAAsgC,QAAAC,WAGAa,eAAAp9B,EAAA88B,eACAj3C,OAAA,SAAAq3C,WAAAz8B,WACA,MAAAy8B,YAAAlhC,QAAAghC,KAAAP,UAAAO,KAAAv8B,aAEA0nB,OAAA,SAAAoC,IAAA2S,YAIA,MAHA3S,KAAA/c,OAAA+c,IAAA/c,OAAA7f,OAAAuvC,WAAAlhC,MAAAwR,QACA+c,IAAAoS,QAAApS,IAAAoS,QAAAhvC,OAAAuvC,WAAAlhC,MAAA2gC,SACApS,IAAA7c,MAAA6c,IAAA7c,MAAA/f,OAAAuvC,WAAAlhC,MAAA0R;AACA6c,ANrOA,KMsOAmS,mBAEAU,kBAGAA,eAAA5vB,OAAArnB,OACAw1C,qBAAAyB,eAAA5vB,OAAAokB,KAAA4C,KAAAx0B,EAAAklB,QAAAiY,aAAAC,iBAEAD,aAAAC,mBAuBAjuC,MAWAqe,OAAA,SAAA6uB,WAAAl8B,SAMA,MALAH,GAAAva,WAAA0a,UACAH,EAAAikB,QAAAmY,cAAAC,YAAA,SAAAE,WACAQ,YAAAR,UAAA,UAAAvtC,KAAAmR,WAGAhR,MAWAue,MAAA,SAAA2uB,WAAAl8B,SAMA,MALAH,GAAAva,WAAA0a,UACAH,EAAAikB,QAAAmY,cAAAC,YAAA,SAAAE,WACAQ,YAAAR,UAAA,SAAAvtC,KAAAmR,WAGAhR,MAqBA,OAjBAsS,QAAAA,WAEAm7B,SAEAC,WAAAp7B,OAAAzF,MAAAyF,OAAAtN,IAAAsN,OAAA47B,QAAA/hC,KAAA,IAGA0E,EAAAi9B,UAAA1Y,YAAAN,QAAA,SAAAqZ;AACA77B,ANlTA,OMkTA67B,QAAA,WACA,GAAA9I,SAAA3rC,MAAAlD,KAAAsP,UAIA,OAHA2nC,SAAAA,OAAAW,OACAX,OAAAW,MAAAvoC,MAAA4nC,QAAAC,WAAAS,QAAA3vC,OAAA6mC,OAEAyI,SAAAK,QAAAtoC,MAAAyM,OAAA+yB,SAIA/yB,OA9UA,GAAAg7B,UAAA,GAiVA,OAAA7H,cCtYA7b,OAAA,qBACA,SACA,eACA,wBACA,iBACA,mBACA,SAAA/Y,EAAA6xB,QAAA8B,iBAAAS,UAAAQ,YACA,YA2BA,SAAA4I,qBAAAtJ,aAAA/J,QAMA,GAMAsT,cAMAl4B,SAZAsvB,eAAA70B,EAAAmqB,YAAAtK,SAAAA,UAAA73B,QAkBA01C,UAMA5J,SAAA0J,oBAAAvJ,YAAAC,aA4KA,OAzKAuJ,cAAA7I,YAQArjC,KAAA,WACA,GAAAqgC,MAAAziC;AAEA,APLA,MOKAA,MAAAwuC,SAAA,SACA9L,QAAAt5B,UAGAgN,SAAA,QACAjN,KAAA,WACAs5B,KAAAgM,SAAA,SACAnoC,QAAA,YAWAooC,QAAA,WACA,GACAC,aADAlM,KAAAziC,IASA,OALA2uC,aADAlM,KAAA+L,SAAA,QACA/L,KAAA1mC,QAEA2mC,QAAAt5B,UAGAulC,YACAxlC,KAAA,WACA,MAAAiN,UAAA,WACAjN,KAAA,WACAs5B,KAAAn8B,QAAA,aACAioC,eAYA9nB,KAAA,WACA,GAAAgc,MAAAziC,IAEA,OAAAA,MAAAwuC,SAAA,QACA9L,QAAAt5B,UAGAgN,SAAA,QACAjN,KAAA,WACAs5B,KAAAgM,SAAA,QACAnoC,QAAA,aAWAvK,MAAA,WACA,GAAA0mC,MAAAziC,IACA,OAAAoW,UAAA,SACAjN,KAAA,WACAs5B,KAAAgM,SAAA,QAAA,GACAnoC,QAAA,aAYA+e,KAAA,SAAAgY,QAAAnC,SACA,GAAAuH,MAAAziC;AAEA,AP1FA,MO0FAA,MAAAwuC,SAAA,QAIAp4B,SAAA,OAAAinB,QAAAnC,SACA/xB,KAAA,SAAAi8B,UAEA,MADA3C,MAAAn8B,QAAA,OAAA+2B,QAAAnC,QAAAkK,UACA1C,QAAAt5B,QAAAg8B,YANA1C,QAAAr5B,UAiBAg0B,QAAA,SAAAxwB,KAAAmE,SACA,IAAAH,EAAA+nB,SAAA/rB,OAAAA,KAAA7V,QAAA,EACA,KAAA,IAAAm6B,WAAA,6BAGA,KAAAtgB,EAAAva,WAAA0a,SACA,KAAA,IAAAmgB,WAAA,0CAKA,OAFAnxB,MAAA8V,GAAA,WAAAjJ,KAAAmE,SAEAhR,MAOA4uC,UAAA,WACA,MAAAlJ,iBASA+I,SAAA,SAAA5hC,KAAAjP,OAKA,MAJAiT,GAAAgoB,YAAAj7B,SACAA,OAAA,GAEA2wC,OAAA1hC,QAAAjP,MACAoC,MAQAwuC,SAAA,SAAA3hC,MACA,QAAA0hC,OAAA1hC,SAKAyhC,aAAAx4B,GAAA,UAAA,SAAAunB,QAAAnC;AACAl7B,AP3JA,KO2JAsG,QAAA,WAAA+2B,QAAAnC,WAIA9kB,SAAA6uB,UAAAqJ,aAAA3J,UAAA93B,KAAA,iBAEAyhC,aA9NA,GAAA5d,WACAtL,QAAA,IAgOA,OAAAof,kBAAA6J,uBChJAzkB,OAAA,gBACA,SACA,SACA,eACA,mBACA,SAAA9mB,EAAA+N,EAAA6xB,QAAA+C,YACA,YAOA,IAAAoJ,kBAAA,IAYAC,eAAA,SAAA9T,QACA,GAAA56B,OAAAhB,QAAAopB,SAAAhuB,IAAAu0C,KAAAC,OAAAtqC,QAAAuqC,UACArxC,SAKAsxC,WAAA,WACA9uC,MAAAjC,WAAAgxC,UAAA3mB,UACA5qB,MAAAwxC,SAAA,EACAxxC,MAAAyxC,SAAA,GAMAC,UAAA,WACAniC,aAAA/M,OACAA,MAAA,KACAxC,MAAAwxC,SAAA,EACAxxC,MAAAyxC,SAAA,GAMAF,UAAA,WAEA,MAAA30C,MAAAu0C,MAAAv0C,QAEA+0C,SAAAzvC,QAKAivC,MAAAA,MAAA,GAAA;AACAnxC,ARhFA,MQgFA4xC,YAAA,EACA5xC,MAAAyxC,SAAA,EAMAE,QAAAjpC,QAAA,QAGA0oC,OAAAx4C,KAAAkO,QAAA6qC,cAGAnwC,SAAAxB,MAAAwxC,UACAxxC,MAAA4xC,YAAA,EACAN,iBAQAK,SAOA/nC,MAAA,WACA,GAAAw5B,YAgDA,OA7CA5hC,SAAA,GAAAsjC,SAAA,SAAAt5B,QAAAC,QACA23B,SAAA53B,QAAAA,QACA43B,SAAA33B,OAAAA,SAIAjK,QACA+J,KAAA,WACA/J,QAAA,KACAxB,MAAA4xC,YAAA,EAGA5xC,MAAAwxC,SACAF,aAOAK,QAAAjpC,QAAA,cAdAlH,SAgBA,WACAA,QAAA,KACAxB,MAAA4xC,YAAA,EAGAD,QAAAzvC,OAMAyvC,QAAAjpC,QAAA,cAUAipC,QAAAjpC,QAAA,QAAA06B,UAEAA,UAQA3lB,KAAA,WACA,GAAAo0B,MAWA,OARA7xC,OAAAwxC,UACAL,KAAA,GAIAO,YAGA90C,KAAAu0C,MAAAv0C,IACAwF,MAKApC,MAAAwxC,SAAA,EAEAhwC,SAWAqwC,MAAAzvC,KAAAqb,KAAArF,KAAAhW;AACAZ,ARtMA,QQsMA+J,KAAAsmC,OAAArwC,SAAAqwC,SANAzvC,KAAAsG,QAAA,QAEA6oC,aAMAnvC,OAOAE,MAAA,WAWA,MAVAE,SACA2uC,KAAA,EACAG,aAMAlvC,KAAAsG,QAAA,UAEAtG,MAOAF,KAAA,WASA,MARAwvC,aAMAtvC,KAAAsG,QAAA,QAEAtG,MAQAuoB,YAAA,SAAA1vB,OAUA,MATA2vB,UAAAjuB,KAAA6uC,IAAAn5B,SAAApX,MAAA,KAAAg2C,kBAOA7uC,KAAAsG,QAAA,cAAAkiB,UAEAxoB,MAOA0vC,YAAA,WACA,MAAAlnB,WAQAmnB,UAAA,SAAAtsC,IAUA,MATA2rC,QAAA3rC,GAOArD,KAAAsG,QAAA,YAAA0oC,QAEAhvC,MAOA4vC,UAAA,WACA,MAAAZ,SAQAa,WAAA,SAAAC,KAUA,MATAprC,SAAAorC,KAAA9vC,KAOAA,KAAAsG,QAAA,aAAAwpC,KAEA9vC,MAOA+vC,WAAA,WACA,MAAArrC,UASAsrC,OAAA,SAAAn3C,OAEA,MADA2B,KAAAD,KAAA6uC,IAAAn5B,SAAApX,MAAA,KAAA;AACAmH,ARlUA,MQyUAiwC,OAAA,WACA,MAAAz1C,MAOA01C,aAAA,WACA,MAAAnB,OAAA,GAWAh8B,GAAA,SAAAo9B,WACA,QAAAvyC,MAAAuyC,YAiCA,OA7BA1K,YAAA8J,SAGA/mB,SAAAqmB,iBACAnqC,QAAA6qC,QACAP,OAAA,KACApxC,MAAAwxC,SAAA,EACAH,WAAA,EACAF,KAAA,EAGAl+B,EAAAva,WAAA0kC,UACAuU,QAAAI,UAAA3U,QACAA,OAAA,MAIAnqB,EAAA6nB,SAAAsC,UACAuU,QAAAI,UAAA3U,OAAAgU,QACAO,QAAAhnB,YAAAyS,OAAAxS,UAAA1iB,UAAA,IACAypC,QAAAM,WAAA7U,OAAAt2B,SACA6qC,QAAAS,OAAAhV,OAAAxgC,KACAy0C,YAAAjU,OAAAiU,WAGAA,WACAM,QAAArvC,QAGAqvC,QAGA,OAAAT,kBChdAllB,OAAA,uBAAA,WACA,YAOA,SAAAwmB,qBAAAC,cACA,GAAAC,OAAAD,cAAA;AAEA,AToEA,OS9DAE,SAAA,WACA,GAAAC,cAAAF,KAEA,OADAA,OAAA,KACAE,cAQAC,SAAA,SAAAC,UAEA,MADAJ,OAAAI,SACA1wC,OAKA,MAAAowC,uBCnCAxmB,OAAA,0BACA,SACA,SACA,OACA,oBACA,eACA,eACA,qBACA,SAAA9mB,EAAA+N,EAAA6qB,GAAA4S,aAAAQ,eAAApM,QAAA0N,qBACA,YAOA,IAAA1f,WACAtL,QAAA,IACAoD,SAAA,IACAiO,SAAA,KA+CAka,cAKAvuC,KAAA,WACA,GAAAqgC,MAAAziC,KACAg7B,OAAAnqB,EAAA6f,SAAA1wB,KAAA4uC,YAAAle,UACAkgB,aAAAR,oBAAApV,OAAAsV,MAGA,OAAAtV,QAAA6V,SAMA7wC,KAAA8wC,iBAIA9wC,KAAAuvC,QAAAT,gBACAtmB,SAAAwS,OAAAxS;AACAymB,AVTA,WUSA,EACAD,OAAA,WACA,GAAAxnC,OAAAxH,KAAAwH,QACA0d,WACAorB,MAAAM,aAAAL,WAIAQ,YACAC,QAAAngC,EAAA7K,IAAAy8B,KAAAqO,cAAA,SAAAG,KAEA,MADAF,UAAAlxC,KAAAoxC,IAAA7xC,UAEAi+B,QAAA4T,IAAA5T,QACAnC,QAAA+V,IAAA/V,UAGAuH,MAAAqO,iBAEAR,QACAprB,QAAA,gBAAAorB,OAIAxtC,EAAA6b,MACAC,IAAAoc,OAAA6V,QACAn4C,KAAA,OACAuT,OAAA,EACAiZ,QAAAA,QACArvB,KAAAqR,KAAAo0B,UAAA0V,SACAxpC,OAAA,EACA9J,SAAA,OACAgmB,YAAA,mBACA0B,QAAA4V,OAAA5V,UAGA5kB,KAAA,SAAA4kC,UACAA,SAAAA,aAGAA,SAAAkL,OACAM,aAAAH,SAAArL,SAAAkL,OAIAz/B,EAAAikB,QAAAic,SAAA,SAAA3xC,QAAA8xC,KACA9xC,QAAAgK,QAAAg8B,SAAA+L,WAAA/L,SAAA+L,UAAAD;AVrDA,GUyDArgC,EAAAikB,QAAAsQ,SAAAgM,SAAA,SAAAH,KACAA,IAAA5T,QACAoF,KAAAn8B,QAAA,UAAA2qC,IAAA5T,QAAA4T,IAAA/V,SAEAuH,KAAAn8B,QAAA,UAAA,YAAA2qC,OAIAxO,KAAAn8B,QAAA,UAAA8+B,UAEA59B,MAAA4B,YAIA1I,KAAA,SAAA2wC,MAAAC,WAAAC,aACA,GAAA1zC,QACAyF,OAAA,UACAkuC,QAAA,eACA9sC,QAAA1E,KACAyxC,KAAAJ,MAAA5sB,OACA/rB,KAAA44C,YAAA,QACApW,QAAAqW,aAAA7V,GAAA,sBAIA4U,QACAM,aAAAH,SAAAH,OAIAz/B,EAAAikB,QAAAic,SAAA,SAAA3xC,SACAA,QAAAiK,OAAAxL,SAGA4kC,KAAAn8B,QAAA,QAAAzI,OAGA2J,MAAA4B,eAMApJ,KAAA0xC,cAAA7gC,EAAA4lB,SAAA,WACAgM,KAAA8M,QAAAl0B,QACA2f,OAAAvE,UAEAiM,QAAAt5B,WA1GAs5B,QAAAr5B,OAAA,GAAAzC,OAAA;AVGA,EU8GA8nC,QAAA,WACA,GACAU,SADA3M,KAAAziC,IAWA,OAPAovC,SADApvC,KAAAuvC,QACA,GAAA7M,SAAA,SAAAt5B,SACAq5B,KAAA8M,QAAAhpC,IAAA,YAAAuP,GAAA,WAAA1M,SAAAtJ,SAGA4iC,QAAAt5B,UAGAgmC,QAAAjmC,KAAA,WACAs5B,KAAA8M,QAAA9M,KAAAiP,cAAAjP,KAAAqO,cAAA,QAQArqB,KAAA,WACA,GACA0gB,SADA1E,KAAAziC,IAWA,OAPAmnC,SADAnnC,KAAAuvC,QACA,GAAA7M,SAAA,SAAAt5B,SACAq5B,KAAA8M,QAAAhpC,IAAA,YAAAuP,GAAA,WAAA1M,SAAAlJ,QAAAmb,SAGAqnB,QAAAr5B,OAAA,GAAAzC,OAAA,wDAUA7K,MAAA,WACA,GACAqzC,SADA3M,KAAAziC,IAWA,OAPAovC,SADApvC,KAAAuvC,QACA,GAAA7M,SAAA,SAAAt5B,SACAq5B,KAAA8M,QAAAhpC,IAAA,YAAAuP,GAAA,WAAA1M,SAAAtJ,SAGA4iC,QAAAr5B,OAAA,GAAAzC,OAAA;AV9JA,EU0KAye,KAAA,SAAAgY,QAAAnC,SAEA,GAAAmU,UACAhS,QAAAA,QACAnC,QAAAA,SAEA97B,QAAA,GAAAsjC,SAAA,SAAAt5B,QAAAC,QACAgmC,QAAAjwC,SACAgK,QAAAA,QACAC,OAAAA,SAQA,OALArJ,MAAA8wC,cAAAjxC,KAAAwvC,SAGArvC,KAAA0xC,gBAEAtyC,SAIA,OAAAuxC,gBC9QA/mB,OAAA,sBAAA,UACA,SAAA9mB,GAEA,YAUA,SAAA6uC,iBAAAC,gBACA,GAAAC,UAAAC,aAAA,CACA,KAAAD,WAAAD,gBACAA,eAAAC,UAAA76C,QAAA46C,eAAAC,UAAA9+B,GAAA,cACA++B,cAAAF,eAAAC,UAAAE,cAGA,OAAAD,cAGA,GAAAE,aAAAlvC,EAAA,gBACAmvC,eAAAD,YAAAv2C,SACAy2C,KAAApvC,EAAA0D,QACA2rC,KAAArvC,EAAAjH,UACAu2C,aAAAtvC,EAAA,iBACA8uC;AACAS,AXmDA,gBWnDAD,aAAAntC,KAAA,oBACAqtC,QAAAF,aAAAntC,KAAA,mBAEA6sC,aAAAH,gBAAAC,eAkBA,OAhBAM,MAAAp8B,GAAA,oBAAA,WACAk8B,YAAA1jC,SAAA,aAIAwjC,aAAAH,gBAAAC,gBAEAE,cAAAI,KAAA/9B,YACA69B,YAAA7jC,SAAA,SAGA6jC,YAAA5jC,YAAA,SAEA4jC,YAAAv2C,OAAA02C,KAAA12C,cAIAyE,MAAA,WACA8xC,YAAA1jC,SAAA,YACA0jC,YAAAlyC,OAEAkyC,YAAA7jC,SAAA,WACA+jC,KAAA5rC,QAAA,sBAEAxG,KAAA,WACAkyC,YAAA5jC,YAAA,iBAAA3S,OAAAw2C,oBC1DAroB,OAAA,sBAEA,WACA;AZ6EA,AY3EA,MAAA,UAAA70B,GACA,MAAAA,GAAAM,QAAA,yBAAA,WCRAu0B,OAAA,sBACA,oBACA,SAAA2oB,aACA,YASA,SAAAC,eAAAC,IAAAC,WAEAD,IAAAA,IAAAvvC,WAAA7N,QAAA,WAAA,OAOA,KALA,GAGAs9C,KAHAC,SAAA,GAAAlhC,QAAA,OAAAghC,UAAA,IAAA,KACAG,UAAAJ,IAAAz7B,MAAA,GAAAtF,QAAA,SAAAghC,UAAA,KAAA,UACAr2C,EAAAw2C,UAAA77C,OAGAqF,KACAs2C,IAAAE,UAAAx2C,GAAA2a,MAAA47B,UAAA7sC,KAAA,KACA0sC,IAAAA,IAAAp9C,QAAA,GAAAqc,QAAA6gC,YAAAM,UAAAx2C,IAAA,KAAAs2C,IAEA,OAAAF,KAGA,MAAAD,iBC5BA5oB,OAAA,iBAEA,WACA,YAEA,IAAAkpB,SAAA,KACAC,QAAA,KAQAC,WAAA,SAAAx0B,MAEA,MAAA3iB,UAAA9E,cAAA,KAAAK,YACAyE,SAAAgiB,eAAAW,OAAAroB,WAAAoC;AdkEA,EczDA06C,gBAAA,SAAAz0B,MAGA,MAAAw0B,YAAAx0B,MAAAnpB,QAAAy9C,QAAA,UAAAz9C,QAAA09C,QAAA,UAGA,QACAv0B,KAAAw0B,WACAE,UAAAD,mBC/BArpB,OAAA,gBAAA,WAEA,GAAAupB,YAAA,WAEA,GAAAC,aAAA,WACA,YAGA,SAAAC,YAAAlpB,QACAnqB,KAAAmqB,OAAAA,OAHA,GAAAmpB,YAWA,OALAD,YAAAlxC,UAAAe,SAAA,WACA,MAAA,GAAAlD,KAAAmqB,QAGAmpB,YAAAD,cAKAE,YAAA,SAAAC,iBACA,YAiBA,SAAAC,YAAAC,KACA,MAAA5gB,QAAA4gB,MAAA,QAGA,QAAA37C,QAAA0uC,IAAA5tC,OACA,IAAA,GAAAwyC,OAAAxyC,OACAoK,OAAAd,UAAAgB,eAAA3M,KAAAqC,MAAAwyC,OACA5E,IAAA4E,KAAAxyC,MAAAwyC,MAyBA,QAAAsI,kBAAAxpB;AAEA,AfQA,MeRAA,kBAAAkpB,YACAlpB,OAAAjnB,WACAinB,QAAA,IAAAA,QAOAA,OAAA,GAAAA,OAEAypB,SAAAl+C,KAAAy0B,QACAA,OAAA90B,QAAAw+C,SAAAJ,YADAtpB,QARA,GAYA,QAAAmO,SAAAz/B,OACA,MAAAA,QAAA,IAAAA,MAEAqD,QAAArD,QAAA,IAAAA,MAAA7B,QACA,GAEA,GAJA,EAnEA,GAAAs8C,gBAEAD,WAAAG,gBAEA1gB,QACAS,IAAA,QACAC,IAAA,OACA/a,IAAA,OACAgb,IAAA,SACAC,IAAA,SACAogB,IAAA,UAGAD,SAAA,YACAD,SAAA,UAcAN,aAAAv7C,OAAAA,MAAA,IAAAmL,UAAAD,OAAAd,UAAAe,QACAowC,aAAApwC,SAAAA,QAGA,IAAA5M,YAAA,SAAAuC,OACA,MAAA,kBAAAA,OAGAvC,YAAA,OACAA,WAAA,SAAAuC,OACA,MAAA,kBAAAA,QAAA,sBAAAqK,SAAA1M,KAAAqC;AfqBA,EelBA,IAAAvC,WACAg9C,aAAAh9C,WAAAA,UACA,IAAA4F,SAAA6G,MAAA7G,SAAA,SAAArD,OACA,MAAAA,QAAA,gBAAAA,OAAA,mBAAAqK,SAAA1M,KAAAqC,QAAA,EAgCA,OA9BAy6C,aAAAp3C,QAAAA,QAmBAo3C,YAAAK,iBAAAA,iBAUAL,YAAAhb,QAAAA,QACAgb,aACAF,aAGAW,YAAA,WACA,YAKA,SAAAC,WAAA9Y,QAAAuB,MACA,GAAAwX,KACAxX,OAAAA,KAAAyX,YACAD,KAAAxX,KAAAyX,UAEAhZ,SAAA,MAAA+Y,KAAA,IAAAxX,KAAA0X,YAMA,KAAA,GAHAC,KAAAxtC,MAAAzE,UAAAsC,YAAAjO,KAAAwJ,KAAAk7B,SAGAgW,IAAA,EAAAA,IAAAmD,WAAAr9C,OAAAk6C,MACAlxC,KAAAq0C,WAAAnD,MAAAkD,IAAAC,WAAAnD,KAGA+C,QACAj0C,KAAAs0C,WAAAL,KACAj0C,KAAAu0C,OAAA9X,KAAA0X;Af3CA,CesBA,GAAAb,aAEAe,YAAA,cAAA,WAAA,aAAA,UAAA,OAAA,SAAA,QA0BA,OAHAL,WAAA7xC,UAAA,GAAAyE,OAEA0sC,YAAAU,aAKAQ,YAAA,SAAAhB,gBAAAiB,iBACA,YAoBA,SAAAC,uBAAAC,QAAAC,UACA50C,KAAA20C,QAAAA,YACA30C,KAAA40C,SAAAA,aAEAC,uBAAA70C,MA4BA,QAAA60C,wBAAAC,UACAA,SAAAC,eAAA,gBAAA,SAAAhX,KACA,GAAA,IAAAj4B,UAAA9O,OAGA,KAAA,IAAAg9C,WAAA,oBAAAjW,IAAA,OAIA+W,SAAAC,eAAA,qBAAA,SAAArwC,QAAAoK,SACA,GAAAkmC,SAAAlmC,QAAAkmC,SAAA,aAAA3xC,GAAAyL,QAAAzL,EAIA,OAFA/M,YAAAoO,WAAAA,QAAAA,QAAAlO,KAAAwJ;AAEA0E,AfxHA,WewHA,EACArB,GAAArD,MACA0E,WAAA,GAAA,MAAAA,QACAswC,QAAAh1C,MACA9D,QAAAwI,SACAA,QAAA1N,OAAA,EACA89C,SAAAH,QAAA9/C,KAAA6P,QAAAoK,SAEAkmC,QAAAh1C,MAGAqD,GAAAqB,WAIAowC,SAAAC,eAAA,OAAA,SAAArwC,QAAAoK,SACA,GACAjZ,MADAwN,GAAAyL,QAAAzL,GAAA2xC,QAAAlmC,QAAAkmC,QACA34C,EAAA,EAAA44C,IAAA,EAQA,IANA3+C,WAAAoO,WAAAA,QAAAA,QAAAlO,KAAAwJ,OAEA8O,QAAAjZ,OACAA,KAAAq/C,YAAApmC,QAAAjZ,OAGA6O,SAAA,gBAAAA,SACA,GAAAxI,QAAAwI,SACA,IAAA,GAAAjI,GAAAiI,QAAA1N,OAAAyF,EAAAJ,EAAAA,IACAxG,OACAA,KAAAghB,MAAAxa,EACAxG,KAAA8P,MAAA,IAAAtJ,EACAxG,KAAA+P,KAAAvJ,IAAAqI,QAAA1N,OAAA,GAEAi+C,KAAA5xC,GAAAqB,QAAArI,IAAAxG,KAAAA,WAGA,KAAA,GAAAw1C,OAAA3mC,SACAA,QAAAvB,eAAAkoC,OACAx1C,OACAA,KAAAw1C,IAAAA,IACAx1C,KAAAghB,MAAAxa,EACAxG,KAAA8P,MAAA,IAAAtJ;AAEA44C,AflKA,KekKA5xC,GAAAqB,QAAA2mC,MAAAx1C,KAAAA,OACAwG,IAUA,OAJA,KAAAA,IACA44C,IAAAD,QAAAh1C,OAGAi1C,MAGAH,SAAAC,eAAA,KAAA,SAAAI,YAAArmC,SAMA,MALAxY,YAAA6+C,eAAAA,YAAAA,YAAA3+C,KAAAwJ,QAKA8O,QAAAsmC,KAAAC,cAAAF,aAAAG,MAAAhd,QAAA6c,aACArmC,QAAAkmC,QAAAh1C,MAEA8O,QAAAzL,GAAArD,QAIA80C,SAAAC,eAAA,SAAA,SAAAI,YAAArmC,SACA,MAAAgmC,UAAAH,QAAA,MAAAn+C,KAAAwJ,KAAAm1C,aAAA9xC,GAAAyL,QAAAkmC,QAAAA,QAAAlmC,QAAAzL,GAAA+xC,KAAAtmC,QAAAsmC,SAGAN,SAAAC,eAAA,OAAA,SAAArwC,QAAAoK,SAGA,MAFAxY,YAAAoO,WAAAA,QAAAA,QAAAlO,KAAAwJ,OAEAs1C,MAAAhd,QAAA5zB,SAAA,OAAAoK,QAAAzL,GAAAqB,WAGAowC,SAAAC,eAAA,MAAA,SAAArwC,QAAAoK;AACA,AfvMA,GeuMAymC,OAAAzmC,QAAAjZ,MAAA,MAAAiZ,QAAAjZ,KAAA0/C,MAAAtlC,SAAAnB,QAAAjZ,KAAA0/C,MAAA,IAAA,CACAT,UAAA7J,IAAAsK,MAAA7wC,WAyBA,QAAAumC,KAAAsK,MAAA9O,KAAAgH,OAAAxC,IAAAsK,MAAA9O,KA5KA,GAAA6M,gBACAgC,MAAA9B,gBACAQ,UAAAS,gBAEAva,QAAA,OACAoZ,aAAApZ,QAAAA,OAAA,IAAAsb,mBAAA,CACAlC,aAAAkC,kBAAAA,iBACA,IAAAC,mBACAC,EAAA,cACAC,EAAA,gBACAC,EAAA,gBACAC,EAAA,WAEAvC,aAAAmC,iBAAAA,gBACA,IAAAv5C,SAAAo5C,MAAAp5C,QACA5F,WAAAg/C,MAAAh/C,WACA4M,SAAAoyC,MAAApyC,SACA4yC,WAAA,iBASAxC,aAAAoB,sBAAAA,sBAAAA,sBAAAvyC;AACAsC,Af/EA,Ye+EAiwC,sBAEAjH,OAAAA,OACAxC,IAAAA,IAEA8J,eAAA,SAAAloC,KAAAxJ,GAAA2xC,SACA,GAAA9xC,SAAA1M,KAAAqW,QAAAipC,WAAA,CACA,GAAAd,SAAA3xC,GAAA,KAAA,IAAA2wC,WAAA,0CACAsB,OAAAv9C,OAAAiI,KAAA20C,QAAA9nC,UAEAmoC,WAAA3xC,GAAA2V,IAAAg8B,SACAh1C,KAAA20C,QAAA9nC,MAAAxJ,IAIA0yC,gBAAA,SAAAlpC,KAAA4lC,KACAvvC,SAAA1M,KAAAqW,QAAAipC,WACAR,MAAAv9C,OAAAiI,KAAA40C,SAAA/nC,MAEA7M,KAAA40C,SAAA/nC,MAAA4lC,KAyGA,IAAAhF,SACAuI,WAAAtjB,EAAA,QAAAgjB,EAAA,OAAAC,EAAA,OAAAC,EAAA,SAGAK,MAAA,EACAC,KAAA,EACAC,KAAA,EACAC,MAAA,EACAb,MAAA,EAGAtK,IAAA,SAAAsK,MAAA9O,KACA,GAAAgH,OAAA8H,OAAAA,MAAA,CACA,GAAApH,QAAAV,OAAAuI,UAAAT,MACA,oBAAAvK,UAAAA,QAAAmD,SACAnD,QAAAmD,QAAA33C,KAAAw0C,QAAAvE;AfzNA,Ge8NA6M,aAAA7F,OAAAA,OAGA6F,YAAArI,IAAAA,GAAA,IAAAiK,aAAA,SAAA3oC,QACA,GAAAk6B,OAEA,OADA6O,OAAAv9C,OAAA0uC,IAAAl6B,QACAk6B,IAGA,OADA6M,aAAA4B,YAAAA,YACA5B,aACAC,YAAAQ,aAGAsC,YAAA,SAAA7C,gBAAAiB,gBAAA6B,iBACA,YAOA,SAAAC,eAAAC,cACA,GAAAC,kBAAAD,cAAAA,aAAA,IAAA,EACAE,gBAAAlB,iBAEA,IAAAiB,mBAAAC,gBAAA,CACA,GAAAA,gBAAAD,iBAAA,CACA,GAAAE,iBAAAlB,iBAAAiB,iBACAE,iBAAAnB,iBAAAgB,iBACA,MAAA,IAAAzC,WAAA,6IACA2C,gBAAA,oDAAAC,iBAAA;Af3PA,Ce8PA,KAAA,IAAA5C,WAAA,wIACAwC,aAAA,GAAA,OAOA,QAAAnd,UAAAwd,aAAAC,KACA,IAAAA,IACA,KAAA,IAAA9C,WAAA,oCAKA,IAAA+C,sBAAA,SAAAhhB,QAAAlpB,KAAAnI,QAAAiwC,QAAAC,SAAA/+C,MACA,GAAAwc,QAAAykC,IAAAE,GAAAC,cAAApxC,MAAA7F,KAAA8F,UACA,IAAA,MAAAuM,OAAA,MAAAA,OAEA,IAAAykC,IAAAn8B,QAAA,CACA,GAAA7L,UAAA6lC,QAAAA,QAAAC,SAAAA,SAAA/+C,KAAAA,KAEA,OADA++C,UAAA/nC,MAAAiqC,IAAAn8B,QAAAob,SAAAlgC,KAAAk0B,SAAAl0B,MAAAihD,KACAlC,SAAA/nC,MAAAnI,QAAAoK,SAEA,KAAA,IAAAklC,WAAA,eAAAnnC,KAAA;AfrRA,Ee0RAqqC,WACAvD,iBAAA2B,MAAA3B,iBACAsD,cAAAF,qBACAI,YACAC,QAAA,SAAA/6C,EAAAgH,GAAAxN,MACA,GAAAwhD,gBAAAr3C,KAAAm3C,SAAA96C,EAMA,OALAxG,MACAwhD,eAAAD,QAAA/6C,EAAAgH,GAAAxN,MACAwhD,iBACAA,eAAAr3C,KAAAm3C,SAAA96C,GAAA+6C,QAAA/6C,EAAAgH,KAEAg0C,gBAEAvyC,MAAA,SAAAkd,MAAAs1B,QACA,GAAArC,KAAAjzB,OAAAs1B,MAOA,OALAt1B,QAAAs1B,QAAAt1B,QAAAs1B,SACArC,OACAK,MAAAv9C,OAAAk9C,IAAAqC,QACAhC,MAAAv9C,OAAAk9C,IAAAjzB,QAEAizB,KAEAsC,iBAAAT,IAAAE,GAAAO,iBACA5vC,KAAAmvC,IAAAE,GAAArvC,KACA6uC,aAAA,KAGA,OAAA,UAAA9xC,QAAAoK,SACAA,QAAAA,WACA,IACA6lC,SACAC,SAFAtjC,UAAAxC,QAAAinB,QAAAjnB,QAAAgoC,GAIAhoC,SAAAinB,UACA4e,QAAA7lC,QAAA6lC;AACAC,Af7TA,Se6TA9lC,QAAA8lC,SAEA,IAAAviC,QAAAwkC,aAAArgD,KACA0gD,UACA5lC,UAAA5M,QACAiwC,QACAC,SACA9lC,QAAAjZ,KAMA,OAJAiZ,SAAAinB,SACA+gB,IAAAE,GAAAT,cAAAW,UAAAV,cAGAnkC,QAIA,QAAAklC,kBAAAl7C,EAAAgH,GAAAxN,MACA,GAAAwvC,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,GAEA0xC,KAAA,SAAA9yC,QAAAoK,SAGA,MAFAA,SAAAA,YAEAzL,GAAAwC,MAAA7F,MAAA0E,QAAAoK,QAAAjZ,MAAAA,MAAA2I,OAAA6mC,OAIA,OAFAmS,MAAAJ,QAAA/6C,EACAm7C,KAAAC,MAAApS,KAAAruC,OACAwgD,KAGA,QAAAJ,SAAA/6C,EAAAgH,GAAAxN,MACA,GAAA2hD,MAAA,SAAA9yC,QAAAoK,SAGA,MAFAA,SAAAA,YAEAzL,GAAAqB,QAAAoK,QAAAjZ,MAAAA,MAIA,OAFA2hD,MAAAJ,QAAA/6C,EACAm7C,KAAAC,MAAA,EACAD,KAGA,QAAAP,eAAAlhB,QAAAlpB,KAAAnI,QAAAiwC,QAAAC,SAAA/+C;AACA,AftWA,GesWAiZ,UAAAinB,SAAA,EAAA4e,QAAAA,QAAAC,SAAAA,SAAA/+C,KAAAA,KAEA,IAAAk0B,SAAAgM,QACA,KAAA,IAAAie,WAAA,eAAAnnC,KAAA,sBACA,OAAAkpB,mBAAA3uB,UACA2uB,QAAArxB,QAAAoK,SADA,OAKA,QAAAnH,QAAA,MAAA,GAtIA,GAAA2rC,gBACAgC,MAAA9B,gBACAQ,UAAAS,gBACAe,kBAAAc,gBAAAd,kBACAC,iBAAAa,gBAAAb,gBAqIA,OAjHAnC,aAAAiD,cAAAA,cA4EAjD,YAAAja,SAAAA,SAaAia,YAAAiE,iBAAAA,iBAWAjE,YAAA8D,QAAAA,QAUA9D,YAAA2D,cAAAA,cAEA3D,YAAA3rC,KAAAA,KACA2rC,aACAC,YAAAQ,YAAAS,aAGAkD,YAAA,SAAAlE,gBAAAiB,gBAAA6B,gBAAAqB,gBAAAC;AACA,AftXA,YeuXA,IAAAtE,aAEAuE,KAAArE,gBAIAH,WAAAoB,gBACAT,UAAAsC,gBACAhB,MAAAqC,gBACAG,QAAAF,gBAGA5lB,OAAA,WACA,GAAA+lB,IAAA,GAAAF,MAAAnD,qBAYA,OAVAY,OAAAv9C,OAAAggD,GAAAF,MACAE,GAAA1E,WAAAA,WACA0E,GAAA/D,UAAAA,UACA+D,GAAAzC,MAAAA,MAEAyC,GAAAf,GAAAc,QACAC,GAAA1e,SAAA,SAAA2e,MACA,MAAAF,SAAAze,SAAA2e,KAAAD,KAGAA,IAGA5E,WAAAnhB,QAIA,OAHAmhB,YAAAnhB,OAAAA,OAEAshB,YAAAH,YAEAqB,YAAApB,YAAAW,YAAAR,YAAA8C,aAGA4B,YAAA,SAAAzE,iBACA,YAIA,SAAA0E,cAAAC,SACAA,QAAAA,YACAn4C,KAAAk0C,UAAAiE,QAAAC,WACAp4C,KAAAm0C,YAAAgE,QAAAE;AACAr4C,AfnaA,KemaAs4C,WAAAH,QAAAI,YACAv4C,KAAAw4C,SAAAL,QAAAM,UARA,GAAAnF,aACAU,UAAAR,gBAUAkF,KACAC,YAAA,SAAAC,WAAAC,aAAA7D,QAAAmD,SACA,GAAAW,qBAAAC,gBACA,KAAAjzC,UAAA9O,QACAmhD,QAAAnD,QACAA,QAAA,MACA,IAAAlvC,UAAA9O,SACAmhD,QAAAU,aACAA,aAAA,MAGAX,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,UACAsH,KAAA44C,WAAAA,WACA54C,KAAAg5C,SAEAhE,SACA+D,iBAAA/D,QAAA,GACA+D,kBACAD,qBACAV,WAAAW,iBAAA7E,UACAuE,UAAAM,iBAAAP,SACAD,YAAAQ,iBAAAT,WACAD,aAAAU,iBAAA5E,aAEAn0C,KAAAg1C,QAAA,GAAA0D,KAAAC,YAAA3D,QAAA6D,aAAAC,sBAEA94C,KAAAg1C,QAAA,GAAA0D,KAAAC,YAAA3D,QAAA6D;AAEA74C,AfncA,KemcAg5C,MAAAxQ,MAAAqQ,aAAA33B,MACA23B,eACA74C,KAAAg5C,MAAA93B,KAAA23B,aAAArQ,QAIAyQ,aAAA,SAAAC,UAAA9D,KAAA3uB,KAAAuyB,MAAAb,SAMA,GALAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,WACAsH,KAAAg5C,MAAAA,MAGA,MAAAvyB,MAAAA,KAAAjtB,OAAA,CAEA,GAAA2/C,YAAA1yB,KAAAjtB,OAAA,IAAAitB,KAAAjtB,OAAA,EACAwG,MAAAo5C,QAAA,MAAAD,YAAA,MAAAA,eAEAn5C,MAAAo5C,UAAA3yB,IAGAyyB,qBAAAR,KAAAW,UACAr5C,KAAAs5C,MAAAJ,UAGAl5C,KAAAs5C,MAAA,GAAAZ,KAAAW,UAAAH,UAAA9D,MAGAp1C,KAAAs5C,MAAAC,QAAA,EAGAv5C,KAAAgF,GAAAhF,KAAAs5C,MAAAt0C,GACAhF,KAAAw5C,OAAAx5C,KAAAs5C,MAAAE,OACAx5C,KAAAo1C,KAAAp1C,KAAAs5C,MAAAlE,KACAp1C,KAAAy5C,eAAAz5C,KAAAs5C,MAAAG,eACAz5C,KAAA05C,SAAA15C,KAAAs5C,MAAAI,UAGAL,UAAA,SAAAH,UAAA9D,KAAA+C;AACAD,AfxeA,aeweA1hD,KAAAwJ,KAAAm4C,SAEAn4C,KAAAtH,KAAA,QACAsH,KAAAo1C,KAAAA,IAEA,IAAApwC,IAAAhF,KAAAgF,GAAAk0C,UAAA,GACAM,OAAAx5C,KAAAw5C,OAAAN,UAAAx/C,MAAA,GAIA+/C,eAAAz5C,KAAAy5C,eAAAz0C,GAAA20C,QAKA35C,MAAA05C,SAAAD,iBAAAD,OAAAxiD,QAAAo+C,OAOAwE,YAAA,SAAAC,YAAAn1C,QAAAs0C,MAAAb,SACAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,UACAsH,KAAA65C,YAAAA,YACA75C,KAAA0E,QAAAA,QACA1E,KAAAg5C,MAAAA,OAGAc,UAAA,SAAAC,SAAA3C,QAAApC,QAAAj5C,MAAAo8C,SAGA,GAFAD,aAAA1hD,KAAAwJ,KAAAm4C,SAEA4B,SAAAT,MAAAt0C,GAAAg1C,WAAAj+C,MAAAk+C,KAAAD,SACA,KAAA,IAAAhG,WAAA+F,SAAAT,MAAAt0C,GAAAg1C,SAAA,kBAAAj+C,MAAAk+C,KAAAD,SAAAh6C,KAGAA,MAAAtH,KAAA,QACAsH,KAAA+5C,SAAAA;AACA/5C,Af9gBA,Ke8gBAo3C,QAAAA,QACAp3C,KAAAg1C,QAAAA,QAEAh1C,KAAAg5C,OACA93B,KAAA64B,SAAAf,MAAA93B,KACAsnB,MAAAzsC,MAAAi9C,MAAAxQ,QAGA4O,SAAApC,SAAAgE,MAAA93B,KAAA64B,SAAAf,MAAAxQ,OACAwM,SAAAoC,SAAA4B,MAAAxQ,MAAAzsC,MAAAi9C,MAAA93B,KAEA8zB,UAAAoC,UACAp3C,KAAAk6C,WAAA,IAIAC,YAAA,SAAAhwB,OAAAguB,SACAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,UACAsH,KAAAmqB,OAAAA,QAGAiwB,SAAA,SAAAtkB,MAAAqiB,SACAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,OACAsH,KAAA81B,MAAAA,OAGAukB,OAAA,SAAAC,MAAAnC,SACAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,IAMA,KAAA,GAJAshD,UAAA,GACAO,OACA9C,MAAA,EAEAp7C,EAAA,EAAAM,EAAA29C,MAAAtjD,OAAA2F,EAAAN,EAAAA,IAAA,CACA,GAAA6a,MAAAojC,MAAAj+C,GAAA6a,IAGA,IAFA8iC,WAAAM,MAAAj+C,GAAAm+C,WAAA,IAAAtjC,KAEA,OAAAA,MAAA,MAAAA,MAAA,SAAAA,KAAA;AACA,AftjBA,GesjBAqjC,IAAAvjD,OAAA,EACA,KAAA,IAAAg9C,WAAA,iBAAAgG,SAAAh6C,KACA,QAAAkX,KACAugC,QAEAz3C,KAAAy6C,UAAA,MAGAF,KAAA16C,KAAAqX,MAIAlX,KAAAg6C,SAAAA,SACAh6C,KAAAs6C,MAAAC,IACAv6C,KAAAmqB,OAAAowB,IAAAx0C,KAAA,KACA/F,KAAAy3C,MAAAA,MAIAz3C,KAAA25C,SAAA,IAAAW,MAAAtjD,SAAAgJ,KAAAy6C,UAAA,IAAAhD,MAEAz3C,KAAA06C,gBAAA16C,KAAAmqB,QAGAwwB,gBAAA,SAAA9tC,KAAAsrC,SACAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,eACAsH,KAAA6M,KAAAA,KAAAmtC,UAGAY,SAAA,SAAA51C,GAAAmzC,SACAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,OACAsH,KAAAgF,GAAAA,IAGA61C,WAAA,SAAA1wB,OAAAguB,SACAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,SACAsH,KAAAg6C,SACAh6C,KAAAmqB,OACAnqB,KAAA06C,gBAAAvwB,QAGA2wB,YAAA,SAAAC,QAAA5C;AACAD,AflmBA,aekmBA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,UACAsH,KAAAg6C,SACAh6C,KAAA+6C,QAAAA,QACA/6C,KAAA06C,gBAAAzpB,OAAA8pB,UAGAC,YAAA,SAAAC,KAAA9C,SACAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,UACAsH,KAAAi7C,KAAAA,KACAj7C,KAAA06C,gBAAA,SAAAO,MAGAC,YAAA,SAAAC,QAAAhD,SACAD,aAAA1hD,KAAAwJ,KAAAm4C,SACAn4C,KAAAtH,KAAA,UACAsH,KAAAm7C,QAAAA,SAOA,OADA7H,aAAAoF,KAEA3E,aAGAqH,YAAA,WACA,YACA,IAAA9H,aAGA+H,WAAA,WAmNA,QAAAC,YAAA70B,KAAA1qB,OACA,OACAmlB,KAAA,MAAAuF,KAAAjtB,OAAA,GACAgvC,MAAA,MAAAzsC,MAAAvC,OAAA,IAAA,MAAAuC,MAAAvC,OAAA,IA6QA,QAAA+hD,UAAAv7C,KAAAw7C,MAleA,GAAAC,SAAAC,MAAA,aACAF;AACAG,AfroBA,UeqoBA99C,MAAA,EAAAkoC,KAAA,EAAA6S,WAAA,EAAAgD,IAAA,EAAAxE,QAAA,EAAAyE,cAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,WAAA,GAAAC,UAAA,GAAAlC,SAAA,GAAAhkB,QAAA,GAAAmmB,QAAA,GAAAC,QAAA,GAAAC,WAAA,GAAA9C,MAAA,GAAA+C,MAAA,GAAAC,aAAA,GAAAC,cAAA,GAAAtC,KAAA,GAAAuC,KAAA,GAAAC,eAAA,GAAAC,gBAAA,GAAAC,aAAA,GAAA9C,YAAA,GAAA+C,gBAAA,GAAAC,kBAAA,GAAAC,cAAA,GAAAC,SAAA,GAAA/6B,MAAA,GAAAg7B,OAAA,GAAAC,QAAA,GAAAC,QAAA,GAAAC,WAAA,GAAAC,YAAA,GAAAhI,KAAA,GAAAiI,sBAAA,GAAAC,YAAA,GAAA/lC,GAAA,GAAAgmC,OAAA,GAAAC,KAAA,GAAAC,aAAA,GAAAC,IAAA,GAAAC,QAAA,EAAAC,KAAA,GACAC,YAAAlI,EAAA,QAAAmI,EAAA,MAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,QAAAC,GAAA;AAAAC,AfroBA,GeqoBA,gBAAAC,GAAA,OAAAC,GAAA,iBAAAC,GAAA,kBAAAC,GAAA,eAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,cAAAC,GAAA,KAAAC,GAAA,SAAAC,GAAA,OAAAC,GAAA,OACAC,cAAA,GAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,EAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IACAC,cAAA,SAAAC,OAAAC,OAAAC,SAAA9D,GAAA+D,QAAAC,GAAAC,IAEA,GAAAC,IAAAF,GAAAxoD,OAAA,CACA,QAAAuoD,SACA,IAAA,GAAA,MAAA,IAAA/D,IAAA7C,YAAA6G,GAAAE,GAAA,GAAA1/C,KAAAy/C;AAEA,Af5oBA,Ie4oBA,GAAA,MAAA,IAAAjE,IAAA7C,eAAA34C,KAAAy/C,GAEA,KAAA,GAAAz/C,KAAA8C,EAAA,GAAA04C,IAAA7C,eAAA6G,GAAAE,GAAA,GAAAF,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,GAAAz/C,KAAA8C,EAAA,GAAA04C,IAAA7C,YAAA6G,GAAAE,GAAA,GAAAF,GAAAE,GAAA,GAAAF,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,GAAAz/C,KAAA8C,EAAA,GAAA04C,IAAA7C,YAAA6G,GAAAE,GAAA,GAAAF,GAAAE,OAAA1/C,KAAAy/C,GACA,MACA,KAAA,GAAAz/C,KAAA8C,EAAA,GAAA04C,IAAA7C,YAAA6G,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,GAAAz/C,KAAA8C,EAAA,GAAA04C,IAAA7C,eAAA34C,KAAAy/C,GACA,MACA,KAAA,GAAAz/C,KAAA8C,EAAA,GAAA04C,IAAA7C,eAAA34C,KAAAy/C,GACA,MACA,KAAA,GAAAz/C,KAAA8C,GAAA08C,GAAAE,IACA,MACA,KAAA,IAAAF,GAAAE,GAAA,GAAA7/C,KAAA2/C,GAAAE,KAAA1/C,KAAA8C,EAAA08C,GAAAE,GAAA,EACA,MACA,KAAA,IAAA1/C,KAAA8C,EAAA,GAAA04C,IAAA1B,UAAA0F,GAAAE,GAAA,GAAAF,GAAAE,GAAA,GAAA1K,QAAAwK,GAAAE,GAAA,GAAAF,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAA1B,UAAA0F,GAAAE,GAAA,GAAAF,GAAAE,GAAA,GAAAF,GAAAE,GAAA,GAAA1K,QAAAwK,GAAAE,IAAA1/C,KAAAy/C,GACA;AACA,AfjqBA,IeiqBA,IAAAz/C,KAAA8C,EAAA08C,GAAAE,GACA,MACA,KAAA,IAAA1/C,KAAA8C,EAAA08C,GAAAE,GACA,MACA,KAAA,IAAA1/C,KAAA8C,EAAA,GAAA04C,IAAArB,YAAAqF,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAN,YAAAsE,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAvC,aAAAuG,GAAAE,GAAA,GAAA,KAAAF,GAAAE,GAAA,GAAApE,WAAAkE,GAAAE,GAAA,GAAAF,GAAAE,KAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAvC,aAAAuG,GAAAE,GAAA,GAAA,KAAAF,GAAAE,GAAA,GAAApE,WAAAkE,GAAAE,GAAA,GAAAF,GAAAE,KAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,GAAAm3C,KAAAuF,GAAAE,GAAA,GAAA1G,MAAAsC,WAAAkE,GAAAE,GAAA,GAAAF,GAAAE,KACA,MACA,KAAA,IAAA1/C,KAAA8C,EAAA,GAAA04C,IAAAvC,aAAAuG,GAAAE,GAAA,GAAA,KAAAF,GAAAE,GAAA,GAAApE,WAAAkE,GAAAE,GAAA,GAAAF,GAAAE,KAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAvC,aAAAuG,GAAAE,GAAA,GAAA,KAAAF,GAAAE,GAAA,GAAApE,WAAAkE,GAAAE,GAAA,GAAAF,GAAAE,KAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAA5B,YAAA4F,GAAAE,GAAA,GAAAF,GAAAE,GAAA,GAAApE,WAAAkE,GAAAE,GAAA,GAAAF,GAAAE,KAAA1/C,KAAAy/C;AACA,AfnrBA,KeorBA,KAAA,IAAAz/C,KAAA8C,EAAAw4C,WAAAkE,GAAAE,GAAA,GAAAF,GAAAE,IACA,MACA,KAAA,IAAA1/C,KAAA8C,EAAA,GAAA04C,IAAAnC,WAAAmG,GAAAE,GAAA,IAAAlhD,OAAAghD,GAAAE,GAAA,IAAAF,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAnC,WAAAmG,GAAAE,KAAA,KAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA08C,GAAAE,GACA,MACA,KAAA,IAAA1/C,KAAA8C,EAAA,GAAA04C,IAAAX,WAAA2E,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAV,YAAA0E,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAR,YAAAwE,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA08C,GAAAE,GACA,MACA,KAAA,IAAAF,GAAAE,GAAA,GAAAhG,UAAA,EAAA15C,KAAA8C,EAAA08C,GAAAE,GAAA,EACA,MACA,KAAA,IAAA1/C,KAAA8C,EAAA,GAAA04C,IAAApB,SAAAoF,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,GAAA08C,GAAAE,GAAA,GAAAF,GAAAE,IACA,MACA,KAAA,IAAA1/C,KAAA8C,EAAA,GAAA04C,IAAAb,gBAAA6E,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAb,gBAAA,GAAAa,IAAAX,WAAA2E,GAAAE,IAAA1/C,KAAAy/C,IAAAz/C,KAAAy/C;AACA,Af5sBA,Ke6sBA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAb,gBAAA,GAAAa,IAAAV,YAAA0E,GAAAE,IAAA1/C,KAAAy/C,IACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAZ,SAAA4E,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAz/C,KAAA8C,EAAA,GAAA04C,IAAAnB,OAAAmF,GAAAE,IAAA1/C,KAAAy/C,GACA,MACA,KAAA,IAAAD,GAAAE,GAAA,GAAA7/C,MAAAqX,KAAAsoC,GAAAE,IAAAlF,UAAAgF,GAAAE,GAAA,KAAA1/C,KAAA8C,EAAA08C,GAAAE,GAAA,EACA,MACA,KAAA,IAAA1/C,KAAA8C,IAAAoU,KAAAsoC,GAAAE,KACA,MACA,KAAA,IAAA1/C,KAAA8C,IACA,MACA,KAAA,IAAA08C,GAAAE,GAAA,GAAA7/C,KAAA2/C,GAAAE,IACA,MACA,KAAA,IAAA1/C,KAAA8C,GAAA08C,GAAAE,IACA,MACA,KAAA,IAAAF,GAAAE,GAAA,GAAA7/C,KAAA2/C,GAAAE,OAIAC,QAAA/J,EAAA,EAAAC,EAAA,EAAAiI,GAAA,EAAA,GAAA8B,EAAA,EAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAjC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAA9I,GAAA,KAAAoI,GAAA,EAAA,IAAA8B,EAAA,GAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAjC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAA9I,GAAA,EAAA;AAAAoI,AfhuBA,GeguBA,EAAA,GAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,GAAAE,IAAA,EAAA,GAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,GAAAE,IAAA,EAAA,KAAA3I,EAAA,GAAAoK,EAAA,GAAAC,EAAA,GAAAN,EAAA,EAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAjC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAA3I,EAAA,GAAAoK,EAAA,GAAAC,EAAA,GAAAN,EAAA,EAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAjC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAV,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAV,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAV,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAV,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA;AAAAE,Af/tBA,Ie+tBA,EAAA,MAAA2B,GAAA,GAAAC,GAAA,GAAAC,GAAA,GAAAvB,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAsB,GAAA,KAAAH,GAAA,GAAAC,GAAA,GAAAC,GAAA,GAAAvB,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAsB,GAAA,KAAAH,GAAA,GAAAC,GAAA,GAAAC,GAAA,GAAAvB,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAsB,GAAA,KAAAH,GAAA,GAAAC,GAAA,GAAAC,GAAA,GAAAvB,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAsB,GAAA,KAAAF,GAAA,GAAAG,GAAA,GAAA9B,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAI,IAAA,EAAA,IAAAwB,GAAA,KAAA5K,GAAA,EAAA,KAAAoI,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAgC,GAAA,GAAApC,IAAA,EAAA,MAAAvI,EAAA,GAAA+J,EAAA,EAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAjC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAA0B,EAAA,GAAAN,EAAA,GAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAjC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAA2B,GAAA,GAAAjC,IAAA,EAAA,IAAAkC,GAAA,GAAAC,GAAA,GAAAvB,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAsB,GAAA,KAAAE,GAAA,GAAApC,IAAA,EAAA,MAAAF,IAAA,EAAA;AAAAA,Af9tBA,Ie8tBA,EAAA,IAAAK,IAAA,EAAA,IAAAkC,GAAA,GAAAhC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAd,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAM,IAAA,EAAA,MAAAX,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,MAAAmB,GAAA,GAAAtB,IAAA,EAAA,IAAAwB,GAAA,KAAApC,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,MAAAf,IAAA,EAAA,MAAAA,IAAA,EAAA,MAAAK,IAAA,EAAA,MAAAL,IAAA,EAAA,IAAAkC,GAAA,GAAAM,GAAA,GAAA5B,IAAA,EAAA,IAAAwB,GAAA,KAAApC,IAAA,EAAA,IAAAY,IAAA,EAAA,MAAAZ,IAAA,EAAA,IAAAY,IAAA,EAAA,MAAAZ,IAAA,EAAA,IAAAY,IAAA,EAAA,MAAAhB,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAA4B,GAAA,GAAAtB,IAAA,EAAA,IAAAwB,GAAA,KAAAV,EAAA,GAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAjC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA;AAAAE,Af7tBA,Ie6tBA,EAAA,IAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAA3I,EAAA,GAAA+J,EAAA,EAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAjC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAT,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAV,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAT,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAN,IAAA,EAAA,IAAAkC,GAAA,GAAA7B,IAAA,EAAA,IAAAoC,GAAA,GAAAN,GAAA,GAAAO,GAAA,GAAAnC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAgC,GAAA,GAAAC,GAAA,GAAAC,GAAA,GAAAjC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAsB,GAAA,KAAAxB,IAAA,EAAA,MAAAZ,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAjB,IAAA,EAAA;AAAAC,Af5tBA,Ie4tBA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAV,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAV,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAN,IAAA,EAAA,MAAAA,IAAA,EAAA,MAAAA,IAAA,EAAA,MAAA0B,EAAA,GAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAjC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,GAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAN,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAM,IAAA,EAAA,MAAAX,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAd,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAM,IAAA,EAAA,MAAAX,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAd,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA;AAAAC,Af3tBA,Ie2tBA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAd,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAd,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAd,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAmB,GAAA,GAAAC,GAAA,GAAAC,GAAA,GAAAvB,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAsB,GAAA,KAAApC,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAM,IAAA,EAAA,IAAAkC,GAAA,GAAAjC,IAAA,EAAA,MAAAZ,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAM,IAAA,EAAA,IAAAC,IAAA,EAAA,MAAAZ,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,MAAAf,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA;AAAAC,Af1tBA,Ie0tBA,EAAA,MAAAnB,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAV,GAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAK,IAAA,EAAA,MAAAX,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAM,IAAA,EAAA,IAAAC,IAAA,EAAA,MAAAC,IAAA,EAAA,MAAAqB,GAAA,GAAAC,GAAA,GAAAO,GAAA,GAAAnC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAsB,GAAA,KAAApC,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAE,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAC,IAAA,EAAA,IAAAE,IAAA,EAAA,MAAAd,IAAA,EAAA,IAAAK,IAAA,EAAA,IAAAM,IAAA,EAAA,IAAAC,IAAA,EAAA,MACAkC,gBAAApL,GAAA,EAAA,GAAAqI,IAAA,EAAA,GAAAgD,IAAA,EAAA,KACAC,WAAA,SAAAzO,IAAA2C,MACA,KAAA,IAAAxuC,OAAA6rC,MAEAtrC,MAAA,SAAA0S,OAkBA,QAAAsnC,OACA,GAAA7Q,MAKA,OAJAA,OAAA7N,KAAA2e,MAAAD,OAAA,EACA,gBAAA7Q,SACAA,MAAA7N,KAAAkZ,SAAArL,QAAAA;AAEAA,AftvBA,Me+tBA,GAAA7N,MAAAziC,KAAAqhD,OAAA,GAAAC,QAAA,MAAAC,UAAA5B,MAAA3/C,KAAA2/C,MAAAP,OAAA,GAAAE,SAAA,EAAAD,OAAA,EAAAmC,WAAA,CACAxhD,MAAAohD,MAAAK,SAAA5nC,OACA7Z,KAAAohD,MAAA5F,GAAAx7C,KAAAw7C,GACAx7C,KAAAw7C,GAAA4F,MAAAphD,KAAAohD,MACAphD,KAAAw7C,GAAAC,OAAAz7C,KACA,mBAAAA,MAAAohD,MAAAM,SACA1hD,KAAAohD,MAAAM,UACA,IAAAC,OAAA3hD,KAAAohD,MAAAM,MACAH,QAAA1hD,KAAA8hD,MACA,IAAAC,QAAA5hD,KAAAohD,MAAAtyC,SAAA9O,KAAAohD,MAAAtyC,QAAA8yC,MACA,mBAAA5hD,MAAAw7C,GAAA0F,aACAlhD,KAAAkhD,WAAAlhD,KAAAw7C,GAAA0F,WAeA,KADA,GAAAW,QAAAC,eAAAlkD,MAAAoxC,OAAAzrC,EAAA3O,EAAAy3C,IAAA0V,SAAAC,SAAAC,WACA,CAUA,GATArkD,MAAAyjD,MAAAA,MAAArqD,OAAA,GACAgJ,KAAAghD,eAAApjD,OACAoxC,OAAAhvC,KAAAghD,eAAApjD,SAEA,OAAAikD,QAAA,mBAAAA,WACAA,OAAAV;AAEAnS,AfhwBA,OegwBA2Q,MAAA/hD,QAAA+hD,MAAA/hD,OAAAikD,SAEA,mBAAA7S,UAAAA,OAAAh4C,SAAAg4C,OAAA,GAAA,CACA,GAAAkT,QAAA,EACA,KAAAV,WAAA,CACAQ,WACA,KAAAptD,IAAA+qD,OAAA/hD,OACAoC,KAAA69C,WAAAjpD,IAAAA,EAAA,GACAotD,SAAAniD,KAAA,IAAAG,KAAA69C,WAAAjpD,GAAA,IAGAstD,QADAliD,KAAAohD,MAAAe,aACA,wBAAA7C,SAAA,GAAA,MAAAt/C,KAAAohD,MAAAe,eAAA,eAAAH,SAAAj8C,KAAA,MAAA,WAAA/F,KAAA69C,WAAAgE,SAAAA,QAAA,IAEA,wBAAAvC,SAAA,GAAA,iBAAA,GAAAuC,OAAA,eAAA,KAAA7hD,KAAA69C,WAAAgE,SAAAA,QAAA,KAEA7hD,KAAAkhD,WAAAgB,QAAAjpD,KAAA+G,KAAAohD,MAAApqC,MAAAs5B,MAAAtwC,KAAA69C,WAAAgE,SAAAA,OAAA5N,KAAAj0C,KAAAohD,MAAA9B,SAAA8C,IAAAT,MAAAK,SAAAA;Af9wBA,IeixBA,GAAAhT,OAAA,YAAAjsC,QAAAisC,OAAAh4C,OAAA,EACA,KAAA,IAAA4P,OAAA,oDAAAhJ,MAAA,YAAAikD,OAEA,QAAA7S,OAAA,IACA,IAAA,GACAqS,MAAAxhD,KAAAgiD,QACAP,OAAAzhD,KAAAG,KAAAohD,MAAAhC,QACAmC,OAAA1hD,KAAAG,KAAAohD,MAAAM,QACAL,MAAAxhD,KAAAmvC,OAAA,IACA6S,OAAA,KACAC,gBAQAD,OAAAC,eACAA,eAAA,OARAzC,OAAAr/C,KAAAohD,MAAA/B,OACAD,OAAAp/C,KAAAohD,MAAAhC,OACAE,SAAAt/C,KAAAohD,MAAA9B,SACAqC,MAAA3hD,KAAAohD,MAAAM,OACAF,WAAA,GACAA,aAKA,MACA,KAAA,GAQA,GAPAnV,IAAArsC,KAAAk/C,aAAAlQ,OAAA,IAAA,GACAiT,MAAAn/C,EAAAw+C,OAAAA,OAAAtqD,OAAAq1C,KACA4V,MAAAxC,IAAArH,WAAAmJ,OAAAA,OAAAvqD,QAAAq1C,KAAA,IAAA+L,WAAAK,UAAA8I,OAAAA,OAAAvqD,OAAA,GAAAyhD;AAAAJ,AfzyBA,aeyyBAkJ,OAAAA,OAAAvqD,QAAAq1C,KAAA,IAAAgM,aAAAE,YAAAgJ,OAAAA,OAAAvqD,OAAA,GAAAuhD,aACAqJ,SACAK,MAAAxC,GAAArpB,OAAAmrB,OAAAA,OAAAvqD,QAAAq1C,KAAA,IAAAjW,MAAA,GAAAmrB,OAAAA,OAAAvqD,OAAA,GAAAo/B,MAAA,KAEA7yB,EAAAvD,KAAAm/C,cAAA3oD,KAAAyrD,MAAA7C,OAAAC,OAAAC,SAAAt/C,KAAAw7C,GAAAxM,OAAA,GAAAsS,OAAAC,QACA,mBAAAh+C,GACA,MAAAA,EAEA8oC,OACAgV,MAAAA,MAAA3nD,MAAA,EAAA,GAAA2yC,IAAA,GACAiV,OAAAA,OAAA5nD,MAAA,EAAA,GAAA2yC,KACAkV,OAAAA,OAAA7nD,MAAA,EAAA,GAAA2yC,MAEAgV,MAAAxhD,KAAAG,KAAAk/C,aAAAlQ,OAAA,IAAA,IACAsS,OAAAzhD,KAAAoiD,MAAAn/C,GACAy+C,OAAA1hD,KAAAoiD,MAAAxC,IACAsC,SAAApC,MAAA0B,MAAAA,MAAArqD,OAAA,IAAAqqD,MAAAA,MAAArqD,OAAA,IACAqqD,MAAAxhD,KAAAkiD,SACA,MACA,KAAA,GACA,OAAA,GAGA,OAAA,IAaAX,MAAA,WACA,GAAAA,QAAAxF,IAAA,EACAsF,WAAA,SAAAzO,IAAA2C;AACA,Af/0BA,Ie+0BAp1C,KAAAw7C,GAAAC,OAGA,KAAA,IAAA70C,OAAA6rC,IAFAzyC,MAAAw7C,GAAAC,OAAAyF,WAAAzO,IAAA2C,OAKAqM,SAAA,SAAA5nC,OASA,MARA7Z,MAAAshC,OAAAznB,MACA7Z,KAAAqiD,MAAAriD,KAAAsiD,MAAAtiD,KAAAQ,MAAA,EACAR,KAAAs/C,SAAAt/C,KAAAq/C,OAAA,EACAr/C,KAAAo/C,OAAAp/C,KAAAuiD,QAAAviD,KAAAgX,MAAA,GACAhX,KAAAwiD,gBAAA,WACAxiD,KAAA0hD,QAAAtJ,WAAA,EAAAC,aAAA,EAAAI,UAAA,EAAAF,YAAA,GACAv4C,KAAA8O,QAAA8yC,SAAA5hD,KAAA0hD,OAAAtrB,OAAA,EAAA,IACAp2B,KAAA8oB,OAAA,EACA9oB,MAEA6Z,MAAA,WACA,GAAA5d,IAAA+D,KAAAshC,OAAA,EACAthC,MAAAo/C,QAAAnjD,GACA+D,KAAAq/C,SACAr/C,KAAA8oB,SACA9oB,KAAAgX,OAAA/a,GACA+D,KAAAuiD,SAAAtmD,EACA,IAAAwmD,OAAAxmD,GAAA+a,MAAA,kBAUA,OATAyrC,QACAziD,KAAAs/C,WACAt/C,KAAA0hD,OAAAjJ,aAEAz4C,KAAA0hD,OAAAnJ,cAEAv4C,KAAA8O,QAAA8yC,QAAA5hD,KAAA0hD,OAAAtrB,MAAA;AAEAp2B,Af/2BA,Ke+2BAshC,OAAAthC,KAAAshC,OAAA5nC,MAAA,GACAuC,IAEAymD,MAAA,SAAAzmD,IACA,GAAAowC,KAAApwC,GAAAjF,OACAyrD,MAAAxmD,GAAAnH,MAAA,gBAEAkL,MAAAshC,OAAArlC,GAAA+D,KAAAshC,OACAthC,KAAAo/C,OAAAp/C,KAAAo/C,OAAA9iD,OAAA,EAAA0D,KAAAo/C,OAAApoD,OAAAq1C,IAAA,GAEArsC,KAAA8oB,QAAAujB,GACA,IAAAsW,UAAA3iD,KAAAgX,MAAAliB,MAAA,gBACAkL,MAAAgX,MAAAhX,KAAAgX,MAAA1a,OAAA,EAAA0D,KAAAgX,MAAAhgB,OAAA,GACAgJ,KAAAuiD,QAAAviD,KAAAuiD,QAAAjmD,OAAA,EAAA0D,KAAAuiD,QAAAvrD,OAAA,GAEAyrD,MAAAzrD,OAAA,IAAAgJ,KAAAs/C,UAAAmD,MAAAzrD,OAAA,EACA,IAAAuM,GAAAvD,KAAA0hD,OAAAtrB,KAaA,OAXAp2B,MAAA0hD,QAAAtJ,WAAAp4C,KAAA0hD,OAAAtJ,WACAK,UAAAz4C,KAAAs/C,SAAA,EACAjH,aAAAr4C,KAAA0hD,OAAArJ,aACAE,YAAAkK,OACAA,MAAAzrD,SAAA2rD,SAAA3rD,OAAAgJ,KAAA0hD,OAAArJ,aAAA,GAAAsK,SAAAA,SAAA3rD,OAAAyrD,MAAAzrD,QAAAA,OAAAyrD,MAAA,GAAAzrD,OACAgJ,KAAA0hD,OAAArJ,aAAAhM;Afr4BA,Eew4BArsC,KAAA8O,QAAA8yC,SACA5hD,KAAA0hD,OAAAtrB,OAAA7yB,EAAA,GAAAA,EAAA,GAAAvD,KAAAq/C,OAAAhT,MAEArsC,MAEA4iD,KAAA,WAEA,MADA5iD,MAAAqiD,OAAA,EACAriD,MAEA6iD,KAAA,SAAA7hD,GACAhB,KAAA0iD,MAAA1iD,KAAAgX,MAAAtd,MAAAsH,KAEA8hD,UAAA,WACA,GAAAC,MAAA/iD,KAAAuiD,QAAAjmD,OAAA,EAAA0D,KAAAuiD,QAAAvrD,OAAAgJ,KAAAgX,MAAAhgB,OACA,QAAA+rD,KAAA/rD,OAAA,GAAA,MAAA,IAAA+rD,KAAAzmD,OAAA,KAAAjH,QAAA,MAAA,KAEA2tD,cAAA,WACA,GAAA3nC,MAAArb,KAAAgX,KAIA,OAHAqE,MAAArkB,OAAA,KACAqkB,MAAArb,KAAAshC,OAAAhlC,OAAA,EAAA,GAAA+e,KAAArkB,UAEAqkB,KAAA/e,OAAA,EAAA,KAAA+e,KAAArkB,OAAA,GAAA,MAAA,KAAA3B,QAAA,MAAA,KAEA8sD,aAAA,WACA,GAAAc,KAAAjjD,KAAA8iD,YACA9tD,EAAA,GAAA+N,OAAAkgD,IAAAjsD,OAAA,GAAA+O,KAAA,IACA,OAAAk9C,KAAAjjD,KAAAgjD,gBAAA,KAAAhuD,EAAA,KAEAqmB,KAAA,WACA,GAAArb,KAAAQ,KACA,MAAAR,MAAA47C;AAEA57C,Afv6BA,Keu6BAshC,SAAAthC,KAAAQ,MAAA,EAEA,IAAA8vC,OACAt5B,MACAksC,UACArsC,MAEA4rC,KACAziD,MAAAqiD,QACAriD,KAAAo/C,OAAA,GACAp/C,KAAAgX,MAAA,GAGA,KAAA,GADAmsC,OAAAnjD,KAAAojD,gBACA/mD,EAAA,EAAAA,EAAA8mD,MAAAnsD,SACAksD,UAAAljD,KAAAshC,OAAAtqB,MAAAhX,KAAAmjD,MAAAA,MAAA9mD,MACA6mD,WAAAlsC,SAAAksC,UAAA,GAAAlsD,OAAAggB,MAAA,GAAAhgB,UACAggB,MAAAksC,UACArsC,MAAAxa,EACA2D,KAAA8O,QAAAu0C,OALAhnD,KAQA,MAAA2a,QACAyrC,MAAAzrC,MAAA,GAAAA,MAAA,mBACAyrC,QAAAziD,KAAAs/C,UAAAmD,MAAAzrD,QACAgJ,KAAA0hD,QAAAtJ,WAAAp4C,KAAA0hD,OAAAjJ,UACAA,UAAAz4C,KAAAs/C,SAAA,EACAjH,aAAAr4C,KAAA0hD,OAAAnJ,YACAA,YAAAkK,MAAAA,MAAAA,MAAAzrD,OAAA,GAAAA,OAAAyrD,MAAAA,MAAAzrD,OAAA,GAAAggB,MAAA,UAAA,GAAAhgB,OAAAgJ,KAAA0hD,OAAAnJ,YAAAvhC,MAAA,GAAAhgB,QACAgJ,KAAAo/C,QAAApoC,MAAA;AACAhX,Afn8BA,Kem8BAgX,OAAAA,MAAA,GACAhX,KAAAgT,QAAAgE,MACAhX,KAAAq/C,OAAAr/C,KAAAo/C,OAAApoD,OACAgJ,KAAA8O,QAAA8yC,SACA5hD,KAAA0hD,OAAAtrB,OAAAp2B,KAAA8oB,OAAA9oB,KAAA8oB,QAAA9oB,KAAAq/C,SAEAr/C,KAAAqiD,OAAA,EACAriD,KAAAshC,OAAAthC,KAAAshC,OAAA5nC,MAAAsd,MAAA,GAAAhgB,QACAgJ,KAAAuiD,SAAAvrC,MAAA,GACAs5B,MAAAtwC,KAAAm/C,cAAA3oD,KAAAwJ,KAAAA,KAAAw7C,GAAAx7C,KAAAmjD,MAAAtsC,OAAA7W,KAAAwiD,eAAAxiD,KAAAwiD,eAAAxrD,OAAA,IACAgJ,KAAAQ,MAAAR,KAAAshC,SAAAthC,KAAAQ,MAAA,GACA8vC,MAAAA,MACA,QAEA,KAAAtwC,KAAAshC,OACAthC,KAAA47C,IAEA57C,KAAAkhD,WAAA,0BAAAlhD,KAAAs/C,SAAA,GAAA,yBAAAt/C,KAAAmiD,gBACAlpD,KAAA,GAAAq3C,MAAA,KAAA2D,KAAAj0C,KAAAs/C,YAGA6B,IAAA,WACA,GAAA59C,GAAAvD,KAAAqb,MACA,OAAA,mBAAA9X,GACAA,EAEAvD,KAAAmhD,OAGAmC,MAAA,SAAAC;AACAvjD,Afh+BA,Keg+BAwiD,eAAA3iD,KAAA0jD,YAEAC,SAAA,WACA,MAAAxjD,MAAAwiD,eAAAvrD,OAEAmsD,cAAA,WACA,MAAApjD,MAAAyjD,WAAAzjD,KAAAwiD,eAAAxiD,KAAAwiD,eAAAxrD,OAAA,IAAAmsD,OAEAO,SAAA,WACA,MAAA1jD,MAAAwiD,eAAAxiD,KAAAwiD,eAAAxrD,OAAA,IAEA2sD,UAAA,SAAAJ,WACAvjD,KAAAsjD,MAAAC,YAiGA,OA/FAnC,OAAAtyC,WACAsyC,MAAAjC,cAAA,SAAA3D,GAAAoI,IAAAC,0BAAAC,UAGA,QAAA9K,OAAA94C,MAAA+B,KACA,MAAA2hD,KAAAxE,OAAAwE,IAAAxE,OAAA9iD,OAAA4D,MAAA0jD,IAAAvE,OAAAp9C,KAKA,OAAA4hD,2BACA,IAAA,GAUA,GATA,SAAAD,IAAAxE,OAAA1lD,MAAA,KACAs/C,MAAA,EAAA,GACAh5C,KAAAsjD,MAAA,OACA,OAAAM,IAAAxE,OAAA1lD,MAAA,KACAs/C,MAAA,EAAA,GACAh5C,KAAAsjD,MAAA,QAEAtjD,KAAAsjD,MAAA;AAEAM,AflgCA,IekgCAxE,OAAA,MAAA,GAEA,MACA,KAAA,GAAA,MAAA,GAEA,KAAA,GAEA,MADAp/C,MAAAwjD,WACA,EAGA,KAAA,GAAA,MAAAxK,OAAA,EAAA,GAAAh5C,KAAAwjD,WAAA,EAEA,KAAA,GAAA,MAAA,GAEA,KAAA,GAAA,MAAA,GAEA,KAAA,GAAA,MAAA,GAEA,KAAA,GAAA,MAAA,GAEA,KAAA,GAAA,MAAA,GAEA,KAAA,GAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAAxjD,KAAAwjD,WAAAxjD,KAAAsjD,MAAA,MACA,MACA,KAAA,IAAA,MAAAtK,OAAA,EAAA,GAAAh5C,KAAAwjD,WAAA,EAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IACA,KACA,KAAA,IAAA,MAAAxjD,MAAAwjD,WAAA,EAEA,KAAA,IAAA,MAAAxjD,MAAAwjD,WAAA,EAEA,KAAA,IAAA,MAAAI,KAAAxE,OAAApG,MAAA,EAAA,GAAA3jD,QAAA,OAAA,KAAA,EAEA,KAAA,IAAA,MAAAuuD,KAAAxE,OAAApG,MAAA,EAAA,GAAA3jD,QAAA,OAAA,KAAA,EAEA,KAAA;AAAA,AfvjCA,MeujCA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAA,GAEA,KAAA,IAAA,MAAAuuD,KAAAxE,OAAApG,MAAA,EAAA,GAAA,EAEA,KAAA,IAAA,MAAA,SAEA,KAAA,IAAA,MAAA,KAIAoI,MAAA+B,OAAA,2BAAA,gBAAA,gDAAA,sBAAA,UAAA,UAAA,iBAAA,iBAAA,kBAAA,kBAAA,yBAAA,kBAAA,iBAAA,eAAA,yBAAA,gBAAA,SAAA,YAAA,2BAAA,aAAA,WAAA,kBAAA,gBAAA,uBAAA,uBAAA,SAAA,yBAAA,0BAAA,6BAAA,yDAAA,kBAAA,SAAA;AACA/B,AfzkCA,MeykCAqC,YAAAM,IAAAZ,OAAA,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,GAAA,GAAA,IAAAa,WAAA,GAAAC,KAAAd,OAAA,GAAAa,WAAA,GAAAE,KAAAf,OAAA,GAAAa,WAAA,GAAAG,SAAAhB,OAAA,EAAA,EAAA,IAAAa,WAAA,IACA5C,QAGA,OAFA3F,QAAA2F,MAAAA,MACA7F,OAAAp5C,UAAAs5C,OAAAA,OAAAF,OAAAA,OACA,GAAAA,UAGA,OAFAjI,aAAA+H,cAMA+I,YAAA,SAAA5Q,gBAAAiB,iBACA,YAOA,SAAAttC,OAAA0S,OAEA,MAAAA,OAAApV,cAAAi0C,IAAAC,YAAA9+B,OAEA4hC,OAAAD,GAAA9C,IACA+C,OAAAt0C,MAAA0S,QAXA,GAAAy5B,gBACAmI,OAAAjI,gBACAkF,IAAAjE,eAaA,OAXAnB,aAAAmI,OAAAA,OAUAnI,YAAAnsC,MAAAA,MACAmsC,aACA8H,YAAAnD,aAGAoM,aAAA,SAAA7Q;AACA,AfzmCA,Ye6mCA,SAAA8Q,aAqaA,QAAAC,YAAA1qC,MAAA/K,QAAAgoC,KACA,GAAA,MAAAj9B,OAAA,gBAAAA,QAAAA,MAAApV,cAAAqyC,IAAA4B,IAAAC,YACA,KAAA,IAAA3E,WAAA,iFAAAn6B,MAGA/K,SAAAA,YACA,QAAAA,WACAA,QAAAjZ,MAAA,EAGA,IAAA2uD,KAAA1N,IAAA3vC,MAAA0S,OACA4qC,aAAA,GAAA3N,KAAAwN,UAAA3pC,QAAA6pC,IAAA11C,QACA,QAAA,GAAAgoC,KAAA4N,oBAAA/pC,QAAA8pC,YAAA31C,SAGA,QAAA6L,SAAAd,MAAA/K,QAAAgoC,KAaA,QAAA6N,gBACA,GAAAH,KAAA1N,IAAA3vC,MAAA0S,OACA4qC,aAAA,GAAA3N,KAAAwN,UAAA3pC,QAAA6pC,IAAA11C,SACA+nC,cAAA,GAAAC,KAAA4N,oBAAA/pC,QAAA8pC,YAAA31C,QAAAib,QAAA;AACA,AfjjDA,MeijDA+sB,KAAAzd,SAAAwd,cAhBA,GAAA,MAAAh9B,OAAA,gBAAAA,QAAAA,MAAApV,cAAAqyC,IAAA4B,IAAAC,YACA,KAAA,IAAA3E,WAAA,8EAAAn6B,MAGA/K,SAAAA,YAEA,QAAAA,WACAA,QAAAjZ,MAAA,EAGA,IAAA+uD,SAUA,OAAA,UAAAlgD,QAAAoK,SAIA,MAHA81C,YACAA,SAAAD,gBAEAC,SAAApuD,KAAAwJ,KAAA0E,QAAAoK,UAhdA,GAAAwkC,gBACAU,UAAAR,eAodA,OAhdAF,aAAAgR,SAAAA,SAKAA,SAAAniD,WACA0iD,SAAAP,SAEAQ,YAAA,WAGA,IAAA,GAFAC,QAAAvL,OAAAx3B,MAAAgjC,QAAAhlD,KAAAglD,QAAAC,OAEA5oD,EAAA,EAAAM,EAAAqoD,QAAAhuD,OAAA2F,EAAAN,EAAAA,IAGA,GAFA0oD,OAAAC,QAAA3oD,GAEA,YAAA0oD,OAAAA,OACAE,IAAAplD,KAAA,WAAAklD,OAAAl4C,KAAA,IAAAk4C,OAAAlsD,WACA;AACA2gD,Af9nCA,Se+nCA,KAAA,GAAA/8C,GAAA,EAAAA,EAAAsoD,OAAA1f,KAAAruC,OAAAyF,IACAulB,MAAA+iC,OAAA1f,KAAA5oC,GACA,gBAAAulB,SACAA,MAAA,IAAAA,MAAA3sB,QAAA,KAAA,OAAA,KAEAmkD,OAAA35C,KAAAmiB,MAEAijC,KAAAplD,KAAAklD,OAAAA,OAAA,IAAAvL,OAAAzzC,KAAA,MAIA,MAAAk/C,KAAAl/C,KAAA,OAGAm/C,OAAA,SAAAC,OACA,GAAA9Y,KAAArsC,KAAAglD,QAAAhuD,MACA,IAAAmuD,MAAAH,QAAAhuD,SAAAq1C,IACA,OAAA,CAGA,KAAA,GAAAhwC,GAAA,EAAAgwC,IAAAhwC,EAAAA,IAAA,CACA,GAAA0oD,QAAA/kD,KAAAglD,QAAA3oD,GACA+oD,YAAAD,MAAAH,QAAA3oD,EACA,IAAA0oD,OAAAA,SAAAK,YAAAL,QAAAA,OAAA1f,KAAAruC,SAAAouD,YAAA/f,KAAAruC,OACA,OAAA,CAEA,KAAA,GAAAyF,GAAA,EAAAA,EAAAsoD,OAAA1f,KAAAruC,OAAAyF,IACA,GAAAsoD,OAAA1f,KAAA5oC,KAAA2oD,YAAA/f,KAAA5oC,GACA,OAAA,EAMA,GADA4vC,IAAArsC,KAAAob,SAAApkB,OACAmuD,MAAA/pC,SAAApkB,SAAAq1C,IACA,OAAA,CAEA,KAAAhwC,EAAA,EAAAgwC,IAAAhwC,EAAAA,IACA,IAAA2D,KAAAob,SAAA/e,GAAA6oD,OAAAC,MAAA/pC,SAAA/e,IACA,OAAA;AAIA,AfzqCA,OeyqCA,GAGA0L,KAAA,EAEA4S,QAAA,SAAAy8B,QAAAtoC,SACA9O,KAAAglD,WACAhlD,KAAAob,YACApb,KAAAqlD,QAAAC,SACAtlD,KAAA8O,QAAAA,OAGA,IAAAy2C,cAAAvlD,KAAA8O,QAAAy2C,YAUA,IATAvlD,KAAA8O,QAAAy2C,cACAC,eAAA,EACAC,oBAAA,EACA5wD,MAAA,EACA6wD,MAAA,EACAC,QAAA,EACAC,QAAA,EACA3a,KAAA,GAEAsa,aACA,IAAA,GAAA14C,QAAA04C,cACAvlD,KAAA8O,QAAAy2C,aAAA14C,MAAA04C,aAAA14C,KAIA,OAAA7M,MAAA6lD,OAAAzO,UAGAyO,OAAA,SAAAppB,MACA,GACAwY,KADA+D,MAAAvc,KAAAuc,SAYA,OAVAA,OAAA93B,MACAlhB,KAAA+kD,OAAA,SAGA9P,IAAAj1C,KAAAy8B,KAAA/jC,MAAA+jC,MAEAuc,MAAAxQ,OACAxoC,KAAA+kD,OAAA,SAGA9P,KAGAmC,QAAA,SAAAA,SAGA,IAAA,GAFAwB,YAAAxB,QAAAwB,WAEAv8C,EAAA,EAAAM,EAAAi8C,WAAA5hD,OAAA2F,EAAAN,EAAAA,IACA2D,KAAA6lD,OAAAjN,WAAAv8C;AAQA,AfnuCA,Me6tCA2D,MAAA25C,SAAA,IAAAh9C,EAEAqD,KAAAqlD,OAAAC,KAAAtlD,KAAAqlD,OAAAC,KAAAr/C,KAAA,SAAAzR,EAAAC,GACA,MAAAD,GAAAC,IAGAuL,MAGA8lD,eAAA,SAAA1O,SACA,GACAK,OADAplC,QAAA,GAAArS,MAAA6kD,UAAAlqC,QAAAy8B,QAAAp3C,KAAA8O,SACA/G,KAAA/H,KAAA+H,MAEA/H,MAAA+lD,WAAA/lD,KAAA+lD,YAAA1zC,OAAA0zC,WAEA/lD,KAAAob,SAAArT,MAAAsK,MAEA,KAAA,GAAAhW,GAAA,EAAAM,EAAA0V,OAAAgzC,OAAAC,KAAAtuD,OAAA2F,EAAAN,EAAAA,IACAo7C,MAAAplC,OAAAgzC,OAAAC,KAAAjpD,GAEA,EAAAo7C,OACAz3C,KAAAgmD,SAAAvO,MAAA,EAGA,OAAA1vC,OAGAk+C,MAAA,SAAAA,OACA,GAAAlM,UAAAkM,MAAAlM,SACA3C,QAAA6O,MAAA7O,QACApC,QAAAiR,MAAAjR,OAEAoC,WACAA,QAAAp3C,KAAA8lD,eAAA1O,UAGApC,UACAA,QAAAh1C,KAAA8lD,eAAA9Q,SAGA,IAAAsE,OAAAS,SAAAT,MACA5gD,KAAAsH,KAAAkmD,cAAA5M,MAEA,YAAA5gD,KACAsH,KAAAmmD,YAAA7M,MAAAlC,QAAApC,SACA,WAAAt8C,MACAsH,KAAAomD,YAAA9M;AAIAt5C,Af9wCA,Ke8wCA+kD,OAAA,cAAA3N,SACAp3C,KAAA+kD,OAAA,cAAA/P,SACAh1C,KAAA+kD,OAAA,aACA/kD,KAAA+kD,OAAA,gBAEA/kD,KAAAqmD,eAAA/M,MAAAlC,QAAApC,SAIAh1C,KAAA+kD,OAAA,cAAA3N,SACAp3C,KAAA+kD,OAAA,cAAA/P,SACAh1C,KAAA+kD,OAAA,aACA/kD,KAAA+kD,OAAA,wBAGA/kD,KAAA+kD,OAAA,WAGA3P,KAAA,SAAAA,MACA,GAAAkR,MAAA/3C,IAAAunB,MAAAsf,KAAAtf,KAEA91B,MAAA+kD,OAAA,WAEA,KAAA,GAAA1oD,GAAA,EAAAM,EAAAm5B,MAAA9+B,OAAA2F,EAAAN,EAAAA,IACAiqD,KAAAxwB,MAAAz5B,GACAkS,IAAA+3C,KAAA,GAEAtmD,KAAA8O,QAAAy3C,cACAh4C,IAAAkpC,OACAz3C,KAAAgmD,SAAAz3C,IAAAkpC,OAEAz3C,KAAA+kD,OAAA,aAAAx2C,IAAAkpC,OAAA,GACAz3C,KAAA+kD,OAAA,kBAAAx2C,IAAAmsC,gBAAAnsC,IAAA7V,MAEA,UAAA6V,IAAA7V,MAGAsH,KAAAs5C,MAAA/qC,MAGAvO,KAAA6lD,OAAAt3C;AAGAvO,AfxzCA,KewzCA+kD,OAAA,eAAAuB,KAAA,GAEAtmD,MAAA+kD,OAAA,YAGAhvB,QAAA,SAAAA,SACA,GAAA8jB,aAAA9jB,QAAA8jB,WACA75C,MAAA+lD,YAAA,EAEAhwB,QAAArxB,QACA1E,KAAAuX,GAAAwe,QAAArxB,SAEA1E,KAAA+kD,OAAA,OAAA,UAGA/kD,KAAA+kD,OAAA,gBAAAlL,YAAAhtC,MACA7M,KAAA+kD,OAAA,WAGAr7B,QAAA,SAAAA,SACA1pB,KAAA+kD,OAAA,gBAAAr7B,QAAAS,SAGA4vB,SAAA,SAAAA,UACA/5C,KAAAs5C,MAAAS,SAAAT,OAEAS,SAAAX,UAAAp5C,KAAA8O,QAAA03C,SACAxmD,KAAA+kD,OAAA,iBAEA/kD,KAAA+kD,OAAA,WAIAsB,eAAA,SAAA/M,MAAAlC,QAAApC,SACA,GAAAhwC,IAAAs0C,MAAAt0C,GACA6H,KAAA7H,GAAAs1C,MAAA,GACAmM,QAAA,MAAArP,SAAA,MAAApC,OAEAh1C,MAAA+kD,OAAA,aAAA//C,GAAAyyC,OAEAz3C,KAAA+kD,OAAA,cAAA3N;AACAp3C,Afh2CA,Keg2CA+kD,OAAA,cAAA/P,SAEAh1C,KAAA+kD,OAAA,kBAAAl4C,KAAA45C,UAGAL,YAAA,SAAA9M,OACA,GAAAt0C,IAAAs0C,MAAAt0C,EAEA,UAAAA,GAAAtM,KACAsH,KAAAw9C,KAAAx4C,IACAA,GAAAs1C,MAAAtjD,OACAgJ,KAAAuX,GAAAvS,KAGAhF,KAAAgmD,SAAAhhD,GAAAyyC,OACAz3C,KAAA+kD,OAAA,aAAA//C,GAAAyyC,OACAz3C,KAAA+kD,OAAA,gBAGA/kD,KAAA+kD,OAAA,0BAGAoB,YAAA,SAAA7M,MAAAlC,QAAApC,SACA,GAAAwE,QAAAx5C,KAAA0mD,wBAAApN,MAAAlC,QAAApC,SACAnoC,KAAAysC,MAAAt0C,GAAAs1C,MAAA,EAEA,IAAAt6C,KAAA8O,QAAAy2C,aAAA14C,MACA7M,KAAA+kD,OAAA,oBAAAvL,OAAAxiD,OAAA6V,UACA,CAAA,GAAA7M,KAAA8O,QAAA63C,iBACA,KAAA,IAAA3S,WAAA,+DAAAnnC,KAAAysC,MAEAt5C,MAAA+kD,OAAA,eAAAvL,OAAAxiD,OAAA6V,KAAAysC,MAAAC;Af93CA,Gek4CAD,MAAA,SAAAA,OACA,GAAA5gD,MAAAsH,KAAAkmD,cAAA5M,MAEA,YAAA5gD,KACAsH,KAAAomD,YAAA9M,OACA,WAAA5gD,KACAsH,KAAAmmD,YAAA7M,OAEAt5C,KAAAqmD,eAAA/M,QAIA/hC,GAAA,SAAAvS,IACAhF,KAAAgmD,SAAAhhD,GAAAyyC,OACAz3C,KAAA+kD,OAAA,aAAA//C,GAAAyyC,MAEA,IAAA5qC,MAAA7H,GAAAs1C,MAAA,EACAztC,MAGA7M,KAAA+kD,OAAA,kBAAA//C,GAAAs1C,MAAA,IAFAt6C,KAAA+kD,OAAA,cAKA,KAAA,GAAA1oD,GAAA,EAAAM,EAAAqI,GAAAs1C,MAAAtjD,OAAA2F,EAAAN,EAAAA,IACA2D,KAAA+kD,OAAA,SAAA//C,GAAAs1C,MAAAj+C,KAIAmhD,KAAA,SAAA3nD,MAEA,GADAmK,KAAA8O,QAAAjZ,MAAA,EACAA,KAAAmP,GAAAy1C,UAAA5kD,KAAAmP,GAAAyyC,MACA,KAAA,IAAAzD,WAAA,6CAAAn+C,KAAAmkD,SAAAnkD,KAGAmK,MAAA+kD,OAAA,aAEA,KAAA,GADAzK,OAAAzkD,KAAAmP,GAAAs1C,MACAj+C,EAAA,EAAAM,EAAA29C,MAAAtjD,OAAA2F,EAAAN,EAAAA,IACA2D,KAAA+kD,OAAA,SAAAzK,MAAAj+C;Aft6CA,Ee06CA2gD,OAAA,SAAA7yB,QACAnqB,KAAA+kD,OAAA,aAAA56B,OAAAA,SAGA8yB,QAAA,SAAAlC,SACA/6C,KAAA+kD,OAAA,cAAAhK,QAAAA,UAGAmC,QAAA,SAAAjC,MACAj7C,KAAA+kD,OAAA,cAAA9J,KAAAA,OAGAE,QAAA,aAGA4J,OAAA,SAAAl4C,MACA7M,KAAAglD,QAAAnlD,MAAAklD,OAAAl4C,KAAAw4B,QAAA3rC,MAAAlD,KAAAsP,UAAA,MAGA8gD,QAAA,SAAA/5C,KAAAhU,OACAmH,KAAAglD,QAAAnlD,MAAAklD,OAAA,UAAAl4C,KAAAA,KAAAhU,MAAAA,SAGAmtD,SAAA,SAAAvO,OACA,IAAAA,QAEAz3C,KAAAqlD,OAAA5N,SACAz3C,KAAAqlD,OAAA5N,QAAA,EACAz3C,KAAAqlD,OAAAC,KAAAzlD,KAAA43C,UAIAyO,cAAA,SAAA5M,OACA,GAAAI,UAAAJ,MAAAI,SACAmN,WAAAvN,MAAAG,eACA3qC,QAAA9O,KAAA8O,OAGA,IAAA+3C,aAAAnN,SAAA,CACA,GAAA7sC,MAAAysC,MAAAt0C,GAAAs1C,MAAA;AAEAxrC,Afl9CA,Qek9CAy2C,aAAA14C,MACA6sC,UAAA,EACA5qC,QAAA63C,mBACAE,YAAA,GAIA,MAAAnN,UAAA,SACAmN,WAAA,YACA,UAGAC,WAAA,SAAAtN,QAGA,IAFA,GAAAx3B,OAAA3lB,EAAAm9C,OAAAxiD,OAEAqF,KACA2lB,MAAAw3B,OAAAn9C,GAEA2D,KAAA8O,QAAAy3C,cACAvkC,MAAAy1B,OACAz3C,KAAAgmD,SAAAhkC,MAAAy1B,OAGAz3C,KAAA+kD,OAAA,aAAA/iC,MAAAy1B,OAAA,GACAz3C,KAAA+kD,OAAA,kBAAA/iC,MAAA04B,gBAAA14B,MAAAtpB,MAEA,UAAAspB,MAAAtpB,MAGAsH,KAAAs5C,MAAAt3B,QAGAhiB,KAAAgiB,MAAAtpB,MAAAspB,QAKA0kC,wBAAA,SAAApN,MAAAlC,QAAApC,SACA,GAAAwE,QAAAF,MAAAE,MAYA,OAXAx5C,MAAA8mD,WAAAtN,QAEAx5C,KAAA+kD,OAAA,cAAA3N,SACAp3C,KAAA+kD,OAAA,cAAA/P,SAEAsE,MAAAlE,KACAp1C,KAAAo1C,KAAAkE,MAAAlE,MAEAp1C,KAAA+kD,OAAA;AAGAvL,AfngDA,SeshDAlG,YAAAiR,WAAAA,WA6BAjR,YAAA34B,QAAAA,QACA24B,aACAS,aAGAgT,aAAA,SAAAvT,gBAAAiB,iBACA,YAOA,SAAAuS,SAAAnuD,OACAmH,KAAAnH,MAAAA,MAGA,QAAA6rD,uBAVA,GAAApR,aACAkC,kBAAAhC,gBAAAgC,kBACAC,iBAAAjC,gBAAAiC,iBACAxK,IAAAuI,gBAAAvI,IACA+I,UAAAS,eAQAiQ,oBAAAviD,WAGA8kD,WAAA,SAAA/tC,OAAArM,MACA,GAAAmR,MACAi3B,GAcA,OAbA,KAAA/7B,OAAAlW,QAAA,WACAgb,MAAA,GAIAi3B,IADA,WAAAv/C,KAAAmX,MACAqM,OAAA,IAAArM,KAAA,IACA63C,mBAAAwC,8BAAAr6C,MACAqM,OAAA,IAAArM,KAGAqM,OAAA,KAAArM,KAAA,KAGAmR,KACA,IAAA9E,OAAA,OAAA+7B,IAAA,IAEAA;Af3lDA,Ee+lDAuB,aAAA,WACA,GAAA2Q,UAAA3R,kBACAhZ,SAAAiZ,iBAAA0R,SACA,OAAA,wBAAAA,SAAA,KAAA3qB,SAAA,SAGA4qB,eAAA,SAAAj9B,QACA,MAAAnqB,MAAAykD,YAAA9K,SACA,UAAAxvB,OAAA,KAGAi9B,gBAAA,EACA19B,QAAAS,OACAjnB,SAAA,WAAA,MAAA,aAAAinB,OAAA,OAKAk9B,iBAAA,WACA,MAAArnD,MAAAsnD,aAAA,KAGAh2C,UAAA,aAGAqJ,QAAA,SAAA8pC,YAAA31C,QAAApK,QAAA6iD,UACAvnD,KAAAykD,YAAAA,YACAzkD,KAAA8O,QAAAA,YAEAm8B,IAAA,QAAAjrC,KAAAykD,YAAAK,cAAA,QAEA9kD,KAAA6M,KAAA7M,KAAAykD,YAAA53C,KACA7M,KAAAwnD,UAAA9iD,QACA1E,KAAA0E,QAAAA,UACAyyC,YACAsQ;AACAC,AfloDA,YeqoDA1nD,KAAA2nD,WAEA3nD,KAAA4nD,UAAA,EACA5nD,KAAA6nD,aACA7nD,KAAA8nD,WAAAxC,SACAtlD,KAAA+nD,UACA/nD,KAAAgoD,gBACAhoD,KAAAioD,eAEAjoD,KAAAkoD,gBAAAzD,YAAA31C,QAEA,IAAAi2C,QAAAC,QAAAP,YAAAO,OAEAhlD,MAAA3D,EAAA,CAEA,KAAA,GAAAM,GAAAqoD,QAAAhuD,OAAAgJ,KAAA3D,EAAAM,EAAAqD,KAAA3D,IACA0oD,OAAAC,QAAAhlD,KAAA3D,GAEA,YAAA0oD,OAAAA,OACA/kD,KAAA+kD,OAAAl4C,MAAAk4C,OAAAlsD,MAEAmH,KAAA+kD,OAAAA,QAAAl/C,MAAA7F,KAAA+kD,OAAA1f,MAIA0f,OAAAA,SAAA/kD,KAAAmoD,YACAnoD,KAAAmoD,WAAA,EAOA,IAFAnoD,KAAAooD,WAAA,IAEApoD,KAAA4nD,WAAA5nD,KAAAioD,YAAAjxD,QAAAgJ,KAAAgoD,aAAAhxD,OACA,KAAA,IAAAg9C,WAAA,+CAGA,OAAAh0C,MAAAqoD,sBAAAd,WAGAI,SAAA;AACA,Af7qDA,Ge6qDA1C,OAEA,IAAAjlD,KAAAwnD,QAQAvC,IAAAplD,KAAA,QARA,CACA,GAAAyR,WAAAtR,KAAAsR,UAEAg3C,OAAA,iCAAAh3C,UAAA,YACAtR,MAAAykD,YAAAsB,aAAAuC,OAAAA,OAAA,oCAAAh3C,UAAA,eACAtR,KAAA8O,QAAAjZ,OAAAyyD,QAAA,uBACArD,IAAAplD,KAAAyoD,QAKAtoD,KAAAykD,YAAA9K,SAGAsL,IAAAplD,KAAA,IAFAolD,IAAAplD,KAAA,cAAAG,KAAAqnD,oBAOArnD,KAAAuoD,YAAA,EACAvoD,KAAAsD,OAAA2hD,KAGAoD,sBAAA,SAAAd,UACA,GAAAiB,QAAAxoD,KAAA6nD,UAAArpD,OAAAwB,KAAA8nD,UAAAxC,KAOA,IALAkD,OAAAxxD,OAAA,IACAgJ,KAAAsD,OAAA,GAAAtD,KAAAsD,OAAA,GAAA,KAAAklD,OAAAziD,KAAA,QAIA/F,KAAAwnD,QACA,IAAA,GAAAiB,SAAAzoD,MAAA0E,QAAAgjD,QACA1nD,KAAA0E,QAAAgjD,QAAAvkD,eAAAslD,SACAzoD,KAAAsD,OAAA,GAAAtD,KAAAsD,OAAA,GAAA,KAAAmlD,MAAA,IAAAzoD,KAAA0E,QAAAgjD,QAAAe;AAKAzoD,AfrtDA,KeqtDAsD,OAAA,KACAtD,KAAAsD,OAAA,GAAA,OAAAtD,KAAAsD,OAAA,GAAAwJ,UAAA,GAAA,KAIA9M,KAAAwnD,UACAxnD,KAAAsD,OAAA,IAAA,KAAAtD,KAAA0E,QAAAyyC,SAAApxC,KAAA,MAAA,MAGA/F,KAAAykD,YAAA9K,UACA35C,KAAAooD,WAAA,iBAKA,KAAA,GAFA5O,QAAAx5C,KAAAwnD,SAAA,SAAA,SAAA,aAAA,SAAA,UAAA,WAAA,QAEAnrD,EAAA,EAAAM,EAAAqD,KAAAykD,YAAAY,OAAAC,KAAAtuD,OAAA2F,EAAAN,EAAAA,IACAm9C,OAAA35C,KAAA,QAAAG,KAAAykD,YAAAY,OAAAC,KAAAjpD,GAIA,IAAAiH,QAAAtD,KAAA0oD,aAMA,IAJA1oD,KAAAwnD,UACAlkD,OAAAtD,KAAAw2C,eAAAlzC,QAGAikD,SAGA,MAFA/N,QAAA35C,KAAAyD,QAEA8D,SAAAvB,MAAA7F,KAAAw5C,OAEA,IAAAmP,gBAAA,aAAA3oD,KAAA6M,MAAA,IAAA,IAAA2sC,OAAAzzC,KAAA,KAAA,UAAAzC,OAAA,GAEA,OADA2nC,KAAA,QAAA0d,eAAA;AACAA,AfrvDA,gBewvDAD,YAAA,WAKA,IAAA,GADAE,QADAtlD,OAAA,GAEAjH,EAAA,EAAAgwC,IAAArsC,KAAAsD,OAAAtM,OAAAq1C,IAAAhwC,EAAAA,IAAA,CACA,GAAA43C,MAAAj0C,KAAAsD,OAAAjH,EACA43C,MAAAmT,eAEAwB,OADAA,OACAA,OAAA,WAAA3U,KAAAvqB,QAEAuqB,KAAAvqB,SAGAk/B,SACAtlD,QAAA,aAAAslD,OAAA,QACAA,OAAA7+B,QAEAzmB,QAAA2wC,KAAA,QAGA,MAAA3wC,SAYAulD,WAAA,WACA7oD,KAAA0E,QAAAgjD,QAAAjC,mBAAA,4BAEA,IAAAjM,SAAA,SACAx5C,MAAA8oD,YAAA,EAAAtP,QAEAx5C,KAAA+oD,aAAA,SAAAC,SAEA,MADAxP,QAAA77C,OAAA,EAAA,EAAAqrD,SACA,2BAAAxP,OAAAzzC,KAAA,MAAA,OAUAkjD,oBAAA,WACAjpD,KAAA0E,QAAAgjD,QAAAjC,mBAAA,4BAEA,IAAAjM,SAAA;AACAx5C,Af9yDA,Ke8yDA8oD,YAAA,EAAAtP,OAEA,IAAAwP,SAAAhpD,KAAAkpD,UACA1P,QAAA77C,OAAA,EAAA,EAAAqrD,SAEAhpD,KAAAooD,WAAA,QAAApoD,KAAAmpD,WAAA,OAAAH,QAAA,8BAAAxP,OAAAzzC,KAAA,MAAA,SASAqjD,cAAA,SAAA1/B,SACA1pB,KAAAqpD,iBACA3/B,QAAA1pB,KAAAqpD,eAAA3/B,SAEA1pB,KAAAmoD,YACAz+B,QAAAA,QAAAr0B,QAAA,OAAA,KAGA2K,KAAAqpD,eAAA3/B,SAUAsvB,MAAA,WACAh5C,KAAAqpD,iBACArpD,KAAAqpD,eAAArpD,KAAAqpD,eAAAh0D,QAAA,OAAA,KAEA2K,KAAAmoD,UAAA,SAYAvqC,OAAA,WAGA5d,KAAAspD,aACA,IAAA9mB,OAAAxiC,KAAAupD,UACAvpD,MAAAooD,WAAA,MAAA5lB,MAAA,OAAAA,MAAA,aAAAxiC,KAAAonD,eAAA5kB,OAAA,MACAxiC,KAAAykD,YAAA9K,UACA35C,KAAAooD,WAAA,UAAApoD,KAAAonD,eAAA,MAAA;Afp2DA,Ee82DAoC,cAAA,WACAxpD,KAAA0E,QAAAgjD,QAAA/T,iBAAA,wBAEA3zC,KAAAooD,WAAApoD,KAAAonD,eAAA,oBAAApnD,KAAAupD,WAAA,OAUAxZ,WAAA,SAAA0H,OACAz3C,KAAAuoD,cAAA9Q,QACAz3C,KAAAuoD,YAAA9Q,QAWAgS,gBAAA,SAAA58C,MACA7M,KAAAH,KAAAG,KAAAinD,WAAA,QAAAjnD,KAAAuoD,YAAA17C,KAAA,aASA68C,YAAA,WACA1pD,KAAA2pD,iBAAA,QAAA3pD,KAAAuoD,cAUAqB,sBAAA,WACA5pD,KAAA0E,QAAAgjD,QAAAmC,aAAA,aAEA7pD,KAAA+oD,aAAA,SAAAC,SACA,MAAA,UAAAA,QAAA,uBAAAA,QAAA,oBAAAA,WAWAc,OAAA,SAAAj9C,MACA7M,KAAA+oD,aAAA,SAAAC;AACA,Af76DA,Me66DAA,SAAA,eAAAA,QAAA,gBAAAA,QAAA,MAAAhpD,KAAAinD,WAAA+B,QAAAn8C,KAAA,cAUAk9C,WAAA,WACA/pD,KAAA2pD,iBAAA,SAWAK,gBAAA,SAAA7/B,OAAAzxB,MACAsH,KAAA2pD,iBAAA,QAAA3pD,KAAAuoD,aAEAvoD,KAAAiqD,WAAAvxD,MAIA,UAAAA,OACA,gBAAAyxB,QACAnqB,KAAAiqD,WAAA9/B,QAEAnqB,KAAA2pD,iBAAAx/B,UAKA+/B,UAAA,WACAlqD,KAAA2pD,iBAAA,MAEA3pD,KAAA8O,QAAAy3C,eACAvmD,KAAAH,KAAA,MACAG,KAAAH,KAAA,QAGAsqD,SAAA,WACAnqD,KAAAo1C,MACAp1C,KAAA+nD,OAAAloD,KAAAG,KAAAo1C,MAEAp1C,KAAAo1C,MAAAte,UAAAszB,SAAAC,cAEAC,QAAA,WACA,GAAAlV,MAAAp1C,KAAAo1C,IACAp1C,MAAAo1C,KAAAp1C,KAAA+nD,OAAA9wD,MAEA+I,KAAA8O,QAAAy3C,eACAvmD,KAAAH,KAAA,IAAAu1C,KAAAiV,SAAAtkD,KAAA,KAAA;AACA/F,Aft+DA,Kes+DAH,KAAA,IAAAu1C,KAAAgV,MAAArkD,KAAA,KAAA,MAGA/F,KAAAH,KAAA,UAAAu1C,KAAAte,OAAA/wB,KAAA,WAAA,UASAkkD,WAAA,SAAA9/B,QACAnqB,KAAA2pD,iBAAA3pD,KAAAsnD,aAAAn9B,UASAtqB,KAAA,SAAAsb,MAEA,MADAnb,MAAAioD,YAAApoD,KAAAsb,MACAA,MAWAovC,YAAA,SAAA1xD,OACAmH,KAAA2pD,iBAAA9wD,QAWA2xD,YAAA,SAAAziD,MACA,MAAAA,KACA/H,KAAA2pD,iBAAA3pD,KAAAyqD,kBAAA1iD,OAEA/H,KAAA2pD,iBAAA,OAaAe,aAAA,SAAAC,UAAA99C,KAAA0sC,QACAv5C,KAAA0E,QAAAgjD,QAAAlC,cAAA,wBACAxlD,KAAA4qD,YAAA,SAEA,IAAAC,QAAA7qD,KAAAmpD,WAAAnpD,KAAA8qD,YAAAH,UAAA99C,MAAA,GACAk+C,UAAA/qD,KAAAinD,WAAA,QAAAjnD,KAAAuoD,YAAA17C,KAAA,WAEAi9C,OAAA,YAAAe,OAAAh+C,KAAA,OAAAk+C;AACAF,Af7iEA,Oe6iEAG,aACAlB,QAAA,IAAAe,OAAAG,YAGAhrD,KAAAH,KACA,IACAiqD,OACA,yBACAe,OAAAI,WAAA,0BACAJ,OAAAK,oBAAA,MAKA3R,QACAv5C,KAAAspD,eAWA6B,kBAAA,SAAAR,UAAA99C,MACA,GAAAg+C,QAAA7qD,KAAA8qD,YAAAH,UAAA99C,KACA7M,MAAAH,KAAAgrD,OAAAh+C,KAAA,SAAAg+C,OAAAI,WAAA,MAeAG,gBAAA,SAAAv+C,KAAAw+C,YACArrD,KAAA0E,QAAAgjD,QAAAmC,aAAA,aACA7pD,KAAA4qD,YAAA,UAEA5qD,KAAAkqD,WACA,IAAAW,QAAA7qD,KAAA8qD,YAAA,EAAAj+C,KAAAw+C,YAEAC,WAAAtrD,KAAAmpD,WAAAnpD,KAAAinD,WAAA,UAAAp6C,KAAA,UAEAk+C,UAAA/qD,KAAAinD,WAAA,QAAAjnD,KAAAuoD,YAAA17C,KAAA,WACA0+C,UAAAvrD,KAAAurD;AAEAV,AfnmEA,OemmEAG,YACAhrD,KAAAooD,WAAAyC,OAAAG,YAEAhrD,KAAAooD,WAAA,gBAAAkD,WAAA,OAAAC,UAAA,kBAAAV,OAAAI,WAAA,QACAjrD,KAAAooD,WAAA,mBAAA2C,UAAA,KAAAQ,UAAA,mDAAAV,OAAAI,WAAA,kBAUAhU,cAAA,SAAApqC,MACA,GAAA2sC,SAAAx5C,KAAAinD,WAAA,WAAAp6C,KAAA,WAAA,IAAAA,KAAA,IAAA7M,KAAAupD,WAAA,UAAA,WAEAvpD,MAAA8O,QAAAjZ,MACA2jD,OAAA35C,KAAA,QAGAG,KAAA0E,QAAAgjD,QAAAjlB,KAAA,OACAziC,KAAAH,KAAA,sBAAA25C,OAAAzzC,KAAA,MAAA,MAUAylD,aAAA,SAAAngB,KACA,GACA3mC,SACAhM,KAFAG,MAAAmH,KAAAupD,UAIAvpD,MAAA8O,QAAAy3C,eACA7tD,KAAAsH,KAAAupD;AACA7kD,AfzoEA,QeyoEA1E,KAAAupD,WAGA,IAAAnU,MAAAp1C,KAAAo1C,IACA1wC,UACA0wC,KAAAiV,SAAAxqD,KAAA,IAAAwrC,IAAA,MAAA3mC,SAEAhM,MACA08C,KAAAgV,MAAAvqD,KAAA,IAAAwrC,IAAA,MAAA3yC,MAEA08C,KAAAte,OAAAj3B,KAAA,IAAAwrC,IAAA,OAAAxyC,MAAA,MAKAgsD,SAAAH,mBAEAwD,gBAAA,SAAAzD,YAAA31C,SAGA,IAAA,GAFAoxB,OAAA2kB,SAAAzpC,SAAAqpC,YAAArpC,SAEA/e,EAAA,EAAAM,EAAAye,SAAApkB,OAAA2F,EAAAN,EAAAA,IAAA,CACA6jC,MAAA9kB,SAAA/e,GACAwoD,SAAA,GAAA7kD,MAAA6kD,QAEA,IAAAhuC,OAAA7W,KAAAyrD,qBAAAvrB,MAEA,OAAArpB,OACA7W,KAAA0E,QAAAyyC,SAAAt3C,KAAA,IACAgX,MAAA7W,KAAA0E,QAAAyyC,SAAAngD,OACAkpC,MAAArpB,MAAAA,MACAqpB,MAAArzB,KAAA,UAAAgK,MACA7W,KAAA0E,QAAAyyC,SAAAtgC,OAAAguC,SAAAlqC,QAAAulB,MAAApxB,QAAA9O,KAAA0E,SACA1E,KAAA0E,QAAA+iD,aAAA5wC,OAAAqpB,QAEAA,MAAArpB,MAAAA;AACAqpB,Af3qEA,Me2qEArzB,KAAA,UAAAgK,SAIA40C,qBAAA,SAAAvrB,OACA,IAAA,GAAA7jC,GAAA,EAAAgwC,IAAArsC,KAAA0E,QAAA+iD,aAAAzwD,OAAAq1C,IAAAhwC,EAAAA,IAAA,CACA,GAAAooD,aAAAzkD,KAAA0E,QAAA+iD,aAAAprD,EACA,IAAAooD,aAAAA,YAAAS,OAAAhlB,OACA,MAAA7jC,KAKAouD,kBAAA,SAAA1iD,MAGA,GAFA/H,KAAA0E,QAAAgjD,QAAAjlB,KAAA,OAEA,MAAA16B,KACA,MAAA,WAQA,KAAA,GAJA0vC,OADAvX,MAAAlgC,KAAAykD,YAAArpC,SAAArT,MACAs9C,OAAAnlB,MAAAmlB,OAAAC,KAEAoG,eAAAxrB,MAAArpB,MAAAqpB,MAAArzB,KAAA,QAEAxQ,EAAA,EAAAM,EAAA0oD,OAAAruD,OAAA2F,EAAAN,EAAAA,IACAo7C,MAAA4N,OAAAhpD,GAEA,IAAAo7C,MAAAiU,cAAA7rD,KAAA,UACA6rD,cAAA7rD,KAAA,SAAA43C,MAAA,GAGA,QAAA,IAAA4N,OAAAruD,OAAA,gBAAA,0BAAA00D,cAAA3lD,KAAA,MAAA,KAGA4lD,SAAA,SAAA9+C,KAAA0B;AACAvO,Af9sEA,Ke8sEA4qD,YAAA/9C,MACA7M,KAAAooD,WAAAv7C,KAAA,MAAA0B,IAAA,MAGAq8C,YAAA,SAAA/9C,MACA7M,KAAA8nD,UAAAj7C,QACA7M,KAAA8nD,UAAAj7C,OAAA,EACA7M,KAAA8nD,UAAAxC,KAAAzlD,KAAAgN,QAIA88C,iBAAA,SAAArf,MACA,MAAAtqC,MAAAH,KAAA,GAAAmnD,SAAA1c,QAGA8d,WAAA,SAAA9kD,QACAtD,KAAAqpD,iBACArpD,KAAAsD,OAAAzD,KAAAG,KAAAonD,eAAApnD,KAAAsnD,aAAAtnD,KAAAqpD,kBACArpD,KAAAqpD,eAAAt/B,QAGAzmB,QACAtD,KAAAsD,OAAAzD,KAAAyD,SAIAkC,UAAA,SAAA8kC,MACAtqC,KAAAspD,aAEA,IAAAjI,OAAArhD,KAAA4rD,WAKA,OAJAthB,OACAtqC,KAAAooD,WAAA/G,MAAA,MAAA/W,KAAA,KAEAtqC,KAAAgoD,aAAAnoD,KAAAwhD,OACAA,OAGA0H,aAAA,SAAAlrB,UACA,GAEAwjB,OACAwK,aACAC,YAJAC,OAAA,GACAC,OAAAhsD,KAAAisD;AAOA,Af3vEA,Ge2vEAD,OAAA,CACA,GAAAjgD,KAAA/L,KAAAupD,UAAA,EAEA,IAAAx9C,cAAAi7C,SAEA3F,MAAAt1C,IAAAlT,MACAizD,aAAA,MACA,CAEAD,cAAA7rD,KAAA4nD,SACA,IAAA/6C,MAAAg/C,aAAA7rD,KAAA4rD,YAAA5rD,KAAAksD,cAEAH,QAAA,IAAA/rD,KAAAH,KAAAgN,MAAA,MAAAd,IAAA,KACAs1C,MAAArhD,KAAAkpD,gBAGA7H,OAAArhD,KAAAkpD,UAGA,IAAA5e,MAAAzM,SAAArnC,KAAAwJ,KAAAqhD,MAkBA,OAhBA2K,SACAF,aACA9rD,KAAAupD,WAEAsC,cACA7rD,KAAA4nD,YAEA5nD,KAAAH,KAAA,IAAAksD,OAAAzhB,KAAA,OAGA,SAAA50C,KAAA2rD,SACAA,MAAArhD,KAAAurD,aAGAvrD,KAAAooD,WAAA/G,MAAA,OAAA0K,OAAAzhB,KAAA,OAEA+W,OAGAkK,UAAA,WACA,MAAAvrD,MAAAwF,aAGAomD,UAAA,WAGA,MAFA5rD,MAAA4nD,YACA5nD,KAAA4nD,UAAA5nD,KAAA6nD,UAAA7wD,QAAAgJ,KAAA6nD,UAAAhoD,KAAA,QAAAG,KAAA4nD;AACA5nD,AfzyEA,KeyyEAksD,gBAEAA,aAAA,WACA,MAAA,QAAAlsD,KAAA4nD,WAEA0B,YAAA,WACA,GAAArB,aAAAjoD,KAAAioD,WACA,IAAAA,YAAAjxD,OAAA,CACAgJ,KAAAioD,cACA,KAAA,GAAA5rD,GAAA,EAAAgwC,IAAA4b,YAAAjxD,OAAAq1C,IAAAhwC,EAAAA,IAAA,CACA,GAAAmnC,OAAAykB,YAAA5rD,EACAmnC,iBAAAwjB,SACAhnD,KAAAgoD,aAAAnoD,KAAA2jC,OAEAxjC,KAAAwF,UAAAg+B,UAKAyoB,SAAA,WACA,MAAAjsD,MAAAioD,YAAAjxD,QAGAuyD,SAAA,SAAA4C,SACA,GAAAH,QAAAhsD,KAAAisD,WACA3hB,MAAA0hB,OAAAhsD,KAAAioD,YAAAjoD,KAAAgoD,cAAA/wD,KAEA,KAAAk1D,SAAA7hB,eAAA0c,SACA,MAAA1c,MAAAzxC,KAEA,KAAAmzD,OAAA,CACA,IAAAhsD,KAAA4nD,UACA,KAAA,IAAA5T,WAAA,oBAEAh0C,MAAA4nD,YAEA,MAAAtd,OAIA4e,SAAA,SAAAiD;AACA,Afj1EA,Gei1EA9K,OAAArhD,KAAAisD,WAAAjsD,KAAAioD,YAAAjoD,KAAAgoD,aACA1d,KAAA+W,MAAAA,MAAArqD,OAAA,EAEA,QAAAm1D,SAAA7hB,eAAA0c,SACA1c,KAAAzxC,MAEAyxC,MAIAgd,aAAA,SAAA7U,KACA,MAAA,IAAAA,IACAp9C,QAAA,MAAA,QACAA,QAAA,KAAA,OACAA,QAAA,MAAA,OACAA,QAAA,MAAA,OACAA,QAAA,UAAA,WACAA,QAAA,UAAA,WAAA,KAGAy1D,YAAA,SAAAH,UAAA99C,KAAAu/C,eACA,GAAA5S,WACAwR,WAAAhrD,KAAA8oD,YAAA6B,UAAAnR,OAAA4S,eACAC,YAAArsD,KAAAinD,WAAA,UAAAp6C,KAAA,SAEA,QACA2sC,OAAAA,OACAwR,WAAAA,WACAn+C,KAAAw/C,YACApB,YAAA,UAAAzsD,OAAAg7C,QAAAzzC,KAAA,MACAmlD,oBAAAkB,gBAAA,SAAApsD,KAAAsnD,aAAAz6C,OAAArO,OAAAg7C,QAAAzzC,KAAA;Af92EA,Gek3EAumD,aAAA,SAAA3B,UAAAnR,QACA,GAAAx3B,OAAAgzB,QAAAoC,QAAAtoC,WAAAu7C,YAAAD,QAEAt7C,SAAAjP,KAAA,QAAAG,KAAAupD,YAEAvpD,KAAA8O,QAAAy3C,eACAz3C,QAAAjP,KAAA,aAAAG,KAAAupD,YACAz6C,QAAAjP,KAAA,gBAAAG,KAAAupD,aAGAvU,QAAAh1C,KAAAupD,WACAnS,QAAAp3C,KAAAupD,YAIAnS,SAAApC,WACAoC,UACAp3C,KAAA0E,QAAAgjD,QAAAjlB,KAAA,OACA2U,QAAA,aAGApC,UACAh1C,KAAA0E,QAAAgjD,QAAAjlB,KAAA,OACAuS,QAAA,aAGAlmC,QAAAjP,KAAA,WAAAm1C,SACAlmC,QAAAjP,KAAA,MAAAu3C,SAGA,KAAA,GAAA/6C,GAAA,EAAAsuD,UAAAtuD,EAAAA,IACA2lB,MAAAhiB,KAAAupD,WACA/P,OAAA35C,KAAAmiB,OAEAhiB,KAAA8O,QAAAy3C,eACA6D,MAAAvqD,KAAAG,KAAAupD,YACAc,SAAAxqD,KAAAG,KAAAupD;AAaA,Afl6EA,Mey5EAvpD,MAAA8O,QAAAy3C,eACAz3C,QAAAjP,KAAA,aAAAwqD,SAAAtkD,KAAA,KAAA,KACA+I,QAAAjP,KAAA,UAAAuqD,MAAArkD,KAAA,KAAA,MAGA/F,KAAA8O,QAAAjZ,MACAiZ,QAAAjP,KAAA,aAGAiP,SAKAg6C,YAAA,SAAA6B,UAAAnR,OAAAoR,aACA,GAAA97C,SAAA,IAAA9O,KAAAssD,aAAA3B,UAAAnR,QAAAzzC,KAAA,KAAA,GAEA,OAAA6kD,cACA5qD,KAAA4qD,YAAA,WACApR,OAAA35C,KAAA,WACA,WAAAiP,UAEA0qC,OAAA35C,KAAAiP,SACA,KAyBA,KAAA,GApBAy9C,eAAA,kYAgBAz3D,MAAA,KAEA03D,cAAA9H,mBAAA+H,kBAEApwD,EAAA,EAAAM,EAAA4vD,cAAAv1D,OAAA2F,EAAAN,EAAAA,IACAmwD,cAAAD,cAAAlwD,KAAA;AAWA,Afp9EA,Me48EAqoD,oBAAAwC,8BAAA,SAAAr6C,MACA,OAAA63C,mBAAA+H,eAAA5/C,OAAA,6BAAAnX,KAAAmX,OACA,GAEA,GAGAymC,YAAAoR,oBAEAlQ,YAAAT,aAGA2Y,YAAA,SAAAlZ,gBAAAiB,gBAAA6B,gBAAAqB,gBAAAC,iBACA,YACA,IAAAtE,aAEAH,WAAAK,gBAGAkF,IAAAjE,gBACA8G,OAAAjF,gBAAAmF,OACAt0C,MAAAmvC,gBAAAnvC,MACAm9C,SAAA3M,gBAAA2M,SACA3pC,QAAAg9B,gBAAAh9B,QACA4pC,WAAA5M,gBAAA4M,WACAG,mBAAA9M,gBAEA+U,QAAAxZ,WAAAnhB,OACAA,OAAA,WACA,GAAA+lB,IAAA4U,SAeA,OAbA5U,IAAAp9B,QAAA,SAAAd,MAAA/K;AACA,Af3+EA,Me2+EA6L,SAAAd,MAAA/K,QAAAipC,KAEAA,GAAAwM,WAAA,SAAA1qC,MAAA/K,SACA,MAAAy1C,YAAA1qC,MAAA/K,QAAAipC,KAGAA,GAAAW,IAAAA,IACAX,GAAAuM,SAAAA,SACAvM,GAAA2M,mBAAAA,mBACA3M,GAAAwD,OAAAA,OACAxD,GAAA5wC,MAAAA,MAEA4wC,GAOA,OAJA5E,YAAAnhB,SACAmhB,WAAAnhB,OAAAA,OAEAshB,YAAAH,YAEAuE,YAAAO,YAAAmM,YAAAC,aAAA0C,aAEA,OAAA2F,eAGA,OAAAvZ,cC9pFAvpB,OAAA,OAAA,aAAA,OAAA,UAAA,SAAAmuB,GAAArc,GAAA7qB,GACA,GAAA+7C,aACAC,UAAA,MAiEA,OA9DA9U,IAAAhD,eAAA,KAAA,SAAA1J,KACA,MAAA3P,IAAA2P,OAIA0M,GAAAhD,eAAA,OAAA,SAAA7O,IAAA4mB,KAAAC,UAAAvnB,SAEA,GAAAyP,KAAA,EAuBA,OApBA6X,MAAA,gBAAA,MAAAA,KAAA;AhB4IA,AgB3IAC,UAAA,gBAAA,WAAAA,UAAA,IACAvnB,QAAA,gBAAA,SAAAA,QAAA,IAEA30B,EAAAmkB,MAAAkR,IAAA,SAAArtC,MAAAwyC,KACA,OAAAxyC,OAAAkxB,SAAAlxB,MACA,iBAAA,OACAA,MAAAA,MAAA,OAAA,QACA,gBAAA,SACAA,MAAAgY,EAAAimB,OAAAj+B,OAAAkN,KAAA,MAGAlN,MAAA,GAEAo8C,KAAA5J,IAAAyhB,KAAAtnB,QAAA3sC,MAAA2sC,QAAAunB,YAEA9X,KACAA,IAAAnoC,UAAA,EAAAmoC,IAAAj+C,OAAA,GAGAi+C,MAKA8C,GAAAhD,eAAA,MAAA,SAAAiY,WAAAC,UAAAC,UAAAp+C,SACA,GAAAmmC,KAAA,EACA+X,YAAA/8C,SAAA+8C,YACAC,UAAAh9C,SAAAg9C,WACAC,UAAAj9C,SAAAi9C,UAEA,KAAA,GAAA7wD,GAAA2wD,WAAAC,UAAA5wD,EAAAA,GAAA6wD,UACAjY,KAAAnmC,QAAAzL,GAAAwN,EAAA9Y,UAAAiI,MAAA3D,EAAAA,IAGA,OAAA44C,OAGA8C,GAAAhD,eAAA,QAAA,SAAAoY,KAAAC,KAAAt+C;AhBuGA,AgBtGA,MAAAq+C,OAAAC,KACAt+C,QAAAzL,GAAArD,MAEA8O,QAAAkmC,QAAAh1C,QAMA+3C,GAAAhD,eAAA,WAAA,SAAAloC,KAAAnI,SACA,MAAAA,SAAAmI,OAAA,MAIA6H,KAAA,SAAA7H,KAAAwgD,IAAApnC,OAAA+U,QACA6xB,UAAAA,WAAA7xB,OAAA6xB,UAEA7xB,OAAAsyB,SAEAV,SAAA//C,MAAA0gD,GAAAC,aAAAH,IAAAI,MAAA5gD,KAAAggD,YAAA3pD,WACA+iB,UAGAonC,KAAA,QAAAxgD,KAAAggD,WAAA,SAAAa,KAEAznC,OAAA8xB,GAAAp9B,QAAA+yC,SAIA5xD,MAAA,SAAA6xD,WAAAC,WAAA9xD,OACA,GAAA8xD,aAAAhB,UAAA,CACA,GAAAhI,UAAA7M,GAAAwM,WAAAqI,SAAAgB,YAEA9xD,OACA,eAAA8xD,WAAA,yDACAhJ,SAAA1hD,WAAA,kBCtHA0mB,OAAA,4BAAA,cAAA,SAAAmuB;AjB0LA,AiBzLA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAA6R,cAAA7Q,QAAA6Q,aAkBA,OAfAoD,SAAA,kCACAiC,OAAAlW,QAAAY,OAAAuY,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAtY,MAAAuY,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,oCACAjD,OAAAlW,QAAAY,OAAAuY,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAtY;AjB8KA,AiB9KAuY,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,kCACAjD,OAAAlW,QAAA1D,KAAA6c,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA5c,IAAA6c,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,wCACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,iBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,iBAAA/+C,WACA;AjBuKA,KkBvKA8a,OAAA,eACA,SACA,SACA,qBACA,cACA,4BACA,SAAA9mB,EAAA+N,EAAA2hC,cAAAub,OAAAC,KA4DA,QAAA53C,UAAA63C,SAAAtpB,UAMA,MALA9zB,GAAA8zB,UAAAvP,YAAAN,QAAA,SAAAo5B,YACAD,SAAAC,YAAA,WACA,MAAAvpB,UAAAupB,YAAAroD,MAAAooD,SAAAnoD,cAGAmoD,SA5DA,GAGAE,cAHAC,YAMAC,YAIAC,YAAA,OAAA,WAKAC,YAAA,UAAA,SAAA,UAIAC,OAAA39C,EAAAw9C,YAAAv3B,SAAAjC,UAAAh8B,QAGA01C,QACAkgB,QAAA,UACAC,UAAA,YACAC,OAAA,SACAC,OAAA,SACAC,UAAA,aAIAC,gBACA1pC,SACA2pC,KAAA,IACA1rC,QAAA,IACA2rC,QAAA,IACAC,OAAA;AlBwHA,AkBvHApxD,MAAA,KAKAqxD,mBAAA,GACAC,YAAA,GAwBAC,aAEA7Z,MAAA,KAEA8Z,SAAA,KAEAn0B,QAAA,SAAAqa,MAAAtE,IAAAniC,SAuBA,MAtBAymC,QAAA1kC,EAAA/W,SAAA00D,OAAAjZ,SACAA,MAAA,QAEAv1C,KAAAyuC,SAAAF,OAAAkgB,SAEAzuD,KAAAu1C,MAAAA,MACAv1C,KAAAqvD,SAAAx+C,EAAAgnB,QAAAw2B,YAAAruD,KAAAu1C,QACAv1C,KAAA8O,QAAA+B,EAAA6f,SAAA5hB,YAAAggD,gBAGA7d,IAAAjxC,KAAA8O,QAAAqgD,WAAApB,OAAAvvC,KAAAyyB,KAAAA,IAGAA,IAAAjxC,KAAA8O,QAAAogD,mBAAA1c,cAAAvB,IAAAjxC,KAAA8O,QAAAogD,oBAAAje,IAEAjxC,KAAA0pB,QAAAskC,KACAzY,MAAAA,MACAtE,IAAAA,MAGAjxC,KAAAsvD,SAAA,UAEAtvD,MAGA+uD,KAAA,SAAA9d,IAAAniC,SACA,MAAA9O,MAAAk7B,QAAA,OAAA+V,IAAAniC,SACA2X,QAGApD,QAAA,SAAA4tB,IAAAniC,SACA,MAAA9O,MAAAk7B,QAAA,UAAA+V,IAAAniC,SACA2X;AlBmDA,EkBhDAuoC,QAAA,SAAA/d,IAAAniC,SACA,MAAA9O,MAAAk7B,QAAA,UAAA+V,IAAAniC,SACA2X,QAGAwoC,OAAA,SAAAhe,IAAAniC,SACA,MAAA9O,MAAAk7B,QAAA,SAAA+V,IAAAniC,SACA2X,QAGA5oB,MAAA,SAAAozC,IAAAniC,SACA,MAAA9O,MAAAk7B,QAAA,QAAA+V,IAAAniC,SACA2X,QAGAA,KAAA,WAkBA,MAhBAzmB,MAAAsvD,WAQAz+C,EAAAu9C,UAEA/kD,QAAArE,GAAAhF,KAAAgF,KACA0wB,OAAA,SAGA11B,KAAA/F,UAEA+F,MAGAjE,MAAA,WACAiE,KAAAuvD,UAAAhhB,OAAAmgB,aAEA1uD,KAAAyuC,SAAAF,OAAAogB,QAEA7rD,EAAA,IAAA9C,KAAAgF,IAAA3J,SAEA2E,KAAAsvD,WAGAz+C,EAAAxV,OAAA+yD,UAAA9uB,OAAAiP,OAAAogB,WAIA10D,QAAA,WACA,GAAAwoC,MAAAziC,IACA,IAAAA,KAAA0pB,QAAA,CACA1pB,KAAAyuC,SAAAF,OAAAmgB,WAEA5rD,EAAA9C,KAAA0pB,SACA7kB,KAAA,KAAA7E,KAAAgF,IACA7J,SAAA6E,KAAAwvD,YAEAxvD,KAAAsvD;AlBVA,AkBYAtvD,KAAAyvD,eAAA,GACAtxD,WAAA,WAIAskC,KAAA1mC,SAKAiE,KAAAyvD,cAIA,IAAAC,MAAA1vD,KAAAwvD,WAAAvqD,KAAA,cACAyqD,MAAA14D,QACA04D,KACAnpD,IAAA,SACAuP,GAAA,QAAA2sB,KAAA1mC,OAIA,MAAAiE,OAGA8E,MAAA,WACA,GAAA6qD,UAAA9+C,EAAA5L,KAAAmpD,UAAAiB,SAAA,cACA,OAAAM,WAIA3vD,KAAAyuC,SAAAF,OAAAqgB,YAGA5uD,MAAAsvD,YANAtvD,KAAA/F,WASA21D,SAAA,WAEA5vD,KAAAsvD,YAOAA,SAAA,SAAAliB,WACA,GAAAvgC,MAAAugC,WAAAptC,KAAAsvD,SAAAO,OAAAhjD,IAGA7M,MAAAwvD,WAAAlpD,QAAAuG,KAAA,aAAA7M,OAGA6Q,EAAAva,WAAA0J,KAAA8O,QAAAjC,QACA7M,KAAA8O,QAAAjC,MAAArW,KAAAwJ,OASAyvD,YAAA,SAAAla,OAIA,MAHA1kC,GAAAgoB,YAAA0c,SACAA,MAAAv1C,KAAAu1C,OAEA1kC,EAAA6nB,SAAA14B,KAAA8O,QAAAsW,SACAplB,KAAA8O,QAAAsW,QAAAmwB,OAEAv1C,KAAA8O,QAAAsW;AlBjFA,GkByFA0qC,eAGAxwB,OAAA,KAOAiwB,UAAA,SAAAQ,QAIA,MAHAl/C,GAAA+nB,SAAAm3B,UACAA,QAAAA,SAEAl/C,EAAA/W,SAAAi2D,OAAA/vD,KAAAs/B,SAQAmP,SAAA,SAAA7wC,OACA,IAAAiT,EAAA/W,SAAAy0C,OAAA3wC,OACA,KAAA,IAAAgJ,OAAA,gBAAAhJ,MAEAoC,MAAAs/B,OAAA1hC,QAYAoyD,gBAAA,SAAAC,YACA,GAAAT,WAMA,IALArB,eACAA,aAAArrD,EAAA,kBAEA0sD,WAAAS,YAAA9B,cAEAqB,aAAAA,WAAAx4D,OACA,KAAA,IAAA4P,OAAA,wDAIA,IAAAspD,IAAAr/C,EAAA9Y,QACAiN,GAAA,aAAAopD,SAAAp3D,OAAA,GACAw4D,WAAAA,YACAM,cAKA,OAHA1B,UAAAvuD,KAAAqwD,IAGA95C,SAAA85C,GAAAd,aAIA,OAAAY,mBC5TApmC,OAAA,mBAAA,UAAA,SAAA/Y;AACA,AnBqKA,YmBnKA,IAAAs/C,cAAA,OAEA3B,QACA4B,MAAA,GACAvyD,MAAA,GACAwyD,KAAA,GACAtB,KAAA,GACA3gB,MAAA,GACAsN,MAAA,IAGA4U,YAQAC,cAAA,QAAAA,eAAA7rD,SAQA,GAAA+oC,SASAxC,IAAA,SAAAsK,OACA,GAAAnE,UACAiQ,MACAmP,KAAAtoD,KAAA7J,KAgCA,OA7BAwS,GAAA+nB,SAAA2c,SAAA1kC,EAAA4nB,SAAA+1B,OAAAjZ,UACAnE,YAAA13C,MAAAlD,KAAAsP,WACAyvC,MAAA4a,cAEAt/C,EAAA4nB,SAAA8c,SACAA,MAAA1kC,EAAAgnB,QAAA22B,OAAA,SAAA7xD,GACA,MAAAA,KAAA44C,SACA4a,cAGA/e,WACAA,YAAA13C,MAAAlD,KAAAsP,UAAA,IAGA0oD,OAAAjZ,QAAAiZ,OAAA3wD,QACAwjD,OAAA,GAAAz6C,QAAAy6C,OAAA,kBAIAiP,SAAAzwD,MACA2wD,KAAAA,KACAjb,MAAAA,MACAnE,SAAAA,SACA1sC,QAAAA,QACA28C,MAAAA,QAGArhD,KAAAywD,QAEAzwD,MAOAywD,MAAA,WAWA,MAVAF,eAAAG,WAAAH,cAAAG,UAAA15D,SACA6Z,EAAAikB,QAAAw7B,SAAA,SAAAp1B;AAEArqB,AnBkFA,EmBlFAikB,QAAAy7B,cAAAG,UAAA,SAAA/rB,UACAA,SAAAsG,IAAAz0C,KAAAmuC,SAAAzJ,aAIAo1B,aAEAtwD,MAKA,OAAA6Q,GAAAmoB,OAAAw1B,OAAA,SAAAl8C,OAAAijC,MAAAob,WAEA,MADAr+C,QAAAq+C,WAAA9/C,EAAAklB,QAAA0X,OAAAxC,IAAAsK,OACAjjC,QACAm7B,QAkBA,OATA8iB,eAAA5E,SAAA,SAAAhnB,UAEA,IAAA9zB,EAAAjM,cAAA+/B,YAAA9zB,EAAAva,WAAAquC,SAAAsG,KACA,KAAA,IAAA9Z,WAAA,gDAEAnxB,MAAA0wD,UAAA1wD,KAAA0wD,cACA1wD,KAAA0wD,UAAA7wD,KAAA8kC,WAGA4rB,gBC1HA3mC,OAAA,uBACA,UACA,SAAA/Y,GACA,YAMA,QACAo6B,IAAA,SAAA/P,SAEA,GAAAqa,OAAAra,QAAAqa,MACAnE,SAAAlW,QAAAkW,QACAlW,SAAAx2B,SACA0sC,SAAAv0C,QAAA,IAAAq+B,QAAAx2B,QAAA;AAEAmM,ApB2JA,EoB3JAva,WAAAkQ,OAAAwkC,QAAAuK,QACA/uC,OAAAwkC,QAAAuK,OAAA1vC,MAAAW,OAAAwkC,QAAAoG,UAEA5qC,OAAAwkC,QAAAC,IAAAplC,MAAAW,OAAAwkC,SAAAuK,MAAA97C,eAAA+E,OAAA4yC,eCfAxnB,OAAA,eACA,SACA,SACA,kBACA,uBACA,SAAA/Y,EAAAkqB,OAAA61B,UAAAC,eACA,YAGA,IAAA71B,QAAAD,OAAAC,QAqBA,OApBAnqB,GAAA3U,QAAA8+B,OAAA81B,UAAA91B,OAAA81B,QAAA95D,OAGAinC,QAAAjD,OAAA81B,QAAA,WACA,GAAAC,oBAAAr3D,MAAAlD,KAAAsP,UACA+K,GAAAikB,QAAAi8B,gBAAA,SAAApsB,UACAisB,UAAAjF,SAAAhnB,YAIAisB,UAAAH,UAMAG,UAAAjF,SAAAkF,eAIAD,YCtCAhnC,OAAA,0BACA,SACA,SACA,OACA,kBACA,eACA,cACA,yBACA,SAAA9mB,EAAA+N,EAAA6qB,GAAA+J,WAAA/C,QAAA+K,OAAAjJ;AACA,AtBuKA,YsB5JA,SAAAwsB,mBAAAjsB,aAAAksB,gBAAAj2B,QA0EA,QAAAk2B,aAAA/iB,QACA,GAAA9I,SAAA3rC,MAAAlD,KAAAsP,UAAA,EACA,OAAA,IAAA48B,SAAA,SAAAt5B,SACA,MAAAyH,GAAAva,WAAAquC,SAAAwJ,SAGA/kC,QAAAu7B,SAAAwJ,QAAAtoC,MAAAsrD,OAAA9rB,OAFAj8B,YAYA,QAAAgoD,WAAAjjB,QACA,GAAAkjB,aAQA,OANAxgD,GAAAikB,QAAAq8B,OAAAG,aAAA,SAAAC,QACA1gD,EAAAva,WAAAi7D,OAAApjB,UACAkjB,UAAAxxD,KAAA0xD,OAAApjB,aAIAzL,QAAAlJ,IAAA63B,WAQA,QAAAG,aAAA7qB,KACAwqB,OAAA7qD,QAAA,QAAAqgC,KAvGA,GAAAwqB,QA+CAM,WAMAzpD,MAOA0pD,cAvDAC,YAKAC,eAKAC,WAKAC,WAKAvjB,QACAnsC,MAAA,EACAiC,OAAA,EACA0tD,QAAA,EACAC,QAAA,EACAtjB,SAAA,GAMAujB,cAKAttB,SAAAqsB,kBAAAlsB,YAAAC;AAsnBA,AtBvgBA,MsB7CA/J,QAAAA,WAOAm2B,OAAA1rB,YAWArjC,KAAA,WACA,GAAAqgC,MAAAziC,IAmBA,OAhBA6Q,GAAAikB,QAAAm8B,gBAAA,SAAAiB,eACA,GAAAX,QAAAW,cAAAf,OAAA1uB,KAAA0vB,gBACAL,SAAAP,OAAApkB,WAAAokB,SAGAL,YAAA,wBACA/nD,KAAA0H,EAAAklB,QAAAq7B,UAAA,YACAjoD,KAAA0H,EAAAklB,QAAAm7B,YAAA,SACA/nD,KAAA0H,EAAAklB,QAAAq7B,UAAA,SACAjoD,KAAA,WACAs5B,KAAAgM,SAAA,QAAA,GACAnoC,QAAA,QACAyrD,WAPAb,SASAM,aAEAxxD,MAWA+xD,OAAA,WACA,GAAAtvB,MAAAziC,IASA,OAPAkxD,aAAA,UAAA/nD,KAAA,WACAioD,UAAA,UAAAjoD,KAAA,WACAs5B,KAAAgM,SAAA,SAAA,GACAnoC,QAAA,UACAA,QAAA,WAHA8qD,SAIAI,eALAN,SAMAM;AACAxxD,AtBbA,MsByBAoyD,SAAA,SAAAC,SACA,GAAA5vB,MAAAziC,IAOA,OALAkxD,aAAA,WAAAmB,SAAAlpD,KAAA,SAAAmpD,UACA7vB,KAAA8vB,aAAAF,QAAA,UAAA,GACA/rD,QAAA,WAAA+rD,SACAG,WAAAH,QAAAC,YAHApB,SAIAM,aACAxxD,MAWAwyD,WAAA,SAAAH,QAAAC,UACA,GAAA7vB,MAAAziC,IAMA,OAJAkxD,aAAA,aAAAmB,QAAAC,UAAAnpD,KAAA,WACAs5B,KAAA8vB,aAAAF,QAAA,SAAA,GACA/rD,QAAA,aAAA+rD,QAAAC,YAFApB,SAGAM,aACAxxD,MAWAyyD,WAAA,SAAAJ,SACA,GAAA5vB,MAAAziC,IAMA,OAJAkxD,aAAA,aAAAmB,SAAAlpD,KAAA,WACA8oD,WAAAphD,EAAAglB,KAAAo8B,WAAAI,SACA5vB,KAAAn8B,QAAA,aAAA+rD,WAFAnB,SAGAM,aACAxxD,MAUA0yD,YAAA,SAAAL;AACA,AtB/EA,GsB+EA5vB,MAAAziC,IASA,OAPAA,MAAA2yD,aAAAN,QAAA,aAEAnB,YAAA,cAAAmB,SAAAlpD,KAAA,WACAs5B,KAAA8vB,aAAAF,QAAA,YAAA,GACA/rD,QAAA,cAAA+rD,WAFAnB,SAGAM,aAEAxxD,MAUA4yD,WAAA,SAAAP,SACA,GAAA5vB,MAAAziC,IAQA,OANAA,MAAA2yD,aAAAN,QAAA,aACAnB,YAAA,aAAAmB,SAAAlpD,KAAA,WACAs5B,KAAA8vB,aAAAF,QAAA,YAAA,GACA/rD,QAAA,aAAA+rD,WAFAnB,SAGAM,aAEAxxD,MAUAgyD,OAAA,WACA,GAAAvvB,MAAAziC,IAQA,OANAkxD,aAAA,UAAA/nD,KAAA,WACAioD,UAAA,UAAAjoD,KAAA,WACAs5B,KAAAgM,SAAA,UAAA,GACAnoC,QAAA,YAFA8qD,SAGAI,eAJAN,SAKAM,aACAxxD,MAUAywD,MAAA;AACA,AtBxIA,GsBwIAhuB,MAAAziC,IAQA,OANAkxD,aAAA,SAAA/nD,KAAA,WACAioD,UAAA,SAAAjoD,KAAA,WACAs5B,KAAAgM,SAAA,SAAA,GACAnoC,QAAA,WAFA8qD,SAGAI,eAJAN,SAKAM,aACAxxD,MAUA0uC,QAAA,WACA,GAAAjM,MAAAziC,IAmBA,OAjBAkxD,aAAA,WAAA/nD,KAAA,WACAioD,UAAA,WAAAjoD,KAAA,WACA,GAAA0pD,UAQA,OALAA,WADA7qD,MACAA,MAAA0mC,UAEAhM,QAAAt5B,UAGAypD,UAAA1pD,KAAA,WACAyoD,eACAnvB,KAAAgM,SAAA,WAAA,GACAnoC,QAAA,eAZA8qD,SAcAI,eAfAN,SAgBAM,aACAxxD,MAOAsxD,WAAA,WACA,MAAAQ,UAQAgB,UAAA,SAAAjmD,MACA,MAAAilD,SAAAjlD,OAOA+hC,UAAA,WACA,MAAA5T,SAQAm3B,cAAA;AAIA,AtBlNA,MsB+MAV,cACAA,WAAA9sB,SAAAouB,eAAAv8D,KAAAwJ,OAEAyxD,YASAuB,SAAA,WACA,GAAAvwB,MAAAziC,IACA,KAAAgI,MAAA,CACA,IAAA6I,EAAAva,WAAAquC,SAAAsuB,WACA,KAAA,IAAArsD,OAAA,gDAEAoB,OAAA28B,SAAAsuB,UAAAz8D,KAAAwJ,MAEAgI,MAAA8N,GAAA,QAAA,SAAAjY,OACA4kC,KAAAn8B,QAAA,QAAAzI,SAGA,MAAAmK,QAQAkrD,iBAAA,WAKA,OAJAxB,eAAA7gD,EAAAva,WAAAquC,SAAAwuB,qBACAzB,cAAA/sB,SAAAwuB,kBAAA38D,KAAAwJ,OAGA0xD,eASAljB,SAAA,SAAA3hC,MACA,QAAA0hC,OAAA1hC,OAWA4hC,SAAA,SAAA5hC,KAAAmN,QACA,IAAAnJ,EAAA+nB,SAAA/rB,OAAAgE,EAAAynB,QAAAzrB,MACA,KAAA,IAAAskB,WAAA,6BAIA,OAFAod,QAAA1hC,QAAAmN;AAEAha,AtB9QA,MsBwRAozD,mBAAA,QAAAA,oBAAAvmD,MACA,GACAjP,OADAw1D,mBAAAzuB,SAAAyuB,kBAOA,OAJAviD,GAAAva,WAAA88D,sBACAx1D,MAAAw1D,mBAAA58D,KAAA26D,OAAAtkD,SAGAjP,OAaAy1D,mBAAA,SAAAxmD,KAAAmN,QACA,GAAAs5C,OAUA,OAPAA,SADAziD,EAAA+nB,SAAA/rB,OAAAgE,EAAAynB,QAAAzrB,MACA61B,QAAAr5B,OAAA,GAAA8nB,WAAA,+BAEA+/B,YAAA,qBAAArkD,OAAAmN,QAGAs5C,OAAAA,SAAA9B,aAEA8B,QAYAX,aAAA,SAAAN,QAAAxlD,MACA,GAAAgE,EAAAynB,QAAA+5B,UAAAxhD,EAAAynB,QAAAzrB,MACA,KAAA,IAAAskB,WAAA,mDAEA,UAAA8gC,WAAAI,WAAAJ,WAAAI,SAAAxlD,QAaA0lD,aAAA,SAAAF,QAAAxlD,KAAAmN;AACA,AtBrVA,GsBqVAnJ,EAAAynB,QAAA+5B,UAAAxhD,EAAAynB,QAAAzrB,MACA,KAAA,IAAAskB,WAAA,mDAUA,OARA8gC,YAAAI,SAAAJ,WAAAI,WACAkB,QAAA,EACAlvD,OAAA,EACAyE,UAAA,GAGAmpD,WAAAI,SAAAxlD,QAAAmN,OAEAha,MAOAwzD,YAAA,WACA,MAAA7B,WAQA8B,YAAA,SAAA59D,MAGA,MAFA87D,UAAA97D,KAEAmK,MAOA0zD,eAAA,WACA,MAAA9B,cAQA+B,eAAA,SAAAjvD,SAIA,MAHAmM,GAAAjM,cAAAF,WACAktD,YAAAltD,SAEA1E,MAOA4zD,WAAA,WACA,MAAA/B,UAQAgC,WAAA,SAAA7tD,KAIA,MAHA6K,GAAAjM,cAAAoB,OACA6rD,QAAA7rD,KAEAhG,MASAqb,KAAA,SAAAy4C,OAEA,MADA9zD,MAAAsG,QAAA,OAAA,OAAAwtD,OACA9zD,MASA2vD,SAAA,SAAAmE;AAEA,AtBhbA,MsB+aA9zD,MAAAsG,QAAA,OAAA,WAAAwtD,OACA9zD,MAUA+zD,KAAA,SAAA/zC,SAAA8zC,OAEA,MADA9zD,MAAAsG,QAAA,OAAA,OAAAwtD,MAAA9zC,UACAhgB,MASAg0D,KAAA,SAAAF,OAEA,MADA9zD,MAAAsG,QAAA,OAAAwtD,OACA9zD,MASAi0D,KAAA,SAAAC,KAEA,MADAl0D,MAAAsG,QAAA,OAAA4tD,KACAl0D,MAQAm0D,MAAA,WAKA,MAJAn0D,MAAAwuC,SAAA,UACAxuC,KAAAyuC,SAAA,SAAA,GACAnoC,QAAA,SAEAtG,MAQAo0D,OAAA,WAKA,MAJAp0D,MAAAwuC,SAAA,YAAA,GACAxuC,KAAAyuC,SAAA,SAAA,GACAnoC,QAAA,UAEAtG,MAUAolB,QAAA,SAAA0uC,MAAAO,KAEA,MADAr0D,MAAAsG,QAAA,UAAAwtD,MAAAO,KACAr0D,QAIAmxD,OAAAr7C,GAAA,OAAA,SAAApd,MACAsH,KAAAsG,QAAAT,MAAA7F,MAAAtH,MAAA8F,UAAA9E,MAAAlD,KAAAsP,UAAA,OAGAqrD,OAIA,MAAA3sB,kBAAAwsB,kBAAA,SAAArsB;AAGA,AtBtgBA,IsBsgBA9zB,EAAAva,WAAAquC,SAAAouB,gBACA,KAAA,IAAA5hC,WAAA,oEAEA,QAAA,MChsBAvH,OAAA,2BAAA,SAAA,gBAAA,SAAA/Y,EAAA6xB,SACA,YAKA,IAAAqpB,QAAA,aACAuI,QAAA9tD,OAAA+tD,aAQAC,oBAAA,SAAAC,WAEA,GAAA5nD,KACA,IAAAgE,EAAAynB,QAAAm8B,aAAA5jD,EAAA+nB,SAAA67B,WACA,KAAA,IAAAtjC,WAAA,6BASA,OALAtkB,MAAAk/C,OAAA0I,UAAA,KAYAC,QAAA,SAAArpB,KACA,MAAA,IAAA3I,SAAA,SAAAt5B,QAAAC,QACA,GAAAxQ,MACA,KACAA,MAAAy7D,QAAAI,QAAA7nD,KAAAw+B,KACA,OAAAxyC,MACAuQ,UAEAA,QAAAlC,KAAAC,MAAAtO,QAEA,MAAA87D,IACAtrD,OAAAsrD,QAWAC,QAAA,SAAAvpB,IAAAxyC;AACA,AvB8HA,MuB9HA,IAAA6pC,SAAA,SAAAt5B,QAAAC,QACA,IACAirD,QAAAM,QAAA/nD,KAAAw+B,IAAAnkC,KAAAo0B,UAAAziC,QACAuQ,SAAA,GACA,MAAAurD,IACAtrD,OAAAsrD,QAUAE,WAAA,SAAAxpB,KACA,MAAA,IAAA3I,SAAA,SAAAt5B,QAAAC,QACA,IACAirD,QAAAO,WAAAhoD,KAAAw+B,KACAjiC,SAAA,GACA,MAAAurD,IACAtrD,OAAAsrD,QASAG,MAAA,WACA,GAAAC,YAAA,GAAArjD,QAAA,IAAA7E,KACA,OAAA,IAAA61B,SAAA,SAAAt5B,QAAAC,QAEA,IACAwH,EAAAyjD,SACAtuD,IAAA,SAAAw9B,MAAA3sB,OACA,MAAAy9C,SAAAjpB,IAAAx0B,SAEAngB,OAAA,SAAA20C,KACA,MAAA0pB,YAAAr/D,KAAA21C,OAEAvW,QAAA,SAAAuW,KACAipB,QAAAO,WAAAxpB,OAEAjiC,SAAA,GACA,MAAAurD,IACAtrD,OAAAsrD,SAOA,OAAAH,uBC5HA,SAAA3nD,KAAAmoD,WAAAvjD,QAEA,YAEA,mBAAAmY,QACAA,OAAA,qBAAAorC,YACA,mBAAAj6B,SAAAA,OAAAD,QACAC,OAAAD,QAAAk6B,aAEAvjD,OAAA5E,MAAAmoD;AxB4LA,EwB1LA,WAAA,WAEA,YAs0CA,SAAAj8B,OAAAzmB,OAAAhP,QACA,GAAAuJ,MAAA9X,CACA,KAAA8X,OAAAvJ,QACAvO,EAAAuO,OAAAuJ,MACA9X,IAAAsM,MAAAwL,OAAA9X,IAAAud,OAAAzF,QACAyF,OAAAzF,MAAA9X,EAGA,OAAAud,QA50CA,GAAA2iD,qBAAA,SAAAp3D,OACA,KAAAA,QAEAq3D,sBAAA,aAGAxkC,UACA+jC,UAAA,QACAU,YAAA,cACAC,UAAA,EACAC,QAAA,KACAC,eAAA,EACAC,aAAA,aAEAC,QAAAP,oBACAQ,WACAC,0BACA,YACA,kBACA,eACA,kBAgEAC,SAAA,SAAAC,OAAAL,cAEA,mBAAAA,eAAA,kBAAAK,UACAL,aAAAK,QAEA,mBAAA3yD,OAAAd,UAAAe,SAAA1M,KAAAo/D,UACAA;AxB6FA,AwB1FA,IAAA,GAAAvqB,OAAA3a,UACA1wB,KAAAqrC,KAAA,mBAAAuqB,QAAAvqB,KAAAuqB,OAAAvqB,KAAA3a,SAAA2a,IAGArrC,MAAA61D,OAAA71D,KAAAm1D,YAAAn1D,KAAAy0D,UACAz0D,KAAAo1D,UAAAnlD,SAAAjQ,KAAAo1D,UAAA,KAAA,EAEAG,eAAAv1D,KAAAu1D,aAAAA,aAEA,IAAAze,KAAA,gBAAAtwC,QAAAA,OAAAi8B,KACAqzB,yBAAA91D,KAAA01D,yBAAAh/D,OAAA,SAAAq/D,UACA,MAAAA,YAAAjf,MAEA92C,MAAAg2D,eAAAF,yBAAA,GACA91D,KAAAi2D,IAAAnf,IAAA92C,KAAAg2D,gBACAh2D,KAAAk2D,SAAApf,IAAAqf,aAAArf,IAAAsf,mBAAAtf,IAAAuf,eAEAr2D,KAAAs2D,QACAC,UAAA,WACAC,WAAA,YACAC,eAAA,gBACAC,KAAA,OACAC,kBAAA,aACAC,KAAA;AxBoEA,AwBnEAC,kBAAA,cAGA72D,KAAA82D,UAIAC,OASAtyD,YAAAkxD,SAOAv2C,QAAA,QAOA43C,GAAA,KAQAnB,OAAA,KAOAT,UAAA,KAOA6B,MAAA,KAOAxC,UAAA,KAOAU,YAAA,KAOAE,QAAA,KAOAC,cAAA,KAOAG,QAAA,KAOAC,yBAAA,KAOAM,eAAA,GAOAT,aAAA,KAQAC,QAAA,KAQA0B,eAAA,EAcAJ,OAAA,WAEA,GAAAK,aAAAn3D,KAAAi2D,IAAAxvC,KAAAzmB,KAAA61D,OAAA71D,KAAAo1D,WACAgC,wBAAA,CAEAD,aAAAE,QAAA,SAAAx5D,OAEA,GAAAy5D,gBAAA,CACA,UAAAz5D,OAAAyU,OACAglD,cAAA,gBAAAz5D,MAAAyU,OAAAzU,MAAAgP,KACA,aAAAhP,OAAAyU,SACAglD,cAAA,IAAAz5D,MAAAyU,OAAAilD,WAGAD,cACAt3D,KAAAw1D,QAAA,GAAA5uD,OAAA,gEAEA5G,KAAAw1D,QAAA33D;AxBvFA,EwByFAmY,KAAAhW,MAEAm3D,YAAAK,UAAA,SAAA3/D,OAEA,IAAAu/D,uBAAA,CAIA,GAAAp3D,KAAAg3D,GAEA,WADAh3D,MAAAu1D,cAMA,IAFAv1D,KAAAg3D,GAAAn/D,MAAAya,OAAAD,OAEA,gBAAArS,MAAAg3D,GAAA53C,QAEA,WADApf,MAAAw1D,QAAA,GAAA5uD,OAAA,0FAIA,KAAA5G,KAAAg3D,GAAAS,iBAAA39D,SAAAkG,KAAAy0D,WAIA,WADAz0D,MAAAw1D,QAAA,GAAA5uD,OAAA,qCAIA,IAAA8wD,kBAAA13D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAC,UACAv2D,MAAAi3D,MAAAS,iBAAAE,YAAA53D,KAAAy0D,UAGA,IAAAoD,iBAAA90D,MAAAZ,UAAAzI,MAAAlD,KAAAwJ,KAAA83D,eACA93D,MAAAy1D,QAAA3gC,QAAA,SAAAijC;AxBxHA,AwByHA,GAAAC,WAAAD,UAAAlrD,IAEA,KAAAmrD,UAGA,MAFAZ,yBAAA,MACAp3D,MAAAw1D,QAAA,GAAA5uD,OAAA,6CAMA,IAFA5G,KAAAi4D,mBAAAF,WAEA/3D,KAAAk4D,SAAAF,WAAA,CAEA,GAAAG,aAAAn4D,KAAAi3D,MAAApgD,MAAAmhD,WACAI,SAAAp4D,KAAAq4D,cAAAF,YAAAJ,UACAK,YACAhB,wBAAA,EACAp3D,KAAAw1D,QAAA,GAAA5uD,OAAA,wBAAAoxD,UAAA,yDAAAh4D,KAAAo1D,UAAA,GAAA,OAGAyC,gBAAAl6D,OAAAk6D,gBAAA70D,QAAAg1D,WAAA,OAEAZ,yBAAA,EACAp3D,KAAAw1D,QAAA,GAAA5uD,OAAA,4BAAAoxD,UAAA,yDAAAh4D,KAAAo1D,UAAA,GAAA;AxB9IA,EwBiJAp1D,MAEA63D,gBAAA7gE,SACAogE,wBAAA,EACAp3D,KAAAw1D,QAAA,GAAA5uD,OAAA,4BAAAixD,gBAAA30D,WAAA,yDAAAlD,KAAAo1D,UAAA,GAAA,OAGAgC,wBAAAp3D,KAAAu1D,iBACAv/C,KAAAhW,MAEAm3D,YAAAmB,gBAAA,SAAAzgE,OAIA,GAFAmI,KAAAg3D,GAAAn/D,MAAAya,OAAAD,OAEArS,KAAAg3D,GAAAS,iBAAA39D,SAAAkG,KAAAy0D,WACAz0D,KAAAi3D,MAAAp/D,MAAAya,OAAAqlD,YAAAC,YAAA53D,KAAAy0D,eACA,CACA,GAAA8D,qBAAAjD,cAAAt1D,KAAAs1D,cACA,QAAAt1D,KAAAq1D,UACAkD,mBAAAlD,QAAAr1D,KAAAq1D,SAEAr1D,KAAAi3D,MAAAj3D,KAAAg3D,GAAAwB,kBAAAx4D,KAAAy0D,UAAA8D,oBAGA,GAAAV,iBAAA90D,MAAAZ,UAAAzI,MAAAlD,KAAAwJ,KAAA83D;AxBxKA,AwByKA93D,KAAAy1D,QAAA3gC,QAAA,SAAAijC,WACA,GAAAC,WAAAD,UAAAlrD,IASA,IAPAmrD,YACAZ,wBAAA,EACAp3D,KAAAw1D,QAAA,GAAA5uD,OAAA,+CAGA5G,KAAAi4D,mBAAAF,WAEA/3D,KAAAk4D,SAAAF,WAAA,CAEA,GAAAG,aAAAn4D,KAAAi3D,MAAApgD,MAAAmhD,WACAI,SAAAp4D,KAAAq4D,cAAAF,YAAAJ,UACAK,YAEAp4D,KAAAi3D,MAAAwB,YAAAT,WACAh4D,KAAAi3D,MAAAyB,YAAAV,UAAAD,UAAA1C,SACAzsD,OAAAmvD,UAAAnvD,OACA+vD,WAAAZ,UAAAY,cAIAd,gBAAAl6D,OAAAk6D,gBAAA70D,QAAAg1D,WAAA,OAEAh4D,MAAAi3D,MAAAyB,YAAAV,UAAAD,UAAA1C,SACAzsD,OAAAmvD,UAAAnvD,OACA+vD,WAAAZ,UAAAY;AxBnMA,EwBuMA34D,MAEA63D,gBAAA7gE,QACA6gE,gBAAA/iC,QAAA,SAAA8jC,YACA54D,KAAAi3D,MAAAwB,YAAAG,aACA54D,OAGAgW,KAAAhW,OAYA64D,eAAA,SAAAC,UAAAtD,SACA,GAAAx1D,KAAAi2D,IAAA4C,eAAA,CACA74D,KAAAg3D,GAAAj7D,OACA,IAAAg9D,eAAA/4D,KAAAi2D,IAAA4C,eAAA74D,KAAA61D,OACAkD,eAAAvB,UAAAsB,UACAC,cAAA1B,QAAA7B,YAEAA,SAAA,GAAA5uD,OAAA,wDAwCAoyD,IAAA,SAAA3tB,IAAAxyC,MAAAigE,UAAAtD,SACA,OAAAx1D,KAAAq1D,UACAG,QAAAsD,UACAA,UAAAjgE,MACAA,MAAAwyC,KAEAmqB,UAAAA,QAAAP,qBACA6D,YAAAA,UAAA5D,sBAEA,IAEA+D,YAFAC,YAAA,EACA7mD,OAAA,KAGA8mD,eAAAn5D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAE;AxBtRA,AwB0SA,MAnBA2C,gBAAAC,WAAA,WACA,GAAAv7B,UAAAq7B,WAAAJ,UAAAtD,OACA33B,UAAAxrB,SAEA8mD,eAAAE,QAAA7D,QACA2D,eAAA9B,QAAA7B,QAEA,OAAAx1D,KAAAq1D,SACAr1D,KAAAs5D,uBAAAzgE,OACAogE,WAAAE,eAAAvB,YAAA53D,KAAAy0D,WAAAuE,IAAAngE,QAEAogE,WAAAE,eAAAvB,YAAA53D,KAAAy0D,WAAAuE,IAAAngE,MAAAwyC,KAEA4tB,WAAAzB,UAAA,SAAA3/D,OACAqhE,YAAA,EACA7mD,OAAAxa,MAAAya,OAAAD,QAEA4mD,WAAA5B,QAAA7B,QAEA2D,gBAcA5zD,IAAA,SAAA8lC,IAAAytB,UAAAtD,SACAA,UAAAA,QAAAP,qBACA6D,YAAAA,UAAA5D,sBAEA,IAAAgE,aAAA,EACA7mD,OAAA,KAEAknD,eAAAv5D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAC;AxB9TA,AwB+TAgD,eAAAH,WAAA,WACA,GAAAv7B,UAAAq7B,WAAAJ,UAAAtD,OACA33B,UAAAxrB,SAEAknD,eAAAF,QAAA7D,QACA+D,eAAAlC,QAAA7B,OACA,IAAAgE,YAAAD,eAAA3B,YAAA53D,KAAAy0D,WAAAlvD,IAAA8lC,IAOA,OANAmuB,YAAAhC,UAAA,SAAA3/D,OACAqhE,YAAA,EACA7mD,OAAAxa,MAAAya,OAAAD,QAEAmnD,WAAAnC,QAAA7B,QAEA+D,gBAaAl+D,OAAA,SAAAgwC,IAAAytB,UAAAtD,SACAA,UAAAA,QAAAP,qBACA6D,YAAAA,UAAA5D,sBAEA,IAAAgE,aAAA,EACA7mD,OAAA,KAEAonD,kBAAAz5D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAE,WACAiD,mBAAAL,WAAA,WACA,GAAAv7B,UAAAq7B,WAAAJ,UAAAtD;AxBjWA,AwBkWA33B,SAAAxrB,SAEAonD,kBAAAJ,QAAA7D,QACAiE,kBAAApC,QAAA7B,OAEA,IAAAuD,eAAAU,kBAAA7B,YAAA53D,KAAAy0D,WAAA,UAAAppB,IAOA,OANA0tB,eAAAvB,UAAA,SAAA3/D,OACAqhE,YAAA,EACA7mD,OAAAxa,MAAAya,OAAAD,QAEA0mD,cAAA1B,QAAA7B,QAEAiE,mBAcAC,MAAA,SAAAC,UAAAb,UAAAtD,SAIA,GAHAA,UAAAA,QAAAP,qBACA6D,YAAAA,UAAA5D,uBAEA,kBAAAjyD,OAAAd,UAAAe,SAAA1M,KAAAmjE,WACAnE,QAAA,GAAA5uD,OAAA,kDACA,IAAA,IAAA+yD,UAAA3iE,OACA,MAAA8hE,YAAA,EAGA,IAAAttB,OAAAmuB,UAAA3iE,OACA8uC,QAAA,EACAozB,YAAA,EAEAU,iBAAA55D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAE;AxBzYA,AwB0YAoD,iBAAAR,WAAA,WACA,GAAAv7B,UAAAq7B,WAAAJ,UAAAtD,OACA33B,UAAAq7B,aAEAU,iBAAAP,QAAA7D,QACAoE,iBAAAvC,QAAA7B,OAGA,IAAAqE,eAAA,WACAruB,QACA,IAAAA,OAAA1F,SACAA,QAAA,EACAozB,YAAA,GAkCA,OA9BAS,WAAA7kC,QAAA,SAAAglC,WACA,GAAAphE,MAAAohE,UAAAphE,KACA2yC,IAAAyuB,UAAAzuB,IACAxyC,MAAAihE,UAAAjhE,MAEAkhE,YAAA,SAAApzB,KACAizB,iBAAA70C,QACA+gB,SACAA,QAAA,EACA0vB,QAAA7uB,IAAAjuC,KAAA2yC,MAIA,IAAA,UAAA3yC,KAAA,CACA,GAAAqgE,eAAAa,iBAAAhC,YAAA53D,KAAAy0D,WAAA,UAAAppB,IACA0tB,eAAAvB,UAAAqC,cACAd,cAAA1B,QAAA0C,gBACA,IAAA,OAAArhE,KAAA,CACA,GAAAugE,WACA,QAAAj5D,KAAAq1D,SACAr1D,KAAAs5D,uBAAAzgE;AxB7aA,AwB8aAogE,WAAAW,iBAAAhC,YAAA53D,KAAAy0D,WAAAuE,IAAAngE,QAEAogE,WAAAW,iBAAAhC,YAAA53D,KAAAy0D,WAAAuE,IAAAngE,MAAAwyC,KAEA4tB,WAAAzB,UAAAqC,cACAZ,WAAA5B,QAAA0C,cAEA/5D,MAEA45D,kBAaAI,SAAA,SAAAL,UAAAb,UAAAtD,SACA,GAAAyE,WAAAN,UAAA3zD,IAAA,SAAAskC,MACA,OAAA5xC,KAAA,MAAAG,MAAAyxC,OAGA,OAAAtqC,MAAA05D,MAAAO,UAAAnB,UAAAtD,UAsBA0E,YAAA,SAAAP,UAAA7qD,QAAAgqD,UAAAtD,SAEA,kBAAA1mD,WACAgqD,UAAAhqD,QACA0mD,QAAAsD,UACAhqD,YAGA0mD,UAAAA,QAAAP,qBACA6D,YAAAA,UAAA5D,uBACApmD,UAAAA,YAEA,kBAAA7L,OAAAd,UAAAe,SAAA1M,KAAAmjE,YACAnE,QAAA,GAAA5uD,OAAA;AxB3eA,AwB8eA,GAAAuzD,UAAArrD,QAAAqrD,UAAAn6D,KAAAq1D,QACA7pB,MAAAmuB,UAAA3iE,OACA8uC,QAAA,EACAozB,YAAA,EACAriD,MAAA,EAEA+iD,iBAAA55D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAE,WACAoD,kBAAAR,WAAA,WACAF,WACAJ,UAAAa,WAEAnE,SAAA,IAGAoE,iBAAAP,QAAA7D,QACAoE,iBAAAvC,QAAA7B,OAEA,IAAAqE,eAAA,SAAAhiE,OACA,GAAAuiE,QAAAT,UAAA9iD,QACAujD,QAAAD,UAAAtiE,MAAAya,OAAAD,OAEAm5B,QACA,IAAAA,OAAA1F,SACAA,QAAA,EACAozB,YAAA,GA0BA,OAtBAS,WAAA7kC,QAAA,SAAAslC,QACA,GAUAnB,YAVA5tB,IAAA+uB,OAAA/uB,IAEA0uB,YAAA,SAAApzB,KACAizB,iBAAA70C,QACA+gB,SACAA,QAAA,EACA0vB,QAAA7uB,MAKA,QAAA3mC,KAAAq1D,SACAr1D,KAAAs5D,uBAAAc;AxBthBA,AwBuhBAnB,WAAAW,iBAAAhC,YAAA53D,KAAAy0D,WAAAuE,IAAAoB,SAEAnB,WAAAW,iBAAAhC,YAAA53D,KAAAy0D,WAAAuE,IAAAoB,OAAA/uB,KAEA4tB,WAAAzB,UAAAqC,cACAZ,WAAA5B,QAAA0C,aACA/5D,MAEA45D,kBAcAS,YAAA,SAAAC,SAAAxB,UAAAtD,SACA,GAAAyE,WAAAK,SAAAt0D,IAAA,SAAAqlC,KACA,OAAA3yC,KAAA,SAAA2yC,IAAAA,MAGA,OAAArrC,MAAA05D,MAAAO,UAAAnB,UAAAtD,UAyDA+E,SAAA,SAAAD,SAAAxB,UAAAtD,QAAAgF,WAKA,GAJAhF,UAAAA,QAAAP,qBACA6D,YAAAA,UAAA5D,uBACAsF,YAAAA,UAAA,UAEA,kBAAAv3D,OAAAd,UAAAe,SAAA1M,KAAA8jE,UACA9E,QAAA,GAAA5uD,OAAA,iDACA,IAAA,IAAA0zD,SAAAtjE,OACA,MAAA8hE;AxBlnBA,AwBqnBA,GAAAjjE,SACA21C,MAAA8uB,SAAAtjE,OACA8uC,QAAA,EACAozB,YAAA,EACA7mD,OAAA,KAEAunD,iBAAA55D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAC,UACAqD,kBAAAR,WAAA,WACA,GAAAv7B,UAAAq7B,WAAAJ,UAAAtD,OACA33B,UAAAxrB,SAEAunD,iBAAAP,QAAA7D,QACAoE,iBAAAvC,QAAA7B,OAEA,IAAAqE,eAAA,SAAAhiE,OACAA,MAAAya,OAAAD,QAAA,SAAAmoD,UACA3kE,KAAAgK,KAAAhI,MAAAya,OAAAD,QACA,UAAAmoD,WACA3kE,KAAAmB,SAEAw0C,QACA,IAAAA,QACA1F,QAAA,EACAozB,YAAA,EACA7mD,OAAAxc,MAmBA,OAfAykE,UAAAxlC,QAAA,SAAAuW,KAEA,GAAA0uB,aAAA,SAAApzB,KACAb,QAAA,EACAzzB,OAAAs0B,IACA6uB,QAAA7uB,KACAizB,iBAAA70C,SAGAy0C,WAAAI,iBAAAhC,YAAA53D,KAAAy0D,WAAAlvD,IAAA8lC;AxBzpBA,AwB0pBAmuB,WAAAhC,UAAAqC,cACAL,WAAAnC,QAAA0C,aAEA/5D,MAEA45D,kBAYAa,OAAA,SAAA3B,UAAAtD,SACAA,UAAAA,QAAAP,qBACA6D,YAAAA,UAAA5D,sBACA,IAAAwF,mBAAA16D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAC,WACAU,MAAAyD,kBAAA9C,YAAA53D,KAAAy0D,UAOA,OANAwC,OAAAwD,OACAz6D,KAAA26D,cAAAD,kBAAAzD,MAAA6B,UAAAtD,SAEAx1D,KAAA46D,cAAAF,kBAAAzD,MAAA6B,UAAAtD,SAGAkF,mBAeAC,cAAA,SAAAD,kBAAAzD,MAAA6B,UAAAtD,SACA,GAAA0D,aAAA,EACA7mD,OAAA,IAEAqoD,mBAAAtB,WAAA,WACA,GAAAv7B,UAAAq7B,WAAAJ,UAAAtD;AxBzsBA,AwB0sBA33B,SAAAxrB,SAEAqoD,kBAAArB,QAAA7D,QACAkF,kBAAArD,QAAA7B,OAEA,IAAAqF,eAAA5D,MAAAwD,QACAI,eAAArD,UAAA,SAAA3/D,OACAqhE,YAAA,EACA7mD,OAAAxa,MAAAya,OAAAD,QAEAwoD,cAAAxD,QAAA7B,SAeAoF,cAAA,SAAAF,kBAAAzD,MAAA6B,UAAAtD,SACA,GAAAh8B,QACA0/B,YAAA,EACA7mD,OAAA,IAEAqoD,mBAAAtB,WAAA,WACA,GAAAv7B,UAAAq7B,WAAAJ,UAAAtD,OACA33B,UAAAxrB,SAEAqoD,kBAAArB,QAAA7D,QACAkF,kBAAArD,QAAA7B,OAEA,IAAAsF,eAAA7D,MAAA8D,YACAD,eAAAtD,UAAA,SAAA3/D,OACA,GAAAmjE,QAAAnjE,MAAAya,OAAAD,MACA2oD,SACAxhC,IAAA35B,KAAAm7D,OAAAniE,OACAmiE,OAAA,gBAGA9B,YAAA;AxBtvBA,AwBuvBA7mD,OAAAmnB,MAGAshC,cAAAtF,QAAAA,SAYAV,MAAA,SAAAgE,UAAAtD,SACAA,UAAAA,QAAAP,qBACA6D,YAAAA,UAAA5D,sBAEA,IAAAgE,aAAA,EACA7mD,OAAA,KAEA4oD,iBAAAj7D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAE,WACAyE,kBAAA7B,WAAA,WACA,GAAAv7B,UAAAq7B,WAAAJ,UAAAtD,OACA33B,UAAAxrB,SAEA4oD,iBAAA5B,QAAA7D,QACAyF,iBAAA5D,QAAA7B,OAEA,IAAA0F,cAAAD,iBAAArD,YAAA53D,KAAAy0D,WAAAK,OAOA,OANAoG,cAAA1D,UAAA,SAAA3/D,OACAqhE,YAAA,EACA7mD,OAAAxa,MAAAya,OAAAD,QAEA6oD,aAAA7D,QAAA7B,QAEAyF,kBAUA3B,uBAAA,SAAA6B;AxBryBA,AwBsyBA,mBAAAA,SAAAn7D,KAAAq1D,WACA8F,QAAAn7D,KAAAq1D,SAAAr1D,KAAAk3D,kBAAAhvD,KAAA7J,QAaAy5D,aAAA,WACA,MAAA93D,MAAAi3D,MAAAmE,YASAlD,SAAA,SAAAF,WACA,MAAAh4D,MAAAi3D,MAAAmE,WAAAthE,SAAAk+D,YAaAC,mBAAA,SAAAF,WACAA,UAAA1C,QAAA0C,UAAA1C,SAAA0C,UAAAlrD,KACAkrD,UAAAnvD,SAAAmvD,UAAAnvD,OACAmvD,UAAAY,aAAAZ,UAAAY,YAUAN,cAAA,SAAAgD,OAAArZ,UACA,GAAAoW,WAAA,UAAA,SAAA,cAAAzgC,MAAA,SAAA0T,KAEA,GAAA,cAAAA,KAAAthB,SAAAsxC,OAAAhwB,MAAA2W,SAAA3W,QAAA,EACA,OAAA,CAGA,IAAA,WAAAA,KAAA,kBAAApoC,OAAAd,UAAAe,SAAA1M,KAAAwrD,SAAA3W,MAAA;AxB/1BA,AwBg2BA,GAAAiwB,KAAAtZ,SAAAqT,QACAkG,IAAAF,OAAAhG,OAKA,IAAA,gBAAAkG,KACA,MAAAD,KAAAp4D,YAAAq4D,GAKA,IAAA,kBAAAA,KAAAzhE,UAAA,kBAAAyhE,KAAAv4D,QACA,OAAA,CAGA,IAAAu4D,IAAAvkE,SAAAskE,IAAAtkE,OACA,OAAA,CAGA,KAAA,GAAAqF,GAAA,EAAA0E,EAAAu6D,IAAAtkE,OAAA+J,EAAA1E,EAAAA,IACA,KAAAk/D,IAAAzhE,UAAAyhE,IAAAzhE,SAAAwhE,IAAAj/D,KAAAk/D,IAAAv4D,QAAA,KAAAs4D,IAAAj/D,KACA,OAAA,CAGA,QAAA,EAEA,MAAA2lD,UAAA3W,MAAAgwB,OAAAhwB,MAEA,OAAA+sB,WAmCAvxB,QAAA,SAAA20B,OAAA1sD,SACAA,QAAAiqB,OACAliB,MAAA,KACAyB,MAAA,MACAmjD,cAAA,EACAC,kBAAA,EACAxF,SAAA,KACAyF,aAAA,EACAC,MAAA,KACApG,QAAAP,oBACAjuB,MAAA60B,EAAAA,EACA/yC,OAAA,EACAgzC,oBAAA,GACAhtD,YAEA,IAAAitD,eAAA,QAAAjtD,QAAAwJ,MAAA/iB,cAAA,OAAA;AxB96BA,AwB+6BAuZ,QAAA4sD,mBACAK,eAAA,gBAGA,IAAA7C,aAAA,EACA8C,kBAAAh8D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAxnD,QAAA6sD,YAAA,aAAA,cACAM,aAAAD,kBAAApE,YAAA53D,KAAAy0D,UACA3lD,SAAA+H,QACAolD,aAAAA,aAAAplD,MAAA/H,QAAA+H,OAEA,IAAAqlD,aAAA,CAEAF,mBAAA5C,WAAA,WACA,MAAAF,iBAIApqD,QAAA8sD,MACA9sD,QAAA8sD,QAEAJ,OAAA,WANA1sD,SAAA0mD,QAAA,OASAwG,kBAAA3C,QAAAvqD,QAAA0mD,QACAwG,kBAAA3E,QAAAvoD,QAAA0mD,OAEA,IAAAsF,eAAAmB,aAAAlB,WAAAjsD,QAAAonD,SAAAl2D,KAAAs2D,OAAAyF,eA0BA,OAzBAjB,eAAAzD,QAAAvoD,QAAA0mD;AxBz8BA,AwB08BAsF,cAAAtD,UAAA,SAAA3/D,OACA,GAAAmjE,QAAAnjE,MAAAya,OAAAD,MACA,IAAA2oD,OACA,GAAAlsD,QAAAga,OACAkyC,OAAAmB,QAAArtD,QAAAga,QACAha,QAAAga,OAAA,MACA,CACA,GAAAszC,cAAAZ,OAAAR,OAAAniE,MAAAmiE,OAAAgB,kBACAltD,SAAAgtD,oBAAAM,gBAAA,GACAF,cAEAptD,QAAA2sD,eACAS,YAAAptD,QAAAga,OAAAha,QAAAk4B,MACAg0B,OAAA,cAEA9B,YAAA,OAKAA,aAAA,GAIA8C,mBA2BAK,MAAA,SAAAvD,UAAAhqD,SACA,GAAAuD,WACAiqD,eAAA,CAQA,OAPAxtD,SAAAA,YACAA,QAAA2sD,cAAA,EACA3sD,QAAA6sD,aAAA,EACA7sD,QAAAgtD,qBAAAhtD,QAAApY,OACAoY,QAAA8sD,MAAA,WACA9C,UAAAzmD,OAAAiqD,iBAEAt8D,KAAA6mC,QAAA,SAAAyD;AxBtgCA,AwBugCAgyB,gBACA,IAAAzW,QAAA/2C,QAAApY,OAAAoY,QAAApY,OAAA4zC,OAAA,CAIA,OAHAub,WAAA,GACAxzC,OAAAxS,KAAAyqC,MAEAub,QACA/2C,UAiBA08B,MAAA,SAAAstB,UAAAhqD,SAEAA,QAAAiqB,OACAliB,MAAA,KACAq/C,SAAA,MACApnD,YAEA,IAAA0mD,SAAA1mD,QAAA0mD,SAAAP,oBAEAiE,YAAA,EACA7mD,OAAA,KAEA2pD,kBAAAh8D,KAAAg3D,GAAAW,aAAA33D,KAAAy0D,WAAAz0D,KAAAs2D,OAAAC,UACAyF,mBAAA5C,WAAA,WACA,GAAAv7B,UAAAq7B,WAAAJ,UAAAtD,OACA33B,UAAAxrB,SAEA2pD,kBAAA3C,QAAA7D,QACAwG,kBAAA3E,QAAA7B,OAEA,IAAAyG,cAAAD,kBAAApE,YAAA53D,KAAAy0D,UACA3lD,SAAA+H,QACAolD,aAAAA,aAAAplD,MAAA/H,QAAA+H,OAEA,IAAA0lD,cAAAN,aAAAzwB,MAAA18B,QAAAonD;AxBrjCA,AwB4jCA,MANAqG,cAAA/E,UAAA,SAAAgF,KACAtD,YAAA,EACA7mD,OAAAmqD,IAAAlqD,OAAAD,QAEAkqD,aAAA/G,QAAAA,QAEAwG,mBAyBAS,aAAA,SAAA3tD,SAEA,GAAAonD,UACAwG,SAAA,mBAAA5tD,SAAA6tD,MACAC,SAAA,mBAAA9tD,SAAA+tD,MACAC,OAAA,mBAAAhuD,SAAAiuD,IAEA,SAAA,GACA,IAAAD,QACA5G,SAAAl2D,KAAAk2D,SAAA6G,KAAAjuD,QAAAiuD,KACA,MACA,KAAAL,WAAAE,SACA1G,SAAAl2D,KAAAk2D,SAAA8G,MAAAluD,QAAA6tD,MAAA7tD,QAAA+tD,MAAA/tD,QAAAmuD,aAAAnuD,QAAAouD,aACA,MACA,KAAAR,UACAxG,SAAAl2D,KAAAk2D,SAAAiH,WAAAruD,QAAA6tD,MAAA7tD,QAAAmuD,aACA,MACA,KAAAL,UACA1G,SAAAl2D,KAAAk2D,SAAAkH,WAAAtuD,QAAA+tD,MAAA/tD,QAAAouD;AxBtmCA,AwBumCA,KACA,SACA,KAAA,IAAAt2D,OAAA,gGAGA,MAAAsvD,YAOA70D,QAgBA,OAHAs0D,UAAAxzD,UAAA40D,MACApB,SAAAv2C,QAAA23C,MAAA33C,QAEAu2C,UAEA31D,MCv1CA4pB,OAAA,sBAAA,SAAA,eAAA,sBAAA,SAAA/Y,EAAA6xB,QAAAizB,UACA,YAKA,IAAA5J,QAAA,aAQAsR,eAAA,SAAA5I,WAGA,GAAA6I,YA0BAC,aApBAC,SAAA,WACA,MAAAF,YACA56B,QAAAt5B,QAAAk0D,YAEA,GAAA56B,SAAA,SAAAt5B,QAAAC,QACAi0D,WAAA,GAAA3H,WACAP,UAAA,EACAX,UAAAA,UACAU,YAAApJ,OACAsJ,QAAA,MACAC,eAAA,EACAC,aAAA;AACAnsD,AzBgLA,QyBhLAk0D,aAEA9H,QAAAnsD,YAaAo0D,YAAA,SAAAC,mBAGA,MAAAH,cAMA,GAAA76B,SAAA,SAAAt5B,QAAAC,QAEA,GAAAs0D,UAAA,WACA,GAAA/oE,GAAA8oE,mBACAH,cAAA3oE,EACAA,EAAAuU,KAAAC,SAAAxU,SAAAyU,QAIAk0D,cAAAp0D,KAAAw0D,UAAAJ,SAAAI,YAdAJ,aAAAG,oBAkBA,IAAA7sD,EAAAynB,QAAAm8B,aAAA5jD,EAAA+nB,SAAA67B,WACA,KAAA,IAAAtjC,WAAA,6BAMA,QAOAujC,QAAA,SAAArpB,KACA,MAAAoyB,aAAA,WACA,MAAAD,YAAAr0D,KAAA,SAAA8tD,OACA,MAAA,IAAAv0B,SAAA,SAAAt5B,QAAAC,QACA,GAAAga,SAAA,SAAAmgB,OACA,MAAAA,QAAAA,MAAA3qC,UAIAuQ,SAAAo6B,MAAA3qC,OAHAuQ,QAAAo6B,OAKAyzB,OAAA1xD,IAAA8lC,IAAAhoB,QAAAha;AzBmHA,QyBvGAurD,QAAA,SAAAvpB,IAAAxyC,OACA,GAAA2qC,QACA6H,IAAAA,IACAxyC,MAAAA,MAGA,OAAA4kE,aAAA,WACA,MAAAD,YAAAr0D,KAAA,SAAA8tD,OACA,MAAA,IAAAv0B,SAAA,SAAAt5B,QAAAC,QACA,GAAAga,SAAA,SAAAu6C,WACAx0D,QAAAw0D,YAAAvyB,KAEA4rB,OAAA+B,IAAAx1B,MAAAngB,QAAAha,eAWAwrD,WAAA,SAAAxpB,KACA,MAAAoyB,aAAA,WACA,MAAAD,YAAAr0D,KAAA,SAAA8tD,OACA,MAAA,IAAAv0B,SAAA,SAAAt5B,QAAAC,QACA,GAAAga,SAAA,SAAAhR,QACAjJ,QAAAiJ,UAAA,GAEA4kD,OAAA57D,OAAAgwC,IAAAhoB,QAAAha,eAUAyrD,MAAA,WACA,MAAA2I,aAAA,WACA,MAAAD,YAAAr0D,KAAA,SAAA8tD,OACA,MAAA,IAAAv0B,SAAA,SAAAt5B,QAAAC,QACA,GAAAga,SAAA,WACAja,SAAA;AzB2DA,CyBzDA6tD,OAAAnC,MAAAzxC,QAAAha,gBAQA,OAAAg0D,kBCxJAzzC,OAAA,cACA,SACA,eACA,0BACA,sBACA,SAAA/Y,EAAA6xB,QAAA8xB,oBAAA6I,gBACA,YAEA,IAAAQ,oBAAA,EACAC,gBAAA,EAOAC,mBAAA,WACA,MAAAD,gBACAp7B,QAAAt5B,QAAAy0D,mBAEA,GAAAn7B,SAAA,SAAAt5B,SACA,GAAA1T,MAAAsoE,UACAx9D,KAAA,SAAA6R,QAGA,MAFAwrD,qBAAAxrD,OACAyrD,gBAAA,EACA10D,QAAAy0D,mBAEA,KAIA,GAHAG,UAAAx3D,OAAAw3D,WAAAx3D,OAAAy3D,iBACAz3D,OAAA03D,cAAA13D,OAAA23D,YACA33D,OAAA43D,aACAJ,UACA,MAAAx9D,OAAA,EAIA9K,MAAAsoE,UAAAv3C,KAAA,iBAAA;AACA/wB,A1BqKA,K0BrKA8hE,UAAA,WACA,MAAA9hE,MAAA2c,QACA3c,KAAA2c,OAAAtW,QACAyE,MAAA,IAFA,QAMA9K,KAAA2hE,QAAA,SAAAjiE,GAGA,MAFAA,GAAAqd,iBACAjS,MAAA,IACA,GAEA,MAAAmmC,KAEAnmC,MAAA,OAYAy2D,MAAA,QAAAA,OAAAxC,UAAA4J,SAEA,MAAAN,sBAAA50D,KAAA,SAAAm1D,YAEA,MAAA,IAAA57B,SAAA,SAAAt5B,QAAAC,QACA,GAAAk1D,cACAF,SAAAA,SAAApH,MAAAuH,SAAAC,QAEAZ,oBACAQ,QAAApH,MAAAuH,SAAAjK,cAEA1jD,EAAAva,WAAA+nE,UACAh1D,OAAA,GAAA8nB,WAAA,4BAEAotC,cAAAF,QAAA5J,WAEA5jD,EAAAsoB,MAAA,UAAA,UAAA,aAAA,SAAA,SAAAgV,QACA,OAAAt9B,EAAAva,WAAAioE,cAAApwB,YAEA9kC,OAAA,GAAA8nB,WAAA;AAGA/nB,A1BsHA,Q0BtHAm1D,mBAcA,OALAtH,OAAAuH,UACAjK,aAAAC,oBACAiK,QAAApB,gBAGApG,QClHArtC,OAAA,oBACA,cACA,SAAAqtC,OACA,YAiBA,SAAAyH,oBAAAC,YAAAC,YAIA,MAFAA,YAAAA,YAAAC,WAEA5H,MAAA0H,aAAAx1D,KAAA,SAAAmrD,SAEA,MAAAA,SAAAI,QAAAkK,YACAz1D,KAAA,SAAAtT,MAOA,MALAA,MAAAA,UAWA6+D,QAAA,SAAA7nD,MACA,MAAAhX,MAAAgX,OASA+nD,QAAA,SAAA/nD,KAAAhU,OAEA,MADAhD,MAAAgX,MAAAhU,MACAy7D,QAAAM,QAAAgK,WAAA/oE,OAQAg/D,WAAA,SAAAhoD,MAEA,MADAhX,MAAAgX,MAAAkd,OACAuqC,QAAAM,QAAAgK,WAAA/oE,OAOAi/D,MAAA,WAEA,MADAj/D,SACAy+D,QAAAO,WAAA+J;A3BoJA,O2BlNA,GAAAC,YAAA,YAqEA,OAAAH,sBC9DA90C,OAAA,mBACA,SACA,UACA,SAAA9mB,EAAA+N,GACA,YAUA,OAAA,UAAAiuD,cAAA7O,WAAA8O,SAEA,GAAAC,QACAC,KAKA,KAHA,gBAAAhP,aAAAA,qBAAAiP,gBACAjP,WAAAntD,EAAAmtD,cAEAA,aAAAA,WAAAj5D,OACA,KAAA,IAAAm6B,WAAA,4CAkEA,OA/DA2tC,eAAAA,kBAMAE,QAWAG,YAAA,SAAAJ,SACA,GAAA1sC,MAAAuT,QAEA,KAAA/0B,EAAAjM,cAAAm6D,SACA,KAAA,IAAA5tC,WAAA,2CAOA,IAJAkB,KAAAxhB,EAAAwhB,KAAA0sC,SACAn5B,SAAA/0B,EAAA2oB,IAAAslC,cAAA,SAAAvwD,KACA,MAAAsC,GAAA/W,SAAAu4B,KAAA9jB;A5BwJA,I4BtJAq3B,SACA,KAAA,IAAAzU,WAAA,+CAAA2tC,cAAA/4D,KAAA,MAGAk5D,OAAAF,SAOAK,aAAA,WACA,MAAAnP,aASAoP,QAAA,SAAAxyD,MACA,IAAAoyD,MACA,KAAA,IAAAr4D,OAAA,yCAEA,OAAAq4D,OAAApyD,QAIAmyD,OAAAG,YAAAJ,SAEAluD,EAAAikB,QAAAgqC,cAAA,SAAA1hD,MACA4hD,OAAA,MAAA5hD,KAAA,GAAA3jB,cAAA2jB,KAAA1jB,MAAA,GAAA,QAAAmX,EAAAmF,KAAAnF,EAAAklB,QAAAipC,OAAAK,QAAAjiD,MAAA4hD,UAGAA,UCvFAp1C,OAAA,8BACA,SACA,mBACA,SAAA/Y,EAAA4gD,YACA,YAEA,IAAA6N,eACA,UACA,UACA,aACA,UACA,SACA,QAaA,OAAAzuD,GAAAklB,QAAA07B,WAAA6N;A7BkLA,G8B7NA11C,OAAA,yBACA,SACA,QACA,iBACA,kBACA,eACA,wBACA,qBACA,SAAA/Y,EAAArJ,MAAAy9B,UAAAQ,WAAA/C,QAAA8B,iBAAA4L,qBACA,YAcA,SAAAmvB,cAAAC,UAAAxkC,QAcA,QAAAykC,WAAAjmB,QACA,GAAAkmB,cAAA7uD,EAAA/L,SAAA00C,OAAAmmB,gBAEA,OADAA,oBACAD,aAQA,QAAAE,gBAAAt/D,OACA,GAAAglD,MAAAua,YAAAv/D,UAIA,OAHAu/D,aAAArmC,MACA8rB,KAAAA,KAAA9mD,OAAAqhE,YAAArmC,MAEA8rB,KAaA,QAAAwa,kBAAA9uB,QAAA5L,UAEA,GAAAkgB,MAAAz0C,EAAA7K,IAAA45D,eAAA5uB,QAAA+uB,SAAA,SAAAC,YACA,MAAA,UAAA3kD,MACA2kD,WAAAhvB,QAAA5L,SAAA/pB;A9BwJA,G8BnJA,OAAA,IAAAqnB,SAAA,SAAAt5B,QAAAC,QACA7B,MAAAmiC,OAAA2b,KAAA,SAAA3e,KAEAA,KAAA,UAAAvB,SAAA3gB,SACAkiB,IAAAvB,SAAAvvC,MAGA8wC,KACA3+B,MAAA1B,QAAA,QAAAqgC,KACAt9B,OAAAs9B,OAEA3+B,MAAA1B,QAAA,UAAA8+B,SAAAvvC,KAAA,SACAuT,QAAAg8B,SAAAvvC,WAcA,QAAAugB,UAAA+uB,QACA,GAAA6L,UAAA+uB,QAAA56B,OAAAqU,OAAAjU,OAAA/uC,KAAAsP,UAAA,GACA,OAAAm6D,eAAAp6D,MAAA,KAAAC,WACAqD,KAAA,SAAAtT,MAEA,MAAAiqE,kBAAA9uB,SACAvsB,OAAA,UACA5uB,KAAAA,SALAoqE,SAQA,SAAApqE,MAEA,MAAAiqE,kBAAA9uB,SACAvsB,OAAA,QACA5uB,KAAAA,SA1FA,GAKAoqE,eAAA3xB,aAAA4xB,oBALAP,mBACAQ,aAAAZ,aAAAz6B,YAAA06B,WACAY,WAAAvvD,EAAA6f,SAAAsK,WAAAqlC,WACAzvB,aAAAR,sBACAyvB,eA+FA73D,MAAAy9B;AAOA66B,A9B4FA,I8B5FA,SAAAP,QAAAliC,UACA,GAAAv9B,OAAAy/D,SAAAlvD,EAAA+nB,SAAAmnC,SAAAA,QAAA,MACAza,KAAAua,YAAAv/D,UAQA,OAPAu/D,aAAAv/D,OAAAglD,KAEAz0C,EAAAhc,KAAAiR,UAAA,SAAA+3B,UACAhtB,EAAAva,WAAAunC,WACAynB,KAAAzlD,KAAAg+B,YAGA79B,MASAoC,KAAA,WAOA,MAAAgU,UAAA,OAAAgqD,WAAAX,cASA/wB,QAAA,WAKA,MAAAt4B,UAAA,WAAAjN,KAAA,WAEA,MAAA+2D,qBACA,GAAAx9B,SAAA,SAAAt5B,QAAAC,QAEA,QAAAk3D,uBACAjyB,aAAAI,UACAvlC,KAAAC,SADAklC,SAEAjlC,QAGA62D,oBAEA/2D,KAAA,WACAo3D,wBAHAL,SAMA,WACA5xB,aACAiyB,sBAEAn3D,cAnBA,UA+BAo3D,gBAAA;AACA,A9BmBA,M8BnBA5vB,eAOA6vB,gBAAA,WACA,GAAAh+B,MAAAziC,IA8BA,OA7BAkgE,uBACAA,oBAAA,GAAAx9B,SAAA,SAAAt5B,QAAAC,QACAwH,EAAAva,WAAA6pE,aAAAO,mBACApyB,aAAA6xB,aAAAO,iBAAAlqE,KAAAisC,MACA6L,aACAA,aACAx4B,GAAA,QAAA,SAAAjY,OACA4kC,KAAAn8B,QAAA,QAAAzI,SAEAiY,GAAA,UAAA,SAAAsvB,UACA3C,KAAAn8B,QAAA,UAAA8+B,SAAA,kBAEAhjC,OACA+G,KAAA,WACA,MAAAmlC,cAAA7nB,OACAtd,KAAA,WACAC,QAAAklC,gBAFAA,SAIAjlC,UAbAilC,SAeAjlC,QAEAA,OAAA,GAAAzC,OAAA,sCAGAyC,OAAA,GAAAzC,OAAA;A9BdA,I8BkBAs5D,qBAUA7iC,QAAA,SAAAxwB,KAAAmE,SAOA,MANAhR,MAAAygE,kBACAt3D,KAAA,SAAAmlC,cACAA,aAAAjR,QAAAxwB,KAAAmE,WAFAhR,SAKA6Q,EAAAlJ,MACA3H,MASAqlB,KAAA,SAAAgY,QAAAnC,SACA,MAAAl7B,MAAAygE,kBACAt3D,KAAA,SAAAmlC,cACA,MAAAA,cAAAjpB,KAAAgY,QAAAnC,YAUAylC,oBAAA,SAAAnnB,QAIA,MAHA3oC,GAAAjM,cAAA40C,SACA3oC,EAAA/L,MAAA66D,gBAAAnmB,QAEAx5C,MASAwzD,YAAA,WAKA,MAAAp9C,UAAA,gBAQAs9C,eAAA,WAKA,MAAAt9C,UAAA,mBAQAw9C,WAAA,WAKA,MAAAx9C,UAAA,eAUAwqD,cAAA,SAAAC,WAKA,MAAAzqD,UAAA,gBAAAyqD,YAWAC,eAAA,SAAA9xB,OAAAwK;AAOA,A9BrIA,M8BqIApjC,UAAA,iBAAA44B,OAAAywB,UAAAjmB,UAUAkb,QAAA,SAAAqM,KAMA,MAAA3qD,UAAA,UAAA2qD,MAaAC,WAAA,SAAAD,IAAAnjE,MAAAwnC,SAAAoU,QASA,MAAApjC,UAAA,aAAA2qD,IAAAnjE,MAAAwnC,SAAAoU,SAYAynB,eAAA,SAAAF,IAAA/xB,OAAAwK,QAQA,MAAApjC,UAAA,iBAAA2qD,IAAA/xB,OAAAywB,UAAAjmB,UAYA0nB,UAAA,SAAAH,IAAAI,OAAA3nB,QAQA,MAAApjC,UAAA,YAAA2qD,IAAAI,OAAA3nB,UAMA,OAFAymB,eAAAh7B,UAAAj9B,MAAAm4D,cAAAtzD,KAAA,UAEA7E,MAhbA,GAAAq4D,cAEA96B,UAAA7rC,KAibA,OAAA8qC,kBAAA+6B,iBAGA,SAAA/qE,EAAAC,GAAA,gBAAAqmC,UAAA,mBAAAC,QAAAA,OAAAD,QAAArmC,IAAA,kBAAAm1B,SAAAA,OAAAC,IAAAD,OAAA,SAAAn1B,GAAAD,EAAA4sE,OAAA3sE;A9B9NA,E8B8NAuL,KAAA,WAAA,YAAA,SAAAxL,KAAA,MAAA6sE,IAAAx7D,MAAA,KAAAC,WAAA,QAAArR,GAAAD,GAAA6sE,GAAA7sE,EAAA,QAAAQ,GAAAR,GAAA,MAAA,mBAAAyO,OAAAd,UAAAe,SAAA1M,KAAAhC,GAAA,QAAAU,GAAAV,GAAA,MAAAA,aAAA0T,OAAA,kBAAAjF,OAAAd,UAAAe,SAAA1M,KAAAhC,GAAA,QAAAY,GAAAZ,EAAAC,GAAA,GAAAO,GAAAE,IAAA,KAAAF,EAAA,EAAAA,EAAAR,EAAAwC,SAAAhC,EAAAE,EAAA2K,KAAApL,EAAAD,EAAAQ,GAAAA,GAAA,OAAAE,GAAA,QAAAU,GAAApB,EAAAC,GAAA,MAAAwO,QAAAd,UAAAgB,eAAA3M,KAAAhC,EAAAC,GAAA,QAAAgD,GAAAjD,EAAAC,GAAA,IAAA,GAAAO,KAAAP,GAAAmB,EAAAnB,EAAAO,KAAAR,EAAAQ,GAAAP,EAAAO,GAAA,OAAAY,GAAAnB,EAAA,cAAAD,EAAA0O,SAAAzO,EAAAyO,UAAAtN,EAAAnB,EAAA,aAAAD,EAAAi+B,QAAAh+B,EAAAg+B,SAAAj+B,EAAA,QAAAkD,GAAAlD,EAAAC,EAAAO,EAAAE,GAAA,MAAAosE,IAAA9sE,EAAAC,EAAAO,EAAAE,GAAA,GAAAqsE,MAAA,QAAAllE,KAAA,OAAAgF,OAAA,EAAAmgE,gBAAAC,eAAAlgE,SAAA,GAAAmgE,cAAA;AAAAC,A9B7NA,W8B6NA,EAAAC,aAAA,KAAAC,eAAA,EAAAC,iBAAA,EAAAC,KAAA,GAAA,QAAAtlE,GAAAjI,GAAA,MAAA,OAAAA,EAAAwtE,MAAAxtE,EAAAwtE,IAAA3lE,KAAA7H,EAAAwtE,IAAA,QAAAtlE,GAAAlI,GAAA,GAAA,MAAAA,EAAAytE,SAAA,CAAA,GAAAxtE,GAAAgI,EAAAjI,EAAAA,GAAAytE,WAAAv7D,MAAAlS,EAAA0tE,GAAA/5D,cAAA1T,EAAA8M,SAAA,IAAA9M,EAAA4M,OAAA5M,EAAAmtE,cAAAntE,EAAA0tE,gBAAA1tE,EAAAktE,WAAAltE,EAAAotE,eAAAptE,EAAAqtE,iBAAAttE,EAAA4tE,UAAA5tE,EAAAytE,SAAAztE,EAAAytE,UAAA,IAAAxtE,EAAAitE,eAAA,IAAAjtE,EAAA+sE,aAAAxqE,QAAA,SAAAvC,EAAA4tE,SAAA,MAAA7tE,GAAAytE,SAAA,QAAAtlE,GAAAnI,GAAA,GAAAC,GAAAiD,EAAA4qE,IAAA,OAAA,OAAA9tE,EAAAiD,EAAAgF,EAAAhI,GAAAD,GAAAiI,EAAAhI,GAAAqtE,iBAAA,EAAArtE,EAAA,QAAAsM,GAAAvM,GAAA,MAAA,UAAAA,EAAA,QAAAwM,GAAAxM,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,CAAA,IAAA2L,EAAAtM,EAAA8tE,oBAAA/tE,EAAA+tE,iBAAA9tE,EAAA8tE,kBAAAxhE,EAAAtM,EAAA+tE,MAAAhuE,EAAAguE,GAAA/tE,EAAA+tE,IAAAzhE,EAAAtM,EAAAguE,MAAAjuE,EAAAiuE,GAAAhuE,EAAAguE;AAAA1hE,A9B5NA,E8B4NAtM,EAAAiuE,MAAAluE,EAAAkuE,GAAAjuE,EAAAiuE,IAAA3hE,EAAAtM,EAAA2tE,WAAA5tE,EAAA4tE,QAAA3tE,EAAA2tE,SAAArhE,EAAAtM,EAAAkuE,QAAAnuE,EAAAmuE,KAAAluE,EAAAkuE,MAAA5hE,EAAAtM,EAAAmuE,UAAApuE,EAAAouE,OAAAnuE,EAAAmuE,QAAA7hE,EAAAtM,EAAAouE,WAAAruE,EAAAquE,QAAApuE,EAAAouE,SAAA9hE,EAAAtM,EAAAutE,OAAAxtE,EAAAwtE,IAAAvlE,EAAAhI,IAAAsM,EAAAtM,EAAAquE,WAAAtuE,EAAAsuE,QAAAruE,EAAAquE,SAAAC,GAAA/rE,OAAA,EAAA,IAAAhC,IAAA+tE,IAAA7tE,EAAA6tE,GAAA/tE,GAAAI,EAAAX,EAAAS,GAAA6L,EAAA3L,KAAAZ,EAAAU,GAAAE,EAAA,OAAAZ,GAAA,QAAAyM,GAAAxM,GAAAuM,EAAAhB,KAAAvL,GAAAuL,KAAAkiE,GAAA,GAAAh6D,MAAA,MAAAzT,EAAAytE,GAAAztE,EAAAytE,GAAA/5D,UAAAm6D,KAAAU,MAAA,IAAAA,IAAA,EAAAxuE,EAAAyuE,aAAAjjE,MAAAgjE,IAAA,GAAA,QAAApuE,GAAAJ,GAAA,MAAAA,aAAAyM,IAAA,MAAAzM,GAAA,MAAAA,EAAA+tE,iBAAA,QAAArhE,GAAA1M,GAAA,MAAA,GAAAA,EAAA+F,KAAAg3B,KAAA/8B,GAAA+F,KAAAi3B,MAAAh9B,GAAA,QAAA+O,GAAA/O,GAAA,GAAAC,IAAAD,EAAAQ,EAAA,CAAA,OAAA,KAAAP,GAAAkS,SAAAlS,KAAAO,EAAAkM,EAAAzM,IAAAO,EAAA,QAAAD,GAAAP,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAmF,KAAA+3B,IAAA99B,EAAAwC,OAAAvC,EAAAuC,QAAApB,EAAA2E,KAAA6uC,IAAA50C,EAAAwC,OAAAvC,EAAAuC,QAAAS,EAAA,CAAA,KAAAvC,EAAA,EAAAE,EAAAF,EAAAA,KAAAF,GAAAR,EAAAU,KAAAT,EAAAS,KAAAF,GAAAuO,EAAA/O,EAAAU,MAAAqO,EAAA9O,EAAAS,MAAAuC;AAAA,A9B3NA,M8B2NAA,GAAA7B,EAAA,QAAA4N,MAAA,QAAAC,GAAAjP,GAAA,MAAAA,GAAAA,EAAAe,cAAAF,QAAA,IAAA,KAAAb,EAAA,QAAAkP,GAAAlP,GAAA,IAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAQ,EAAA,EAAAA,EAAApB,EAAAwC,QAAA,CAAA,IAAA5B,EAAAqO,EAAAjP,EAAAoB,IAAAd,MAAA,KAAAL,EAAAW,EAAA4B,OAAAhC,EAAAyO,EAAAjP,EAAAoB,EAAA,IAAAZ,EAAAA,EAAAA,EAAAF,MAAA,KAAA,KAAAL,EAAA,GAAA,CAAA,GAAAS,EAAAyO,EAAAvO,EAAAsE,MAAA,EAAAjF,GAAAsR,KAAA,MAAA,MAAA7Q,EAAA,IAAAF,GAAAA,EAAAgC,QAAAvC,GAAAM,EAAAK,EAAAJ,GAAA,IAAAP,EAAA,EAAA,KAAAA,KAAAmB,IAAA,MAAA,MAAA,QAAA+N,GAAAnP,GAAA,GAAAC,GAAA,IAAA,KAAAyuE,GAAA1uE,IAAA,mBAAAumC,SAAAA,QAAAA,OAAAD,QAAA,IAAArmC,EAAA0uE,GAAAC,MAAAnlC,QAAA,YAAAzpC,GAAAoP,EAAAnP,GAAA,MAAAO,IAAA,MAAAkuE,IAAA1uE,GAAA,QAAAoP,GAAApP,EAAAC,GAAA,GAAAO,EAAA,OAAAR,KAAAQ,EAAA+L,EAAAtM,GAAAqP,EAAAtP,GAAAqP,EAAArP,EAAAC,GAAAO,IAAAmuE,GAAAnuE,IAAAmuE,GAAAC,MAAA,QAAAv/D,GAAArP,EAAAC,GAAA,MAAA,QAAAA,GAAAA,EAAA4uE,KAAA7uE,EAAA0uE,GAAA1uE,GAAA0uE,GAAA1uE,IAAA,GAAAgP,GAAA0/D,GAAA1uE,GAAAia,IAAAha,GAAAmP,EAAApP,GAAA0uE,GAAA1uE,WAAA0uE,IAAA1uE,GAAA,MAAA,QAAAsP,GAAAtP,GAAA,GAAAC,EAAA,IAAAD,GAAAA,EAAAsuE,SAAAtuE,EAAAsuE,QAAAM,QAAA5uE,EAAAA,EAAAsuE,QAAAM;A9B1NA,C8B0NA5uE,EAAA,MAAA2uE,GAAA,KAAAnuE,EAAAR,GAAA,CAAA,GAAAC,EAAAkP,EAAAnP,GAAA,MAAAC,EAAAD,IAAAA,GAAA,MAAAkP,GAAAlP,GAAA,QAAAuP,GAAAvP,EAAAC,GAAA,GAAAO,GAAAR,EAAAe,aAAA+tE,IAAAtuE,GAAAsuE,GAAAtuE,EAAA,KAAAsuE,GAAA7uE,GAAAD,EAAA,QAAAwP,GAAAxP,GAAA,MAAA,gBAAAA,GAAA8uE,GAAA9uE,IAAA8uE,GAAA9uE,EAAAe,eAAA,OAAA,QAAA0O,GAAAzP,GAAA,GAAAC,GAAAO,EAAAE,IAAA,KAAAF,IAAAR,GAAAoB,EAAApB,EAAAQ,KAAAP,EAAAuP,EAAAhP,GAAAP,IAAAS,EAAAT,GAAAD,EAAAQ,IAAA,OAAAE,GAAA,QAAAgP,GAAA1P,GAAA,MAAAA,aAAA4S,WAAA,sBAAAnE,OAAAd,UAAAe,SAAA1M,KAAAhC,GAAA,QAAAgQ,GAAA/P,EAAAO,GAAA,MAAA,UAAAE,GAAA,MAAA,OAAAA,GAAAR,EAAAsL,KAAAvL,EAAAS,GAAAV,EAAAyuE,aAAAjjE,KAAAhL,GAAAgL,MAAArL,EAAAqL,KAAAvL,IAAA,QAAAE,GAAAH,EAAAC,GAAA,MAAAD,GAAA+uE,UAAA/uE,EAAA0tE,GAAA,OAAA1tE,EAAAouE,OAAA,MAAA,IAAAnuE,KAAA6tE,IAAA,QAAA5tE,GAAAF,EAAAC,EAAAO,GAAAR,EAAA+uE,WAAA/uE,EAAA0tE,GAAA,OAAA1tE,EAAAouE,OAAA,MAAA,IAAAnuE,GAAAO,GAAA,QAAAS,GAAAjB,EAAAC,GAAA,GAAAO,EAAA,IAAA,gBAAAR,GAAA,IAAAQ,IAAAR,GAAAwL,KAAAyO,IAAAzZ,EAAAR,EAAAQ,QAAA,IAAAR,EAAAwP,EAAAxP;AAAA0P,A9BzNA,E8ByNAlE,KAAAxL,IAAA,MAAAwL,MAAAxL,GAAAC,EAAA,OAAAuL,MAAA,QAAA1K,GAAAd,EAAAC,EAAAO,GAAA,GAAAE,GAAA,GAAAqF,KAAA6uC,IAAA50C,GAAAY,EAAAX,EAAAS,EAAA8B,OAAApB,EAAApB,GAAA,CAAA,QAAAoB,EAAAZ,EAAA,IAAA,GAAA,KAAAuF,KAAAipE,IAAA,GAAAjpE,KAAAC,IAAA,EAAApF,IAAA8N,WAAA5G,OAAA,GAAApH,EAAA,QAAAD,GAAAT,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAF,CAAA,iBAAAA,KAAAE,EAAA,WAAA,MAAA4K,MAAA9K,OAAAV,IAAAivE,GAAAjvE,GAAAY,GAAAX,IAAAgvE,GAAAhvE,EAAA,IAAA,WAAA,MAAAa,GAAAF,EAAAyQ,MAAA7F,KAAA8F,WAAArR,EAAA,GAAAA,EAAA,MAAAO,IAAAyuE,GAAAzuE,GAAA,WAAA,MAAAgL,MAAA0jE,aAAAC,QAAAvuE,EAAAyQ,MAAA7F,KAAA8F,WAAAtR,KAAA,QAAAsB,GAAAtB,GAAA,MAAAA,GAAAwiB,MAAA,YAAAxiB,EAAAa,QAAA,WAAA,IAAAb,EAAAa,QAAA,MAAA,IAAA,QAAAgY,GAAA7Y,GAAA,GAAAC,GAAAO,EAAAE,EAAAV,EAAAwiB,MAAA4sD,GAAA,KAAAnvE,EAAA,EAAAO,EAAAE,EAAA8B,OAAAhC,EAAAP,EAAAA,IAAAgvE,GAAAvuE,EAAAT,IAAAS,EAAAT,GAAAgvE,GAAAvuE,EAAAT,IAAAS,EAAAT,GAAAqB,EAAAZ,EAAAT,GAAA,OAAA,UAAAW,GAAA,GAAAQ,GAAA,EAAA,KAAAnB,EAAA,EAAAO,EAAAP,EAAAA,IAAAmB,GAAAV,EAAAT,YAAA2S,UAAAlS,EAAAT,GAAA+B,KAAApB,EAAAZ,GAAAU,EAAAT;AAAA,A9BxNA,M8BwNAmB,IAAA,QAAA0X,GAAA9Y,EAAAC,GAAA,MAAAD,GAAA+uE,WAAA9uE,EAAA8Y,EAAA9Y,EAAAD,EAAAkvE,cAAAG,GAAApvE,GAAAovE,GAAApvE,IAAA4Y,EAAA5Y,GAAAovE,GAAApvE,GAAAD,IAAAA,EAAAkvE,aAAAI,cAAA,QAAAv2D,GAAA/Y,EAAAC,GAAA,QAAAO,GAAAR,GAAA,MAAAC,GAAAsvE,eAAAvvE,IAAAA,EAAA,GAAAU,GAAA,CAAA,KAAA8uE,GAAAptD,UAAA,EAAA1hB,GAAA,GAAA8uE,GAAAtuE,KAAAlB,IAAAA,EAAAA,EAAAa,QAAA2uE,GAAAhvE,GAAAgvE,GAAAptD,UAAA,EAAA1hB,GAAA,CAAA,OAAAV,GAAA,QAAAgZ,GAAAhZ,EAAAC,EAAAO,GAAAq1B,GAAA71B,GAAA0P,EAAAzP,GAAAA,EAAA,SAAAD,EAAAU,GAAA,MAAAV,IAAAQ,EAAAA,EAAAP,GAAA,QAAAgZ,GAAAjZ,EAAAC,GAAA,MAAAmB,GAAAy0B,GAAA71B,GAAA61B,GAAA71B,GAAAC,EAAA2tE,QAAA3tE,EAAAquE,SAAA,GAAApxD,QAAAhE,EAAAlZ,IAAA,QAAAkZ,GAAAlZ,GAAA,MAAAmZ,GAAAnZ,EAAAa,QAAA,KAAA,IAAAA,QAAA,sCAAA,SAAAb,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,MAAAX,IAAAO,GAAAE,GAAAE,KAAA,QAAAuY,GAAAnZ,GAAA,MAAAA,GAAAa,QAAA,yBAAA,QAAA,QAAAuY,GAAApZ,EAAAC,GAAA,GAAAO,GAAAE,EAAAT,CAAA,KAAA,gBAAAD,KAAAA,GAAAA,IAAA,gBAAAC,KAAAS,EAAA,SAAAV,EAAAQ;AAAAA,A9BvNA,E8BuNAP,GAAA8O,EAAA/O,KAAAQ,EAAA,EAAAA,EAAAR,EAAAwC,OAAAhC,IAAA+7B,GAAAv8B,EAAAQ,IAAAE,EAAA,QAAA2Y,GAAArZ,EAAAC,GAAAmZ,EAAApZ,EAAA,SAAAA,EAAAQ,EAAAE,EAAAE,GAAAF,EAAA+uE,GAAA/uE,EAAA+uE,OAAAxvE,EAAAD,EAAAU,EAAA+uE,GAAA/uE,EAAAE,KAAA,QAAA0Y,GAAAtZ,EAAAC,EAAAO,GAAA,MAAAP,GAAAmB,EAAAm7B,GAAAv8B,IAAAu8B,GAAAv8B,GAAAC,EAAAO,EAAAkvE,GAAAlvE,EAAAR,GAAA,QAAAgc,GAAAhc,EAAAC,GAAA,MAAA,IAAAyT,MAAAA,KAAAi8D,IAAA3vE,EAAAC,EAAA,EAAA,IAAA2vE,aAAA,QAAA3zD,GAAAjc,EAAAC,GAAA,MAAAO,GAAAgL,KAAAqkE,SAAArkE,KAAAqkE,QAAA7vE,EAAA8vE,SAAAtkE,KAAAqkE,QAAA31C,GAAAh5B,KAAAjB,GAAA,SAAA,cAAAD,EAAA8vE,SAAA,QAAA5zD,GAAAlc,EAAAC,GAAA,MAAAO,GAAAgL,KAAAukE,cAAAvkE,KAAAukE,aAAA/vE,EAAA8vE,SAAAtkE,KAAAukE,aAAA71C,GAAAh5B,KAAAjB,GAAA,SAAA,cAAAD,EAAA8vE,SAAA,QAAA3zD,GAAAnc,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,CAAA,KAAAoK,KAAAwkE,eAAAxkE,KAAAwkE,gBAAAxkE,KAAAykE,oBAAAzkE,KAAA0kE,sBAAAxvE,EAAA,EAAA,GAAAA,EAAAA,IAAA,CAAA,GAAAE,EAAAsC,GAAA,IAAAxC,IAAAF,IAAAgL,KAAAykE,iBAAAvvE,KAAA8K,KAAAykE,iBAAAvvE,GAAA,GAAAwc,QAAA,IAAA1R,KAAA2kE,OAAAvvE,EAAA,IAAAC,QAAA,IAAA,IAAA,IAAA;AAAA2K,A9BtNA,K8BsNA0kE,kBAAAxvE,GAAA,GAAAwc,QAAA,IAAA1R,KAAA4kE,YAAAxvE,EAAA,IAAAC,QAAA,IAAA,IAAA,IAAA,MAAAL,GAAAgL,KAAAwkE,aAAAtvE,KAAAU,EAAA,IAAAoK,KAAA2kE,OAAAvvE,EAAA,IAAA,KAAA4K,KAAA4kE,YAAAxvE,EAAA,IAAA4K,KAAAwkE,aAAAtvE,GAAA,GAAAwc,QAAA9b,EAAAP,QAAA,IAAA,IAAA,MAAAL,GAAA,SAAAP,GAAAuL,KAAAykE,iBAAAvvE,GAAAQ,KAAAlB,GAAA,MAAAU,EAAA,IAAAF,GAAA,QAAAP,GAAAuL,KAAA0kE,kBAAAxvE,GAAAQ,KAAAlB,GAAA,MAAAU,EAAA,KAAAF,GAAAgL,KAAAwkE,aAAAtvE,GAAAQ,KAAAlB,GAAA,MAAAU,IAAA,QAAA0b,GAAApc,EAAAC,GAAA,GAAAO,EAAA,OAAAR,GAAA+uE,UAAA,gBAAA9uE,KAAAA,EAAAD,EAAAkvE,aAAAmB,YAAApwE,GAAA,gBAAAA,IAAAD,GAAAQ,EAAAuF,KAAA+3B,IAAA99B,EAAAswE,OAAAt0D,EAAAhc,EAAAuwE,OAAAtwE,IAAAD,EAAA0tE,GAAA,OAAA1tE,EAAAouE,OAAA,MAAA,IAAA,SAAAnuE,EAAAO,GAAAR,GAAAA,EAAA,QAAAsO,GAAArO,GAAA,MAAA,OAAAA,GAAAmc,EAAA5Q,KAAAvL,GAAAD,EAAAyuE,aAAAjjE,MAAA,GAAAA,MAAArL,EAAAqL,KAAA;A9BrNA,C8BqNA,QAAA6Q,KAAA,MAAAL,GAAAxQ,KAAA+kE,OAAA/kE,KAAAskE,SAAA,QAAAU,IAAAxwE,GAAA,MAAAwL,MAAAilE,mBAAArvE,EAAAoK,KAAA,iBAAApF,GAAApE,KAAAwJ,MAAAxL,EAAAwL,KAAAklE,wBAAAllE,KAAAmlE,mBAAAnlE,KAAAklE,yBAAA1wE,EAAAwL,KAAAklE,wBAAAllE,KAAAmlE,kBAAA,QAAAnvE,IAAAxB,GAAA,MAAAwL,MAAAilE,mBAAArvE,EAAAoK,KAAA,iBAAApF,GAAApE,KAAAwJ,MAAAxL,EAAAwL,KAAAolE,mBAAAplE,KAAAqlE,cAAArlE,KAAAolE,oBAAA5wE,EAAAwL,KAAAolE,mBAAAplE,KAAAqlE,aAAA,QAAAzqE,MAAA,QAAApG,GAAAA,EAAAC,GAAA,MAAAA,GAAAuC,OAAAxC,EAAAwC,OAAA,GAAAvC,GAAAO,EAAAE,KAAAE,KAAAQ,IAAA,KAAAnB,EAAA,EAAA,GAAAA,EAAAA,IAAAO,EAAA0C,GAAA,IAAAjD,IAAAS,EAAA2K,KAAAG,KAAA4kE,YAAA5vE,EAAA,KAAAI,EAAAyK,KAAAG,KAAA2kE,OAAA3vE,EAAA,KAAAY,EAAAiK,KAAAG,KAAA2kE,OAAA3vE,EAAA,KAAAY,EAAAiK,KAAAG,KAAA4kE,YAAA5vE,EAAA;AAAA,A9BpNA,I8BoNAE,EAAA+Q,KAAAzR,GAAAY,EAAA6Q,KAAAzR,GAAAoB,EAAAqQ,KAAAzR,GAAAC,EAAA,EAAA,GAAAA,EAAAA,IAAAS,EAAAT,GAAAkZ,EAAAzY,EAAAT,IAAAW,EAAAX,GAAAkZ,EAAAvY,EAAAX,IAAAmB,EAAAnB,GAAAkZ,EAAA/X,EAAAnB,GAAAuL,MAAAqlE,aAAA,GAAA3zD,QAAA,KAAA9b,EAAAmQ,KAAA,KAAA,IAAA,KAAA/F,KAAAmlE,kBAAAnlE,KAAAqlE,aAAArlE,KAAAolE,mBAAA,GAAA1zD,QAAA,KAAAtc,EAAA2Q,KAAA,KAAA,KAAA,KAAA/F,KAAAklE,wBAAA,GAAAxzD,QAAA,KAAAxc,EAAA6Q,KAAA,KAAA,KAAA,KAAA,QAAAu/D,IAAA9wE,GAAA,GAAAC,GAAAO,EAAAR,EAAA0vE,EAAA,OAAAlvE,IAAA,KAAAyH,EAAAjI,GAAA+M,WAAA9M,EAAAO,EAAA87B,IAAA,GAAA97B,EAAA87B,IAAA,GAAAA,GAAA97B,EAAAg8B,IAAA,GAAAh8B,EAAAg8B,IAAAxgB,EAAAxb,EAAAy4B,IAAAz4B,EAAA87B,KAAAE,GAAAh8B,EAAA64B,IAAA,GAAA74B,EAAA64B,IAAA,IAAA,KAAA74B,EAAA64B,MAAA,IAAA74B,EAAAs1B,KAAA,IAAAt1B,EAAA28B,KAAA,IAAA38B,EAAAs8B,KAAAzD,GAAA74B,EAAAs1B,IAAA,GAAAt1B,EAAAs1B,IAAA,GAAAA,GAAAt1B,EAAA28B,IAAA,GAAA38B,EAAA28B,IAAA,GAAAA,GAAA38B,EAAAs8B,IAAA,GAAAt8B,EAAAs8B,IAAA,IAAAA,GAAA,GAAA70B,EAAAjI,GAAA+wE,qBAAA93C,GAAAh5B,GAAAA,EAAAu8B,MAAAv8B,EAAAu8B,IAAAv0B,EAAAjI,GAAAgxE,gBAAA,KAAA/wE,IAAAA,EAAAm2B,IAAAnuB,EAAAjI,GAAAixE,kBAAA,KAAAhxE,IAAAA,EAAAw9B;AAAAx1B,A9BnNA,E8BmNAjI,GAAA+M,SAAA9M,GAAAD,EAAA,QAAAkxE,IAAAjxE,GAAAD,EAAAmxE,+BAAA,GAAA,mBAAA36B,UAAAA,QAAAqlB,MAAArlB,QAAAqlB,KAAA,wBAAA57D,GAAA,QAAAmxE,IAAApxE,EAAAC,GAAA,GAAAO,IAAA,CAAA,OAAAyC,GAAA,WAAA,MAAAzC,KAAA0wE,GAAAlxE,EAAA,gBAAAuO,MAAAZ,UAAAzI,MAAAlD,KAAAsP,WAAAC,KAAA,MAAA,MAAA,GAAAa,QAAAy6C,OAAArsD,GAAA,GAAAP,EAAAoR,MAAA7F,KAAA8F,YAAArR,GAAA,QAAAoxE,IAAArxE,EAAAC,GAAA2+B,GAAA5+B,KAAAkxE,GAAAjxE,GAAA2+B,GAAA5+B,IAAA,GAAA,QAAAsxE,IAAAtxE,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAAlD,EAAAguE,GAAAnmE,EAAA6xB,GAAA5zB,KAAA5C,IAAAw6B,GAAA53B,KAAA5C,EAAA,IAAA2E,EAAA,CAAA,IAAAI,EAAAjI,GAAAutE,KAAA,EAAAttE,EAAA,EAAAO,EAAAm+B,GAAAn8B,OAAAhC,EAAAP,EAAAA,IAAA,GAAA0+B,GAAA1+B,GAAA,GAAA6F,KAAA+B,EAAA,IAAA,CAAAjH,EAAA+9B,GAAA1+B,GAAA,GAAAS,EAAAi+B,GAAA1+B,GAAA,MAAA,CAAA,OAAA,GAAA,MAAAW,EAAA,YAAAZ,EAAAytE,UAAA,EAAA,IAAA5lE,EAAA,GAAA,CAAA,IAAA5H,EAAA,EAAAO,EAAA81B,GAAA9zB,OAAAhC,EAAAP,EAAAA,IAAA,GAAAq2B,GAAAr2B,GAAA,GAAA6F,KAAA+B,EAAA,IAAA,CAAAzG,GAAAyG,EAAA,IAAA,KAAAyuB,GAAAr2B,GAAA,EAAA;A9BlNA,C8BkNA,GAAA,MAAAmB,EAAA,YAAApB,EAAAytE,UAAA,GAAA,IAAA/sE,GAAA,MAAAU,EAAA,YAAApB,EAAAytE,UAAA,EAAA,IAAA5lE,EAAA,GAAA,CAAA,IAAAg3B,GAAA/4B,KAAA+B,EAAA,IAAA,YAAA7H,EAAAytE,UAAA,EAAAxqE,GAAA,IAAAjD,EAAAiuE,GAAArtE,GAAAQ,GAAA,KAAA6B,GAAA,IAAAsuE,GAAAvxE,OAAAA,GAAAytE,UAAA,EAAA,QAAA+D,IAAAvxE,GAAA,GAAAO,GAAAs+B,GAAAh5B,KAAA7F,EAAA+tE,GAAA,OAAA,QAAAxtE,OAAAP,EAAAytE,GAAA,GAAAh6D,OAAAlT,EAAA,MAAA8wE,GAAArxE,QAAAA,EAAAwtE,YAAA,UAAAxtE,GAAAwtE,SAAAztE,EAAAyxE,wBAAAxxE,MAAA,QAAAyxE,IAAA1xE,EAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,EAAA6B,GAAA,GAAAC,GAAA,GAAAwQ,MAAA1T,EAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,EAAA6B,EAAA,OAAA,KAAAjD,GAAAA,GAAA,GAAAmS,SAAAjP,EAAAyuE,gBAAAzuE,EAAA0uE,YAAA5xE,GAAAkD,EAAA,QAAA2uE,IAAA7xE,GAAA,GAAAC,GAAA,GAAAyT,MAAAA,KAAAi8D,IAAAt+D,MAAA,KAAAC,WAAA,OAAA,KAAAtR,GAAAA,GAAA,GAAAmS,SAAAlS,EAAA6xE,mBAAA7xE,EAAA8xE,eAAA/xE,GAAAC,EAAA,QAAA+xE,IAAAhyE,GAAA,MAAAiyE,IAAAjyE,GAAA,IAAA,IAAA,QAAAiyE,IAAAjyE,GAAA,MAAAA,GAAA,IAAA,GAAAA,EAAA,MAAA,GAAAA,EAAA,MAAA;A9BjNA,C8BiNA,QAAAkyE,MAAA,MAAAD,IAAAzmE,KAAA+kE,QAAA,QAAA4B,IAAAnyE,EAAAC,EAAAO,GAAA,GAAAE,GAAA,EAAAT,EAAAO,EAAAI,GAAA,EAAAixE,GAAA7xE,EAAA,EAAAU,GAAA0xE,YAAAnyE,GAAA,CAAA,QAAAW,EAAAF,EAAA,EAAA,QAAA2xE,IAAAryE,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,GAAAQ,GAAA6B,EAAAC,GAAA,EAAA1C,EAAAE,GAAA,EAAAmH,EAAAsqE,GAAAnyE,EAAAU,EAAAE,GAAAqH,EAAA,EAAA,GAAAhI,EAAA,GAAAiD,EAAA2E,CAAA,OAAA,IAAAI,GAAA7G,EAAApB,EAAA,EAAAiD,EAAA+uE,GAAA5wE,GAAA6G,GAAAA,EAAA+pE,GAAAhyE,IAAAoB,EAAApB,EAAA,EAAAiD,EAAAgF,EAAA+pE,GAAAhyE,KAAAoB,EAAApB,EAAAiD,EAAAgF,IAAAsoE,KAAAnvE,EAAAkxE,UAAArvE,GAAA,QAAAsvE,IAAAvyE,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,EAAA+wE,GAAAnyE,EAAAuwE,OAAAtwE,EAAAO,GAAAyC,EAAA8C,KAAAi3B,OAAAh9B,EAAAsyE,YAAAlxE,EAAA,GAAA,GAAA,CAAA,OAAA,GAAA6B,GAAArC,EAAAZ,EAAAuwE,OAAA,EAAA7vE,EAAAuC,EAAAuvE,GAAA5xE,EAAAX,EAAAO,IAAAyC,EAAAuvE,GAAAxyE,EAAAuwE,OAAAtwE,EAAAO,IAAAE,EAAAuC,EAAAuvE,GAAAxyE,EAAAuwE,OAAAtwE,EAAAO,GAAAI,EAAAZ,EAAAuwE,OAAA,IAAA3vE,EAAAZ,EAAAuwE,OAAA7vE,EAAAuC,IAAAwvE,KAAA/xE,EAAA6vE,KAAA3vE,GAAA,QAAA4xE,IAAAxyE,EAAAC,EAAAO,GAAA,GAAAE,GAAAyxE,GAAAnyE,EAAAC,EAAAO,GAAAI,EAAAuxE,GAAAnyE,EAAA,EAAAC,EAAAO,EAAA,QAAAwxE,GAAAhyE,GAAAU,EAAAE,GAAA,EAAA,QAAA8xE,IAAA1yE,EAAAC,EAAAO,GAAA,MAAA,OAAAR,EAAAA,EAAA,MAAAC,EAAAA,EAAAO,EAAA,QAAAmyE,IAAA1yE,GAAA,GAAAO,GAAA,GAAAkT,MAAA1T,EAAA6J,MAAA,OAAA5J,GAAA2yE,SAAApyE,EAAAsxE,iBAAAtxE,EAAAqyE,cAAAryE,EAAAovE,eAAApvE,EAAAmxE,cAAAnxE,EAAAsyE,WAAAtyE,EAAAuyE;A9BhNA,C8BgNA,QAAAC,IAAAhzE,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAQ,IAAA,KAAApB,EAAA0tE,GAAA,CAAA,IAAAhtE,EAAAiyE,GAAA3yE,GAAAA,EAAAyvE,IAAA,MAAAzvE,EAAA0vE,GAAAlzC,KAAA,MAAAx8B,EAAA0vE,GAAApzC,KAAA22C,GAAAjzE,GAAAA,EAAAkzE,aAAAtyE,EAAA8xE,GAAA1yE,EAAA0vE,GAAAz2C,IAAAv4B,EAAAu4B,KAAAj5B,EAAAkzE,WAAAlB,GAAApxE,KAAAqH,EAAAjI,GAAA+wE,oBAAA,GAAAvwE,EAAAqxE,GAAAjxE,EAAA,EAAAZ,EAAAkzE,YAAAlzE,EAAA0vE,GAAApzC,IAAA97B,EAAAqyE,cAAA7yE,EAAA0vE,GAAAlzC,IAAAh8B,EAAAovE,cAAA3vE,EAAA,EAAA,EAAAA,GAAA,MAAAD,EAAA0vE,GAAAzvE,KAAAA,EAAAD,EAAA0vE,GAAAzvE,GAAAmB,EAAAnB,GAAAS,EAAAT,EAAA,MAAA,EAAAA,EAAAA,IAAAD,EAAA0vE,GAAAzvE,GAAAmB,EAAAnB,GAAA,MAAAD,EAAA0vE,GAAAzvE,GAAA,IAAAA,EAAA,EAAA,EAAAD,EAAA0vE,GAAAzvE,EAAA,MAAAD,EAAA0vE,GAAAr2C,KAAA,IAAAr5B,EAAA0vE,GAAA55C,KAAA,IAAA91B,EAAA0vE,GAAAvyC,KAAA,IAAAn9B,EAAA0vE,GAAA5yC,MAAA98B,EAAAmzE,UAAA,EAAAnzE,EAAA0vE,GAAAr2C,IAAA,GAAAr5B,EAAA0tE,IAAA1tE,EAAA4yE,QAAAf,GAAAH,IAAArgE,MAAA,KAAAjQ,GAAA,MAAApB,EAAAmuE,MAAAnuE,EAAA0tE,GAAA0F,cAAApzE,EAAA0tE,GAAA2F,gBAAArzE,EAAAmuE,MAAAnuE,EAAAmzE,WAAAnzE,EAAA0vE,GAAAr2C,IAAA,KAAA,QAAA45C,IAAAjzE,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAA2E,CAAA5H,GAAAD,EAAAyvE,GAAA,MAAAxvE,EAAAqzE,IAAA,MAAArzE,EAAAgc,GAAA,MAAAhc,EAAA+P,GAAA5O,EAAA,EAAA6B,EAAA,EAAAzC,EAAAkyE,GAAAzyE,EAAAqzE,GAAAtzE,EAAA0vE,GAAAz2C,IAAAs5C,GAAAgB,KAAA,EAAA,GAAAhD;AAAA7vE,A9B/MA,E8B+MAgyE,GAAAzyE,EAAAgc,EAAA,GAAArb,EAAA8xE,GAAAzyE,EAAA+P,EAAA,IAAA,EAAApP,GAAAA,EAAA,KAAAiH,GAAA,KAAAzG,EAAApB,EAAAsuE,QAAAkF,MAAAC,IAAAxwE,EAAAjD,EAAAsuE,QAAAkF,MAAAE,IAAAlzE,EAAAkyE,GAAAzyE,EAAA0zE,GAAA3zE,EAAA0vE,GAAAz2C,IAAAs5C,GAAAgB,KAAAnyE,EAAA6B,GAAAstE,MAAA7vE,EAAAgyE,GAAAzyE,EAAAkP,EAAA,GAAA,MAAAlP,EAAAS,GAAAE,EAAAX,EAAAS,GAAA,EAAAE,GAAAA,EAAA,KAAAiH,GAAA,IAAA,MAAA5H,EAAAW,GAAAA,EAAAX,EAAAW,EAAAQ,GAAAnB,EAAAW,EAAA,GAAAX,EAAAW,EAAA,KAAAiH,GAAA,IAAAjH,EAAAQ,GAAA,EAAAV,GAAAA,EAAA8xE,GAAAhyE,EAAAY,EAAA6B,GAAAgF,EAAAjI,GAAAgxE,gBAAA,EAAA,MAAAnpE,EAAAI,EAAAjI,GAAAixE,kBAAA,GAAA/tE,EAAAmvE,GAAA7xE,EAAAE,EAAAE,EAAAQ,EAAA6B,GAAAjD,EAAA0vE,GAAAz2C,IAAA/1B,EAAAqtE,KAAAvwE,EAAAkzE,WAAAhwE,EAAAovE,WAAA,QAAAf,IAAAtxE,GAAA,GAAAA,EAAAguE,KAAAjuE,EAAA4zE,SAAA,WAAAtC,IAAArxE,EAAAA,GAAAyvE,MAAAznE,EAAAhI,GAAA4M,OAAA,CAAA,IAAArM,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAA,GAAAjD,EAAA+tE,GAAAnmE,EAAA3E,EAAAV,OAAA0F,EAAA,CAAA,KAAAtH,EAAAmY,EAAA9Y,EAAAguE,GAAAhuE,EAAAquE,SAAA9rD,MAAA4sD,QAAA5uE,EAAA,EAAAA,EAAAI,EAAA4B,OAAAhC,IAAAY,EAAAR,EAAAJ,GAAAE,GAAAwC,EAAAsf,MAAAvJ,EAAA7X,EAAAnB,SAAA,GAAAS,IAAAuC,EAAAC,EAAA4E,OAAA,EAAA5E,EAAAsL,QAAA9N,IAAAuC,EAAAT,OAAA,GAAAyF,EAAAhI,GAAAgtE,YAAA5hE,KAAApI,GAAAC,EAAAA,EAAAgC,MAAAhC,EAAAsL,QAAA9N,GAAAA,EAAA8B,QAAA0F,GAAAxH,EAAA8B;AAAAysE,A9B9MA,G8B8MA7tE,IAAAV,EAAAuH,EAAAhI,GAAA4M,OAAA,EAAA5E,EAAAhI,GAAA+sE,aAAA3hE,KAAAjK,GAAAkY,EAAAlY,EAAAV,EAAAT,IAAAA,EAAA2tE,UAAAltE,GAAAuH,EAAAhI,GAAA+sE,aAAA3hE,KAAAjK,EAAA6G,GAAAhI,GAAAitE,cAAArlE,EAAAK,EAAAhF,EAAAV,OAAA,GAAAyF,EAAAhI,GAAAgtE,YAAA5hE,KAAAnI,GAAA+E,EAAAhI,GAAA4tE,WAAA,GAAA5tE,EAAAyvE,GAAAr2C,KAAA,IAAAp5B,EAAAyvE,GAAAr2C,IAAA,IAAApxB,EAAAhI,GAAA4tE,QAAA,QAAA5tE,EAAAyvE,GAAAr2C,IAAAw6C,GAAA5zE,EAAAquE,QAAAruE,EAAAyvE,GAAAr2C,IAAAp5B,EAAA6zE,WAAAd,GAAA/yE,GAAA6wE,GAAA7wE,GAAA,QAAA4zE,IAAA7zE,EAAAC,EAAAO,GAAA,GAAAE,EAAA,OAAA,OAAAF,EAAAP,EAAA,MAAAD,EAAA+zE,aAAA/zE,EAAA+zE,aAAA9zE,EAAAO,GAAA,MAAAR,EAAAg0E,MAAAtzE,EAAAV,EAAAg0E,KAAAxzE,GAAAE,GAAA,GAAAT,IAAAA,GAAA,IAAAS,GAAA,KAAAT,IAAAA,EAAA,GAAAA,GAAAA,EAAA,QAAAg0E,IAAAj0E,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAQ,CAAA,IAAA,IAAApB,EAAAiuE,GAAAzrE,OAAA,MAAAyF,GAAAjI,GAAAqtE,eAAA,OAAArtE,EAAA0tE,GAAA,GAAAh6D,MAAAo6D,KAAA,KAAAltE,EAAA,EAAAA,EAAAZ,EAAAiuE,GAAAzrE,OAAA5B,IAAAQ,EAAA,EAAAnB,EAAAuM,KAAAxM,GAAA,MAAAA,EAAA4yE,UAAA3yE,EAAA2yE,QAAA5yE,EAAA4yE,SAAA3yE,EAAAguE,GAAAjuE,EAAAiuE,GAAArtE,GAAA2wE,GAAAtxE,GAAAiI,EAAAjI,KAAAmB,GAAA6G,EAAAhI,GAAAitE,cAAA9rE,GAAA,GAAA6G,EAAAhI,GAAA+sE,aAAAxqE;AAAAyF,A9B7MA,E8B6MAhI,GAAAi0E,MAAA9yE,GAAA,MAAAV,GAAAA,EAAAU,KAAAV,EAAAU,EAAAZ,EAAAP,GAAAgD,GAAAjD,EAAAQ,GAAAP,GAAA,QAAAk0E,IAAAn0E,GAAA,IAAAA,EAAA0tE,GAAA,CAAA,GAAAztE,GAAAwP,EAAAzP,EAAAguE,GAAAhuE,GAAA0vE,GAAA9uE,GAAAX,EAAAswE,KAAAtwE,EAAA6vE,MAAA7vE,EAAAm0E,KAAAn0E,EAAAqwE,KAAArwE,EAAAo0E,KAAAp0E,EAAAq0E,OAAAr0E,EAAAs0E,OAAAt0E,EAAAu0E,aAAA,SAAAx0E,GAAA,MAAAA,IAAAyb,SAAAzb,EAAA,MAAAgzE,GAAAhzE,IAAA,QAAAy0E,IAAAz0E,GAAA,GAAAC,GAAA,GAAAwM,GAAAqkE,GAAA4D,GAAA10E,IAAA,OAAAC,GAAAkzE,WAAAlzE,EAAAqD,IAAA,EAAA,KAAArD,EAAAkzE,SAAA,QAAAlzE,EAAA,QAAAy0E,IAAA10E,GAAA,GAAAC,GAAAD,EAAAguE,GAAAptE,EAAAZ,EAAAiuE,EAAA,OAAAjuE,GAAAsuE,QAAAtuE,EAAAsuE,SAAAh/D,EAAAtP,EAAAkuE,IAAA,OAAAjuE,GAAA,SAAAW,GAAA,KAAAX,EAAAkI,GAAAglE,WAAA,KAAA,gBAAAltE,KAAAD,EAAAguE,GAAA/tE,EAAAD,EAAAsuE,QAAAqG,SAAA10E,IAAAG,EAAAH,GAAA,GAAAwM,GAAAqkE,GAAA7wE,KAAAO,EAAAI,GAAAqzE,GAAAj0E,GAAAY,EAAA2wE,GAAAvxE,GAAAU,EAAAT,GAAAD,EAAA0tE,GAAAztE,EAAA20E,GAAA50E,GAAAkI,EAAAlI,KAAAA,EAAA0tE,GAAA,MAAA1tE,IAAA,QAAA40E,IAAA30E,GAAA,GAAAmB,GAAAnB,EAAA+tE,EAAA,UAAA5sE,EAAAnB,EAAAytE,GAAA,GAAAh6D,MAAA1T,EAAA6J,OAAAnJ,EAAAU,GAAAnB,EAAAytE,GAAA,GAAAh6D,OAAAtS,GAAA,gBAAAA,GAAAowE,GAAAvxE,GAAAO,EAAAY,IAAAnB,EAAAyvE,GAAA9uE,EAAAQ,EAAA8D,MAAA,GAAA,SAAAlF;AAAA,A9B5MA,M8B4MAyb,UAAAzb,EAAA,MAAAgzE,GAAA/yE,IAAA,gBAAAmB,GAAA+yE,GAAAl0E,GAAA,gBAAAmB,GAAAnB,EAAAytE,GAAA,GAAAh6D,MAAAtS,GAAApB,EAAAyxE,wBAAAxxE,GAAA,QAAA6sE,IAAA9sE,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,GAAAQ,KAAA,OAAA,iBAAAZ,KAAAE,EAAAF,EAAAA,EAAA,QAAAY,EAAA2sE,kBAAA,EAAA3sE,EAAAwxE,QAAAxxE,EAAAgtE,OAAAxtE,EAAAQ,EAAA8sE,GAAA1tE,EAAAY,EAAA4sE,GAAAhuE,EAAAoB,EAAA6sE,GAAAhuE,EAAAmB,EAAAwsE,QAAAltE,EAAA+zE,GAAArzE,GAAA,QAAAmyE,IAAAvzE,EAAAC,EAAAO,EAAAE,GAAA,MAAAosE,IAAA9sE,EAAAC,EAAAO,EAAAE,GAAA,GAAA,QAAAm0E,IAAA70E,EAAAC,GAAA,GAAAS,GAAAE,CAAA,IAAA,IAAAX,EAAAuC,QAAAhC,EAAAP,EAAA,MAAAA,EAAAA,EAAA,KAAAA,EAAAuC,OAAA,MAAA+wE,KAAA,KAAA7yE,EAAAT,EAAA,GAAAW,EAAA,EAAAA,EAAAX,EAAAuC,SAAA5B,IAAAX,EAAAW,GAAAmuE,WAAA9uE,EAAAW,GAAAZ,GAAAU,MAAAA,EAAAT,EAAAW,GAAA,OAAAF,GAAA,QAAAo0E,MAAA,GAAA90E,MAAAkF,MAAAlD,KAAAsP,UAAA,EAAA,OAAAujE,IAAA,WAAA70E,GAAA,QAAA+0E,MAAA,GAAA/0E,MAAAkF,MAAAlD,KAAAsP,UAAA,EAAA,OAAAujE,IAAA,UAAA70E,GAAA,QAAAg1E,IAAAh1E,GAAA,GAAAC,GAAAwP,EAAAzP,GAAAQ,EAAAP,EAAAswE,MAAA,EAAA7vE,EAAAT,EAAAg1E,SAAA,EAAAr0E,EAAAX,EAAA6vE,OAAA,EAAA1uE,EAAAnB,EAAAwyE,MAAA,EAAAxvE,EAAAhD,EAAAm0E,KAAA,EAAAlxE,EAAAjD,EAAAo0E,MAAA,EAAAxsE,EAAA5H,EAAAq0E,QAAA,EAAArsE,EAAAhI,EAAAs0E,QAAA,EAAArsE,EAAAjI,EAAAu0E,aAAA;AAAAhpE,A9B3MA,K8B2MA0pE,eAAAhtE,EAAA,IAAAD,EAAA,IAAAJ,EAAA,KAAA3E,EAAAsI,KAAA2pE,OAAAlyE,EAAA,EAAA7B,EAAAoK,KAAAqkE,SAAAjvE,EAAA,EAAAF,EAAA,GAAAF,EAAAgL,KAAAxI,SAAAwI,KAAA8iE,QAAAh/D,IAAA9D,KAAA4pE,UAAA,QAAAC,IAAAr1E,GAAA,MAAAA,aAAAg1E,IAAA,QAAAM,IAAAt1E,EAAAC,GAAAQ,EAAAT,EAAA,EAAA,EAAA,WAAA,GAAAA,GAAAwL,KAAA+pE,YAAA/0E,EAAA,GAAA,OAAA,GAAAR,IAAAA,GAAAA,EAAAQ,EAAA,KAAAA,EAAAM,KAAAd,EAAA,IAAA,GAAAC,EAAAa,IAAAd,EAAA,GAAA,KAAA,QAAAw1E,IAAAx1E,EAAAC,GAAA,GAAAO,IAAAP,GAAA,IAAAuiB,MAAAxiB,OAAAU,EAAAF,EAAAA,EAAAgC,OAAA,OAAA5B,GAAAF,EAAA,IAAA8hB,MAAAub,MAAA,IAAA,EAAA,GAAA38B,IAAA,GAAAR,EAAA,IAAAmO,EAAAnO,EAAA,GAAA,OAAA,MAAAA,EAAA,GAAAQ,GAAAA,EAAA,QAAAq0E,IAAAx1E,EAAAO,GAAA,GAAAI,GAAAQ,CAAA,OAAAZ,GAAA4tE,QAAAxtE,EAAAJ,EAAA+R,QAAAnR,GAAAhB,EAAAH,IAAAS,EAAAT,IAAAA,GAAAszE,GAAAtzE,KAAAW,EAAAA,EAAA8sE,GAAAgI,SAAA90E,EAAA8sE,GAAAtsE,GAAApB,EAAAyuE,aAAA7tE,GAAA,GAAAA,GAAA2yE,GAAAtzE,GAAA+tC,QAAA,QAAA2nC,IAAA31E,GAAA,MAAA,KAAA+F,KAAA6vE,MAAA51E,EAAA0tE,GAAAmI,oBAAA,IAAA,QAAAC,IAAA71E,EAAAO,GAAA,GAAAE,GAAAE,EAAA4K,KAAA6iE,SAAA;AAAA,A9B1MA,M8B0MA7iE,MAAAujE,UAAA,MAAA9uE,GAAA,gBAAAA,GAAAA,EAAAu1E,GAAAp5C,GAAAn8B,GAAA8F,KAAA6uC,IAAA30C,GAAA,KAAAA,EAAA,GAAAA,IAAAuL,KAAA4iE,QAAA5tE,IAAAE,EAAAi1E,GAAAnqE,OAAAA,KAAA6iE,QAAApuE,EAAAuL,KAAA4iE,QAAA,EAAA,MAAA1tE,GAAA8K,KAAAlI,IAAA5C,EAAA,KAAAE,IAAAX,KAAAO,GAAAgL,KAAAuqE,kBAAArwE,GAAA8F,KAAAwqE,GAAA/1E,EAAAW,EAAA,KAAA,GAAA,GAAA4K,KAAAuqE,oBAAAvqE,KAAAuqE,mBAAA,EAAA/1E,EAAAyuE,aAAAjjE,MAAA,GAAAA,KAAAuqE,kBAAA,OAAAvqE,MAAAA,KAAA4iE,OAAAxtE,EAAA+0E,GAAAnqE,MAAA,MAAAvL,EAAAuL,KAAAsiE,IAAA,QAAAmI,IAAAj2E,EAAAC,GAAA,MAAA,OAAAD,GAAA,gBAAAA,KAAAA,GAAAA,GAAAwL,KAAA+pE,UAAAv1E,EAAAC,GAAAuL,OAAAA,KAAA+pE,YAAA,QAAAW,IAAAl2E,GAAA,MAAAwL,MAAA+pE,UAAA,EAAAv1E,GAAA,QAAAm2E,IAAAn2E,GAAA,MAAAwL,MAAA4iE,SAAA5iE,KAAA+pE,UAAA,EAAAv1E,GAAAwL,KAAA4iE,QAAA,EAAApuE,GAAAwL,KAAA4qE,SAAAT,GAAAnqE,MAAA,MAAAA,KAAA,QAAA6qE,MAAA,MAAA7qE,MAAA2iE,KAAA3iE,KAAA+pE,UAAA/pE,KAAA2iE,MAAA,gBAAA3iE,MAAAwiE,IAAAxiE,KAAA+pE,UAAAC,GAAA75C,GAAAnwB,KAAAwiE;AAAAxiE,A9BzMA,K8ByMA,QAAA8qE,IAAAt2E,GAAA,MAAAwL,MAAAujE,WAAA/uE,EAAAA,EAAAuzE,GAAAvzE,GAAAu1E,YAAA,GAAA/pE,KAAA+pE,YAAAv1E,GAAA,KAAA,IAAA,EAAA,QAAAu2E,MAAA,MAAA/qE,MAAA+pE,YAAA/pE,KAAA+G,QAAAu9D,MAAA,GAAAyF,aAAA/pE,KAAA+pE,YAAA/pE,KAAA+G,QAAAu9D,MAAA,GAAAyF,YAAA,QAAAiB,MAAA,IAAAjqE,EAAAf,KAAAirE,eAAA,MAAAjrE,MAAAirE,aAAA,IAAAz2E,KAAA,IAAAwM,EAAAxM,EAAAwL,MAAAxL,EAAA00E,GAAA10E,GAAAA,EAAA0vE,GAAA,CAAA,GAAAzvE,GAAAD,EAAAouE,OAAAlrE,EAAAlD,EAAA0vE,IAAA6D,GAAAvzE,EAAA0vE,GAAAlkE,MAAAirE,cAAAjrE,KAAAujE,WAAAxuE,EAAAP,EAAA0vE,GAAAzvE,EAAA6Q,WAAA,MAAAtF,MAAAirE,eAAA,CAAA,OAAAjrE,MAAAirE,cAAA,QAAAC,MAAA,MAAAlrE,MAAAujE,WAAAvjE,KAAA4iE,QAAA,EAAA,QAAAuI,MAAA,MAAAnrE,MAAAujE,UAAAvjE,KAAA4iE,QAAA,EAAA,QAAAwI,MAAA,MAAAprE,MAAAujE,UAAAvjE,KAAA4iE,QAAA,IAAA5iE,KAAA6iE,SAAA,EAAA,QAAA2H,IAAAh2E,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,EAAAqC,EAAAjD,EAAAkD,EAAA;AAAA,A9BxMA,M8BwMAmyE,IAAAr1E,GAAAiD,GAAA4zE,GAAA72E,EAAAk1E,cAAAx0E,EAAAV,EAAAm1E,MAAAr8D,EAAA9Y,EAAA6vE,SAAA,gBAAA7vE,IAAAiD,KAAAhD,EAAAgD,EAAAhD,GAAAD,EAAAiD,EAAA6zE,aAAA92E,IAAAkD,EAAAyzB,GAAA7wB,KAAA9F,KAAAQ,EAAA,MAAA0C,EAAA,GAAA,GAAA,EAAAD,GAAAoM,EAAA,EAAA3O,EAAAqO,EAAA7L,EAAAs5B,KAAAh8B,EAAA0C,EAAA6L,EAAA7L,EAAAm2B,KAAA74B,EAAA+L,EAAAwC,EAAA7L,EAAA4yB,KAAAt1B,EAAAD,EAAAwO,EAAA7L,EAAAi6B,KAAA38B,EAAAq2E,GAAA9nE,EAAA7L,EAAA45B,KAAAt8B,KAAA0C,EAAAszB,GAAA1wB,KAAA9F,KAAAQ,EAAA,MAAA0C,EAAA,GAAA,GAAA,EAAAD,GAAAoM,EAAA0nE,GAAA7zE,EAAA,GAAA1C,GAAAsY,EAAAi+D,GAAA7zE,EAAA,GAAA1C,GAAAE,EAAAq2E,GAAA7zE,EAAA,GAAA1C,GAAA0C,EAAA6zE,GAAA7zE,EAAA,GAAA1C,GAAA+L,EAAAwqE,GAAA7zE,EAAA,GAAA1C,GAAAD,EAAAw2E,GAAA7zE,EAAA,GAAA1C,GAAA2O,EAAA4nE,GAAA7zE,EAAA,GAAA1C,KAAA,MAAAyC,EAAAA,KAAA,gBAAAA,KAAA,QAAAA,IAAA,MAAAA,MAAArC,EAAAo2E,GAAAzD,GAAAtwE,EAAAg0E,MAAA1D,GAAAtwE,EAAAi0E,KAAAj0E,KAAAA,EAAA4zE,GAAAj2E,EAAAk2E,aAAA7zE,EAAA6V,EAAAlY,EAAAuvE,QAAAzvE,EAAA,GAAAs0E,IAAA/xE,GAAAoyE,GAAAr1E,IAAAoB,EAAApB,EAAA,aAAAU,EAAA4tE,QAAAtuE,EAAAsuE,SAAA5tE,EAAA,QAAAq2E,IAAA/2E,EAAAC,GAAA,GAAAO,GAAAR,GAAAmG,WAAAnG,EAAAa,QAAA,IAAA,KAAA,QAAAqR,MAAA1R,GAAA,EAAAA,GAAAP,EAAA,QAAAyvE,IAAA1vE,EAAAC,GAAA,GAAAO,IAAAs2E,aAAA,EAAA3G,OAAA,EAAA,OAAA3vE,GAAA2vE,OAAAlwE,EAAA6vE,QAAA9vE,EAAA8vE,QAAA,IAAA7vE,EAAAswE,OAAAvwE,EAAAuwE;AAAAvwE,A9BvMA,E8BuMAuS,QAAAjP,IAAA9C,EAAA2vE,OAAA,KAAAgH,QAAAl3E,MAAAO,EAAA2vE,OAAA3vE,EAAAs2E,cAAA72E,GAAAD,EAAAuS,QAAAjP,IAAA9C,EAAA2vE,OAAA,KAAA3vE,EAAA,QAAAw2E,IAAAh3E,EAAAC,GAAA,GAAAO,EAAA,OAAAR,GAAA+uE,WAAA9uE,EAAA8uE,WAAA9uE,EAAAw1E,GAAAx1E,EAAAD,GAAAA,EAAAo3E,SAAAn3E,GAAAO,EAAAkvE,GAAA1vE,EAAAC,IAAAO,EAAAkvE,GAAAzvE,EAAAD,GAAAQ,EAAAs2E,cAAAt2E,EAAAs2E,aAAAt2E,EAAA2vE,QAAA3vE,EAAA2vE,QAAA3vE,IAAAs2E,aAAA,EAAA3G,OAAA,GAAA,QAAA1uE,IAAAzB,EAAAC,GAAA,MAAA,UAAAO,EAAAE,GAAA,GAAAE,GAAAQ,CAAA,OAAA,QAAAV,GAAAwR,OAAAxR,KAAA2wE,GAAApxE,EAAA,YAAAA,EAAA,uDAAAA,EAAA,qBAAAmB,EAAAZ,EAAAA,EAAAE,EAAAA,EAAAU,GAAAZ,EAAA,gBAAAA,IAAAA,EAAAA,EAAAI,EAAAo1E,GAAAx1E,EAAAE,GAAAgF,GAAA8F,KAAA5K,EAAAZ,GAAAwL,MAAA,QAAA9F,IAAAzF,EAAAO,EAAAE,EAAAE,GAAA,GAAAQ,GAAAZ,EAAA00E,cAAAjyE,EAAAzC,EAAA20E,MAAAjyE,EAAA1C,EAAAqvE,OAAA5vE,GAAA8uE,YAAAnuE,EAAA,MAAAA,GAAA,EAAAA,EAAAQ,GAAAnB,EAAAytE,GAAAgI,SAAAz1E,EAAAytE,GAAAtsE,EAAAV,GAAAuC,GAAA/C,EAAAD,EAAA,OAAAE,EAAAF,EAAA,QAAAgD,EAAAvC;AAAAwC,A9BtMA,G8BsMAkZ,EAAAnc,EAAAE,EAAAF,EAAA,SAAAiD,EAAAxC,GAAAE,GAAAZ,EAAAyuE,aAAAxuE,EAAAgD,GAAAC,IAAA,QAAAs/D,IAAAxiE,EAAAC,GAAA,GAAAO,GAAAR,GAAAuzE,KAAA7yE,EAAA+0E,GAAAj1E,EAAAgL,MAAA6rE,QAAA,OAAAz2E,EAAA4K,KAAA8rE,KAAA52E,EAAA,QAAA,GAAAU,EAAA,GAAAR,EAAA,WAAA,GAAAA,EAAA,WAAA,EAAAA,EAAA,UAAA,EAAAA,EAAA,UAAA,EAAAA,EAAA,UAAA,EAAAA,EAAA,WAAA,WAAAqC,EAAAhD,IAAAyP,EAAAzP,EAAAmB,IAAAnB,EAAAmB,KAAAnB,EAAAmB,GAAA,OAAAoK,MAAAw7B,OAAA/jC,GAAAuI,KAAA0jE,aAAAqI,SAAAn2E,EAAAoK,KAAA+nE,GAAA/yE,KAAA,QAAAg3E,MAAA,MAAA,IAAA/qE,GAAAjB,MAAA,QAAAkwD,IAAA17D,EAAAC,GAAA,GAAAO,GAAAJ,EAAAJ,GAAAA,EAAAuzE,GAAAvzE,EAAA,OAAAwL,MAAAujE,WAAAvuE,EAAAuuE,WAAA9uE,EAAAuP,EAAAjD,EAAAtM,GAAA,cAAAA,GAAA,gBAAAA,GAAAuL,MAAAhL,GAAAA,GAAAgL,KAAA+G,QAAA8kE,QAAAp3E,KAAA,EAAA,QAAAw3E,IAAAz3E,EAAAC,GAAA,GAAAO,GAAAJ,EAAAJ,GAAAA,EAAAuzE,GAAAvzE,EAAA,OAAAwL,MAAAujE,WAAAvuE,EAAAuuE,WAAA9uE,EAAAuP,EAAAjD,EAAAtM,GAAA,cAAAA,GAAA,gBAAAA,GAAAO,GAAAgL,MAAAA,KAAA+G,QAAAmlE,MAAAz3E,IAAAO,IAAA;A9BrMA,C8BqMA,QAAA+iD,IAAAvjD,EAAAC,EAAAO,GAAA,MAAAgL,MAAA2rE,QAAAn3E,EAAAQ,IAAAgL,KAAA4rE,SAAAn3E,EAAAO,GAAA,QAAAm3E,IAAA33E,EAAAC,GAAA,GAAAO,GAAAE,EAAAN,EAAAJ,GAAAA,EAAAuzE,GAAAvzE,EAAA,OAAAwL,MAAAujE,WAAAruE,EAAAquE,WAAA9uE,EAAAuP,EAAAvP,GAAA,eAAA,gBAAAA,GAAAuL,QAAA9K,GAAAF,GAAAE,GAAA8K,KAAA+G,QAAA8kE,QAAAp3E,IAAAO,GAAAA,IAAAgL,KAAA+G,QAAAmlE,MAAAz3E,MAAA,EAAA,QAAA23E,IAAA53E,EAAAC,GAAA,MAAAuL,MAAAqsE,OAAA73E,EAAAC,IAAAuL,KAAA2rE,QAAAn3E,EAAAC,GAAA,QAAA63E,IAAA93E,EAAAC,GAAA,MAAAuL,MAAAqsE,OAAA73E,EAAAC,IAAAuL,KAAA4rE,SAAAp3E,EAAAC,GAAA,QAAA83E,IAAA/3E,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,EAAA6B,CAAA,OAAAuI,MAAAujE,WAAAruE,EAAA+0E,GAAAz1E,EAAAwL,MAAA9K,EAAAquE,WAAAnuE,EAAA,KAAAF,EAAA60E,YAAA/pE,KAAA+pE,aAAAt1E,EAAAuP,EAAAvP,GAAA,SAAAA,GAAA,UAAAA,GAAA,YAAAA,GAAAgD,EAAA+0E,GAAAxsE,KAAA9K,GAAA,YAAAT,EAAAgD,GAAA,EAAA,SAAAhD,IAAAgD,GAAA,MAAA7B,EAAAoK,KAAA9K,EAAAuC,EAAA,WAAAhD,EAAAmB,EAAA,IAAA,WAAAnB,EAAAmB,EAAA,IAAA,SAAAnB,EAAAmB,EAAA,KAAA,QAAAnB,GAAAmB,EAAAR,GAAA,MAAA,SAAAX,GAAAmB,EAAAR,GAAA,OAAAQ;AAAAZ,A9BpMA,E8BoMAyC,EAAAyJ,EAAAzJ,IAAA6qE,KAAAA,IAAA,QAAAkK,IAAAh4E,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,EAAA,IAAAX,EAAAswE,OAAAvwE,EAAAuwE,SAAAtwE,EAAA6vE,QAAA9vE,EAAA8vE,SAAA1uE,EAAApB,EAAAuS,QAAAjP,IAAA1C,EAAA,SAAA,OAAA,GAAAX,EAAAmB,GAAAZ,EAAAR,EAAAuS,QAAAjP,IAAA1C,EAAA,EAAA,UAAAF,GAAAT,EAAAmB,IAAAA,EAAAZ,KAAAA,EAAAR,EAAAuS,QAAAjP,IAAA1C,EAAA,EAAA,UAAAF,GAAAT,EAAAmB,IAAAZ,EAAAY,MAAAR,EAAAF,GAAA,QAAAu3E,MAAA,MAAAzsE,MAAA+G,QAAA2lE,OAAA,MAAAlxC,OAAA,oCAAA,QAAAmxC,MAAA,GAAAn4E,GAAAwL,KAAA+G,QAAAw6D,KAAA,OAAA,GAAA/sE,EAAAuwE,QAAAvwE,EAAAuwE,QAAA,KAAA7gE,EAAAgE,KAAA/F,UAAAyqE,aAAA5sE,KAAA6sE,SAAAD,cAAAt/D,EAAA9Y,EAAA,gCAAA8Y,EAAA9Y,EAAA,kCAAA,QAAAs4E,IAAAr4E,GAAA,GAAAO,GAAAsY,EAAAtN,KAAAvL,GAAAD,EAAAu4E,cAAA,OAAA/sE,MAAA0jE,aAAAsJ,WAAAh4E,GAAA,QAAAi4E,IAAAz4E,EAAAC,GAAA,MAAAuL,MAAAujE,YAAA3uE,EAAAJ,IAAAA,EAAA+uE,WAAAwE,GAAAvzE,GAAA+uE,WAAAiH;AAAAkB,A9BnMA,G8BmMA1rE,KAAAyrE,KAAAj3E,IAAAk4E,OAAA1sE,KAAA0sE,UAAAQ,UAAAz4E,GAAAuL,KAAA0jE,aAAAI,cAAA,QAAAqJ,IAAA34E,GAAA,MAAAwL,MAAAyrE,KAAA1D,KAAAvzE,GAAA,QAAA44E,IAAA54E,EAAAC,GAAA,MAAAuL,MAAAujE,YAAA3uE,EAAAJ,IAAAA,EAAA+uE,WAAAwE,GAAAvzE,GAAA+uE,WAAAiH,IAAAiB,KAAAzrE,KAAA0rE,GAAAl3E,IAAAk4E,OAAA1sE,KAAA0sE,UAAAQ,UAAAz4E,GAAAuL,KAAA0jE,aAAAI,cAAA,QAAAuJ,IAAA74E,GAAA,MAAAwL,MAAA0rE,GAAA3D,KAAAvzE,GAAA,QAAA84E,IAAA94E,GAAA,GAAAC,EAAA,OAAA,UAAAD,EAAAwL,KAAA8iE,QAAAM,OAAA3uE,EAAAqP,EAAAtP,GAAA,MAAAC,IAAAuL,KAAA8iE,QAAAruE,GAAAuL,MAAA,QAAAutE,MAAA,MAAAvtE,MAAA8iE,QAAA,QAAA0K,IAAAh5E,GAAA,OAAAA,EAAAwP,EAAAxP,IAAA,IAAA,OAAAwL,KAAAskE,MAAA,EAAA,KAAA,UAAA,IAAA,QAAAtkE,KAAA8kE,KAAA,EAAA,KAAA,OAAA,IAAA,UAAA,IAAA,MAAA9kE,KAAAytE,MAAA,EAAA,KAAA,OAAAztE,KAAA0tE,QAAA,EAAA,KAAA,SAAA1tE,KAAA2tE,QAAA,EAAA,KAAA;AAAA3tE,A9BlMA,K8BkMAsrE,aAAA,GAAA,MAAA,SAAA92E,GAAAwL,KAAA4tE,QAAA,GAAA,YAAAp5E,GAAAwL,KAAA6tE,WAAA,GAAA,YAAAr5E,GAAAwL,KAAAskE,MAAA,EAAA/pE,KAAAi3B,MAAAxxB,KAAAskE,QAAA,IAAAtkE,KAAA,QAAA8tE,IAAAt5E,GAAA,MAAAA,GAAAwP,EAAAxP,GAAA,SAAAA,GAAA,gBAAAA,EAAAwL,KAAAA,KAAA6rE,QAAAr3E,GAAAsD,IAAA,EAAA,YAAAtD,EAAA,OAAAA,GAAAo2E,SAAA,EAAA,MAAA,QAAAmD,MAAA,OAAA/tE,KAAAkiE,GAAA,KAAAliE,KAAA6iE,SAAA,GAAA,QAAAmL,MAAA,MAAAzzE,MAAAi3B,OAAAxxB,KAAA,KAAA,QAAAiuE,MAAA,MAAAjuE,MAAA6iE,QAAA,GAAA36D,OAAAlI,MAAAA,KAAAkiE,GAAA,QAAAgM,MAAA,GAAA15E,GAAAwL,IAAA,QAAAxL,EAAAuwE,OAAAvwE,EAAA8vE,QAAA9vE,EAAAswE,OAAAtwE,EAAAq0E,OAAAr0E,EAAAs0E,SAAAt0E,EAAAu0E,SAAAv0E,EAAAw0E,eAAA,QAAAmF,MAAA,GAAA35E,GAAAwL,IAAA,QAAAouE,MAAA55E,EAAAuwE,OAAAJ,OAAAnwE,EAAA8vE,QAAAQ,KAAAtwE,EAAAswE,OAAA2I,MAAAj5E,EAAAi5E,QAAAC,QAAAl5E,EAAAk5E,UAAAC,QAAAn5E,EAAAm5E;AAAArC,A9BjMA,a8BiMA92E,EAAA82E,gBAAA,QAAA+C,MAAA,MAAAruE,MAAAujE,UAAAvjE,KAAA4sE,cAAA,OAAA,QAAA0B,MAAA,MAAA5xE,GAAAsD,MAAA,QAAAuuE,MAAA,MAAA92E,MAAAgF,EAAAuD,OAAA,QAAAwuE,MAAA,MAAA/xE,GAAAuD,MAAAuB,SAAA,QAAAktE,MAAA,OAAA50D,MAAA7Z,KAAAwiE,GAAAhnC,OAAAx7B,KAAAyiE,GAAAiK,OAAA1sE,KAAA8iE,QAAA4L,MAAA1uE,KAAA4iE,OAAA+L,OAAA3uE,KAAAoiE,SAAA,QAAAwM,IAAAp6E,EAAAC,GAAAQ,EAAA,GAAAT,EAAAA,EAAAwC,QAAA,EAAAvC,GAAA,QAAAo6E,IAAAr6E,GAAA,MAAAs6E,IAAAt4E,KAAAwJ,KAAAxL,EAAAwL,KAAAinE,OAAAjnE,KAAA4tE,UAAA5tE,KAAA0jE,aAAAsE,MAAAC,IAAAjoE,KAAA0jE,aAAAsE,MAAAE,KAAA,QAAA6G,IAAAv6E,GAAA,MAAAs6E,IAAAt4E,KAAAwJ,KAAAxL,EAAAwL,KAAAgvE,UAAAhvE,KAAA6tE,aAAA,EAAA,GAAA,QAAAoB,MAAA,MAAAjI,IAAAhnE,KAAA+kE,OAAA,EAAA,GAAA,QAAAmK,MAAA,GAAA16E,GAAAwL,KAAA0jE,aAAAsE,KAAA,OAAAhB,IAAAhnE,KAAA+kE,OAAAvwE,EAAAyzE,IAAAzzE,EAAA0zE,KAAA,QAAA4G,IAAAt6E,EAAAC,EAAAO,EAAAE,EAAAE;AAAA,A9BhMA,G8BgMAQ,EAAA,OAAA,OAAApB,EAAAuyE,GAAA/mE,KAAA9K,EAAAE,GAAA2vE,MAAAnvE,EAAAoxE,GAAAxyE,EAAAU,EAAAE,GAAAX,EAAAmB,IAAAnB,EAAAmB,GAAAu5E,GAAA34E,KAAAwJ,KAAAxL,EAAAC,EAAAO,EAAAE,EAAAE,IAAA,QAAA+5E,IAAA36E,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,GAAAQ,GAAAixE,GAAAryE,EAAAC,EAAAO,EAAAE,EAAAE,GAAAqC,EAAA4uE,GAAAzwE,EAAAmvE,KAAA,EAAAnvE,EAAAkxE,UAAA,OAAA9mE,MAAA+kE,KAAAttE,EAAA6uE,kBAAAtmE,KAAAskE,MAAA7sE,EAAA4vE,eAAArnE,KAAA8kE,KAAArtE,EAAA2sE,cAAApkE,KAAA,QAAAovE,IAAA56E,GAAA,MAAA,OAAAA,EAAA+F,KAAAg3B,MAAAvxB,KAAAskE,QAAA,GAAA,GAAAtkE,KAAAskE,MAAA,GAAA9vE,EAAA,GAAAwL,KAAAskE,QAAA,GAAA,QAAA+K,IAAA76E,GAAA,MAAAuyE,IAAAvyE,EAAAwL,KAAAgoE,MAAAC,IAAAjoE,KAAAgoE,MAAAE,KAAAjB,KAAA,QAAAqI,MAAA,MAAAtvE,MAAAgoE,MAAAC,IAAA,QAAAsH,MAAA,MAAAvvE,MAAAgoE,MAAAE,IAAA,QAAAsH,IAAAh7E,GAAA,GAAAC,GAAAuL,KAAA0jE,aAAAuD,KAAAjnE,KAAA,OAAA,OAAAxL,EAAAC,EAAAuL,KAAAlI,IAAA,GAAAtD,EAAAC,GAAA,KAAA,QAAAg7E,IAAAj7E,GAAA,GAAAC,GAAAsyE,GAAA/mE,KAAA,EAAA,GAAAinE,IAAA,OAAA,OAAAzyE,EAAAC,EAAAuL,KAAAlI,IAAA,GAAAtD,EAAAC,GAAA,KAAA,QAAAi7E,IAAAl7E,EAAAC;AAAA,A9B/LA,M8B+LA,gBAAAD,GAAAA,EAAAkS,MAAAlS,IAAAA,EAAAC,EAAAk7E,cAAAn7E,GAAA,gBAAAA,GAAAA,EAAA,MAAAyb,SAAAzb,EAAA,IAAA,QAAAo7E,IAAAp7E,EAAAC,GAAA,MAAAO,GAAAgL,KAAA6vE,WAAA7vE,KAAA6vE,UAAAr7E,EAAAo0E,OAAA5oE,KAAA6vE,UAAA7vE,KAAA6vE,UAAAC,SAAAp6E,KAAAjB,GAAA,SAAA,cAAAD,EAAAo0E,OAAA,QAAAmH,IAAAv7E,GAAA,MAAAwL,MAAAgwE,eAAAx7E,EAAAo0E,OAAA,QAAAqH,IAAAz7E,GAAA,MAAAwL,MAAAkwE,aAAA17E,EAAAo0E,OAAA,QAAAuH,IAAA37E,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,CAAA,KAAAoK,KAAAowE,iBAAApwE,KAAAowE,kBAAApwE,KAAAqwE,qBAAArwE,KAAAswE,uBAAAtwE,KAAAuwE,uBAAAr7E,EAAA,EAAA,EAAAA,EAAAA,IAAA,CAAA,GAAAE,EAAA2yE,IAAA,IAAA,IAAAa,IAAA1zE,GAAAF,IAAAgL,KAAAuwE,mBAAAr7E,KAAA8K,KAAAuwE,mBAAAr7E,GAAA,GAAAwc,QAAA,IAAA1R,KAAAwwE,SAAAp7E,EAAA,IAAAC,QAAA,IAAA,MAAA,IAAA,KAAA2K,KAAAswE,oBAAAp7E,GAAA,GAAAwc,QAAA,IAAA1R,KAAAywE,cAAAr7E,EAAA,IAAAC,QAAA,IAAA,MAAA,IAAA;AAAA2K,A9B9LA,K8B8LAqwE,kBAAAn7E,GAAA,GAAAwc,QAAA,IAAA1R,KAAA0wE,YAAAt7E,EAAA,IAAAC,QAAA,IAAA,MAAA,IAAA,MAAA2K,KAAAowE,eAAAl7E,KAAAU,EAAA,IAAAoK,KAAAwwE,SAAAp7E,EAAA,IAAA,KAAA4K,KAAAywE,cAAAr7E,EAAA,IAAA,KAAA4K,KAAA0wE,YAAAt7E,EAAA,IAAA4K,KAAAowE,eAAAl7E,GAAA,GAAAwc,QAAA9b,EAAAP,QAAA,IAAA,IAAA,MAAAL,GAAA,SAAAP,GAAAuL,KAAAuwE,mBAAAr7E,GAAAQ,KAAAlB,GAAA,MAAAU,EAAA,IAAAF,GAAA,QAAAP,GAAAuL,KAAAswE,oBAAAp7E,GAAAQ,KAAAlB,GAAA,MAAAU,EAAA,IAAAF,GAAA,OAAAP,GAAAuL,KAAAqwE,kBAAAn7E,GAAAQ,KAAAlB,GAAA,MAAAU,EAAA,KAAAF,GAAAgL,KAAAowE,eAAAl7E,GAAAQ,KAAAlB,GAAA,MAAAU,IAAA,QAAAy7E,IAAAn8E,GAAA,IAAAwL,KAAAujE,UAAA,MAAA,OAAA/uE,EAAAwL,KAAAsiE,GAAA,IAAA7tE,GAAAuL,KAAA4iE,OAAA5iE,KAAAkiE,GAAA0E,YAAA5mE,KAAAkiE,GAAA0O,QAAA,OAAA,OAAAp8E,GAAAA,EAAAk7E,GAAAl7E,EAAAwL,KAAA0jE,cAAA1jE,KAAAlI,IAAAtD,EAAAC,EAAA,MAAAA,EAAA,QAAAo8E,IAAAr8E;AAAA,A9B7LA,I8B6LAwL,KAAAujE,UAAA,MAAA,OAAA/uE,EAAAwL,KAAAsiE,GAAA,IAAA7tE,IAAAuL,KAAA4oE,MAAA,EAAA5oE,KAAA0jE,aAAAsE,MAAAC,KAAA,CAAA,OAAA,OAAAzzE,EAAAC,EAAAuL,KAAAlI,IAAAtD,EAAAC,EAAA,KAAA,QAAAq8E,IAAAt8E,GAAA,MAAAwL,MAAAujE,UAAA,MAAA/uE,EAAAwL,KAAA4oE,OAAA,EAAA5oE,KAAA4oE,IAAA5oE,KAAA4oE,MAAA,EAAAp0E,EAAAA,EAAA,GAAA,MAAAA,EAAAwL,KAAAsiE,IAAA,QAAAjpD,IAAA7kB,GAAA,GAAAC,GAAA8F,KAAA6vE,OAAApqE,KAAA+G,QAAA8kE,QAAA,OAAA7rE,KAAA+G,QAAA8kE,QAAA,SAAA,OAAA,CAAA,OAAA,OAAAr3E,EAAAC,EAAAuL,KAAAlI,IAAAtD,EAAAC,EAAA,KAAA,QAAAktB,MAAA,MAAA3hB,MAAAytE,QAAA,IAAA,GAAA,QAAAsD,IAAAv8E,EAAAC,GAAAQ,EAAAT,EAAA,EAAA,EAAA,WAAA,MAAAwL,MAAA0jE,aAAAsN,SAAAhxE,KAAAytE,QAAAztE,KAAA0tE,UAAAj5E,KAAA,QAAAw8E,IAAAz8E,EAAAC,GAAA,MAAAA,GAAAy8E,eAAA,QAAAC,IAAA38E,GAAA,MAAA,OAAAA,EAAA,IAAAe,cAAAiE,OAAA,GAAA,QAAA43E,IAAA58E,EAAAC,EAAAO,GAAA,MAAAR,GAAA,GAAAQ,EAAA,KAAA,KAAAA,EAAA,KAAA;AAAA,A9B5LA,Q8B4LAq8E,IAAA78E,EAAAC,GAAAA,EAAA68B,IAAA/tB,EAAA,KAAA,KAAA/O,IAAA,QAAA88E,MAAA,MAAAtxE,MAAA4iE,OAAA,MAAA,GAAA,QAAA2O,MAAA,MAAAvxE,MAAA4iE,OAAA,6BAAA,GAAA,QAAA4O,IAAAh9E,GAAA,MAAAuzE,IAAA,IAAAvzE,GAAA,QAAAi9E,MAAA,MAAA1J,IAAAliE,MAAA,KAAAC,WAAA4rE,YAAA,QAAAC,IAAAn9E,EAAAC,EAAAO,GAAA,GAAAE,GAAA8K,KAAA4xE,UAAAp9E,EAAA,OAAA0P,GAAAhP,GAAAA,EAAAsB,KAAA/B,EAAAO,GAAAE,EAAA,QAAA28E,IAAAr9E,GAAA,GAAAC,GAAAuL,KAAA8xE,gBAAAt9E,GAAAQ,EAAAgL,KAAA8xE,gBAAAt9E,EAAAiF,cAAA,OAAAhF,KAAAO,EAAAP,GAAAuL,KAAA8xE,gBAAAt9E,GAAAQ,EAAAK,QAAA,mBAAA,SAAAb,GAAA,MAAAA,GAAAkF,MAAA,KAAAsG,KAAA8xE,gBAAAt9E,IAAA,QAAAu9E,MAAA,MAAA/xE,MAAAgyE,aAAA,QAAAC,IAAAz9E,GAAA,MAAAwL,MAAAkyE,SAAA78E,QAAA,KAAAb,GAAA,QAAA29E,IAAA39E,GAAA,MAAAA,GAAA,QAAA49E,IAAA59E,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAA4K,KAAAqyE,cAAAr9E;AAAA,A9B3LA,M8B2LAkP,GAAA9O,GAAAA,EAAAZ,EAAAC,EAAAO,EAAAE,GAAAE,EAAAC,QAAA,MAAAb,GAAA,QAAA89E,IAAA99E,EAAAC,GAAA,GAAAO,GAAAgL,KAAAqyE,cAAA79E,EAAA,EAAA,SAAA,OAAA,OAAA0P,GAAAlP,GAAAA,EAAAP,GAAAO,EAAAK,QAAA,MAAAZ,GAAA,QAAA89E,IAAA/9E,GAAA,GAAAC,GAAAO,CAAA,KAAAA,IAAAR,GAAAC,EAAAD,EAAAQ,GAAAkP,EAAAzP,GAAAuL,KAAAhL,GAAAP,EAAAuL,KAAA,IAAAhL,GAAAP,CAAAuL,MAAAwyE,qBAAA,GAAA9gE,QAAA1R,KAAAyyE,cAAAnvE,OAAA,IAAA,UAAAA,QAAA,QAAAovE,IAAAl+E,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAA0O,IAAAlO,EAAA8B,IAAA+W,IAAAvZ,EAAAT,EAAA,OAAAW,GAAAJ,GAAAY,EAAApB,GAAA,QAAAm+E,IAAAn+E,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,GAAA,gBAAAZ,KAAAC,EAAAD,EAAAA,EAAA,QAAAA,EAAAA,GAAA,GAAA,MAAAC,EAAA,MAAAi+E,IAAAl+E,EAAAC,EAAAO,EAAAI,EAAA,IAAAQ,GAAA6B,IAAA,KAAA7B,EAAA,EAAAV,EAAAU,EAAAA,IAAA6B,EAAA7B,GAAA88E,GAAAl+E,EAAAoB,EAAAZ,EAAAI,EAAA,OAAAqC,GAAA,QAAAm7E,IAAAp+E,EAAAC,GAAA,MAAAk+E,IAAAn+E,EAAAC,EAAA,SAAA,GAAA,SAAA,QAAAo+E,IAAAr+E,EAAAC,GAAA,MAAAk+E,IAAAn+E,EAAAC,EAAA,cAAA,GAAA,SAAA,QAAAq+E,IAAAt+E,EAAAC,GAAA,MAAAk+E,IAAAn+E,EAAAC,EAAA,WAAA,EAAA;A9B1LA,C8B0LA,QAAAs+E,IAAAv+E,EAAAC,GAAA,MAAAk+E,IAAAn+E,EAAAC,EAAA,gBAAA,EAAA,OAAA,QAAAu+E,IAAAx+E,EAAAC,GAAA,MAAAk+E,IAAAn+E,EAAAC,EAAA,cAAA,EAAA,OAAA,QAAAw+E,MAAA,GAAAz+E,GAAAwL,KAAAxI,KAAA,OAAAwI,MAAA0pE,cAAAwJ,GAAAlzE,KAAA0pE,eAAA1pE,KAAA2pE,MAAAuJ,GAAAlzE,KAAA2pE,OAAA3pE,KAAAqkE,QAAA6O,GAAAlzE,KAAAqkE,SAAA7vE,EAAA82E,aAAA4H,GAAA1+E,EAAA82E,cAAA92E,EAAAm5E,QAAAuF,GAAA1+E,EAAAm5E,SAAAn5E,EAAAk5E,QAAAwF,GAAA1+E,EAAAk5E,SAAAl5E,EAAAi5E,MAAAyF,GAAA1+E,EAAAi5E,OAAAj5E,EAAAmwE,OAAAuO,GAAA1+E,EAAAmwE,QAAAnwE,EAAA45E,MAAA8E,GAAA1+E,EAAA45E,OAAApuE,KAAA,QAAAmzE,IAAA3+E,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAo1E,GAAA/1E,EAAAO,EAAA,OAAAR,GAAAk1E,eAAAx0E,EAAAE,EAAAs0E,cAAAl1E,EAAAm1E,OAAAz0E,EAAAE,EAAAu0E,MAAAn1E,EAAA6vE,SAAAnvE,EAAAE,EAAAivE,QAAA7vE,EAAAo1E,UAAA,QAAAwJ,IAAA5+E,EAAAC,GAAA,MAAA0+E,IAAAnzE,KAAAxL,EAAAC,EAAA,GAAA,QAAA4+E,IAAA7+E,EAAAC,GAAA,MAAA0+E,IAAAnzE,KAAAxL,EAAAC,EAAA,IAAA,QAAA6+E,IAAA9+E,GAAA,MAAA,GAAAA,EAAA+F,KAAAi3B,MAAAh9B,GAAA+F,KAAAg3B,KAAA/8B,GAAA,QAAA++E;AAAA,A9BzLA,G8ByLA/+E,GAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,EAAAoK,KAAA0pE,cAAAjyE,EAAAuI,KAAA2pE,MAAAjyE,EAAAsI,KAAAqkE,QAAAhoE,EAAA2D,KAAAxI,KAAA,OAAA5B,IAAA,GAAA6B,GAAA,GAAAC,GAAA,GAAA,GAAA9B,GAAA,GAAA6B,GAAA,GAAAC,IAAA9B,GAAA,MAAA09E,GAAAE,GAAA97E,GAAAD,GAAAA,EAAA,EAAAC,EAAA,GAAA2E,EAAAivE,aAAA11E,EAAA,IAAApB,EAAA0M,EAAAtL,EAAA,KAAAyG,EAAAsxE,QAAAn5E,EAAA,GAAAC,EAAAyM,EAAA1M,EAAA,IAAA6H,EAAAqxE,QAAAj5E,EAAA,GAAAO,EAAAkM,EAAAzM,EAAA,IAAA4H,EAAAoxE,MAAAz4E,EAAA,GAAAyC,GAAAyJ,EAAAlM,EAAA,IAAAI,EAAA8L,EAAAuyE,GAAAh8E,IAAAC,GAAAtC,EAAAqC,GAAA67E,GAAAE,GAAAp+E,IAAAF,EAAAgM,EAAAxJ,EAAA,IAAAA,GAAA,GAAA2E,EAAAq3E,KAAAj8E,EAAA4E,EAAAsoE,OAAAjtE,EAAA2E,EAAA+xE,MAAAl5E,EAAA8K,KAAA,QAAAyzE,IAAAj/E,GAAA,MAAA,MAAAA,EAAA,OAAA,QAAAg/E,IAAAh/E,GAAA,MAAA,QAAAA,EAAA,KAAA,QAAAm/E,IAAAn/E,GAAA,GAAAC,GAAAO,EAAAE,EAAA8K,KAAA0pE,aAAA,IAAAl1E,EAAAwP,EAAAxP,GAAA,UAAAA,GAAA,SAAAA,EAAA,MAAAC,GAAAuL,KAAA2pE,MAAAz0E,EAAA,MAAAF,EAAAgL,KAAAqkE,QAAAoP,GAAAh/E,GAAA,UAAAD,EAAAQ,EAAAA,EAAA,EAAA,QAAAP,EAAAuL,KAAA2pE,MAAApvE,KAAA6vE,MAAAoJ,GAAAxzE,KAAAqkE,UAAA7vE,GAAA,IAAA,OAAA,MAAAC,GAAA,EAAAS,EAAA,MAAA,KAAA,MAAA,MAAAT,GAAAS,EAAA,KAAA,KAAA;AAAA,A9BxLA,M8BwLA,IAAAT,EAAAS,EAAA,IAAA,KAAA,SAAA,MAAA,MAAAT,EAAAS,EAAA,GAAA,KAAA,SAAA,MAAA,OAAAT,EAAAS,EAAA,GAAA,KAAA,cAAA,MAAAqF,MAAAi3B,MAAA,MAAA/8B,GAAAS,CAAA,SAAA,KAAA,IAAA0R,OAAA,gBAAApS,IAAA,QAAAo/E,MAAA,MAAA5zE,MAAA0pE,cAAA,MAAA1pE,KAAA2pE,MAAA3pE,KAAAqkE,QAAA,GAAA,OAAA,QAAA9gE,EAAAvD,KAAAqkE,QAAA,IAAA,QAAAwP,IAAAr/E,GAAA,MAAA,YAAA,MAAAwL,MAAA8zE,GAAAt/E,IAAA,QAAAu/E,IAAAv/E,GAAA,MAAAA,GAAAwP,EAAAxP,GAAAwL,KAAAxL,EAAA,OAAA,QAAAw/E,IAAAx/E,GAAA,MAAA,YAAA,MAAAwL,MAAAxI,MAAAhD,IAAA,QAAAy/E,MAAA,MAAA/yE,GAAAlB,KAAA0zE,OAAA,GAAA,QAAAQ,IAAA1/E,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,MAAAA,GAAA++E,aAAA1/E,GAAA,IAAAO,EAAAR,EAAAU,GAAA,QAAAk/E,IAAA5/E,EAAAC,EAAAO,GAAA,GAAAE,GAAAs1E,GAAAh2E,GAAA40C,MAAAh0C,EAAAi/E,GAAAn/E,EAAA4+E,GAAA,MAAAl+E,EAAAy+E,GAAAn/E,EAAA4+E,GAAA,MAAAr8E,EAAA48E,GAAAn/E,EAAA4+E,GAAA,MAAAp8E,EAAA28E,GAAAn/E,EAAA4+E,GAAA,MAAAz3E,EAAAg4E,GAAAn/E,EAAA4+E,GAAA,MAAAr3E,EAAA43E,GAAAn/E,EAAA4+E,GAAA,MAAAp3E,EAAAtH,EAAAk/E,GAAAv/E,IAAA,IAAAK,IAAA,GAAAQ,IAAA,MAAAA,EAAA0+E,GAAAvzE,IAAA,KAAAnL,IAAA,GAAA6B,IAAA,MAAAA,EAAA68E,GAAA58E,IAAA,KAAAD,IAAA,GAAAC,IAAA,MAAAA,EAAA48E,GAAAp/E,IAAA,KAAAwC,IAAA,GAAA2E,IAAA,MAAAA,EAAAi4E,GAAAhnE,IAAA,KAAAjR,IAAA,GAAAI,IAAA,OAAA,KAAAA;AAAA,A9BvLA,M8BuLAC,GAAA,GAAAjI,EAAAiI,EAAA,IAAAlI,EAAA,EAAAkI,EAAA,GAAA1H,EAAAk/E,GAAAruE,MAAA,KAAAnJ,GAAA,QAAA63E,IAAA//E,EAAAC,GAAA,MAAA,UAAA6/E,GAAA9/E,IAAA,EAAA,SAAAC,EAAA6/E,GAAA9/E,IAAA8/E,GAAA9/E,GAAAC,GAAA,GAAA,QAAA+/E,IAAAhgF,GAAA,GAAAC,GAAAuL,KAAA0jE,aAAA1uE,EAAAo/E,GAAAp0E,MAAAxL,EAAAC,EAAA,OAAAD,KAAAQ,EAAAP,EAAAggF,YAAAz0E,KAAAhL,IAAAP,EAAAu4E,WAAAh4E,GAAA,QAAA0/E,MAAA,GAAAlgF,GAAAC,EAAAO,EAAAE,EAAAy/E,GAAA30E,KAAA0pE,eAAA,IAAAt0E,EAAAu/E,GAAA30E,KAAA2pE,OAAA/zE,EAAA++E,GAAA30E,KAAAqkE,QAAA7vE,GAAA0M,EAAAhM,EAAA,IAAAT,EAAAyM,EAAA1M,EAAA,IAAAU,GAAA,GAAAV,GAAA,GAAAQ,EAAAkM,EAAAtL,EAAA,IAAAA,GAAA,EAAA,IAAA6B,GAAAzC,EAAA0C,EAAA9B,EAAAyG,EAAAjH,EAAAqH,EAAAhI,EAAAiI,EAAAlI,EAAAmI,EAAAzH,EAAA6L,EAAAf,KAAA40E,WAAA,OAAA7zE,IAAA,EAAAA,EAAA,IAAA,IAAA,KAAAtJ,EAAAA,EAAA,IAAA,KAAAC,EAAAA,EAAA,IAAA,KAAA2E,EAAAA,EAAA,IAAA,KAAAI,GAAAC,GAAAC,EAAA,IAAA,KAAAF,EAAAA,EAAA,IAAA,KAAAC,EAAAA,EAAA,IAAA,KAAAC,EAAAA,EAAA,IAAA,IAAA,MC/cA,QAAAk4E,IAAArgF,EAAAC,GAAA,GAAAO,GAAAR,EAAAM,MAAA,IAAA,OAAAL,GAAA,KAAA,GAAAA,EAAA,MAAA,GAAAO,EAAA,GAAAP,EAAA,IAAA,GAAA,GAAAA,EAAA,KAAA,GAAAA,EAAA,KAAAA,EAAA,KAAA,IAAAO,EAAA,GAAAA,EAAA,GAAA,QAAA8/E,IAAAtgF,EAAAC,EAAAO;AAAA,A/ByRA,G+BzRAE,IAAA6/E,GAAAtgF,EAAA,yBAAA,yBAAAugF,GAAAvgF,EAAA,yBAAA,yBAAAwgF,GAAA,iBAAAC,GAAA,uBAAA15B,GAAA,iBAAA,OAAA,MAAAxmD,EAAAP,EAAA,UAAA,UAAA,MAAAO,EAAAP,EAAA,UAAA,UAAAD,EAAA,IAAAqgF,GAAA3/E,EAAAF,IAAAR,GAIA,QAAA2gF,IAAA3gF,EAAAC,EAAAO,GAAA,GAAAE,IAAA6/E,GAAA,WAAAG,GAAA,MAAAD,GAAA,SAAA,OAAAzgF,GAAA,IAAA4gF,GAAAlgF,EAAAF,GAAAR,GAAA,QAAA6gF,IAAA7gF,GAAA,OAAA8gF,GAAA9gF,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAAA,GAAA,QAAA,SAAA,MAAAA,GAAA,UAAA,QAAA8gF,IAAA9gF,GAAA,MAAAA,GAAA,EAAA8gF,GAAA9gF,EAAA,IAAAA,EAAA,QAAA4gF,IAAA5gF,EAAAC,GAAA,MAAA,KAAAA,EAAA8gF,GAAA/gF,GAAAA,EAAA,QAAA+gF,IAAA/gF,GAAA,GAAAC,IAAAsM,EAAA,IAAAtM,EAAA,IAAAS,EAAA,IAAA,OAAA,UAAAT,EAAAD,EAAAgF,OAAA,IAAAhF,EAAAC,EAAAD,EAAAgF,OAAA,IAAAhF,EAAAsY,UAAA,GAKA,QAAA0oE,IAAAhhF,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAA;AAAA,A/BiRA,O+BjRAQ,GAAA,IAAA,IAAA,MAAAP,GAAA,eAAA,cAAA,KAAA,KAAA,MAAAS,IAAA,IAAAV,EAAA,SAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,EAAA,SAAA,QAAA,KAAA,IAAA,MAAAC,GAAA,YAAA,aAAA,KAAA,KAAA,MAAAS,IAAA,IAAAV,EAAA,MAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,EAAA,OAAA,MAAA,KAAA,KAAA,MAAAU,IAAA,IAAAV,EAAA,MAAA,MAAA,KAAA,KAAA,MAAAU,IAAA,IAAAV,EAAA,SAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,EAAA,UAAA,SAAA,KAAA,KAAA,MAAAU,IAAA,IAAAV,EAAA,SAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,EAAA,SAAA,UAAA,QAAAihF,IAAAjhF,GAAA,MAAAA,GAAA,GAAA,EAAAA,GAAA,OAAAA,EAAA,IAAA,QAAAgiB,IAAAhiB,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAZ,EAAA,GAAA,QAAAQ,GAAA,IAAA,IAAA,MAAAP,IAAAS,EAAA,aAAA,eAAA,KAAA,IAAA,MAAAT,GAAA,SAAAS,EAAA,SAAA,SAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAqgF,GAAAjhF,GAAA,SAAA,SAAAY,EAAA,UAAA,KAAA;AAAA,A/BkRA,M+BlRAX,GAAA,SAAAS,EAAA,SAAA,SAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAqgF,GAAAjhF,GAAA,SAAA,SAAAY,EAAA,UAAA,KAAA,IAAA,MAAAX,IAAAS,EAAA,MAAA,MAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAqgF,GAAAjhF,GAAA,MAAA,OAAAY,EAAA,KAAA,KAAA,IAAA,MAAAX,IAAAS,EAAA,QAAA,SAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAqgF,GAAAjhF,GAAA,SAAA,UAAAY,EAAA,QAAA,KAAA,IAAA,MAAAX,IAAAS,EAAA,MAAA,OAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAqgF,GAAAjhF,GAAA,OAAA,OAAAY,EAAA,QAOA,QAAA+G,IAAA3H,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,IAAA2L,GAAA,cAAA,gBAAArJ,GAAA,cAAA,gBAAAxC,GAAA,UAAA,aAAA+/E,IAAAzgF,EAAA,QAAAA,EAAA,UAAA8Y,GAAA,YAAA,eAAA4nE,IAAA1gF,EAAA,UAAAA,EAAA,YAAAqP,GAAA,WAAA,cAAA23C,IAAAhnD,EAAA,SAAAA,EAAA,WAAA,OAAAC,GAAAW,EAAAJ,GAAA,GAAAI,EAAAJ,GAAA,GAMA,QAAAigF,IAAAzgF,EAAAC,EAAAO,EAAAE;AAAA,A/BsQA,G+BtQAE,IAAA2L,GAAA,cAAA,gBAAArJ,GAAA,cAAA,gBAAAxC,GAAA,UAAA,aAAA+/E,IAAAzgF,EAAA,QAAAA,EAAA,UAAA8Y,GAAA,YAAA,eAAA4nE,IAAA1gF,EAAA,UAAAA,EAAA,YAAAqP,GAAA,WAAA,cAAA23C,IAAAhnD,EAAA,SAAAA,EAAA,WAAA,OAAAC,GAAAW,EAAAJ,GAAA,GAAAI,EAAAJ,GAAA,GAKA,QAAA0gF,IAAAlhF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,IAAAL,GAAA,eAAA,cAAA,iBAAAgM,GAAA,aAAA,aAAAg0E,IAAAvgF,EAAA,UAAAA,EAAA,YAAAkD,GAAA,YAAA,YAAA,YAAAs9E,IAAAxgF,EAAA,SAAAA,EAAA,UAAAU,GAAA,YAAA,YAAAoY,GAAA,UAAA,WAAA,WAAA4nE,IAAA1gF,EAAA,OAAAA,EAAA,SAAAqP,GAAA,YAAA,QAAA,aAAA23C,IAAAhnD,EAAA,SAAAA,EAAA,WAAA,OAAAC,GAAAW,EAAAJ,GAAA,GAAAI,EAAAJ,GAAA,GAAAI,EAAAJ,GAAA,GAAAE,EAAAE,EAAAJ,GAAA,GAAAI,EAAAJ,GAAA;A/BkQA,C+BlQA,QAAA2gF,IAAAnhF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAA,EAAA,QAAAJ,GAAA,IAAA,IAAA,MAAAE,GAAA,oBAAA,iBAAA,KAAA,IAAA,MAAAA,GAAA,WAAA,UAAA,KAAA,KAAAE,EAAAF,EAAA,WAAA,WAAA,MAAA,KAAA,IAAA,MAAAA,GAAA,SAAA,OAAA,KAAA,KAAAE,EAAAF,EAAA,SAAA,QAAA,MAAA,KAAA,IAAA,MAAAA,GAAA,SAAA,OAAA,KAAA,KAAAE,EAAAF,EAAA,SAAA,QAAA,MAAA,KAAA,IAAA,MAAAA,GAAA,YAAA,UAAA,KAAA,KAAAE,EAAAF,EAAA,YAAA,WAAA,MAAA,KAAA,IAAA,MAAAA,GAAA,SAAA,OAAA,KAAA,KAAAE,EAAAF,EAAA,SAAA,SAAA,MAAAE,GAAAwgF,GAAAphF,EAAAU,GAAA,IAAAE,EAAA,QAAAwgF,IAAAphF,EAAAC,GAAA,MAAA,IAAAD,EAAAC,EAAAohF,GAAArhF,GAAAshF,GAAAthF,GAAAA,EAIA,QAAAuhF,IAAAvhF,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAA,GAAA,QAAAQ,GAAA,IAAA,IAAA,MAAAP,GAAA,eAAA,cAAA,KAAA,KAAA,MAAAS,IAAA,IAAAV,EAAA,SAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,EAAA,SAAA;AAAA,A/B+PA,I+B/PA,IAAA,MAAAC,GAAA,YAAA,aAAA,KAAA,KAAA,MAAAS,IAAA,IAAAV,EAAA,MAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,EAAA,OAAA,MAAA,KAAA,KAAA,MAAAU,IAAA,IAAAV,EAAA,MAAA,MAAA,KAAA,KAAA,MAAAU,IAAA,IAAAV,EAAA,SAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,EAAA,UAAA,SAAA,KAAA,KAAA,MAAAU,IAAA,IAAAV,EAAA,SAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,EAAA,SAAA,UAAA,QAAAwQ,IAAAxQ,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAZ,CAAA,QAAAQ,GAAA,IAAA,IAAA,MAAAE,IAAAT,EAAA,mBAAA,mBAAA,KAAA,IAAA,MAAA,OAAAS,GAAAT,EAAA,QAAA,SAAA,KAAA,KAAA,MAAAW,IAAAF,GAAAT,EAAA,QAAA,SAAA,KAAA,IAAA,MAAA,OAAAS,GAAAT,EAAA,OAAA,SAAA,KAAA,KAAA,MAAAW,IAAAF,GAAAT,EAAA,OAAA,SAAA,KAAA,IAAA,MAAA,OAAAS,GAAAT,EAAA,OAAA,SAAA,KAAA,KAAA,MAAAW,IAAAF,GAAAT,EAAA,OAAA,SAAA,KAAA,IAAA,MAAA,OAAAS,GAAAT,EAAA,SAAA;AAAA,A/BgQA,I+BhQA,KAAA,MAAAW,IAAAF,GAAAT,EAAA,SAAA,WAAA,KAAA,IAAA,MAAA,OAAAS,GAAAT,EAAA,MAAA,OAAA,KAAA,KAAA,MAAAW,IAAAF,GAAAT,EAAA,MAAA,QAAA,MAAA,GAAA,QAAAuhF,IAAAxhF,GAAA,OAAAA,EAAA,GAAA,WAAA,IAAAyhF,GAAAj2E,KAAA4oE,OAAA,aAIA,QAAAsN,IAAA1hF,GAAA,MAAAA,GAAA,MAAA,IAAA,EAAAA,EAAA,KAAA,GAAA,GAAA,EAAA,QAAA2hF,IAAA3hF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAZ,EAAA,GAAA,QAAAQ,GAAA,IAAA,IAAA,MAAAP,IAAAS,EAAA,mBAAA,kBAAA,KAAA,IAAA,MAAAT,GAAA,SAAA,QAAA,KAAA,KAAA,MAAAyhF,IAAA1hF,GAAAY,GAAAX,GAAAS,EAAA,UAAA,WAAAT,EAAAW,EAAA,SAAAA,EAAA,QAAA,KAAA,KAAA,MAAA8gF,IAAA1hF,GAAAY,GAAAX,GAAAS,EAAA,gBAAA,iBAAAE,EAAA,aAAA,KAAA,IAAA,MAAAX,GAAA,QAAAS,EAAA,MAAA,MAAA,KAAA,KAAA,MAAAghF,IAAA1hF,GAAAC,EAAAW,EAAA,QAAAA,GAAAF,EAAA,OAAA,SAAAT,EAAAW,EAAA,QAAAA,GAAAF,EAAA,MAAA;AAAA,A/B6PA,I+B7PA,IAAA,MAAAT,GAAA,UAAAS,EAAA,QAAA,QAAA,KAAA,KAAA,MAAAghF,IAAA1hF,GAAAC,EAAAW,EAAA,UAAAA,GAAAF,EAAA,SAAA,WAAAT,EAAAW,EAAA,UAAAA,GAAAF,EAAA,QAAA,SAAA,KAAA,IAAA,MAAAT,IAAAS,EAAA,KAAA,KAAA,KAAA,KAAA,MAAAghF,IAAA1hF,GAAAY,GAAAX,GAAAS,EAAA,KAAA,QAAAE,GAAAX,GAAAS,EAAA,KAAA,QAIA,QAAAkhF,IAAA5hF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,IAAA2L,GAAA,aAAA,gBAAArJ,GAAA,YAAA,eAAAxC,GAAA,UAAA,aAAAoY,GAAA,WAAA,eAAAzJ,GAAA,UAAA,cAAA,OAAApP,GAAAW,EAAAJ,GAAA,GAAAI,EAAAJ,GAAA,GAAA,QAAAqhF,IAAA7hF,GAAA,GAAAC,GAAAD,EAAA8H,OAAA,EAAA9H,EAAAwO,QAAA,KAAA,OAAAszE,IAAA7hF,GAAA,KAAAD,EAAA,MAAAA,EAAA,QAAA+hF,IAAA/hF,GAAA,GAAAC,GAAAD,EAAA8H,OAAA,EAAA9H,EAAAwO,QAAA,KAAA,OAAAszE,IAAA7hF,GAAA,QAAAD,EAAA,SAAAA,EAAA,QAAA8hF,IAAA9hF,GAAA,GAAAA,EAAAyb,SAAAzb,EAAA,IAAAkS,MAAAlS,GAAA,OAAA,CAAA,IAAA,EAAAA,EAAA,OAAA,CAAA,IAAA,GAAAA,EAAA,MAAAA,IAAA,GAAA,GAAAA,GAAA,GAAA;AAAA,A/B0PA,G+B1PA,IAAAA,EAAA,CAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAAR,EAAA,EAAA,OAAA8hF,IAAA,IAAA7hF,EAAAO,EAAAP,GAAA,GAAA,IAAAD,EAAA,CAAA,KAAAA,GAAA,IAAAA,GAAA,EAAA,OAAA8hF,IAAA9hF,GAAA,MAAAA,IAAA,IAAA8hF,GAAA9hF,GAAA,QAAAgiF,IAAAhiF,EAAAC,EAAAO,EAAAE,GAAA,MAAAT,GAAA,kBAAAS,EAAA,kBAAA,kBAAA,QAAAuhF,IAAAjiF,EAAAC,EAAAO,EAAAE,GAAA,MAAAT,GAAAyoB,GAAAloB,GAAA,GAAAE,EAAAgoB,GAAAloB,GAAA,GAAAkoB,GAAAloB,GAAA,GAAA,QAAA0hF,IAAAliF,GAAA,MAAAA,GAAA,KAAA,GAAAA,EAAA,IAAA,GAAAA,EAAA,QAAA0oB,IAAA1oB,GAAA,MAAAmiF,IAAAniF,GAAAM,MAAA,KAAA,QAAA8hF,IAAApiF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAZ,EAAA,GAAA,OAAA,KAAAA,EAAAY,EAAAqhF,GAAAjiF,EAAAC,EAAAO,EAAA,GAAAE,GAAAT,EAAAW,GAAAshF,GAAAliF,GAAA0oB,GAAAloB,GAAA,GAAAkoB,GAAAloB,GAAA,IAAAE,EAAAE,EAAA8nB,GAAAloB,GAAA,GAAAI,GAAAshF,GAAAliF,GAAA0oB,GAAAloB,GAAA,GAAAkoB,GAAAloB,GAAA,IAAA,QAAA6hF,IAAAriF,EAAAC,EAAAO,GAAA,MAAAA,GAAAP,EAAA,KAAA,GAAA,KAAAA,EAAAD,EAAA,GAAAA,EAAA,GAAAC,EAAA,KAAA,GAAA,KAAAA,EAAAD,EAAA,GAAAA,EAAA,GAAA,QAAAsiF,IAAAtiF,EAAAC,EAAAO,GAAA,MAAAR,GAAA,IAAAqiF,GAAAE,GAAA/hF,GAAAR,EAAAC,GAAA,QAAAuiF,IAAAxiF,EAAAC,EAAAO,GAAA,MAAA6hF,IAAAE,GAAA/hF,GAAAR,EAAAC,GAAA,QAAAwiF,IAAAziF,EAAAC,GAAA,MAAAA,GAAA,iBAAA;A/B2PA,C+B3PA,QAAAyiF,IAAA1iF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAA,EAAA,IAAAX,EAAA,OAAAO,GAAA,IAAA,IAAAI,EAAA,YAAA,MAAA,KAAA,IAAAA,EAAA,UAAA,MAAA,KAAA,KAAAA,EAAA,WAAA,MAAA,KAAA,IAAAA,EAAA,QAAA,MAAA,KAAA,KAAAA,EAAA,QAAA,MAAA,KAAA,IAAAA,EAAA,SAAA,MAAA,KAAA,KAAAA,EAAA,SAAA,MAAA,KAAA,IAAAA,EAAA,UAAA,MAAA,KAAA,KAAAA,EAAA,UAAA,MAAA,KAAA,IAAAA,EAAA,SAAA,MAAA,KAAA,KAAAA,EAAA,eAAA,QAAAJ,GAAA,IAAA,IAAAI,EAAA,cAAA,MAAA,KAAA,IAAAA,EAAA,YAAA,MAAA,KAAA,KAAAA,EAAA,YAAA,MAAA,KAAA,IAAAA,EAAA,UAAA,MAAA,KAAA,KAAAA,EAAA,UAAA,MAAA,KAAA,IAAAA,EAAA,WAAA,MAAA,KAAA,KAAAA,EAAA,WAAA,MAAA,KAAA,IAAAA,EAAA,aAAA,MAAA,KAAA,KAAAA,EAAA,aAAA,MAAA,KAAA,IAAAA,EAAA,WAAA,MAAA,KAAA,KAAAA,EAAA;AAAA,A/B4PA,M+B5PAA,GAAAC,QAAA,MAAAb,GAAA,QAAA2iF,IAAA3iF,GAAA,MAAA,GAAAA,EAAA,IAAAA,EAAA,GAAA,MAAAA,EAAA,IAAA,KAAA,EAAA,QAAA4iF,IAAA5iF,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAA,GAAA,QAAAQ,GAAA,IAAA,IAAA,MAAAP,GAAA,SAAA,QAAA,KAAA,KAAA,MAAAS,IAAAiiF,GAAA3iF,GAAA,SAAA,QAAA,KAAA,IAAA,MAAAC,GAAA,UAAA,SAAA,KAAA,KAAA,MAAAS,IAAAiiF,GAAA3iF,GAAA,UAAA,SAAA,KAAA,KAAA,MAAAU,IAAAiiF,GAAA3iF,GAAA,WAAA,WAAA,KAAA,KAAA,MAAAU,IAAAiiF,GAAA3iF,GAAA,OAAA,QAKA,QAAA6iF,IAAA7iF,EAAAC,EAAAO,GAAA,GAAAE,IAAA6/E,GAAA,SAAAC,GAAA,MAAAC,GAAA,OAAAC,GAAA,OAAA15B,GAAA,OAAApmD,EAAA,GAAA,QAAAZ,EAAA,KAAA,IAAAA,GAAA,KAAAA,EAAA,MAAA,KAAAY,EAAA,QAAAZ,EAAAY,EAAAF,EAAAF,GAKA,QAAAsiF,IAAA9iF,EAAAC,GAAA,GAAAO,GAAAR,EAAAM,MAAA,IAAA,OAAAL,GAAA,KAAA,GAAAA,EAAA,MAAA,GAAAO,EAAA,GAAAP,EAAA,IAAA,GAAA,GAAAA,EAAA,KAAA,GAAAA,EAAA,KAAAA,EAAA,KAAA,IAAAO,EAAA,GAAAA,EAAA,GAAA,QAAAuiF,IAAA/iF,EAAAC,EAAAO,GAAA,GAAAE,IAAA6/E,GAAAtgF,EAAA,sBAAA;AAAAugF,A/BmPA,G+BnPA,iBAAAC,GAAA,gBAAAC,GAAA,uBAAA15B,GAAA,eAAA,OAAA,MAAAxmD,EAAAP,EAAA,SAAA,SAAAD,EAAA,IAAA8iF,GAAApiF,EAAAF,IAAAR,GAAA,QAAAgjF,IAAAhjF,GAAA,MAAAA,GAAA,GAAA,EAAAA,EAAA,QAAAijF,IAAAjjF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAZ,EAAA,GAAA,QAAAQ,GAAA,IAAA,IAAA,MAAAP,IAAAS,EAAA,aAAA,eAAA,KAAA,IAAA,MAAAT,GAAA,SAAAS,EAAA,SAAA,SAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAoiF,GAAAhjF,GAAA,SAAA,SAAAY,EAAA,UAAA,KAAA,IAAA,MAAAX,GAAA,SAAAS,EAAA,SAAA,SAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAoiF,GAAAhjF,GAAA,SAAA,SAAAY,EAAA,UAAA,KAAA,IAAA,MAAAX,IAAAS,EAAA,MAAA,MAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAoiF,GAAAhjF,GAAA,MAAA,OAAAY,EAAA,OAAA,KAAA,IAAA,MAAAX,IAAAS,EAAA,SAAA,UAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAoiF,GAAAhjF,GAAA,UAAA,YAAAY,EAAA,UAAA,KAAA;AAAA,A/BoPA,M+BpPAX,IAAAS,EAAA,MAAA,OAAA,KAAA,KAAA,MAAAT,IAAAS,EAAAE,GAAAoiF,GAAAhjF,GAAA,OAAA,SAAAY,EAAA,SAIA,QAAAsiF,IAAAljF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAZ,EAAA,GAAA,QAAAQ,GAAA,IAAA,IAAA,MAAAP,IAAAS,EAAA,eAAA,iBAAA,KAAA,IAAA,MAAAT,GAAA,aAAA,YAAA,KAAA,KAAA,MAAAW,IAAA,IAAAZ,EAAAC,EAAA,SAAA,SAAA,IAAAD,EAAAC,GAAAS,EAAA,SAAA,WAAA,EAAAV,EAAAC,GAAAS,EAAA,SAAA,WAAAT,GAAAS,EAAA,QAAA,UAAA,KAAA,IAAA,MAAAT,GAAA,UAAA,SAAA,KAAA,KAAA,MAAAW,IAAA,IAAAZ,EAAAC,EAAA,MAAA,MAAA,IAAAD,EAAAC,GAAAS,EAAA,MAAA,QAAA,EAAAV,EAAAC,GAAAS,EAAA,MAAA,QAAAT,GAAAS,EAAA,KAAA,OAAA,KAAA,IAAA,MAAAT,IAAAS,EAAA,SAAA,WAAA,KAAA,KAAA,MAAAE,IAAA,IAAAZ,EAAAC,GAAAS,EAAA,MAAA,OAAA,IAAAV,EAAAC,GAAAS,EAAA,MAAA,UAAAT,GAAAS,EAAA,MAAA,OAAA,KAAA,IAAA,MAAAT,IAAAS,EAAA,WAAA;AAAA,A/BiPA,I+BjPA,KAAA,MAAAE,IAAA,IAAAZ,EAAAC,GAAAS,EAAA,QAAA,UAAA,IAAAV,EAAAC,GAAAS,EAAA,SAAA,WAAA,EAAAV,EAAAC,GAAAS,EAAA,SAAA,SAAAT,GAAAS,EAAA,UAAA,QAAA,KAAA,IAAA,MAAAT,IAAAS,EAAA,WAAA,YAAA,KAAA,KAAA,MAAAE,IAAA,IAAAZ,EAAAC,GAAAS,EAAA,OAAA,QAAA,IAAAV,EAAAC,GAAAS,EAAA,OAAA,SAAA,EAAAV,EAAAC,GAAAS,EAAA,OAAA,OAAAT,GAAAS,EAAA,MAAA,QAAA,QAAAyiF,IAAAnjF,GAAA,GAAAC,GAAAD,CAAA,OAAAC,GAAA,KAAAD,EAAAwO,QAAA,OAAAvO,EAAAiF,MAAA,EAAA,IAAA,MAAA,KAAAlF,EAAAwO,QAAA,OAAAvO,EAAAiF,MAAA,EAAA,IAAA,MAAA,KAAAlF,EAAAwO,QAAA,OAAAvO,EAAAiF,MAAA,EAAA,IAAA,MAAAjF,EAAA,OAAA,QAAAmjF,IAAApjF,GAAA,GAAAC,GAAAD,CAAA,OAAAC,GAAA,KAAAD,EAAAwO,QAAA,OAAAvO,EAAAiF,MAAA,EAAA,IAAA,MAAA,KAAAlF,EAAAwO,QAAA,OAAAvO,EAAAiF,MAAA,EAAA,IAAA,MAAA,KAAAlF,EAAAwO,QAAA,OAAAvO,EAAAiF,MAAA,EAAA,IAAA,MAAAjF,EAAA,OAAA,QAAAojF,IAAArjF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAA0iF,GAAAtjF,EAAA,QAAAQ,GAAA,IAAA;AAAA,A/BkPA,M+BlPAI,GAAA,MAAA,KAAA,KAAA,MAAAA,GAAA,MAAA,KAAA,KAAA,MAAAA,GAAA,MAAA,KAAA,KAAA,MAAAA,GAAA,MAAA,KAAA,KAAA,MAAAA,GAAA,QAAA,QAAA0iF,IAAAtjF,GAAA,GAAAC,GAAA8F,KAAAi3B,MAAAh9B,EAAA,IAAA,KAAAQ,EAAAuF,KAAAi3B,MAAAh9B,EAAA,IAAA,IAAAU,EAAAV,EAAA,GAAAY,EAAA,EAAA,OAAAX,GAAA,IAAAW,GAAA2iF,GAAAtjF,GAAA,SAAAO,EAAA,IAAAI,IAAA,KAAAA,EAAA,IAAA,IAAA2iF,GAAA/iF,GAAA,OAAAE,EAAA,IAAAE,IAAA,KAAAA,EAAA,IAAA,IAAA2iF,GAAA7iF,IAAA,KAAAE,EAAA,OAAAA,EAAA,QAAA4iF,IAAAxjF,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,IAAAL,GAAA,kBAAA,mBAAAgM,GAAA,UAAA,cAAAg0E,IAAAvgF,EAAA,SAAA,GAAAA,EAAA,UAAAkD,GAAA,UAAA,eAAAs9E,IAAAxgF,EAAA,SAAA,GAAAA,EAAA,UAAAU,GAAA,UAAA,eAAA+/E,IAAAzgF,EAAA,SAAA,GAAAA,EAAA,UAAA8Y,GAAA,SAAA,aAAA4nE,IAAA1gF,EAAA,SAAA,GAAAA,EAAA,UAAAqP,GAAA,QAAA,YAAA23C,IAAAhnD,EAAA,OAAA,GAAAA,EAAA,QAAA,OAAAU,GAAAE,EAAAJ,GAAA,GAAAP,EAAAW,EAAAJ,GAAA,GAAAI,EAAAJ,GAAA;A/BmPA,C+B9OA,QAAAijF,IAAAzjF,EAAAC,GAAA,GAAAO,GAAAR,EAAAM,MAAA,IAAA,OAAAL,GAAA,KAAA,GAAAA,EAAA,MAAA,GAAAO,EAAA,GAAAP,EAAA,IAAA,GAAA,GAAAA,EAAA,KAAA,GAAAA,EAAA,KAAAA,EAAA,KAAA,IAAAO,EAAA,GAAAA,EAAA,GAAA,QAAAkjF,IAAA1jF,EAAAC,EAAAO,GAAA,GAAAE,IAAA6/E,GAAAtgF,EAAA,yBAAA,yBAAAugF,GAAAvgF,EAAA,sBAAA,sBAAAwgF,GAAA,gBAAAC,GAAA,wBAAA15B,GAAA,iBAAA,OAAA,MAAAxmD,EAAAP,EAAA,UAAA,UAAA,MAAAO,EAAAP,EAAA,SAAA,SAAAD,EAAA,IAAAyjF,GAAA/iF,EAAAF,IAAAR,GAAA,QAAA2jF,IAAA3jF,EAAAC,GAAA,GAAAO,IAAAojF,WAAA,0DAAAtjF,MAAA,KAAAujF,WAAA,0DAAAvjF,MAAA,KAAAwjF,SAAA,4DAAAxjF,MAAA,MAAAI,EAAA,qBAAAQ,KAAAjB,GAAA,aAAA,sCAAAiB,KAAAjB,GAAA,WAAA;AAAA,A/B+OA,M+B/OAO,GAAAE,GAAAV,EAAAo0E,OAAA,QAAA2P,IAAA/jF,GAAA,MAAA,YAAA,MAAAA,GAAA,KAAA,KAAAwL,KAAAytE,QAAA,IAAA,IAAA,QAAA,GAAApM,IAAA8B,GAAAJ,GAAAvuE,EAAAgkF,oBAAAxV,IAAA,EAAAE,MAAAI,MAAAM,GAAA,mLAAAI,GAAA,6CAAAH,MAAAJ,MAAAvB,GAAA,KAAAhxC,GAAA,OAAAz6B,GAAA,QAAAmrB,GAAA,QAAA4K,GAAA,aAAAQ,GAAA,QAAAoE,GAAA,YAAAC,GAAA,gBAAAxG,GAAA,UAAAmB,GAAA,UAAAvB,GAAA,eAAAoH,GAAA,MAAAhF,GAAA,WAAAsD,GAAA,qBAAAS,GAAA,0BAAA1E,GAAA,uBAAAqB,GAAA,mHAAAlD,MAAA0G,MAAAtD,GAAA,EAAAqD,GAAA,EAAAE,GAAA,EAAAnD,GAAA,EAAAvD,GAAA,EAAAqH,GAAA,EAAAL,GAAA,EAAA1G,GAAA,EAAAqH,GAAA;AAAAh9B,A/BgPA,E+BhPA,KAAA,KAAA,GAAA,KAAA,WAAA,MAAA+K,MAAAskE,QAAA,IAAArvE,EAAA,MAAA,EAAA,EAAA,SAAAT,GAAA,MAAAwL,MAAA0jE,aAAAkB,YAAA5kE,KAAAxL,KAAAS,EAAA,OAAA,EAAA,EAAA,SAAAT,GAAA,MAAAwL,MAAA0jE,aAAAiB,OAAA3kE,KAAAxL,KAAAuP,EAAA,QAAA,KAAAyJ,EAAA,IAAAwf,IAAAxf,EAAA,KAAAwf,GAAAkE,IAAA1jB,EAAA,MAAA,SAAAhZ,EAAAC,GAAA,MAAAA,GAAAgkF,iBAAAjkF,KAAAgZ,EAAA,OAAA,SAAAhZ,EAAAC,GAAA,MAAAA,GAAAikF,YAAAlkF,KAAAoZ,GAAA,IAAA,MAAA,SAAApZ,EAAAC,GAAAA,EAAAq8B,IAAAvtB,EAAA/O,GAAA,IAAAoZ,GAAA,MAAA,QAAA,SAAApZ,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAJ,EAAA8tE,QAAA+B,YAAArwE,EAAAU,EAAAF,EAAAotE,QAAA,OAAAhtE,EAAAX,EAAAq8B,IAAA17B,EAAAqH,EAAAzH,GAAA4sE,aAAAptE,GAAA,IAAAk6B,IAAA,iCAAAwB,GAAA,wFAAAp7B,MAAA,KAAAq9B,GAAA,kDAAAr9B,MAAA,KAAAg4B,GAAAS,GAAAd,GAAAc,GAAA6F;AAAA5+B,A/BiPA,E+BjPAmxE,6BAAA,CAAA,IAAAz3C,IAAA,kJAAAgE,GAAA,6IAAAmB,GAAA,wBAAAF,KAAA,eAAA,wBAAA,aAAA,oBAAA,eAAA,mBAAA,aAAA,eAAA,IAAA,WAAA,gBAAA,UAAA,cAAA,IAAA,aAAA,eAAA,WAAA,UAAA,aAAA,gBAAA,YAAA,eAAA,IAAA,UAAA,UAAArI,KAAA,gBAAA,wBAAA,gBAAA,uBAAA,WAAA,mBAAA,QAAA,cAAA,cAAA,sBAAA,cAAA,qBAAA,SAAA,iBAAA,OAAA,aAAA,KAAA,SAAAwI,GAAA;AAAA9+B,A/BkPA,E+BlPAyxE,wBAAAL,GAAA,4LAAA,SAAApxE,GAAAA,EAAA0tE,GAAA,GAAAh6D,MAAA1T,EAAAguE,IAAAhuE,EAAA4yE,QAAA,OAAA,OAAAnyE,EAAA,IAAA,EAAA,EAAA,WAAA,GAAAT,GAAAwL,KAAA+kE,MAAA,OAAA,OAAAvwE,EAAA,GAAAA,EAAA,IAAAA,IAAAS,EAAA,GAAA,KAAA,GAAA,EAAA,WAAA,MAAA+K,MAAA+kE,OAAA,MAAA9vE,EAAA,GAAA,OAAA,GAAA,EAAA,QAAAA,EAAA,GAAA,QAAA,GAAA,EAAA,QAAAA,EAAA,GAAA,SAAA,GAAA,GAAA,EAAA,QAAA8O,EAAA,OAAA,KAAAyJ,EAAA,IAAAqf,IAAArf,EAAA,KAAAwf,GAAAkE,IAAA1jB,EAAA,OAAAwe,GAAApK,IAAApU,EAAA,QAAAid,GAAA+B,IAAAhf,EAAA,SAAAid,GAAA+B,IAAA5e,GAAA,QAAA,UAAA6f,IAAA7f,EAAA,OAAA,SAAAnZ,EAAAO,GAAAA,EAAAy4B,IAAA,IAAAh5B,EAAAuC,OAAAxC,EAAAmkF,kBAAAlkF,GAAA8O,EAAA9O,KAAAmZ,EAAA,KAAA,SAAAnZ,EAAAO;AAAAA,A/BmPA,E+BnPAy4B,IAAAj5B,EAAAmkF,kBAAAlkF,KAAAmZ,EAAA,IAAA,SAAApZ,EAAAC,GAAAA,EAAAg5B,IAAAxd,SAAAzb,EAAA,MAAAA,EAAAmkF,kBAAA,SAAAnkF,GAAA,MAAA+O,GAAA/O,IAAA+O,EAAA/O,GAAA,GAAA,KAAA,KAAA,IAAA49B,IAAA5tB,EAAA,YAAA,EAAAhQ,GAAA4zE,SAAA,YAAA,IAAAt2C,IAAA8zC,GAAA,mGAAA,WAAA,GAAApxE,GAAAuzE,GAAAliE,MAAA,KAAAC,UAAA,OAAA9F,MAAAujE,WAAA/uE,EAAA+uE,UAAAvjE,KAAAxL,EAAAwL,KAAAxL,EAAAmI,MAAA2yB,GAAAs2C,GAAA,mGAAA,WAAA,GAAApxE,GAAAuzE,GAAAliE,MAAA,KAAAC,UAAA,OAAA9F,MAAAujE,WAAA/uE,EAAA+uE,UAAA/uE,EAAAwL,KAAAA,KAAAxL,EAAAmI,MAAAi3B,GAAA,WAAA,MAAA1rB,MAAA7J,IAAA6J,KAAA7J,OAAA,GAAA6J,MAAA4hE,IAAA,IAAA,KAAAA,GAAA,KAAA;AAAAt8D,A/BoPA,E+BpPA,IAAAojB,IAAApjB,EAAA,KAAAojB,IAAAhjB,GAAA,IAAA,MAAA,SAAApZ,EAAAC,EAAAO,GAAAA,EAAAoyE,SAAA,EAAApyE,EAAA2tE,KAAAqH,GAAAp5C,GAAAp8B,IAAA,IAAA+9B,IAAA,iBAAA/9B,GAAAyuE,aAAA,YAAA,IAAA93C,IAAA,yDAAAH,GAAA,+HAAAw/C,IAAAnnE,GAAAmmE,GAAArnE,SAAA,IAAAwxB,IAAA19B,GAAA,EAAA,OAAAy3B,GAAAz3B,GAAA,GAAA,WAAAzB,GAAAu4E,cAAA,sBAAA,IAAA5+C,IAAAy3C,GAAA,kJAAA,SAAApxE,GAAA,MAAA,UAAAA,EAAAwL,KAAA0jE,aAAA1jE,KAAA0sE,OAAAl4E,IAAAS,GAAA,GAAA,KAAA,GAAA,EAAA;AAAA,A/BqPA,M+BrPA+K,MAAA44E,WAAA,MAAA3jF,EAAA,GAAA,KAAA,GAAA,EAAA,WAAA,MAAA+K,MAAA64E,cAAA,MAAAjK,GAAA,OAAA,YAAAA,GAAA,QAAA,YAAAA,GAAA,OAAA,eAAAA,GAAA,QAAA,eAAA7qE,EAAA,WAAA,MAAAA,EAAA,cAAA,MAAAyJ,EAAA,IAAAqf,IAAArf,EAAA,IAAAqf,IAAArf,EAAA,KAAAwf,GAAAkE,IAAA1jB,EAAA,KAAAwf,GAAAkE,IAAA1jB,EAAA,OAAAwe,GAAApK,IAAApU,EAAA,OAAAwe,GAAApK,IAAApU,EAAA,QAAAid,GAAA+B,IAAAhf,EAAA,QAAAid,GAAA+B,IAAA3e,GAAA,OAAA,QAAA,OAAA,SAAA,SAAArZ,EAAAC,EAAAO,EAAAE,GAAAT,EAAAS,EAAAoH,OAAA,EAAA,IAAAiH,EAAA/O,KAAAqZ,GAAA,KAAA,MAAA,SAAApZ,EAAAO,EAAAE,EAAAE,GAAAJ,EAAAI,GAAAZ,EAAAmkF,kBAAAlkF,KAAAQ,EAAA,IAAA,EAAA,KAAA,WAAA8O,EAAA,UAAA,KAAAyJ,EAAA,IAAA00D,IAAAt0D,EAAA,IAAA,SAAApZ,EAAAC,GAAAA,EAAAq8B,IAAA,GAAAvtB,EAAA/O,GAAA,KAAAS,EAAA,KAAA,KAAA,GAAA,KAAA,QAAAA,EAAA,KAAA,KAAA,GAAA,KAAA,WAAA8O,EAAA,OAAA,KAAAA,EAAA,UAAA,KAAAyJ,EAAA,IAAAwf,IAAAxf,EAAA,KAAAwf,GAAAkE;AAAA1jB,A/BsPA,E+BtPA,IAAAwf,IAAAxf,EAAA,KAAAwf,GAAAkE,IAAArjB,GAAA,IAAA,KAAA,IAAA,MAAA,SAAArZ,EAAAC,EAAAO,EAAAE,GAAAT,EAAAS,EAAAoH,OAAA,EAAA,IAAAiH,EAAA/O,IAAA,IAAA02B,KAAA+8C,IAAA,EAAAC,IAAA,EAAAjzE,GAAA,KAAA,KAAA,GAAA,KAAA,QAAA8O,EAAA,OAAA,KAAAyJ,EAAA,IAAAwf,IAAAxf,EAAA,KAAAwf,GAAAkE,IAAA1jB,EAAA,KAAA,SAAAhZ,EAAAC,GAAA,MAAAD,GAAAC,EAAAg+E,cAAAh+E,EAAA+9E,uBAAA5kE,GAAA,IAAA,MAAAojB,IAAApjB,EAAA,KAAA,SAAApZ,EAAAC,GAAAA,EAAAu8B,IAAAztB,EAAA/O,EAAAwiB,MAAAgW,IAAA,GAAA,KAAA,IAAA/B,IAAAzmB,EAAA,QAAA,EAAAvP,GAAA,IAAA,EAAA,KAAA,OAAAA,EAAA,KAAA,EAAA,EAAA,SAAAT,GAAA,MAAAwL,MAAA0jE,aAAAgN,YAAA1wE,KAAAxL,KAAAS,EAAA,MAAA,EAAA,EAAA,SAAAT,GAAA,MAAAwL,MAAA0jE,aAAA+M,cAAAzwE,KAAAxL,KAAAS,EAAA,OAAA,EAAA,EAAA,SAAAT,GAAA,MAAAwL,MAAA0jE,aAAA8M,SAAAxwE,KAAAxL,KAAAS,EAAA,IAAA,EAAA,EAAA,WAAAA,EAAA,IAAA,EAAA,EAAA,cAAA8O,EAAA,MAAA,KAAAA,EAAA,UAAA,KAAAA,EAAA,aAAA,KAAAyJ,EAAA,IAAAwf;AAAAxf,A/BuPA,E+BvPA,IAAAwf,IAAAxf,EAAA,IAAAwf,IAAAxf,EAAA,KAAA+f,IAAA/f,EAAA,MAAA+f,IAAA/f,EAAA,OAAA+f,IAAA1f,GAAA,KAAA,MAAA,QAAA,SAAArZ,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAAJ,EAAA8tE,QAAA6M,cAAAn7E,EAAAU,EAAAF,EAAAotE,QAAA,OAAAhtE,EAAAX,EAAAS,EAAAE,EAAAqH,EAAAzH,GAAAmtE,eAAA3tE,IAAAqZ,GAAA,IAAA,IAAA,KAAA,SAAArZ,EAAAC,EAAAO,EAAAE,GAAAT,EAAAS,GAAAqO,EAAA/O,IAAA,IAAAq/B,IAAA,2DAAA/+B,MAAA,KAAA04B,GAAA,8BAAA14B,MAAA,KAAA28B,GAAA,uBAAA38B,MAAA,IAAAG,GAAA,OAAA,OAAA,GAAA,OAAA,aAAA8O,EAAA,YAAA,OAAAyJ,EAAA,MAAAqd,IAAArd,EAAA,OAAA/W,IAAAmX,GAAA,MAAA,QAAA,SAAApZ,EAAAC,EAAAO,GAAAA,EAAA0yE,WAAAnkE,EAAA/O,KAAAS,EAAA,KAAA,KAAA,GAAA,EAAA,QAAAA,EAAA,KAAA,KAAA,GAAA,EAAA0sB,IAAA1sB,EAAA,MAAA,EAAA,EAAA,WAAA,MAAA,GAAA0sB,GAAA9b,MAAA7F,MAAA1K,EAAA0K,KAAA0tE,UAAA,KAAAz4E,EAAA,QAAA,EAAA,EAAA,WAAA,MAAA,GAAA0sB,GAAA9b,MAAA7F,MAAA1K,EAAA0K,KAAA0tE,UAAA,GAAAp4E,EAAA0K,KAAA2tE,UAAA;A/BwPA,G+BxPA14E,EAAA,MAAA,EAAA,EAAA,WAAA,MAAA,GAAA+K,KAAAytE,QAAAn4E,EAAA0K,KAAA0tE,UAAA,KAAAz4E,EAAA,QAAA,EAAA,EAAA,WAAA,MAAA,GAAA+K,KAAAytE,QAAAn4E,EAAA0K,KAAA0tE,UAAA,GAAAp4E,EAAA0K,KAAA2tE,UAAA,KAAAoD,GAAA,KAAA,GAAAA,GAAA,KAAA,GAAAhtE,EAAA,OAAA,KAAAyJ,EAAA,IAAAyjE,IAAAzjE,EAAA,IAAAyjE,IAAAzjE,EAAA,IAAAwf,IAAAxf,EAAA,IAAAwf,IAAAxf,EAAA,KAAAwf,GAAAkE,IAAA1jB,EAAA,KAAAwf,GAAAkE,IAAA1jB,EAAA,MAAA4jB,IAAA5jB,EAAA,QAAA6jB,IAAA7jB,EAAA,MAAA4jB,IAAA5jB,EAAA,QAAA6jB,IAAAzjB,GAAA,IAAA,MAAAigB,IAAAjgB,GAAA,IAAA,KAAA,SAAApZ,EAAAC,EAAAO,GAAAA,EAAA8jF,MAAA9jF,EAAA8tE,QAAA0F,KAAAh0E,GAAAQ,EAAAszE,UAAA9zE,IAAAoZ,GAAA,IAAA,MAAA,SAAApZ,EAAAC,EAAAO,GAAAP,EAAAo5B,IAAAtqB,EAAA/O,GAAAiI,EAAAzH,GAAAqtE,SAAA,IAAAz0D,EAAA,MAAA,SAAApZ,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAAwC,OAAA,CAAAvC,GAAAo5B,IAAAtqB,EAAA/O,EAAA8H,OAAA,EAAApH,IAAAT,EAAA61B,IAAA/mB,EAAA/O,EAAA8H,OAAApH,IAAAuH,EAAAzH,GAAAqtE,SAAA,IAAAz0D,EAAA,QAAA,SAAApZ,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAAwC,OAAA,EAAA5B,EAAAZ,EAAAwC,OAAA,CAAAvC,GAAAo5B,IAAAtqB,EAAA/O,EAAA8H,OAAA,EAAApH,IAAAT,EAAA61B,IAAA/mB,EAAA/O,EAAA8H,OAAApH,EAAA,IAAAT,EAAAk9B,IAAApuB,EAAA/O,EAAA8H,OAAAlH;AAAAqH,A/ByPA,E+BzPAzH,GAAAqtE,SAAA,IAAAz0D,EAAA,MAAA,SAAApZ,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAAwC,OAAA,CAAAvC,GAAAo5B,IAAAtqB,EAAA/O,EAAA8H,OAAA,EAAApH,IAAAT,EAAA61B,IAAA/mB,EAAA/O,EAAA8H,OAAApH,MAAA0Y,EAAA,QAAA,SAAApZ,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAAwC,OAAA,EAAA5B,EAAAZ,EAAAwC,OAAA,CAAAvC,GAAAo5B,IAAAtqB,EAAA/O,EAAA8H,OAAA,EAAApH,IAAAT,EAAA61B,IAAA/mB,EAAA/O,EAAA8H,OAAApH,EAAA,IAAAT,EAAAk9B,IAAApuB,EAAA/O,EAAA8H,OAAAlH,KAAA,IAAA2jF,IAAA,gBAAAriE,GAAAlS,EAAA,SAAA,EAAAvP,GAAA,KAAA,KAAA,GAAA,EAAA,UAAA8O,EAAA,SAAA,KAAAyJ,EAAA,IAAAwf,IAAAxf,EAAA,KAAAwf,GAAAkE,IAAAtjB,GAAA,IAAA,MAAA0c,GAAA,IAAAzI,IAAArd,EAAA,WAAA,EAAAvP,GAAA,KAAA,KAAA,GAAA,EAAA,UAAA8O,EAAA,SAAA,KAAAyJ,EAAA,IAAAwf,IAAAxf,EAAA,KAAAwf,GAAAkE,IAAAtjB,GAAA,IAAA,MAAA+jB,GAAA,IAAAqnD,IAAAx0E,EAAA,WAAA,EAAAvP,GAAA,IAAA,EAAA,EAAA,WAAA,SAAA+K,KAAAgpE,cAAA,OAAA/zE,EAAA,GAAA,KAAA,GAAA,EAAA,WAAA,SAAA+K,KAAAgpE,cAAA,MAAA/zE,EAAA,GAAA,MAAA,GAAA,EAAA,eAAAA,EAAA,GAAA,OAAA,GAAA,EAAA,WAAA,MAAA,IAAA+K,KAAAgpE;A/B0PA,G+B1PA/zE,EAAA,GAAA,QAAA,GAAA,EAAA,WAAA,MAAA,KAAA+K,KAAAgpE,gBAAA/zE,EAAA,GAAA,SAAA,GAAA,EAAA,WAAA,MAAA,KAAA+K,KAAAgpE,gBAAA/zE,EAAA,GAAA,UAAA,GAAA,EAAA,WAAA,MAAA,KAAA+K,KAAAgpE,gBAAA/zE,EAAA,GAAA,WAAA,GAAA,EAAA,WAAA,MAAA,KAAA+K,KAAAgpE,gBAAA/zE,EAAA,GAAA,YAAA,GAAA,EAAA,WAAA,MAAA,KAAA+K,KAAAgpE,gBAAAjlE,EAAA,cAAA,MAAAyJ,EAAA,IAAAqd,GAAAq3C,IAAA10D,EAAA,KAAAqd,GAAAqG,IAAA1jB,EAAA,MAAAqd,GAAAp0B,GAAA,IAAAwiF,GAAA,KAAAA,GAAA,OAAAA,GAAAjiF,QAAA,EAAAiiF,IAAA,IAAAzrE,EAAAyrE,GAAApnD,GAAA,KAAAonD,GAAA,IAAAA,GAAAjiF,QAAA,EAAAiiF,IAAA,IAAArrE,EAAAqrE,GAAA5H,GAAA,IAAA6H,IAAA10E,EAAA,gBAAA,EAAAvP,GAAA,IAAA,EAAA,EAAA,YAAAA,EAAA,KAAA,EAAA,EAAA,WAAA,IAAAkkF,IAAAl4E,EAAAkB,SAAAg3E,IAAArhF,IAAA67B,GAAAwlD,GAAApN,SAAA/U,GAAAmiB,GAAApyE,MAAAilE,GAAAmN,GAAArN,KAAAS,GAAA4M,GAAAjN,MAAA4B,GAAAqL,GAAA39C,OAAAsxC,GAAAqM,GAAA1N,KAAAwB,GAAAkM,GAAAC,QAAAjM,GAAAgM,GAAAzN,GAAA0B;AAAA+L,A/B2PA,G+B3PAE,MAAAhM,GAAA8L,GAAA5zE,IAAA9P,EAAA0jF,GAAAG,UAAA9K,GAAA2K,GAAAxN,QAAAzb,GAAAipB,GAAAvN,SAAAK,GAAAkN,GAAAI,UAAAxhC,GAAAohC,GAAA9M,OAAAF,GAAAgN,GAAAK,cAAApN,GAAA+M,GAAAM,eAAAnN,GAAA6M,GAAA5V,QAAA+K,GAAA6K,GAAAO,KAAAvrD,GAAAgrD,GAAAzM,OAAAY,GAAA6L,GAAAzV,WAAA6J,GAAA4L,GAAA3+E,IAAA80B,GAAA6pD,GAAA7mD,IAAAR,GAAAqnD,GAAAQ,aAAApL,GAAA4K,GAAA1qE,IAAAhZ,EAAA0jF,GAAAtN,QAAA2B,GAAA2L,GAAAvO,SAAAl9C,GAAAyrD,GAAA7zE,QAAA4oE,GAAAiL,GAAAS,SAAAzL,GAAAgL,GAAAtM,OAAAoB,GAAAkL,GAAAvM,YAAAD,GAAAwM,GAAAzsE,OAAA2hE,GAAA8K,GAAAj2E,SAAAupE,GAAA0M,GAAAU,KAAA7L,GAAAmL,GAAA1mD,QAAAs7C,GAAAoL,GAAAW,aAAArL,GAAA0K,GAAApU,KAAA3yC,GAAA+mD,GAAAY,WAAArT,GAAAyS,GAAAP,SAAA/J,GAAAsK,GAAAN,YAAA9J,GAAAoK,GAAA1P,QAAA0P,GAAAa,SAAA5K,GAAA+J,GAAA7U,MAAAxhE,EAAAq2E,GAAAc,YAAAppE,EAAAsoE,GAAAlS,KAAAkS,GAAAe,MAAA1K,GAAA2J,GAAAnK,QAAAmK,GAAAgB,SAAA1K,GAAA0J,GAAAiB,YAAAlL,GAAAiK,GAAAkB,eAAApL,GAAAkK,GAAArU,KAAA75C,GAAAkuD,GAAAvQ,IAAAuQ,GAAAzF,KAAA/C,GAAAwI,GAAAvL,QAAAiD,GAAAsI,GAAAtL,WAAAiD,GAAAqI,GAAArS,UAAAztD;AAAA8/D,A/B4PA,G+B5PAtQ,KAAAsQ,GAAA1L,MAAA/2D,GAAAyiE,GAAArQ,OAAAqQ,GAAAzL,QAAA7rD,GAAAs3D,GAAApQ,OAAAoQ,GAAAxL,QAAAqL,GAAAG,GAAAnQ,YAAAmQ,GAAA7N,aAAA4N,GAAAC,GAAApP,UAAAO,GAAA6O,GAAA5X,IAAAmJ,GAAAyO,GAAA32C,MAAAmoC,GAAAwO,GAAAzH,UAAA7G,GAAAsO,GAAAmB,qBAAAxP,GAAAqO,GAAAoB,MAAAxP,GAAAoO,GAAAqB,aAAAxP,GAAAmO,GAAA11D,QAAAynD,GAAAiO,GAAAsB,YAAAtP,GAAAgO,GAAAuB,MAAAtP,GAAA+N,GAAAzK,MAAAtD,GAAA+N,GAAAwB,SAAArJ,GAAA6H,GAAAyB,SAAArJ,GAAA4H,GAAA0B,MAAAjV,GAAA,kDAAA36C,IAAAkuD,GAAAxU,OAAAiB,GAAA,mDAAA9iE,GAAAq2E,GAAA/K,MAAAxI,GAAA,iDAAAxzC,IAAA+mD,GAAA2B,KAAAlV,GAAA,4GAAA6E,GAAA,IAAAsQ,IAAA5B,GAAA6B,IAAAC,QAAA,gBAAAC,QAAA;AAAAC,A/B6PA,S+B7PA,eAAAC,QAAA,oBAAAC,SAAA,sBAAAC,SAAA,KAAAC,IAAAC,IAAA,YAAAC,GAAA,SAAApuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,sBAAAC,KAAA,6BAAAC,GAAA,eAAAC,GAAA,KAAAC,GAAA,UAAAC,IAAAC,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,gBAAAgM,EAAA,WAAAg0E,GAAA,aAAAr9E,EAAA,UAAAs9E,GAAA,WAAA9/E,EAAA,QAAA+/E,GAAA,UAAA3nE,EAAA,UAAA4nE,GAAA,YAAArxE,EAAA,SAAA23C,GAAA,YAAA0gC,GAAA14E,EAAArB,SAAA+5E,IAAAtK,UAAAoJ,GAAAkB,GAAAnQ,SAAA4F,GAAAuK,GAAApK,gBAAAyJ,GAAAW,GAAAnY,eAAA8N,GAAAqK,GAAAlK,aAAA6J,GAAAK,GAAApY,YAAAiO,GAAAmK,GAAAhK,SAAA4J,GAAAI,GAAAvY,QAAAsO,GAAAiK,GAAAzJ,cAAAsJ,GAAAG,GAAA/S,SAAAgJ,GAAA+J,GAAAlP,WAAAmF,GAAA+J,GAAA7J,cAAA2J;AAAAE,A/B8PA,G+B9PA/H,aAAA/B,GAAA8J,GAAAzH,WAAAnC,GAAA4J,GAAAztE,IAAA8jE,GAAA2J,GAAAvX,OAAAl0D,EAAAyrE,GAAA7X,QAAAn0C,GAAAgsD,GAAAtX,YAAAl0D,EAAAwrE,GAAA3X,aAAApyC,GAAA+pD,GAAArX,YAAAl0D,EAAAurE,GAAA7W,aAAA54C,GAAAyvD,GAAAxD,YAAA1iF,GAAAkmF,GAAA/W,kBAAAr4C,GAAAovD,GAAAzD,iBAAAzT,GAAAkX,GAAAjV,KAAAoI,GAAA6M,GAAAlU,MAAA98C,GAAAgxD,GAAAC,eAAA5M,GAAA2M,GAAAE,eAAA9M,GAAA4M,GAAA1L,SAAAZ,GAAAsM,GAAArM,UAAAh8C,GAAAqoD,GAAAxL,YAAAT,GAAAiM,GAAAhM,aAAAz+C,GAAAyqD,GAAAzL,cAAAV,GAAAmM,GAAAlM,eAAAxiD,GAAA0uD,GAAAvM,cAAAQ,GAAA+L,GAAA1T,KAAA2I,GAAA+K,GAAAhL,eAAA6H,GAAAmD,GAAAlL,SAAAI,GAAAxtE,EAAA,MAAAy4E,aAAA,uBAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAA,IAAAuO,EAAA/O,EAAA,IAAA,IAAA,KAAA,IAAAC,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAA,OAAAD,GAAAQ,KAAAR,EAAAklF,KAAA9T,GAAA,wDAAAhiE;AAAApP,A/B+PA,E+B/PA8nF,SAAA1W,GAAA,gEAAA9hE,EAAA,IAAAovE,IAAA34E,KAAA6uC,IAAAmzC,GAAA1I,GAAA,MAAA2I,GAAA3I,GAAA,KAAA4I,GAAA5I,GAAA,KAAA6I,GAAA7I,GAAA,KAAA8I,GAAA9I,GAAA,KAAA+I,GAAA/I,GAAA,KAAAgJ,GAAAhJ,GAAA,KAAAiJ,GAAAjJ,GAAA,KAAAkJ,GAAA/I,GAAA,gBAAAgJ,GAAAhJ,GAAA,WAAAiJ,GAAAjJ,GAAA,WAAAkJ,GAAAlJ,GAAA,SAAAmJ,GAAAnJ,GAAA,QAAAoJ,GAAApJ,GAAA,UAAAqJ,GAAArJ,GAAA,SAAAK,GAAA95E,KAAA6vE,MAAAkK,IAAAv/E,EAAA,GAAAgM,EAAA,GAAArJ,EAAA,GAAAxC,EAAA,GAAAoY,EAAA,IAAAqnE,GAAAp6E,KAAA6uC,IAAAk0C,GAAA9T,GAAArnE,SAAAm7E,IAAAl0C,IAAA6pC,GAAAqK,GAAAxlF,IAAAs7E,GAAAkK,GAAA1S,SAAAyI,GAAAiK,GAAAxJ,GAAAH,GAAA2J,GAAAC,eAAAhB,GAAAe,GAAA1I,UAAA4H,GAAAc,GAAAE,UAAAf,GAAAa,GAAAG,QAAAf,GAAAY,GAAAI,OAAAf,GAAAW,GAAAK,QAAAf,GAAAU,GAAAM,SAAAf,GAAAS,GAAAO,QAAAf,GAAAQ,GAAA7qD,QAAAmhD,GAAA0J,GAAA1T,QAAA2J,GAAA+J,GAAA/3E,IAAAwuE,GAAAuJ,GAAAhS,aAAAyR,GAAAO,GAAA3P,QAAAqP,GAAAM,GAAA5P,QAAAuP,GAAAK,GAAA7P,MAAAyP,GAAAI,GAAA5J,KAAAyJ,GAAAG,GAAApD,MAAAjG,GAAAqJ,GAAA3Y,OAAAyY;AAAAE,A/BgQA,G+BhQAlP,MAAAiP,GAAAC,GAAApQ,SAAAsH,GAAA8I,GAAA1Q,YAAA8H,GAAA4I,GAAAp6E,SAAAwxE,GAAA4I,GAAA5wE,OAAAgoE,GAAA4I,GAAA5Q,OAAAY,GAAAgQ,GAAA5Z,WAAA6J,GAAA+P,GAAAQ,YAAAlY,GAAA,sFAAA8O,IAAA4I,GAAA5D,KAAAvrD,GAAAl5B,EAAA,IAAA,EAAA,EAAA,QAAAA,EAAA,IAAA,EAAA,EAAA,WAAAuY,EAAA,IAAAqf,IAAArf,EAAA,IAAA0e,IAAAte,EAAA,IAAA,SAAApZ,EAAAC,EAAAO,GAAAA,EAAAktE,GAAA,GAAAh6D,MAAA,IAAAvN,WAAAnG,EAAA,OAAAoZ,EAAA,IAAA,SAAApZ,EAAAC,EAAAO,GAAAA,EAAAktE,GAAA,GAAAh6D,MAAA3E,EAAA/O,MAMAA,EAAA4qB,QAAA,SAAA3qB,EAAAszE,IAAAvzE,EAAA6O,GAAA03E,GAAAvmF,EAAA89B,IAAAg3C,GAAA90E,EAAAgG,IAAA+uE,GAAA/0E,EAAA6J,IAAAu1B,GAAAp/B,EAAA+sE,IAAA7pE,EAAAlD,EAAAqlF,KAAArI,GAAAh9E,EAAAmwE,OAAAiO,GAAAp+E,EAAA4jC,OAAAljC,EAAAV,EAAAk4E,OAAA9oE,EAAApP,EAAAupF,QAAAphF,EAAAnI,EAAAuK,SAAAyrE,GAAAh2E,EAAAwpF,SAAAppF,EAAAJ,EAAAg8E,SAAAsC,GAAAt+E,EAAAk9E,UAAAD,GAAAj9E,EAAAkvE,WAAA5/D,EAAAtP,EAAAypF,WAAApU,GAAAr1E,EAAAowE,YAAAiO,GAAAr+E,EAAAk8E,YAAAsC,GAAAx+E,EAAA0pF,aAAAr6E,EAAArP,EAAAi8E,cAAAsC,GAAAv+E,EAAA2pF,eAAAn6E;AAAAxP,A/B2PA,E+B3PA4pF,sBAAA7J,GAAA//E,EAAA2N,UAAA44E,EAAA,IAAAsD,IAAA7pF,EAAA8pF,IAAAD,GAAAH,aAAA,MAAAvZ,OAAA,8FAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,4DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAypF,cAAA,SAAA/V,KAAA,SAAAh0E,GAAA,MAAA,QAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAAQ,EAAA,KAAA,KAAAA,EAAA,KAAA,MAAA+uE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA;A/B4PA,E+B5PA7P,UAAAkP,QAAA,iBAAAC,QAAA,eAAAC,SAAA,eAAAC,QAAA,iBAAAC,SAAA,sBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,YAAAhuD,EAAA,mBAAAgM,EAAA,YAAAg0E,GAAA,YAAAr9E,EAAA,SAAAs9E,GAAA,SAAA9/E,EAAA,SAAA+/E,GAAA,SAAA3nE,EAAA,WAAA4nE,GAAA,YAAArxE,EAAA,UAAA23C,GAAA,WAAA6gC,aAAA,kBAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,IAAA,IAAAA,GAAA,IAAAA,GAAAA,GAAA,GAAA,MAAA,OAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,wEAAA7vE,MAAA,KAAA8vE,YAAA,wEAAA9vE,MAAA;AAAA07E,A/B6PA,S+B7PA,sDAAA17E,MAAA,KAAA27E,cAAA,wCAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,wBAAAC,QAAA,sBAAAC,SAAA,uBAAAC,QAAA,sBAAAC,SAAA,uBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,OAAAgM,EAAA,QAAAg0E,GAAA,WAAAr9E,EAAA,OAAAs9E,GAAA,WAAA9/E,EAAA,MAAA+/E,GAAA,UAAA3nE,EAAA,MAAA4nE,GAAA,UAAArxE,EAAA,MAAA23C,GAAA,YAAAyrB,MAAAgB,IAAA,EAAAC,IAAA;A/B8PA,K+B9PAxyB,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA,IAAAC,EAAA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAA8rD,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAAd,GAAAH,aAAA,SAAAvZ,OAAA,6EAAA7vE,MAAA,KAAA8vE,YAAA,6EAAA9vE,MAAA,KAAA07E,SAAA,sDAAA17E,MAAA,KAAA27E,cAAA,wCAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA;A/B+PA,E+B/PA2C,cAAA,MAAA/V,KAAA,SAAAh0E,GAAA,MAAA,MAAAA,GAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,IAAA,KAAAu3E,UAAAkP,QAAA,wBAAAC,QAAA,sBAAAC,SAAA,uBAAAC,QAAA,sBAAAC,SAAA,uBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,OAAAgM,EAAA,QAAAg0E,GAAA,WAAAr9E,EAAA,OAAAs9E,GAAA,WAAA9/E,EAAA,MAAA+/E,GAAA,UAAA3nE,EAAA,MAAA4nE,GAAA,UAAArxE,EAAA,MAAA23C,GAAA,YAAA2tB,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,gBAAA,SAAAb,GAAA,MAAAgqF,IAAAhqF,KAAAa,QAAA,KAAA,MAAA23E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAA8pF,IAAA9pF,KAAAa,QAAA,KAAA,MAAA4xE,MAAAgB,IAAA,EAAAC,IAAA,MAAAmW,GAAAH,aAAA;AAAAvZ,A/BgQA,O+BhQA,yEAAA7vE,MAAA,KAAA8vE,YAAA,yEAAA9vE,MAAA,KAAA07E,SAAA,sDAAA17E,MAAA,KAAA27E,cAAA,wCAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,wBAAAC,QAAA,sBAAAC,SAAA,uBAAAC,QAAA,sBAAAC,SAAA,uBAAAC,SAAA;A/BiQA,E+BjQAnH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,OAAAgM,EAAA,QAAAg0E,GAAA,WAAAr9E,EAAA,OAAAs9E,GAAA,WAAA9/E,EAAA,MAAA+/E,GAAA,UAAA3nE,EAAA,MAAA4nE,GAAA,UAAArxE,EAAA,MAAA23C,GAAA,YAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,MAAAxyB,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA,IAAAC,EAAA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAA0sD,IAAAX,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAG,GAAA,SAAA7qF,GAAA,MAAA,KAAAA,EAAA,EAAA,IAAAA,EAAA,EAAA,IAAAA,EAAA,EAAAA,EAAA,KAAA,GAAA,IAAAA,EAAA,IAAA,EAAAA,EAAA,KAAA,GAAA,EAAA,GAAA8qF,IAAAvqF,GAAA,eAAA,eAAA,UAAA,WAAA,UAAA,WAAA,YAAAgM,GAAA,eAAA,eAAA,UAAA,WAAA,WAAA,WAAA,YAAArJ,GAAA,cAAA,cAAA,SAAA,UAAA,WAAA,UAAA;AAAAxC,A/BkQA,G+BlQA,aAAA,YAAA,QAAA,SAAA,UAAA,WAAA,UAAAoY,GAAA,aAAA,YAAA,QAAA,SAAA,UAAA,UAAA,UAAAzJ,GAAA,aAAA,YAAA,QAAA,SAAA,WAAA,WAAA,WAAA07E,GAAA,SAAA/qF,GAAA,MAAA,UAAAC,EAAAO,EAAAE,EAAAE,GAAA,GAAAQ,GAAAypF,GAAA5qF,GAAAgD,EAAA6nF,GAAA9qF,GAAA6qF,GAAA5qF,GAAA,OAAA,KAAAmB,IAAA6B,EAAAA,EAAAzC,EAAA,EAAA,IAAAyC,EAAApC,QAAA,MAAAZ,KAAA+qF,IAAA,qBAAA,cAAA,YAAA,cAAA,YAAA,eAAA,aAAA,WAAA,eAAA,qBAAA,sBAAA,sBAAAC,IAAApB,GAAAH,aAAA,MAAAvZ,OAAA6a,GAAA5a,YAAA4a,GAAAhP,SAAA,sDAAA17E,MAAA,KAAA27E,cAAA,wCAAA37E,MAAA;AAAA47E,A/BmQA,Y+BnQA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA2C,cAAA,MAAA/V,KAAA,SAAAh0E,GAAA,MAAA,MAAAA,GAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,IAAA,KAAAu3E,UAAAkP,QAAA,wBAAAC,QAAA,uBAAAC,SAAA,uBAAAC,QAAA,sBAAAC,SAAA,uBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,SAAAhuD,EAAAwqF,GAAA,KAAAx+E,EAAAw+E,GAAA,KAAAxK,GAAAwK,GAAA,KAAA7nF,EAAA6nF,GAAA,KAAAvK,GAAAuK,GAAA,KAAArqF,EAAAqqF,GAAA,KAAAtK,GAAAsK,GAAA,KAAAjyE,EAAAiyE,GAAA,KAAArK,GAAAqK,GAAA,KAAA17E,EAAA07E,GAAA,KAAA/jC,GAAA+jC,GAAA,MAAApW,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,UAAA,IAAAA,QAAA,gBAAA,SAAAb;AAAA,A/BoQA,M+BpQA4qF,IAAA5qF,KAAAa,QAAA,KAAA,MAAA23E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAA2qF,IAAA3qF,KAAAa,QAAA,KAAA,MAAA4xE,MAAAgB,IAAA,EAAAC,IAAA,OAAAxyB,EAAA,QAAAoI,EAAA,QAAA8B,EAAA,QAAA8/B,GAAA,QAAAC,GAAA,QAAAhqC,EAAA,OAAAuK,EAAA,OAAA9B,GAAA,OAAA6C,GAAA,OAAArL,EAAA,QAAAC,EAAA,QAAA+pC,IAAA,QAAA3/B,EAAA,OAAAJ,EAAA,QAAAW,GAAA,QAAAH,GAAA,QAAAw/B,GAAA,QAAAC,GAAA,UAAAC,IAAA1B,GAAAH,aAAA,MAAAvZ,OAAA,+EAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,qEAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA;AAAA47E,A/BqQA,Y+BrQA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,kBAAAC,QAAA,kBAAAC,SAAA,+BAAAC,QAAA,aAAAC,SAAA,+BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,WAAAhuD,EAAA,kBAAAgM,EAAA,aAAAg0E,GAAA,YAAAr9E,EAAA,WAAAs9E,GAAA,UAAA9/E,EAAA,UAAA+/E,GAAA,SAAA3nE,EAAA,SAAA4nE,GAAA,QAAArxE,EAAA,SAAA23C,GAAA,SAAA+iC,cAAA,0BAAA/V,KAAA,SAAAh0E,GAAA,MAAA,mBAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,OAAA,GAAAA,EAAA,QAAA,GAAAA,EAAA,SAAA;A/BsQA,E+BtQA6nF,aAAA,wCAAA1Y,QAAA,SAAAnvE,GAAA,GAAA,IAAAA,EAAA,MAAAA,GAAA,OAAA,IAAAC,GAAAD,EAAA,GAAAQ,EAAAR,EAAA,IAAAC,EAAAS,EAAAV,GAAA,IAAA,IAAA,IAAA,OAAAA,IAAAirF,GAAAhrF,IAAAgrF,GAAAzqF,IAAAyqF,GAAAvqF,KAAA+xE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,QAAAnpC,OAAA,uGAAA1mC,MAAA,KAAAkrF,WAAA,qGAAAlrF,MAAA,MAAA8vE,YAAA,0DAAA9vE,MAAA,KAAA07E,UAAAh1C,OAAA,0DAAA1mC,MAAA,KAAAkrF,WAAA,0DAAAlrF,MAAA;AAAAg7E,A/BuQA,S+BvQA,8CAAAW,cAAA,uBAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,iBAAAC,IAAA,wBAAAC,KAAA,+BAAA7P,UAAAkP,QAAA,eAAAC,QAAA,gBAAAE,QAAA,eAAAD,SAAA,WAAA,MAAA,mBAAAE,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,yBAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,2BAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,UAAAl5B,KAAA,UAAAhuD,EAAA,kBAAAgM,EAAA+zE,GAAAC,GAAAD,GAAAp9E,EAAAo9E,GAAAE,GAAAF;AAAA5/E,A/BwQA,E+BxQA,QAAA+/E,GAAAH,GAAAxnE,EAAA,QAAA4nE,GAAAJ,GAAAjxE,EAAA,MAAA23C,GAAAs5B,IAAAyJ,cAAA,yBAAA/V,KAAA,SAAAh0E,GAAA,MAAA,iBAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,OAAA,GAAAA,EAAA,SAAA,GAAAA,EAAA,MAAA,UAAA6nF,aAAA,mBAAA1Y,QAAA,SAAAnvE,EAAAC,GAAA,OAAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,MAAA,IAAA,IAAA,IAAA,IAAA,MAAAD,GAAA,KAAA,GAAAA,EAAA,KAAA,GAAAA,EAAA,MAAA,IAAAA,EAAA,MAAA,GAAAA,EAAA,KAAAA,EAAA,IAAA,KAAA,IAAA,MAAAA,GAAA,KAAA,SAAA,MAAAA,KAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,oFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,yDAAA17E,MAAA;AAAA27E,A/ByQA,c+BzQA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,YAAAquE,GAAA,cAAAC,IAAA,mBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,cAAAC,QAAA,cAAAC,SAAA,cAAAC,QAAA,eAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,4BAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,8BAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,UAAAl5B,KAAA,WAAAhuD,EAAA,kBAAAgM,EAAA,SAAAg0E,GAAA,YAAAr9E,EAAA,MAAAs9E,GAAA,UAAA9/E,EAAA,MAAA+/E,GAAA,SAAA3nE,EAAA,QAAA4nE,GAAA,YAAArxE,EAAA;AAAA23C,A/B0QA,G+B1QA,aAAA6gC,aAAA,8BAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAAR,EAAA,GAAA,OAAA,KAAAA,EAAAA,EAAA,MAAA,IAAAQ,EAAAR,EAAA,MAAAQ,EAAA,IAAA,GAAAA,EAAAR,EAAA,MAAA,IAAAC,EAAAD,EAAA,MAAA,IAAAC,EAAAD,EAAA,MAAA,IAAAC,GAAA,IAAAA,EAAAD,EAAA,MAAAA,EAAA,OAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,MAAAxyB,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA,IAAAC,EAAA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAAutD,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAAvC,GAAAH,aAAA,MAAAvZ,OAAA,yFAAA7vE,MAAA,KAAA8vE,YAAA,yDAAA9vE,MAAA,KAAA07E,SAAA,8DAAA17E,MAAA;AAAA27E,A/B2QA,c+B3QA,yCAAA37E,MAAA,KAAA47E,YAAA,6BAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,aAAAD,IAAA,gBAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,0BAAAC,KAAA,iCAAA7P,UAAAkP,QAAA,UAAAC,QAAA,gBAAAC,SAAA,WAAAC,QAAA,aAAAC,SAAA,gBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,SAAAhuD,EAAA,eAAAgM,EAAA,WAAAg0E,GAAA,WAAAr9E,EAAA,WAAAs9E,GAAA,WAAA9/E,EAAA,SAAA+/E,GAAA,SAAA3nE,EAAA,SAAA4nE,GAAA,SAAArxE,EAAA,SAAA23C,GAAA,UAAA2tB,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,gBAAA,SAAAb,GAAA,MAAAyrF,IAAAzrF;A/B4QA,E+B5QAw4E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAAurF,IAAAvrF,MAAA+pF,cAAA,2BAAA/V,KAAA,SAAAh0E,GAAA,MAAA,sBAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,MAAA,GAAAA,EAAA,OAAA,GAAAA,EAAA,QAAA,GAAAA,EAAA,QAAA,OAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,MAAAxyB,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA,IAAAC,EAAA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAAmuD,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAAnD,GAAAH,aAAA,MAAAvZ,OAAA,qJAAA7vE,MAAA,KAAA8vE,YAAA,qJAAA9vE,MAAA;AAAA07E,A/B6QA,S+B7QA,gFAAA17E,MAAA,KAAA27E,cAAA,oDAAA37E,MAAA,KAAA47E,YAAA,oDAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,SAAAD,IAAA,YAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,sBAAAC,KAAA,6BAAA7P,UAAAkP,QAAA,cAAAC,QAAA,cAAAC,SAAA,wBAAAC,QAAA,YAAAC,SAAA,4BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,WAAAhuD,EAAA,QAAAgM,EAAA,aAAAg0E,GAAA,WAAAr9E,EAAA,cAAAs9E,GAAA,YAAA9/E,EAAA;AAAA+/E,A/B8QA,G+B9QA,UAAA3nE,EAAA,YAAA4nE,GAAA,UAAArxE,EAAA,UAAA23C,GAAA,SAAA2tB,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,gBAAA,SAAAb,GAAA,MAAAqsF,IAAArsF,MAAAw4E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAAosF,IAAApsF,MAAA+pF,cAAA,wCAAA/V,KAAA,SAAAh0E,GAAA,MAAA,6BAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,SAAA,GAAAA,EAAA,UAAA,GAAAA,EAAA,UAAA,GAAAA,EAAA,UAAA,UAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,gFAAA7vE,MAAA,KAAA8vE,YAAA,mDAAA9vE,MAAA,KAAA07E,SAAA,6CAAA17E,MAAA;AAAA27E,A/B+QA,c+B/QA,8BAAA37E,MAAA,KAAA47E,YAAA,wBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,WAAAD,IAAA,cAAAnuE,EAAA,aAAAquE,GAAA,sBAAAC,IAAA,+BAAAC,KAAA,sCAAA7P,UAAAkP,QAAA,gBAAAC,QAAA,qBAAAC,SAAA,eAAAC,QAAA,gBAAAC,SAAA,qBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,YAAAl5B,KAAA,SAAAhuD,EAAA,wBAAAgM,EAAA,cAAAg0E,GAAAI,GAAAz9E,EAAA,SAAAs9E,GAAA,SAAA9/E,EAAA,YAAA+/E,GAAAE,GAAA7nE,EAAA,SAAA4nE,GAAAC,GAAAtxE,EAAA,WAAA23C,GAAA65B,IAAAgH,aAAA,kBAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAA,IAAAD,EAAA,KAAA;AAAA,A/BgRA,M+BhRAA,GAAAC,GAAAwyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,qFAAA7vE,MAAA,KAAA8vE,YAAA,8DAAA9vE,MAAA,KAAA07E,SAAA,4DAAA17E,MAAA,KAAA27E,cAAA,qCAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,eAAAquE,GAAA,eAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,eAAAC,QAAA,eAAAC,SAAA,WAAA,OAAAn7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA;AAAA,A/BiRA,I+BjRA,GAAA,MAAA,sBAAA,KAAA,GAAA,MAAA,qBAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,oBAAAwS,QAAA,eAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,IAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,MAAA,0BAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,yBAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,WAAAhuD,EAAA,cAAAgM,EAAAy0E,GAAAT,GAAAS,GAAA99E,EAAA89E,GAAAR,GAAAQ,GAAAtgF,EAAA,MAAA+/E,GAAAO,GAAAloE,EAAA,SAAA4nE,GAAAM,GAAA3xE,EAAA,SAAA23C,GAAAg6B,IAAA6G,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,oFAAA7vE,MAAA,KAAA8vE,YAAA,8DAAA9vE,MAAA;AAAA07E,A/BkRA,S+BlRA,8DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,mBAAAC,KAAA,yBAAA7P,UAAAkP,QAAA,WAAA,MAAA,YAAA,IAAAj7E,KAAAytE,QAAA,MAAA,MAAA,QAAAyN,QAAA,WAAA,MAAA,YAAA,IAAAl7E,KAAAytE,QAAA,MAAA,MAAA,QAAA0N,SAAA,WAAA,MAAA,YAAA,IAAAn7E,KAAAytE,QAAA,MAAA,MAAA,QAAA2N,QAAA,WAAA,MAAA,YAAA,IAAAp7E,KAAAytE,QAAA,MAAA,MAAA,QAAA4N,SAAA,WAAA,MAAA,wBAAA,IAAAr7E,KAAAytE,QAAA,MAAA,MAAA;A/BmRA,E+BnRA6N,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,QAAAhuD,EAAA,aAAAgM,EAAA,WAAAg0E,GAAA,YAAAr9E,EAAA,WAAAs9E,GAAA,WAAA9/E,EAAA,SAAA+/E,GAAA,UAAA3nE,EAAA,SAAA4nE,GAAA,WAAArxE,EAAA,SAAA23C,GAAA,WAAA6gC,aAAA,qBAAA1Y,QAAA,SAAAnvE,EAAAC,GAAA,GAAAO,GAAA,IAAAR,EAAA,IAAA,IAAAA,EAAA,IAAA,IAAAA,EAAA,IAAA,IAAAA,EAAA,IAAA,GAAA,QAAA,MAAAC,GAAA,MAAAA,KAAAO,EAAA,KAAAR,EAAAQ,GAAAiyE,MAAAgB,IAAA,EAAAC,IAAA,KAAA,oFAAApzE,MAAA,MAAA2sF,GAAA,kDAAA3sF,MAAA,KAAA4sF,IAAArD,GAAAH,aAAA,MAAAvZ,OAAA6c,GAAA5c,YAAA6c,GAAA5c,YAAA,SAAArwE,EAAAC,GAAA,GAAAO,GAAAE,IAAA,KAAAF,EAAA,EAAA,GAAAA,EAAAA,IAAAE,EAAAF,GAAA,GAAA0c,QAAA,IAAAld,EAAAQ,GAAA,MAAAP,EAAAO,GAAA,IAAA;AAAA,A/BoRA,M+BpRAE,IAAAssF,GAAAC,IAAAE,iBAAA,SAAAntF,GAAA,GAAAC,GAAAO,IAAA,KAAAP,EAAA,EAAA,GAAAA,EAAAA,IAAAO,EAAAP,GAAA,GAAAid,QAAA,IAAAld,EAAAC,GAAA,IAAA,IAAA,OAAAO,IAAAysF,IAAAG,gBAAA,SAAAptF,GAAA,GAAAC,GAAAO,IAAA,KAAAP,EAAA,EAAA,GAAAA,EAAAA,IAAAO,EAAAP,GAAA,GAAAid,QAAA,IAAAld,EAAAC,GAAA,IAAA,IAAA,OAAAO,IAAAwsF,IAAAhR,SAAA,mDAAA17E,MAAA,KAAA27E,cAAA,uBAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,cAAAC,QAAA,eAAAC,SAAA,WAAA,OAAAn7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,iBAAA,KAAA,GAAA,IAAA,GAAA,MAAA;AAAA,A/BqRA,I+BrRA,GAAA,MAAA,kBAAA,KAAA,GAAA,MAAA,mBAAA,KAAA,GAAA,MAAA,gBAAA,KAAA,GAAA,MAAA,oBAAAwS,QAAA,eAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,uBAAA,KAAA,GAAA,IAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,MAAA,uBAAA,KAAA,GAAA,IAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,MAAA,0BAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,UAAAhuD,EAAAyhB,GAAAzV,EAAAyV,GAAAu+D,GAAAv+D,GAAA9e,EAAA8e,GAAAw+D,GAAAx+D,GAAAthB,EAAAshB,GAAAy+D,GAAAz+D,GAAAlJ,EAAAkJ,GAAA0+D,GAAA1+D,GAAA3S,EAAA2S,GAAAglC,GAAAhlC,IAAA6lE,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,gEAAA7vE,MAAA;AAAA8vE,A/BsRA,Y+BtRA,kDAAA9vE,MAAA,KAAA07E,SAAA,oEAAA17E,MAAA,KAAA27E,cAAA,6BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,sCAAAC,IAAA,6CAAAC,KAAA,oDAAA7P,UAAAkP,QAAA,sBAAAC,QAAA,sBAAAE,QAAA,sBAAAD,SAAA,4BAAAE,SAAA,4BAAAC,SAAA,KAAAnH;AAAA8H,A/BuRA,O+BvRA,SAAAznF,GAAA,GAAAC,GAAA,UAAA6F,KAAA9F,GAAA,MAAA,QAAA8F,KAAA9F,GAAA,MAAA,KAAA,OAAAA,GAAAC,GAAAsuD,KAAA,YAAAhuD,EAAA,iBAAAgM,EAAA,YAAAg0E,GAAA,WAAAr9E,EAAA,YAAAs9E,GAAA,WAAA9/E,EAAA,UAAA+/E,GAAA,SAAA3nE,EAAA,WAAA4nE,GAAA,UAAArxE,EAAA,UAAA23C,GAAA,UAAA6gC,aAAA,cAAA1Y,QAAA,SAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,yFAAA7vE,MAAA,KAAA8vE,YAAA,qDAAA9vE,MAAA,KAAA07E,SAAA,+EAAA17E,MAAA,KAAA27E,cAAA,+BAAA37E,MAAA;AAAA47E,A/BwRA,Y+BxRA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,iBAAAC,QAAA,gBAAAC,SAAA,eAAAC,QAAA,eAAAC,SAAA,wBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,UAAAl5B,KAAA,WAAAhuD,EAAA,mBAAAgM,EAAA,QAAAg0E,GAAA,WAAAr9E,EAAA,MAAAs9E,GAAA,SAAA9/E,EAAA,UAAA+/E,GAAA,aAAA3nE,EAAA,MAAA4nE,GAAA,SAAArxE,EAAA,WAAA23C,GAAA,cAAA6gC,aAAA,mCAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAAQ,EAAA,GAAAE,GAAA,GAAA,KAAA,KAAA,MAAA,MAAA,KAAA,KAAA,KAAA,MAAA,MAAA,MAAA,KAAA,MAAA,KAAA,KAAA,MAAA,KAAA,KAAA,MAAA,KAAA;AAAA,A/ByRA,M+BzRAT,GAAA,GAAAO,EAAA,KAAAP,GAAA,KAAAA,GAAA,KAAAA,GAAA,KAAAA,GAAA,MAAAA,EAAA,MAAA,MAAAA,EAAA,IAAAO,EAAAE,EAAAT,IAAAD,EAAAQ,GAAAiyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,sFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,qDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,qBAAAC,KAAA,gCAAA7P,UAAAkP,QAAA,iBAAAC,QAAA;AAAAC,A/B0RA,S+B1RA,gBAAAC,QAAA,iBAAAC,SAAA,wBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,WAAAhuD,EAAA,cAAAgM,EAAA,WAAAg0E,GAAA,cAAAr9E,EAAA,UAAAs9E,GAAA,WAAA9/E,EAAA,SAAA+/E,GAAA,UAAA3nE,EAAA,WAAA4nE,GAAA,aAAArxE,EAAA,QAAA23C,GAAA,SAAA6gC,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,qFAAA7vE,MAAA,KAAA8vE,YAAA,+DAAA9vE,MAAA,KAAA07E,SAAA,8DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA;AAAA47E,A/B2RA,Y+B3RA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,qBAAAC,KAAA,4BAAA7P,UAAAkP,QAAA,sBAAAK,SAAA,IAAAJ,QAAA,uBAAAC,SAAA,qBAAAC,QAAA,wBAAAC,SAAA,gCAAAlH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,oBAAAgM,EAAA5E,GAAA44E,GAAA,aAAAr9E,EAAAyE,GAAA64E,GAAA,aAAA9/E,EAAAiH,GAAA84E,GAAA94E,GAAAmR,EAAAnR,GAAA+4E,GAAA/4E,GAAA0H,EAAA1H,GAAAq/C,GAAAr/C,IAAAkgF,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,qFAAA7vE,MAAA;AAAA8vE,A/B4RA,Y+B5RA,+DAAA9vE,MAAA,KAAA07E,SAAA,8DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,qBAAAC,KAAA,4BAAA7P,UAAAkP,QAAA,sBAAAK,SAAA,IAAAJ,QAAA,uBAAAC,SAAA,qBAAAC,QAAA,wBAAAC,SAAA,gCAAAlH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,oBAAAgM,EAAAk0E,GAAAF,GAAA;AAAAr9E,A/B6RA,E+B7RAu9E,GAAAD,GAAA,aAAA9/E,EAAA+/E,GAAAA,GAAAA,GAAA3nE,EAAA2nE,GAAAC,GAAAD,GAAApxE,EAAAoxE,GAAAz5B,GAAAy5B,IAAAoH,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,MAAA,WAAA,aAAA,SAAA,WAAA,KAAA,OAAA,SAAA,WAAA,eAAA,aAAA,aAAA,eAAAzF,IAAA,WAAA,OAAA,WAAA,OAAA,aAAA,SAAA,YAAAof,IAAAxD,GAAAH,aAAA,MAAAvZ,OAAA+c,GAAA9c,YAAA8c,GAAAlR,SAAA/N,GAAAgO,cAAAhO,GAAAiO,YAAA,qCAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,WAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA2C,cAAA,QAAA/V,KAAA,SAAAh0E,GAAA,MAAA,KAAAA,GAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO;AAAA,A/B8RA,M+B9RA,IAAAR,EAAA,KAAA,MAAAu3E,UAAAkP,QAAA,cAAAC,QAAA,cAAAC,SAAA,UAAAC,QAAA,cAAAC,SAAA,qBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,cAAAl5B,KAAA,YAAAhuD,EAAA,iBAAAgM,EAAA,WAAAg0E,GAAA,YAAAr9E,EAAA,aAAAs9E,GAAA,cAAA9/E,EAAA,WAAA+/E,GAAA,YAAA3nE,EAAA,SAAA4nE,GAAA,UAAArxE,EAAA,WAAA23C,GAAA,aAAA2tB,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,KAAA,MAAA23E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,KAAA,MAAA4xE,MAAAgB,IAAA,EAAAC,IAAA,MAAAmW,GAAAH,aAAA,MAAA4D,mBAAA,qHAAAhtF,MAAA,KAAAitF,iBAAA,qHAAAjtF,MAAA;AAAA6vE,A/B+RA,O+B/RA,SAAAnwE,EAAAC,GAAA,MAAA,IAAAiB,KAAAjB,EAAAqY,UAAA,EAAArY,EAAAuO,QAAA,UAAAhD,KAAAgiF,kBAAAxtF,EAAA8vE,SAAAtkE,KAAAiiF,oBAAAztF,EAAA8vE,UAAAM,YAAA,oDAAA9vE,MAAA,KAAA07E,SAAA,yDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAk8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAAR,GAAA,GAAAQ,EAAA,KAAA,KAAAA,EAAA,KAAA,MAAAwzE,KAAA,SAAAh0E,GAAA,MAAA,OAAAA,EAAA,IAAAe,cAAA,IAAAgpF,cAAA,gBAAAxa,gBAAA0X,GAAA,SAAAD,IAAA,YAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,qBAAAC,KAAA;A/BgSA,E+BhSAsG,YAAAjH,QAAA,iBAAAC,QAAA,gBAAAC,SAAA,eAAAC,QAAA,eAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,+BAAA,SAAA,MAAA,mCAAA0S,SAAA,KAAAvP,SAAA,SAAAv3E,EAAAC,GAAA,GAAAO,GAAAgL,KAAAmiF,YAAA3tF,GAAAU,EAAAT,GAAAA,EAAAg5E,OAAA,OAAAvpE,GAAAlP,KAAAA,EAAAA,EAAA6Q,MAAApR,IAAAO,EAAAK,QAAA,KAAAH,EAAA,KAAA,EAAA,MAAA,SAAAi/E,cAAA8H,OAAA,QAAAl5B,KAAA,UAAAhuD,EAAA,oBAAAgM,EAAA,YAAAg0E,GAAA,WAAAr9E,EAAA,UAAAs9E,GAAA,UAAA9/E,EAAA,WAAA+/E,GAAA,WAAA3nE,EAAA,aAAA4nE,GAAA,WAAArxE,EAAA,cAAA23C,GAAA,aAAA6gC,aAAA,WAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA;AAAAvZ,A/BiSA,O+BjSA,wFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,2DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,SAAAD,IAAA,YAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,qBAAAC,KAAA,4BAAA7P,UAAAkP,QAAA,gBAAAC,QAAA,mBAAAC,SAAA,eAAAC,QAAA,oBAAAC,SAAA,sBAAAC,SAAA,KAAAnH,cAAA8H,OAAA;AAAAl5B,A/BkSA,K+BlSA,SAAAhuD,EAAA,gBAAAgM,EAAA,WAAAg0E,GAAA,aAAAr9E,EAAA,UAAAs9E,GAAA,WAAA9/E,EAAA,QAAA+/E,GAAA,UAAA3nE,EAAA,UAAA4nE,GAAA,YAAArxE,EAAA,SAAA23C,GAAA,YAAA6gC,aAAA,uBAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAA,OAAAR,EAAA,IAAA,IAAA,KAAA,IAAAC,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAA,OAAAD,GAAAQ,GAAAiyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,wFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,2DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA;AAAAivE,A/BmSA,gB+BnSA0X,GAAA,SAAAD,IAAA,YAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,sBAAAC,KAAA,6BAAA7P,UAAAkP,QAAA,gBAAAC,QAAA,mBAAAC,SAAA,eAAAC,QAAA,oBAAAC,SAAA,sBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,gBAAAgM,EAAA,WAAAg0E,GAAA,aAAAr9E,EAAA,UAAAs9E,GAAA,WAAA9/E,EAAA,QAAA+/E,GAAA,UAAA3nE,EAAA,UAAA4nE,GAAA,YAAArxE,EAAA,SAAA23C,GAAA,YAAA6gC,aAAA,uBAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAA,OAAAR,EAAA,IAAA,IAAA,KAAA,IAAAC,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAA,OAAAD,GAAAQ,KAAAqpF,GAAAH,aAAA,SAAAvZ,OAAA,wFAAA7vE,MAAA;AAAA8vE,A/BoSA,Y+BpSA,kDAAA9vE,MAAA,KAAA07E,SAAA,2DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,gBAAAC,QAAA,mBAAAC,SAAA,eAAAC,QAAA,oBAAAC,SAAA,sBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,gBAAAgM,EAAA,WAAAg0E,GAAA,aAAAr9E,EAAA,UAAAs9E,GAAA,WAAA9/E,EAAA;AAAA+/E,A/BqSA,G+BrSA,UAAA3nE,EAAA,UAAA4nE,GAAA,YAAArxE,EAAA,SAAA23C,GAAA,YAAA6gC,aAAA,uBAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAA,OAAAR,EAAA,IAAA,IAAA,KAAA,IAAAC,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAA,OAAAD,GAAAQ,GAAAiyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,wFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,2DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA;AAAAquE,A/BsSA,G+BtSA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,gBAAAC,QAAA,mBAAAC,SAAA,eAAAC,QAAA,oBAAAC,SAAA,sBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,gBAAAgM,EAAA,WAAAg0E,GAAA,aAAAr9E,EAAA,UAAAs9E,GAAA,WAAA9/E,EAAA,QAAA+/E,GAAA,UAAA3nE,EAAA,UAAA4nE,GAAA,YAAArxE,EAAA,SAAA23C,GAAA,YAAA6gC,aAAA,uBAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAA,OAAAR,EAAA,IAAA,IAAA,KAAA,IAAAC,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAA,OAAAD,GAAAQ,GAAAiyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,wFAAA7vE,MAAA;AAAA8vE,A/BuSA,Y+BvSA,kDAAA9vE,MAAA,KAAA07E,SAAA,2DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,SAAAD,IAAA,YAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,qBAAAC,KAAA,4BAAA7P,UAAAkP,QAAA,gBAAAC,QAAA,mBAAAC,SAAA,eAAAC,QAAA,oBAAAC,SAAA,sBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,gBAAAgM,EAAA,WAAAg0E,GAAA,aAAAr9E,EAAA,UAAAs9E,GAAA,WAAA9/E,EAAA;AAAA+/E,A/BwSA,G+BxSA,UAAA3nE,EAAA,UAAA4nE,GAAA,YAAArxE,EAAA,SAAA23C,GAAA,YAAA6gC,aAAA,uBAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAA,OAAAR,EAAA,IAAA,IAAA,KAAA,IAAAC,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAAA,EAAA,KAAA,IAAA,OAAAD,GAAAQ,GAAAiyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,6FAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,qDAAA17E,MAAA,KACA27E,cAAA,gCAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA;AAAAquE,A/BwSA,G+BxSA,uBAAAC,IAAA,6BAAAC,KAAA,yCAAA2C,cAAA,cAAA/V,KAAA,SAAAh0E,GAAA,MAAA,MAAAA,EAAAgF,OAAA,GAAAjE,eAAAy7E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAAR,GAAA,GAAAQ,EAAA,SAAA,SAAAA,EAAA,SAAA,UAAA+2E,UAAAkP,QAAA,iBAAAC,QAAA,iBAAAC,SAAA,eAAAC,QAAA,iBAAAC,SAAA,yBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,WAAAhuD,EAAA,WAAAgM,EAAA,SAAAg0E,GAAA,aAAAr9E,EAAA,OAAAs9E,GAAA,WAAA9/E,EAAA,OAAA+/E,GAAA,WAAA3nE,EAAA,SAAA4nE,GAAA,aAAArxE,EAAA,OAAA23C,GAAA,YAAA6gC,aAAA,WAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAA,8DAAApzE,MAAA,MAAAiiB,GAAA,kDAAAjiB,MAAA,KAAAgtB,IAAAu8D,GAAAH,aAAA;AAAAvZ,A/BySA,O+BzSA,2FAAA7vE,MAAA,KAAA8vE,YAAA,SAAApwE,EAAAC,GAAA,MAAA,QAAAiB,KAAAjB,GAAAsiB,GAAAviB,EAAA8vE,SAAAud,GAAArtF,EAAA8vE,UAAAkM,SAAA,uDAAA17E,MAAA,KAAA27E,cAAA,qCAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,wBAAAC,IAAA,6BAAAC,KAAA,oCAAA7P,UAAAkP,QAAA,WAAA,MAAA,aAAA,IAAAj7E,KAAAytE,QAAA,IAAA,IAAA,QAAAyN,QAAA,WAAA,MAAA,gBAAA,IAAAl7E,KAAAytE,QAAA,IAAA,IAAA;A/B0SA,E+B1SA0N,SAAA,WAAA,MAAA,cAAA,IAAAn7E,KAAAytE,QAAA,IAAA,IAAA,QAAA2N,QAAA,WAAA,MAAA,cAAA,IAAAp7E,KAAAytE,QAAA,IAAA,IAAA,QAAA4N,SAAA,WAAA,MAAA,0BAAA,IAAAr7E,KAAAytE,QAAA,IAAA,IAAA,QAAA6N,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,UAAAhuD,EAAA,gBAAAgM,EAAA,YAAAg0E,GAAA,aAAAr9E,EAAA,WAAAs9E,GAAA,WAAA9/E,EAAA,SAAA+/E,GAAA,UAAA3nE,EAAA,SAAA4nE,GAAA,WAAArxE,EAAA,SAAA23C,GAAA,WAAA6gC,aAAA,WAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,6FAAA7vE,MAAA,KAAA8vE,YAAA,6DAAA9vE,MAAA;AAAA07E,A/B2SA,S+B3SA,iEAAA17E,MAAA,KAAA27E,cAAA,gBAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,aAAAC,QAAA,cAAAC,SAAA,qBAAAC,QAAA,aAAAC,SAAA,oBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,YAAAl5B,KAAA,YAAAhuD,EAAA2gF,GAAA30E,EAAA20E,GAAAX,GAAAW,GAAAh+E,EAAAg+E,GAAAV,GAAAU,GAAAxgF,EAAAwgF,GAAAT,GAAA,WAAA3nE,EAAAooE,GAAAR,GAAAQ,GAAA7xE,EAAA6xE,GAAAl6B,GAAAk6B,IAAA2G,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,+FAAA7vE,MAAA;AAAA8vE,A/B4SA,Y+B5SA,8DAAA9vE,MAAA,KAAA07E,SAAA,sEAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,0BAAAC,IAAA,gCAAAC,KAAA,sCAAAj/E,EAAA,WAAAylF,GAAA,oBAAAC,IAAA,0BAAAC,KAAA,gCAAAvW,UAAAkP,QAAA,kBAAAC,QAAA,mBAAAC,SAAA,gBAAAC,QAAA,kBAAAC,SAAA;AAAAC,A/B6SA,S+B7SA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,WAAAhuD,EAAA,iBAAAgM,EAAA,aAAAg0E,GAAA,YAAAr9E,EAAA,WAAAs9E,GAAA,UAAA9/E,EAAA,WAAA+/E,GAAA,UAAA3nE,EAAA,eAAA4nE,GAAA,cAAArxE,EAAA,WAAA23C,GAAA,WAAA6gC,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,MAAAxyB,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA,IAAAC,EAAA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAA6vD,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAnN,IAAAuI,GAAAH,aAAA,MAAAvZ,OAAA,wEAAA7vE,MAAA,KAAA8vE,YAAA,wEAAA9vE,MAAA,KAAA07E,SAAA,qDAAA17E,MAAA;AAAA27E,A/B8SA,c+B9SA,qDAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA2C,cAAA,wBAAA/V,KAAA,SAAAh0E,GAAA,MAAA,aAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,aAAA,cAAAu3E,UAAAkP,QAAA,kBAAAC,QAAA,iBAAAC,SAAA,iBAAAC,QAAA,kBAAAC,SAAA,uBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,cAAAgM,EAAA,WAAAg0E,GAAA,WAAAr9E,EAAA,UAAAs9E,GAAA,UAAA9/E,EAAA;AAAA+/E,A/B+SA,G+B/SA,SAAA3nE,EAAA,SAAA4nE,GAAA,SAAArxE,EAAA,SAAA23C,GAAA,UAAA2tB,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,SAAA,SAAAb,GAAA,MAAA+tF,IAAA/tF,KAAAa,QAAA,KAAA,MAAA23E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAAstB,IAAAttB,KAAAa,QAAA,KAAA,MAAAgnF,aAAA,WAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,MAAA,wEAAApzE,MAAA,MAAA+gF,IAAA,QAAA,QAAA,SAAA,SAAA,SAAA,SAAA,SAAAC,GAAA,GAAAA,GAAA,GAAAA,GAAA,IAAA3N,IAAAkW,GAAAH,aAAA,MAAAvZ,OAAA,2GAAA7vE,MAAA,KAAA8vE,YAAA,uEAAA9vE,MAAA;AAAA07E,A/BgTA,S+BhTA,qEAAA17E,MAAA,KAAA27E,cAAA,uBAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,mBAAAC,IAAA,gCAAAC,KAAA,sCAAAj/E,EAAA,WAAAylF,GAAA,cAAAC,IAAA,2BAAAC,KAAA,iCAAAvW,UAAAkP,QAAA,oBAAAC,QAAA,sBAAAC,SAAA,gBAAAC,QAAA,mBAAAC,SAAA,4BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,YAAAl5B,KAAA,YAAAhuD,EAAA4gF,GAAA50E,EAAA40E;AAAAZ,A/BiTA,G+BjTAY,GAAAj+E,EAAAi+E,GAAAX,GAAAW,GAAAzgF,EAAAygF,GAAAV,GAAAU,GAAAroE,EAAAqoE,GAAAT,GAAAS,GAAA9xE,EAAA8xE,GAAAn6B,GAAAm6B,IAAA0G,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,qFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,4EAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,4BAAA7P,UAAAkP,QAAA;AAAAC,A/BkTA,Q+BlTA,oBAAAC,SAAA,gBAAAC,QAAA,kBAAAC,SAAA,wBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,YAAAhuD,EAAA,YAAAgM,EAAA,aAAAg0E,GAAA,cAAAr9E,EAAA,WAAAs9E,GAAA,WAAA9/E,EAAA,YAAA+/E,GAAA,WAAA3nE,EAAA,aAAA4nE,GAAA,aAAArxE,EAAA,UAAA23C,GAAA,SAAA6gC,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,uFAAA7vE,MAAA,KAAA8vE,YAAA,iEAAA9vE,MAAA,KAAA07E,SAAA,sDAAA17E,MAAA;AAAA27E,A/BmTA,c+BnTA,qCAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,qBAAAC,QAAA,gBAAAC,SAAA,cAAAC,QAAA,cAAAC,SAAA,sBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,UAAAl5B,KAAA,YAAAhuD,EAAA,oBAAAgM,EAAA,aAAAg0E,GAAA,aAAAr9E,EAAA,YAAAs9E,GAAA,YAAA9/E,EAAA,UAAA+/E,GAAA,WAAA3nE,EAAA,UAAA4nE,GAAA,UAAArxE,EAAA,QAAA23C,GAAA,UAAA6gC,aAAA,gBAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,IAAA,IAAAA,EAAA,KAAA;A/BoTA,I+BpTA6pF,GAAAH,aAAA,SAAAvZ,OAAA,uFAAA7vE,MAAA,KAAA8vE,YAAA,iEAAA9vE,MAAA,KAAA07E,SAAA,sDAAA17E,MAAA,KAAA27E,cAAA,qCAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,qBAAAC,QAAA,gBAAAC,SAAA,cAAAC,QAAA,cAAAC,SAAA;AAAAC,A/BqTA,S+BrTA,KAAAnH,cAAA8H,OAAA,UAAAl5B,KAAA,YAAAhuD,EAAA,oBAAAgM,EAAA,aAAAg0E,GAAA,aAAAr9E,EAAA,YAAAs9E,GAAA,YAAA9/E,EAAA,UAAA+/E,GAAA,WAAA3nE,EAAA,UAAA4nE,GAAA,UAAArxE,EAAA,QAAA23C,GAAA,UAAA6gC,aAAA,gBAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,IAAA,IAAAA,EAAA,KAAA,MAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,uFAAA7vE,MAAA,KAAA8vE,YAAA,iEAAA9vE,MAAA,KAAA07E,SAAA,sDAAA17E,MAAA,KAAA27E,cAAA,qCAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA;AAAAivE,A/BsTA,gB+BtTA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,qBAAAC,QAAA,gBAAAC,SAAA,cAAAC,QAAA,cAAAC,SAAA,sBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,UAAAl5B,KAAA,YAAAhuD,EAAA,oBAAAgM,EAAA,aAAAg0E,GAAA,aAAAr9E,EAAA,YAAAs9E,GAAA,YAAA9/E,EAAA,UAAA+/E,GAAA,WAAA3nE,EAAA,UAAA4nE,GAAA,UAAArxE,EAAA,QAAA23C,GAAA,UAAA6gC,aAAA,eAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,IAAA,IAAAA,EAAA,KAAA,KAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAA,6DAAApzE,MAAA,MAAAouF,GAAA,kDAAApuF,MAAA,KAAAquF,IAAA9E,GAAAH,aAAA;AAAAvZ,A/BuTA,O+BvTA,iGAAA7vE,MAAA,KAAA8vE,YAAA,SAAApwE,EAAAC,GAAA,MAAA,QAAAiB,KAAAjB,GAAAyuF,GAAA1uF,EAAA8vE,SAAA6D,GAAA3zE,EAAA8vE,UAAAkM,SAAA,wDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,gBAAAC,QAAA,gBAAAC,SAAA,eAAAC,QAAA,iBAAAC,SAAA,wBAAAC,SAAA,KAAAnH,cAAA8H,OAAA;AAAAl5B,A/BwTA,K+BxTA,SAAAhuD,EAAA,mBAAAgM,EAAA,YAAAg0E,GAAA,aAAAr9E,EAAA,WAAAs9E,GAAA,WAAA9/E,EAAA,UAAA+/E,GAAA,WAAA3nE,EAAA,aAAA4nE,GAAA,aAAArxE,EAAA,WAAA23C,GAAA,cAAA6gC,aAAA,kBAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,IAAA,IAAAA,GAAA,IAAAA,GAAAA,GAAA,GAAA,MAAA,OAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,MAAA,gBAAA,aAAA,UAAA,aAAA,aAAA,eAAA,cAAA,cAAA,eAAA,aAAA,eAAA,iBAAAkb,IAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,MAAA,OAAA,OAAA,OAAA,QAAAC,IAAA,cAAA,UAAA,UAAA,YAAA,YAAA,WAAA,eAAAC,IAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,OAAAC,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAAC,IAAAnF,GAAAH,aAAA;AAAAvZ,A/ByTA,O+BzTAwe,GAAAve,YAAAwe,GAAAK,kBAAA,EAAAjT,SAAA6S,GAAA5S,cAAA6S,GAAA5S,YAAA6S,GAAAxf,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,oBAAAC,QAAA,sBAAAC,SAAA,gBAAAC,QAAA,iBAAAC,SAAA,6BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,YAAAl5B,KAAA,gBAAAhuD,EAAA,gBAAAgM,EAAA,UAAAg0E,GAAA,gBAAAr9E,EAAA,OAAAs9E,GAAA,aAAA9/E,EAAA,QAAA+/E,GAAA,WAAA3nE,EAAA,OAAA4nE,GAAA,YAAArxE,EAAA,WAAA23C,GAAA,eAAA6gC,aAAA,mBAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAA,IAAAD,EAAA,IAAAA,EAAA,KAAA,EAAA,KAAA;AAAA,A/B0TA,M+B1TAA,GAAAC,GAAAwyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,yFAAA7vE,MAAA,KAAA8vE,YAAA,8DAAA9vE,MAAA,KAAA07E,SAAA,mDAAA17E,MAAA,KAAA27E,cAAA,qCAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,mBAAAC,KAAA,yBAAA7P,UAAAkP,QAAA,WAAA,MAAA,UAAA,IAAAj7E,KAAAytE,QAAA,KAAA,KAAA,QAAAyN,QAAA,WAAA,MAAA,UAAA,IAAAl7E,KAAAytE,QAAA,KAAA,KAAA;A/B2TA,E+B3TA0N,SAAA,WAAA,MAAA,UAAA,IAAAn7E,KAAAytE,QAAA,KAAA,KAAA,QAAA2N,QAAA,WAAA,MAAA,UAAA,IAAAp7E,KAAAytE,QAAA,IAAA,KAAA,QAAA4N,SAAA,WAAA,MAAA,qBAAA,IAAAr7E,KAAAytE,QAAA,KAAA,KAAA,QAAA6N,SAAA,KAAAnH,cAAA8H,OAAA,SAAAznF,GAAA,MAAA,iBAAAA,EAAA,gBAAA,MAAAA,GAAAuuD,KAAA,SAAAhuD,EAAA,eAAAgM,EAAA,YAAAg0E,GAAA,aAAAr9E,EAAA,YAAAs9E,GAAA,WAAA9/E,EAAA,SAAA+/E,GAAA,UAAA3nE,EAAA,SAAA4nE,GAAA,WAAArxE,EAAA,SAAA23C,GAAA,WAAA6gC,aAAA,WAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,0EAAA7vE,MAAA,KAAA8vE,YAAA,4DAAA9vE,MAAA;AAAA07E,A/B4TA,S+B5TA,uCAAA17E,MAAA,KAAA27E,cAAA,uBAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,iBAAAC,IAAA,uBAAAC,KAAA,6BAAAj/E,EAAA,WAAAylF,GAAA,aAAAC,IAAA,mBAAAC,KAAA,yBAAAvW,UAAAkP,QAAA,cAAAC,QAAA,aAAAC,SAAA,iBAAAC,QAAA,eAAAC,SAAA,+BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,UAAAl5B,KAAA,UAAAhuD,EAAA,aAAAgM,EAAA,MAAAg0E,GAAA,UAAAr9E,EAAA,MAAAs9E,GAAA,SAAAxgF,GAAA,MAAA,KAAAA,EAAA,SAAAA,EAAA,SAAAU,EAAA;AAAA+/E,A/B6TA,G+B7TA,SAAAzgF,GAAA,MAAA,KAAAA,EAAA,SAAAA,EAAA,SAAA8Y,EAAA,OAAA4nE,GAAA,SAAA1gF,GAAA,MAAA,KAAAA,EAAA,UAAAA,EAAA,WAAAqP,EAAA,MAAA23C,GAAA,SAAAhnD,GAAA,MAAA,KAAAA,EAAA,SAAAA,EAAA,KAAA,GAAA,KAAAA,EAAAA,EAAA,OAAAA,EAAA,aAAAkhD,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA,IAAAC,EAAA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAAgxD,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAnO,IAAAoI,GAAAH,aAAA,MAAAvZ,OAAA,8EAAA7vE,MAAA,KAAA8vE,YAAA,6DAAA9vE,MAAA,KAAA07E,SAAA,uDAAA17E,MAAA,KAAA27E,cAAA,kCAAA37E,MAAA;AAAA47E,A/B8TA,Y+B9TA,qBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,aAAAD,IAAA,gBAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,0BAAAC,KAAA,iCAAA7P,UAAAkP,QAAA,UAAAC,QAAA,UAAAC,SAAA,WAAAC,QAAA,UAAAC,SAAA,mBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,UAAAhuD,EAAA,cAAAgM,EAAA,UAAAg0E,GAAA,UAAAr9E,EAAA,UAAAs9E,GAAA,UAAA9/E,EAAA,SAAA+/E,GAAA,SAAA3nE,EAAA,WAAA4nE,GAAA,WAAArxE,EAAA,UAAA23C,GAAA,WAAA2tB,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,gBAAA,SAAAb,GAAA,MAAAkvF,IAAAlvF,MAAAw4E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAAgvF,IAAAhvF,MAAA+pF,cAAA;AAAAhW,A/B+TA,a+B/TA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,QAAAC,EAAA,EAAAD,EAAAA,EAAAA,EAAA,GAAA,SAAAC,EAAAD,EAAA,UAAAC,EAAAD,GAAA,GAAAA,EAAAA,EAAA,GAAA,QAAAC,EAAAD,EAAA,GAAA,QAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,MAAA,GAAAA,EAAA,OAAA,GAAAA,EAAA,QAAA,GAAAA,EAAA,MAAA,OAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,QAAAnpC,OAAA,oGAAA1mC,MAAA,KAAAkrF,WAAA,gGAAAlrF,MAAA,MAAA8vE,YAAA,+DAAA9vE,MAAA,KAAA07E,SAAA,4DAAA17E,MAAA;AAAA27E,A/BgUA,c+BhUA,qCAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,eAAAquE,GAAA,eAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,eAAAC,QAAA,eAAAC,SAAA,WAAA,OAAAn7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,uBAAA,KAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,MAAA,qBAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,oBAAAwS,QAAA,eAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,IAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,MAAA,0BAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA;AAAA,A/BiUA,M+BjUA,yBAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,WAAAhuD,EAAA,cAAAgM,EAAAg1E,GAAAhB,GAAAgB,GAAAr+E,EAAAq+E,GAAAf,GAAAe,GAAA7gF,EAAA,MAAA+/E,GAAAc,GAAAzoE,EAAA,SAAA4nE,GAAAa,GAAAlyE,EAAA,SAAA23C,GAAAu6B,IAAAsG,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAA,gEAAApzE,MAAA,MAAAuvF,IAAAhG,GAAAH,aAAA,MAAAvZ,OAAA,oGAAA7vE,MAAA,KAAA8vE,YAAA,qDAAA9vE,MAAA,KAAA07E,SAAA,sDAAA17E,MAAA,KAAA27E,cAAA,gCAAA37E,MAAA,KAAA47E,YAAA,qBAAA57E,MAAA;AAAAivE,A/BkUA,gB+BlUA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,cAAAquE,GAAA,gBAAAC,IAAA,qBAAAC,KAAA,4BAAA2C,cAAA,SAAA/V,KAAA,SAAAh0E,GAAA,MAAA,MAAAA,EAAAgF,OAAA,GAAAjE,eAAAy7E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAAQ,KAAA,EAAA,KAAA,KAAAA,KAAA,EAAA,KAAA,MAAA+2E,UAAAkP,QAAA,gBAAAC,QAAA,oBAAAC,SAAA,WAAA,MAAAnF,IAAAx/E,KAAAwJ,MAAA,IAAAo7E,QAAA,oBAAAC,SAAA,WAAA,MAAArF,IAAAx/E,KAAAwJ,MAAA,IAAAs7E,SAAA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,KAAAhuD,EAAAiQ,GAAAjE,EAAAiE,GAAA+vE,GAAA/vE,GAAAtN,EAAAsN,GAAAgwE,GAAAhwE,GAAA9P,EAAA8P,GAAAiwE,GAAAjwE,GAAAsI,EAAAtI,GAAAkwE,GAAAlwE,GAAAnB,EAAAmB,GAAAw2C,GAAAx2C,IAAAq3E,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ;AAAAnpC,A/BmUA,O+BnUA,4GAAA1mC,MAAA,KAAAkrF,WAAA,gGAAAlrF,MAAA,MAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,gEAAA17E,MAAA,KAAA27E,cAAA,+BAAA37E,MAAA,KAAA47E,YAAA,+BAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,iBAAAC,IAAA,wBAAAC,KAAA,+BAAA7P,UAAAkP,QAAA;AAAAC,A/BoUA,Q+BpUA,YAAAE,QAAA,YAAAD,SAAA,WAAA,MAAA,sBAAAE,SAAA,WAAA,MAAA,8BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,UAAAl5B,KAAA,UAAAhuD,EAAA,mBAAAgM,EAAA,OAAAg0E,GAAA,UAAAr9E,EAAA,MAAAs9E,GAAA,SAAA9/E,EAAA,KAAA+/E,GAAA,QAAA3nE,EAAA,OAAA4nE,GAAA,UAAArxE,EAAA,OAAA23C,GAAA,WAAA+iC,cAAA,oCAAA/V,KAAA,SAAAh0E,GAAA,MAAA,uBAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,GAAA,MAAA,GAAAA,EAAA,UAAA,GAAAA,EAAA,WAAA,GAAAA,EAAA,UAAA,YAAA6nF,aAAA,0BAAA1Y,QAAA,SAAAnvE,EAAAC,GAAA,OAAAA,GAAA,IAAA,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,OAAA,MAAA,KAAAD,EAAAA,EAAA,MAAAA,EAAA,KAAA,SAAA,MAAAA;A/BqUA,G+BrUAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,yFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,6CAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,4BAAAC,KAAA,mCAAA2C,cAAA,wBAAAhW,aAAA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,SAAAC,EAAAD,EAAA,UAAAC,EAAAD,GAAA,GAAAA,EAAAA,EAAA,GAAA,SAAAC,GAAA,UAAAA,EAAAD,EAAA,GAAA;A/BsUA,E+BtUAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,OAAA,GAAAA,EAAA,QAAA,GAAAA,EAAA,OAAA,SAAAu3E,UAAAkP,QAAA,sBAAAC,QAAA,mBAAAC,SAAA,kBAAAC,QAAA,qBAAAC,SAAA,uBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,eAAAhuD,EAAA,iBAAAgM,EAAA,UAAAg0E,GAAA,WAAAr9E,EAAA,QAAAs9E,GAAA,SAAA9/E,EAAA,SAAA+/E,GAAA,UAAA3nE,EAAA,UAAA4nE,GAAA,WAAArxE,EAAA,UAAA23C,GAAA,YAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,oFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,mFAAA17E,MAAA;AAAA27E,A/BuUA,c+BvUA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,0BAAAC,KAAA,iCAAA7P,UAAAkP,QAAA,iBAAAC,QAAA,oBAAAC,SAAA,gBAAAC,QAAA,iBAAAC,SAAA,0BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,iBAAAhuD,EAAAohF,GAAAp1E,EAAAo1E,GAAApB,GAAAoB,GAAAz+E,EAAA,cAAAs9E,GAAAmB,GAAAjhF,EAAAihF,GAAAlB,GAAAkB,GAAA7oE,EAAA6oE,GAAAjB,GAAAiB,GAAAtyE,EAAAsyE,GAAA36B,GAAA26B,IAAAkG,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,gGAAA7vE,MAAA;AAAA8vE,A/BwUA,Y+BxUA,kDAAA9vE,MAAA,KAAA07E,SAAA,2DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,iBAAAC,QAAA,mBAAAC,SAAA,iBAAAC,QAAA,iBAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,4BAAA,SAAA,MAAA,+BAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,SAAAznF;AAAA,A/ByUA,O+BzUA,YAAAkB,KAAAlB,GAAA,MAAA,MAAA,IAAAA,GAAAuuD,KAAA,QAAAhuD,EAAA,iBAAAgM,EAAA,YAAAg0E,GAAA,YAAAr9E,EAAA,SAAAs9E,GAAA,SAAA9/E,EAAA,YAAA+/E,GAAA,YAAA3nE,EAAA,UAAA4nE,GAAA,UAAArxE,EAAA,UAAA23C,GAAA,WAAA6gC,aAAA,WAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,yCAAA7vE,MAAA,KAAA8vE,YAAA,yCAAA9vE,MAAA,KAAA07E,SAAA,8BAAA17E,MAAA,KAAA27E,cAAA,gBAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,YAAAC,IAAA,iBAAAC,KAAA,uBAAA2C,cAAA;AAAA/V,A/B0UA,K+B1UA,SAAAh0E,GAAA,MAAA,OAAAA,GAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,KAAA,MAAAu3E,UAAAkP,QAAA,UAAAC,QAAA,UAAAC,SAAA,cAAAC,QAAA,UAAAC,SAAA,cAAAC,SAAA,KAAAnH,cAAA8H,OAAA,MAAAl5B,KAAA,MAAAhuD,EAAA,KAAAgM,EAAA,KAAAg0E,GAAA,MAAAr9E,EAAA,MAAAs9E,GAAA,OAAA9/E,EAAA,KAAA+/E,GAAA,MAAA3nE,EAAA,MAAA4nE,GAAA,OAAArxE,EAAA,KAAA23C,GAAA,SAAA6iC,GAAAH,aAAA,MAAAvZ,OAAA,yFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,+CAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA;AAAAivE,A/B2UA,gB+B3UA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,4BAAAC,KAAA,mCAAA2C,cAAA,6BAAAhW,aAAA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,WAAAC,EAAAD,EAAA,WAAAC,EAAAD,GAAA,GAAAA,EAAAA,EAAA,GAAA,WAAAC,GAAA,UAAAA,EAAAD,EAAA,GAAA,QAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,SAAA,GAAAA,EAAA,SAAA,GAAAA,EAAA,SAAA,SAAAu3E,UAAAkP,QAAA,2BAAAC,QAAA,sBAAAC,SAAA,kBAAAC,QAAA,wBAAAC,SAAA,4BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,gBAAAl5B,KAAA,uBAAAhuD,EAAA;AAAAgM,A/B4UA,E+B5UA,kBAAAg0E,GAAA,WAAAr9E,EAAA,gBAAAs9E,GAAA,SAAA9/E,EAAA,WAAA+/E,GAAA,YAAA3nE,EAAA,UAAA4nE,GAAA,WAAArxE,EAAA,SAAA23C,GAAA,WAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,QAAAqb,WAAA,qGAAAlrF,MAAA,KAAA0mC,OAAA,sGAAA1mC,MAAA,MAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,UAAAwP,WAAA,gEAAAlrF,MAAA,KAAA0mC,OAAA,iEAAA1mC,MAAA;AAAAg7E,A/B6UA,S+B7UA,iBAAAW,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,SAAAD,IAAA,YAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,qBAAAC,KAAA,4BAAA7P,UAAAkP,QAAA,iBAAAC,QAAA,iBAAAE,QAAA,kBAAAD,SAAA,wBAAAE,SAAA,oBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAznF,GAAA,MAAA,yBAAAkB,KAAAlB,GAAAA,EAAAa,QAAA,KAAA,MAAAb,EAAA,MAAAuuD,KAAA,SAAAvuD,GAAA,MAAA,4BAAAkB,KAAAlB,GAAAA,EAAAa,QAAA,SAAA,UAAA,OAAAK,KAAAlB,GAAAA,EAAAa,QAAA,QAAA,YAAA,QAAAN,EAAA;AAAAgM,A/B8UA,E+B9UA,OAAAg0E,GAAA,UAAAr9E,EAAA,QAAAs9E,GAAA,WAAA9/E,EAAA,MAAA+/E,GAAA,SAAA3nE,EAAA,MAAA4nE,GAAA,SAAArxE,EAAA,OAAA23C,GAAA,WAAA6gC,aAAA,8BAAA1Y,QAAA,SAAAnvE,GAAA,MAAA,KAAAA,EAAAA,EAAA,IAAAA,EAAAA,EAAA,MAAA,GAAAA,GAAA,KAAAA,GAAAA,EAAA,KAAA,GAAAA,EAAA,MAAA,EAAA,MAAAA,EAAAA,EAAA,MAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,MAAAx1C,EAAA,MAAAgjB,EAAA,MAAAC,EAAA,MAAAC,EAAA,MAAAC,EAAA,MAAAiI,EAAA,MAAAmC,EAAA,MAAAC,EAAA,MAAAN,EAAA,MAAAC,EAAA,MAAAW,GAAA,MAAApC,GAAA,MAAAiC,GAAA,MAAAvB,GAAA,MAAAmC,GAAA,MAAA4+B,GAAA,MAAAH,GAAA,MAAAC,GAAA,MAAAG,GAAA,MAAAF,IAAA,QAAAjJ,IAAA0H,GAAAH,aAAA,MAAAvZ,OAAA,qFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,0DAAA17E,MAAA;AAAA27E,A/B+UA,c+B/UA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,mBAAAC,QAAA,mBAAAC,SAAA,kBAAAC,QAAA,kBAAAC,SAAA,kCAAAC,SAAA,KAAAnH,cAAA8H,OAAA,YAAAl5B,KAAA,WAAAhuD,EAAA,iBAAAgM,EAAA,YAAAg0E,GAAA,WAAAr9E,EAAA,YAAAs9E,GAAA,WAAA9/E,EAAA,UAAA+/E,GAAA,SAAA3nE,EAAA,SAAA4nE,GAAA,QAAArxE,EAAA,UAAA23C,GAAA,UAAA6gC,aAAA,kBAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAAR,GAAA,IAAA,IAAA;AAAA,A/BgVA,M+BhVAA,IAAA6vF,GAAA7vF,IAAA6vF,GAAA5vF,IAAA4vF,GAAArvF,KAAAiyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,yEAAA7vE,MAAA,KAAA8vE,YAAA,yEAAA9vE,MAAA,KAAA07E,SAAA,iDAAA17E,MAAA,KAAA27E,cAAA,iDAAA37E,MAAA,KAAA47E,YAAA,iDAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,oBAAAC,QAAA;AAAAC,A/BiVA,S+BjVA,iBAAAC,QAAA,qBAAAC,SAAA,8BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,QAAAhuD,EAAA,iBAAAgM,EAAA,UAAAg0E,GAAA,UAAAr9E,EAAA,UAAAs9E,GAAA,UAAA9/E,EAAA,UAAA+/E,GAAA,UAAA3nE,EAAA,QAAA4nE,GAAA,QAAArxE,EAAA,WAAA23C,GAAA,YAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,yCAAA7vE,MAAA,KAAA8vE,YAAA,yCAAA9vE,MAAA,KAAA07E,SAAA,8BAAA17E,MAAA,KAAA27E,cAAA,gBAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,UAAAD,IAAA,aAAAnuE,EAAA,aAAAquE,GAAA;AAAAC,A/BkVA,I+BlVA,wBAAAC,KAAA,8BAAA7P,UAAAkP,QAAA,QAAAC,QAAA,QAAAC,SAAA,UAAAC,QAAA,QAAAC,SAAA,cAAAC,SAAA,KAAAnH,cAAA8H,OAAA,OAAAl5B,KAAA,OAAAhuD,EAAA,KAAAuvF,GAAA,MAAAvjF,EAAA,KAAAg0E,GAAA,MAAAr9E,EAAA,MAAAs9E,GAAA,OAAA9/E,EAAA,KAAA+/E,GAAA,MAAA3nE,EAAA,KAAA4nE,GAAA,MAAArxE,EAAA,KAAA23C,GAAA,OAAA6gC,aAAA,WAAA1Y,QAAA,MAAA4a,cAAA,QAAA/V,KAAA,SAAAh0E,GAAA,MAAA,OAAAA,GAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,KAAA,QAAA6pF,GAAAH,aAAA,MAAAvZ,OAAA,uFAAA7vE,MAAA,KAAA8vE,YAAA,+DAAA9vE,MAAA;AAAA07E,A/BmVA,S+BnVA,mEAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,cAAAD,IAAA,iBAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,2BAAAC,KAAA,kCAAA7P,UAAAkP,QAAA,eAAAK,SAAA,IAAAJ,QAAA,eAAAC,SAAA,eAAAC,QAAA,mBAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,IAAA,GAAA,MAAA,yBAAA,SAAA,MAAA,4BAAAuL,cAAA8H,OAAA5F,GAAAtzB,KAAAwzB,GAAAxhF,EAAA,kBAAAgM,EAAAq1E,GAAArB,GAAA,cAAAr9E,EAAA0+E;AAAApB,A/BoVA,G+BpVA,aAAA9/E,EAAAkhF,GAAAnB,GAAA,UAAA3nE,EAAA8oE,GAAAlB,GAAA,WAAArxE,EAAAuyE,GAAA56B,GAAA,WAAA6gC,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,6EAAA7vE,MAAA,KAAA8vE,YAAA,6EAAA9vE,MAAA,KAAA07E,SAAA,sCAAA17E,MAAA,KAAA27E,cAAA,oCAAA37E,MAAA,KAAA47E,YAAA,mBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,6BAAA2C,cAAA;AAAA/V,A/BqVA,K+BrVA,SAAAh0E,GAAA,MAAA,WAAAA,GAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,WAAA,UAAAu3E,UAAAkP,QAAA,kBAAAC,QAAA,mBAAAC,SAAA,wBAAAC,QAAA,qBAAAC,SAAA,4BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,WAAAhuD,EAAA,mBAAAgM,EAAA,SAAAg0E,GAAA,UAAAr9E,EAAA,YAAAs9E,GAAA,aAAA9/E,EAAA,QAAA+/E,GAAA,SAAA3nE,EAAA,UAAA4nE,GAAA,WAAArxE,EAAA,OAAA23C,GAAA,SAAA6gC,aAAA,eAAA1Y,QAAA,SAAAnvE,GACA,MAAA,MAAAA,MAAAuM,EAAA,wBAAAg0E,GAAA,0BAAAr9E,EAAA,2BAAAs9E,GAAA,4BAAA9/E,EAAA,qBAAA+/E,GAAA;AAAA3nE,A/BqVA,E+BrVA,uBAAA4nE,GAAA,4BAAArxE,EAAA,mBAAA23C,GAAA,qBAAAu7B,IAAAsH,GAAAH,aAAA,MAAAvZ,QAAAnpC,OAAA,oGAAA1mC,MAAA,KAAAkrF,WAAA,kGAAAlrF,MAAA,MAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,UAAAh1C,OAAA,oFAAA1mC,MAAA,KAAAkrF,WAAA,2FAAAlrF,MAAA;AAAAg7E,A/BsVA,S+BtVA,cAAAW,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,iBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,wBAAAC,IAAA,sCAAAC,KAAA,4CAAAj/E,EAAA,aAAAylF,GAAA,wBAAAC,IAAA,sCAAAC,KAAA,4CAAAvW,UAAAkP,QAAA,gBAAAC,QAAA,aAAAC,SAAA,UAAAC,QAAA,aAAAC,SAAA,qBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,WAAAhuD,EAAAyhF,GAAAz1E,EAAA01E,GAAA1B,GAAA6B,GAAAl/E,EAAA++E,GAAAzB,GAAA4B,GAAA1hF,EAAAuhF,GAAAxB,GAAA2B,GAAAtpE,EAAAmpE,GAAAvB,GAAA0B,GAAA/yE,EAAA4yE,GAAAj7B,GAAAo7B;A/BuVA,E+BvVAyF,aAAA,cAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,GAAA,QAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,MAAAnnE,EAAA,iCAAAjM,MAAA,KAAAigF,GAAA,iCAAAjgF,MAAA,KAAA4C,EAAA,iCAAA5C,MAAA,KAAAkgF,GAAA,iCAAAlgF,MAAA,KAAAI,EAAA,6BAAAJ,MAAA,KAAAmgF,GAAA,6BAAAngF,MAAA,KAAAwY,EAAA,iCAAAxY,MAAA,KAAAogF,GAAA,iCAAApgF,MAAA,KAAA+O,EAAA,wBAAA/O,MAAA,KAAA0mD,GAAA,wBAAA1mD,MAAA,OAAAyvF,IAAAlG,GAAAH,aAAA,MAAAvZ,OAAA,uGAAA7vE,MAAA;AAAA8vE,A/BwVA,Y+BxVA,kDAAA9vE,MAAA,KAAA07E,SAAA,0EAAA17E,MAAA,KAAA27E,cAAA,kBAAA37E,MAAA,KAAA47E,YAAA,kBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,cAAAquE,GAAA,uBAAAC,IAAA,8BAAAC,KAAA,qCAAA7P,UAAAkP,QAAA,uBAAAC,QAAA,oBAAAC,SAAA,qBAAAC,QAAA,sBAAAC,SAAA,gCAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,WAAAhuD,EAAAkiF,GAAAl2E,EAAAi2E,GAAAjC,GAAA+B,GAAAp/E,EAAAs/E,GAAAhC,GAAA8B;AAAA5hF,A/ByVA,E+BzVA8hF,GAAA/B,GAAA6B,GAAAxpE,EAAA0pE,GAAA9B,GAAA4B,GAAAjzE,EAAAmzE,GAAAx7B,GAAAs7B,IAAAuF,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,MAAAsc,OAAAzjF,GAAA,cAAA,iBAAAg0E,IAAA,QAAA,SAAA,UAAAr9E,GAAA,YAAA,eAAAs9E,IAAA,MAAA,OAAA,QAAAC,IAAA,MAAA,OAAA,QAAAC,IAAA,SAAA,UAAA,WAAA15B,IAAA,SAAA,SAAA,WAAAipC,uBAAA,SAAAjwF,EAAAC,GAAA,MAAA,KAAAD,EAAAC,EAAA,GAAAD,GAAA,GAAA,GAAAA,EAAAC,EAAA,GAAAA,EAAA,IAAAiwF,UAAA,SAAAlwF,EAAAC,EAAAO,GAAA,GAAAE,GAAAqvF,GAAAC,MAAAxvF,EAAA,OAAA,KAAAA,EAAAgC,OAAAvC,EAAAS,EAAA,GAAAA,EAAA,GAAAV,EAAA,IAAA+vF,GAAAE,uBAAAjwF,EAAAU,MAAAyvF,IAAAtG,GAAAH,aAAA,MAAAvZ,QAAA,SAAA,UAAA,OAAA,QAAA,MAAA,MAAA,MAAA,SAAA,YAAA,UAAA,WAAA,YAAAC,aAAA,OAAA,OAAA,OAAA,OAAA,MAAA,MAAA,MAAA,OAAA,OAAA,OAAA,OAAA;AAAA4L,A/B0VA,U+B1VA,WAAA,cAAA,SAAA,UAAA,WAAA,QAAA,UAAAC,eAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,QAAAC,aAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA3M,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,eAAAquE,GAAA,eAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,eAAAC,QAAA,gBAAAC,SAAA,WAAA,OAAAn7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,uBAAA,KAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,MAAA,qBAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,oBAAAwS,QAAA,cAAAC,SAAA,WAAA,GAAA7mF,IAAA,6BAAA,iCAAA,4BAAA,4BAAA,8BAAA,2BAAA;AAAA,A/B2VA,M+B3VAA,GAAAwL,KAAA4oE,QAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,WAAAhuD,EAAA,mBAAAgM,EAAAwjF,GAAAG,UAAA3P,GAAAwP,GAAAG,UAAAhtF,EAAA6sF,GAAAG,UAAA1P,GAAAuP,GAAAG,UAAAxvF,EAAA,MAAA+/E,GAAAsP,GAAAG,UAAAp3E,EAAA,SAAA4nE,GAAAqP,GAAAG,UAAA7gF,EAAA,SAAA23C,GAAA+oC,GAAAG,WAAArI,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,uFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,wDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA;AAAAivE,A/B4VA,gB+B5VA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,YAAAquE,GAAA,cAAAC,IAAA,mBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,gBAAAC,QAAA,eAAAC,SAAA,oBAAAC,QAAA,gBAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,2BAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,8BAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,UAAAhuD,EAAA,kBAAAgM,EAAA,SAAAg0E,GAAA,YAAAr9E,EAAA,MAAAs9E,GAAA,UAAA9/E,EAAA,MAAA+/E,GAAA,UAAA3nE,EAAA,QAAA4nE,GAAA,YAAArxE,EAAA,SAAA23C,GAAA,aAAA6gC,aAAA,8BAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAAR,EAAA;AAAA,A/B6VA,M+B7VA,KAAAA,EAAAA,EAAA,MAAA,IAAAQ,EAAAR,EAAA,MAAAQ,EAAA,IAAA,GAAAA,EAAAR,EAAA,MAAA,IAAAC,EAAAD,EAAA,MAAA,IAAAC,EAAAD,EAAA,MAAA,IAAAC,GAAA,IAAAA,EAAAD,EAAA,MAAAA,EAAA,OAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,yFAAA7vE,MAAA,KAAA8vE,YAAA,yEAAA9vE,MAAA,KAAA07E,SAAA,wEAAA17E,MAAA,KAAA27E,cAAA,2CAAA37E,MAAA,KAAA47E,YAAA,wBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,aAAAD,IAAA,gBAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA;AAAAC,A/B8VA,K+B9VA,iCAAA7P,UAAAkP,QAAA,aAAAC,QAAA,YAAAC,SAAA,WAAAC,QAAA,cAAAC,SAAA,oBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,aAAAl5B,KAAA,WAAAhuD,EAAA,gBAAAgM,EAAA,eAAAg0E,GAAA,cAAAr9E,EAAA,eAAAs9E,GAAA,cAAA9/E,EAAA,YAAA+/E,GAAA,WAAA3nE,EAAA,WAAA4nE,GAAA,UAAArxE,EAAA,WAAA23C,GAAA,WAAA+iC,cAAA,gDAAA/V,KAAA,SAAAh0E,GAAA,MAAA,qCAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,SAAA,GAAAA,EAAA,SAAA,GAAAA,EAAA,eAAA,GAAAA,EAAA,aAAA,aAAAkhD,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA;AAAAC,A/B+VA,E+B/VA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAAkyD,IAAAjB,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAS,IAAAxG,GAAAH,aAAA,MAAAvZ,OAAA,wFAAA7vE,MAAA,KAAA8vE,YAAA,gFAAA9vE,MAAA,KAAA07E,SAAA,uDAAA17E,MAAA,KAAA27E,cAAA,kCAAA37E,MAAA,KAAA47E,YAAA,qBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,eAAAD,IAAA,kBAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,4BAAAC,KAAA;A/BgWA,E+BhWA7P,UAAAkP,QAAA,UAAAC,QAAA,aAAAC,SAAA,WAAAC,QAAA,WAAAC,SAAA,mBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,UAAAl5B,KAAA,WAAAhuD,EAAAmiF,GAAAn2E,EAAAm2E,GAAAnC,GAAAmC,GAAAx/E,EAAAw/E,GAAAlC,GAAAkC,GAAAhiF,EAAAgiF,GAAAjC,GAAAiC,GAAA5pE,EAAA4pE,GAAAhC,GAAAgC,GAAArzE,EAAAqzE,GAAA17B,GAAA07B,IAAA/N,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,gBAAA,SAAAb,GAAA,MAAAowF,IAAApwF,MAAAw4E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAAmwF,IAAAnwF,MAAA+pF,cAAA,+BAAAhW,aAAA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,WAAAC,EAAA,EAAAD,EAAAA,EAAAA,EAAA,GAAA,UAAAC,EAAAD,EAAA,WAAAC,EAAAD,GAAA,GAAAA,EAAAA,EAAA,GAAA,aAAAC,EAAAD,EAAA,GAAA,QAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,SAAA,GAAAA,EAAA,QAAA,GAAAA,EAAA,SAAA,GAAAA,EAAA,WAAA;A/BiWA,E+BjWAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,oFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,6CAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,4BAAAC,KAAA,mCAAA2C,cAAA,8BAAAhW,aAAA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,SAAAC,EAAAD,EAAA,cAAAC,EAAAD,GAAA,GAAAA,EAAAA,EAAA,GAAA,WAAAC,GAAA,UAAAA,EAAAD,EAAA,GAAA;A/BkWA,E+BlWAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,OAAA,GAAAA,EAAA,YAAA,GAAAA,EAAA,SAAA,SAAAu3E,UAAAkP,QAAA,sBAAAC,QAAA,kBAAAC,SAAA,kBAAAC,QAAA,sBAAAC,SAAA,wBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,gBAAAhuD,EAAA,gBAAAgM,EAAA,UAAAg0E,GAAA,WAAAr9E,EAAA,QAAAs9E,GAAA,SAAA9/E,EAAA,SAAA+/E,GAAA,UAAA3nE,EAAA,UAAA4nE,GAAA,WAAArxE,EAAA,UAAA23C,GAAA,YAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,oFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA;AAAA07E,A/BmWA,S+BnWA,6CAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,4BAAAC,KAAA,mCAAA2C,cAAA,8BAAAhW,aAAA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,SAAAC,EAAAD,EAAA,cAAAC,EAAAD,GAAA,GAAAA,EAAAA,EAAA,GAAA,WAAAC,GAAA,UAAAA,EAAAD,EAAA,GAAA,QAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,OAAA,GAAAA,EAAA,YAAA,GAAAA,EAAA,SAAA,SAAAu3E,UAAAkP,QAAA,sBAAAC,QAAA,kBAAAC,SAAA,kBAAAC,QAAA;AAAAC,A/BoWA,S+BpWA,wBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,gBAAAhuD,EAAA,gBAAAgM,EAAA,UAAAg0E,GAAA,WAAAr9E,EAAA,QAAAs9E,GAAA,SAAA9/E,EAAA,SAAA+/E,GAAA,UAAA3nE,EAAA,UAAA4nE,GAAA,WAAArxE,EAAA,UAAA23C,GAAA,YAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,MAAAxyB,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA,IAAAC,EAAA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAAoyD,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAApH,GAAAH,aAAA,MAAAvZ,OAAA,2FAAA7vE,MAAA,KAAA8vE,YAAA,mDAAA9vE,MAAA,KAAA07E,SAAA,wDAAA17E,MAAA;AAAA27E,A/BqWA,c+BrWA,2BAAA37E,MAAA,KAAA47E,YAAA,2BAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,kBAAAC,QAAA,sBAAAC,SAAA,gBAAAC,QAAA,mBAAAC,SAAA,6BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,gBAAAl5B,KAAA,kBAAAhuD,EAAA,kBAAAgM,EAAA,WAAAg0E,GAAA,WAAAr9E,EAAA,UAAAs9E,GAAA,UAAA9/E,EAAA,SAAA+/E,GAAA,SAAA3nE,EAAA,OAAA4nE,GAAA,OAAArxE,EAAA,UAAA23C,GAAA,WAAA2tB,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,gBAAA,SAAAb;AAAA,A/BsWA,M+BtWAswF,IAAAtwF,MAAAw4E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAAqwF,IAAArwF,MAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,qFAAA7vE,MAAA,KAAA8vE,YAAA,8DAAA9vE,MAAA,KAAA07E,SAAA,qDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,2BAAAC,KAAA,iCAAA7P,UAAAkP,QAAA;AAAAC,A/BuWA,Q+BvWA,oBAAAC,SAAA,gBAAAC,QAAA,iBAAAC,SAAA,0BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,eAAAhuD,EAAA,gBAAAgM,EAAA,aAAAg0E,GAAA,cAAAr9E,EAAA,UAAAs9E,GAAA,WAAA9/E,EAAA,SAAA+/E,GAAA,WAAA3nE,EAAA,WAAA4nE,GAAA,aAAArxE,EAAA,SAAA23C,GAAA,SAAA6gC,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,MAAAxyB,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA,IAAAC,EAAA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAAgzD,IAAA/B,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAuB,IAAAtH,GAAAH,aAAA,MAAAvZ,OAAA,uFAAA7vE,MAAA;AAAA8vE,A/BwWA,Y+BxWA,uEAAA9vE,MAAA,KAAA07E,SAAA,wDAAA17E,MAAA,KAAA27E,cAAA,0CAAA37E,MAAA,KAAA47E,YAAA,4BAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,eAAAD,IAAA,kBAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,4BAAAC,KAAA,mCAAAzS,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,gBAAA,SAAAb,GAAA,MAAAkxF,IAAAlxF,MAAAw4E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAAixF,IAAAjxF,MAAA+pF,cAAA,yBAAAhW,aAAA,SAAA/zE,EAAAC;AAAA,A/ByWA,M+BzWA,MAAAD,IAAAA,EAAA,GAAA,SAAAC,EAAA,EAAAD,EAAAA,EAAAA,EAAA,GAAA,UAAAC,EAAAD,EAAA,WAAAC,EAAAD,GAAA,GAAAA,EAAAA,EAAA,GAAA,SAAAC,EAAAD,EAAA,GAAA,QAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,OAAA,GAAAA,EAAA,QAAA,GAAAA,EAAA,SAAA,GAAAA,EAAA,OAAA,QAAAu3E,UAAAkP,QAAA,UAAAC,QAAA,YAAAC,SAAA,qBAAAC,QAAA,YAAAC,SAAA,oBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,OAAAl5B,KAAA,WAAAhuD,EAAA,YAAAgM,EAAA,WAAAg0E,GAAA,WAAAr9E,EAAA,WAAAs9E,GAAA,WAAA9/E,EAAA,SAAA+/E,GAAA,SAAA3nE,EAAA,WAAA4nE,GAAA,WAAArxE,EAAA,UAAA23C,GAAA,WAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,KAAA,6DAAApzE,MAAA,MAAA8wF,GAAA,kDAAA9wF,MAAA,KAAA+wF,IAAAxH,GAAAH,aAAA;AAAAvZ,A/B0WA,O+B1WA,0FAAA7vE,MAAA,KAAA8vE,YAAA,SAAApwE,EAAAC,GAAA,MAAA,QAAAiB,KAAAjB,GAAAmxF,GAAApxF,EAAA8vE,SAAAqhB,GAAAnxF,EAAA8vE,UAAAkM,SAAA,6DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,kBAAAC,QAAA,iBAAAC,SAAA,eAAAC,QAAA,mBAAAC,SAAA,2BAAAC,SAAA,KAAAnH;AAAA8H,A/B2WA,O+B3WA,UAAAl5B,KAAA,aAAAhuD,EAAA,oBAAAgM,EAAA,aAAAg0E,GAAA,aAAAr9E,EAAA,UAAAs9E,GAAA,SAAA9/E,EAAA,UAAA+/E,GAAA,WAAA3nE,EAAA,YAAA4nE,GAAA,aAAArxE,EAAA,WAAA23C,GAAA,WAAA6gC,aAAA,kBAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,IAAA,IAAAA,GAAA,IAAAA,GAAAA,GAAA,GAAA,MAAA,OAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,qFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,qDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA;AAAAivE,A/B4WA,gB+B5WA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,0BAAAC,KAAA,iCAAA7P,UAAAkP,QAAA,oBAAAC,QAAA,uBAAAC,SAAA,mBAAAC,QAAA,oBAAAC,SAAA,gCAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,eAAAhuD,EAAA,eAAAgM,EAAA,aAAAg0E,GAAA,YAAAr9E,EAAA,WAAAs9E,GAAA,WAAA9/E,EAAA,UAAA+/E,GAAA,WAAA3nE,EAAA,YAAA4nE,GAAA,aAAArxE,EAAA,SAAA23C,GAAA,SAAA6gC,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAA,mGAAApzE,MAAA,MAAAgxF,GAAA,qGAAAhxF,MAAA,KAAAixF,IAAA1H,GAAAH,aAAA;AAAAvZ,A/B6WA,O+B7WA,SAAAnwE,EAAAC,GAAA,MAAA,KAAAA,EAAA,IAAAqxF,GAAAtxF,EAAA8vE,SAAA,IAAAuhB,GAAArxF,EAAA8vE,SAAA,IAAA,SAAA5uE,KAAAjB,GAAAqxF,GAAAtxF,EAAA8vE,SAAAuhB,GAAArxF,EAAA8vE,UAAAM,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,6DAAA17E,MAAA,KAAA27E,cAAA,0BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,cAAAC,QAAA,eAAAC,SAAA,kBAAAC,QAAA,iBAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA;AAAA,A/B8WA,I+B9WA,GAAA,MAAA,uBAAA,KAAA,GAAA,MAAA,wBAAA,SAAA,MAAA,2BAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,UAAAhuD,EAAA,eAAAgM,EAAAq2E,GAAArC,GAAAqC,GAAA1/E,EAAA0/E,GAAApC,GAAAoC,GAAAliF,EAAA,UAAA+/E,GAAA,SAAA3nE,EAAA,UAAA4nE,GAAAkC,GAAAvzE,EAAA,MAAA23C,GAAA47B,IAAAiF,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,2FAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,iFAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA;AAAA47E,A/B+WA,Y+B/WA,yBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,wBAAAC,IAAA,mCAAAC,KAAA,0CAAA7P,UAAAkP,QAAA,eAAAC,QAAA,iBAAAC,SAAA,eAAAC,QAAA,gBAAAC,SAAA,WAAA,MAAA,KAAAr7E,KAAA4oE,OAAA,IAAA5oE,KAAA4oE,MAAA,wBAAA,yBAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,WAAAhuD,EAAA,kBAAAgM,EAAA,YAAAg0E,GAAA,aAAAr9E,EAAA,WAAAs9E,GAAA,WAAA9/E,EAAA,SAAA+/E,GAAA,UAAA3nE,EAAA,SAAA4nE,GAAA,WAAArxE,EAAA,SAAA23C,GAAA,WAAA6gC,aAAA,WAAA1Y,QAAA;A/BgXA,G+BhXA0a,GAAAH,aAAA,MAAAvZ,OAAA,2FAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,iFAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,yBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,wBAAAC,IAAA,8BAAAC,KAAA,qCAAA7P,UAAAkP,QAAA,eAAAC,QAAA,iBAAAC,SAAA,eAAAC,QAAA;AAAAC,A/BiXA,S+BjXA,WAAA,MAAA,KAAAr7E,KAAA4oE,OAAA,IAAA5oE,KAAA4oE,MAAA,wBAAA,yBAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,QAAAhuD,EAAA,WAAAgM,EAAA,YAAAg0E,GAAA,aAAAr9E,EAAA,WAAAs9E,GAAA,WAAA9/E,EAAA,SAAA+/E,GAAA,UAAA3nE,EAAA,SAAA4nE,GAAA,WAAArxE,EAAA,SAAA23C,GAAA,WAAA6gC,aAAA,WAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,oGAAA7vE,MAAA,KAAA8vE,YAAA,gEAAA9vE,MAAA,KAAA07E,SAAA,kDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA;AAAA47E,A/BkXA,Y+BlXA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,mBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,cAAAC,QAAA,gBAAAC,SAAA,eAAAC,QAAA,eAAAC,SAAA,uBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,aAAAhuD,EAAA,iBAAAgM,EAAA,WAAAg0E,GAAAsC,GAAA3/E,EAAA,QAAAs9E,GAAAqC,GAAAniF,EAAA,OAAA+/E,GAAAoC,GAAA/pE,EAAA,SAAA4nE,GAAAmC,GAAAxzE,EAAA,QAAA23C,GAAA67B,IAAApQ,MAAAgB,IAAA,EAAAC,IAAA,MAAA,QAAA,QAAA,QAAA,QAAA,YAAA,QAAA,QAAA,QAAA,QAAA,QAAA,QAAA,UAAA8d,IAAA3H,GAAAH,aAAA,MAAAvZ,QAAAnpC,OAAA,oFAAA1mC,MAAA;AAAAkrF,A/BmXA,W+BnXA,kFAAAlrF,MAAA,MAAA8vE,aAAAppC,OAAA,oDAAA1mC,MAAA,KAAAkrF,WAAA,qDAAAlrF,MAAA,MAAA07E,UAAAwP,WAAA,gEAAAlrF,MAAA,KAAA0mC,OAAA,gEAAA1mC,MAAA,KAAAg7E,SAAA,kDAAAW,cAAA,uBAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAA+vE,YAAAkhB,GAAAnE,gBAAAmE,GAAApE,iBAAAoE,GAAAhiB,gBAAA0X,GAAA;AAAAD,A/BoXA,I+BpXA,WAAAnuE,EAAA,aAAAquE,GAAA,iBAAAC,IAAA,wBAAAC,KAAA,+BAAA7P,UAAAkP,QAAA,iBAAAC,QAAA,gBAAAE,QAAA,eAAAD,SAAA,SAAA3mF,GAAA,GAAAA,EAAAyyE,SAAAjnE,KAAAinE,OAAA,MAAA,KAAAjnE,KAAA4oE,MAAA,mBAAA,iBAAA,QAAA5oE,KAAA4oE,OAAA,IAAA,GAAA,MAAA,2BAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,2BAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,8BAAAyS,SAAA,SAAA7mF,GAAA,GAAAA,EAAAyyE,SAAAjnE,KAAAinE,OAAA,MAAA,KAAAjnE,KAAA4oE,MAAA,mBAAA,iBAAA,QAAA5oE,KAAA4oE,OAAA,IAAA,GAAA,MAAA,yBAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA;AAAA,A/BqXA,I+BrXA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,4BAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,WAAAhuD,EAAA,mBAAAgM,EAAAw2E,GAAAxC,GAAAwC,GAAA7/E,EAAA,MAAAs9E,GAAAuC,GAAAriF,EAAA,OAAA+/E,GAAAsC,GAAAjqE,EAAA,QAAA4nE,GAAAqC,GAAA1zE,EAAA,MAAA23C,GAAA+7B,IAAAgH,cAAA,wBAAA/V,KAAA,SAAAh0E,GAAA,MAAA,iBAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,OAAA,GAAAA,EAAA,OAAA,GAAAA,EAAA,MAAA,UAAA6nF,aAAA,mBAAA1Y,QAAA,SAAAnvE,EAAAC,GAAA,OAAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,MAAA,MAAAD,GAAA,IAAA,KAAA,IAAA,MAAAA,GAAA,KAAA,KAAA,IAAA,IAAA,IAAA,MAAAA,GAAA,IAAA,SAAA,MAAAA,KAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,mJAAA7vE,MAAA;AAAA8vE,A/BsXA,Y+BtXA,6DAAA9vE,MAAA,KAAA07E,SAAA,6EAAA17E,MAAA,KAAA27E,cAAA,mCAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,oBAAAC,IAAA,gCAAAC,KAAA,uCAAA7P,UAAAkP,QAAA,eAAAC,QAAA,iBAAAC,SAAA,eAAAC,QAAA,eAAAC,SAAA,wBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,YAAAl5B,KAAA,WAAAhuD,EAAA,mBAAAgM,EAAA;AAAAg0E,A/BuXA,G+BvXA,cAAAr9E,EAAA,cAAAs9E,GAAA,aAAA9/E,EAAA,cAAA+/E,GAAA,cAAA3nE,EAAA,aAAA4nE,GAAA,WAAArxE,EAAA,aAAA23C,GAAA,YAAA6gC,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,kGAAA7vE,MAAA,KAAA8vE,YAAA,wDAAA9vE,MAAA,KAAA07E,SAAA,gEAAA17E,MAAA,KAAA27E,cAAA,gCAAA37E,MAAA,KAAA47E,YAAA,qBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,SAAAD,IAAA,YAAAnuE,EAAA,aAAAquE,GAAA;AAAAC,A/BwXA,I+BxXA,sBAAAC,KAAA,sCAAA7P,UAAAkP,QAAA,aAAAC,QAAA,cAAAC,SAAA,aAAAC,QAAA,cAAAC,SAAA,sBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,WAAAhuD,EAAA,eAAAgM,EAAA,YAAAg0E,GAAA,cAAAr9E,EAAA,MAAAs9E,GAAA,SAAA9/E,EAAA,OAAA+/E,GAAA,SAAA3nE,EAAA,OAAA4nE,GAAA,SAAArxE,EAAA,MAAA23C,GAAA,UAAA6gC,aAAA,eAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,GAAA,SAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAAR,GAAA,GAAAQ,EAAA,OAAA,UAAAA,EAAA,QAAA,aAAA,oFAAAF,MAAA,MAAAmxF,GAAA,kDAAAnxF,MAAA,KAAAoxF,IAAA7H,GAAAH,aAAA;AAAAvZ,A/ByXA,O+BzXAqhB,GAAAphB,YAAAqhB,GAAAzV,SAAA,sDAAA17E,MAAA,KAAA27E,cAAA,uBAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,eAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,cAAAC,QAAA,gBAAAC,SAAA,WAAA,OAAAn7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,iBAAA,KAAA,GAAA,IAAA,GAAA,MAAA,iBAAA,KAAA,GAAA,MAAA,iBAAA,KAAA,GAAA,MAAA,mBAAA,KAAA,GAAA,MAAA,iBAAA,KAAA,GAAA,MAAA,oBAAAwS,QAAA,eAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE;AAAA,A/B0XA,I+B1XA,GAAA,MAAA,sBAAA,KAAA,GAAA,IAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,IAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,MAAA,yBAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,UAAAhuD,EAAA0iF,GAAA12E,EAAA02E,GAAA1C,GAAA0C,GAAA//E,EAAA+/E,GAAAzC,GAAAyC,GAAAviF,EAAAuiF,GAAAxC,GAAAwC,GAAAnqE,EAAAmqE,GAAAvC,GAAAuC,GAAA5zE,EAAA4zE,GAAAj8B,GAAAi8B,IAAA4E,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,wFAAA7vE,MAAA,KAAA8vE,YAAA,8DAAA9vE,MAAA,KAAA07E,SAAA,sDAAA17E,MAAA,KAAA27E,cAAA,qCAAA37E,MAAA;AAAA47E,A/B2XA,Y+B3XA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,eAAAquE,GAAA,eAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,gBAAAC,QAAA,gBAAAC,SAAA,WAAA,OAAAn7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,uBAAA,KAAA,GAAA,MAAA,qBAAA,KAAA,GAAA,MAAA,sBAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,qBAAAwS,QAAA,iBAAAC,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,8BAAA,KAAA,GAAA,MAAA,4BAAA,KAAA,GAAA,MAAA,6BAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA;A/B4XA,G+B5XA0S,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,UAAAhuD,EAAA2iF,GAAA32E,EAAA22E,GAAA3C,GAAA2C,GAAAhgF,EAAAggF,GAAA1C,GAAA0C,GAAAxiF,EAAAwiF,GAAAzC,GAAAyC,GAAApqE,EAAAoqE,GAAAxC,GAAAwC,GAAA7zE,EAAA6zE,GAAAl8B,GAAAk8B,IAAA2E,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,gFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,4DAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,mBAAA57E,MAAA,KAAAypF,cAAA,QAAA/V,KAAA,SAAAh0E,GAAA,MAAA,MAAAA,EAAAgF,OAAA,IAAAw3E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,KAAA,MAAAuvE;AAAA0X,A/B6XA,G+B7XA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,cAAAC,QAAA,gBAAAC,SAAA,eAAAC,QAAA,cAAAC,SAAA,wBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,aAAAhuD,EAAA,eAAAgM,EAAA,aAAAg0E,GAAA,YAAAr9E,EAAA,UAAAs9E,GAAA,SAAA9/E,EAAA,WAAA+/E,GAAA,UAAA3nE,EAAA,WAAA4nE,GAAA,UAAArxE,EAAA,UAAA23C,GAAA,WAAA6gC,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,MAAAsc,OAAAzjF,GAAA,cAAA,gBAAAg0E,IAAA,QAAA,SAAA,UAAAr9E,GAAA,YAAA,eAAAs9E,IAAA,MAAA,OAAA,QAAAC,IAAA,MAAA,OAAA;AAAAC,A/B8XA,I+B9XA,QAAA,SAAA,UAAA15B,IAAA,SAAA,SAAA,WAAAipC,uBAAA,SAAAjwF,EAAAC,GAAA,MAAA,KAAAD,EAAAC,EAAA,GAAAD,GAAA,GAAA,GAAAA,EAAAC,EAAA,GAAAA,EAAA,IAAAiwF,UAAA,SAAAlwF,EAAAC,EAAAO,GAAA,GAAAE,GAAAgxF,GAAA1B,MAAAxvF,EAAA,OAAA,KAAAA,EAAAgC,OAAAvC,EAAAS,EAAA,GAAAA,EAAA,GAAAV,EAAA,IAAA0xF,GAAAzB,uBAAAjwF,EAAAU,MAAAixF,IAAA9H,GAAAH,aAAA,WAAAvZ,QAAA,SAAA,UAAA,OAAA,QAAA,MAAA,MAAA,MAAA,SAAA,YAAA,UAAA,WAAA,YAAAC,aAAA,OAAA,OAAA,OAAA,OAAA,MAAA,MAAA,MAAA,OAAA,OAAA,OAAA,OAAA,QAAA4L,UAAA,SAAA,YAAA,SAAA,QAAA,WAAA,QAAA,UAAAC,eAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,QAAAC,aAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA;AAAA3M,A/B+XA,gB+B/XA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,eAAAquE,GAAA,eAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,eAAAC,QAAA,eAAAC,SAAA,WAAA,OAAAn7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,qBAAA,KAAA,GAAA,MAAA,oBAAA,KAAA,GAAA,MAAA,qBAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,oBAAAwS,QAAA,cAAAC,SAAA,WAAA,GAAA7mF,IAAA,2BAAA,+BAAA,4BAAA,0BAAA,8BAAA,2BAAA,2BAAA,OAAAA,GAAAwL,KAAA4oE,QAAA0S,SAAA,KAAAnH;AAAA8H,A/BgYA,O+BhYA,QAAAl5B,KAAA,SAAAhuD,EAAA,mBAAAgM,EAAAmlF,GAAAxB,UAAA3P,GAAAmR,GAAAxB,UAAAhtF,EAAAwuF,GAAAxB,UAAA1P,GAAAkR,GAAAxB,UAAAxvF,EAAA,MAAA+/E,GAAAiR,GAAAxB,UAAAp3E,EAAA,QAAA4nE,GAAAgR,GAAAxB,UAAA7gF,EAAA,SAAA23C,GAAA0qC,GAAAxB,WAAArI,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,MAAAsc,OAAAzjF,GAAA,cAAA,gBAAAg0E,IAAA,QAAA,SAAA,UAAAr9E,GAAA,YAAA,eAAAs9E,IAAA,MAAA,OAAA,QAAAC,IAAA,MAAA,OAAA,QAAAC,IAAA,QAAA,SAAA,UAAA15B,IAAA,SAAA,SAAA,WAAAipC,uBAAA,SAAAjwF,EAAAC,GAAA,MAAA,KAAAD,EAAAC,EAAA,GAAAD,GAAA,GAAA,GAAAA,EAAAC,EAAA,GAAAA,EAAA,IAAAiwF,UAAA,SAAAlwF,EAAAC,EAAAO,GAAA,GAAAE,GAAAixF,GAAA3B,MAAAxvF,EAAA,OAAA,KAAAA,EAAAgC,OAAAvC,EAAAS,EAAA,GAAAA,EAAA,GAAAV,EAAA,IAAA2xF,GAAA1B,uBAAAjwF,EAAAU,MAAAkxF,IAAA/H,GAAAH,aAAA;AAAAvZ,A/BiYA,Q+BjYA,SAAA,UAAA,OAAA,QAAA,MAAA,MAAA,MAAA,SAAA,YAAA,UAAA,WAAA,YAAAC,aAAA,OAAA,OAAA,OAAA,OAAA,MAAA,MAAA,MAAA,OAAA,OAAA,OAAA,OAAA,QAAA4L,UAAA,UAAA,aAAA,SAAA,QAAA,WAAA,QAAA,UAAAC,eAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,QAAAC,aAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA3M,gBAAA0X,GAAA,OAAAD,IAAA,UAAAnuE,EAAA,eAAAquE,GAAA,eAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,eAAAC,QAAA,eAAAC,SAAA,WAAA,OAAAn7E,KAAA4oE,OAAA,IAAA,GAAA,MAAA,sBAAA,KAAA;AAAA,A/BkYA,M+BlYA,oBAAA,KAAA,GAAA,MAAA,qBAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,oBAAAwS,QAAA,cAAAC,SAAA,WAAA,GAAA7mF,IAAA,4BAAA,gCAAA,4BAAA,0BAAA,8BAAA,2BAAA,2BAAA,OAAAA,GAAAwL,KAAA4oE,QAAA0S,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,SAAAhuD,EAAA,mBAAAgM,EAAAolF,GAAAzB,UAAA3P,GAAAoR,GAAAzB,UAAAhtF,EAAAyuF,GAAAzB,UAAA1P,GAAAmR,GAAAzB,UAAAxvF,EAAA,MAAA+/E,GAAAkR,GAAAzB,UAAAp3E,EAAA,QAAA4nE,GAAAiR,GAAAzB,UAAA7gF,EAAA,SAAA23C,GAAA2qC,GAAAzB,WACArI,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA;AAAAvZ,A/BkYA,O+BlYA,wFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,oDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,YAAAC,QAAA,eAAAE,QAAA,YAAAD,SAAA,eAAAE,SAAA,iBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA;AAAAhuD,A/BmYA,E+BnYA,iBAAAgM,EAAA,WAAAg0E,GAAA,aAAAr9E,EAAA,WAAAs9E,GAAA,YAAA9/E,EAAA,SAAA+/E,GAAA,WAAA3nE,EAAA,WAAA4nE,GAAA,aAAArxE,EAAA,SAAA23C,GAAA,SAAA6gC,aAAA,eAAA1Y,QAAA,SAAAnvE,GAAA,GAAAC,GAAAD,EAAA,GAAAQ,EAAA,OAAAR,EAAA,IAAA,IAAA,IAAA,IAAAC,EAAA,IAAA,IAAAA,EAAA,IAAA,GAAA,OAAAD,GAAAQ,GAAAiyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,sFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,8DAAA17E,MAAA,KAAA27E,cAAA,kCAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA;AAAAivE,A/BoYA,gB+BpYA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,eAAAC,QAAA,iBAAAC,SAAA,8BAAAC,QAAA,YAAAC,SAAA,kCAAAC,SAAA,KAAAnH,cAAA8H,OAAA,aAAAl5B,KAAA,WAAAhuD,EAAA,aAAAgM,EAAA,cAAAg0E,GAAA,YAAAr9E,EAAA,aAAAs9E,GAAA,WAAA9/E,EAAA,YAAA+/E,GAAA,YAAA3nE,EAAA,cAAA4nE,GAAA,WAAArxE,EAAA,cAAA23C,GAAA,YAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,MAAAxyB,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAC,EAAA,IAAAiI,EAAA,IAAAmC,EAAA,IAAAC,EAAA,IAAAN,EAAA,IAAAC,EAAA,IAAAntB,EAAA,MAAA2zD,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA;AAAAC,A/BqYA,I+BrYA,IAAAC,IAAA,KAAAhP,IAAAsG,GAAAH,aAAA,MAAAvZ,OAAA,0FAAA7vE,MAAA,KAAA8vE,YAAA,0FAAA9vE,MAAA,KAAA07E,SAAA,8FAAA17E,MAAA,KAAA27E,cAAA,mDAAA37E,MAAA,KAAA47E,YAAA,sBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,qBAAAC,KAAA,4BAAA7P,UAAAkP,QAAA,aAAAC,QAAA;AAAAC,A/BsYA,S+BtYA,WAAAC,QAAA,cAAAC,SAAA,yBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,UAAAhuD,EAAA,oBAAAgM,EAAA,cAAAg0E,GAAA,gBAAAr9E,EAAA,gBAAAs9E,GAAA,eAAA9/E,EAAA,WAAA+/E,GAAA,aAAA3nE,EAAA,YAAA4nE,GAAA,cAAArxE,EAAA,aAAA23C,GAAA,eAAA6gC,aAAA,aAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,GAAA,OAAA20E,SAAA,SAAA30E,GAAA,MAAAA,GAAAa,QAAA,gBAAA,SAAAb,GAAA,MAAA6xF,IAAA7xF,MAAAw4E,WAAA,SAAAx4E,GAAA,MAAAA,GAAAa,QAAA,MAAA,SAAAb,GAAA,MAAA4xF,IAAA5xF,MAAA+pF,cAAA,wCAAAvN,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,SAAA,EAAAA,EAAA,SAAA,GAAAA,EAAA,QAAA,GAAAA,EAAA,WAAA,GAAAA,EAAA,WAAA,GAAAA,EAAA,QAAA;A/BuYA,E+BvYA+zE,aAAA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,UAAAC,EAAA,EAAAD,EAAAA,EAAAA,EAAA,GAAA,UAAAC,GAAA,SAAAA,EAAAD,EAAA,YAAAC,GAAAD,GAAA,GAAAA,EAAAA,EAAA,IAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,yFAAA7vE,MAAA,KAAA8vE,YAAA,oEAAA9vE,MAAA,KAAA07E,SAAA,8DAAA17E,MAAA,KAAA27E,cAAA,kCAAA37E,MAAA,KAAA47E,YAAA,qBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,SAAAD,IAAA,YAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,sBAAAC,KAAA;A/BwYA,E+BxYA7P,UAAAkP,QAAA,YAAAC,QAAA,YAAAC,SAAA,WAAAC,QAAA,aAAAC,SAAA,gBAAAC,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,YAAAhuD,EAAA,iBAAAgM,EAAA,YAAAg0E,GAAA,cAAAr9E,EAAA,SAAAs9E,GAAA,WAAA9/E,EAAA,UAAA+/E,GAAA,YAAA3nE,EAAA,SAAA4nE,GAAA,WAAArxE,EAAA,cAAA23C,GAAA,iBAAA6gC,aAAA,WAAA1Y,QAAA,MAAA4a,cAAA,iCAAAhW,aAAA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,WAAAC,EAAA,EAAAD,EAAAA,EAAAA,EAAA,GAAA,SAAAC,EAAAD,EAAA,cAAAC,EAAAD,GAAA,GAAAA,EAAAA,EAAA,GAAA,aAAAC,EAAAD,EAAA,GAAA,QAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,SAAA,GAAAA,EAAA,OAAA,GAAAA,EAAA,YAAA,GAAAA,EAAA,WAAA;AAAAyyE,A/ByYA,M+BzYAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,oGAAA7vE,MAAA,KAAA8vE,YAAA,yEAAA9vE,MAAA,KAAA07E,SAAA,iDAAA17E,MAAA,KAAA27E,cAAA,8CAAA37E,MAAA,KAAA47E,YAAA,yBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,kBAAAD,IAAA,2BAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,mCAAAC,KAAA,+CAAA2C,cAAA;AAAA/V,A/B0YA,K+B1YA,SAAAh0E,GAAA,MAAA,eAAAA,GAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,IAAAR,EAAA,aAAA,cAAAu3E,UAAAkP,QAAA,mBAAAC,QAAA,qBAAAC,SAAA,qBAAAC,QAAA,wBAAAC,SAAA,6BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,SAAAl5B,KAAA,YAAAhuD,EAAA,eAAAgM,EAAA,SAAAg0E,GAAA,UAAAr9E,EAAA,YAAAs9E,GAAA,aAAA9/E,EAAA,QAAA+/E,GAAA,SAAA3nE,EAAA,UAAA4nE,GAAA,WAAArxE,EAAA,OAAA23C,GAAA,WAAA6iC,GAAAH,aAAA,SAAAvZ,OAAA,0FAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA;AAAA07E,A/B2YA,S+B3YA,yDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,wBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,YAAAquE,GAAA,eAAAC,IAAA,qBAAAC,KAAA,6BAAA7P,UAAAkP,QAAA,iBAAAC,QAAA,gBAAAC,SAAA,eAAAC,QAAA,kBAAAC,SAAA,0BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,gBAAAl5B,KAAA,mBAAAhuD,EAAA,gBAAAgM,EAAA,eAAAg0E,GAAA,YAAAr9E,EAAA,aAAAs9E,GAAA,UAAA9/E,EAAA,aAAA+/E,GAAA,UAAA3nE,EAAA,cAAA4nE,GAAA;AAAArxE,A/B4YA,E+B5YA,aAAA23C,GAAA,WAAA6gC,aAAA,UAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,IAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAA,iDAAApzE,MAAA,MAAAkyF,IAAA3I,GAAAH,aAAA,OAAAvZ,OAAA,kMAAA7vE,MAAA,KAAA8vE,YAAA,0HAAA9vE,MAAA,KAAA07E,SAAA,2DAAA17E,MAAA,KAAA27E,cAAA,2DAAA37E,MAAA;AAAA47E,A/B6YA,Y+B7YA,2DAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,cAAAC,QAAA,cAAAC,SAAA,MAAAC,QAAA,cAAAC,SAAA,MAAAC,SAAA,KAAAnH,cAAA8H,OAAAtE,GAAA50B,KAAA60B,GAAA7iF,EAAA,UAAAgM,EAAA,UAAAg0E,GAAA8C,GAAAngF,EAAA,UAAAs9E,GAAA6C,GAAA3iF,EAAA,UAAA+/E,GAAA4C,GAAAvqE,EAAA,UAAA4nE,GAAA2C,GAAAh0E,EAAA,UAAA23C,GAAAq8B,IAAAwE,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,MAAAxyB,EAAA,QAAAoI,EAAA,QAAA8B,EAAA,QAAA8/B,GAAA,QAAAC,GAAA,QAAAhqC,EAAA,OAAAuK,EAAA,OAAA9B,GAAA,OAAA6C,GAAA,OAAArL,EAAA,QAAAC,EAAA,QAAA+pC,IAAA,QAAA3/B,EAAA,OAAAJ,EAAA;AAAAW,A/B8YA,G+B9YA,QAAAH,GAAA,QAAAw/B,GAAA,QAAAC,GAAA,UAAAmH,IAAA5I,GAAAH,aAAA,MAAAvZ,OAAA,6EAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,wDAAA17E,MAAA,KAAA27E,cAAA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,kBAAAC,QAAA,kBAAAC,SAAA,2BAAAC,QAAA,WAAAC,SAAA;AAAAC,A/B+YA,S+B/YA,KAAAnH,cAAA8H,OAAA,WAAAl5B,KAAA,UAAAhuD,EAAA,gBAAAgM,EAAA,aAAAg0E,GAAA,YAAAr9E,EAAA,WAAAs9E,GAAA,UAAA9/E,EAAA,UAAA+/E,GAAA,SAAA3nE,EAAA,SAAA4nE,GAAA,QAAArxE,EAAA,UAAA23C,GAAA,UAAA6gC,aAAA,wCAAA1Y,QAAA,SAAAnvE,GAAA,GAAA,IAAAA,EAAA,MAAAA,GAAA,OAAA,IAAAC,GAAAD,EAAA,GAAAQ,EAAAR,EAAA,IAAAC,EAAAS,EAAAV,GAAA,IAAA,IAAA,IAAA,OAAAA,IAAAwyF,GAAAvyF,IAAAuyF,GAAAhyF,IAAAgyF,GAAA9xF,KAAA+xE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,OAAAvZ,OAAA,sFAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,sDAAA17E,MAAA;AAAA27E,A/BgZA,c+BhZA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,wBAAAC,IAAA,8BAAAC,KAAA,0CAAA5K,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAAR,GAAA,GAAAQ,EAAA,MAAA,MAAAA,EAAA,MAAA,OAAA+2E,UAAAkP,QAAA,cAAAC,QAAA,cAAAC,SAAA,cAAAC,QAAA,eAAAC,SAAA,8BAAAC,SAAA,KAAAnH,cAAA8H,OAAA,YAAAl5B,KAAA,OAAAhuD,EAAAijF,GAAAj3E,EAAAi3E,GAAAjD,GAAAiD,GAAAtgF,EAAAsgF,GAAAhD,GAAAgD,GAAA9iF,EAAA8iF,GAAA/C,GAAA+C,GAAA1qE,EAAA0qE,GAAA9C,GAAA8C,GAAAn0E,EAAAm0E,GAAAx8B,GAAAw8B,IAAAqE,aAAA,YAAA1Y,QAAA,MAAAsD,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA;AAAAvZ,A/BiZA,O+BjZA,wFAAA7vE,MAAA,KAAA8vE,YAAA,wFAAA9vE,MAAA,KAAA07E,SAAA,kDAAA17E,MAAA,KAAA27E,cAAA,kDAAA37E,MAAA,KAAA47E,YAAA,kDAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,eAAAC,QAAA,cAAAC,SAAA,cAAAC,QAAA,gBAAAC,SAAA;AAAAC,A/BkZA,S+BlZA,KAAAnH,cAAA8H,OAAA,iBAAAl5B,KAAA,SAAAhuD,EAAA,OAAAgM,EAAA,QAAAg0E,GAAA,WAAAr9E,EAAA,OAAAs9E,GAAA,cAAA9/E,EAAA,MAAA+/E,GAAA,WAAA3nE,EAAA,QAAA4nE,GAAA,YAAArxE,EAAA,QAAA23C,GAAA,aAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,MAAAmW,GAAAH,aAAA,OAAAvZ,OAAA,kFAAA7vE,MAAA,KAAA8vE,YAAA,kFAAA9vE,MAAA,KAAA07E,SAAA,kDAAA17E,MAAA,KAAA27E,cAAA,kDAAA37E,MAAA,KAAA47E,YAAA,kDAAA57E,MAAA,KAAAivE;AAAA0X,A/BmZA,G+BnZA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,0BAAA7P,UAAAkP,QAAA,cAAAC,QAAA,cAAAC,SAAA,cAAAC,QAAA,eAAAC,SAAA,cAAAC,SAAA,KAAAnH,cAAA8H,OAAA,gBAAAl5B,KAAA,SAAAhuD,EAAA,OAAAgM,EAAA,QAAAg0E,GAAA,WAAAr9E,EAAA,OAAAs9E,GAAA,cAAA9/E,EAAA,MAAA+/E,GAAA,WAAA3nE,EAAA,QAAA4nE,GAAA,YAAArxE,EAAA,QAAA23C,GAAA,aAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,MAAAmW,GAAAH,aAAA,MAAAvZ,QAAAnpC,OAAA,yFAAA1mC,MAAA,KAAAkrF,WAAA,iGAAAlrF,MAAA;A/BoZA,E+BpZA8vE,YAAA,yDAAA9vE,MAAA,KAAA07E,SAAA2H,GAAA1H,cAAA,uBAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,iBAAAC,IAAA,wBAAAC,KAAA,+BAAA7P,UAAAkP,QAAA1C,GAAA,cAAA2C,QAAA3C,GAAA,YAAA6C,QAAA7C,GAAA,WAAA4C,SAAA5C,GAAA,cAAA8C,SAAA,WAAA,OAAAr7E,KAAA4oE,OAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA2P,IAAA,oBAAA/hF,KAAAwJ,KAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAAu4E,IAAA,qBAAA/hF,KAAAwJ,QAAAs7E,SAAA,KAAAnH,cAAA8H,OAAA,QAAAl5B,KAAA,UAAAhuD,EAAA;AAAAgM,A/BqZA,E+BrZAm3E,GAAAnD,GAAAmD,GAAAxgF,EAAA,SAAAs9E,GAAAkD,GAAAhjF,EAAA,OAAA+/E,GAAAiD,GAAA5qE,EAAA,SAAA4nE,GAAAgD,GAAAr0E,EAAA,MAAA23C,GAAA08B,IAAAqG,cAAA,wBAAA/V,KAAA,SAAAh0E,GAAA,MAAA,iBAAAkB,KAAAlB,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,MAAA,GAAAR,EAAA,OAAA,GAAAA,EAAA,QAAA,GAAAA,EAAA,MAAA,UAAA6nF,aAAA,iBAAA1Y,QAAA,SAAAnvE,EAAAC,GAAA,OAAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,MAAA,IAAA,IAAA,IAAA,IAAA,MAAAD,GAAA,IAAA,KAAA,IAAA,MAAAA,GAAA,KAAA,SAAA,MAAAA,KAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,yEAAA7vE,MAAA,KAAA8vE,YAAA,kDAAA9vE,MAAA,KAAA07E,SAAA,uDAAA17E,MAAA;AAAA27E,A/BsZA,c+BtZA,8BAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,cAAAC,IAAA,oBAAAC,KAAA,2BAAA7P,UAAAkP,QAAA,uBAAAC,QAAA,mBAAAC,SAAA,2BAAAC,QAAA,sBAAAC,SAAA,mCAAAC,SAAA,KAAAnH,cAAA8H,OAAA,gBAAAl5B,KAAA,oBAAAhuD,EAAA,SAAAgM,EAAA,aAAAg0E,GAAA,YAAAr9E,EAAA,WAAAs9E,GAAA,UAAA9/E,EAAA,UAAA+/E,GAAA,SAAA3nE,EAAA,SAAA4nE,GAAA,QAAArxE,EAAA,UAAA23C,GAAA,UAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,MAAAvZ,OAAA,qGAAA7vE,MAAA;AAAA8vE,A/BuZA,Y+BvZA,8DAAA9vE,MAAA,KAAA07E,SAAA,yDAAA17E,MAAA,KAAA27E,cAAA,uBAAA37E,MAAA,KAAA47E,YAAA,uBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,QAAAD,IAAA,WAAAnuE,EAAA,aAAAquE,GAAA,oBAAAC,IAAA,0BAAAC,KAAA,gCAAAj/E,EAAA,YAAAylF,GAAA,aAAAC,IAAA,mBAAAC,KAAA,yBAAAvW,UAAAkP,QAAA,mBAAAC,QAAA,oBAAAC,SAAA,yBAAAC,QAAA,mBAAAC,SAAA,yBAAAC,SAAA,KAAAnH;AAAA8H,A/BwZA,O+BxZA,SAAAl5B,KAAA,WAAAhuD,EAAA,WAAAgM,EAAA,WAAAg0E,GAAA,UAAAr9E,EAAA,UAAAs9E,GAAA,SAAA9/E,EAAA,WAAA+/E,GAAA,UAAA3nE,EAAA,YAAA4nE,GAAA,WAAArxE,EAAA,UAAA23C,GAAA,UAAA6gC,aAAA,UAAA1Y,QAAA,SAAAnvE,GAAA,MAAAA,IAAAyyE,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,wCAAA7vE,MAAA,KAAA8vE,YAAA,yCAAA9vE,MAAA,KAAA07E,SAAA,8BAAA17E,MAAA,KAAA27E,cAAA,uBAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,SAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,aAAAC,IAAA,mBAAAC,KAAA,uBAAAj/E,EAAA;AAAAylF,A/ByZA,G+BzZA,aAAAC,IAAA,mBAAAC,KAAA,wBAAA/D,cAAA,oBAAAhW,aAAA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,OAAAC,GAAA,OAAAA,GAAA,OAAAA,EAAAD,EAAA,OAAAC,GAAA,OAAAA,EAAAD,EAAA,GAAAA,GAAA,GAAAA,EAAAA,EAAA,IAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,GAAAE,GAAA,IAAAV,EAAAC,CAAA,OAAA,KAAAS,EAAA,KAAA,IAAAA,EAAA,KAAA,KAAAA,EAAA,KAAA,KAAAA,EAAA,KAAA,KAAAA,EAAA,KAAA,MAAA62E,UAAAkP,QAAA,WAAA,MAAA,KAAAj7E,KAAA0tE,UAAA,aAAA,UAAAwN,QAAA,WAAA,MAAA,KAAAl7E,KAAA0tE,UAAA,aAAA,UAAA0N,QAAA,WAAA,MAAA,KAAAp7E,KAAA0tE,UAAA,aAAA,UAAAyN,SAAA,WAAA,GAAA3mF,GAAAC,CAAA,OAAAD,GAAA6pF,KAAAxS,QAAA,QAAAp3E,EAAAuL,KAAA65E,OAAArlF,EAAAqlF,QAAA,OAAA,MAAA,MAAA,IAAA75E,KAAA0tE,UAAAj5E,EAAA,UAAAA,EAAA;A/B0ZA,E+B1ZA4mF,SAAA,WAAA,GAAA7mF,GAAAC,CAAA,OAAAD,GAAA6pF,KAAAxS,QAAA,QAAAp3E,EAAAuL,KAAA65E,OAAArlF,EAAAqlF,OAAA,MAAA,MAAA,IAAA75E,KAAA0tE,UAAAj5E,EAAA,UAAAA,EAAA,YAAA6mF,SAAA,MAAAe,aAAA,iBAAA1Y,QAAA,SAAAnvE,EAAAC,GAAA,OAAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,MAAA,MAAAD,GAAA,GAAA,KAAA,IAAA,MAAAA,GAAA,GAAA,KAAA,IAAA,IAAA,IAAA,MAAAA,GAAA,GAAA,SAAA,MAAAA,KAAA2/E,cAAA8H,OAAA,MAAAl5B,KAAA,MAAAhuD,EAAA,KAAAgM,EAAA,OAAAg0E,GAAA,QAAAr9E,EAAA,OAAAs9E,GAAA,QAAA9/E,EAAA,MAAA+/E,GAAA,OAAA3nE,EAAA,OAAA4nE,GAAA,QAAArxE,EAAA,MAAA23C,GAAA,QAAAyrB,MAAAgB,IAAA,EAAAC,IAAA,KAAAmW,GAAAH,aAAA,SAAAvZ,OAAA,wCAAA7vE,MAAA,KAAA8vE,YAAA,yCAAA9vE,MAAA,KAAA07E,SAAA,8BAAA17E,MAAA;AAAA27E,A/B2ZA,c+B3ZA,uBAAA37E,MAAA,KAAA47E,YAAA,gBAAA57E,MAAA,KAAAivE,gBAAA0X,GAAA,SAAAD,IAAA,UAAAnuE,EAAA,aAAAquE,GAAA,aAAAC,IAAA,mBAAAC,KAAA,uBAAAj/E,EAAA,aAAAylF,GAAA,aAAAC,IAAA,mBAAAC,KAAA,wBAAA/D,cAAA,iBAAAhW,aAAA,SAAA/zE,EAAAC,GAAA,MAAA,MAAAD,IAAAA,EAAA,GAAA,OAAAC,GAAA,OAAAA,EAAAD,EAAA,OAAAC,EAAAD,GAAA,GAAAA,EAAAA,EAAA,GAAA,OAAAC,GAAA,OAAAA,EAAAD,EAAA,GAAA,QAAAw8E,SAAA,SAAAx8E,EAAAC,EAAAO,GAAA,GAAAE,GAAA,IAAAV,EAAAC,CAAA,OAAA,KAAAS,EAAA,KAAA,KAAAA,EAAA,KAAA,KAAAA,EAAA,KAAA,KAAAA,EAAA,KAAA,MAAA62E,UAAAkP,QAAA,SAAAC,QAAA,SAAAC,SAAA,YAAAC,QAAA,SAAAC,SAAA,YAAAC,SAAA,KAAAe,aAAA;AAAA1Y,A/B4ZA,Q+B5ZA,SAAAnvE,EAAAC,GAAA,OAAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,MAAA,MAAAD,GAAA,GAAA,KAAA,IAAA,MAAAA,GAAA,GAAA,KAAA,IAAA,IAAA,IAAA,MAAAA,GAAA,GAAA,SAAA,MAAAA,KAAA2/E,cAAA8H,OAAA,MAAAl5B,KAAA,MAAAhuD,EAAA,KAAAgM,EAAA,MAAAg0E,GAAA,OAAAr9E,EAAA,MAAAs9E,GAAA,OAAA9/E,EAAA,KAAA+/E,GAAA,MAAA3nE,EAAA,MAAA4nE,GAAA,OAAArxE,EAAA,KAAA23C,GAAA,SAAA6iC,GAAA,OAAA4I,IAAAva,OAAA,MAAAua,MCpEA,SAAAzyF,EAAAC,GAAA,YAAA,mBAAAm1B,SAAAA,OAAAC,IAAAD,OAAA,2BAAA,UAAAn1B,GAAA,gBAAAsmC,SAAAA,OAAAD,QAAAC,OAAAD,QAAArmC,EAAAwpC,QAAA,WAAAxpC,EAAAD,EAAA4sE,SAAAphE,KAAA,SAAAxL,GAAA,YAAA,SAAAC,GAAAD,GAAA,MAAAA,GAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAA,QAAAQ,GAAAR,GAAA,GAAAQ,GAAAE,EAAA,EAAAE,EAAAZ,EAAAM,MAAA,KAAAc,EAAAR,EAAA,GAAAqC,EAAArC,EAAA,IAAA,GAAAsC,EAAA,EAAA2E,EAAA,EAAAI,EAAA,CAAA,KAAA,KAAAjI,EAAAs1B,WAAA,KAAA50B,EAAA;AAAAuH,AhCieA,EgCjeA,IAAAvH,EAAAA,EAAAU,EAAAoB,OAAA9B,IAAAF,EAAAP,EAAAmB,EAAAk0B,WAAA50B,IAAAmH,EAAA,GAAAA,EAAArH,CAAA,KAAAE,EAAA,EAAAA,EAAAuC,EAAAT,OAAA9B,IAAAwC,GAAA,GAAA1C,EAAAP,EAAAgD,EAAAqyB,WAAA50B,IAAAmH,GAAArH,EAAA0C,CAAA,OAAA2E,GAAAI,EAAA,QAAAvH,GAAAV,GAAA,IAAA,GAAAC,GAAA,EAAAA,EAAAD,EAAAwC,OAAAvC,IAAAD,EAAAC,GAAAO,EAAAR,EAAAC,IAAA,QAAAW,GAAAZ,EAAAC,GAAA,IAAA,GAAAO,GAAA,EAAAP,EAAAO,EAAAA,IAAAR,EAAAQ,GAAAuF,KAAA6vE,OAAA51E,EAAAQ,EAAA,IAAA,GAAA,IAAAR,EAAAQ,GAAAR,GAAAC,EAAA,GAAA,EAAA,EAAA,QAAAmB,GAAApB,EAAAC,GAAA,GAAAO,GAAAE,IAAA,KAAAF,EAAA,EAAAA,EAAAP,EAAAuC,OAAAhC,IAAAE,EAAAF,GAAAR,EAAAC,EAAAO,GAAA,OAAAE,GAAA,QAAAuC,GAAAjD,GAAA,GAAAC,GAAAD,EAAAM,MAAA,KAAAE,EAAAP,EAAA,GAAAK,MAAA,KAAA2C,EAAAhD,EAAA,GAAAK,MAAA,IAAA4C,EAAAjD,EAAA,GAAAK,MAAA,IAAA,OAAAI,GAAAF,GAAAE,EAAAuC,GAAAvC,EAAAwC,GAAAtC,EAAAsC,EAAAD,EAAAT,SAAA6V,KAAApY,EAAA,GAAAyyF,MAAAtxF,EAAAnB,EAAA,GAAAK,MAAA,KAAA2C,GAAA0vF,QAAAvxF,EAAAZ,EAAAyC,GAAA2vF,OAAA1vF,EAAA2vF,WAAA,EAAA5yF,EAAA,IAAA,QAAAiD,GAAAlD,GAAAA,GAAAwL,KAAAsnF,KAAA7vF,EAAAjD,IAAA,QAAA6H,GAAA7H,GAAA,GAAAC,GAAAD,EAAA+yF,eAAAvyF,EAAAP,EAAAuiB,MAAA,SAAAhiB,GAAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAgiB,MAAA,UAAAjR,KAAA,IAAAtR,EAAAuiB,MAAA,eAAA;AAAA,AhCkeA,QgCleAhiB,IAAAA,EAAA,QAAAgL,KAAA+rB,IAAAv3B,EAAAwL,KAAAqjE,KAAAruE,EAAAgL,KAAA8oB,OAAAt0B,EAAA61E,oBAAA,QAAA5tE,GAAAjI,GAAAwL,KAAA86E,KAAAtmF,EAAAwL,KAAAwnF,YAAA,EAAAxnF,KAAAynF,UAAA,EAAA,QAAA/qF,GAAAlI,EAAAC,GAAA,IAAA,GAAAO,GAAAE,EAAAA,EAAA,MAAAT,EAAAs3B,GAAAv3B,EAAAu3B,IAAA,KAAA,IAAA/2B,EAAA,GAAAqH,GAAA,GAAA6L,MAAA1T,EAAAu3B,GAAA72B,IAAAF,EAAA8zB,SAAAt0B,EAAAs0B,OAAAt0B,EAAAQ,EAAAP,EAAAO,CAAA,OAAAR,GAAA,QAAAmI,KAAA,GAAAnI,GAAAC,EAAAO,EAAAE,GAAA,GAAAgT,OAAAi+D,cAAA,EAAA/wE,EAAA,GAAAiH,GAAA,GAAA6L,MAAAhT,EAAA,EAAA,IAAAU,GAAAR,EAAA,KAAAJ,EAAA,EAAA,GAAAA,EAAAA,IAAAP,EAAA,GAAA4H,GAAA,GAAA6L,MAAAhT,EAAAF,EAAA,IAAAP,EAAAq0B,SAAA1zB,EAAA0zB,SAAAt0B,EAAAkI,EAAAtH,EAAAX,GAAAmB,EAAAiK,KAAArL,GAAAoB,EAAAiK,KAAA,GAAAxD,GAAA,GAAA6L,MAAA1T,EAAAu3B,GAAA,QAAA32B,EAAAX,CAAA,KAAAO,EAAA,EAAA,EAAAA,EAAAA,IAAAY,EAAAiK,KAAA,GAAAxD,GAAA,GAAA6L,MAAAhT,EAAAF,EAAA,EAAA,KAAAY,EAAAiK,KAAA,GAAAxD,GAAA,GAAA6L,MAAAhT,EAAAF,EAAA,EAAA,IAAA,OAAAY,GAAA,QAAAmL,GAAAvM,EAAAC,GAAA,MAAAD,GAAAgzF,cAAA/yF,EAAA+yF,YAAAhzF,EAAAgzF,YAAA/yF,EAAA+yF,YAAAhzF,EAAAizF,YAAAhzF,EAAAgzF,UAAAjzF,EAAAizF,UAAAhzF,EAAAgzF,UAAAhzF,EAAAqmF,KAAAuM,WAAA7yF,EAAAsmF,KAAAuM;AhCmeA,CgCneA,QAAArmF,GAAAxM,EAAAC,GAAA,GAAAO,GAAAI,CAAA,KAAAF,EAAAT,GAAAO,EAAA,EAAAA,EAAAP,EAAAuC,OAAAhC,IAAAI,EAAAX,EAAAO,GAAAM,EAAAF,GAAAE,EAAAF,OAAAE,EAAAF,GAAAZ,IAAA,EAAA,QAAAyM,GAAAzM,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAZ,EAAAwC,OAAApB,KAAA6B,IAAA,KAAAhD,EAAA,EAAAW,EAAAX,EAAAA,IAAA,CAAAS,EAAAI,EAAAd,EAAAC,GAAAq0B,WAAA,KAAA9zB,IAAAE,GAAAA,EAAAiO,eAAAnO,KAAAY,EAAAZ,IAAA,GAAA,IAAAP,IAAAmB,GAAAA,EAAAuN,eAAA1O,IAAAgD,EAAAoI,KAAApK,EAAAhB,GAAA,OAAAgD,GAAA,QAAA7C,KAAA,GAAAJ,GAAAC,EAAAO,EAAAE,EAAAyH,IAAAvH,EAAAF,EAAA8B,OAAApB,EAAAqL,EAAA/L,GAAAuC,IAAA,KAAAhD,EAAA,EAAAA,EAAAmB,EAAAoB,OAAAvC,IAAA,CAAA,IAAAD,EAAA,GAAAiI,GAAA+G,EAAA5N,EAAAnB,IAAAW,GAAAJ,EAAA,EAAAI,EAAAJ,EAAAA,IAAAR,EAAAkzF,cAAAxyF,EAAAF,GAAAyC,GAAAoI,KAAArL,GAAA,MAAAiD,GAAAwO,KAAAlF,GAAAtJ,EAAAT,OAAA,EAAAS,EAAA,GAAAqjF,KAAAjuE,KAAA,OAAA,QAAA3L,GAAA1M,GAAA,QAAA0P,GAAA1P,KAAA0P,EAAAtP,KAAAsP,EAAA,QAAAX,GAAA/O,GAAA,OAAAA,GAAA,IAAAe,cAAAF,QAAA,MAAA,KAAA,QAAAN,GAAAP,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,CAAA,KAAA,gBAAAZ,KAAAA,GAAAA,IAAAC,EAAA,EAAAA,EAAAD,EAAAwC,OAAAvC,IAAAS,EAAAV,EAAAC,GAAAK,MAAA,KAAAE,EAAAE,EAAA,GAAAE,EAAAmO,EAAAvO,GAAAL,EAAAS,GAAAZ,EAAAC;AAAAgB,AhCoeA,EgCpeAL,GAAAJ,EAAAE,EAAA,IAAA8L,EAAA5L,EAAAF,EAAA,GAAAJ,MAAA,MAAA,QAAA0O,GAAAhP,EAAAC,GAAAD,EAAA+O,EAAA/O,EAAA,IAAAQ,GAAAE,EAAAP,EAAAH,EAAA,OAAAU,aAAAwC,GAAAxC,EAAA,gBAAAA,IAAAA,EAAA,GAAAwC,GAAAxC,GAAAP,EAAAH,GAAAU,EAAAA,GAAAR,EAAAF,IAAAC,IAAA+O,IAAAxO,EAAAwO,EAAA9O,EAAAF,GAAAgP,KAAAtO,EAAAP,EAAAH,GAAA,GAAAkD,GAAAxC,EAAAoyF,KAAAtyF,GAAAE,EAAA2X,KAAApX,EAAAjB,GAAAU,GAAA,KAAA,QAAAuO,KAAA,GAAAjP,GAAAC,IAAA,KAAAD,IAAAiB,GAAAA,EAAA0N,eAAA3O,KAAAG,EAAAH,IAAAG,EAAAD,EAAAF,MAAAiB,EAAAjB,IAAAC,EAAAoL,KAAApK,EAAAjB,GAAA,OAAAC,GAAAwR,OAAA,QAAAvC,GAAAlP,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,CAAA,KAAA,gBAAAZ,KAAAA,GAAAA,IAAAC,EAAA,EAAAA,EAAAD,EAAAwC,OAAAvC,IAAAO,EAAAR,EAAAC,GAAAK,MAAA,KAAAI,EAAAqO,EAAAvO,EAAA,IAAAI,EAAAmO,EAAAvO,EAAA,IAAAN,EAAAQ,GAAAE,EAAAK,EAAAP,GAAAF,EAAA,GAAAN,EAAAU,GAAAF,EAAAO,EAAAL,GAAAJ,EAAA,GAAA,QAAA2O,GAAAnP,GAAAO,EAAAP,EAAAmzF,OAAAjkF,EAAAlP,EAAAozF,OAAA7jF,EAAA8jF,YAAArzF,EAAA4qB,QAAA,QAAAxb,GAAApP,GAAA,MAAAoP,GAAAkkF,eAAAlkF,EAAAkkF,cAAA,EAAAhkF,EAAA,yBAAAtP,EAAA,uDAAAA,EAAA;AhCqeA,EgCreAgP,EAAAhP,GAAA,QAAAqP,GAAArP,GAAA,SAAAA,EAAA0vE,IAAA,SAAA1vE,EAAAmuE,MAAA,QAAA7+D,GAAAtP,GAAA,mBAAAw2C,UAAA,kBAAAA,SAAAntC,OAAAmtC,QAAAntC,MAAArJ,GAAA,QAAAuP,GAAAtP,GAAA,GAAAO,GAAA+N,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EAAA,IAAA5Q,EAAA4Q,UAAAA,UAAA9O,OAAA,GAAA5B,EAAAoO,EAAAtO,GAAAU,EAAApB,EAAA+sE,IAAA17D,MAAA,KAAA7Q,EAAA,OAAAI,KAAAZ,EAAAwpF,SAAAvpF,IAAAoP,EAAAjO,IAAAA,EAAAkC,IAAA1C,EAAA+R,MAAAvR,GAAA,WAAAA,EAAAmyF,GAAA7yF,GAAAU,EAAA,QAAAoO,GAAAxP,GAAA,MAAA,YAAA,MAAAwL,MAAAgoF,GAAAhoF,KAAAgoF,GAAA3kB,KAAArjE,MAAAxL,EAAAgC,KAAAwJ,OAAA,QAAAiE,GAAAzP,GAAA,MAAA,YAAA,MAAAwL,MAAAgoF,GAAA,KAAAxzF,EAAAqR,MAAA7F,KAAA8F,YAAA,GAAA,SAAAtR,EAAAuzF,GAAA,MAAAjkF,GAAA,mBAAAtP,EAAAuzF,GAAA3oE,QAAA,wBAAA5qB,EAAAuzF,GAAAF,YAAA,kBAAA,oBAAArzF,EAAAuzF,GAAAF,aAAArzF,CAAA,IAAA0P,GAAAM,EAAA,QAAA7P,KAAAD,KAAAe,KAAAH,KAAAL,EAAAT,EAAA4qB,QAAAtqB,MAAA,KAAAgB,GAAAb,EAAA,GAAAoY,GAAApY,EAAA;AhCseA,CgCteA,EAAAa,GAAA,IAAAA,GAAA,EAAAuX,IAAAvJ,EAAA,wEAAAtP,EAAA4qB,QAAA,sBAAA1nB,EAAAyK,WAAAmlF,KAAA,SAAA9yF,GAAAwL,KAAA6M,KAAArY,EAAAqY,KAAA7M,KAAAknF,MAAA1yF,EAAA0yF,MAAAlnF,KAAAonF,OAAA5yF,EAAA4yF,OAAApnF,KAAAmnF,QAAA3yF,EAAA2yF,QAAAnnF,KAAAqnF,WAAA7yF,EAAA6yF,YAAAY,OAAA,SAAAzzF,GAAA,GAAAC,GAAAO,GAAAR,EAAAU,EAAA8K,KAAAonF,MAAA,KAAA3yF,EAAA,EAAAA,EAAAS,EAAA8B,OAAAvC,IAAA,GAAAO,EAAAE,EAAAT,GAAA,MAAAA,IAAA0S,MAAA,SAAA3S,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAQ,GAAApB,EAAAiD,EAAAuI,KAAAmnF,QAAAzvF,EAAAsI,KAAAonF,OAAA/qF,EAAA3E,EAAAV,OAAA,CAAA,KAAA5B,EAAA,EAAAiH,EAAAjH,EAAAA,IAAA,GAAAX,EAAAgD,EAAArC,GAAAJ,EAAAyC,EAAArC,EAAA,GAAAF,EAAAuC,EAAArC,EAAAA,EAAA,EAAAA,GAAAJ,EAAAP,GAAAsP,EAAAmkF,qBAAAzzF,EAAAO,EAAAP,EAAAS,GAAA6O,EAAAokF,qBAAA1zF,EAAAS,GAAAU,EAAA8B,EAAAtC,GAAA,IAAAX,EAAA,MAAAgD,GAAArC,EAAA,OAAAqC,GAAA4E,IAAAgnE,KAAA,SAAA7uE,GAAA,MAAAwL,MAAAknF,MAAAlnF,KAAAioF,OAAAzzF,KAAAs0B,OAAA,SAAAt0B,GAAA,MAAAwL,MAAAmnF,QAAAnnF,KAAAioF,OAAAzzF;AhCueA,GgCveAiI,EAAA0F,UAAAulF,cAAA,SAAAlzF,GAAAwL,KAAAwnF,aAAAjtF,KAAA6uC,IAAAppC,KAAA86E,KAAAhyD,OAAAt0B,EAAAu3B,IAAAv3B,EAAAs0B,QAAA9oB,KAAA86E,KAAAzX,KAAA7uE,EAAAu3B,IAAA/U,MAAA,UAAAjR,KAAA,MAAAvR,EAAA6uE,MAAArjE,KAAAynF,aAAA1jF,EAAAqb,QAAA5a,EAAAT,EAAA8jF,YAAA,GAAA9jF,EAAAqkF,OAAAzzF,EAAAoP,EAAAskF,OAAA3zF,EAAAqP,EAAAukF,OAAA7yF,EAAAsO,EAAAjM,IAAA/C,EAAAgP,EAAAwkF,KAAA7kF,EAAAK,EAAA2Q,KAAA/Q,EAAAI,EAAA+2E,KAAAt3E,EAAAO,EAAAykF,WAAA5kF,EAAAG,EAAA0kF,MAAAvnF,EAAA6C,EAAA2kF,MAAAjlF,EAAAM,EAAA4kF,KAAAjxF,EAAAqM,EAAA6kF,OAAAnxF,EAAAsM,EAAA8kF,aAAA7zF,EAAA+O,EAAA+kF,YAAAjlF,EAAAE,EAAAokF,oBAAA,EAAApkF,EAAAmkF,sBAAA,CAAA,IAAA56E,GAAA9Y,EAAA6O,EAAA7O,GAAAuzF,GAAAhkF,EAAAvP,EAAAu0F,YAAA,KAAAv0F,EAAAyuE,aAAA,SAAAxuE,EAAAO,GAAA,GAAAE,GAAAE,EAAAZ,EAAAu0F,WAAA,UAAAt0F,EAAAuzF,KAAA5yF,GAAAyO,EAAApP,KAAAA,EAAAmuE,SAAAnuE,EAAAytE,GAAA1tE,EAAA+sE,IAAA9sE,EAAAyvE,IAAAhC,GAAAztE,EAAA8sE,MAAAzpE,IAAA1C,EAAA+R,MAAA1S,GAAA,YAAAA,EAAAuzF,GAAA5yF,GAAAX,EAAAuzF,KAAA9yF,EAAAT,EAAAuzF,GAAAl/D,OAAAr0B,GAAA8F,KAAA6uC,IAAAl0C,GAAA,KAAAA,GAAA,IAAA,SAAAT,EAAAs1E,UAAAt1E,EAAAs1E,WAAA70E,EAAAF,GAAAP,EAAAqmF,KAAA5lF,EAAAF;AhCweA,EgCxeAsY,EAAAy6E,GAAA,SAAAtzF,GAAA,MAAAA,IAAAuL,KAAAgoF,GAAAxkF,EAAA/O,GAAAuL,KAAAgoF,GAAAxzF,EAAAyuE,aAAAjjE,MAAA8D,EAAA,mCAAArP,EAAA,4DAAAuL,MAAAA,KAAAgoF,GAAAhoF,KAAAgoF,GAAAn7E,KAAA,QAAAS,EAAAstE,SAAA52E,EAAAsJ,EAAAstE,UAAAttE,EAAAqtE,SAAA32E,EAAAsJ,EAAAqtE,UAAArtE,EAAAi0D,IAAAt9D,EAAAqJ,EAAAi0D,KAAA/sE,EAAAuzF,GAAAiB,WAAA,SAAAv0F,GAAA,OAAA,EAAAqB,GAAA,IAAAA,GAAA,EAAAuX,IAAAvJ,EAAA,qFAAAtP,EAAA4qB,QAAA,KAAA5qB,EAAAu0F,YAAAt0F,EAAA+O,EAAA/O,GAAA,KAAAD,EAAA,IAAA+Y,GAAA/Y,EAAAgkF,gBAAA,OAAA,mBAAAv1E,OAAAd,UAAAe,SAAA1M,KAAA+W,IAAAA,EAAA1N,KAAA,MAAA0N,EAAA1N,KAAA,OAAA0N,IAAAA,EAAAy6E,GAAA,MAAArkF,GAAAyb,QAAA,QAAAuoE,OAAA,gDAAA,oTAAA,2FAAA,sQAAA,iDAAA,gEAAA,mDAAA,8wBAAA,omBAAA,kxBAAA,oiBAAA,yFAAA,+QAAA,kEAAA,4EAAA,4PAAA,uPAAA,mnBAAA,u4BAAA,k5BAAA,yDAAA,oVAAA,+ZAAA,oaAAA,kaAAA,8ZAAA,waAAA,2aAAA,uaAAA,qZAAA,waAAA,ibAAA,6aAAA,kaAAA,mEAAA,qzBAAA,kGAAA,uYAAA,0nBAAA,4HAAA,uNAAA,6WAAA,yFAAA,iPAAA,yEAAA,q6BAAA,gyBAAA,+vBAAA,wTAAA,0EAAA,mEAAA,+SAAA,u5CAAA,8lBAAA,8GAAA,qDAAA,8uBAAA,2QAAA,gyBAAA,qZAAA,g8BAAA,42BAAA,+7BAAA,wPAAA,uFAAA,u6BAAA,04BAAA,6mBAAA,4QAAA,82BAAA,suBAAA,0vCAAA,0fAAA,6GAAA,iDAAA,6FAAA,s2CAAA,+6BAAA,8JAAA,i7BAAA,2oBAAA,2tBAAA,ioBAAA,ugBAAA,ioBAAA,oqBAAA,6uBAAA,ywBAAA,oLAAA,q4BAAA,4kCAAA,45BAAA,kEAAA,2IAAA,6mCAAA,0RAAA,qJAAA,mOAAA,6EAAA,giBAAA,+mBAAA,k3BAAA,kkBAAA,6PAAA,6oBAAA,kpBAAA,uuCAAA,8jBAAA,wkBAAA,63CAAA,q5BAAA,m5CAAA,4zBAAA,y4BAAA,gRAAA,w6BAAA,w6BAAA,26BAAA,gkBAAA,kDAAA,iyBAAA,sHAAA,2GAAA,0iBAAA,+OAAA,6NAAA,qEAAA,+zBAAA,6uBAAA,+QAAA,oYAAA,wuBAAA,w8BAAA,uOAAA,mvBAAA,iKAAA,4vBAAA,wvBAAA,63BAAA,67CAAA,yNAAA,kGAAA,+kBAAA,+1BAAA,qoCAAA,oyBAAA,2mCAAA,u3BAAA,qwBAAA,8EAAA,0FAAA,2EAAA,skBAAA,+DAAA,48BAAA,qiBAAA,+CAAA,8CAAA,kbAAA,+CAAA,61BAAA,gDAAA,gWAAA,yuBAAA,udAAA,iaAAA,iYAAA,wPAAA,qXAAA,iEAAA,qvBAAA,kDAAA,81BAAA,0ZAAA,iEAAA,sFAAA,2dAAA,0oBAAA,wIAAA,2HAAA,yHAAA,o7BAAA,oGAAA,gDAAA,sOAAA,44BAAA,w5BAAA,sIAAA,idAAA,wmBAAA,odAAA,6iCAAA,qHAAA,0EAAA,g4BAAA,4CAAA,ucAAA,oJAAA,iDAAA,qEAAA,2fAAA,wdAAA,4IAAA,8LAAA,sTAAA,odAAA,0FAAA,8FAAA,iyBAAA,4eAAA,mdAAA,idAAA,uZAAA,2IAAA,mGAAA,kZAAA,iFAAA,oeAAA,oPAAA,qNAAA,sJAAA,meAAA,oSAAA,oPAAA,4ZAAA,yqBAAA,kEAAA,kGAAA,+mBAAA,+fAAA,wdAAA,odAAA,+fAAA,4dAAA,y1CAAA,+xBAAA,ovBAAA,4FAAA,wtBAAA,o1CAAA,ucAAA,sCAAA,0cAAA,k2BAAA,k2BAAA,4IAAA,s2BAAA,02BAAA,6FAAA,sJAAA,u5BAAA,2tBAAA,gKAAA,q2BAAA,qJAAA,2zBAAA,s4BAAA,0nBAAA,quBAAA,gBAAA,s4BAAA,62CAAA,qBAAA,wBAAA,0BAAA,0BAAA,0BAAA,wBAAA,wBAAA,wBAAA,wBAAA,wBAAA,wBAAA,wBAAA,wBAAA,yBAAA,2BAAA,2BAAA,2BAAA,2BAAA,2BAAA,yBAAA,yBAAA,yBAAA,yBAAA,yBAAA,yBAAA,yBAAA,yBAAA,mBAAA,mBAAA,qmCAAA,mqBAAA,02BAAA,o6CAAA,+tBAAA,g3BAAA,k2BAAA,8mCAAA,o1BAAA,25BAAA,+tBAAA,64BAAA,izBAAA,usCAAA,yuBAAA,ojBAAA,qxBAAA,s1CAAA,4oCAAA,kgCAAA,6/BAAA,2eAAA,yoCAAA,2jBAAA,+nCAAA,+zBAAA,s/BAAA,kgBAAA,ihBAAA,kxBAAA,iuBAAA,iyBAAA,m0BAAA,uwBAAA,q1BAAA,4xBAAA,ogBAAA,ogCAAA,4xBAAA,gBAAA,oEAAA,mCAAA,8BAAA,8CAAA,iDAAA,gDAAA,qFAAA,oDAAA,+DAAA,2zBAAA,gBAAA,s4BAAA,yyBAAA,s4BAAA,yaAAA,2EAAA,iCAAA,qLAAA,6DAAA,8CAAA,mZAAA,mCAAA,sEAAA,mDAAA,yDAAA,8CAAA,8EAAA,iEAAA,uDAAA,8CAAA,kDAAA,kFAAA,wFAAA,yDAAA,mFAAA,iGAAA,gCAAA,6CAAA,mCAAA,uCAAA,iMAAA,mDAAA,kCAAA,+FAAA,gCAAA,+BAAA;AACAC,AhCweA,OgCxeA,+BAAA,+BAAA,gCAAA,8BAAA,iCAAA,6BAAA,mCAAA,oCAAA,iCAAA,iCAAA,oCAAA,qBAAA,oCAAA,qCAAA,8BAAA,6BAAA,kCAAA,6BAAA,+BAAA,iCAAA,6BAAA,6BAAA,6BAAA,iCAAA,gCAAA,iCAAA,gCAAA,8BAAA,8BAAA,kCAAA,8BAAA,oCAAA,+BAAA,+BAAA,sCAAA,iCAAA,gCAAA,kCAAA,qCAAA,+BAAA,gCAAA,uBAAA,4BAAA,2BAAA,8BAAA,sDAAA,+DAAA,gDAAA,4CAAA,4CAAA,wCAAA,4CAAA,yCAAA,6BAAA,gCAAA,qCAAA,wCAAA,kCAAA,wBAAA,6BAAA,8BAAA,mCAAA,kDAAA,0CAAA,qCAAA,kCAAA,sBAAA,uCAAA,yCAAA,0BAAA,iDAAA,iCAAA,qCAAA,6BAAA,kCAAA,qCAAA,8BAAA,mCAAA,6BAAA,yCAAA,wCAAA,yCAAA,wCAAA,2CAAA,wCAAA,2CAAA,8CAAA,yCAAA,yCAAA,0CAAA,2CAAA,wCAAA,uCAAA,0CAAA,qCAAA,wCAAA,iCAAA,qCAAA,gCAAA,uCAAA,mCAAA,mCAAA,mCAAA,iCAAA,mCAAA,kCAAA,kCAAA,+BAAA,+BAAA,8BAAA,wBAAA,yBAAA,+BAAA,0BAAA,+BAAA,wBAAA,+BAAA,6BAAA,wBAAA,mCAAA,8BAAA,0BAAA,wBAAA,0BAAA,iBAAA,+BAAA,+BAAA,4BAAA,oBAAA,2BAAA,kBAAA,mBAAA,2BAAA,mBAAA,mCAAA,2BAAA,iCAAA,6BAAA,qCAAA,0CAAA,6CAAA,mCAAA,sCAAA,oCAAA,yCAAA,iCAAA,iCAAA,sCAAA,iCAAA,oBAAA,sBAAA,qBAAA,0BAAA,gBAAA,kBAAA,kBAAA,iBAAA,sBAAA,cAAA,wBAAA,mBAAA,cAAA,oBAAA,eAAA,mCAAA,mCAAA,kCAAA,gCAAA,gCAAA,kCAAA,qBAAA,mCAAA,gCAAA,yBAAA,yBAAA,+BAAA,gCAAA,mCAAA,8BAAA,mBAAA,wBAAA,qBAAA,kCAAA,iCAAA,kCAAA,gCAAA,6BAAA,uBAAA,gCAAA,6BAAA,sCAAA,yCAAA,sBAAA,0BAAA,6BAAA,4BAAA,oCAAA,8BAAA,oCAAA,6BAAA,8BAAA,mCAAA,kCAAA,6BAAA;AhCyeA,GgCzeApzF,ICkBAo1B,OAAA,iCACA,SACA,eACA,aACA,SACA,WACA,2BACA,SAAA/Y,EAAA6xB,QAAAu0B,MAAAmK,OAAAj1D,MACA,YAEA,IAAA88E,UAAA7nB,OAAA2mB,GAAAU,QAEA/uF,MAAAqJ,MAAAZ,UAAAzI,KASA,OAAA,UAAAwvF,eAAA/3B,QAGA,GAAAg4B,UAWA70B,QAGA80B,QAXAC,UAGA/oF,SAWA6mC,SAAA,EAMAmiD,aAAA,SAAAC,OAEA,GAAAC,SAAA,UAAAD,MAAA18E,KAGA48E,aAAA,WACA,GAAAprF,KAAA+iE,SACAvrE,MACAmP,GAAAmH,KAAA,EAAA,IACAzT,KAAA6wF,MAAA18E,KACA68E,UAAArrF,IAAAm9B,OAAA,KAAA,IACAmuD,SAAAtrF,IAAA0pF,GAAAkB,UAAAztD,OAAA,KAEA,mBAAA+tD,OAAAK,UACA/zF,KAAA6O,QAAA6kF,MAAAK,QAAA/jF,MAAA0jF,OAAAp4B,QAAA3yD,OAAA9E,MAAAlD,KAAAsP,cAEAqjF,SAAAtpF,KAAAhK;AjCyZA,CiCrZA,OAAA0zF,OAAAM,QACAC,oBAAAP,WAGA14E,GAAAikB,QAAAy0D,MAAA5xF,OAAA,SAAAy1C,WACA,GAAA28C,QAAA38C,UAAApqC,QAAA,KAAA,EAAAoqC,UAAAA,UAAAo8C,OACAr4B,QAAAr7C,GAAAi0E,OAAAl5E,EAAAklB,QAAA0zD,aAAAr8C,eAIA08C,oBAAA,SAAAP,OAEA,GAAAC,SAAA,UAAAD,MAAA18E,KAGAm9E,aAAA,WACA,GAAA3rF,KAAA+iE,SACAvrE,MACAmP,GAAAmH,KAAA,EAAA,IACA89E,OAAA,QACAvxF,KAAA6wF,MAAA18E,KACA68E,UAAArrF,IAAAm9B,OAAA,KAAA,IACAmuD,SAAAtrF,IAAA0pF,GAAAkB,UAAAztD,OAAA,KAGA,mBAAA+tD,OAAAK,UACA/zF,KAAA6O,QAAA6kF,MAAAK,QAAA/jF,MAAA0jF,OAAAp4B,QAAA3yD,OAAA9E,MAAAlD,KAAAsP,cAEAqjF,SAAAtpF,KAAAhK,OAIAq0F,YAAA,WACA,GACAtkF,MADAvH,IAAA+iE,SAEAvrE,MACA6C,KAAA6wF,MAAA18E,KACA68E,UAAArrF,IAAAm9B,OAAA,KAAA;AACAmuD,AjCgXA,SiChXAtrF,IAAA0pF,GAAAkB,UAAAztD,OAAA,MAEA6J,KAAA3rC,MAAAlD,KAAAsP,UACAqjF,UAAAgB,WAAAhhF,KAAA,SAAA7I,OACAsF,KAAAiL,EAAAinB,SAAAx3B,OAAA5H,KAAA6wF,MAAA18E,KAAAo9E,OAAA,UACArkF,OAAAiL,EAAAinB,SAAAx3B,OAAA5H,KAAA6wF,MAAA18E,KAAAo9E,OAAA,OAAAjlF,GAAAY,KAAAZ,OACAnP,KAAAmP,GAAAY,KAAAZ,GACAnP,KAAAo0F,OAAA,MACA,kBAAAV,OAAAK,UACA/zF,KAAA6O,QAAA6kF,MAAAK,QAAA/jF,MAAA0jF,OAAAp4B,QAAA3yD,OAAA6mC,QAEA8jD,SAAAtpF,KAAAhK,SAMA,OAAA0zF,OAAAM,SAIAh5E,EAAAikB,QAAAy0D,MAAAa,YAAA,SAAAh9C,WACA,GAAA28C,QAAA38C,UAAApqC,QAAA,KAAA,EAAAoqC,UAAAA,UAAAo8C,OACAr4B,QAAAr7C,GAAAi0E,OAAAl5E,EAAAklB,QAAAi0D,aAAA58C,kBAEAv8B,GAAAikB,QAAAy0D,MAAAc,WAAA,SAAAj9C,WACA,GAAA28C,QAAA38C,UAAApqC,QAAA,KAAA,EAAAoqC,UAAAA,UAAAo8C;AACAr4B,AjCsVA,OiCtVAr7C,GAAAi0E,OAAAl5E,EAAAklB,QAAAm0D,YAAA98C,eATAk8C,aAAAC,QAiBAe,WAAA,WACA,MAAAh2B,SACA5xB,QAAAt5B,QAAAkrD,SAEA2C,MAAA,cAAAiyB,gBAAA//E,KAAA,SAAAohF,YAEA,MADAj2B,SAAAi2B,WACA7nD,QAAAt5B,QAAAkrD,WAKA,IAAAzjD,EAAAynB,QAAA4wD,gBACA,KAAA,IAAA/3D,WAAA,+BAEA,KAAAtgB,EAAAjM,cAAAusD,UAAAtgD,EAAAva,WAAA66D,OAAA/uD,QAAAyO,EAAAva,WAAA66D,OAAAr7C,IACA,KAAA,IAAAqb,WAAA,2BAuKA,OAjKAg4D,WAcArxF,IAAA,SAAAyxF,OAIA,IAAA14E,EAAAjM,cAAA2kF,OACA,KAAA,IAAAp4D,WAAA,4BAEA,KAAAtgB,EAAA+nB,SAAA2wD,MAAA18E,OAAAgE,EAAAynB,QAAAixD,MAAA18E,MACA,KAAA,IAAAskB,WAAA;AAEA,AjCkSA,GiClSAtgB,EAAAkmB,MAAAsyD,QAAAx8E,KAAA08E,MAAA18E,OAAA7V,OAAA,EACA,KAAA,IAAAm6B,WAAA,+CAGA,IAAAo4D,MAAAM,QAAA,CAOA,GANAh5E,EAAA+nB,SAAA2wD,MAAAa,eAAAv5E,EAAAynB,QAAAixD,MAAAa,eACAb,MAAAa,aAAAb,MAAAa,cAEAv5E,EAAA+nB,SAAA2wD,MAAAc,cAAAx5E,EAAAynB,QAAAixD,MAAAc,cACAd,MAAAc,YAAAd,MAAAc,cAEAd,MAAAa,YAAApzF,SAAAuyF,MAAAc,WAAArzF,OACA,KAAA,IAAAm6B,WAAA,oEAIAgW,UACA2iD,oBAAAP,WAEA,CAIA,GAHA14E,EAAA+nB,SAAA2wD,MAAA5xF,UAAAkZ,EAAAynB,QAAAixD,MAAA5xF,UACA4xF,MAAA5xF,QAAA4xF,MAAA5xF,UAEAkZ,EAAA3U,QAAAqtF,MAAA5xF,SAAA,IAAA4xF,MAAA5xF,OAAAX,OACA,KAAA,IAAAm6B,WAAA;AAIAgW,AjCuQA,SiCtQAmiD,aAAAC,OAMA,MAFAF,QAAAxpF,KAAA0pF,OAEAvpF,MAQAmqF,SAAA,WACA,MAAAG,cAAAnhF,KAAA,SAAAmrD,SACA,MAAAA,SAAAI,QAAA,YAQA81B,UAAA,WACA,MAAAnB,SAOAxpF,KAAA,SAAA2jC,OACAljC,MAAAT,KAAA2jC,OAGA4lD,QACAA,QAAAjgF,KAAA,WACA,MAAAmhF,cAAAnhF,KAAA,SAAAmrD,SACA,MAAAA,SAAAM,QAAA,QAAAt0D,WAIA8oF,QAAAkB,aAAAnhF,KAAA,SAAAmrD,SACA,MAAAA,SAAAM,QAAA,QAAAt0D,UASAmwD,MAAA,WAEA,MAAA65B,cAAAnhF,KAAA,SAAAmrD,SACA,MAAA,IAAA5xB,SAAA,SAAAt5B,SACAkrD,QAAAI,QAAA,SAAAvrD,KAAA,SAAAshF,SAEA,MADAnqF,UACAg0D,QAAAM,QAAA,QAAAt0D,OAAA6I,KAAA,WACAC,QAAAqhF;AjC2MA,EiChMAvqF,MAAA,WACA,MAAAoqF,cAAAnhF,KAAA,SAAAmrD,SACA,MAAAA,SAAAI,QAAA,SAAAvrD,KAAA,SAAAuhF,YACA75E,EAAA3U,QAAAwuF,cACApqF,MAAAoqF,YAEA75E,EAAAikB,QAAAu0D,OAAAC,cACAniD,SAAA,OAWArnC,KAAA,WAcA,MAbAqnC,UAAA,EACAt2B,EAAAikB,QAAAu0D,OAAA,SAAAE,OACA,GAAAC,SAAA,UAAAD,MAAA18E,KACA89E,cAAA,SAAAv9C,WACA+jB,OAAA5qD,IAAA6mC,UAAAo8C,SAGA34E,GAAAikB,QAAAy0D,MAAAa,YAAAO,eACA95E,EAAAikB,QAAAy0D,MAAAc,WAAAM,eACA95E,EAAAikB,QAAAy0D,MAAA5xF,OAAAgzF,iBAGArqF,SACAgqF,aAAAnhF,KAAA,SAAAmrD,SACA,MAAAA,SAAAQ,eClUAlrC,OAAA,iCACA,UACA,SAAA/Y,GACA,YAMA,SAAA+5E;AACA,AlCwdA,OkCvdAC,SAAA,EACAC,QAAA,EACAC,OAAA,EACAC,MAAA,GAOA,OAMAC,SAAA,SAAAjlF,KACA,MAAAA,MAAAA,IAAAklF,OAQAC,SAAA,SAAAnlF,KACA,MAAAA,MAAAA,IAAAs0C,OASA8wC,QAAA,SAAAplF,IAAAga,UACA,GAAAkrE,OAAAlrF,KAAAirF,SAAAjlF,IACA,OAAAklF,QAAAA,MAAAlrE,WASAqrE,QAAA,SAAArlF,IAAAslF,UACA,GAAAhxC,OAAAt6C,KAAAmrF,SAAAnlF,IACA,OAAAs0C,QAAAA,MAAAgxC,WASAC,WAAA,SAAAvlF,IAAAwlF,aACA,GAAAlxC,OAAAt6C,KAAAmrF,SAAAnlF,KACAylF,QAAA,IAQA,OAPA56E,GAAAikB,QAAAwlB,MAAA,SAAApjC,MACA,GAAAw0E,UAAAx0E,KAAAw0E,QACA,OAAAA,WAAAA,SAAAF,cACAC,QAAAC,SAAAF,cACA,GAFA,SAKAC,SASA/2B,QAAA,SAAA1uD,IAAA2lF,UACA,GAAA53B,MAAAljD,EAAA5L,KAAAjF,KAAAirF,SAAAjlF,MAAA4lF,WAAAD,UACA,OAAA3rF,MAAA6rF,UAAA7lF,IAAA+tD,MAAAA,KAAA/zC;AlC0YA,EkClYA8rE,aAAA,SAAA9lF,KACA,MAAAA,MAAAA,IAAA+lF,OASAC,aAAA,SAAAhmF,IAAAslF,UACA,GAAAp0E,MAAAlX,KAAAqrF,QAAArlF,IAAAslF,SACA,OAAAp0E,OAAAA,KAAA60E,OASAE,gBAAA,SAAAjmF,IAAAwlF,aACA,GAAAC,SAAAzrF,KAAAurF,WAAAvlF,IAAAwlF,YACA,OAAAC,UAAAA,QAAAM,OAUAG,cAAA,SAAAlmF,IAAAga,SAAA8zC,OACA,GAAAC,MAAA/zD,KAAAorF,QAAAplF,IAAAga,SAEA,QAAA8zC,OACA,IAAA,UACA,MAAA9zD,MAAAisF,gBAAAjmF,IAAA+tD,MAAAA,KAAA03B,QAEA,KAAA,OACA,MAAAzrF,MAAAgsF,aAAAhmF,IAAA+tD,MAAAA,KAAA78C,KAEA,SACA,IAAA,OACA,MAAAlX,MAAA8rF,aAAA9lF,OAUAmmF,YAAA,SAAAnmF,IAAAga,UACA,GAAA+zC,MAAA/zD,KAAAorF,QAAAplF,IAAAga,SACA,OAAAhgB,MAAAqrF,QAAArlF,IAAA+tD,MAAAA,KAAA78C,OASAk1E,eAAA,SAAApmF,IAAAga;AACA,AlCgUA,GkChUA+zC,MAAA/zD,KAAAorF,QAAAplF,IAAAga,UACA9I,KAAAlX,KAAAqrF,QAAArlF,IAAA+tD,MAAAA,KAAA78C,MACAw0E,SAAAx0E,MAAAA,KAAAw0E,QACA,OAAAA,WAAAA,SAAA33B,MAAAA,KAAA03B,UASAI,UAAA,SAAA7lF,IAAAga,UACA,GAAA+zC,MAAA/zD,KAAAorF,QAAAplF,IAAAga,UACA9I,KAAAlX,KAAAqrF,QAAArlF,IAAA+tD,MAAAA,KAAA78C,MACAw0E,SAAAx0E,MAAAA,KAAAw0E,SACAD,QAAAC,UAAAA,SAAA33B,MAAAA,KAAA03B,SACAY,MAAAZ,SAAAA,QAAAY,KACA,OAAAA,QAAAA,MAAAt4B,MAAAA,KAAA63B,aASAU,gBAAA,SAAAtmF,IAAAga,UACA,GAAA+zC,MAAA/zD,KAAAorF,QAAAplF,IAAAga,UACA9I,KAAAlX,KAAAqrF,QAAArlF,IAAA+tD,MAAAA,KAAA78C,MACAw0E,SAAAx0E,MAAAA,KAAAw0E,SACAD,QAAAC,UAAAA,SAAA33B,MAAAA,KAAA03B,QAMA,OAJAA,SAAAM,MAAA/rF,KAAAusF,iBAAAd,QAAAY,OACAn1E,KAAA60E,MAAA/rF,KAAAwsF,aAAAt1E,KAAAw0E;AACA1lF,AlC8RA,IkC9RA+lF,MAAA/rF,KAAAwsF,aAAAxsF,KAAAmrF,SAAAnlF,MAEAA,KAQAumF,iBAAA,SAAAF,OACA,MAAAx7E,GAAAmoB,OAAAqzD,MAAA,SAAAjxD,IAAAkP,MAWA,MAVAA,MAAAugD,UACAzvD,IAAAyvD,WAEAvgD,KAAAwgD,SACA1vD,IAAA0vD,UAEAxgD,KAAAygD,QACA3vD,IAAA2vD,SAEA3vD,IAAA4vD,QACA5vD,KACAwvD,kBAQA4B,aAAA,SAAAC,YACA,MAAA57E,GAAAmoB,OAAAyzD,WAAA,SAAArxD,IAAAkP,MAKA,MAJAlP,KAAAyvD,UAAAvgD,KAAAyhD,MAAAlB,SACAzvD,IAAA0vD,SAAAxgD,KAAAyhD,MAAAjB,QACA1vD,IAAA2vD,QAAAzgD,KAAAyhD,MAAAhB,OACA3vD,IAAA4vD,OAAA1gD,KAAAyhD,MAAAf,MACA5vD,KACAwvD,qBCzOAhhE,OAAA,YACA,UACA,SAAA/Y,GACA,YAGA,IAAA67E,UACAC,SAAA,qBACAC,OAAA,+CACAvwB,MAAA;AnCydA,AmCxdAz9C,IAAA,2IAOAiuE,SAiBA1lF,MAAA,SAAAyX,KACA,GAAA5L,SACAqf,MAAA,SAAA,WAAA,YAAA,WAAA,OAAA,WAAA,OAAA,OAAA,WAAA,OAAA,YAAA,OAAA,cAAA,QACAh2B,EAAAg2B,KAAAr7B,OACA81F,OAAA7pF,OAAA+uB,QACA9uB,SAAA,WACA,MAAAlD,MAAAsD,SAMA,IAFAwpF,OAAAF,OAAAF,QAAAE,OAAAl3F,KAAAkpB,KAEAkuE,OAAAF,OACAE,OAAAxpF,OAAAsb,QACA,CAGA,IADA5L,QAAA05E,QAAA9tE,IAAAtkB,KAAAskB,KACAviB,KACAywF,OAAAz6D,KAAAh2B,IAAA2W,QAAA3W,IAAA,EAEAywF,QAAAzwB,SACAywB,OAAAC,YAAA13F,QAAAq3F,QAAArwB,MAAA,SAAA3c,GAAAr+B,GAAA2rE,IACA3rE,KACAyrE,OAAAzwB,MAAAh7C,IAAA2rE,MAIA,MAAAF;AnCsaA,EmC9ZAG,WAAA,SAAAruE,KAIA,MAAA,gBAAAA,MAAAA,IAAAzb,eAAA,UACAyb,IAAAtb,SAAAsb,IAAAtH,SAEA,gBAAAsH,KACA8tE,QAAAC,SAAAj3F,KAAAkpB,KADA,QAUAsuE,WAAA,SAAAtuE,KACA,GAAA+tE,UAAA3sF,KAAAitF,WAAAruE,IACA,OAAA,iBAAA+tE,WACAA,SADA,QAUAQ,SAAA,SAAAvuE,KAEA,MAAA,gBAAAA,MAAAA,IAAAzb,eAAA,UACAyb,IAAAguE,OAEA,gBAAAhuE,KACA8tE,QAAAE,OAAAl3F,KAAAkpB,KADA,QAUAwuE,gBAAA,SAAArsB,KACA,MAAA,UAAArrE,KAAAqrE,KAAA5+C,mBAAA4+C,KAAAA,KAWAssB,MAAA,SAAApzC,KAAAT,QAEA,GAAA56B,IA6BA,OA3BAq7B,QACAppC,EAAA+nB,SAAAqhB,QACAr7B,IAAAq7B,MAEAppC,EAAA3U,QAAA+9C,QACAr7B,IAAA,GACA/N,EAAAikB,QAAAmlB,KAAA,SAAAqzC,OAEA1uE,KADA,MAAAlpB,KAAAkpB,MAAA,MAAAlpB,KAAA43F,OACAA,MAAAhxF,OAAA,GACA,KAAAsiB,KAAA,MAAAlpB,KAAAkpB,MAAA,MAAAlpB,KAAA43F,OAGAA,MAFA,IAAAA;AnCyVA,ImCnVAz8E,EAAAjM,cAAA40C,UACA,KAAA56B,IAAA5b,QAAA,OACA4b,KAAA,KAEAA,IAAA/N,EAAAmoB,OAAAwgB,OAAA,SAAApe,IAAAviC,MAAAwyC,KAEA,MADAjQ,MAAA,IAAAjZ,mBAAAkpB,KAAA,IAAAlpB,mBAAAtpB,QAEA+lB,OAIAA,KAIA,OAAAiuE,WC/JAjjE,OAAA,2BACA,SACA,YACA,SAAA/Y,EAAAg8E,SACA,YAkDA,IAAAU,qBAAA,SAAAC,WAAA33F,KAAAiZ,SAEA,GAAA7C,SAEAuhF,YAAA38E,EAAA3U,QAAAsxF,YAAAA,YAAAA,YACA33F,KAAAA,SACAiZ,QAAA+B,EAAA6f,SAAA5hB,aACA2+E,UAAA,GAMA,IAAAC,eAMAC,eAQAC,YAAA,SAAAC,UAEA,IAAAh9E,EAAAjM,cAAAipF,YAAAh9E,EAAAva,WAAAu3F,SAAAj2F,UAAAiZ,EAAA+nB,SAAAi1D,SAAAhhF,MACA,KAAA,IAAAskB,WAAA;AAGAnxB,ApC6YA,KoC7YA2tF,YAAA9tF,KAAAguF,WAQAC,cAAA,SAAAC,eACA,GAAAtrD,MAAAziC,IAEAA,MAAA2tF,eAGA98E,EAAAikB,QAAAi5D,cAAA,SAAAF,UAGAh9E,EAAAjM,cAAAipF,UACAH,aAAAE,YAAAC,UAGAh9E,EAAAva,WAAAu3F,WACAprD,KAAAmrD,aACA/gF,KAAA,aAAA41B,KAAAkrD,YAAA32F,OAAA,GACAY,OAAAi2F,cAWA97E,QAAA,SAAAs5B,IAAAxyC,OACAgY,EAAA+nB,SAAAyS,MAAA,mBAAAxyC,OACAhD,KAAAw1C,KAAAxyC,MACAgY,EAAAjM,cAAAymC,OACAx1C,KAAAw1C,MASAv5B,QAAA,SAAAu5B,KACA,MAAAx6B,GAAA+nB,SAAAyS,KACAx1C,KAAAw1C,KAEAx1C,MAQAuT,QAAA,SAAAwV,KACA,GAAAovE,UACAC,QAGA,OAAAn/E,SAAA7C,OAAAA,MAAA9I,eAAAyb,KACA3S,MAAA2S,MAIAqvE,SAAAn/E,QAAA2+E,SAAAZ,QAAA1lF,MAAAyX,KAAAA,IAGA/N,EAAAikB,QAAA90B,KAAA2tF,YAAA,SAAAE;AACA,ApCoUA,GoCpUAx7E,QAAAw7E,SAAAj2F,OAAAq2F,SAAAp4F,KACA,OAAAwc,SACA27E,SAAA37E,QACA,GAFA,SAMA27E,SAAAA,UAAA,GAEAl/E,QAAA7C,QACAA,MAAA2S,KAAAovE,UAGAA,WASAE,UAAA,SAAArhF,KAAA+R,KACA,GAAAqvE,UACAD,SAAA,GACAH,SAAAh9E,EAAA5L,KAAAjF,KAAA2tF,aAAA9gF,KAAAA,MAMA,OALAghF,YAEAI,SAAAn/E,QAAA2+E,SAAAZ,QAAA1lF,MAAAyX,KAAAA,IACAovE,SAAAH,SAAAj2F,OAAAq2F,SAAAp4F,OAEAm4F,UAMAG,WAAA,WACAr/E,QAAA7C,QACAA,WAOA,OAFAyhF,cAAAI,cAAAN,YAEAE,aAGA,OAAAH,uBCrNA3jE,OAAA,kCACA,SACA,SACA,kBACA,2BACA,SAAA9mB,EAAA+N,EAAA40B,WAAA8nD,qBACA;AAgCA,ArCmcA,GqCncAa,mBAAA,QAAAA,mBAAArpD,aAAAlvC,KAAAiZ,SAEA,GAAA61B,UACA+rB,UACAg9B,aAMAW,MACAjsF,MACA5B,MAAA,EACA6uC,YAEA0iB,QACAvxD,MAAA,EACA6uC,YAmBA,IAdAx+B,EAAAjM,cAAAmgC,gBACAlvC,KAAAkvC,aACAA,aAAAhb,QAGAl0B,KAAAA,SACAiZ,QAAAA,YAKA4hD,UAAA09B,kBAAA19B,WAGAA,WAAA,IAAA7/C,EAAAxL,KAAAqrD,WACA,KAAA,IAAA9pD,OAAA,wBAaA,IAVAiK,EAAA+nB,SAAAmM,eAAAA,aAAA/tC,OAAA,EACA2tC,SAAA+rB,UAAA3rB,cACA,IAAAl0B,EAAAxL,KAAAqrD,aAGA3rB,aAAAl0B,EAAAwhB,KAAAq+B,WAAA,GACA/rB,SAAA+rB,UAAA3rB,gBAIAJ,SACA,KAAA,IAAA/9B,OAAA,sCAkBA,OAdA8mF,cAAA5+E,QAAA4+E,cAAAH,oBAAA,SAAA3uE;AACA,ArC4YA,MqC5YAA,KAAA1b,aAaAuiC,YAMAyR,UAAA,KAOAw2C,aAAAA,aAMA5+E,QAAAA,QASA1M,KAAA,SAAAksF,SACA,GAAA7rD,MAAAziC,KAKAuuF,SAAA,WAGAF,KAAAjsF,KAAA5B,QAAA,IACA6tF,KAAAjsF,KAAA5B,MAAA,EAEAqQ,EAAAikB,QAAAu5D,KAAAjsF,KAAAitC,QAAA,SAAAm/C,aACA39E,EAAAva,WAAAk4F,cACAA,YAAAh4F,KAAAisC,QAGA4rD,KAAAjsF,KAAAitC,YAOA5M,KAAAn8B,QAAA,QAsBA,OAlBAgoF,WACAz4F,KAAAgb,EAAA/L,MAAAjP,KAAAy4F,UAGAz9E,EAAAva,WAAAquC,SAAAviC,MAQAuiC,SAAAviC,KAAA5L,KAAAwJ,KAAAnK,KAAA04F,UAGAA,WAGAvuF,MAWAyuF,OAAA,SAAAjB,WAAA33F,KAAAiZ,SAEA,IACA9O,KAAA0tF,aAAAH,oBAAAC,WAAA33F,KAAAiZ,SACA,MAAA63B,KACA3mC,KAAAsG,QAAA,QAAA,6DAAAqgC;ArCsSA,CqCnSA,MAAA3mC,OAgBA+xD,OAAA,SAAA28B,KACA,GAAAjsD,MAAAziC,KAKA2uF,WAAA,WAGAN,KAAAt8B,OAAAvxD,QAAA,IACA6tF,KAAAt8B,OAAAvxD,MAAA,EAEAqQ,EAAAikB,QAAAu5D,KAAAt8B,OAAA1iB,QAAA,SAAAm/C,aACA39E,EAAAva,WAAAk4F,cACAA,YAAAh4F,KAAAisC,QAGA4rD,KAAAt8B,OAAA1iB,YAOA5M,KAAAn8B,QAAA,UAOAm8B,KAAAn8B,QAAA,SAIA,OAAAooF,eAAAxvB,cAAAwvB,cAAA5rF,IAIAurF,KAAAjsF,KAAA5B,QAAA,EACA6tF,KAAAjsF,KAAAitC,QAAAxvC,KAAA,WACAG,KAAA+xD,OAAA28B,QAKAA,cAAA5rF,GACA9C,KAAAk3C,UAAAw3C,IAAAnpF,IAAA,GAEAvF,KAAAk3C,UAAAw3C,IAKA79E,EAAAva,WAAAquC,SAAAotB,QAQAptB,SAAAotB,OAAAv7D,KAAAwJ,KAAAA,KAAAk3C,UAAAy3C,YAGAA,cAIA3uF,MAjCAyiC,KAAAn8B,QAAA,QAAA;ArCgPA,EqCtMAwuD,MAAA,WACA,GAAAryB,MAAAziC,KAKA4uF,UAAA,WAQAnsD,KAAAn8B,QAAA,SAgBA,OAdAuK,GAAAva,WAAAquC,SAAAmwB,OAQAnwB,SAAAmwB,MAAAt+D,KAAAwJ,KAAAA,KAAAk3C,UAAA03C,WAGAA,YAGA5uF,MAQAwuC,SAAA,WACA,GAAA5wC,OAAA,IAUA,OATAiT,GAAAva,WAAAquC,SAAA6J,YAOA5wC,MAAA+mC,SAAA6J,SAAAh4C,KAAAwJ,OAEApC,OAYA6wC,SAAA,SAAA7wC,OAEA,MAAAiT,GAAAjM,cAAAhH,QAKAywF,KAAAt8B,OAAAvxD,QAAA,EACA6tF,KAAAt8B,OAAA1iB,QAAAxvC,KAAA,WACAG,KAAAyuC,SAAA7wC,SAIAiT,EAAAva,WAAAquC,SAAA8J,WAOA9J,SAAA8J,SAAAj4C,KAAAwJ,KAAApC,OAGAoC,MApBAA,KAAAsG,QAAA,QAAA,6DAAA1I,OAAA,WA4BAixF,aAAA,WACA,GAAA19C,aAUA,OATAtgC,GAAAva,WAAAquC,SAAAkqD,gBAOA19C,UAAAxM,SAAAkqD,aAAAr4F,KAAAwJ;AAEAmxC,ArCgGA,aqC9DA,OAbAi9C,mBAAAziC,SAAA,SAAA9+C,KAAA83B,UAEA,IAAA9zB,EAAA+nB,SAAA/rB,OAAAA,KAAA7V,QAAA,EACA,KAAA,IAAAm6B,WAAA,kDAEA,KAAAtgB,EAAAjM,cAAA+/B,YAAA9zB,EAAAva,WAAAquC,SAAAviC,QAAAyO,EAAAva,WAAAquC,SAAAotB,QACA,KAAA,IAAA5gC,WAAA,wFAGAnxB,MAAA0wD,UAAA1wD,KAAA0wD,cACA1wD,KAAA0wD,UAAA7jD,MAAA83B,UAGAypD,mBChcA,IAAAU,eAAA,EAAAC,OAAA,MAAAr5F,KAAA,WAAAs5F,MAAA,aAAA,IAGAC,OAAA,aAGAA,MAAAl3F,OAAA,SAAAiW,MACA,GAAAkhF,QAAAlvF,KAAAmC,SAIA2sF,eAAA,CACA,IAAA3sF,WAAA,GAAAnC,KACA8uF,eAAA,CAGA,KAAA,GAAAjiF,QAAAmB,MAEA7L,UAAA0K,MAAA,kBAAAmB,MAAAnB,OACA,kBAAAqiF,QAAAriF,OAAAkiF,OAAAr5F,KAAAsY,KAAAnB,OACA,SAAAA,KAAAxJ;AACA,AtC0eA,MsC1eA,YACA,GAAA+wC,KAAAp0C,KAAAkvF,MAIAlvF,MAAAkvF,OAAAA,OAAAriF,KAIA,IAAAooC,KAAA5xC,GAAAwC,MAAA7F,KAAA8F,UAGA,OAFA9F,MAAAkvF,OAAA96C,IAEAa,MAEApoC,KAAAmB,KAAAnB,OACAmB,KAAAnB,KAmBA,OAfAoiF,OAAA,YAEAH,cAAA9uF,KAAAoC,MACApC,KAAAoC,KAAAyD,MAAA7F,KAAA8F,YAIAmpF,MAAA9sF,UAAAA,UAGA8sF,MAAAxqF,YAAAwqF,MAGAA,MAAAl3F,OAAA+N,UAAAqpF,OAEAF,OAGA,mBAAAn0D,WACAA,QAAAm0D,MAAAA,OAEArlE,OAAA,QAAA,SAAAnY,QACA,MAAA,YACA,GAAAwjC,IACA,OAAAA,MAAAxjC,OAAAw9E,QAEAjvF,OAEA4pB,OAAA,wCAAA,WCxEA,OACA4lC,WAAA,oCACA4/B,eAAA,+BACAC,mBAAA;AACAC,AvCggBA,oBuChgBA,sDACAC,WAAA,qCACAC,KAAA,+BACAC,IAAA,8BACAljF,OAAA,iCACAmjF,mBAAA,uDACAC,oBAAA,wDACAC,YAAA,sCACAC,kBAAA,oDACAC,IAAA,sCACAC,OAAA,yCACAC,QAAA,0CACAC,cAAA;AACAC,AvCofA,QuCpfA,0CACAC,aAAA,+CACAC,uBAAA,yDACAC,aAAA,+CACAC,qBAAA,4DACAC,kBAAA,yDACAC,sBAAA,6DACAC,wBAAA,+DACAC,oBAAA,2DACAC,4BAAA;AACAC,AvC2eA,2BuC3eA,kEACAC,wBAAA,+DACAC,mBAAA,0DACAC,mBAAA,0DACAC,wBAAA,+DACAC,iBAAA,wDACAC,iBAAA,wDACAC,iBAAA,wDACAC,OAAA;AACAC,AvCmeA,uBuCneA,8DACAC,kBAAA,yDACAC,qBAAA,4DACAC,kBAAA,yDACAC,cAAA,kDACAC,eAAA,mDACAC,cAAA,kDACAC,kBAAA,yDACAC,YAAA,8CACA/3D,QAAA;AvC2dA,IwCnfAlQ,OAAA,kCAAA,UAAA,SAAA/Y,GACA,YAEA,IAAAihF,OAEAC,YAAA,SAAAhmC,QAGA,IAAA,GAFA/mD,IAAA+mD,QAAA,GACAxf,MAAA,uCACAlwC,EAAA,EAAA,GAAAA,EAAAA,IACA2I,IAAAunC,MAAA/yC,OAAAe,KAAAi3B,MAAAj3B,KAAA6R,SAAAmgC,MAAAv1C,QAEA,OAAAgO,KAUAgtF,QAAA,SAAA1nD,KAAAyhB,QACA,GAAA/mD,IACAitF,QACA51F,EAAA,EACA61F,OAAA,GACAC,QAAA,CAEA,KAAA7nD,KACA,KAAA,IAAAnZ,WAAA,qDAGA8gE,SAAA3nD,KAAA8nD,YAEA,GACAD,SAAA,EACAntF,GAAA+mD,OAAAmmC,OACArhF,EAAA/W,SAAAm4F,QAAAjtF,MACAmtF,QAAA,EACAD,OAAA,IAAA71F,EACAA,WAEA81F,OAEA,OAAAntF,KAWAqtF,gBAAA,SAAA/nD,KAAAyhB,OAAAumC,WAEA,GAAAttF,IACAitF,QACAC,OAAA,GACA71F,EAAA,EACA81F,QAAA,CAEA,KAAA7nD,KACA,KAAA,IAAAnZ,WAAA;AAGA8gE,AxCibA,QwCjbA3nD,KAAAioD,qBACAD,UAAAzhF,EAAAgoB,YAAAy5D,YAAA,EAAAA,UAEAvmC,QACAA,OAAAA,OAAA12D,QAAA,aAAA,KACAA,QAAA,kBAAA,KACAA,QAAA,SAAA,KACAi9F,YACAJ,OAAA,IAAA71F,KAGA0vD,OAAA/rD,KAAAwyF,SACAN,OAAA,IAAA71F,EAGA,GACA81F,SAAA,EACAntF,GAAA+mD,OAAAmmC,OACAD,QAAAjtF,MACAmtF,QAAA,EACAD,OAAA,IAAA71F,EACAA,WAEA81F,OAEA,OAAAntF,KAGAytF,iBAAA,SAAAC,QAAAC,gBAAAC,gBAEA,GAAAC,OAAA,IAMA,IAJAhiF,EAAA+nB,SAAA+5D,mBACAA,iBAAAA,mBAGA9hF,EAAA3U,QAAAy2F,iBAoCA,KAAA,IAAA/rF,OAAA,kEAGA,OArCAiK,GAAAhc,KAAA89F,gBAAA,SAAAG,gBAGA,GAAArG,YAAAiG;AACA7hF,AxCwYA,EwCxYAhc,KAAAi+F,eAAAh+F,MAAA,KAAA,SAAAi+F,WACAtG,WAAAA,WAAAsG,YAEA,IAAArE,KAAAjC,WAAAmG,eAEA,OAAAlE,MACAmE,OAAA35E,OAAAw5E,QAAAA,QAAAhE,MACA,IAIA79E,EAAAhc,KAAA43F,WAAA,SAAAiC,KAEA,MAAA79E,GAAAva,WAAAo4F,IAAAzpF,QACA4tF,MAAAnE,IAAAzpF,KAAA2tF,kBAEA,EAHA,SASAC,OACA,EADA,UAWAA,OAEAG,mBAAA,SAAAC,OAAAplD,IACA,MAAAA,IACAolD,OAAAA,OAAA59F,QAAA,iCAAA,SAAAqqD,GAAAr+B,GAAA2rE,GAAAkG,GAAAC,IACA,MAAAnG,IAAAhqF,QAAA,KAAA,EACA08C,IAEAr+B,GAAAA,IAAA,GACA6xE,GAAAA,IAAA,GACA,IAAA7xE,GAAAwsB,GAAA,IAAAm/C,GAAAkG,GAAAC,GAAA,OAIAF,QAGAG,uBAAA,SAAAH,QACA,MAAAA,QAAA59F,QAAA,wBAAA,WAEAg+F,wBAAA,SAAAJ,QACA,GAAAK;AAKA,AxC8UA,MwClVAL,QAAA59F,QAAA,wBAAA,SAAA2kD,SAAAu5C,MAAA1lD,GAAApR,MAEA,MADA62D,YAAAzzF,KAAAguC,IACA,IAAA0lD,MAAA92D,KAAA,MAEA5rB,EAAAgmB,KAAAy8D,aAIA,OAAAxB,QAGAloE,OAAA,4CAAA,SAAA,UAAA,SAAA/Y,EAAA/N,GCnMA,GAAA0wF,wBA8BA,OA5BAA,sBAAAC,wBAAA,SAAApuD,MAEA,GAAAv2B,UACAjZ,QACA69F,YAAA,KACAC,SAAA,GACAC,SAAA,KAmBA,OAhBA/iF,GAAAhc,KAAAwwC,KAAA,SAAAtH,KACAA,MACAA,IAAA81D,WACA/kF,QAAA8kF,SAAA71D,IACAA,cAAAj7B,IAAAi7B,IAAA/mC,OACA8X,QAAA4kF,YAAA31D,IACAltB,EAAA+nB,SAAAmF,KACAjvB,QAAA6kF,SAAA51D,IACAltB,EAAAjM,cAAAm5B,KACAjvB,QAAAjZ,KAAAkoC,IAEAiN,QAAAC,IAAA,cAAAlN,IAAAsH,SAKAv2B,SAGA0kF;AzC6eA,G0C3fA5pE,OAAA,mCACA,SACA,SACA,QACA,iCACA,4CACA,SAAA9mB,EAAA+N,EAAAo+E,MAAA6C,KAAAgC,gBACA,YAEA,IAAAC,eAEAC,QAAA/E,MAAAl3F,QACAy6F,SAAA,GACAtkD,OAAA,GACA+lD,YAAA,KACA7xF,KAAA,SAAA8rC,OAAAthC,YAkBA,GAfA5M,KAAA4M,cAGA5M,KAAAk0F,YAGA,gBAAA,UACAtnF,WAAAshC,OACAA,OAAA,IAGAA,SACAA,OAAA4jD,KAAAC,YAAA/xF,KAAAwyF,SAAA,MAGAtkD,SAAA,gBAAAA,UAAAA,OAAAl3B,MAAA,kBACA,KAAA,+BAAAk3B,QAAA,KAAAA,MAGA,IAAA6lD,WAAA7lD,QAKA,KAAA,qDAAAA;AAJA6lD,A1CsdA,W0CtdA7lD,QAAAluC,KACAA,KAAAkuC,OAAAA,OACAluC,KAAAm0F,cAAAvnF,gBAKA,kBAAA5M,MAAAo0F,eACAp0F,KAAAo0F,cAAAtuF,UAAA,IAAA,IAEA,kBAAA9F,MAAAq0F,YACAr0F,KAAAq0F,cAGAthF,GAAA,SAAAy/E,UACA,MAAAA,YAAAxyF,KAAAwyF,UAEAkB,YAAA,WACA,MAAA,KAAA1zF,KAAAkuC,OAAA,MAEAomD,UAAA,WACA,MAAAt0F,MAAAkuC,QAEAqkD,mBAAA,WACA,GAAAN,YACAsC,KAAAv0F,KAAAw0F,sBACA,KAAA,GAAAn4F,KAAAk4F,MAAA,CACA,GAAA7F,KAAA6F,KAAAl4F,GACA2I,GAAA0pF,IAAA7pF,KAAA,aACAG,MAEAitF,QAAAjtF,IAAA0pF,KAGA,MAAAuD,UAOAG,WAAA,WACA,GAAAH,WAOA,OANAphF,GAAAikB,QAAA90B,KAAAw0F,uBAAA,SAAA9F,KACA,GAAA1pF,IAAA0pF,IAAA7pF,KAAA,KACAG,MAAA6L,EAAA/W,SAAAm4F,QAAAjtF,KACAitF,QAAApyF,KAAAmF;A1CyaA,G0CtaAitF,SAGAptF,KAAA,SAAAgI,KAAAhU,OACA,GAAAgU,KACA,GAAAkd,SAAAlxB,MACAmH,KAAA4M,WAAAC,MAAAhU,UAEA,IAAA,gBAAA,MACA,IAAA,GAAAmV,QAAAnB,MACA7M,KAAA6E,KAAAmJ,KAAAnB,KAAAmB,WAEA,IAAA,gBAAA,MACA,MAAA+b,UAAA/pB,KAAA4M,WAAAC,MACA,OAEA7M,KAAA4M,WAAAC,KAKA,OAAA7M,OAEAnK,KAAA,SAAAgX,KAAAhU,OACA,GAAAgU,KACA,GAAAkd,SAAAlxB,MACAmH,KAAAk0F,SAAArnF,MAAAhU,MACAiK,EAAAjH,UAAAyK,QAAA,yBAAAosF,QAAA1yF,KAAAqrC,IAAAx+B,KAAAhU,MAAAA,YAEA,IAAA,gBAAA,MACA,IAAA,GAAAmV,QAAAnB,MACA7M,KAAAnK,KAAAmY,KAAAnB,KAAAmB,WAEA,IAAA,gBAAA,MACA,MAAA+b,UAAA/pB,KAAAk0F,SAAArnF,MACA,OAEA7M,KAAAk0F,SAAArnF,KAKA,OAAA7M,OAEAgC,WAAA,SAAA6K,MAEA,aADA7M,MAAAk0F,SAAArnF;AACA7M,A1CyXA,M0CvXA+N,WAAA,SAAAlB,MACA,MAAA7M,MAAAy0F,iBAAA5nF,OAEAsnF,cAAA,SAAAvnF,YAEA,MADA5M,MAAA4M,WAAAA,WACA5M,MAEA00F,cAAA,WACA,MAAA7jF,GAAA9J,MAAA/G,KAAA4M,aAEA6nF,iBAAA,SAAAE,WACA,gBAAA,aACAA,WAAAA,WAEA,KAAA,GAAAt4F,KAAAs4F,iBACA30F,MAAA4M,WAAA+nF,UAAAt4F,GAEA,OAAA2D,OAEAw0F,qBAAA,WAEA,QAAA52E,QAAA80E,SACA6B,KAAA7B,QAAA4B,aAAA5B,QACA6B,KAAA1jF,EAAA9Y,OAAAw8F,KAAA7B,QAAA8B,wBAHA,GAAAD,QAsBA,OAjBA,kBAAAv0F,MAAAo0F,eACAx2E,OAAA5d,KAAA40F,WAEA,kBAAA50F,MAAAq0F,YACAz2E,OAAA5d,KAAA60F,aAEAhkF,EAAAhc,KAAAmL,KAAAk0F,SAAA,SAAAxwF;AACAswF,A1CwVA,Q0CxVAc,IAAApxF,EAAA,cACAka,OAAAla,GACAmN,EAAA3U,QAAAwH,IACAmN,EAAAhc,KAAA6O,EAAA,SAAAA,GACAswF,QAAAc,IAAApxF,EAAA,eACAka,OAAAla,OAKA6wF,MAEAQ,eAAA,WAEA,GAAA9/C,MAAAj1C,KAAAwyF,UACAwC,cAAAh1F,KAAAw0F,sBAMA,OAJA3jF,GAAAhc,KAAAmgG,cAAA,SAAAtG,KACAz5C,IAAAp1C,KAAA6uF,IAAA8D,YAGA3hF,EAAAgmB,KAAAoe,MAEAhwC,KAAA,SAAAipC,QAEA,GAAA2kD,OAAA,IAEA,IAAA,kBAAA7yF,MAAAq0F,WAAA,CACA,GAAA9nF,QAAAvM,KAAA60F,WACAtoF,QAAA2hC,SAAAA,SACA2kD,OAAA35E,OAAAlZ,KAAA0yF,QAAAnmF,OAAA5J,SAAA,WAQA,MAJAkwF,QAAA,kBAAA7yF,MAAAo0F,gBACAvB,MAAA7yF,KAAA40F,UAAA3vF,KAAAipC,OAAAluC,OAGA6yF,OAEA35E,OAAA,WACA,GAAAoxB,MAAAtqC,KAAAi1F,gBACA,IAAA3qD,KAAA,CACA,GAAAuoD,OAAAvoD,KAAArlC,KAAAjF,KAAAs0F;AACA,A1C6SA,G0C7SAzB,MACA,MAAAA,OAAA35E,OAGA,MAAA,OAEAg8E,eAAA,SAAA5qD,KAAA6qD,WAIA,GAFAA,UAAA,mBAAAA,YAAA,EAAAA,UAEAnB,QAAAc,IAAAxqD,KAAA,kBAAA,CACAtqC,KAAAi0F,YAAA3pD,IACA,IAAA0qD,eAAAh1F,KAAAw0F,sBACA,KAAA,GAAAn4F,KAAA24F,eACAA,cAAA34F,GAAA64F,eAAA5qD,MAAA,KAKA2qD,eAAA,WACA,GAAAhgD,KAAA,IAIA,OAHA++C,SAAAc,IAAA90F,KAAAi0F,YAAA,oBACAh/C,IAAAj1C,KAAAi0F,aAEAh/C,KAEAmgD,YAAA,SAAAxB,UACA,IAAAA,WAAAA,SAAAC,WAOA,KAAA,8BANA7zF,MAAA4zF,SAAAA,QACA,IAAAW,MAAAv0F,KAAAw0F,sBACA,KAAA,GAAAtmD,UAAAqmD,MACAA,KAAArmD,QAAAknD,YAAAxB,WAMAyB,YAAA;AACA,A1CwQA,M0CxQAr1F,MAAA4zF,UAEA7hC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACAwvF,UAAAjwD,KAAAuuD,UAAA5zF,KAAAq1F,cAEAE,WACAC,aACAC,IAAAz1F,KAAAwyF,SACAtkD,OAAAluC,KAAAkuC,OACAthC,WAAA5M,KAAA00F,gBAGA,KAAAY,UACA,KAAA,6CAAAt1F,KAAAwyF,SAAA,IAAAxyF,KAAAkuC,MAGA,mBAAAluC,MAAAo0F,gBAEAoB,YAAAp6F,KAAA4E,KAAA40F,UAAA7iC,OAAA1sB,KAAAuuD,WAEA,kBAAA5zF,MAAAq0F,aACAmB,YAAAjpF,QACAK,WAAA5M,KAAAuM,OAAAmoF,iBAEAc,YAAAjpF,OAAAK,WAAA/W,KAAAy/F,UAAAI,WAAA11F,KAAAuM,OAAA1H,KAAA,UAGA0wF,QAAA1kF,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,UACA0/F,QAAAD,UAAAxjF,QAAA9R,KAAAu1F,QAAAlwD,KAAAsuD;AACA,A1C0OA,G0C1OAgC,WAAAL,UAAAM,UAAA51F,KAAAu1F,QAAAlwD,KAAAsuD,SAKA,OAJAtuD,MAAAquD,aACAruD,KAAAquD,YAAAx1E,YAAAy3E,WAGAA,WAEAE,WAAA,SAAAhgG,KAAAigG,aAAAlC,UAEA,GAAAmC,kBACAT,UAAA1B,UAAA5zF,KAAAq1F,aAOA,IALA,kBAAAr1F,MAAAo0F,gBAEA2B,cAAA/1F,KAAA40F,UAAAiB,cAAA,GAAAjC,YAGA0B,UAGA,KAAA,iDAAAt1F,KAAAwyF,SAAA,IAAAxyF,KAAAkuC,MAGA,OALA6nD,eAAAl2F,KAAAy1F,UAAAO,WAAA71F,KAAAnK,KAAAigG,eAKAjlF,EAAAwjB,QAAA0hE,gBAEA32B,aAAA,SAAA42B,OAAArC,UACA,GAAAC,UAAA5zF,KAAAq1F,aACA,IAAAzB,SACA,MAAAA,UAAAx0B,aAAAp/D,KAAAg2F,OAAArC;AAEA,A1C6MA,K0C7MA,mDAAA3zF,KAAAwyF,SAAA,IAAAxyF,KAAAkuC,QAGA5oC,QAAA,WACA,GAAA4gC,MACAgI,OAAAluC,KAAAkuC,OACAx1C,KAAAsH,KAAAwyF,SACA5lF,WAAA5M,KAAA00F,gBAUA,OAPA,kBAAA10F,MAAAo0F,gBACAluD,IAAA9qC,KAAA4E,KAAA40F,UAAAtvF,WAEA,kBAAAtF,MAAAq0F,aACAnuD,IAAA35B,OAAAvM,KAAAuM,OAAAjH,WAGA4gC,KAEA5N,QAAA,WAEA,OAAA,GAEAnqB,SAAA,SAAA/D,WACA,GAAA6rF,OAAAj2F,KAAA6E,KAAA,UAAA,EACAqxF,eAAAD,MAAA7rF,YACApK,KAAA6E,KAAA,QAAAoxF,OAAAA,MAAAj/F,OAAA,IAAA,IAAAoT,YAGAkE,SAAA,SAAAlE,WACA,MAAA8rF,eAAAl2F,KAAA6E,KAAA,SAAAuF,YAEAgE,YAAA,SAAAhE,WAEA,GAAA6rF,OAAAj2F,KAAA6E,KAAA,UAAA;AACA,A1C2KA,G0C3KAoxF,MAAA,CAEA,GAAAE,OAAA,GAAAzkF,QAAA,YAAAtH,UAAA,YACA6rF,OAAAA,MAAA5gG,QAAA8gG,MAAA,KAAA39F,OAEAy9F,MACAj2F,KAAA6E,KAAA,QAAAoxF,OAEAj2F,KAAA+N,WAAA,WAWAM,YAAA,SAAAjE,UAAAxM,OAEA,MAAA,iBAAAA,OACAA,MAAAoC,KAAAmO,SAAA/D,WAAApK,KAAAoO,YAAAhE,WAGApK,KAAAsO,SAAAlE,WACApK,KAAAoO,YAAAhE,WAEApK,KAAAmO,SAAA/D,YAEAgsF,MAAA,WACA,MAAApC,SAAAqC,aAAAr2F,KAAAkuC,SAEAooD,MAAA,WACA,MAAAtC,SAAAuC,aAAAv2F,KAAAkuC,WAIAgoD,cAAA,SAAAM,YAAApsF,WACA,GAAA+rF,OAAA,GAAAzkF,QAAA,YAAAtH,UAAA,YAAA,GACA,OAAAosF,cAAAL,MAAAzgG,KAAA8gG,aAsCA,OAlCAxC,SAAAc,IAAA,SAAA2B,WAAAjE;AACA,A1C+HA,M0C/HAiE,sBAAAzC,UAAAyC,WAAA1jF,GAAAy/E,WAGAwB,QAAA0C,mBAAA,SAAAxoD,QACA,MAAA6lD,YAAA7lD,SAGA8lD,QAAAqC,aAAA,SAAAnoD,QACA,QAAA6lD,WAAA7lD,SAQA8lD,QAAAuC,aAAA,SAAAroD,QAEA,GAAAwkD,SAAAsB,QAAA0C,mBAAAxoD,OAEA,IAAAwkD,QAAA,CAEA,GAAAiE,mBAAAjE,QAAA8B,sBAMA,OALA3jF,GAAAhc,KAAA8hG,kBAAA,SAAAjI,WACAqF,YAAArF,IAAAxgD,gBAEA6lD,YAAArB,QAAAxkD,SAEA,EAEA,OAAA,GAGA8lD,UCtaApqE,OAAA,kCAAA,SAAA,QAAA,qCAAA,mCAAA,SAAA/Y,EAAAo+E,MAAA2H,WAAA5C,SA+XA,QAAA6C,+BAAAC,gBAAAjhG;AACAihG,A3CqIA,gB2CrIAC,eAAAlhG,KAAAkhG,eACAD,gBAAA7D,OAAAp9F,KAAAo9F,OACA6D,gBAAAE,WAAAnhG,KAAAmhG,WACAF,gBAAAG,WAAAphG,KAAAohG,WACAH,gBAAAI,UAAArhG,KAAAqhG,UAlYA,GAAAC,QAAAlI,MAAAl3F,QACAqK,KAAA,SAAAkoC,KAAA8sD,iBAEAp3F,KAAAq3F,OACAr3F,KAAAo3F,mBAEAp3F,KAAAsqC,KAAAA,MAAA,KACAtqC,KAAAs3F,mBAAAF,iBAAAR,aAEAU,mBAAA,SAAAV,YAEA,MADA/lF,GAAA9Y,OAAAiI,KAAAo3F,gBAAAR,YACA52F,MAEAu3F,mBAAA,SAAA1hG,MACA,GAAAo/C,OACA,KAAA,GAAA54C,KAAAxG,MACA,aAAAwG,GAAA,eAAAxG,KAAAwG,IAAA,gBAAAA,EACA44C,IAAAp1C,KAAAhK,KAAAwG,IACA,gBAAAxG,MAAAwG,IAAA,kBAAAA,IACA44C,IAAApkC,EAAA+lB,MAAAqe,IAAAj1C,KAAAu3F,mBAAA1hG,KAAAwG;AAGA,A3C8eA,M2C9eA44C,MAEAuiD,oBAAA,SAAA3hG,KAAAgoC,SAAA45D,QAEA,GAAAC,iBAAA13F,KAAAu3F,mBAAA1hG,KAAA4hG,QAAA7xD,WAEA,KAAA,GAAAvpC,KAAAq7F,iBAAA,CACA,GAAAC,eAAAD,gBAAAr7F,EACA,KAAA2D,KAAAo3F,gBAAAO,eAGA,KAAA,IAAA/wF,OAAA,4CAAA+wF,cAFA/xD,UAAA/lC,KAAAG,KAAAo3F,gBAAAO,gBAMA,GAAAC,OAAA53F,IACAi+B,SAAA2H,SAAA,WACA/0B,EAAAhc,KAAAiR,UAAA,SAAA+xF,UACAD,MAAAP,IAAAQ,SAAA11F,UAAAqwF,UAAAqF,WAEAh6D,SAAArnC,KAAAohG,MAAAA,MAAAP,QAGAS,iBAAA,WACA,MAAAjnF,GAAAwhB,KAAAryB,KAAAq3F,MAEAU,aAAA,SAAAliG,KAAAgoC,UAEA,GAAA+5D,OAAA53F,IACA43F,OAAAJ,oBAAA3hG,KAAA,SAAAmiG;AACA,A3CidA,G2CjdA37F,EACA,IAAA,gBAAA,OAAA,mBAAAxG,KAAA28F,SAAA,CAGA38F,KAAAq4C,QACA8lD,QAAAuC,aAAA1gG,KAAAq4C,QAGA0pD,MAAAttD,KAAA,GAAA0tD,KAAA5I,eAAAv5F,KAAAq4C,OAAAr4C,KAAA+W,gBACAgrF,MAAAK,cAAAL,MAAAttD,KAAAsqD,UAAA/+F,KAAAuF,KAEA,KAAAiB,IAAAxG,MAAAqiG,SAAA,CACA,GAAAC,SAAAP,MAAAQ,aAAAviG,KAAAqiG,SAAA77F,GACA87F,UACAP,MAAAttD,KAAA+tD,sBAAAF,SAGA,IAAA97F,IAAAxG,MAAAyiG,UAAA,CACA,GAAAC,UAAAX,MAAAY,aAAA3iG,KAAAyiG,UAAAj8F,GACAk8F,WACAX,MAAAttD,KAAAmuD,iBAAAF,UAGA,IAAAl8F,IAAAxG,MAAA6iG,YAAA,CACA,GAAAnJ,YAAAqI,MAAAY,aAAA3iG,KAAA6iG,YAAAr8F,GACAkzF,aACAqI,MAAAttD,KAAAquD,cAAApJ,YAKA,IAAAlzF,IAAAxG,MAAAs7C,UAAA,CACA,GAAA/L,UAAAwyD,MAAAgB,cAAA/iG,KAAAs7C,UAAA90C;AACA,A3CibA,G2CjbA+oC,SAAA,CACAwyD,MAAAttD,KAAAuuD,uBAAAzzD,SAEA,IAAA0zD,eAAAjjG,KAAAs7C,UAAA90C,GAAAy8F,aACAA,gBACAjoF,EAAAmkB,MAAA8jE,cAAA,SAAAC,OAAA7qD,QACA9I,SAAA0zD,cAAA5qD,QAAA0pD,MAAAoB,wBAAAD,OAAA3zD,aAMAvvC,KAAAw5F,oBACAuI,MAAAttD,KAAA2uD,sBAAArB,MAAAsB,wBAAArjG,KAAAw5F,qBAEAuI,MAAAttD,KAAA6uD,cAAAtjG,KAAAy9F,YACAsE,MAAAttD,KAAA8uD,mBAAAvjG,KAAAwjG,iBACAzB,MAAAttD,KAAAgvD,qBAAAzjG,KAAA0jG,mBAGA,kBAAA,WACA17D,SAAArnC,KAAAohG,MAAAA,MAAAttD,SAIAkvD,oBAAA,SAAA3jG,KAAAgoC,UAEA,GAAA+5D,OAAA53F,IAEA43F,OAAAJ,oBAAA3hG,KAAA,SAAAmiG;AAEA,A3CmZA,G2CnZAtF,SAAAkF,MAAAY,aAAA3iG,KAEA,mBAAA,WACAgoC,SAAArnC,KAAAohG,MAAAlF,YAIA+G,YAAA,SAAA/G,QAAA78F,KAAAgoC,UAEA,GAAA+5D,OAAA53F,IACAA,MAAAw3F,oBAAA3hG,KAAA,WACA+hG,MAAA8B,gBAAAhH,QAAA78F,MACA,kBAAA,WACAgoC,SAAArnC,KAAAohG,MAAAlF,YAYAiH,aAAA,SAAA9jG,KAAAgoC,UAEA,GAAA+5D,OAAA53F,IAEA,KAAA43F,MAAAttD,KAqBA,KAAA,gDAnBAtqC,MAAAw3F,oBAAA3hG,KAAA,WAEA,GAAA+jG,aAAAhC,MAAAttD,KAAAkqD,sBAEA,KAAA,GAAAn4F,KAAAxG,MAAA,CACA,GAAAgkG,aAAAhkG,KAAAwG,EACAw9F,cAAAA,YAAArH,UAAAqH,YAAA3rD,QAEA0rD,YAAAC,YAAA3rD,SACA0pD,MAAA8B,gBAAAE,YAAAC,YAAA3rD,QAAA2rD;A3C4WA,C2CvWA,kBAAA,WACAh8D,SAAArnC,KAAAohG,MAAAA,MAAAttD,SAQAsuD,cAAA,SAAA/iG,MAEA,GAAAuvC,UAAAplC,KAAAw4F,aAAA3iG,KAgBA,OAdAuvC,UAAA/L,SAAAxjC,KAAAikG,UAAA,KACA10D,SAAApsC,aAAAnD,KAAAmD,cAAA,KACAosC,SAAA20D,gBAAAlkG,KAAAmkG,kBAAA,KAEAnpF,EAAAxL,KAAAxP,KAAAkpE,SACA35B,SAAA60D,WAAApkG,KAAAkpE,QACAluD,EAAAxL,KAAAxP,KAAAqkG,aACA90D,SAAA60D,WAAApkG,KAAAqkG,YAEA90D,SAAA60D,cAGA70D,SAAA+0D,kBAAAtkG,KAAAskG,sBAEA/0D,UAEA4zD,wBAAA,SAAAnjG,KAAAuvC,UAEA,GAAAg1D,cAAAp6F,KAAAw4F,aAAA3iG,KAEAukG,cAAAC,aAAAj1D,SAAAvvC,KAAA0tD,UAAA1tD,KAAAykG,eAAA,MAGAF,aAAAG,gBAAAv6F,KAAAsqC,KAAA4tD,SAAAriG,KAAA0kG,kBAAA;AACAH,A3CmUA,a2CnUAI,aAAAx6F,KAAAsqC,KAAAmwD,eAAA5kG,KAAA2kG,eAAA,KACAJ,aAAAM,aAAA16F,KAAAsqC,KAAAmwD,eAAA5kG,KAAA6kG,eAAA,IAGA,IAAAt1D,UAAAg1D,aAAAO,eAQA,OAPAP,cAAAI,cACAJ,aAAAI,aAAA3kG,KAAA,kBAAAuvC,UAEAg1D,aAAAM,cACAN,aAAAM,aAAA7kG,KAAA,kBAAAuvC,UAGAg1D,cAEAhC,aAAA,SAAAviG,MACA,GAAAsiG,SAAAn4F,KAAAw4F,aAAA3iG,KAEA,OADAsiG,SAAAn/F,aAAAnD,KAAAmD,cAAA,KACAm/F,SAEAe,wBAAA,SAAArjG,MACA,GAAA+kG,IAAA56F,KAAAw4F,aAAA3iG,KASA,OARAA,OAAAA,KAAAglG,iBACA,WAAAhlG,KAAAglG,gBACAD,GAAA/2E,IAAAhuB,KAAAA,KACA+kG,GAAAC,eAAA,UAEAD,GAAAC,eAAA;AAGAD,A3CuSA,I2CrSA3C,cAAA,SAAA6C,WAAAC,UACA,IAAA/G,QAAAc,IAAAgG,WAAA,cACA,KAAA,oCAGA,KAAAC,UAAA,gBAAAA,UAAA3/F,MAAA,eAAA2/F,UAAA74E,UAAA,gBAAA64E,UAAA74E,SAWA,KAAA,uBAVA,KAAA,GAAAgsB,UAAA6sD,UAAA74E,SAAA,CACA,GAAA84E,SAAAD,SAAA74E,SAAAgsB,QAEAwkD,QAAA1yF,KAAAw4F,aAAAwC,QACAtI,UACAoI,WAAAG,WAAAvI,QAAAqI,SAAA3/F,MAGA0/F,WAAA1/F,KAAA2/F,SAAA3/F,OAKAo9F,aAAA,SAAAqB,aACA,GAAAnL,KAAA,IACA,MAAAmL,aAAAA,YAAArH,UAAAqH,YAAA3rD,QASA,KAAA,0BARA,IAAA9jC,WAAAyvF,YAAArH,QACA,KAAAxyF,KAAAq3F,IAAAjtF,WAIA,KAAA,yCAAAA;AAKA,A3CsQA,M2C9QAskF,KAAA,GAAA1uF,MAAAq3F,IAAAjtF,WAAAyvF,YAAA3rD,QACAluC,KAAA05F,gBAAAhL,IAAAmL,aAOAnL,KAEAgL,gBAAA,SAAAhH,QAAA78F,MAGA,GAAA+W,YAAAiE,EAAA6f,SAAA76B,KAAA+W,eAAA8lF,QAAA9lF,eAyBA,OAxBA8lF,SAAAyB,cAAAvnF,YAEA8lF,QAAAt3F,MAAAvF,KAAAuF,MACAs3F,QAAAwI,KACAl7F,KAAAi4F,cAAAvF,QAAAkC,UAAA/+F,KAAAuF,MAIAs3F,QAAAnmF,QAAA1W,KAAA0W,QACAmmF,QAAAnmF,QACAvM,KAAAm7F,eAAAzI,QAAAnmF,OAAA1W,KAAA0W,QAIAynF,QAAAc,IAAApC,QAAA,eACA1yF,KAAAo7F,oBAAA1I,QAAA78F,MACAm+F,QAAAc,IAAApC,QAAA,UACA1yF,KAAAq7F,eAAA3I,QAAA78F,MACAm+F,QAAAc,IAAApC,QAAA,QACA1yF,KAAAs7F,aAAA5I,QAAA78F,MACAm+F,QAAAc,IAAApC,QAAA,gBACA1yF,KAAAu7F,YAAA7I,QAAA78F;AAGA68F,A3CyOA,S2CvOA0I,oBAAA,SAAAI,YAAA3lG,MACAm+F,QAAAc,IAAA0G,YAAA,qBACA3lG,KAAAu7F,QACApxF,KAAAi4F,cAAAuD,YAAApK,OAAAwD,UAAA/+F,KAAAu7F,QAIApxF,KAAAy7F,wBAAAD,YAAA3lG,MAEAm+F,QAAAc,IAAA0G,YAAA,sBACAx7F,KAAA07F,YAAAF,YAAA3lG,OAGA4lG,wBAAA,SAAAD,YAAA3lG,MAGA,GAAAA,KAAA8lG,QAAA,CACA,GAAA3H,QAAAc,IAAA0G,YAAA,oBACA,IAAA,GAAA/sF,KAAA,EAAA,EAAAA,IAAAA,MAAA,CACA,IAAA5Y,KAAA8lG,QAAAltF,KACA,KAAA,sBAAAA,GAEA,IAAAmtF,UAAA/lG,KAAA8lG,QAAAltF,IACA,KAAA,GAAAy/B,UAAA0tD,UAAA,CACA,GAAAC,QAAA77F,KAAAw4F,aAAAoD,SAAA1tD,QACA2tD,SACAL,YAAAM,UAAAD,OAAAptF,UAKA,KAAA,GAAAy/B,UAAAr4C,MAAA8lG,QAAA;AACA,A3CwMA,G2CxMAE,QAAA77F,KAAAw4F,aAAA3iG,KAAA8lG,QAAAztD,QACA2tD,SACAL,YAAAM,UAAAD,QAKA,GAAA7H,QAAAc,IAAA0G,YAAA,+BACA3lG,KAAAkmG,QACA,IAAA,GAAA7tD,UAAAr4C,MAAAkmG,QAAA,CACA,GAAAhM,QAAA/vF,KAAAw4F,aAAA3iG,KAAAkmG,QAAA7tD,QACA6hD,SACAyL,YAAAQ,UAAAjM,WASAsL,eAAA,SAAAQ,OAAAhmG,MACAm+F,QAAAc,IAAA+G,OAAA,sBACAA,OAAAttF,IAAA1Y,KAAAoD,MACA+6F,QAAAc,IAAA+G,OAAA,WAEA7H,QAAAc,IAAA+G,OAAA,oBAIAV,eAAA,SAAA5uF,OAAA1W,MACA0W,OAAA4nF,cAAAt+F,KAAA+W,YAEA/W,KAAAomG,OACA,WAAApmG,KAAAomG,KAAAzJ,SACAjmF,OAAA0vF,KAAA9E,OAAAqB,aAAA3iG,KAAAomG,MAEA1vF,OAAA0vF,KAAApmG,KAAAomG,OAIAX,aAAA,SAAA9L,KAAA35F;AACA25F,A3C+JA,K2C/JA3hD,GAAAh4C,KAAAg4C,OACA2hD,KAAA0M,UAAArmG,KAAAsmG,QAAA,IACAtrF,EAAAmkB,MAAAn/B,KAAAumG,gBAAA,SAAAvjG,MAAAwjG,UACA7M,KAAA8M,cAAAD,SAAAxjG,UAGA6iG,YAAA,SAAAa,IAAA1mG,MACAghG,8BAAA0F,IAAA1mG,OAEA0lG,YAAA,SAAAiB,IAAA3mG,MACAghG,8BAAA2F,IAAA3mG,QAYA,OAAAshG,UCvZAvtE,OAAA,+CAAA,SAAA,mCAAA,SAAA/Y,EAAAmjF,SACA,OACAyI,eAAA,SAAAd,QAAAe,YAEA,GAAAznD,QAAA2iD,MAAA53F,IAoBA,OAlBA6Q,GAAAhc,KAAA8mG,QAAA,SAAA3mG,GACA,GAAAg/F,QAAAc,IAAA9/F,EAAA,UACA,OAAA0nG,YACA,IAAA,SACAznD,IAAAp1C,KAAA7K,EAAAs/F,YACA,MACA,KAAA,aACAr/C,IAAAp1C,KAAA7K,EAAAgQ,KACA,MACA;AACAiwC,A5CihBA,I4CjhBAp1C,KAAA7K,OAGA6b,GAAA3U,QAAAlH,IACAigD,IAAAp1C,KAAA+3F,MAAA6E,eAAAznG,EAAA0nG,eAIAznD,KAEA0nD,YAAA,SAAAnB,YAAAG,QAAAiB,WAEA,GAAA3nD,QAAA2iD,MAAA53F,IAyBA,OAvBA6Q,GAAAhc,KAAA8mG,QAAA,SAAA3mG,GACA,GAAA6mG,OACAhrF,GAAA+nB,SAAA5jC,GACA,WAAA4nG,WACAf,OAAAL,YAAAqB,UAAA7nG,GACA6mG,QACA5mD,IAAAp1C,KAAAg8F,SAEA,eAAAe,WACAf,OAAAL,YAAAsB,sBAAA9nG,GACA6mG,QACA5mD,IAAAp1C,KAAAg8F,SAGA5mD,IAAAp1C,KAAA7K,GAEA6b,EAAA3U,QAAAlH,GACAigD,IAAAp1C,KAAA+3F,MAAA+E,YAAAnB,YAAAxmG,EAAA4nG,YAEA3nD,IAAAp1C,KAAA7K,KAIAigD,KAEA8nD,eAAA,SAAApB,SACA,GAAAp4F,MACA3N,KACA6G,EAAA,CAEA,KAAA,GAAAJ,KAAAs/F,SAAA,CACA,IAAA3H,QAAAc,IAAA6G,QAAAt/F,GAAA,UAQA,KAAA,+CAPA,IAAAw/F,QAAAF,QAAAt/F;AACAw/F,A5CmeA,O4CneAh3F,KAAA,WACAjP,EAAA6G,GAAAo/F,QAEAt4F,EAAA1D,KAAAg8F,QACAp/F,IAMA,IAAA,GAAAuE,GAAA,EAAAA,EAAAuC,EAAAvM,OAAA,EAAAgK,IACA,IAAApL,EAAAoL,GAAA,CAGA,GAAAtE,GAAA,EACA,GACAA,GAAAsE,EAAAzG,KAAAi3B,MAAAj3B,KAAA6R,UAAA7I,EAAAvM,OAAAgK,UACApL,EAAA8G,GACA,IAAA03C,KAAA7wC,EAAA7G,EACA6G,GAAA7G,GAAA6G,EAAAvC,GACAuC,EAAAvC,GAAAozC,IAGA,MAAA7wC,IAEAy5F,mBAAA,SAAAxB,YAAAyB,cACA,GAAApB,QAAAL,YAAAqB,UAAAI,aACA,OAAApB,QACAA,OAAA72F,KAEA,OCxEA4kB,OAAA,kBAAA,SAAA,UAAA,SAAA9mB,EAAA+N,GACA,YAGA,IAAAk7C,QAAA,gBAGAkE,WAAAntD,EAAAA,EAAA,QAAA9L,OAAA,OAAA,QAEA62C,GAAA,cAiBAqvD,mBAAA,SAAAC,SACAtsF,EAAA5D,MAAA,WACAnK,EAAAjH,UAAAyK,QAAA,eAAAunC,IAAAsvD,WACA,MASAC,iBAAA,SAAAC,OACA,GAAA3kG,MAAA,SAAA2kG,MAAAr4F,GAAA+mD,OAAA,OAAAA,OAAA;A7CueA,A6CteA,MAAAjpD,GAAA,UACA+B,MACAy4F,IAAA,aACA5kG,KAAA,WACAwX,KAAAmtF,MAAApjD,KACAsjD,YAAA7kG,KACA8kG,YAAAH,MAAAxwF,MAAAwwF,MAAAr4F,GACAy4F,UAAAJ,MAAAr4F,MASA04F,QAAA,SAAA14F,IACA,MAAAlC,GAAA,iBAAAkC,GAAA,kBAAA+mD,OAAA,KAAAkE,aAQA0tC,WAAA,SAAA34F,IACA,MAAA04F,SAAA14F,IAAAhO,OAAA,GAQA4mG,OAAA,SAAAC,QACAA,OAAA7vF,KAAA,YAAA,GACAC,WAAA,YACAF,WAAA,aAQApF,QAAA,SAAAk1F,QACA,MAAAA,QAAA7vF,KAAA,YAAA,GACAnJ,KAAA,YAAA,IAaAi5F,YAAA,SAAA9iE,QAEA,GAAA+iE,cACAC,YAEAC,OACA5hG,EAFA6hG,SASA,KAAArtF,EAAAjM,cAAAo2B,QACA,KAAA,IAAA7J,WAAA,yCAGA,KAAAtgB,EAAA+nB,SAAAoC,OAAA6c,MACA,KAAA,IAAA1mB,WAAA;A7CyZA,A6CtZA,IAAAtgB,EAAA3U,QAAA8+B,OAAAmjE,aAAAnjE,OAAAmjE,UAAAnnG,OACA,KAAA,IAAAm6B,WAAA,yCAGA,KAAA90B,IAAA2+B,QAAAmjE,UACA,IAAAttF,EAAAjM,cAAAo2B,OAAAmjE,UAAA9hG,KAAAwU,EAAAynB,QAAA0C,OAAAmjE,UAAA9hG,GAAA2I,KAAA6L,EAAAynB,QAAA0C,OAAAmjE,UAAA9hG,GAAA49C,MACA,KAAA,IAAA9oB,WAAA,yDA8BA,OAvBA4sE,cAAA/iE,OAAAA,YAAAnqB,EAAAlL,MAAAkL,EAAAolB,MAAA+E,OAAAmjE,UAAA,OAEAH,YAAAD,aAEAE,SACAj5F,GAAA,OACAi1C,KAAAjf,OAAA6c,KACAhrC,KAAA,QAEAoxF,OAAAA,OAAAz/F,OAAAw8B,OAAAmjE,WAEAttF,EAAAikB,QAAAmpE,OAAA,SAAAZ,OACAM,WAAAN,MAAAr4F,IACAk5F,OAAAb,MAAAr4F,IAAA04F,QAAAL,MAAAr4F,IAEAk5F,OAAAb,MAAAr4F,IAAAo4F,iBAAAC,UAcA3oF,KAAA;A7C6WA,A6CzVA,MAnBA7D,GAAAikB,QAAAopE,OAAA,SAAAE,MAAAp5F,IACA24F,WAAA34F,MACAA,KAAAg5F,aACAI,MAAAtoF,GAAA,OAAA,WACAonF,mBAAAl4F,MAGA2D,QAAAy1F,OACAnuC,WAAAryC,OAAAwgF,QAEA,SAAAp5F,IAAAA,KAAA+4F,aACAp1F,QAAAy1F,QAEAR,OAAAQ,OAEAJ,YAAAh5F,GACAk4F,mBAAAc,gBAGAh+F,MAOA4mB,OAAA,WAGA,MAFAje,SAAA7F,EAAA,oBAAAipD,OAAA,KAAAkE,aAEAjwD,MAQAwL,OAAA,SAAAxG,IAkBA,MAfA6L,GAAA/W,UAAA,OAAA,WAAAkL,MAAA24F,WAAA34F,MACAA,GAAA+4F,cAGAJ,WAAA34F,MAEA2D,QAAA7F,EAAA,mBAAAipD,OAAA,UAAAkE,aAGA2tC,OAAAF,QAAA14F,KAEAg5F,YAAAh5F,GACAk4F,mBAAAc,cAGAh+F,MAOAq+F,eAAA,WACA,MAAAL;A7C8SA,C6CtSA,OAAAF,eC1OAl0E,OAAA,sCACA,SACA,SACA,aACA,eACA,kCACA,8CACA,kBACA,SAAA/Y,EAAA/N,EAAAqwC,WAAAzQ,QAAAsxD,QAAAsK,kBAAAR,aACA,YA0HA,SAAAS,sBACA,MAAA/3F,QAAA7D,SAAA67F,SAAA,KAAAh4F,OAAA7D,SAAA87F,KAAAj4F,OAAA7D,SAAA+7F,SAAArpG,QAAA,YAAA,IAzHA,GAAAspG,kBAAA,SAAA/K,UAEA,GAAAhvD,QAAA,CAEA,IAAA,gBAAA,UACA,OAAA,CAGA,IAAAg6D,eAAA,CACA,IAAAhL,SAAApB,SACA,GAAA3hF,EAAA7N,QAAA67F,mBAAAjL,SAAApB,WAAA,EACAoM,cAAA,MACA,CACA,GAAAv3E,KAAAusE,SAAApB,SAAAxvF,QAAA;AACA,A9CwfA,G8CxfAqkB,IAAA,EAAA,CACA,GAAAmrE,UAAAoB,SAAApB,SAAA94F,MAAA,EAAA2tB,KACAy3E,SAAAlL,SAAApB,SAAA94F,MAAA2tB,IAAA,EACA03E,uBAAAvM,WAAA3hF,EAAA7N,QAAA+7F,sBAAAvM,UAAAsM,WAAA,IACAF,cAAA,IAKA,IAAAA,aAEA,KADAh6D,QAAA,EACA,GAAAh+B,OAAA,oDAAAgtF,SAAApB,SAGA,KAAAoB,SAAAv6D,SAEA,KADAuL,QAAA,EACA,GAAAh+B,OAAA,8CAAAgtF,SAAApB,SAGA,OAAA5tD,QAGAi6D,oBACA,aACA,iBACA,aACA,sBACA,qBACA,qBACA,sBACA,MACA,OACA,SACA,gBACA,cACA,uBACA,oBACA,0BACA,sBACA,8BACA,6BACA,0BACA,qBACA,qBACA,0BACA,mBACA,mBACA,mBACA,yBACA,oBACA,uBACA,oBACA,wBACA,oBACA,SACA,oBACA,MACA,SACA,UACA,gBACA,UACA,eACA,yBACA,eACA,cACA,WAMAG;AACA5P,A9CibA,gB8CjbA,aAAA,aAAA,SAAA,iBACAQ,aAAA,cACAU,sBAAA,0BACAC,mBAAA,gBACAG,qBAAA,MAAA,WACAC,6BAAA,qBACAC,4BAAA,oBAAA,UACAC,yBAAA,iBACAC,oBAAA,iBACAC,oBAAA,WACAC,yBAAA,gBACAC,kBAAA,0BACAE,kBAAA,iBAMA4N,uBACA3O,wBAAA,uBAAA,oBACAC,cAAA,oBAAA;A9C8ZA,E8CxZAhwB,WACA08B,gBAAA,GAqBAkC,SAAA,SAAAnwF,SAKA,GAAAowF,eAKAC,aAEArwF,SAAA+B,EAAA6f,SAAA5hB,YAAAuxD,WAEArgE,KAAA6zF,YAAA,EAEA7zF,KAAA6M,KAAA,GAGA7M,KAAAo/F,kBAMA,IAAAC,mBAAA,SAAA7M,UACA,GAAAv9C,KAAA,IACA,IAAAkqD,WAAA3M,UACAv9C,IAAAkqD,WAAA3M,cACA,CACA,GAAAnrE,KAAAmrE,SAAAxvF,QAAA,IACAqkB,KAAA,IACAmrE,SAAAA,SAAA94F,MAAA,EAAA2tB,KACA83E,WAAA3M,YACAv9C,IAAAkqD,WAAA3M,YAIA,MAAAv9C,KASAj1C,MAAAs/F,UAAA,SAAAj0D,IAAAxyC,OAIA,MAHA,gBAAA,OACAiW,QAAAu8B,KAAAxyC,OAEAmH,MAQAA,KAAAu/F,WAAA,SAAAjgG,MAEA,MADAwP,SAAA+B,EAAA9Y,OAAA+W,QAAAxP,MACAU,MAQAA,KAAAw/F,UAAA,SAAAn0D,KACA,MAAA,gBAAA,MAAAv8B,QAAAu8B,KACAv8B,QAAAu8B,KAEA;A9C0TA,E8CnTArrC,KAAAy/F,gBAAA,WACA,MAAA3wF,SAAA4+E,cAOA1tF,KAAA0/F,eAAA,WACA,MAAA1/F,MAAA89F,aAYA99F,KAAA41F,UAAA,SAAAlD,QAAA78F,KAAA8pG,aAEA,GAAAC,KACA3qD,IAAA,GAEAu9C,SAAAmN,aAAAjN,QAAAF,SACAoB,SAAAyL,kBAAA7M,UACAqN,WAAA7/F,KAAAw/F,UAAA,aAEA,KAAA5L,WAAA/iF,EAAAva,WAAAs9F,SAAAv6D,UACA,KAAA,IAAAzyB,OAAA,sDAAA4rF,SAoCA,OAhCA3hF,GAAA6nB,SAAAmnE,aAAAhvF,EAAAva,WAAAupG,WAAAxhF,UAQAuhF,IAAAC,WAAAxhF,OAAAq0E,QAAAiN,aACA9uF,EAAA+nB,SAAAgnE,OACA3qD,KAAA2qD,MAKA3qD,KAAA2+C,SAAAv6D,SAAAxjC,MAIAgb,EAAA6nB,SAAAmnE,aAAAhvF,EAAAva,WAAAupG,WAAAthF,SAQAqhF,IAAAC,WAAAthF,MAAAm0E,QAAAiN;AACA9uF,A9CqPA,E8CrPA+nB,SAAAgnE,OACA3qD,KAAA2qD,MAGA3qD,KAGAj1C,KAAA8R,QAAA,SAAA4gF,QAAA78F,KAAA8pG,aAEA,GAAA1qD,KAAAp/C,KACA28F,SAAAmN,aAAAjN,QAAAF,SACAoB,SAAAyL,kBAAA7M,SAQA,OANAoB,WACA,kBAAAA,UAAA,UACA3+C,IAAA2+C,SAAA9hF,QAAAtb,KAAAwJ,KAAA0yF,QAAA78F,OAIAo/C,KAGAj1C,KAAA8/F,aAAA,SAAA9xC,IAAAn4D,MACA,MAAAs9C,YAAAx4B,QAAAqzC,KAAAn4D,OAGAmK,KAAAo/D,aAAA,SAAAq3B,WAAAT,OAAA2J,aAEA,GAAA1qD,KAAA,KACAu9C,SAAAmN,aAAAlJ,WAAAjE,SACAoB,SAAAyL,kBAAA7M,SAEA,KAAAoB,SAGA,KAAA,qCAAA6C,WAAAjE,QAEA,OAJAv9C,KAAA2+C,SAAAx0B,aAAAq3B,WAAAT,SAOAh2F,KAAA61F,WAAA,SAAAY,WAAA5gG,KAAA8pG;AAEA,A9C4MA,G8C5MAnN,UAAAmN,aAAAlJ,WAAAjE,SACAoB,SAAAyL,kBAAA7M,SAEA,OAAAoB,WAAA,kBAAAA,UAAA,OACAA,SAAA7hC,OAAAv7D,KAAAwJ,KAAAy2F,WAAA5gG,MADA,QAKAmK,KAAA+/F,YAAA,SAAAC,eAAA56D,SAAAu6D,aAEA,GAAA1qD,MAAA,EACAu9C,SAAAmN,aAAAK,eAAAxN,SACAoB,SAAAyL,kBAAA7M,SAEA,KAAAoB,SASA,KAAA,2CAAApB,QARA,IAAA,kBAAAoB,UAAA,YAAA,CACA3+C,IAAA2+C,SAAAmM,YAAAvpG,KAAAwJ,KAAAggG,eAAA56D,SACA,IAAA6qB,YAAA2jC,SAAAx0B,aAAA5oE,KAAAwJ,KAAAggG,eACA/vC,sBAAAntD,IAAAmtD,WAAAj5D,QACAi5D,WAAA3pD,QAAA,eAAA05F,eAAA56D;A9C0LA,C8CpLA,MAAA6P,MAGAj1C,KAAAigG,YAAA,SAAAD,eAAAL,aAEA,GAAA1qD,MAAA,EACAu9C,SAAAmN,aAAAK,eAAAxN,SACAoB,SAAAyL,kBAAA7M,SAEA,KAAAoB,SAKA,KAAA,2CAAApB,QAEA,OANA,kBAAAoB,UAAA,cACA3+C,IAAA2+C,SAAAqM,YAAAzpG,KAAAwJ,KAAAggG,iBAKA/qD,KAGAj1C,KAAAkgG,cAAA,SAAAF,eAAAL,aAEA,GAAA1qD,MAAA,EACAu9C,SAAAmN,aAAAK,eAAAxN,SACAoB,SAAAyL,kBAAA7M,SAEA,KAAAoB,SAKA,KAAA,2CAAApB,QAEA,OANA,kBAAAoB,UAAA,gBACA3+C,IAAA2+C,SAAAsM,cAAA1pG,KAAAwJ,KAAAggG,iBAKA/qD,KAaAj1C,KAAAwuC,SAAA,SAAAwxD,eAAAL;AAEA,A9CsIA,G8CtIA1qD,MAAA,EACAu9C,SAAAmN,aAAAK,eAAAxN,SACAoB,SAAAyL,kBAAA7M,SAEA,KAAAoB,SAOA,KAAA,2CAAApB,QAEA,OAPAv9C,KADApkC,EAAAva,WAAAs9F,SAAAplD,UACAolD,SAAAplD,SAAAh4C,KAAAwJ,KAAAggG,gBAEApM,SAAAqM,YAAAzpG,KAAAwJ,KAAAggG,iBAkBAhgG,KAAAyuC,SAAA,SAAAuxD,eAAApiG,MAAA+hG,aAEA,GAAAnN,UAAAmN,aAAAK,eAAAxN,SACAoB,SAAAyL,kBAAA7M,SAEA,KAAAoB,SAQA,KAAA,2CAAApB,QAPA3hF,GAAAva,WAAAs9F,SAAAnlD,UACAmlD,SAAAnlD,SAAAj4C,KAAAwJ,KAAAggG,eAAApiG,QAEAg2F,SAAAsM,cAAA1pG,KAAAwJ,KAAAggG,gBACApM,SAAAmM,YAAAvpG,KAAAwJ,KAAAggG,eAAApiG;A9CmGA,E8CtFAoC,KAAA0uC,QAAA,SAAAsxD,eAAAL,aAEA,GAAA1qD,MAAA,EACAu9C,SAAAmN,aAAAK,eAAAxN,SACAoB,SAAAyL,kBAAA7M,SAEA,KAAAoB,SAKA,KAAA,2CAAApB,QAEA,OANA3hF,GAAAva,WAAAs9F,SAAAllD,WACAuG,IAAA2+C,SAAAllD,QAAAl4C,KAAAwJ,KAAAggG,iBAKA/qD,KAGAj1C,KAAAmgG,mBAAA,WACA,MAAAhB,aAGAn/F,KAAA2rD,SAAA,SAAAy0C,oBACAvvF,EAAA9Y,OAAAmnG,WAAAkB,qBAGApgG,KAAA0U,KAAA,SAAAmpB,SAAA65D,iBACA,GAAAj1D,MAAAziC,KACA4lC,WAYA,IAVA92B,QAAAmvF,SAGAnvF,QAAAmvF,OAAApmD,KAAA73C,KAAA01F,WAAA5mF,QAAAmvF,OAAApmD,MACAhnC,EAAAikB,QAAAhmB,QAAAmvF,OAAAE,UAAA,SAAAd,MAAAxmF,OACA/H,QAAAmvF,OAAAE,UAAAtnF,OAAAojC,KAAAxX,KAAAizD,WAAA2H,MAAApjD;A9CsDA,G8CpDAj6C,KAAA89F,YAAAA,YAAAhvF,QAAAmvF,QAAAvpF,QAGAgjF,gBAAA,CACA,IAAA7mF,EAAA3U,QAAAw7F,iBAqCA,KAAA,IAAA9wF,OAAA,iEAlCA8wF,iBAAA7mF,EAAA2kB,aAAAkiE,gBAAAmH,oBAGAhuF,EAAAhc,KAAA6iG,gBAAA,SAAA2I,UACA,GAAAC,MAAAtB,cAAAqB,SACAC,QACA5I,gBAAA7mF,EAAA+lB,MAAA8gE,gBAAA4I,SAIAzvF,EAAAikB,QAAA4iE,gBAAA,SAAAlF,UAEA,GAAAuM,sBAAAvM,UAAA,CACA,GAAA+N,oBAAA1vF,EAAA2kB,aAAAkiE,gBAAAqH,sBAAAvM,UACA3hF,GAAAhc,KAAA0rG,mBAAA,SAAA5M,UACA,GAAAuL,WAAA1M,SAAA,IAAAmB,UACA/tD,SAAA/lC,KAAAq/F,WAAA1M,SAAA,IAAAmB,eACA;AAAA,A9C6BA,I8C7BAuL,WAAA1M,UAGA,KAAA,IAAA5rF,OAAA67B,KAAA51B,KAAA,8CAAA2lF,SAAA,eAAAmB,SAFA/tD,UAAA/lC,KAAAq/F,WAAA1M,kBAMA,IAAA0M,WAAA1M,aAAA,EACA2M,WAAA3M,WAAA,MACA,CAAA,IAAA0M,WAAA1M,UAGA,KAAA,IAAA5rF,OAAA67B,KAAA51B,KAAA,8CAAA2lF,SAFA5sD,UAAA/lC,KAAAq/F,WAAA1M,kBAWA5sD,UAAA/0B,EAAAimB,OAAAooE,WAGA,IAAAtH,OAAA53F,IAcA,OAbAi+B,SAAA2H,SAAA,WAEA/0B,EAAAhc,KAAAiR,UAAA,SAAAmwF,OACA0I,iBAAA1I,SACAkJ,WAAAlJ,MAAAzD,UAAAyD,SAIA,kBAAA,WACAp4D,SAAArnC,KAAAohG,MAAAuH,cAIAn/F,MAMAA,KAAA4mB,OAAA,WAIA,MAHA5mB,MAAA89F,aACAA,YAAAhvF,QAAAmvF,QAAAr3E;AAEA5mB,A9ClBA,M8C4BAA,KAAAwgG,mBAAA,SAAAhF,YAAAG,QAAA8E,oBACAzM,QAAAc,IAAA0G,YAAA,iBACAx7F,KAAAo/F,gBAAA5D,YAAAlH,aAAAzjF,EAAAolB,MAAAqoE,kBAAA3B,YAAAnB,YAAAG,QAAA8E,oBAAA,YAYAzgG,KAAA0gG,mBAAA,SAAAlF,YAAAmF,UAAAC,cACA,GAEA1yD,QAAA7xC,EAFAs/F,UAIA,IAAA3H,QAAAc,IAAA0G,YAAA,eAAA,CAIA,GAHAttD,OAAAstD,YAAAlH,aAGAt0F,KAAAo/F,gBAAAlxD,SAAAyyD,UACA,GAAA3M,QAAAc,IAAA0G,YAAA,oBAEA,IADAx7F,KAAAo/F,gBAAAlxD,WACA7xC,EAAA,EAAA,EAAAA,EAAAA,IACAs/F,QAAAt/F,GAAAiiG,kBAAAvB,eAAAvB,YAAAqF,WAAAxkG,IACA2D,KAAAo/F,gBAAAlxD,QAAA7xC,GAAAwU,EAAAolB,MAAA0lE,QAAAt/F,GAAA,cAGAs/F,SAAA2C,kBAAAvB,eAAAvB,YAAAqF;AACA7gG,A9C3DA,K8C2DAo/F,gBAAAlxD,QAAAr9B,EAAAolB,MAAA0lE,QAAA,cAKA3H,SAAAc,IAAA0G,YAAA,oBACA3qF,EAAAikB,QAAA6mE,QAAA,SAAAE,OAAAhlF,OACA,EAAAA,OACAhG,EAAAikB,QAAA90B,KAAAo/F,gBAAAlxD,QAAA7xC,GAAA,SAAA4gG,cACApB,OAAAh8F,KAAA27F,YAAAqB,UAAAI,mBAKApsF,EAAAikB,QAAA90B,KAAAo/F,gBAAAlxD,QAAA,SAAA+uD,cACAtB,QAAA97F,KAAA27F,YAAAqB,UAAAI,gBAMA,OAAA,WAAA2D,cAAA,eAAAA,aACAtC,kBAAA7B,eAAAd,QAAAiF,cAIA/vF,EAAA9J,MAAA40F,SAGA,UAGA37F,KAAA8gG,aAAA,WACA,MAAA3B,aAGAn/F,KAAA+gG,aAAA,WACA,MAAA7B,aAQAl/F,KAAA01F,WAAA,SAAA92E,KACA,MAAA9P,SAAA4+E,aAGA,gBAAA9uE,MAAAA,IAAA5nB,OAAA,EACA8X,QAAA4+E,aAAAtkF,QAAAwV,KADA,OAFAA;A9CzGA,E8CmHA5e,KAAAghG,eAAA,SAAAC,QAMA,GAHAj2D,QAAAqlB,KAAA,uCAAAvqD,WAGA9F,KAAAw/F,UAAA,mBACA,MAAAyB,QAAA5rG,QAAA,SAAA,GAGA,IAAA,kBAAAK,KAAAurG,SAAA,+CAAAvrG,KAAAurG,QAEA,MAAAA,OAGA,IAAAC,QAAA,GACAC,iBAAAnhG,KAAAw/F,UAAA,mBAWA,IATA2B,kBAAAtwF,EAAAxL,KAAA87F,mBACAtwF,EAAAmkB,MAAAmsE,iBAAA,SAAAC,gBAAArK,gBACA,MAAA,KAAAkK,OAAAj+F,QAAA+zF,iBACAmK,OAAAD,OAAA5rG,QAAA0hG,eAAAqK,kBACA,GAFA,SAOAF,OACA,MAAAA,OAEA,IAAAG,SAAArhG,KAAAw/F,UAAA,YAAAjB,oBACA,OAAA8C,SAAAJ;A9CjJA,E8C4JA,QAQA5T,MAAA,SAAA+S,mBAAAvzF,KAAAiiD,gBACA,GAAAwyC,aAAA,WACA,GAAAxyF,SAAA+B,EAAAjM,cAAAkB,UAAA,IAAAA,UAAA,KAEAm5F,UAAAp5F,MAAA7F,MAEAA,KAAA2rD,SAAAy0C,oBACApgG,KAAA6M,KAAAA,MAAA,GACA7M,KAAAu/F,WAAA1uF,EAAA6f,SAAA5hB,QAAAggD,qBAGA,OADAwyC,aAAAn/F,UAAA88F,SAAA98F,UACAm/F,gBC/sBA13E,OAAA,aACA,SACA,UACA,SAAA/Y,EAAAkqB,QACA,YAEA,IAAAC,QAAAD,OAAAC,QAMA,QAUAz1B,IAAA,SAAAg8F,MACA,MAAA1wF,GAAAjM,cAAAo2B,OAAAumE,OACAvmE,OAAAumE,MADA,QAaAC,aAAA,SAAAD,MACA,GAAApD,cACAF,OAAAj+F,KAAAuF,IAAAg8F,KAIA,OAHAtD,SAAAptF,EAAA3U,QAAA+hG,OAAAE,aACAA,UAAAF,OAAAE;A/CyfA,A+CvfAA,cCzCAv0E,OAAA,8BACA,YACA,SAAAijE,SACA,YAQA,IAAAW,aAGA6T,SACAx0F,KAAA,UACAjV,OAAA,SAAAgnB,IAAA/oB,MACA,MAAA,gBAAAA,MAAAwrG,SAAAxU,QAAAK,WAAAtuE,KAGA/oB,KAAA4rG,YAAA,EACA5rG,KAAAwrG,QAAAhsG,QAAA,MAAA,IAAA,IAAAupB,IAAA8iF,UAAArsG,QAAA,QAAA,IAAAA,QAAA,MAAA,IACA8sB,mBAAAvD,IAAAnF,KAAApkB,QAAA,QAAA,IAAAA,QAAA,MAAA,KAGAQ,KAAAwrG,QAAAziF,IAAA8iF,UAAArsG,QAAA,SAAA,IAAA8sB,mBAAAvD,IAAAnF,KAAApkB,QAAA,SAAA,KARA,SAcAssG,UACA90F,KAAA,WACAjV,OAAA,SAAAgnB,IAAA/oB,MACA,MAAAg3F,SAAAI,WAAAruE,KACAA,IAAA1b,WADA,SAOA0pF,QACA//E,KAAA,SACAjV,OAAA,SAAAgnB,KACA,MAAAiuE,SAAAM,SAAAvuE,KACAA,IAAA1b,WADA;AhDqfA,GgD9eA0+F,UACA/0F,KAAA,WACAjV,OAAA,SAAAgnB,IAAA/oB,MAEA,GAAAwrG,SAAAxrG,KAAAwrG,SAAA,IACA,OAAA,gBAAAziF,MAAA,aAAAA,IAAA4/E,UACA,iBAAA9oG,KAAAkpB,IAAA1b,YACAm+F,QAAAziF,IAAA1b,WAFA,SAOA,OAAAsqF,cCtEA5jE,OAAA,iDACA,SACA,UACA,YACA,0BACA,6BACA,UACA,SAAA/Y,EAAAnM,QAAAu5F,OAAA1Q,oBAAAsU,gBAAA9mE,QACA,YAEA,IAAA+mE,YAAA7D,OAAA14F,IAAA,SAIAw8F,uBACAl1F,KAAA,0BACAjV,OAAA,SAAAgnB,KACA,MAAAA,KAAAtb,SAAAsb,IAAAtH,SACA9Q,OAAA7D,SAAA+7F,SAAArpG,QAAA,YAAA,IAAAupB,IAAA1b,WAAA,IADA;AjDwhBA,GiDjhBAwqF,aAAAH,sBACA1gF,KAAA,QACAjV,OAAA,SAAAgnB,KACA,MAAAkjF,aAAAljF,IAAAq7B,OAAAr7B,IAAAq7B,OAAA6nD,WAAAjqD,MAAAhnC,EAAA/W,SAAA+W,EAAAolB,MAAA6rE,WAAA3D,UAAA,QAAAv/E,IAAAq7B,OACAv1C,QAAAs9F,SAAApjF,IAAA1b,WADA,SAKA2+F,gBAAAD,SACAC,gBAAAF,SACAE,gBAAAjV,OACAiV,gBAAAR,QACAU,wBACAV,QAAA,KAGAY,WACA7S,eAAA,8CACA5/B,WAAA,mDACA8/B,qBAAA,EACAC,WAAA,oDACAG,oBAAA,EACAC,qBAAA,EACAN,oBAAA,EACAI,IAAA;AACAD,AjDyfA,KiDzfA,8CACAjjF,OAAA,gDACAqjF,YAAA,qDACA+B,cAAA,uDACAP,OAAA,6DACAb,kBAAA,wEACAE,wBAAA,8EACAU,iBAAA,uEACAb,qBAAA;AACAW,AjDifA,iBiDjfA,uEACAM,qBAAA,2EACAD,kBAAA,wEACAN,wBAAA,8EACAkR,iCAAA,gFACAC,gCAAA,+EACAjS,QAAA,yDACAJ,IAAA;AACAE,AjD0eA,QiD1eA,yDACAoS,0CAAA,yFACAC,8CAAA,6FACAlS,aAAA,8DACAY,mBAAA,yEACAD,mBAAA,yEACAb,eAAA,EACAS,oBAAA;AACAW,AjDmeA,uBiDneA,6EACAR,wBAAA,8EACAK,iBAAA,uEACAM,kBAAA,wEACAZ,2BAAA,iFACAb,OAAA,wDACAY,4BAAA,kFACAd,mBAAA;AACA+B,AjD4dA,kBiD5dA,gFACAC,YAAA,6DACA/3D,QAAA,iDACA02D,sBAAA,4EAGA,QACA3jF,KAAA,iBACAo1F,UAAAA,UACAnzF,SACA4+E,aAAAA,aACAuQ,OAAA6D,WACAQ,mBACAC,YAAAxnE,OAAAC,SAAAwnE,qBACAC,WAAA1nE,OAAAC,SAAA0nE,oBACAC,kBAAA5nE,OAAAC,SAAA4nE,2BACAtqF,QAAAyiB,OAAAC,SAAA6nE,sBC/FAj5E,OAAA,mDACA,qCACA,iDACA,SAAAq1E,SAAAjkE;AACA,AlDwiBA,YkDtiBA,OAAAikE,UAAA5R,MAAAryD,OAAAinE,UAAAjnE,OAAAnuB,KAAAmuB,OAAAlsB,WCPA8a,OAAA,iDACA,SACA,SACA,mCACA,SAAA9mB,EAAA+N,EAAAmjF,SACA,YAMA,IAAA8O,aAQA1gG,KAAA,SAAAo6F,IAAAlyD,MASA,MARA0pD,SAAAc,IAAA0H,IAAA,iBACAx8F,KAAA+iG,KAAAvG,KAGAxI,QAAAc,IAAAxqD,KAAA,oBACAtqC,KAAAgjG,MAAA14D,MAGAtqC,MAQAijG,OAAA,WACA,MAAAjjG,MAAA+iG,MAQAruC,QAAA,WACA,MAAA10D,MAAAgjG,OAOA1O,UAAA,WACA,MAAAt0F,MAAA+iG,MAAA/iG,KAAA+iG,KAAA70D,QAOAg1D,kBAAA,WACA,MAAAljG,MAAA+iG,MAAA/iG,KAAA+iG,KAAAhM,gBAOAoM,OAAA,WACA,IAAAnjG,KAAAojG,KAAA,CACA,GACA5G,KAAA6G,KADAn1D,OAAAluC,KAAAs0F,WAGApmD,UACAsuD,IAAA15F,EAAA,iBAAAorC,OAAA;AACAsuD,AnDkeA,ImDleAxlG,SACAqsG,KAAAvgG,EAAA,qBAAAorC,OAAA,MAEAm1D,KAAArsG,SACAqsG,KAAA7G,IAAAphF,WAAAzV,SAGA3F,KAAAojG,MACA5G,IAAAA,IACA6G,KAAAA,KACAhzF,OAAAgzF,KAAAp+F,KAAA,eACAq+F,OAAA9G,IAAAzpF,GAAA,aAMA,MAAA/S,MAAAojG,MAQAxF,OAAA,WAEA,GAAA2F,KAAAvjG,KAAAmjG,QAUA,OATAI,OAEAA,IAAAlzF,OAAAjC,YAAA,YACAm1F,IAAAF,KAAAp+F,KAAA,4BAAA5J,SAEA2E,KAAA8I,UAAA,EACA9I,KAAAsG,QAAA,WAGAtG,MAQA2I,QAAA,WAEA,GACA0H,QADAkzF,IAAAvjG,KAAAmjG,QAmBA,OAjBAI,OAEAlzF,OAAAkzF,IAAAlzF,OAAAlC,SAAA,YAEArL,EAAA,gGACA3H,SAAAooG,IAAAF,MACAv6E,OAAAzY,OAAAyY,UACAttB,MAAA6U,OAAAmzF,cACA/nG,OAAA4U,OAAA0hC;AAGAwxD,AnDuaA,ImDvaAF,KAAAp+F,KAAA,uCAAAkJ,SAAA,wBAEAnO,KAAA8I,UAAA,EACA9I,KAAAsG,QAAA,YAGAtG,MAQA8B,KAAA,WACA,GAAAyhG,KAAAvjG,KAAAmjG,QAOA,OANAI,OACAA,IAAAF,KAAAvhG,OAEA9B,KAAAsG,QAAA,SAGAtG,MAQA+B,KAAA,WACA,GAAAwhG,KAAAvjG,KAAAmjG,QAOA,OANAI,OACAA,IAAAF,KAAAthG,OAEA/B,KAAAsG,QAAA,SAGAtG,MAQAsG,QAAA,SAAA8mC,WACA,GAAAm2D,KAAAvjG,KAAAmjG,SACA99D,KAAAx0B,EAAAwlB,KAAAvwB,UAAA,EAYA,OAVAu/B,MAAAxoC,QAAAmD,MAEAujG,MAEAA,IAAAF,KAAA/8F,QAAA8mC,UAAA/H,MACAk+D,IAAAD,QACAC,IAAA/G,IAAAl2F,QAAA8mC,UAAA/H,OAIArlC,OAQAyjG,sBAOArhG,KAAA,SAAAkoC,MAKA,MAJA0pD,SAAAc,IAAAxqD,KAAA,oBACAtqC,KAAAgjG,MAAA14D,MAGAtqC,MASA0jG,QAAA,SAAAC,OACA,GAAAlhE,MAAAziC,IAoBA,QAjBA2jG,QAAAlhE,KAAAmhE,SACAnhE,KAAA2D;AACA3D,AnDyUA,KmDzUAmhE,SACAnhE,KAAAugE,OACAnyF,EAAAikB,QAAA2N,KAAAugE,MAAAa,cAAA,SAAAnR,SACA,GAAAoR,QAEA9P,SAAAc,IAAApC,QAAA,iBACAoR,QAAAC,eAAArR,QAAAjwD,KAAAugE,OACAvgE,KAAAmhE,MAAA/jG,KAAAikG,SACArhE,KAAA2D,KAAAssD,QAAAxkD,QAAA41D,QACArhE,KAAA2D,KAAAssD,QAAAqE,gBAAA+M,YAMA9jG,KAAA4jG,OASAX,OAAA,SAAAe,OAEA,MADAhkG,MAAA0jG,UACA1jG,KAAAomC,KAAA49D,QASAC,QAAA,SAAAD,MAAAh1D,QACA,GAAAwtD,KAAAx8F,KAAAijG,OAAAe,MACA,OAAAxH,MAAAA,IAAAxtD,QACAwtD,IAAAxtD,QAAAnpC,MAAA22F,IAAA3rF,EAAAwlB,KAAAvwB,UAAA,IADA,QAWAo+F,WAAA,SAAAl1D,OAAAt4C,QACA,GACAwD,IADAmrC,KAAAx0B,EAAAwlB,KAAAvwB,UAAA,EAiBA,OAbA5L,IADA,kBAAAxD,QACA,SAAA8lG,KACA9lG,OAAAF,KAAAgmG,IAAAA,MAAAA,IAAAxtD,SACAwtD,IAAAxtD,QAAAnpC,MAAA22F,IAAAn3D,OAIA,SAAAm3D;AACAA,AnD8QA,ImD9QAxtD,SACAwtD,IAAAxtD,QAAAnpC,MAAA22F,IAAAn3D,OAKArlC,KAAAnL,KAAAqF,KAQArF,KAAA,SAAAqF,IAEA,MADA2W,GAAAikB,QAAA90B,KAAA0jG,UAAAxpG,IACA8F,MASAmkG,UAAA,SAAAH,OAEA,MADAhkG,MAAAikG,QAAAD,MAAA,UACAhkG,MASAokG,WAAA,SAAAJ,OAEA,MADAhkG,MAAAikG,QAAAD,MAAA,WACAhkG,MASAqkG,QAAA,SAAAL,OAEA,MADAhkG,MAAAikG,QAAAD,MAAA,QACAhkG,MASAskG,QAAA,SAAAN,OAEA,MADAhkG,MAAAikG,QAAAD,MAAA,QACAhkG,MASAukG,UAAA,SAAA7tG,QAEA,MADAsJ,MAAAkkG,WAAA,SAAAxtG,QACAsJ,MASAwkG,WAAA,SAAA9tG,QAEA,MADAsJ,MAAAkkG,WAAA,UAAAxtG,QACAsJ,MASAykG,QAAA,SAAA/tG,QAEA,MADAsJ,MAAAkkG,WAAA,OAAAxtG,QACAsJ,MASA0kG,QAAA,SAAAhuG,QAEA,MADAsJ,MAAAkkG,WAAA,OAAAxtG,QACAsJ;AnDuKA,GmD7JA+jG,eAAA,SAAAvH,IAAAlyD,MACA,GAAAw5D,SAAAjzF,EAAA9J,MAAA+7F,YAAA,EACA,OAAAgB,SAAA1hG,KAAAo6F,IAAAlyD,OAQAq6D,kBAAA,SAAAr6D,MACA,GAAAmiD,YAAA57E,EAAA9J,MAAA08F,sBAAA,EACA,OAAAhX,YAAArqF,KAAAkoC,MAGA,QACAmiD,WAAAkY,kBACAb,QAAAC,kBCpaAn6E,OAAA,kCACA,SACA,SACA,UACA,eACA,iCACA,kCACA,kDACA,gDACA,2BACA,SAAA9mB,EAAA+N,EAAAnM,QAAAg+B,QAAAkiE,UAAA5Q,QAAA6Q,YAAA/B,WAAAvV,qBACA,YAEA,IAAAnoE,SAAA,KAAA1gB,QAAA0gB,QAAA,EAAA1gB,QAAA0gB,QAAA,EAAA,IAKA0/E;AAEA1iG,ApD6hBA,KoD7hBA,SAAAkwD,SAAA9xD,MACA,GAAAiiC,MAAAziC,KAEA+kG,iBACArX,aAAA1tF,KAAA0tF,aAEA1tF,MAAA8O,QAAAmvF,SACA8G,gBAAA9G,OAAAj+F,KAAA8O,QAAAmvF,QAGAj+F,KAAAs1F,UAAA,GAAAuP,aAAAE,iBACA/kG,KAAAglG,QAAA,GAAAJ,WAEA5kG,KAAAglG,QAAAjN,aAAAzlC,SAAA,SAAAhoB,MACA,MAAAA,OAIA7H,KAAAugE,MAAA14D,SACA7H,MAAA6yD,UAAA5gF,KAAA,WACA+tB,KAAAugE,MAAA5N,YAAAp1F,MAEAQ,QACAR,KAAA83F,qBARAr1D,KAAAn8B,QAAA,QAAA,8CAkBAtG,KAAA8V,GAAA,WAAA,SAAAmvF,aAAAC,YAAA1kG,MAEAykG,cAAAC,YACAziE,KAAAuiE,QAAArL,aAAAsL,aAAA,SAAA36D,MACA7H,KAAA6yD,UAAA5gF,KAAA,WACA,GAAApU,SAEAuQ,GAAAikB,QAAAwV,KAAAmwD,eAAA,SAAAlC;AAEA,ApDofA,GoDpfA4M,mBAAA5M,SAAA1zF,KAAA,oBACAqgG,aAAAC,mBAAAttD,KAAA+zC,aAAA2M,SAAAvzF,MACA1E,MAAAT,KAAA,GAAA6iC,SAAA,SAAAt5B,SACA,GAAAg8F,kBAAAtiG,EAAAy1F,SAAAxmC,SAIAjvD,GAAA,mBAAA8a,OAAAwnF,kBACA7M,SAAA1C,YACAh4D,SAAA,WACAunE,iBAAA/pG,SACA+N,kBAQAs5B,QAAAlJ,IAAAl5B,OAAA6I,KAAA3I,OAEAR,KAAA83F,sBAGAt3F,UAKAuxD,OAAA,SAAA28B,IAAAluF,MACA,GAAAiiC,MAAAziC,IAGA,IAAAA,KAAAgjG,MAAA,CAEA,IAEAtU,IAAAn2F,UAAAyH,KAAAgjG,MAAAjxC,WACA,MAAA38D,GACAqtC,KAAAn8B,QAAA,QAAA,iCAAAlR,EAAA8lC,SAEA,IAGAwH,QAAAqB,MACArB,QAAAlJ,IAAAx5B,KAAAgjG,MAAAnN,cACA,GAAAnzD,SAAA,SAAAt5B,QAAAC,QACAwH,EAAA5D,MAAA5D,OAAA+b,QAAA,GAAAxe,OAAA;ApDscA,KoDncAuC,KAAA,WACArG,EAAA4rF,KACAnoF,IAAA,kBACAuP,GAAA,iBAAA,WACA2sB,KAAAn8B,QAAA,cAAAm8B,KAAA+L,YACA/L,KAAAn8B,QAAA,iBAAAm8B,KAAAosD,kBAEAtoF,IAAA,cACAuP,GAAA,aAAA,SAAA1gB,EAAAiwG,oBACA5iE,KAAAn8B,QAAA,aAAA++F,oBAAAjwG,EAAA6f,cAAAsrB,UAEAh6B,IAAA,eACAuP,GAAA,cAAA,SAAA1gB,EAAAkwG,WACA,GAAAxH,aAAAr7D,KAAA6yD,UAAAoK,gBACA4F,WAAAA,WAAAlwG,EAAA6f,cAAAsrB,OACAu9D,aACAA,YAAAtyF,OAAA85F,aAQA7iE,KAAAn8B,QAAA,UAAAw8F,WAAArW,WAAAhqD,KAAAugE,QAEAxiG,SAhCAkiC,SAkCA,SAAAiE,KACAlE,KAAAn8B,QAAA,QAAA,6BAAAqgC,IAAAzL,WAEA,MAAAyL;AACAlE,ApDoaA,KoDpaAn8B,QAAA,QAAA,6BAAAqgC,IAAAzL,YAQA45B,MAAA,SAAA45B,IAAAluF,MACAR,KAAAgjG,QAEAnyF,EAAA6kB,OAAA11B,KAAAgjG,MAAAuC,kBAAA,SACAvlG,KAAAgjG,MAAAluC,QAEAhyD,EAAA4rF,KAAAnoF,IAAA,kBACAA,IAAA,cACAA,IAAA,eACAA,IAAA,YACAlF,QAEArB,KAAAs1F,WACAt1F,KAAAs1F,UAAA1uE,UAGApmB,QAOAguC,SAAA,WACA,GAAA5wC,SAgBA,OAfAoC,MAAAgjG,QAGAnyF,EAAAikB,QAAA90B,KAAAgjG,MAAAuC,kBAAA,SAAA/J,aACA59F,MAAA49F,YAAA32F,KAAA,uBAAA22F,YAAAhtD,aAIA39B,EAAAikB,QAAA90B,KAAAgjG,MAAAa,cAAA,SAAAnR,SACAsB,QAAAc,IAAApC,QAAA,gBAAAA,QAAA7tF,KAAA,QACAjH,MAAA4+F,IAAA5+F,MAAA4+F,QACA5+F,MAAA4+F,IAAA9J,QAAA7tF,KAAA,OAAA6tF,QAAAlkD;ApDyXA,IoDrXA5wC,OAOA6wC,SAAA,SAAA7wC,OACAoC,KAAAgjG,OAAAplG,QAGAiT,EAAAikB,QAAA90B,KAAAgjG,MAAAuC,kBAAA,SAAA/J,aACA,GAAAx2F,IAAAw2F,YAAA32F,KAAA,qBACAG,KAAApH,MAAAoH,KACAw2F,YAAA/sD,SAAA7wC,MAAAoH,OAKApH,MAAA4+F,KACA3rF,EAAAikB,QAAA90B,KAAAgjG,MAAAa,cAAA,SAAAnR,SACAsB,QAAAc,IAAApC,QAAA,gBAAA90F,MAAA4+F,IAAA9J,QAAA7tF,KAAA,QACA6tF,QAAAjkD,SAAA7wC,MAAA4+F,IAAA9J,QAAA7tF,KAAA,YAOAgqF,aAAA,WACA,GAAA19C,aAOA,OANAnxC,MAAAgjG,OACAnyF,EAAAmoB,OAAAh5B,KAAAgjG,MAAAuC,kBAAA,SAAA3F,IAAApE,aAEA,MADArqD,WAAAqqD,YAAA32F,KAAA,uBAAA22F,YAAAyE,cACA9uD,WACAA,WAEAA,WAIA,OAAA2zD;ACzOAl7E,ArDsjBA,OqDtjBA,mCAAA,iCAAA,kCAAA,SAAA47E,WAAAC,oBACA,YASA,OANAD,YAAA75C,SAAA,MAAA85C,oBAMAD,aC/BA57E,OAAA,yCAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAMA,MALAmK,MAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,SAIA;AtDqkBA,KuDvjBA+zB,OAAA,kCACA,SACA,SACA,OACA,eACA,mBACA,6BACA,wBACA,gCACA,gCACA,kCACA,0BACA,6BACA,yCACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAgH,QAAAgjE,YAAAj0C,WAAA8N,aAAA7N,cAAAi0C,UAAAC,cAAArY,oBAAAsU,gBAAAgE,WACA,YAGA,IAAAC,uBACAj5F,KAAA,0BACAjV,OAAAiqG,gBAAAR,QAAAzpG,QAIA81F,aAAAH,qBACAsU,gBAAAF,SACAE,gBAAAjV,OACAiV,gBAAAR,QACAyE;AACAzE,AvD2hBA,QuD3hBA,KAKA0E,aAGAl5F,KAAA,MAMAkmD,eAAA,WACA,GAAAizC,SAAAljG,EAAA+iG,YACA,OAAAp0C,YAAAu0C,SACAt8E,QAAA5mB,EAAA,eAAAkjG,SACAC,QAAAnjG,EAAA,kBAAAkjG,SACAE,WAAApjG,EAAA,iBAAAkjG,SACAG,QAAArjG,EAAA,+BAAAkjG,SACAI,MAAAtjG,EAAA,qBAAAkjG,SACA1sF,OAAAxW,EAAA,aAAAkjG,YAQA/yC,UAAA,WACA,GAAAj4B,QAAAh7B,KAAA4uC,YAEAy3D,YAAAx1F,EAAA8f,KAAAqK,QACA,iBACA,kBACA,gBACA,aAGA,OAAAukC,cAAA,kBAAA8mC,cAOAlzC,kBAAA,WACA,GAAAn4B,QAAAh7B,KAAA4uC,YAGAg9C,WAAA5wD,OAAAsrE,eAAA,QAAAp+F,KAAA7J,KACA,OAAAqzD,eAAAk6B,WAAA5rF;AvDweA,EuDheAumG,qBAAA,WACA,GAAA9jE,MAAAziC,KACAg7B,OAAAh7B,KAAA4uC,YACA43D,mBAAAd,YAAA,eAAA1qE,OAAAsrE,cAAA,SAMA,OAJAE,oBAAAA,SAAA,SAAA7/D,KACAlE,KAAAn8B,QAAA,QAAAqgC,OAGA6/D,mBACAr9F,KAAA,SAAAmrD,SACA7xB,KAAAgkE,aAAAnyC,WAUAlB,mBAAA,SAAAvmD,MACA,MAAA7M,MAAAymG,aACAzmG,KAAAymG,aAAA/xC,QAAA7nD,MADA,QAcAwmD,mBAAA,SAAAxmD,KAAAmN,QACA,GACA0sF,YADAjkE,KAAAziC,IAGA,OAAAA,MAAAymG,cACAC,WAAA1mG,KAAAymG,aAAA7xC,QAAA/nD,KAAAmN,QAEA0sF,WAAAA,SAAA,SAAA//D,KACAlE,KAAAn8B,QAAA,QAAAqgC,OAGA+/D,YAPA,QAoBAtkG,KAAA,WACA,GAAAqgC,MAAAziC,KAOA2mG,YAAA,SAAA33D,OAAAwK;AAEA,AvD2ZA,GuD3ZA90C,SAAA+9B,KAAAixB,gBAIAjxB,MAAA3sB,GAAA,cAAAk5B,OAAA,WACAvM,KAAAl8B,IAAA,IAAAyoC,QAEAvM,KAAAuwB,WACAiO,eAAAv8D,QAAAkiG,QAAA53D,OAAAwK,QACArwC,KAAA,SAAAk9B,SAEA5D,KAAAkxB,eAAAttB,QAAAurB,aAEAvrB,QAAAwrB,QACApvB,KAAAoxB,WAAAxtB,QAAAwrB,SAEAg1C,cAGAnyF,WAGA+9C,WAAA/tD,QAAAkiG,UAMAlyF,KAAA,WAEA,GAAAhQ,SAAA+9B,KAAAixB,iBACAnlB,OAAA9L,KAAA+wB,cAAAjlB,MACA7pC,SAAA9G,OAAA2wC,OAAAu4D,YACArkE,KAAA2vB,SAAA1tD,QAAAkiG,SACAliG,QAAA9G,QAAA2wC,OAAAogB,QACAlsB,KAAAuvB,UAQAzmD,OAAA,WAEA,GAAA7G,SAAA+9B,KAAAixB,iBACAnlB,OAAA9L,KAAA+wB,cAAAvB,WACAuzC,WAAA/iE,KAAA+iE,WACAuB,cAAAriG,QAAAsiG,eAAA,IAAAtiG,QAAAuiG,QACAztD,UAEA0tD,cAAA;AAEA,AvDuWA,MuDvWAzkE,MAAAuwB,WAAAgO,WAAAt8D,QAAAkiG,QAAApB,WAAAh3D,WAAAg3D,WAAA3W,eAAAr1C,QACArwC,KAAA,SAAAkJ,QACA,MAAA,IAAAqwB,SAAA,SAAAt5B,SAEA,MAAAiJ,QAAAgR,UACAhR,OAAA6yF,cACAxgG,QAAAyiG,aAAA90F,OAAA6yF,YAAAiC,cAGA90F,OAAA+0F,oBAAA,GAAA5B,YACAA,WAAAl/F,QAAA,WAAA+L,OAAAimF,UAAAjmF,OAAA6yF,YAAA97F,SAGAA,cAKA,OAAA1E,SAAA2iG,kBAAA94D,OAAAogB,OACAjsB,QAAAt5B,SAAA,GAKAq5B,KAAAqwB,UAAA,YACA,GAAApwB,SAAA,SAAAt5B,QAAAC,QAEAo5B,KAAAqwB,UAAA,YAAAxsD,QAAA,MAAAygG,cAAA,SAAAnyG,GACAA,EAAAuU,KAAA,SAAApK,UAKA,MAJAy6C,QAAA8tD,aAAA,EACAz2F,EAAA4nB,SAAA15B,WAAAA,SAAA,IACAy6C,OAAA8tD,aAAAvoG;AAEAqK,AvDuUA,QuDvUA89F,mBALAtyG,SAMAyU,YAKA69F,iBAMAL,YAAA,WAEA,GAAAniG,SAAA+9B,KAAAixB,iBACA7B,QAAApvB,KAAAmxB,aACArlB,OAAA9L,KAAA+wB,cAAAjlB,OACAjE,KAAAq7D,UAAA9Z,UAAAh6B,QAAAntD,QAAA6iG,aAEA7iG,SAAA9G,QAAA2wC,OAAAu4D,cAKAx8D,KAAAygD,QAAA,EAGAhhE,SAAArlB,QAAAyiG,eACA78D,KAAAugD,SAAAnmF,QAAAyiG,cAIA1kE,KAAAoxB,WAAA8xC,UAAArZ,gBAAAz6B,QAAAntD,QAAA6iG,gBAyJA,OAlJAvnG,MAAA8V,GAAA,QAAA,WAEApB,SAEAoB,GAAA,OAAA,SAAA0xF,UAAA1zC,MAAA9zC,UAOA,GAAAynF,iBAAA52F,EAAAklB,QAAA4wE,YAAA,QACAa,UAAAA,UACA1zC,MAAAA,OAAA,OACAO,IAAAr0C,UAIAhgB,MAAAsG,QAAA,2BAEAiF,SACApC,KAAA09F,aACA19F,KAAAs+F,iBAFAl8F,SAGA,SAAAo7B;AACAlE,AvDyQA,KuDzQAn8B,QAAA,QAAAqgC,SAGA7wB,GAAA,OAAA,SAAAg+C,OAEA9zD,KAAAsG,QAAA,2BAEAqgG,YAAA,QACA7yC,MAAAA,OAAA,WAIAh+C,GAAA,OAAA,SAAAo+C,KACA,GAAAxvD,SAAA+9B,KAAAixB,gBACAjxB,MAAAiwB,YAAAhuD,QAAAkiG,SAEAr7F,SACApC,KAAA,WACA,MAAAs5B,MAAAuwB,WACA8N,eAAA,YAAA5hC,OAAAg1B,MACA/qD,KAAA,WACA,MAAAs5B,MAAAuvB,aALAzmD,SAQA,SAAAo7B,KACAlE,KAAAn8B,QAAA,QAAAqgC,SAGA7wB,GAAA,UAAA,SAAAg+C,MAAAO,KAEA,GAAA3vD,SAAA+9B,KAAAixB,gBAEAhvD,SAAAgjG,WAAA,EAEAjlE,KAAAiwB,YAAAhuD,QAAAkiG,SAEAr7F,SACApC,KAAA09F,aACA19F,KAAA,WACAs5B,KAAAn8B,QAAA,QAAAo1B,GAAA,wDAAA;AACAirE,AvDkOA,YuDlOA,WACA7yC,MAAAA,MACAO,IAAAA,UANA9oD,SAUA,SAAAo7B,KACAlE,KAAAn8B,QAAA,QAAAqgC,SAGA7wB,GAAA,QAAA,WACA2sB,KAAA4wB,mBAAA,UAAA,GAAAlqD,KAAA,WACAs5B,KAAAn8B,QAAA,SACAmrC,KAAAhP,KAAA+wB,cAAAjlB,OAAAo5D,cAFAllE,SAKA,SAAAkE,KACAlE,KAAAn8B,QAAA,QAAAqgC,SAGA7wB,GAAA,aAAA,SAAAu8C,SAEA,GAAA3tD,SAAA1E,KAAA0zD,iBACAnlB,OAAAvuC,KAAAwzD,cAAAvB,WACAjD,SAAA,EAMA44C,aAAA,WACA,GAAAt9D,MAAAq7D,UAAAjxC,QAAAjyB,KAAAmxB,aAAAlvD,QAAAsiG,eACA,OAAA18D,OAAAA,KAAAu9D,MAAAv9D,KAAAu9D,MAAAnjG,QAAAsiG,eAGAhnG,MAAAsG,QAAA,yBAIA5B,QAAAgjG,UACA14C,QAAAtzB,GAAA,oCAAAksE,gBAEAljG,QAAA2iG,iBAAA94D,OAAAu4D,cAGA93C,QADA,IAAAtqD,QAAAojG,kBACApsE,GAAA,0CAAAksE,gBAEAlsE,GAAA,0BAAAksE;AAKA54C,AvD+KA,UuD9KAvsB,KAAAiwB,YAAAhuD,QAAAkiG,SACAnkE,KAAAn8B,QAAA,UAAA0oD,YAGAl5C,GAAA,cAAA,WACA9V,KAAAsG,QAAA,kBAEAwP,GAAA,aAAA,WACA9V,KAAAsG,QAAA,iBAEAwP,GAAA,QAAA,WACA9V,KAAAsG,QAAA,4BAEAwP,GAAA,SAAA,WACA9V,KAAAywD,UAEA36C,GAAA,QAAA,WACA9V,KAAAywD,UAEA36C,GAAA,QAAA,WACA9V,KAAA0uC,YAIA1uC,KAAAkzD,oBACAlzD,KAAAkzD,mBAAAhzD,QAIAF,KAAAgzD,WAAA5wD,OACA+G,KAAA,SAAAk9B,SACA5D,KAAAgxB,YAAAptB,QAAAsrB,UACAlvB,KAAAkxB,eAAAttB,QAAAurB,aACAnvB,KAAAoxB,WAAAxtB,QAAAwrB,YAWAE,OAAA,WAEA,GAAA/2B,QAAAh7B,KAAA4uC,YACAowB,OAAAh/D,KAAAmyD,eAEAn3B,QAAA+sE,SAAAnqF,OAAAohD,OAAAI;AvD8HA,EuDnHAhN,SAAA,SAAAC,SACA,GAAA5vB,MAAAziC,IAEA,OAAAyiC,MAAAuwB,WAAA0B,QAAArC,SACAlpD,KAAA,SAAAtT,MAEA,OACA6zB,QAAA7zB,KAAAy8D,SACA+uC,QAAAxrG,KAAAwrG,QACAzjG,MAAA/H,KAAAmyG,UACAC,QAAApyG,KAAAoyG,YAaAz1C,WAAA,SAAAH,QAAAC,UACA,GAAA7vB,MAAAziC,KAEAkoG,YAAA,WACAzlE,KAAA8vB,aAAAF,QAAA,WAAA,GAOA,OAJAC,UAAA21C,SACAjoG,KAAAsG,QAAA,kBAAAgsD,SAAA21C,SAGA,GAAAvlE,SAAA,SAAAt5B,QAAAC,QACAqkF,aAAA37E,QAAA,UAAAugD,SAAA+uC,SAEA5+D,KAAA+iE,WAAAI,cAAAtzC,SAAA5oC,QAAAhxB,KAAA45D,SAAA5oC,QAAA7zB,MACA63F,aAAAA,eAEA53E,GAAA,QAAA,SAAA6wB,KACAlE,KAAAn8B,QAAA,aACA+C,OAAAs9B,OAEA7wB,GAAA,OAAA,WACAw8C,SAAA10D,OACAoC,KAAAyuC,SAAA6jB,SAAA10D;AAEAoC,AvDoEA,KuDpEA+xD,OAAAtvB,KAAA0vB,gBAAAg2C,oBAEAryF,GAAA,SAAA,WAEA9V,KAAA8V,GAAA,iBAAAoyF,aACAloG,KAAA8V,GAAA,cAAAoyF,aAEA9+F,YAEAhH,UAYAqwD,WAAA,SAAAJ,SACA,GAAA5vB,MAAAziC,IAIA,OAFAyiC,MAAAn8B,QAAA,2BAEA,GAAAo8B,SAAA,SAAAt5B,QAAAC,QACA,MAAAo5B,MAAA+iE,eACA/iE,MAAA+iE,WACA1vF,GAAA,QAAA1M,SACA0rD,YAGA1rD,cAYA4oD,OAAA,WACA,GAAAvvB,MAAAziC,IAEAA,MAAAsG,QAAA,2BACAA,QAAA,aAAA,UAKAtG,KAAAqe,OAAA,QAAA,SAAAjpB,GACA,GAAAoL,MAAApL,EAAAoL,MACAR,MAAAgzD,WAAA8N,eAAA,UAAA33D,KAAA,WACAs5B,KAAAgkE,aACAhkE,KAAAgkE,aAAA3xC,QACA3rD,KAAA3I,MADAiiC,SAEA,SAAAkE;AACAlE,AvDQA,KuDRAn8B,QAAA,QAAAqgC,OAGAnmC,YAaAiwD,MAAA,WACA,GAAAhuB,MAAAziC,KACA0xD,cAAA1xD,KAAAkzD,kBAGA,OAAAxB,iBAAA1xD,KAAAwuC,SAAA,gBACAkjB,cAAAjB,QACAtnD,KAAA,SAAAtT,MAGA,GAAAA,MAAAA,KAAAmB,OAAA,CACA,GAAAoxG,aAUA,OATAv3F,GAAAikB,QAAAj/B,KAAA,SAAA2tC,OACA,GAAAx+B,IAAAw+B,MAAA9qC,KAAA,IAAA8qC,MAAAx+B,EAEAw+B,OAAAymD,SACAjlF,GAAAw+B,MAAAymD,OAAA,IAAAjlF,IAEAojG,UAAApjG,IAAAw+B,QAGAf,KAAAuwB,WAAA4N,cAAAwnC,cAGAj/F,KAAA,WACAuoD,cAAA5xD,SApBA,QAgCA4uC,QAAA,WAEA1uC,KAAAwlG,YACAxlG,KAAAwlG,WAAA1wC,QAEA90D,KAAAwlG,WAAA,MAIA,OAAAO,eAGAn8E,OAAA,YAAA,UAAA,SAAA/mB,SC5oBA,SAAArO,EAAAC,GAAA,QAAAO,GAAAP,EAAAO,GAAA,GAAAI,GAAAX,EAAA0D,SAAA5C;AAAA,AxDolBA,GwDplBA,SAAAH,EAAA,CAAA,GAAAsC,GAAA9B,EAAAnB,EAAA0B,WAAAsB,EAAA7B,EAAAiX,IAAA,OAAApY,GAAAyb,MAAAzY,GAAA,QAAA7B,EAAAuC,SAAA5C,eAAAmC,EAAAlD,EAAA,eAAAiD,EAAA,KAAA,KAAAC,GAAAxC,EAAAwC,KAAA,EAAA,OAAA,sCAAAhC,KAAAN,IAAAX,EAAAqU,SAAA,KAAA1T,EAAAX,EAAAyb,MAAAlb,EAAAA,IAAAE,EAAAT,GAAA,QAAAS,GAAAT,GAAA,OAAAD,EAAAC,GAAAknB,UAAAD,UAAAhlB,OAAA,WAAA,MAAA,WAAAlC,EAAA6zG,OAAAroG,KAAA,eAAAxL,EAAA2mB,KAAAb,QAAAgH,OAAAthB,QAAAhJ,OAAAxC,EAAA8zG,GAAA9zG,EAAA8zG,OAAA9zG,EAAA8zG,GAAAlpF,UAAA5qB,EAAAuD,OAAAvD,EAAA8zG,IAAAlpF,QAAA,SAAA1L,SAAA60F,IAAA,GAAAC,UAAA,EAAAC,UAAA,GAAAC,MAAA,IAAAC,QAAA,GAAAC,aAAA,GAAAC,cAAA,GAAAC,QAAA,GAAAC,OAAA,GAAAC,KAAA,GAAAC,IAAA,GAAAC,MAAA,GAAAC,OAAA,GAAAC,KAAA,GAAAC,OAAA,GAAAC,KAAA,GAAAC,KAAA,GAAAC,WAAA,IAAAC,eAAA,IAAAC,cAAA;AAAAC,AxDqlBA,awDrlBA,IAAAC,gBAAA,IAAAC,gBAAA,IAAAC,UAAA,GAAAC,QAAA,GAAAC,OAAA,IAAAC,MAAA,GAAAC,MAAA,GAAAC,MAAA,GAAAC,IAAA,EAAAC,GAAA,GAAAC,QAAA,MAAA91G,EAAA6O,GAAAtL,QAAAwyG,SAAA/1G,EAAA6O,GAAA2K,MAAAxZ,EAAA6O,GAAAwB,KAAA2lG,OAAAh2G,EAAA6O,GAAAsR,MAAAA,MAAA,SAAAlgB,EAAAO,GAAA,MAAA,gBAAAP,GAAAuL,KAAAnL,KAAA,WAAA,GAAAK,GAAA8K,IAAA7B,YAAA,WAAA3J,EAAAU,GAAAyf,QAAA3f,GAAAA,EAAAwB,KAAAtB,IAAAT,KAAAuL,KAAAwqG,OAAA3kG,MAAA7F,KAAA8F,YAAA2kG,aAAA,WAAA,GAAAh2G,EAAA,OAAAA,GAAAD,EAAA2qB,QAAAurF,MAAA,oBAAAh1G,KAAAsK,KAAAnG,IAAA,cAAA,WAAAnE,KAAAsK,KAAAnG,IAAA,aAAAmG,KAAA2b,UAAAjlB,OAAA,WAAA,MAAA,4BAAAhB,KAAAlB,EAAA6zG,OAAAroG,KAAA,WAAA,KAAA,gBAAAtK,KAAAlB,EAAA6zG,OAAAroG,KAAA,WAAA,GAAAxL,EAAA6zG,OAAAroG,KAAA,aAAA,GAAAxL,EAAA6zG,OAAAroG,KAAA,aAAA;AxDslBA,GwDtlBA0F,GAAA,GAAA1F,KAAA2b,UAAAjlB,OAAA,WAAA,MAAA,gBAAAhB,KAAAlB,EAAA6zG,OAAAroG,KAAA,WAAA,GAAAxL,EAAA6zG,OAAAroG,KAAA,aAAA,GAAAxL,EAAA6zG,OAAAroG,KAAA,aAAA,MAAA0F,GAAA,GAAA,QAAAhQ,KAAAsK,KAAAnG,IAAA,eAAApF,EAAAuC,OAAAxC,EAAAqH,UAAApH,GAAAksB,OAAA,SAAA3rB,GAAA,GAAAA,IAAAP,EAAA,MAAAuL,MAAAnG,IAAA,SAAA7E,EAAA,IAAAgL,KAAAhJ,OAAA,IAAA,GAAA5B,GAAAQ,EAAAV,EAAAV,EAAAwL,KAAA,IAAA9K,EAAA8B,QAAA9B,EAAA,KAAA2G,UAAA,CAAA,GAAAzG,EAAAF,EAAA2E,IAAA,aAAA,aAAAzE,GAAA,aAAAA,GAAA,UAAAA,KAAAQ,EAAAqa,SAAA/a,EAAA2E,IAAA,UAAA,KAAA6M,MAAA9Q,IAAA,IAAAA,GAAA,MAAAA,EAAAV,GAAAA,EAAAgkB,SAAA,MAAA,IAAAyxF,iBAAA,WAAA,MAAA3qG,MAAAgW,MAAAxhB,EAAA6D,QAAAuyG,YAAA,cAAA,aAAA,uBAAA,SAAAp2G,GAAAA,EAAAie,oBAAAo4F,gBAAA;AAAA,AxDulBA,MwDvlBA7qG,MAAAiW,OAAA,2BAAAzhB,EAAA,OAAAgvG,WAAA,GAAAr+F,QAAA3Q,EAAAK,MAAA,QAAA,UAAA,SAAAG,EAAAE,GAAA,QAAAwC,GAAAjD,EAAAO,EAAAE,EAAAU,GAAA,MAAApB,GAAAK,KAAAO,EAAA,WAAAJ,GAAA2F,WAAAnG,EAAA6zG,OAAA5zG,EAAA,UAAAuL,MAAA,KAAA,EAAA9K,IAAAF,GAAA2F,WAAAnG,EAAA6zG,OAAA5zG,EAAA,SAAAuL,KAAA,SAAA,KAAA,GAAApK,IAAAZ,GAAA2F,WAAAnG,EAAA6zG,OAAA5zG,EAAA,SAAAuL,MAAA,KAAA,KAAAhL,EAAA,GAAAI,GAAA,UAAAF,GAAA,OAAA,UAAA,MAAA,UAAAU,EAAAV,EAAAK,cAAAkC,GAAAqzG,WAAAt2G,EAAA6O,GAAAynG,WAAAC,YAAAv2G,EAAA6O,GAAA0nG,YAAAvH,WAAAhvG,EAAA6O,GAAAmgG,WAAAzxD,YAAAv9C,EAAA6O,GAAA0uC,YAAAv9C,GAAA6O,GAAA,QAAAnO,GAAA,SAAAF,GAAA,MAAAA,KAAAP,EAAAgD,EAAA,QAAAvC,GAAAsB,KAAAwJ,MAAAA,KAAAnL,KAAA,WAAAL,EAAAwL,MAAAnG,IAAAjE,EAAA8B,EAAAsI,KAAAhL,GAAA,SAAAR,EAAA6O,GAAA,QAAAnO,GAAA,SAAAT,EAAAO,GAAA,MAAA,gBAAAP,GAAAgD,EAAA,QAAAvC,GAAAsB,KAAAwJ,KAAAvL,GAAAuL,KAAAnL,KAAA;AAAAL,AxDwlBA,EwDxlBAwL,MAAAnG,IAAAjE,EAAA8B,EAAAsI,KAAAvL,GAAA,EAAAO,GAAA,WAAAR,EAAAuD,OAAAvD,EAAA2mB,KAAA,MAAAtlB,KAAArB,EAAA2mB,KAAA3C,aAAAhkB,EAAA2mB,KAAA3C,aAAA,SAAA/jB,GAAA,MAAA,UAAAO,GAAA,QAAAR,EAAAqB,KAAAb,EAAAP,MAAA,SAAAA,EAAAO,EAAAE,GAAA,QAAAV,EAAAqB,KAAApB,EAAAS,EAAA,KAAA81G,UAAA,SAAAv2G,GAAA,MAAAO,GAAAP,GAAAiS,MAAAlS,EAAAqQ,KAAApQ,EAAA,eAAAw2G,SAAA,SAAAx2G,GAAA,GAAAS,GAAAV,EAAAqQ,KAAApQ,EAAA,YAAAW,EAAAsR,MAAAxR,EAAA,QAAAE,GAAAF,GAAA,IAAAF,EAAAP,GAAAW,MAAAZ,EAAA,WAAA,GAAAC,GAAAoH,SAAAT,KAAApG,EAAAP,EAAA2C,YAAApC,EAAA6G,SAAA9E,cAAA,OAAA/B,GAAA8F,aAAAtG,EAAAuD,OAAA/C,EAAAgF,OAAAkxG,UAAA,QAAAzvG,OAAA,OAAAgmB,QAAA,EAAA0pF,YAAA,IAAA32G,EAAA6D,QAAA6yG,UAAA,MAAAl2G,EAAA8F,aAAAtG,EAAA6D,QAAAuyG,YAAA,iBAAA51G,GAAAP,EAAAuH,YAAAhH,GAAAgF,MAAAC,QAAA,SAAAzF,EAAA6zG,SAAA7zG,EAAA6zG,OAAA7zG,EAAAqF;AAAArF,AxDylBA,EwDzlBAuD,OAAAvD,EAAA8zG,IAAA/2C,QAAAz5D,IAAA,SAAArD,EAAAO,EAAAE,GAAA,GAAAE,GAAAZ,EAAA8zG,GAAA7zG,GAAA0N,SAAA,KAAA,GAAAvM,KAAAV,GAAAE,EAAA08D,QAAAl8D,GAAAR,EAAA08D,QAAAl8D,OAAAR,EAAA08D,QAAAl8D,GAAAiK,MAAA7K,EAAAE,EAAAU,MAAAY,KAAA,SAAAhC,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAAs9D,QAAAr9D,EAAA,IAAAS,GAAAV,EAAAk+F,QAAA,GAAAv8F,WAAA,IAAA,GAAAf,GAAA,EAAAA,EAAAF,EAAA8B,OAAA5B,IAAAZ,EAAAsa,QAAA5Z,EAAAE,GAAA,KAAAF,EAAAE,GAAA,GAAAyQ,MAAArR,EAAAk+F,QAAA19F,KAAA8E,SAAA,SAAAtF,EAAAC,GAAA,MAAAoH,UAAA2e,wBAAA,GAAAhmB,EAAAgmB,wBAAA/lB,GAAAD,IAAAC,GAAAD,EAAAsF,SAAArF,IAAA22G,UAAA,SAAA32G,EAAAO,GAAA,GAAA,WAAAR,EAAAC,GAAAoF,IAAA,YAAA,OAAA,CAAA,IAAA3E,GAAAF,GAAA,SAAAA,EAAA,aAAA,YAAAI,GAAA,CAAA,OAAAX,GAAAS,GAAA,GAAA,GAAAT,EAAAS,GAAA,EAAAE,EAAAX,EAAAS,GAAA,EAAAT,EAAAS,GAAA,EAAAE,IAAAi2G,WAAA,SAAA72G,EAAAC,EAAAO,GAAA,MAAAR,GAAAC,GAAAA,EAAAO,EAAAR,GAAA82G,OAAA,SAAA72G,EAAAO,EAAAE,EAAAE,EAAAQ,EAAA6B,GAAA,MAAAjD,GAAA8zG,GAAA+C,WAAA52G,EAAAS,EAAAU,IAAApB,EAAA8zG,GAAA+C,WAAAr2G,EAAAI,EAAAqC;AxD0lBA,MwD1lBAoL,QAIA,SAAArO,EAAAC,GAAA,GAAAD,EAAAmY,UAAA,CAAA,GAAA3X,GAAAR,EAAAmY,SAAAnY,GAAAmY,UAAA,SAAAlY,GAAA,IAAA,GAAAW,GAAAF,EAAA,EAAA,OAAAE,EAAAX,EAAAS,IAAAA,IAAA,IAAAV,EAAAY,GAAA2X,eAAA,UAAA,MAAAnX,IAAAZ,EAAAP,QAAA,CAAA,GAAAS,GAAAV,EAAA6O,GAAAhI,MAAA7G,GAAA6O,GAAAhI,OAAA,SAAA5G,EAAAO,GAAA,MAAAgL,MAAAnL,KAAA,WAAA,MAAAG,MAAAP,GAAAD,EAAAkC,OAAAjC,GAAAuL,OAAAhJ,SAAAxC,EAAA,IAAAwL,MAAAlI,KAAAkI,OAAAnL,KAAA,WAAA,IAAAL,EAAAwL,MAAA+M,eAAA,UAAA,MAAAtY,OAAAS,EAAAsB,KAAAhC,EAAAwL,MAAAvL,EAAAO,MAAAR,EAAA+2G,OAAA,SAAA92G,EAAAO,EAAAE,GAAA,GAAAU,GAAAR,EAAAX,EAAAK,MAAA,KAAA,EAAAL,GAAAA,EAAAK,MAAA,KAAA,GAAAc,EAAAR,EAAA,IAAAX,EAAAS,IAAAA,EAAAF,EAAAA,EAAAR,EAAAg3G,QAAAh3G,EAAA2mB,KAAA,KAAAvlB,GAAA,SAAAZ,GAAA,QAAAR,EAAAqB,KAAAb,EAAAP,IAAAD,EAAAY,GAAAZ,EAAAY,OAAAZ,EAAAY,GAAAX,GAAA,SAAAD,EAAAC,GAAAqR,UAAA9O,QAAAgJ,KAAAyrG,cAAAj3G,EAAAC,GAAA,IAAAgD,GAAA,GAAAzC,EAAAyC,GAAAqX,QAAAta,EAAAuD,QAAA,KAAAN,EAAAqX;AAAAta,AxDulBA,EwDvlBAY,GAAAX,GAAA0N,UAAA3N,EAAAuD,QAAA,EAAAN,GAAA6Z,UAAAlc,EAAAs2G,WAAAj3G,EAAAk3G,kBAAAn3G,EAAAY,GAAAX,GAAA0N,UAAAwpG,mBAAAl3G,EAAAm3G,gBAAAh2G,GAAAV,GAAAV,EAAA+2G,OAAAM,OAAAp3G,EAAAD,EAAAY,GAAAX,KAAAD,EAAA+2G,OAAAM,OAAA,SAAA72G,EAAAE,GAAAV,EAAA6O,GAAArO,GAAA,SAAAI,GAAA,GAAAQ,GAAA,gBAAAR,GAAAqC,EAAAsL,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,GAAApO,EAAAsI,IAAA,OAAA5K,IAAAQ,GAAA6B,EAAAT,OAAAxC,EAAAuD,OAAA8N,MAAA,OAAA,EAAAzQ,GAAAoJ,OAAA/G,IAAArC,EAAAQ,GAAA,MAAAR,EAAAoE,OAAA,GAAA9B,GAAA9B,EAAAoK,KAAAnL,KAAA,WAAA,GAAAK,GAAAV,EAAAqB,KAAAmK,KAAAhL,GAAAY,EAAAV,GAAAV,EAAA8B,WAAApB,EAAAE,IAAAF,EAAAE,GAAAyQ,MAAA3Q,EAAAuC,GAAAvC,CAAA,OAAAU,KAAAV,GAAAU,IAAAnB,GAAAiD,EAAA9B,GAAA,GAAA,SAAAoK,KAAAnL,KAAA,WAAA,GAAAJ,GAAAD,EAAAqB,KAAAmK,KAAAhL,EAAAP,GAAAA,EAAAia,OAAAtZ,OAAAosC,QAAAhtC,EAAAqB,KAAAmK,KAAAhL,EAAA,GAAAE,GAAAE,EAAA4K,SAAAtI,KAAAlD,EAAAg3G,OAAA,SAAAh3G,EAAAC,GAAAqR,UAAA9O,QAAAgJ,KAAAyrG,cAAAj3G,EAAAC;AxDwlBA,EwDxlBAD,EAAAg3G,OAAArpG,WAAAupG,WAAA,SAAAC,kBAAA,GAAA78F,SAAAhG,UAAA,GAAA2iG,cAAA,SAAAh3G,EAAAO,GAAAR,EAAAqB,KAAAb,EAAAgL,KAAA0rG,WAAA1rG,MAAAA,KAAA0yF,QAAAl+F,EAAAQ,GAAAgL,KAAA8O,QAAAta,EAAAuD,QAAA,KAAAiI,KAAA8O,QAAA9O,KAAA8rG,oBAAAr3G,EAAA,IAAAS,GAAA8K,IAAAA,MAAA0yF,QAAA18E,KAAA,UAAAhW,KAAA0rG,WAAA,WAAAx2G,EAAAw5C,YAAA1uC,KAAA2sD,UAAA3sD,KAAAsvD,SAAA,UAAAtvD,KAAAwhC,SAAAsqE,kBAAA,WAAA,MAAAt3G,GAAAu3G,UAAAv3G,EAAAu3G,SAAAxmG,IAAAvF,KAAA0yF,QAAA,IAAA1yF,KAAA0rG,aAAA/+C,QAAA,aAAAnrB,MAAA,aAAAkN,QAAA,WAAA1uC,KAAA0yF,QAAAz8E,OAAA,IAAAjW,KAAA0rG,YAAA1pG,WAAAhC,KAAA0rG,YAAA1rG,KAAAurG,SAAAt1F,OAAA,IAAAjW,KAAA0rG,YAAA39F,WAAA,iBAAAK,YAAApO,KAAA4rG,gBAAA;AxDylBA,EwDzlBAL,OAAA,WAAA,MAAAvrG,MAAA0yF,SAAAhkF,OAAA,SAAA1Z,EAAAE,GAAA,GAAAE,GAAAJ,CAAA,IAAA,IAAA8Q,UAAA9O,OAAA,MAAAxC,GAAAuD,UAAAiI,KAAA8O,QAAA,IAAA,gBAAA9Z,GAAA,CAAA,GAAAE,IAAAT,EAAA,MAAAuL,MAAA8O,QAAA9Z,EAAAI,MAAAA,EAAAJ,GAAAE,EAAA,MAAA8K,MAAAgsG,YAAA52G,GAAA4K,MAAAgsG,YAAA,SAAAv3G,GAAA,GAAAO,GAAAgL,IAAA,OAAAxL,GAAAK,KAAAJ,EAAA,SAAAD,EAAAC,GAAAO,EAAAi3G,WAAAz3G,EAAAC,KAAAuL,MAAAisG,WAAA,SAAAz3G,EAAAC,GAAA,MAAAuL,MAAA8O,QAAAta,GAAAC,EAAA,aAAAD,GAAAwL,KAAAurG,SAAA92G,EAAA,WAAA,eAAAuL,KAAA4rG,gBAAA,+BAAA/mG,KAAA,gBAAApQ,GAAAuL,MAAA49F,OAAA,WAAA,MAAA59F,MAAAisG,WAAA,YAAA,IAAAtjG,QAAA,WAAA,MAAA3I,MAAAisG,WAAA,YAAA,IAAA38C,SAAA,SAAA76D,EAAAO,EAAAE,GAAA,GAAAE,GAAAQ,EAAA6B,EAAAuI,KAAA8O,QAAAra;AAAA,AxD0lBA,GwD1lBAS,EAAAA,MAAAF,EAAAR,EAAAyd,MAAAjd,GAAAA,EAAA0D,MAAAjE,IAAAuL,KAAA2rG,kBAAAl3G,EAAAuL,KAAA2rG,kBAAAl3G,GAAAc,cAAAP,EAAAsd,OAAAtS,KAAA0yF,QAAA,GAAA98F,EAAAZ,EAAAigB,cAAArf,EAAA,IAAAR,IAAAQ,GAAAR,IAAAJ,KAAAA,EAAAI,GAAAQ,EAAAR,GAAA,OAAA4K,MAAA0yF,QAAApsF,QAAAtR,EAAAE,KAAAV,EAAA8B,WAAAmB,IAAAA,EAAAjB,KAAAwJ,KAAA0yF,QAAA,GAAA19F,EAAAE,MAAA,GAAAF,EAAA0d,yBAAA7P,QAIA,SAAArO,EAAAC,GAAA,GAAAO,IAAA,CAAAR,GAAAqH,UAAAqwG,QAAA,SAAA13G,GAAAQ,GAAA,IAAAR,EAAA+2G,OAAA,YAAAz8F,SAAAq9F,OAAA,gBAAAC,SAAA,EAAAn/F,MAAA,GAAAo/F,WAAA,WAAA,GAAA53G,GAAAuL,IAAAA,MAAA0yF,QAAA18E,KAAA,aAAAhW,KAAA0rG,WAAA,SAAAl3G,GAAA,MAAAC,GAAA63G,WAAA93G,KAAAwhB,KAAA,SAAAhW,KAAA0rG,WAAA,SAAA12G,GAAA,OAAA,IAAAR,EAAAqB,KAAAb,EAAAsd,OAAA7d,EAAAi3G,WAAA,uBAAAl3G,EAAAwN,WAAAhN,EAAAsd,OAAA7d,EAAAi3G,WAAA;AAAA12G,AxDulBA,EwDvlBAugB,4BAAA,GAAA,SAAAvV,KAAAmnC,SAAA,GAAAolE,cAAA,WAAAvsG,KAAA0yF,QAAAz8E,OAAA,IAAAjW,KAAA0rG,YAAA1rG,KAAAwsG,oBAAAh4G,EAAAqH,UAAAoa,OAAA,aAAAjW,KAAA0rG,WAAA1rG,KAAAwsG,oBAAAv2F,OAAA,WAAAjW,KAAA0rG,WAAA1rG,KAAAysG,mBAAAH,WAAA,SAAA73G,GAAA,IAAAO,EAAA,CAAAgL,KAAA0sG,eAAA1sG,KAAA2sG,SAAAl4G,GAAAuL,KAAA4sG,gBAAAn4G,CAAA,IAAAS,GAAA8K,KAAA5K,EAAA,GAAAX,EAAA+e,MAAA5d,EAAA,gBAAAoK,MAAA8O,QAAAq9F,QAAA13G,EAAA6d,OAAAna,SAAA3D,EAAAC,EAAA6d,QAAAiJ,QAAAvb,KAAA8O,QAAAq9F,QAAAn1G,QAAA,CAAA,OAAA5B,KAAAQ,GAAAoK,KAAA6sG,cAAAp4G,IAAAuL,KAAA8sG,eAAA9sG,KAAA8O,QAAA7B,MAAAjN,KAAA8sG,gBAAA9sG,KAAA+sG,iBAAA5uG,WAAA,WAAAjJ,EAAA43G,eAAA,GAAA9sG,KAAA8O,QAAA7B;AAAAjN,AxDwlBA,KwDxlBAgtG,kBAAAv4G,IAAAuL,KAAAitG,eAAAx4G,KAAAuL,KAAA0sG,cAAA1sG,KAAAktG,YAAAz4G,MAAA,GAAAuL,KAAA0sG,gBAAAj4G,EAAAge,kBAAA,KAAA,IAAAje,EAAAqB,KAAApB,EAAA6d,OAAAtS,KAAA0rG,WAAA,uBAAAl3G,EAAAwN,WAAAvN,EAAA6d,OAAAtS,KAAA0rG,WAAA,sBAAA1rG,KAAAwsG,mBAAA,SAAAh4G,GAAA,MAAAU,GAAAi4G,WAAA34G,IAAAwL,KAAAysG,iBAAA,SAAAj4G,GAAA,MAAAU,GAAAy3G,SAAAn4G,IAAAA,EAAAqH,UAAAma,KAAA,aAAAhW,KAAA0rG,WAAA1rG,KAAAwsG,oBAAAx2F,KAAA,WAAAhW,KAAA0rG,WAAA1rG,KAAAysG,kBAAAh4G,EAAAge,iBAAAzd,GAAA,GAAA,KAAA,IAAAm4G,WAAA,SAAA14G,GAAA,OAAAD,EAAA2qB,QAAAurF,MAAA7uG,SAAAuxG,cAAA,GAAA34G,EAAA4b,OAAArQ,KAAA0sG,eAAA1sG,KAAAqtG,WAAA54G,GAAAA,EAAAge,mBAAAzS,KAAAgtG,kBAAAv4G,IAAAuL,KAAAitG,eAAAx4G,KAAAuL,KAAA0sG,cAAA1sG,KAAAktG,YAAAltG,KAAA4sG,gBAAAn4G,MAAA;AAAAuL,AxDylBA,KwDzlBA0sG,cAAA1sG,KAAAqtG,WAAA54G,GAAAuL,KAAA2sG,SAAAl4G,KAAAuL,KAAA0sG,eAAA1sG,KAAA2sG,SAAAl4G,IAAAk4G,SAAA,SAAAl4G,GAAA,MAAAD,GAAAqH,UAAAoa,OAAA,aAAAjW,KAAA0rG,WAAA1rG,KAAAwsG,oBAAAv2F,OAAA,WAAAjW,KAAA0rG,WAAA1rG,KAAAysG,kBAAAzsG,KAAA0sG,gBAAA1sG,KAAA0sG,eAAA,EAAAj4G,EAAA6d,QAAAtS,KAAA4sG,gBAAAt6F,QAAA9d,EAAAqB,KAAApB,EAAA6d,OAAAtS,KAAA0rG,WAAA,sBAAA,GAAA1rG,KAAAstG,WAAA74G,KAAA,GAAAu4G,kBAAA,SAAAx4G,GAAA,MAAA+F,MAAAC,IAAAD,KAAA6uC,IAAAppC,KAAA4sG,gBAAA/4F,MAAArf,EAAAqf,OAAAtZ,KAAA6uC,IAAAppC,KAAA4sG,gBAAA34F,MAAAzf,EAAAyf,SAAAjU,KAAA8O,QAAAs9F,UAAAa,eAAA,SAAAz4G,GAAA,MAAAwL,MAAA8sG,eAAAI,YAAA,SAAA14G,KAAA64G,WAAA,SAAA74G;AAAA84G,AxD0lBA,WwD1lBA,SAAA94G,KAAAq4G,cAAA,SAAAr4G,GAAA,OAAA,MAAAqO,QAIA,SAAArO,EAAAC,GAAAD,EAAA8zG,GAAA9zG,EAAA8zG,MAAA,IAAAtzG,GAAA,oBAAAE,EAAA,oBAAAE,EAAA,SAAAQ,KAAA6B,EAAAjD,EAAA6O,GAAA2c,SAAAtoB,EAAAlD,EAAA6O,GAAAylB,MAAAt0B,GAAA6O,GAAA2c,SAAA,SAAAvrB,GAAA,IAAAA,IAAAA,EAAAunF,GAAA,MAAAvkF,GAAAoO,MAAA7F,KAAA8F,UAAArR,GAAAD,EAAAuD,UAAAtD,EAAA,IAAAkI,GAAAoE,EAAAC,EAAAtJ,EAAAlD,EAAAC,EAAAunF,IAAA3/E,EAAA3E,EAAA,GAAA+E,GAAAhI,EAAA84G,WAAA,QAAAz4G,MAAA,KAAA4H,EAAAjI,EAAAq0B,OAAAr0B,EAAAq0B,OAAAh0B,MAAA,MAAA,EAAA,EAAA,OAAA,KAAAuH,EAAAlH,UAAAwH,EAAAjF,EAAA8D,QAAAuF,EAAArJ,EAAA+D,SAAAuF,GAAA+K,IAAA,EAAAmV,KAAA,IAAA7kB,EAAA8B,YAAAxB,EAAAjF,EAAA8D,QAAAuF,EAAArJ,EAAA+D,SAAAuF,GAAA+K,IAAArU,EAAAyc,YAAA+M,KAAAxpB,EAAAqc,eAAA1X,EAAAoW,gBAAAhe,EAAAs3B,GAAA,WAAApvB,EAAAoE,EAAA,EAAAC,GAAA+K,IAAAtX,EAAAunF,GAAA/nE,MAAAiN,KAAAzsB,EAAAunF,GAAAnoE,SAAAlX,EAAAjF,EAAA8rG,aAAAziG,EAAArJ,EAAAq6C,cAAA/wC,EAAAtJ,EAAAoxB,UAAAt0B,EAAAK,MAAA,KAAA,MAAA;AAAA,AxDulBA,GwDvlBAL,IAAAC,EAAAuL,OAAA,IAAAlL,MAAA,IAAA,KAAAN,EAAAwC,SAAAxC,EAAAQ,EAAAU,KAAAlB,EAAA,IAAAA,EAAAgK,QAAApJ,IAAAF,EAAAQ,KAAAlB,EAAA,KAAAY,GAAAoJ,OAAAhK,IAAAY,EAAAA,IAAAZ,EAAA,GAAAQ,EAAAU,KAAAlB,EAAA,IAAAA,EAAA,GAAAY,EAAAZ,EAAA,GAAAU,EAAAQ,KAAAlB,EAAA,IAAAA,EAAA,GAAAY,EAAAX,EAAAuL,MAAAxL,IAAA,IAAAiI,EAAAzF,SAAAyF,EAAA,GAAAA,EAAA,IAAAC,EAAA,GAAAuT,SAAAvT,EAAA,GAAA,KAAA,EAAA,IAAAA,EAAA1F,SAAA0F,EAAA,GAAAA,EAAA,IAAAA,EAAA,GAAAuT,SAAAvT,EAAA,GAAA,KAAA,EAAA,UAAAjI,EAAAs3B,GAAA,GAAA/qB,EAAAkgB,MAAAvkB,EAAAlI,EAAAs3B,GAAA,KAAA32B,IAAA4L,EAAAkgB,MAAAvkB,EAAA,GAAA,WAAAlI,EAAAs3B,GAAA,GAAA/qB,EAAA+K,KAAAhL,EAAAtM,EAAAs3B,GAAA,KAAA32B,IAAA4L,EAAA+K,KAAAhL,EAAA,GAAAC,EAAAkgB,MAAAxkB,EAAA,GAAAsE,EAAA+K,KAAArP,EAAA,GAAAsD,KAAAnL,KAAA,WAAA,GAAA0O,GAAAvO,EAAAR,EAAAwL,MAAA9K,EAAAF,EAAAwuG,aAAA/rG,EAAAzC,EAAA+8C,cAAAr6C,EAAAuY,SAAAzb,EAAA6zG,OAAAroG,KAAA,cAAA,KAAA,EAAA3D,EAAA4T,SAAAzb,EAAA6zG,OAAAroG,KAAA,aAAA,KAAA,EAAAiB,EAAA/L,EAAAwC,GAAAuY,SAAAzb,EAAA6zG,OAAAroG,KAAA,eAAA,KAAA,GAAApL,EAAA6C,EAAA4E,GAAA4T,SAAAzb,EAAA6zG,OAAAroG,KAAA,gBAAA,KAAA,GAAAkB,EAAA1M,EAAAuD,UAAAiJ;AAAA,AxDwlBA,UwDxlBAvM,EAAA+4G,GAAA,GAAAtsG,EAAAggB,MAAAhsB,EAAAT,EAAA+4G,GAAA,KAAAp4G,IAAA8L,EAAAggB,MAAAhsB,EAAA,GAAA,WAAAT,EAAA+4G,GAAA,GAAAtsG,EAAA6K,KAAAtU,EAAAhD,EAAA+4G,GAAA,KAAAp4G,IAAA8L,EAAA6K,KAAAtU,EAAA,GAAA7B,EAAA63G,YAAAvsG,EAAAggB,KAAA3mB,KAAA6vE,MAAAlpE,EAAAggB,MAAAhgB,EAAA6K,IAAAxR,KAAA6vE,MAAAlpE,EAAA6K,MAAAxI,GAAA2d,KAAAhgB,EAAAggB,KAAAxpB,EAAAqU,IAAA7K,EAAA6K,IAAA1P,GAAA7H,EAAAK,MAAA,OAAA,OAAA,SAAAG,EAAAI,GAAAZ,EAAA8zG,GAAAtoF,SAAAvjB,EAAAzH,KAAAR,EAAA8zG,GAAAtoF,SAAAvjB,EAAAzH,IAAAI,GAAA8L,GAAAwsG,YAAA/wG,EAAAgxG,aAAA5sG,EAAA6sG,UAAA14G,EAAA24G,WAAAp2G,EAAAq2G,kBAAAvqG,EAAAwqG,eAAA9sG,EAAA+sG,gBAAAp5G,EAAAk0B,OAAApsB,EAAA8wG,GAAA/4G,EAAA+4G,GAAAzhF,GAAAt3B,EAAAs3B,OAAAv3B,EAAA6O,GAAA4qG,UAAAj5G,EAAAi5G,WAAAj5G,EAAA8zB,OAAAt0B,EAAAuD,OAAAmJ,GAAAmoB,MAAA50B,EAAA40B,YAAA70B,EAAA8zG,GAAAtoF,UAAAkuF,KAAAhtF,KAAA,SAAAzsB,EAAAO,GAAA,GAAAE,GAAAV,EAAAgS,QAAApR,EAAAJ,EAAA84G,kBAAA5sF,KAAAlsB,EAAA+4G,eAAA74G,EAAAsG,QAAAtG,EAAA6e,YAAAtf,GAAAysB,KAAA9rB,EAAA,EAAAX,EAAAysB,KAAA9rB,EAAAmF,KAAAC,IAAA/F,EAAAysB,KAAAlsB,EAAA84G,kBAAA5sF,KAAAzsB,EAAAysB;AxDylBA,EwDzlBAnV,IAAA,SAAAtX,EAAAO,GAAA,GAAAE,GAAAV,EAAAgS,QAAApR,EAAAJ,EAAA84G,kBAAA/hG,IAAA/W,EAAAg5G,gBAAA94G,EAAAuG,SAAAvG,EAAAif,WAAA1f,GAAAsX,IAAA3W,EAAA,EAAAX,EAAAsX,IAAA3W,EAAAmF,KAAAC,IAAA/F,EAAAsX,IAAA/W,EAAA84G,kBAAA/hG,IAAAtX,EAAAsX,OAAAoiG,MAAAjtF,KAAA,SAAAzsB,EAAAO,GAAA,GAAAA,EAAA+2B,GAAA,KAAA32B,EAAA,CAAA,GAAAF,GAAAV,EAAAgS,QAAA5Q,EAAAZ,EAAA84G,kBAAA5sF,KAAAlsB,EAAA+4G,eAAA74G,EAAAsG,QAAAtG,EAAA6e,aAAAtc,EAAA,SAAAzC,EAAAw4G,GAAA,IAAAx4G,EAAA44G,UAAA,UAAA54G,EAAAw4G,GAAA,GAAAx4G,EAAA44G,UAAA,EAAAl2G,EAAA,SAAA1C,EAAA+2B,GAAA,GAAA/2B,EAAA04G,aAAA14G,EAAA04G,YAAArxG,EAAA,GAAArH,EAAA8zB,OAAA,EAAAr0B,GAAAysB,MAAAlsB,EAAA84G,kBAAA5sF,KAAA,EAAAzpB,EAAAC,EAAA2E,EAAAzG,EAAA,EAAA6B,EAAAC,EAAA2E,EAAA,IAAA0P,IAAA,SAAAtX,EAAAO,GAAA,GAAAA,EAAA+2B,GAAA,KAAA32B,EAAA,CAAA,GAAAF,GAAAV,EAAAgS,QAAA5Q,EAAAZ,EAAA84G,kBAAA/hG,IAAA/W,EAAAg5G,gBAAA94G,EAAAuG,SAAAvG,EAAAif,YAAA1c,EAAA,QAAAzC,EAAAw4G,GAAA,IAAAx4G,EAAA64G,WAAA,WAAA74G,EAAAw4G,GAAA,GAAAx4G,EAAA64G,WAAA,EAAAn2G,EAAA,QAAA1C,EAAA+2B,GAAA,GAAA/2B,EAAA24G,cAAA34G,EAAA24G,aAAAtxG,EAAA,GAAArH,EAAA8zB,OAAA;AAAAr0B,AxD0lBA,EwD1lBAsX,KAAA/W,EAAA84G,kBAAA/hG,IAAA,EAAAtU,EAAAC,EAAA2E,EAAAzG,EAAA,EAAA6B,EAAAC,EAAA2E,EAAA,MAAA7H,EAAAs0B,OAAAC,YAAAv0B,EAAAs0B,OAAAC,UAAA,SAAAt0B,EAAAO,GAAA,SAAAU,KAAAlB,EAAA6zG,OAAA5zG,EAAA,eAAAA,EAAAuF,MAAAgmB,SAAA,WAAA,IAAA9qB,GAAAV,EAAAC,GAAAW,EAAAF,EAAA4zB,SAAAlzB,EAAAqa,SAAAzb,EAAA6zG,OAAA5zG,EAAA,OAAA,GAAA,KAAA,EAAAgD,EAAAwY,SAAAzb,EAAA6zG,OAAA5zG,EAAA,QAAA,GAAA,KAAA,EAAAiD,GAAAqU,IAAA/W,EAAA+W,IAAA3W,EAAA2W,IAAAnW,EAAAsrB,KAAAlsB,EAAAksB,KAAA9rB,EAAA8rB,KAAAzpB,EAAA,UAAAzC,GAAAA,EAAAq0B,MAAA7yB,KAAA/B,EAAAiD,GAAAxC,EAAA2E,IAAAnC,IAAAlD,EAAA6O,GAAAylB,OAAA,SAAAr0B,GAAA,GAAAO,GAAAgL,KAAA,EAAA,OAAAhL,IAAAA,EAAAqC,cAAA5C,EAAAD,EAAA8B,WAAA7B,GAAAuL,KAAAnL,KAAA,SAAAG,GAAAR,EAAAwL,MAAA8oB,OAAAr0B,EAAA+B,KAAAwJ,KAAAhL,EAAAR,EAAAwL,MAAA8oB,aAAA9oB,KAAAnL,KAAA,WAAAL,EAAAs0B,OAAAC,UAAA/oB,KAAAvL,KAAAiD,EAAAlB,KAAAwJ,MAAA,OAAAxL,EAAA6zG,SAAA7zG,EAAA6zG,OAAA7zG,EAAAqF,KAAA,WAAA,GAAA3E,GAAAE,EAAAqC,EAAAC,EAAA2E,EAAA5H,EAAAoH,SAAA1E,qBAAA,QAAA,GAAAnC,EAAA6G,SAAA9E,cAAA;AAAA7B,AxD2lBA,EwD3lBA2G,SAAA9E,cAAAtC,EAAA,MAAA,QAAAgD,GAAAwoB,WAAA,SAAAzkB,MAAA,EAAAC,OAAA,EAAAimB,OAAA,EAAAF,OAAA,EAAA4sF,WAAA,QAAA35G,GAAAD,EAAAuD,OAAAN,GAAAuoB,SAAA,WAAAkB,KAAA,UAAAnV,IAAA,WAAA,KAAA,GAAAtP,KAAAhF,GAAAvC,EAAA8E,MAAAyC,GAAAhF,EAAAgF,EAAAvH,GAAAkC,YAAApC,GAAAI,EAAAX,GAAAoH,SAAA6L,gBAAAtS,EAAAsW,aAAAxW,EAAAE,EAAAwU,YAAA5U,EAAAgF,MAAA0P,QAAA,wFAAAhS,EAAAlD,EAAAQ,GAAA8zB,OAAA,SAAAt0B,EAAAC,GAAA,MAAAA,KAAAq0B,SAAA5zB,EAAAqD,UAAA,GAAAnD,EAAA4G,YAAA9G,GAAAmH,EAAA3E,EAAAqU,IAAArU,EAAAwpB,MAAAzsB,EAAA,IAAA,GAAAmB,EAAA63G,UAAApxG,EAAA,IAAA,GAAAA,MAAAwG,QAIA,SAAArO,EAAAC,GAAAD,EAAA+2G,OAAA,eAAA/2G,EAAA8zG,GAAA+F,OAAA1C,kBAAA,OAAA78F,SAAAw/F,YAAA,EAAAnzG,SAAA,SAAAozG,MAAA,EAAAC,mBAAA;AAAAC,AxDwlBA,awDxlBA,EAAAzzC,OAAA,OAAA0zC,UAAA,EAAAC,MAAA,EAAA/2G,QAAA,EAAAizD,OAAA,WAAA+jD,WAAA,EAAAtsG,SAAA,EAAAusG,kBAAA,EAAAC,QAAA,EAAAC,eAAA,IAAAj7C,MAAA,UAAAk7C,QAAA,EAAAC,kBAAA,GAAAC,YAAA,GAAAC,MAAA,EAAAC,SAAA,OAAAC,cAAA,GAAAhuD,OAAA,EAAA1gC,QAAA,GAAAgsC,QAAA,WAAA,YAAA3sD,KAAA8O,QAAA+7C,SAAA,aAAAn1D,KAAAsK,KAAA0yF,QAAA74F,IAAA,eAAAmG,KAAA0yF,QAAA,GAAA14F,MAAAgmB,SAAA,YAAAhgB,KAAA8O,QAAAw/F,YAAAtuG,KAAA0yF,QAAAvkF,SAAA,gBAAAnO,KAAA8O,QAAAhG,UAAA9I,KAAA0yF,QAAAvkF,SAAA,yBAAAnO,KAAAqsG,cAAA39D,QAAA,WAAA,MAAA1uC,MAAA0yF,QAAA78F,KAAA,cAAAmK,KAAA0yF,QAAA1wF,WAAA,aAAAiU,OAAA,cAAA7H,YAAA;AAAApO,AxDylBA,KwDzlBAusG,gBAAAvsG,MAAA,QAAA6sG,cAAA,SAAAp4G,GAAA,GAAAO,GAAAgL,KAAA8O,OAAA,OAAA9O,MAAA6qD,QAAA71D,EAAA8T,UAAAtU,EAAAC,EAAA6d,QAAAS,GAAA,yBAAA,GAAA/S,KAAApI,OAAAoI,KAAAsvG,WAAA76G,GAAAuL,KAAApI,QAAA5C,EAAA45G,WAAAp6G,EAAAQ,EAAA45G,aAAA,EAAA,SAAA55G,EAAA45G,WAAA/5G,KAAA,WAAAL,EAAA,wEAAAqF,KAAA2B,MAAAwE,KAAAnF,YAAA,KAAAY,OAAAuE,KAAAlF,aAAA,KAAAklB,SAAA,WAAA1d,QAAA,QAAAqe,OAAA,MAAA9mB,IAAArF,EAAAwL,MAAA8oB,UAAA3tB,SAAA,WAAA,IAAA,IAAA+xG,YAAA,SAAAz4G,GAAA,GAAAO,GAAAgL,KAAA8O,OAAA,OAAA9O,MAAA6qD,OAAA7qD,KAAAuvG,cAAA96G,GAAAuL,KAAA6qD,OAAA18C,SAAA,yBAAAnO,KAAAwvG,0BAAAh7G,EAAA8zG,GAAAmH,YAAAj7G,EAAA8zG,GAAAmH,UAAAzmD,QAAAhpD;AAAAA,AxD0lBA,KwD1lBA0vG,gBAAA1vG,KAAA2vG,YAAA3vG,KAAA6qD,OAAAhxD,IAAA,YAAAmG,KAAAyqG,aAAAzqG,KAAA6qD,OAAA4/C,eAAAzqG,KAAA8oB,OAAA9oB,KAAA4vG,YAAA5vG,KAAA0yF,QAAA5pE,SAAA9oB,KAAA8oB,QAAA/c,IAAA/L,KAAA8oB,OAAA/c,IAAA/L,KAAA6vG,QAAA9jG,IAAAmV,KAAAlhB,KAAA8oB,OAAA5H,KAAAlhB,KAAA6vG,QAAA3uF,MAAA1sB,EAAAuD,OAAAiI,KAAA8oB,QAAAvS,OAAA2K,KAAAzsB,EAAAof,MAAA7T,KAAA8oB,OAAA5H,KAAAnV,IAAAtX,EAAAwf,MAAAjU,KAAA8oB,OAAA/c,KAAAmN,OAAAlZ,KAAA8vG,mBAAAx4F,SAAAtX,KAAA+vG,uBAAA/vG,KAAAgwG,iBAAAhwG,KAAAggB,SAAAhgB,KAAAiwG,kBAAAx7G,GAAAuL,KAAAkwG,cAAAz7G,EAAAof,MAAA7T,KAAAmwG,cAAA17G,EAAAwf,MAAAjf,EAAA05G,UAAA1uG,KAAAowG,wBAAAp7G,EAAA05G,UAAA15G,EAAAy5G,aAAAzuG,KAAAqwG,kBAAArwG,KAAAsvD,SAAA,QAAA76D,MAAA,GAAAuL,KAAAswG,UAAA,IAAAtwG,KAAAwvG;AAAAh7G,AxD2lBA,EwD3lBA8zG,GAAAmH,YAAAz6G,EAAAu7G,eAAA/7G,EAAA8zG,GAAAmH,UAAAe,eAAAxwG,KAAAvL,GAAAuL,KAAAqtG,WAAA54G,GAAA,GAAAD,EAAA8zG,GAAAmH,WAAAj7G,EAAA8zG,GAAAmH,UAAAgB,UAAAzwG,KAAAvL,IAAA,IAAA44G,WAAA,SAAA54G,EAAAO,GAAA,GAAAgL,KAAAggB,SAAAhgB,KAAAiwG,kBAAAx7G,GAAAuL,KAAA4vG,YAAA5vG,KAAA0wG,mBAAA,aAAA17G,EAAA,CAAA,GAAAE,GAAA8K,KAAA2wG,SAAA,IAAA3wG,KAAAsvD,SAAA,OAAA76D,EAAAS,MAAA,EAAA,MAAA8K,MAAA2sG,cAAA,CAAA3sG,MAAAggB,SAAA9qB,EAAA8qB,SAAA,MAAAhgB,MAAA8O,QAAAy/F,MAAA,KAAAvuG,KAAA8O,QAAAy/F,OAAAvuG,KAAA6qD,OAAA,GAAA7wD,MAAAknB,KAAAlhB,KAAAggB,SAAAkB,KAAA,MAAAlhB,KAAA8O,QAAAy/F,MAAA,KAAAvuG,KAAA8O,QAAAy/F,OAAAvuG,KAAA6qD,OAAA,GAAA7wD,MAAA+R,IAAA/L,KAAAggB,SAAAjU,IAAA,MAAAvX,EAAA8zG,GAAAmH,WAAAj7G,EAAA8zG,GAAAmH,UAAAmB,KAAA5wG,KAAAvL,IAAA,GAAA64G,WAAA,SAAA74G,GAAA,GAAAO,IAAA,CAAAR,GAAA8zG,GAAAmH,YAAAzvG,KAAA8O,QAAAyhG,gBAAAv7G,EAAAR,EAAA8zG,GAAAmH,UAAAp4E,KAAAr3B,KAAAvL;AAAAuL,AxD4lBA,KwD5lBA6wG,UAAA77G,EAAAgL,KAAA6wG,QAAA7wG,KAAA6wG,SAAA,EAAA,KAAA,GAAA37G,GAAA8K,KAAA0yF,QAAA,GAAAt9F,GAAA,EAAAF,IAAAA,EAAAA,EAAAiB,aAAAjB,GAAA2G,WAAAzG,GAAA,EAAA,KAAAA,GAAA,aAAA4K,KAAA8O,QAAA+7C,OAAA,OAAA,CAAA,IAAA,WAAA7qD,KAAA8O,QAAAggG,SAAA95G,GAAA,SAAAgL,KAAA8O,QAAAggG,QAAA95G,GAAAgL,KAAA8O,QAAAggG,UAAA,GAAAt6G,EAAA8B,WAAA0J,KAAA8O,QAAAggG,SAAA9uG,KAAA8O,QAAAggG,OAAAt4G,KAAAwJ,KAAA0yF,QAAA19F,GAAA,CAAA,GAAAY,GAAAoK,IAAAxL,GAAAwL,KAAA6qD,QAAAtjC,QAAAvnB,KAAAgwG,iBAAA//F,SAAAjQ,KAAA8O,QAAAigG,eAAA,IAAA,WAAAn5G,EAAA05D,SAAA,OAAA76D,MAAA,GAAAmB,EAAA06G,eAAAtwG,MAAAsvD,SAAA,OAAA76D,MAAA,GAAAuL,KAAAswG,QAAA,QAAA,GAAA3D,SAAA,SAAAl4G,GAAA,MAAAuL,MAAA8O,QAAA8/F,aAAA,GAAAp6G,EAAA,8BAAAK,KAAA,WAAAmL,KAAA7J,WAAA6F,YAAAgE;AxD6lBA,GwD7lBAxL,EAAA8zG,GAAAmH,WAAAj7G,EAAA8zG,GAAAmH,UAAAqB,SAAA9wG,KAAAvL,GAAAD,EAAA8zG,GAAA+F,MAAAlsG,UAAAwqG,SAAAn2G,KAAAwJ,KAAAvL,IAAA03G,OAAA,WAAA,MAAAnsG,MAAA6qD,OAAA93C,GAAA,0BAAA/S,KAAA2sG,aAAA3sG,KAAAswG,SAAAtwG,MAAAsvG,WAAA,SAAA76G,GAAA,GAAAO,GAAAgL,KAAA8O,QAAAlX,QAAApD,EAAAwL,KAAA8O,QAAAlX,OAAAoI,KAAA0yF,SAAA17F,QAAA,GAAA,CAAA,OAAAxC,GAAAwL,KAAA8O,QAAAlX,OAAAoI,KAAA0yF,SAAAztF,KAAA,KAAAyW,UAAA7mB,KAAA,WAAAmL,MAAAvL,EAAA6d,SAAAtd,GAAA,KAAAA,GAAAu6G,cAAA,SAAA96G,GAAA,GAAAO,GAAAgL,KAAA8O,QAAA5Z,EAAAV,EAAA8B,WAAAtB,EAAA61D,QAAAr2D,EAAAQ,EAAA61D,OAAAhlD,MAAA7F,KAAA0yF,QAAA,IAAAj+F,KAAA,SAAAO,EAAA61D,OAAA7qD,KAAA0yF,QAAA3rF,QAAAgH,WAAA,MAAA/N,KAAA0yF,OAAA,OAAAx9F,GAAAymB,QAAA,QAAA3kB,QAAA9B,EAAAiG,SAAA,UAAAnG,EAAAmG,SAAA6E,KAAA0yF,QAAA,GAAAv8F,WAAAnB,EAAAmG;AAAAjG,AxD8lBA,EwD9lBA,IAAA8K,KAAA0yF,QAAA,KAAA,mBAAAh9F,KAAAR,EAAA2E,IAAA,cAAA3E,EAAA2E,IAAA,WAAA,YAAA3E,GAAAk7G,wBAAA,SAAA37G,GAAA,gBAAAA,KAAAA,EAAAA,EAAAK,MAAA,MAAAN,EAAA0H,QAAAzH,KAAAA,GAAAysB,MAAAzsB,EAAA,GAAAsX,KAAAtX,EAAA,IAAA,IAAA,QAAAA,KAAAuL,KAAA8oB,OAAAvS,MAAA2K,KAAAzsB,EAAAysB,KAAAlhB,KAAA6vG,QAAA3uF,MAAA,SAAAzsB,KAAAuL,KAAA8oB,OAAAvS,MAAA2K,KAAAlhB,KAAA+wG,kBAAAv1G,MAAA/G,EAAA+zC,MAAAxoC,KAAA6vG,QAAA3uF,MAAA,OAAAzsB,KAAAuL,KAAA8oB,OAAAvS,MAAAxK,IAAAtX,EAAAsX,IAAA/L,KAAA6vG,QAAA9jG,KAAA,UAAAtX,KAAAuL,KAAA8oB,OAAAvS,MAAAxK,IAAA/L,KAAA+wG,kBAAAt1G,OAAAhH,EAAAu8G,OAAAhxG,KAAA6vG,QAAA9jG,MAAA+jG,iBAAA,WAAA9vG,KAAAspB,aAAAtpB,KAAA6qD,OAAAvhC,cAAA,IAAA70B,GAAAuL,KAAAspB,aAAAR,QAAA,OAAA,YAAA9oB,KAAA2vG,aAAA3vG,KAAAyqG,aAAA,IAAA5uG,UAAArH,EAAA8zG,GAAAxuG,SAAAkG,KAAAyqG,aAAA,GAAAzqG,KAAAspB,aAAA,MAAA70B,EAAAysB,MAAAlhB,KAAAyqG,aAAA12F;AAAAtf,AxD+lBA,EwD/lBAsX,KAAA/L,KAAAyqG,aAAAt2F,cAAAnU,KAAAspB,aAAA,IAAAztB,SAAAT,MAAA4E,KAAAspB,aAAA,GAAA2nF,SAAA,QAAAjxG,KAAAspB,aAAA,GAAA2nF,QAAA17G,eAAAf,EAAA2qB,QAAAurF,QAAAj2G,GAAAsX,IAAA,EAAAmV,KAAA,KAAAnV,IAAAtX,EAAAsX,KAAAkE,SAAAjQ,KAAAspB,aAAAzvB,IAAA,kBAAA,KAAA,GAAAqnB,KAAAzsB,EAAAysB,MAAAjR,SAAAjQ,KAAAspB,aAAAzvB,IAAA,mBAAA,KAAA,KAAAk2G,mBAAA,WAAA,GAAA,YAAA/vG,KAAA2vG,YAAA,CAAA,GAAAn7G,GAAAwL,KAAA0yF,QAAA1yE,UAAA,QAAAjU,IAAAvX,EAAAuX,KAAAkE,SAAAjQ,KAAA6qD,OAAAhxD,IAAA,OAAA,KAAA,GAAAmG,KAAAyqG,aAAAt2F,YAAA+M,KAAA1sB,EAAA0sB,MAAAjR,SAAAjQ,KAAA6qD,OAAAhxD,IAAA,QAAA,KAAA,GAAAmG,KAAAyqG,aAAA12F,cAAA,OAAAhI,IAAA,EAAAmV,KAAA,IAAAwuF,cAAA,WAAA1vG,KAAA6vG,SAAA3uF,KAAAjR,SAAAjQ,KAAA0yF,QAAA74F,IAAA,cAAA,KAAA;AAAAkS,AxDgmBA,IwDhmBAkE,SAAAjQ,KAAA0yF,QAAA74F,IAAA,aAAA,KAAA,EAAA2uC,MAAAv4B,SAAAjQ,KAAA0yF,QAAA74F,IAAA,eAAA,KAAA,EAAAm3G,OAAA/gG,SAAAjQ,KAAA0yF,QAAA74F,IAAA,gBAAA,KAAA,IAAA21G,wBAAA,WAAAxvG,KAAA+wG,mBAAAv1G,MAAAwE,KAAA6qD,OAAA24C,aAAA/nG,OAAAuE,KAAA6qD,OAAA9Y,gBAAAs+D,gBAAA,WAAA,GAAA57G,GAAAuL,KAAA8O,OAAA,IAAA,UAAAra,EAAAg6G,cAAAh6G,EAAAg6G,YAAAzuG,KAAA6qD,OAAA,GAAA10D,aAAA,YAAA1B,EAAAg6G,aAAA,UAAAh6G,EAAAg6G,eAAAzuG,KAAAyuG,aAAA,YAAAh6G,EAAAg6G,YAAA,EAAAj6G,EAAAgS,QAAAuN,aAAA/T,KAAA8oB,OAAAxR,SAAA4J,KAAAlhB,KAAA8oB,OAAA5P,OAAAgI,KAAA,YAAAzsB,EAAAg6G,YAAA,EAAAj6G,EAAAgS,QAAA2N,YAAAnU,KAAA8oB,OAAAxR,SAAAvL,IAAA/L,KAAA8oB,OAAA5P,OAAAnN,KAAA,YAAAtX,EAAAg6G,YAAA,EAAAj6G,EAAAgS,QAAAuN,cAAAvf,EAAA,YAAAC,EAAAg6G,YAAA5yG,SAAA2K,QAAAhL,QAAAwE,KAAA+wG,kBAAAv1G,MAAAwE,KAAA6vG,QAAA3uF,MAAA,YAAAzsB,EAAAg6G,YAAA,EAAAj6G,EAAAgS,QAAA2N,cAAA3f,EAAA,YAAAC,EAAAg6G,YAAA5yG,SAAA2K,QAAA/K,UAAAI,SAAAT,KAAAjF,WAAA+6G,cAAAlxG,KAAA+wG,kBAAAt1G,OAAAuE,KAAA6vG,QAAA9jG;AAAA,AxDimBA,6BwDjmBArW,KAAAjB,EAAAg6G,cAAAh6G,EAAAg6G,YAAAhqG,aAAA1B,MAAAtO,EAAAg6G,YAAAhqG,aAAA1B,QAAA/C,KAAAyuG,YAAAh6G,EAAAg6G,iBAAA,CAAA,GAAAz5G,GAAAR,EAAAC,EAAAg6G,aAAAv5G,EAAAF,EAAA,EAAA,KAAAE,EAAA,MAAA,IAAAU,IAAAZ,EAAA8zB,SAAA,UAAAt0B,EAAAU,GAAA2E,IAAA,YAAAmG,MAAAyuG,cAAAx+F,SAAAzb,EAAAU,GAAA2E,IAAA,mBAAA,KAAA,IAAAoW,SAAAzb,EAAAU,GAAA2E,IAAA,eAAA,KAAA,IAAAoW,SAAAzb,EAAAU,GAAA2E,IAAA,kBAAA,KAAA,IAAAoW,SAAAzb,EAAAU,GAAA2E,IAAA,cAAA,KAAA,IAAAjE,EAAA2E,KAAAC,IAAAtF,EAAAi8G,YAAAj8G,EAAA2F,aAAA3F,EAAA2F,cAAAoV,SAAAzb,EAAAU,GAAA2E,IAAA,mBAAA,KAAA,IAAAoW,SAAAzb,EAAAU,GAAA2E,IAAA,gBAAA,KAAA,GAAAmG,KAAA+wG,kBAAAv1G,MAAAwE,KAAA6vG,QAAA3uF,KAAAlhB,KAAA6vG,QAAArnE,OAAA5yC,EAAA2E,KAAAC,IAAAtF,EAAAg8G,aAAAh8G,EAAA4F,cAAA5F,EAAA4F,eAAAmV,SAAAzb,EAAAU,GAAA2E,IAAA,kBAAA,KAAA,IAAAoW,SAAAzb,EAAAU,GAAA2E,IAAA,iBAAA,KAAA,GAAAmG,KAAA+wG,kBAAAt1G,OAAAuE,KAAA6vG,QAAA9jG,IAAA/L,KAAA6vG,QAAAmB;AAAAhxG,AxDkmBA,KwDlmBAoxG,mBAAAp8G,IAAA07G,mBAAA,SAAAj8G,EAAAO,GAAAA,IAAAA,EAAAgL,KAAAggB,SAAA,IAAA9qB,GAAA,YAAAT,EAAA,EAAA,GAAAmB,GAAAoK,KAAA8O,QAAA,YAAA9O,KAAA2vG,aAAA3vG,KAAAyqG,aAAA,IAAA5uG,UAAArH,EAAA8zG,GAAAxuG,SAAAkG,KAAAyqG,aAAA,GAAAzqG,KAAAspB,aAAA,IAAAtpB,KAAAyqG,aAAAzqG,KAAAspB,cAAA7xB,EAAA,eAAA/B,KAAAE,EAAA,GAAAq7G,QAAA,QAAAllG,IAAA/W,EAAA+W,IAAA/L,KAAA8oB,OAAAxR,SAAAvL,IAAA7W,EAAA8K,KAAA8oB,OAAA5P,OAAAnN,IAAA7W,GAAAV,EAAA2qB,QAAAI,QAAA/qB,EAAA2qB,QAAAC,QAAA,KAAA,SAAApf,KAAA2vG,YAAA,GAAA,SAAA3vG,KAAA2vG,aAAA3vG,KAAAyqG,aAAAt2F,YAAA1c,EAAA,EAAA7B,EAAAue,aAAAjf,GAAAgsB,KAAAlsB,EAAAksB,KAAAlhB,KAAA8oB,OAAAxR,SAAA4J,KAAAhsB,EAAA8K,KAAA8oB,OAAA5P,OAAAgI,KAAAhsB,GAAAV,EAAA2qB,QAAAI,QAAA/qB,EAAA2qB,QAAAC,QAAA,KAAA,SAAApf,KAAA2vG,YAAA,GAAA,SAAA3vG,KAAA2vG,aAAA3vG,KAAAyqG,aAAA12F,aAAAtc,EAAA,EAAA7B,EAAAme,cAAA7e;AxDmmBA,GwDnmBA+6G,kBAAA,SAAAx7G,GAAA,GAAAO,GAAAgL,KAAA8O,QAAA5Z,EAAA,YAAA8K,KAAA2vG,aAAA3vG,KAAAyqG,aAAA,IAAA5uG,UAAArH,EAAA8zG,GAAAxuG,SAAAkG,KAAAyqG,aAAA,GAAAzqG,KAAAspB,aAAA,IAAAtpB,KAAAyqG,aAAAzqG,KAAAspB,aAAAl0B,EAAA,eAAAM,KAAAR,EAAA,GAAA+7G,SAAAr7G,EAAAnB,EAAAof,MAAApc,EAAAhD,EAAAwf,KAAA,IAAAjU,KAAAgwG,iBAAA,CAAA,GAAAt4G,EAAA,IAAAsI,KAAAyuG,YAAA,CAAA,GAAAzuG,KAAAoxG,mBAAA,CAAA,GAAA/0G,GAAA2D,KAAAoxG,mBAAAtoF,QAAApxB,IAAAsI,KAAAyuG,YAAA,GAAApyG,EAAA6kB,KAAAlhB,KAAAyuG,YAAA,GAAApyG,EAAA0P,IAAA/L,KAAAyuG,YAAA,GAAApyG,EAAA6kB,KAAAlhB,KAAAyuG,YAAA,GAAApyG,EAAA0P,SAAArU,GAAAsI,KAAAyuG,WAAAh6G,GAAAof,MAAA7T,KAAA8oB,OAAAvS,MAAA2K,KAAAxpB,EAAA,KAAA9B,EAAA8B,EAAA,GAAAsI,KAAA8oB,OAAAvS,MAAA2K,MAAAzsB,EAAAwf,MAAAjU,KAAA8oB,OAAAvS,MAAAxK,IAAArU,EAAA,KAAAD,EAAAC,EAAA,GAAAsI,KAAA8oB,OAAAvS,MAAAxK,KAAAtX,EAAAof,MAAA7T,KAAA8oB,OAAAvS,MAAA2K,KAAAxpB,EAAA,KAAA9B,EAAA8B,EAAA,GAAAsI,KAAA8oB,OAAAvS,MAAA2K;AAAAzsB,AxDomBA,EwDpmBAwf,MAAAjU,KAAA8oB,OAAAvS,MAAAxK,IAAArU,EAAA,KAAAD,EAAAC,EAAA,GAAAsI,KAAA8oB,OAAAvS,MAAAxK,KAAA,GAAA/W,EAAA25G,KAAA,CAAA,GAAAlyG,GAAAzH,EAAA25G,KAAA,GAAA3uG,KAAAmwG,cAAA51G,KAAA6vE,OAAA3yE,EAAAuI,KAAAmwG,eAAAn7G,EAAA25G,KAAA,IAAA35G,EAAA25G,KAAA,GAAA3uG,KAAAmwG,aAAA14G,GAAAC,IAAA+E,EAAAuD,KAAA8oB,OAAAvS,MAAAxK,IAAArU,EAAA,IAAA+E,EAAAuD,KAAA8oB,OAAAvS,MAAAxK,IAAArU,EAAA,IAAA+E,EAAAuD,KAAA8oB,OAAAvS,MAAAxK,IAAArU,EAAA,GAAA+E,EAAAzH,EAAA25G,KAAA,GAAAlyG,EAAAzH,EAAA25G,KAAA,GAAAlyG,CAAA,IAAAC,GAAA1H,EAAA25G,KAAA,GAAA3uG,KAAAkwG,cAAA31G,KAAA6vE,OAAAx0E,EAAAoK,KAAAkwG,eAAAl7G,EAAA25G,KAAA,IAAA35G,EAAA25G,KAAA,GAAA3uG,KAAAkwG,aAAAt6G,GAAA8B,IAAAgF,EAAAsD,KAAA8oB,OAAAvS,MAAA2K,KAAAxpB,EAAA,IAAAgF,EAAAsD,KAAA8oB,OAAAvS,MAAA2K,KAAAxpB,EAAA,IAAAgF,EAAAsD,KAAA8oB,OAAAvS,MAAA2K,KAAAxpB,EAAA,GAAAgF,EAAA1H,EAAA25G,KAAA,GAAAjyG,EAAA1H,EAAA25G,KAAA,GAAAjyG,GAAA,OAAAqP,IAAAtU,EAAAuI,KAAA8oB,OAAAvS,MAAAxK,IAAA/L,KAAA8oB,OAAAxR,SAAAvL,IAAA/L,KAAA8oB,OAAA5P,OAAAnN,KAAAvX,EAAA2qB,QAAAI,QAAA/qB,EAAA2qB,QAAAC,QAAA,KAAA,SAAApf,KAAA2vG,YAAA,EAAA,SAAA3vG,KAAA2vG,aAAA3vG,KAAAyqG,aAAAt2F,YAAA/e,EAAA,EAAAF,EAAAif;AAAA+M,AxDqmBA,KwDrmBAtrB,EAAAoK,KAAA8oB,OAAAvS,MAAA2K,KAAAlhB,KAAA8oB,OAAAxR,SAAA4J,KAAAlhB,KAAA8oB,OAAA5P,OAAAgI,MAAA1sB,EAAA2qB,QAAAI,QAAA/qB,EAAA2qB,QAAAC,QAAA,KAAA,SAAApf,KAAA2vG,YAAA,EAAA,SAAA3vG,KAAA2vG,aAAA3vG,KAAAyqG,aAAA12F,aAAA3e,EAAA,EAAAF,EAAA6e,gBAAAu8F,OAAA,WAAAtwG,KAAA6qD,OAAAz8C,YAAA,yBAAApO,KAAA6qD,OAAA,IAAA7qD,KAAA0yF,QAAA,KAAA1yF,KAAAqxG,qBAAArxG,KAAA6qD,OAAAxvD,SAAA2E,KAAA6qD,OAAA,KAAA7qD,KAAAqxG,qBAAA,GAAA/hD,SAAA,SAAA76D,EAAAO,EAAAE,GAAA,MAAAA,GAAAA,GAAA8K,KAAA2wG,UAAAn8G,EAAA8zG,GAAA/2C,OAAA/6D,KAAAwJ,KAAAvL,GAAAO,EAAAE,IAAA,QAAAT,IAAAuL,KAAA4vG,YAAA5vG,KAAA0wG,mBAAA,aAAAl8G,EAAAg3G,OAAArpG,UAAAmtD,SAAA94D,KAAAwJ,KAAAvL,EAAAO,EAAAE,IAAA48D,WAAA6+C,QAAA,SAAAn8G,GAAA,OAAAq2D,OAAA7qD,KAAA6qD;AAAA7qC,AxDsmBA,SwDtmBAhgB,KAAAggB,SAAAgwF,iBAAAhwG,KAAAgwG,iBAAAlnF,OAAA9oB,KAAA4vG,gBAAAp7G,EAAAuD,OAAAvD,EAAA8zG,GAAAgJ,WAAAlyF,QAAA,WAAA5qB,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,qBAAAoI,MAAA,SAAAzL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAAlZ,EAAApB,EAAAuD,UAAA/C,GAAAs1C,KAAAp1C,EAAAw9F,SAAAx9F,GAAAq8G,aAAA/8G,EAAAY,EAAAo5G,mBAAA35G,KAAA,WAAA,GAAAG,GAAAR,EAAAqB,KAAAmK,KAAA,WAAAhL,KAAAA,EAAA8Z,QAAAhG,WAAA5T,EAAAq8G,UAAA1xG,MAAAi1C,SAAA9/C,EAAAw8G,aAAAx8G,EAAA8Z,QAAAggG,SAAA95G,EAAA65G,mBAAA75G,EAAAs6D,SAAA,WAAA76D,EAAAmB,OAAAkK,KAAA,SAAArL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAZ,EAAAuD,UAAA/C,GAAAs1C,KAAAp1C,EAAAw9F,SAAAl+F,GAAAK,KAAAK,EAAAq8G,UAAA,WAAAvxG,KAAA80C,SAAAw2D,QAAAtrG,KAAA80C,SAAAw2D,OAAA,EAAAp2G,EAAAm8G,qBAAA;AAAArxG,AxDumBA,KwDvmBA80C,SAAAu8D,qBAAA,EAAArxG,KAAAwxG,eAAAxxG,KAAA80C,SAAAhmC,QAAAggG,QAAA,GAAA9uG,KAAA80C,SAAAw4D,WAAA74G,GAAAuL,KAAA80C,SAAAhmC,QAAA+7C,OAAA7qD,KAAA80C,SAAAhmC,QAAA2iG,QAAA,YAAAv8G,EAAA4Z,QAAA+7C,QAAA7qD,KAAA80C,SAAA48D,YAAA73G,KAAAkS,IAAA,OAAAmV,KAAA,WAAAlhB,KAAA80C,SAAAu8D,qBAAA,EAAArxG,KAAA80C,SAAAwa,SAAA,aAAA76D,EAAAW,OAAAw7G,KAAA,SAAAn8G,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAA4K,IAAAxL,GAAAK,KAAAK,EAAAq8G,UAAA,SAAA37G,GAAAoK,KAAA80C,SAAA86D,YAAA16G,EAAA06G,YAAA5vG,KAAA80C,SAAAi8D,kBAAA77G,EAAA67G,kBAAA/wG,KAAA80C,SAAAhsB,OAAAvS,MAAArhB,EAAA4zB,OAAAvS,MAAAvW,KAAA80C,SAAA68D,gBAAA3xG,KAAA80C,SAAA88D,iBAAA5xG,KAAA80C,SAAAw2D,SAAAtrG,KAAA80C,SAAAw2D,OAAA;AAAAtrG,AxDwmBA,KwDxmBA80C,SAAA48D,YAAAl9G,EAAAY,GAAA2R,QAAAgH,WAAA,MAAA5S,SAAA6E,KAAA80C,SAAA49C,SAAA78F,KAAA,iBAAA,GAAAmK,KAAA80C,SAAAhmC,QAAA2iG,QAAAzxG,KAAA80C,SAAAhmC,QAAA+7C,OAAA7qD,KAAA80C,SAAAhmC,QAAA+7C,OAAA,WAAA,MAAA71D,GAAA61D,OAAA,IAAAp2D,EAAA6d,OAAAtS,KAAA80C,SAAA48D,YAAA,GAAA1xG,KAAA80C,SAAA+3D,cAAAp4G,GAAA,GAAAuL,KAAA80C,SAAAo4D,YAAAz4G,GAAA,GAAA,GAAAuL,KAAA80C,SAAAhsB,OAAAvS,MAAAxK,IAAA7W,EAAA4zB,OAAAvS,MAAAxK,IAAA/L,KAAA80C,SAAAhsB,OAAAvS,MAAA2K,KAAAhsB,EAAA4zB,OAAAvS,MAAA2K,KAAAlhB,KAAA80C,SAAAhsB,OAAA5P,OAAAgI,MAAAhsB,EAAA4zB,OAAA5P,OAAAgI,KAAAlhB,KAAA80C,SAAAhsB,OAAA5P,OAAAgI,KAAAlhB,KAAA80C,SAAAhsB,OAAA5P,OAAAnN,KAAA7W,EAAA4zB,OAAA5P,OAAAnN,IAAA/L,KAAA80C,SAAAhsB,OAAA5P,OAAAnN,IAAA7W,EAAAo6D,SAAA,aAAA76D,GAAAS,EAAA27G,QAAA7wG,KAAA80C,SAAA49C;AAAAx9F,AxDymBA,EwDzmBAw8G,YAAAx8G,EAAAw9F,QAAA1yF,KAAA80C,SAAA+8D,YAAA38G,GAAA8K,KAAA80C,SAAA48D,aAAA1xG,KAAA80C,SAAAu4D,WAAA54G,IAAAuL,KAAA80C,SAAAw2D,SAAAtrG,KAAA80C,SAAAw2D,OAAA,EAAAtrG,KAAA80C,SAAAu8D,qBAAA,EAAArxG,KAAA80C,SAAAhmC,QAAAggG,QAAA,EAAA9uG,KAAA80C,SAAAwa,SAAA,MAAA76D,EAAAuL,KAAA80C,SAAA67D,QAAA3wG,KAAA80C,WAAA90C,KAAA80C,SAAAw4D,WAAA74G,GAAA,GAAAuL,KAAA80C,SAAAhmC,QAAA+7C,OAAA7qD,KAAA80C,SAAAhmC,QAAA2iG,QAAAzxG,KAAA80C,SAAA48D,YAAAr2G,SAAA2E,KAAA80C,SAAA4+C,aAAA1zF,KAAA80C,SAAA4+C,YAAAr4F,SAAAnG,EAAAo6D,SAAA,eAAA76D,GAAAS,EAAA27G,SAAA,QAAAr8G,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,UAAAoI,MAAA,SAAAzL,EAAAO,GAAA,GAAAE,GAAAV,EAAA,QAAAY,EAAAZ,EAAAwL,MAAAnK,KAAA,aAAAiZ,OAAA5Z,GAAA2E,IAAA,YAAAzE,EAAA08G,QAAA58G,EAAA2E,IAAA;AAAA3E,AxD0mBA,EwD1mBA2E,IAAA,SAAAzE,EAAA4lE,SAAAl7D,KAAA,SAAArL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAiZ,OAAA5Z,GAAA48G,SAAAt9G,EAAA,QAAAqF,IAAA,SAAA3E,EAAA48G,YAAAt9G,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,WAAAoI,MAAA,SAAAzL,EAAAO,GAAA,GAAAE,GAAAV,EAAAQ,EAAA61D,QAAAz1D,EAAAZ,EAAAwL,MAAAnK,KAAA,aAAAiZ,OAAA5Z,GAAA2E,IAAA,aAAAzE,EAAA28G,SAAA78G,EAAA2E,IAAA,YAAA3E,EAAA2E,IAAA,UAAAzE,EAAAkN,UAAAxC,KAAA,SAAArL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAiZ,OAAA5Z,GAAA68G,UAAAv9G,EAAAQ,EAAA61D,QAAAhxD,IAAA,UAAA3E,EAAA68G,aAAAv9G,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,UAAAoI,MAAA,SAAAzL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,YAAAX,GAAAu1G,aAAA,IAAA5uG,UAAA,QAAA3G,EAAAu1G,aAAA,GAAAwG,UAAA/7G,EAAA88G,eAAA98G,EAAAu1G,aAAA3hF,WAAA8nF,KAAA,SAAAn8G,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAAlZ,GAAA;AAAAV,AxD2mBA,EwD3mBAu1G,aAAA,IAAA5uG,UAAA,QAAA3G,EAAAu1G,aAAA,GAAAwG,SAAA77G,EAAAm5G,MAAA,KAAAn5G,EAAAm5G,OAAAr5G,EAAA88G,eAAAjmG,IAAA7W,EAAAu1G,aAAA,GAAA3vG,aAAArG,EAAAwf,MAAA7e,EAAA65G,kBAAA/5G,EAAAu1G,aAAA,GAAAt2F,UAAAve,EAAAV,EAAAu1G,aAAA,GAAAt2F,UAAA/e,EAAA85G,YAAAz6G,EAAAwf,MAAA/e,EAAA88G,eAAAjmG,IAAA3W,EAAA65G,oBAAA/5G,EAAAu1G,aAAA,GAAAt2F,UAAAve,EAAAV,EAAAu1G,aAAA,GAAAt2F,UAAA/e,EAAA85G,cAAA95G,EAAAm5G,MAAA,KAAAn5G,EAAAm5G,OAAAr5G,EAAA88G,eAAA9wF,KAAAhsB,EAAAu1G,aAAA,GAAA5vG,YAAApG,EAAAof,MAAAze,EAAA65G,kBAAA/5G,EAAAu1G,aAAA,GAAA12F,WAAAne,EAAAV,EAAAu1G,aAAA,GAAA12F,WAAA3e,EAAA85G,YAAAz6G,EAAAof,MAAA3e,EAAA88G,eAAA9wF,KAAA9rB,EAAA65G,oBAAA/5G,EAAAu1G,aAAA,GAAA12F,WAAAne,EAAAV,EAAAu1G,aAAA,GAAA12F,WAAA3e,EAAA85G,gBAAA95G,EAAAm5G,MAAA,KAAAn5G,EAAAm5G,OAAA95G,EAAAwf,MAAAzf,EAAAqH,UAAAsY,YAAA/e,EAAA65G,kBAAAr5G,EAAApB,EAAAqH,UAAAsY,UAAA3f,EAAAqH,UAAAsY,YAAA/e,EAAA85G,aAAA16G,EAAAgS,QAAA/K,UAAAhH,EAAAwf,MAAAzf,EAAAqH,UAAAsY,aAAA/e,EAAA65G,oBAAAr5G,EAAApB,EAAAqH,UAAAsY,UAAA3f,EAAAqH,UAAAsY,YAAA/e,EAAA85G;AAAA95G,AxD4mBA,EwD5mBAm5G,MAAA,KAAAn5G,EAAAm5G,OAAA95G,EAAAof,MAAArf,EAAAqH,UAAAkY,aAAA3e,EAAA65G,kBAAAr5G,EAAApB,EAAAqH,UAAAkY,WAAAvf,EAAAqH,UAAAkY,aAAA3e,EAAA85G,aAAA16G,EAAAgS,QAAAhL,SAAA/G,EAAAof,MAAArf,EAAAqH,UAAAkY,cAAA3e,EAAA65G,oBAAAr5G,EAAApB,EAAAqH,UAAAkY,WAAAvf,EAAAqH,UAAAkY,aAAA3e,EAAA85G,gBAAAt5G,KAAA,GAAApB,EAAA8zG,GAAAmH,YAAAr6G,EAAAm7G,eAAA/7G,EAAA8zG,GAAAmH,UAAAe,eAAAt7G,EAAAT,MAAAD,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,QAAAoI,MAAA,SAAAzL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,OAAA5Z,GAAA+8G,gBAAAz9G,EAAAY,EAAA+5G,KAAA1qG,aAAArB,OAAAhO,EAAA+5G,KAAA9iB,OAAA,mBAAAj3F,EAAA+5G,MAAAt6G,KAAA,WAAA,GAAAJ,GAAAD,EAAAwL,MAAAhL,EAAAP,EAAAq0B,QAAA9oB,OAAA9K,EAAAw9F,QAAA,IAAAx9F,EAAA+8G,aAAApyG,MAAAyqC,KAAAtqC,KAAAxE,MAAA/G,EAAA+uG,aAAA/nG,OAAAhH,EAAAs9C;AAAAhmC,AxD6mBA,IwD7mBA/W,EAAA+W,IAAAmV,KAAAlsB,EAAAksB,UAAA0vF,KAAA,SAAAn8G,EAAAO,GAAA,IAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAAlZ,EAAAR,EAAAi6G,cAAA53G,EAAAzC,EAAA8zB,OAAA5H,KAAAxpB,EAAAD,EAAAvC,EAAA67G,kBAAAv1G,MAAAa,EAAArH,EAAA8zB,OAAA/c,IAAAtP,EAAAJ,EAAAnH,EAAA67G,kBAAAt1G,OAAAiB,EAAAxH,EAAA+8G,aAAAj7G,OAAA,EAAA0F,GAAA,EAAAA,IAAA,CAAA,GAAAC,GAAAzH,EAAA+8G,aAAAv1G,GAAAwkB,KAAAngB,EAAApE,EAAAzH,EAAA+8G,aAAAv1G,GAAAlB,MAAAwF,EAAA9L,EAAA+8G,aAAAv1G,GAAAqP,IAAA9K,EAAAD,EAAA9L,EAAA+8G,aAAAv1G,GAAAjB,MAAA,IAAAhE,EAAAkF,EAAA/G,GAAAmL,EAAAnL,EAAA6B,GAAA4E,EAAA2E,EAAApL,GAAAqL,EAAArL,EAAAyG,GAAA5E,EAAAkF,EAAA/G,GAAAmL,EAAAnL,EAAA6B,GAAAgF,EAAAuE,EAAApL,GAAAqL,EAAArL,EAAA6G,GAAA/E,EAAAiF,EAAA/G,GAAAmL,EAAAnL,EAAA8B,GAAA2E,EAAA2E,EAAApL,GAAAqL,EAAArL,EAAAyG,GAAA3E,EAAAiF,EAAA/G,GAAAmL,EAAAnL,EAAA8B,GAAA+E,EAAAuE,EAAApL,GAAAqL,EAAArL,EAAA6G,EAAA,CAAA,GAAA,SAAArH,EAAAg6G,SAAA,CAAA,GAAAx6G,GAAA2F,KAAA6uC,IAAApoC,EAAAvE,IAAA7G,EAAAsL,EAAA3G,KAAA6uC,IAAAnoC,EAAA5E,IAAAzG,EAAA2N,EAAAhJ,KAAA6uC,IAAAzsC,EAAAjF,IAAA9B,EAAAb,EAAAwF,KAAA6uC,IAAAroC,EAAAtJ,IAAA7B,CAAAhB,KAAAI,EAAAgrB,SAAAjU,IAAA7W,EAAAw7G,mBAAA,YAAA3kG,IAAA/K,EAAA9L,EAAA67G,kBAAAt1G,OAAAylB,KAAA,IAAAnV,IAAA7W,EAAA26G,QAAA9jG;AAAA7K,AxD8mBA,IwD9mBAlM,EAAAgrB,SAAAjU,IAAA7W,EAAAw7G,mBAAA,YAAA3kG,IAAA9K,EAAAigB,KAAA,IAAAnV,IAAA7W,EAAA26G,QAAA9jG,KAAAxI,IAAAvO,EAAAgrB,SAAAkB,KAAAhsB,EAAAw7G,mBAAA,YAAA3kG,IAAA,EAAAmV,KAAAvkB,EAAAzH,EAAA67G,kBAAAv1G,QAAA0lB,KAAAhsB,EAAA26G,QAAA3uF,MAAAnsB,IAAAC,EAAAgrB,SAAAkB,KAAAhsB,EAAAw7G,mBAAA,YAAA3kG,IAAA,EAAAmV,KAAAngB,IAAAmgB,KAAAhsB,EAAA26G,QAAA3uF,MAAA,GAAA1d,GAAA5O,GAAAsM,GAAAqC,GAAAxO,CAAA,IAAA,SAAAK,EAAAg6G,SAAA,CAAA,GAAAx6G,GAAA2F,KAAA6uC,IAAApoC,EAAA3E,IAAAzG,EAAAsL,EAAA3G,KAAA6uC,IAAAnoC,EAAAxE,IAAA7G,EAAA2N,EAAAhJ,KAAA6uC,IAAAzsC,EAAAlF,IAAA7B,EAAAb,EAAAwF,KAAA6uC,IAAAroC,EAAArJ,IAAA9B,CAAAhB,KAAAI,EAAAgrB,SAAAjU,IAAA7W,EAAAw7G,mBAAA,YAAA3kG,IAAA/K,EAAAkgB,KAAA,IAAAnV,IAAA7W,EAAA26G,QAAA9jG,KAAA7K,IAAAlM,EAAAgrB,SAAAjU,IAAA7W,EAAAw7G,mBAAA,YAAA3kG,IAAA9K,EAAA/L,EAAA67G,kBAAAt1G,OAAAylB,KAAA,IAAAnV,IAAA7W,EAAA26G,QAAA9jG,KAAAxI,IAAAvO,EAAAgrB,SAAAkB,KAAAhsB,EAAAw7G,mBAAA,YAAA3kG,IAAA;AAAAmV,AxD+mBA,KwD/mBAvkB,IAAAukB,KAAAhsB,EAAA26G,QAAA3uF,MAAAnsB,IAAAC,EAAAgrB,SAAAkB,KAAAhsB,EAAAw7G,mBAAA,YAAA3kG,IAAA,EAAAmV,KAAAngB,EAAA7L,EAAA67G,kBAAAv1G,QAAA0lB,KAAAhsB,EAAA26G,QAAA3uF,OAAAhsB,EAAA+8G,aAAAv1G,GAAAw1G,WAAAt9G,GAAAsM,GAAAqC,GAAAxO,GAAAyO,IAAAtO,EAAA4Z,QAAAqgG,KAAAA,MAAAj6G,EAAA4Z,QAAAqgG,KAAAA,KAAA34G,KAAAtB,EAAAw9F,QAAAj+F,EAAAD,EAAAuD,OAAA7C,EAAAy7G,WAAAwB,SAAAj9G,EAAA+8G,aAAAv1G,GAAA4tC,QAAAp1C,EAAA+8G,aAAAv1G,GAAAw1G,SAAAt9G,GAAAsM,GAAAqC,GAAAxO,GAAAyO,MAAAtO,GAAA+8G,aAAAv1G,GAAAw1G,UAAAh9G,EAAA4Z,QAAAqgG,KAAAiD,SAAAl9G,EAAA4Z,QAAAqgG,KAAAiD,QAAA57G,KAAAtB,EAAAw9F,QAAAj+F,EAAAD,EAAAuD,OAAA7C,EAAAy7G,WAAAwB,SAAAj9G,EAAA+8G,aAAAv1G,GAAA4tC,QAAAp1C,EAAA+8G,aAAAv1G,GAAAw1G,UAAA,MAAA19G,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,SAAAoI,MAAA,SAAAzL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAiZ,QAAA1Z,EAAAZ,EAAA4Q,UAAA5Q,EAAAU,EAAAmsD,QAAAp7C,KAAA,SAAAxR,EAAAO;AAAA,AxDgnBA,OwDhnBAib,SAAAzb,EAAAC,GAAAoF,IAAA,UAAA,KAAA,IAAAoW,SAAAzb,EAAAQ,GAAA6E,IAAA,UAAA,KAAA,IAAA,IAAAzE,EAAA4B,OAAA,CAAA,GAAApB,GAAAqa,SAAA7a,EAAA,GAAA4E,MAAA2mB,SAAA,CAAAnsB,GAAAY,GAAAP,KAAA,SAAAL,GAAAwL,KAAAhG,MAAA2mB,OAAA/qB,EAAApB,IAAAwL,KAAA,GAAAhG,MAAA2mB,OAAA/qB,EAAAR,EAAA4B,WAAAxC,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,UAAAoI,MAAA,SAAAzL,EAAAO,GAAA,GAAAE,GAAAV,EAAAQ,EAAA61D,QAAAz1D,EAAAZ,EAAAwL,MAAAnK,KAAA,aAAAiZ,OAAA5Z,GAAA2E,IAAA,YAAAzE,EAAAi9G,QAAAn9G,EAAA2E,IAAA,WAAA3E,EAAA2E,IAAA,SAAAzE,EAAAurB,SAAA7gB,KAAA,SAAArL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAiZ,OAAA5Z,GAAAm9G,SAAA79G,EAAAQ,EAAA61D,QAAAhxD,IAAA,SAAA3E,EAAAm9G,aAAAxvG,QAIA,SAAArO,EAAAC,GAAAD,EAAA+2G,OAAA,gBAAAI,kBAAA,OAAA78F,SAAA+2C,OAAA,IAAAysD,aAAA,EAAAhE,YAAA,EAAAiE,QAAA,EAAAC,YAAA,EAAA1+C,MAAA;AAAA2+C,AxD6mBA,UwD7mBA,aAAA9lD,QAAA,WAAA,GAAAl4D,GAAAuL,KAAA8O,QAAA9Z,EAAAP,EAAAoxD,MAAA7lD,MAAA0yG,OAAA,EAAA1yG,KAAA2yG,MAAA,EAAA3yG,KAAA6lD,OAAArxD,EAAA8B,WAAAtB,GAAAA,EAAA,SAAAR,GAAA,MAAAA,GAAAue,GAAA/d,IAAAgL,KAAA4yG,aAAAp3G,MAAAwE,KAAA0yF,QAAA,GAAA73F,YAAAY,OAAAuE,KAAA0yF,QAAA,GAAA53F,cAAAtG,EAAA8zG,GAAAmH,UAAAoD,WAAAp+G,EAAAq/D,OAAAt/D,EAAA8zG,GAAAmH,UAAAoD,WAAAp+G,EAAAq/D,WAAAt/D,EAAA8zG,GAAAmH,UAAAoD,WAAAp+G,EAAAq/D,OAAAj0D,KAAAG,MAAAvL,EAAA65G,YAAAtuG,KAAA0yF,QAAAvkF,SAAA,iBAAAugC,QAAA,WAAA,IAAA,GAAAj6C,GAAAD,EAAA8zG,GAAAmH,UAAAoD,WAAA7yG,KAAA8O,QAAAglD,OAAA9+D,EAAA,EAAAA,EAAAP,EAAAuC,OAAAhC,IAAAP,EAAAO,IAAAgL,MAAAvL,EAAAkJ,OAAA3I,EAAA,EAAA,OAAAgL,MAAA0yF,QAAAtkF,YAAA,sCAAApM,WAAA,aAAAiU,OAAA,cAAAjW,MAAAisG,WAAA,SAAAx3G,EAAAO;AAAA,AxD8mBA,UwD9mBAP,IAAAuL,KAAA6lD,OAAArxD,EAAA8B,WAAAtB,GAAAA,EAAA,SAAAR,GAAA,MAAAA,GAAAue,GAAA/d,KAAAR,EAAAg3G,OAAArpG,UAAA8pG,WAAApmG,MAAA7F,KAAA8F,YAAAgtG,UAAA,SAAAr+G,GAAA,GAAAO,GAAAR,EAAA8zG,GAAAmH,UAAAzmD,OAAAhpD,MAAA8O,QAAAwjG,aAAAtyG,KAAA0yF,QAAAvkF,SAAAnO,KAAA8O,QAAAwjG,aAAAt9G,GAAAgL,KAAAsvD,SAAA,WAAA76D,EAAAuL,KAAAsoG,GAAAtzG,KAAA+9G,YAAA,SAAAt+G,GAAA,GAAAO,GAAAR,EAAA8zG,GAAAmH,UAAAzmD,OAAAhpD,MAAA8O,QAAAwjG,aAAAtyG,KAAA0yF,QAAAtkF,YAAApO,KAAA8O,QAAAwjG,aAAAt9G,GAAAgL,KAAAsvD,SAAA,aAAA76D,EAAAuL,KAAAsoG,GAAAtzG,KAAAg+G,MAAA,SAAAv+G,GAAA,GAAAO,GAAAR,EAAA8zG,GAAAmH,UAAAzmD,OAAAh0D,KAAAA,EAAA08G,aAAA18G,EAAA09F,SAAA,IAAA1yF,KAAA0yF,QAAA,IAAA1yF,KAAA6lD,OAAArvD,KAAAwJ,KAAA0yF,QAAA,GAAA19F,EAAA08G,aAAA18G,EAAA09F,WAAA1yF,KAAA8O,QAAA0jG,YAAAxyG,KAAA0yF,QAAAvkF,SAAAnO,KAAA8O,QAAA0jG;AAAAxyG,AxD+mBA,KwD/mBAsvD,SAAA,OAAA76D,EAAAuL,KAAAsoG,GAAAtzG,MAAAi+G,KAAA,SAAAx+G,GAAA,GAAAO,GAAAR,EAAA8zG,GAAAmH,UAAAzmD,OAAAh0D,KAAAA,EAAA08G,aAAA18G,EAAA09F,SAAA,IAAA1yF,KAAA0yF,QAAA,IAAA1yF,KAAA6lD,OAAArvD,KAAAwJ,KAAA0yF,QAAA,GAAA19F,EAAA08G,aAAA18G,EAAA09F,WAAA1yF,KAAA8O,QAAA0jG,YAAAxyG,KAAA0yF,QAAAtkF,YAAApO,KAAA8O,QAAA0jG,YAAAxyG,KAAAsvD,SAAA,MAAA76D,EAAAuL,KAAAsoG,GAAAtzG,MAAAk+G,MAAA,SAAAz+G,EAAAO,GAAA,GAAAE,GAAAF,GAAAR,EAAA8zG,GAAAmH,UAAAzmD,OAAA,KAAA9zD,IAAAA,EAAAw8G,aAAAx8G,EAAAw9F,SAAA,IAAA1yF,KAAA0yF,QAAA,GAAA,OAAA,CAAA,IAAAt9F,IAAA,CAAA,OAAA4K,MAAA0yF,QAAAztF,KAAA,oBAAA+T,IAAA,0BAAAnkB,KAAA,WAAA,GAAAJ,GAAAD,EAAAqB,KAAAmK,KAAA,YAAA,OAAAvL,GAAAqa,QAAAyjG,SAAA99G,EAAAqa,QAAAhG,UAAArU,EAAAqa,QAAAglD,OAAA5+D,EAAA4Z,QAAAglD,OAAAr/D,EAAAoxD,OAAArvD,KAAA/B,EAAAi+F,QAAA,GAAAx9F,EAAAw8G,aAAAx8G,EAAAw9F,UAAAl+F,EAAA8zG,GAAA6K,UAAAj+G,EAAAV,EAAAuD,OAAAtD;AAAAq0B,AxDgnBA,OwDhnBAr0B,EAAAi+F,QAAA5pE,WAAAr0B,EAAAqa,QAAA2jG,YAAAr9G,GAAA,GAAA,GAAA,SAAAA,GAAA,EAAA4K,KAAA6lD,OAAArvD,KAAAwJ,KAAA0yF,QAAA,GAAAx9F,EAAAw8G,aAAAx8G,EAAAw9F,UAAA1yF,KAAA8O,QAAAwjG,aAAAtyG,KAAA0yF,QAAAtkF,YAAApO,KAAA8O,QAAAwjG,aAAAtyG,KAAA8O,QAAA0jG,YAAAxyG,KAAA0yF,QAAAtkF,YAAApO,KAAA8O,QAAA0jG,YAAAxyG,KAAAsvD,SAAA,OAAA76D,EAAAuL,KAAAsoG,GAAApzG,IAAA8K,KAAA0yF,UAAA,GAAA4V,GAAA,SAAA9zG,GAAA,OAAA88G,UAAA98G,EAAAk9G,aAAAl9G,EAAAk+F,QAAA7nC,OAAAr2D,EAAAq2D,OAAA7qC,SAAAxrB,EAAAwrB,SAAA8I,OAAAt0B,EAAAo7G,gBAAAp7G,EAAAuD,OAAAvD,EAAA8zG,GAAA8K,WAAAh0F,QAAA,WAAA5qB,EAAA8zG,GAAA6K,UAAA,SAAA1+G,EAAAO,EAAAE,GAAA,IAAAF,EAAA8zB,OAAA,OAAA,CAAA,IAAA1zB,IAAAX,EAAAm7G,aAAAn7G,EAAAurB,SAAA2sE,UAAAzrE,KAAAtrB,EAAAR,EAAAX,EAAAs8G,kBAAAv1G,MAAA/D,GAAAhD,EAAAm7G,aAAAn7G,EAAAurB,SAAA2sE,UAAA5gF,IAAArU,EAAAD,EAAAhD,EAAAs8G,kBAAAt1G,OAAAY,EAAArH,EAAA8zB,OAAA5H,KAAAzkB,EAAAJ,EAAArH,EAAA49G,YAAAp3G,MAAAkB,EAAA1H,EAAA8zB,OAAA/c,IAAApP,EAAAD,EAAA1H,EAAA49G,YAAAn3G;AAAA,AxDinBA,OwDjnBAvG,GAAA,IAAA,MAAA,MAAAE,IAAAiH,GAAAI,GAAA7G,GAAA6B,GAAAiF,GAAAC,GAAAjF,CAAA,KAAA,YAAA,MAAA2E,GAAAjH,EAAAX,EAAAs8G,kBAAAv1G,MAAA,GAAA5F,EAAAnB,EAAAs8G,kBAAAv1G,MAAA,EAAAiB,GAAAC,EAAAjF,EAAAhD,EAAAs8G,kBAAAt1G,OAAA,GAAA/D,EAAAjD,EAAAs8G,kBAAAt1G,OAAA,EAAAkB,CAAA,KAAA,UAAA,GAAAoE,IAAAtM,EAAAm7G,aAAAn7G,EAAAurB,SAAA2sE,UAAAzrE,MAAAzsB,EAAA4+G,aAAA5+G,EAAAq0B,OAAAvS,OAAA2K,KAAAlgB,GAAAvM,EAAAm7G,aAAAn7G,EAAAurB,SAAA2sE,UAAA5gF,KAAAtX,EAAA4+G,aAAA5+G,EAAAq0B,OAAAvS,OAAAxK,IAAA9K,EAAAzM,EAAA8zG,GAAAgD,OAAAtqG,EAAAD,EAAArE,EAAAL,EAAArH,EAAA49G,YAAAn3G,OAAAzG,EAAA49G,YAAAp3G,MAAA,OAAAyF,EAAA,KAAA,QAAA,OAAAxJ,GAAAiF,GAAAC,GAAAlF,GAAAC,GAAAgF,GAAAC,GAAAjF,GAAAgF,EAAAjF,GAAAC,EAAAiF,KAAAvH,GAAAiH,GAAAI,GAAArH,GAAAQ,GAAAyG,GAAAI,GAAA7G,GAAAyG,EAAAjH,GAAAQ,EAAA6G,EAAA,SAAA,OAAA,IAAAjI,EAAA8zG,GAAAmH,WAAAzmD,QAAA,KAAA6pD,YAAAS,cAAA9C,eAAA,SAAA/7G,EAAAO,GAAA,GAAAE,GAAAV,EAAA8zG,GAAAmH,UAAAoD,WAAAp+G,EAAAqa,QAAAglD,WAAA1+D,EAAAJ,EAAAA,EAAA0D,KAAA,KAAA9C,GAAAnB,EAAAi9G,aAAAj9G,EAAAi+F,SAAAztF,KAAA,oBAAAyW;AAAAjkB,AxDknBA,EwDlnBA,IAAA,GAAAC,GAAA,EAAAA,EAAAxC,EAAA8B,OAAAU,IAAA,KAAAxC,EAAAwC,GAAAoX,QAAAhG,UAAArU,IAAAS,EAAAwC,GAAAmuD,OAAArvD,KAAAtB,EAAAwC,GAAAg7F,QAAA,GAAAj+F,EAAAi9G,aAAAj9G,EAAAi+F,UAAA,CAAA,IAAA,GAAAr2F,GAAA,EAAAA,EAAAzG,EAAAoB,OAAAqF,IAAA,GAAAzG,EAAAyG,IAAAnH,EAAAwC,GAAAg7F,QAAA,GAAA,CAAAx9F,EAAAwC,GAAAk7G,YAAAn3G,OAAA,CAAA,SAAAhE,GAAAvC,EAAAwC,GAAA6pB,QAAA,QAAArsB,EAAAwC,GAAAg7F,QAAA74F,IAAA,WAAA3E,EAAAwC,GAAA6pB,UAAA,aAAAnsB,GAAAF,EAAAwC,GAAAo7G,UAAAt8G,KAAAtB,EAAAwC,GAAA1C,GAAAE,EAAAwC,GAAAoxB,OAAA5zB,EAAAwC,GAAAg7F,QAAA5pE,SAAA5zB,EAAAwC,GAAAk7G,aAAAp3G,MAAAtG,EAAAwC,GAAAg7F,QAAA,GAAA73F,YAAAY,OAAAvG,EAAAwC,GAAAg7F,QAAA,GAAA53F,iBAAAu8B,KAAA,SAAA5iC,EAAAO,GAAA,GAAAE,IAAA,CAAA,OAAAV,GAAAK,KAAAL,EAAA8zG,GAAAmH,UAAAoD,WAAAp+G,EAAAqa,QAAAglD,WAAA,WAAA9zD,KAAA8O,WAAA9O,KAAA8O,QAAAhG,UAAA9I,KAAAuhB,SAAA/sB,EAAA8zG,GAAA6K,UAAA1+G,EAAAuL,KAAAA,KAAA8O,QAAA2jG,aAAAv9G,EAAA8K,KAAAkzG,MAAA18G,KAAAwJ,KAAAhL,IAAAE;AxDmnBA,CwDnnBA8K,KAAA8O,QAAAhG,UAAA9I,KAAAuhB,SAAAvhB,KAAA6lD,OAAArvD,KAAAwJ,KAAA0yF,QAAA,GAAAj+F,EAAAi9G,aAAAj9G,EAAAi+F,WAAA1yF,KAAA2yG,MAAA,EAAA3yG,KAAA0yG,OAAA,EAAA1yG,KAAA+yG,YAAAv8G,KAAAwJ,KAAAhL,OAAAE,GAAAu7G,UAAA,SAAAh8G,EAAAO,GAAAP,EAAAi+F,QAAA/2E,QAAA,mBAAA3F,KAAA,mBAAA,WAAAvhB,EAAAqa,QAAA+/F,kBAAAr6G,EAAA8zG,GAAAmH,UAAAe,eAAA/7G,EAAAO,MAAA47G,KAAA,SAAAn8G,EAAAO,GAAAP,EAAAqa,QAAA+/F,kBAAAr6G,EAAA8zG,GAAAmH,UAAAe,eAAA/7G,EAAAO,GAAAR,EAAAK,KAAAL,EAAA8zG,GAAAmH,UAAAoD,WAAAp+G,EAAAqa,QAAAglD,WAAA,WAAA,IAAA9zD,KAAA8O,QAAAhG,WAAA9I,KAAAuzG,aAAAvzG,KAAAuhB,QAAA,CAAA,GAAArsB,GAAAV,EAAA8zG,GAAA6K,UAAA1+G,EAAAuL,KAAAA,KAAA8O,QAAA2jG,WAAAr9G,EAAAF,GAAA,GAAA8K,KAAA0yG,OAAAx9G,GAAA,GAAA8K,KAAA0yG,OAAA,SAAA,KAAA,OAAA,IAAAt9G,EAAA,CAAA,GAAAQ,EAAA,IAAAoK,KAAA8O,QAAAyjG,OAAA;AAAA,AxDonBA,GwDpnBA96G,GAAAuI,KAAA0yF,QAAA/2E,QAAA,yBAAAlkB,GAAAT,SAAApB,EAAApB,EAAAqB,KAAA4B,EAAA,GAAA,aAAA7B,EAAA29G,YAAA,UAAAn+G,EAAA,EAAA,GAAAQ,GAAA,UAAAR,IAAAQ,EAAA88G,OAAA,EAAA98G,EAAA+8G,MAAA,EAAA/8G,EAAAq9G,KAAAz8G,KAAAZ,EAAAZ,IAAAgL,KAAA5K,GAAA,EAAA4K,KAAA,SAAA5K,EAAA,SAAA,SAAA,EAAA4K,KAAA,UAAA5K,EAAA,QAAA,QAAAoB,KAAAwJ,KAAAhL,GAAAY,GAAA,SAAAR,IAAAQ,EAAA+8G,MAAA,EAAA/8G,EAAA88G,OAAA,EAAA98G,EAAAo9G,MAAAx8G,KAAAZ,EAAAZ,SAAA87G,SAAA,SAAAr8G,EAAAO,GAAAP,EAAAi+F,QAAA/2E,QAAA,mBAAA1F,OAAA,oBAAAxhB,EAAAqa,QAAA+/F,kBAAAr6G,EAAA8zG,GAAAmH,UAAAe,eAAA/7G,EAAAO,MAAA6N,QAIA,SAAArO,EAAAC,GAAAD,EAAA+2G,OAAA,eAAA/2G,EAAA8zG,GAAA+F,OAAA1C,kBAAA,SAAA78F,SAAA0kG,YAAA,EAAAjsF,SAAA,EAAAksF,gBAAA,OAAAC,cAAA,QAAAC,aAAA,EAAAC,UAAA;AAAAnF,AxDinBA,awDjnBA,EAAAoF,OAAA,EAAAlF,MAAA,EAAAmF,QAAA,SAAAjpD,QAAA,EAAAkpD,UAAA,KAAA/yF,SAAA,KAAAkqF,UAAA,GAAAnqF,SAAA,GAAAJ,OAAA,KAAAgsC,QAAA,WAAA,GAAAl4D,GAAAuL,KAAAhL,EAAAgL,KAAA8O,OAAA,IAAA9O,KAAA0yF,QAAAvkF,SAAA,gBAAA3Z,EAAAuD,OAAAiI,MAAAg0G,eAAAh/G,EAAA2+G,YAAAA,YAAA3+G,EAAA2+G,YAAAM,gBAAAj0G,KAAA0yF,QAAAwhB,iCAAAzC,QAAAz8G,EAAA61D,QAAA71D,EAAA6+G,OAAA7+G,EAAAuyB,QAAAvyB,EAAA61D,QAAA,sBAAA,OAAA7qD,KAAA0yF,QAAA,GAAAv6F,SAAA6e,MAAA,8CAAAhX,KAAA0yF,QAAA10E,KAAAxpB,EAAA,4DAAAqF,KAAAmmB,SAAAhgB,KAAA0yF,QAAA74F,IAAA,YAAA2B,MAAAwE,KAAA0yF,QAAA8Q,aAAA/nG,OAAAuE,KAAA0yF,QAAA3gD;AAAAhmC,AxDknBA,IwDlnBA/L,KAAA0yF,QAAA74F,IAAA,OAAAqnB,KAAAlhB,KAAA0yF,QAAA74F,IAAA,WAAAmG,KAAA0yF,QAAA1yF,KAAA0yF,QAAAx5E,SAAArjB,KAAA,YAAAmK,KAAA0yF,QAAA78F,KAAA,cAAAmK,KAAAm0G,kBAAA,EAAAn0G,KAAA0yF,QAAA74F,KAAAu6G,WAAAp0G,KAAAi0G,gBAAAp6G,IAAA,cAAAw6G,UAAAr0G,KAAAi0G,gBAAAp6G,IAAA,aAAAmS,YAAAhM,KAAAi0G,gBAAAp6G,IAAA,eAAAy6G,aAAAt0G,KAAAi0G,gBAAAp6G,IAAA,kBAAAmG,KAAAi0G,gBAAAp6G,KAAAu6G,WAAA,EAAAC,UAAA,EAAAroG,YAAA,EAAAsoG,aAAA,IAAAt0G,KAAAu0G,oBAAAv0G,KAAAi0G,gBAAAp6G,IAAA,UAAAmG,KAAAi0G,gBAAAp6G,IAAA,SAAA,QAAAmG,KAAAk0G,8BAAAr0G,KAAAG,KAAAi0G,gBAAAp6G,KAAAmmB,SAAA,SAAAre,KAAA;AAAA1H,AxDmnBA,QwDnnBA,WAAA+F,KAAAi0G,gBAAAp6G,KAAA2nB,OAAAxhB,KAAAi0G,gBAAAp6G,IAAA,YAAAmG,KAAAw0G,yBAAAx0G,KAAA8zG,QAAA9+G,EAAA8+G,UAAAt/G,EAAA,uBAAAwL,KAAA0yF,SAAA17F,QAAAgK,EAAA,kBAAA5L,EAAA,kBAAAL,EAAA,kBAAA4O,EAAA,kBAAA8pB,GAAA,mBAAAgnF,GAAA,mBAAA7jF,GAAA,mBAAA8jF,GAAA,oBAAA,UAAA10G,KAAA8zG,QAAArvG,aAAArB,OAAA,CAAA,OAAApD,KAAA8zG,UAAA9zG,KAAA8zG,QAAA,sBAAA,IAAA5+G,GAAA8K,KAAA8zG,QAAAh/G,MAAA,IAAAkL,MAAA8zG,UAAA,KAAA,GAAA1+G,GAAA,EAAAA,EAAAF,EAAA8B,OAAA5B,IAAA,CAAA,GAAAQ,GAAApB,EAAAgE,KAAAtD,EAAAE,IAAAqC,EAAA,gBAAA7B,EAAA8B,EAAAlD,EAAA,mCAAAiD,EAAA,WAAAC,GAAAmC,KAAA8mB,OAAA3rB,EAAA2rB,SAAA,MAAA/qB,GAAA8B,EAAAyW,SAAA;AAAAnO,AxDonBA,KwDpnBA8zG,QAAAl+G,GAAA,iBAAAA,EAAAoK,KAAA0yF,QAAA90E,OAAAlmB,IAAAsI,KAAA20G,YAAA,SAAAlgH,GAAAA,EAAAA,GAAAuL,KAAA0yF,OAAA,KAAA,GAAA19F,KAAAgL,MAAA8zG,QAAA,CAAA,GAAA9zG,KAAA8zG,QAAA9+G,GAAAyP,aAAArB,SAAApD,KAAA8zG,QAAA9+G,GAAAR,EAAAwL,KAAA8zG,QAAA9+G,GAAAgL,KAAA0yF,SAAA5wF,QAAA9B,KAAAm0G,kBAAAn0G,KAAAi0G,gBAAA,GAAA97G,SAAA6e,MAAA,iCAAA,CAAA,GAAA9hB,GAAAV,EAAAwL,KAAA8zG,QAAA9+G,GAAAgL,KAAA0yF,SAAAt9F,EAAA,CAAAA,GAAA,kBAAAM,KAAAV,GAAAE,EAAA68C,cAAA78C,EAAAsuG,YAAA,IAAA5tG,IAAA,UAAA,UAAAF,KAAAV,GAAA,MAAA,UAAAU,KAAAV,GAAA,SAAA,MAAAU,KAAAV,GAAA,QAAA,QAAA+Q,KAAA,GAAAtR,GAAAoF,IAAAjE,EAAAR,GAAA4K,KAAAw0G,wBAAAhgH,EAAAwL,KAAA8zG,QAAA9+G,IAAAgC,SAAAgJ,KAAA20G,YAAA30G,KAAA0yF,SAAA1yF,KAAA40G,SAAApgH,EAAA,uBAAAwL,KAAA0yF,SAAAiY;AAAA3qG,AxDqnBA,KwDrnBA40G,SAAAC,UAAA,WAAA,IAAApgH,EAAAqgH,SAAA,CAAA,GAAA90G,KAAAoK,UAAA,GAAA5V,GAAAwL,KAAAoK,UAAA4M,MAAA,sCAAAviB,GAAA85G,KAAA/5G,GAAAA,EAAA,GAAAA,EAAA,GAAA,QAAAQ,EAAA4+G,WAAA5zG,KAAA40G,SAAA7yG,OAAAvN,EAAAwL,KAAA0yF,SAAAvkF,SAAA,yBAAA4C,MAAA,WAAA/b,EAAA8T,WAAAtU,EAAAwL,MAAAoO,YAAA,yBAAA3Z,EAAAmgH,SAAA9yG,SAAA,WAAA9M,EAAA8T,UAAArU,EAAAqgH,WAAAtgH,EAAAwL,MAAAmO,SAAA,yBAAA1Z,EAAAmgH,SAAA7yG,WAAA/B,KAAAqsG,cAAA39D,QAAA,WAAA1uC,KAAAusG,eAAA,IAAA93G,GAAA,SAAAA,GAAAD,EAAAC,GAAA2Z,YAAA,4DAAApM,WAAA,aAAAiU,OAAA,cAAAhR,KAAA,wBAAA5J;AxDsnBA,CwDtnBA,IAAA2E,KAAAm0G,iBAAA,CAAA1/G,EAAAuL,KAAA0yF,QAAA,IAAA19F,GAAAgL,KAAA0yF,OAAA19F,GAAAupB,MAAAve,KAAAi0G,gBAAAp6G,KAAAmmB,SAAAhrB,EAAA6E,IAAA,YAAA2B,MAAAxG,EAAAwuG,aAAA/nG,OAAAzG,EAAA+8C,cAAAhmC,IAAA/W,EAAA6E,IAAA,OAAAqnB,KAAAlsB,EAAA6E,IAAA,WAAAwB,SAAA,MAAA2E,MAAAi0G,gBAAAp6G,IAAA,SAAAmG,KAAAu0G,qBAAA9/G,EAAAuL,KAAAi0G,iBAAAj0G,MAAA6sG,cAAA,SAAAp4G,GAAA,GAAAO,IAAA,CAAA,KAAA,GAAAE,KAAA8K,MAAA8zG,QAAAt/G,EAAAwL,KAAA8zG,QAAA5+G,IAAA,IAAAT,EAAA6d,SAAAtd,GAAA,EAAA,QAAAgL,KAAA8O,QAAAhG,UAAA9T,GAAAk4G,YAAA,SAAAz4G,GAAA,GAAAS,GAAA8K,KAAA8O,QAAA1Z,EAAA4K,KAAA0yF,QAAA1yE,WAAApqB,EAAAoK,KAAA0yF,OAAA1yF,MAAA80G,UAAA,EAAA90G,KAAA+0G,gBAAAhpG,IAAAvX,EAAAqH,UAAAsY,YAAA+M,KAAA1sB,EAAAqH,UAAAkY,eAAAne,EAAAmd,GAAA,kBAAA,WAAArd,KAAAE,EAAAiE,IAAA,eAAAjE,EAAAiE;AAAAmmB,AxDunBA,SwDvnBA,WAAAjU,IAAA3W,EAAA2W,IAAAmV,KAAA9rB,EAAA8rB,OAAAlhB,KAAAg1G,cAAA,IAAAv9G,GAAAzC,EAAAgL,KAAA6qD,OAAAhxD,IAAA,SAAAnC,EAAA1C,EAAAgL,KAAA6qD,OAAAhxD,IAAA,OAAA3E,GAAAu5G,cAAAh3G,GAAAjD,EAAAU,EAAAu5G,aAAA16F,cAAA,EAAArc,GAAAlD,EAAAU,EAAAu5G,aAAAt6F,aAAA,GAAAnU,KAAA8oB,OAAA9oB,KAAA6qD,OAAA/hC,SAAA9oB,KAAAggB,UAAAkB,KAAAzpB,EAAAsU,IAAArU,GAAAsI,KAAAqF,KAAArF,KAAAyxG,SAAAj2G,MAAA5F,EAAA4tG,aAAA/nG,OAAA7F,EAAAm8C,gBAAAv2C,MAAA5F,EAAA4F,QAAAC,OAAA7F,EAAA6F,UAAAuE,KAAAi1G,aAAAj1G,KAAAyxG,SAAAj2G,MAAA5F,EAAA4tG,aAAA/nG,OAAA7F,EAAAm8C,gBAAAv2C,MAAA5F,EAAA4F,QAAAC,OAAA7F,EAAA6F,UAAAuE,KAAAgwG,kBAAA9uF,KAAAzpB,EAAAsU,IAAArU,GAAAsI,KAAAk1G,UAAA15G,MAAA5F,EAAA4tG,aAAA5tG,EAAA4F,QAAAC,OAAA7F,EAAAm8C,cAAAn8C,EAAA6F,UAAAuE,KAAAm1G,uBAAAj0F,KAAAzsB,EAAAof,MAAA9H,IAAAtX,EAAAwf,OAAAjU,KAAA2zG,YAAA,gBAAAz+G,GAAAy+G,YAAAz+G,EAAAy+G,YAAA3zG,KAAAi1G,aAAAz5G,MAAAwE,KAAAi1G,aAAAx5G,QAAA;AAAA,AxDwnBA,GwDxnBAY,GAAA7H,EAAA,iBAAAwL,KAAAuuG,MAAA10G,IAAA,SAAA,OAAArF,GAAA,QAAAqF,IAAA,SAAA,QAAAwC,EAAA2D,KAAAuuG,KAAA,UAAAlyG,GAAAzG,EAAAuY,SAAA,yBAAAnO,KAAAo1G,WAAA,QAAA3gH,IAAA,GAAA44G,WAAA,SAAA54G,GAAA,GAAAO,GAAAgL,KAAA6qD,OAAApzD,GAAAuI,KAAA8O,QAAA9O,KAAAm1G,uBAAAz9G,EAAAsI,KAAAuuG,KAAAlyG,EAAA5H,EAAAof,MAAApc,EAAAypB,MAAA,EAAAzkB,EAAAhI,EAAAwf,MAAAxc,EAAAsU,KAAA,EAAArP,EAAAsD,KAAAq1G,QAAA39G,EAAA,KAAAgF,EAAA,OAAA,CAAA,IAAAC,GAAAD,EAAAmJ,MAAA7F,MAAAvL,EAAA4H,EAAAI,GAAAjI,GAAA2qB,QAAAurF,MAAAl2G,EAAA2qB,QAAAC,QAAA,EAAApf,KAAAk1G,QAAA,OAAAl1G,MAAAs1G,yBAAA7gH,EAAA8gH,WAAAv1G,KAAAg0G,cAAAv/G,EAAA8gH,YAAA54G,EAAAqD,KAAAw1G,aAAA74G,EAAAlI,IAAAkI,EAAAqD,KAAAy1G,aAAA94G,EAAAlI,GAAAuL,KAAAo1G,WAAA,SAAA3gH,GAAAO,EAAA6E,KAAAkS,IAAA/L,KAAAggB,SAAAjU,IAAA,KAAAmV,KAAAlhB,KAAAggB,SAAAkB,KAAA,KAAA1lB,MAAAwE,KAAAqF,KAAA7J,MAAA;AAAAC,AxDynBA,OwDznBAuE,KAAAqF,KAAA5J,OAAA,QAAAuE,KAAAyxG,SAAAzxG,KAAAk0G,8BAAAl9G,QAAAgJ,KAAAw0G,wBAAAx0G,KAAA01G,aAAA/4G,GAAAqD,KAAAsvD,SAAA,SAAA76D,EAAAuL,KAAAsoG,OAAA,GAAAgF,WAAA,SAAA74G,GAAAuL,KAAA80G,UAAA,CAAA,IAAA9/G,GAAAgL,KAAA8O,QAAA5Z,EAAA8K,IAAA,IAAAA,KAAAyxG,QAAA,CAAA,GAAAr8G,GAAA4K,KAAAk0G,8BAAAt+G,EAAAR,EAAA4B,QAAA,YAAAtB,KAAAN,EAAA,GAAA+C,UAAAV,EAAA7B,GAAApB,EAAA8zG,GAAA8C,UAAAh2G,EAAA,GAAA,QAAA,EAAAF,EAAAggH,SAAAz5G,OAAA/D,EAAA9B,EAAA,EAAAV,EAAAggH,SAAA15G,MAAAa,GAAAb,MAAAtG,EAAA21D,OAAArvD,QAAA9D,EAAA+D,OAAAvG,EAAA21D,OAAApvD,SAAAhE,GAAAgF,EAAAwT,SAAA/a,EAAAw9F,QAAA74F,IAAA,QAAA,KAAA3E,EAAA8qB,SAAAkB,KAAAhsB,EAAA86G,iBAAA9uF,OAAA,KAAAxkB,EAAAuT,SAAA/a,EAAAw9F,QAAA74F,IAAA,OAAA,KAAA3E,EAAA8qB,SAAAjU,IAAA7W,EAAA86G,iBAAAjkG,MAAA,IAAA/W,GAAAuyB,SAAAvnB,KAAA0yF,QAAA74F,IAAArF,EAAAuD,OAAAsE;AAAA0P,AxD0nBA,IwD1nBArP,EAAAwkB,KAAAzkB,KAAAvH,EAAA21D,OAAApvD,OAAAvG,EAAAmQ,KAAA5J,QAAAvG,EAAA21D,OAAArvD,MAAAtG,EAAAmQ,KAAA7J,OAAAwE,KAAAyxG,UAAAz8G,EAAAuyB,SAAAvnB,KAAAw0G,wBAAA,MAAAhgH,GAAA,QAAAqF,IAAA,SAAA,QAAAmG,KAAA0yF,QAAAtkF,YAAA,yBAAApO,KAAAo1G,WAAA,OAAA3gH,GAAAuL,KAAAyxG,SAAAzxG,KAAA6qD,OAAAxvD,UAAA,GAAAi6G,yBAAA,SAAA9gH,GAAA,GAAAQ,GAAAI,EAAAQ,EAAA6B,EAAAC,EAAAjD,EAAAuL,KAAA8O,OAAApX,IAAAqpB,SAAA7rB,EAAAT,EAAAssB,UAAAtsB,EAAAssB,SAAA,EAAAC,SAAA9rB,EAAAT,EAAAusB,UAAAvsB,EAAAusB,SAAA66C,EAAAA,EAAAqvC,UAAAh2G,EAAAT,EAAAy2G,WAAAz2G,EAAAy2G,UAAA,EAAA6I,UAAA7+G,EAAAT,EAAAs/G,WAAAt/G,EAAAs/G,UAAAl4C,EAAAA,IAAA77D,KAAAg0G,cAAAx/G,KAAAQ,EAAA0C,EAAAwzG,UAAAlrG,KAAA2zG,YAAA/9G,EAAA8B,EAAAqpB,SAAA/gB,KAAA2zG,YAAAv+G,EAAAsC,EAAAq8G,UAAA/zG,KAAA2zG,YAAAl8G,EAAAC,EAAAspB,SAAAhhB,KAAA2zG,YAAA3+G,EAAA0C,EAAAqpB,WAAArpB,EAAAqpB,SAAA/rB;AAAAY,AxD2nBA,EwD3nBA8B,EAAAwzG,YAAAxzG,EAAAwzG,UAAAt1G,GAAAR,EAAAsC,EAAAspB,WAAAtpB,EAAAspB,SAAA5rB,GAAAqC,EAAAC,EAAAq8G,YAAAr8G,EAAAq8G,UAAAt8G,IAAAuI,KAAA21G,aAAAj+G,GAAAg+G,aAAA,SAAAlhH,GAAAwL,KAAA8O,OAAA9O,MAAA8oB,OAAA9oB,KAAA6qD,OAAA/hC,SAAA5zB,EAAAV,EAAA0sB,QAAAlhB,KAAAggB,SAAAkB,KAAA1sB,EAAA0sB,MAAAhsB,EAAAV,EAAAuX,OAAA/L,KAAAggB,SAAAjU,IAAAvX,EAAAuX,KAAA7W,EAAAV,EAAAiH,UAAAuE,KAAAqF,KAAA5J,OAAAjH,EAAAiH,QAAAvG,EAAAV,EAAAgH,SAAAwE,KAAAqF,KAAA7J,MAAAhH,EAAAgH,QAAAg6G,aAAA,SAAAhhH,EAAAC,GAAA,GAAAW,IAAA4K,KAAA8O,QAAA9O,KAAAggB,UAAApqB,EAAAoK,KAAAqF,KAAA5N,EAAAuI,KAAAuuG,IAAA,OAAAr5G,GAAAV,EAAAiH,QAAAjH,EAAAgH,MAAAhH,EAAAiH,OAAAuE,KAAA2zG,YAAAz+G,EAAAV,EAAAgH,SAAAhH,EAAAiH,OAAAjH,EAAAgH,MAAAwE,KAAA2zG,aAAA,MAAAl8G,IAAAjD,EAAA0sB,KAAA9rB,EAAA8rB,MAAAtrB,EAAA4F,MAAAhH,EAAAgH,OAAAhH,EAAAuX,IAAA,MAAA,MAAAtU,IAAAjD,EAAAuX,IAAA3W,EAAA2W,KAAAnW,EAAA6F,OAAAjH,EAAAiH,QAAAjH,EAAA0sB,KAAA9rB,EAAA8rB,MAAAtrB,EAAA4F,MAAAhH,EAAAgH,QAAAhH,GAAAihH,aAAA,SAAAjhH,EAAAC;AAAA,AxD4nBA,GwD5nBAW,IAAA4K,KAAA6qD,OAAA7qD,KAAA21G,cAAAl+G,GAAAuI,KAAAg0G,cAAAv/G,EAAA8gH,SAAAv1G,KAAAuuG,MAAA72G,EAAAxC,EAAAV,EAAAgH,QAAApG,EAAA4rB,UAAA5rB,EAAA4rB,SAAAxsB,EAAAgH,MAAAa,EAAAnH,EAAAV,EAAAiH,SAAArG,EAAA2+G,WAAA3+G,EAAA2+G,UAAAv/G,EAAAiH,OAAAgB,EAAAvH,EAAAV,EAAAgH,QAAApG,EAAA2rB,UAAA3rB,EAAA2rB,SAAAvsB,EAAAgH,MAAAkB,EAAAxH,EAAAV,EAAAiH,SAAArG,EAAA81G,WAAA91G,EAAA81G,UAAA12G,EAAAiH,MAAAgB,KAAAjI,EAAAgH,MAAApG,EAAA2rB,UAAArkB,IAAAlI,EAAAiH,OAAArG,EAAA81G,WAAAxzG,IAAAlD,EAAAgH,MAAApG,EAAA4rB,UAAA3kB,IAAA7H,EAAAiH,OAAArG,EAAA2+G,UAAA,IAAAp3G,GAAAqD,KAAAgwG,iBAAA9uF,KAAAlhB,KAAAi1G,aAAAz5G,MAAAuF,EAAAf,KAAAggB,SAAAjU,IAAA/L,KAAAqF,KAAA5J,OAAAuF,EAAA,UAAAtL,KAAA+B,GAAAwJ,EAAA,UAAAvL,KAAA+B,EAAAgF,IAAAuE,IAAAxM,EAAA0sB,KAAAvkB,EAAAvH,EAAA2rB,UAAArpB,GAAAsJ,IAAAxM,EAAA0sB,KAAAvkB,EAAAvH,EAAA4rB,UAAAtkB,GAAAuE,IAAAzM,EAAAuX,IAAAhL,EAAA3L,EAAA81G,WAAA7uG,GAAA4E,IAAAzM,EAAAuX,IAAAhL,EAAA3L,EAAA2+G,UAAA,IAAAn/G,IAAAJ,EAAAgH,QAAAhH,EAAAiH,MAAA,OAAA7G,KAAAJ,EAAA0sB,MAAA1sB,EAAAuX,IAAAvX,EAAAuX,IAAA,KAAAnX,IAAAJ,EAAAuX,KAAAvX,EAAA0sB,OAAA1sB,EAAA0sB,KAAA;AAAA1sB,AxD6nBA,GwD7nBAggH,sBAAA,WAAAx0G,KAAA8O,OAAA,IAAA9O,KAAAk0G,8BAAAl9G,OAAA,IAAA,GAAAhC,GAAAgL,KAAA6qD,QAAA7qD,KAAA0yF,QAAAx9F,EAAA,EAAAA,EAAA8K,KAAAk0G,8BAAAl9G,OAAA9B,IAAA,CAAA,GAAAE,GAAA4K,KAAAk0G,8BAAAh/G,EAAA,KAAA8K,KAAA41G,UAAA,CAAA,GAAAhgH,IAAAR,EAAAyE,IAAA,kBAAAzE,EAAAyE,IAAA,oBAAAzE,EAAAyE,IAAA,qBAAAzE,EAAAyE,IAAA,oBAAApC,GAAArC,EAAAyE,IAAA,cAAAzE,EAAAyE,IAAA,gBAAAzE,EAAAyE,IAAA,iBAAAzE,EAAAyE,IAAA,eAAAmG,MAAA41G,UAAAphH,EAAAwR,IAAApQ,EAAA,SAAApB,EAAAC,GAAA,GAAAO,GAAAib,SAAAzb,EAAA,KAAA,EAAAU,EAAA+a,SAAAxY,EAAAhD,GAAA,KAAA,CAAA,OAAAO,GAAAE,IAAAV,EAAA2qB,QAAAurF,OAAAl2G,EAAAQ,GAAA+d,GAAA,YAAAve,EAAAQ,GAAA2mB,QAAA,WAAA3kB,SAAA5B,EAAAyE,KAAA4B,OAAAzG,EAAAyG,SAAAuE,KAAA41G,UAAA,GAAA51G,KAAA41G,UAAA,IAAA;AAAAp6G,AxD8nBA,MwD9nBAxG,EAAAwG,QAAAwE,KAAA41G,UAAA,GAAA51G,KAAA41G,UAAA,IAAA,MAAAZ,aAAA,WAAA,GAAAvgH,GAAAuL,KAAA0yF,QAAA19F,EAAAgL,KAAA8O,OAAA,IAAA9O,KAAA61G,cAAAphH,EAAAq0B,SAAA9oB,KAAAyxG,QAAA,CAAAzxG,KAAA6qD,OAAA7qD,KAAA6qD,QAAAr2D,EAAA,uCAAA,IAAAU,GAAAV,EAAA2qB,QAAAurF,MAAAl2G,EAAA2qB,QAAAC,QAAA,EAAAhqB,EAAAF,EAAA,EAAA,EAAAU,EAAAV,EAAA,EAAA,EAAA8K,MAAA6qD,OAAA18C,SAAAnO,KAAAyxG,SAAA53G,KAAA2B,MAAAwE,KAAA0yF,QAAA8Q,aAAA5tG,EAAA6F,OAAAuE,KAAA0yF,QAAA3gD,cAAAn8C,EAAAoqB,SAAA,WAAAkB,KAAAlhB,KAAA61G,cAAA30F,KAAA9rB,EAAA,KAAA2W,IAAA/L,KAAA61G,cAAA9pG,IAAA3W,EAAA,KAAAurB,SAAA3rB,EAAA2rB,SAAA3gB,KAAA6qD,OAAA1vD,SAAA,QAAAwvG,uBAAA3qG,MAAA6qD,OAAA7qD,KAAA0yF,SAAA2iB,SAAAjgH,EAAA,SAAAZ,EAAAC,EAAAO,GAAA,OAAAwG,MAAAwE,KAAAi1G,aAAAz5G,MAAA/G,IAAAkP,EAAA,SAAAnP,EAAAC,EAAAO;AAAA,AxD+nBA,GwD/nBAI,IAAA4K,KAAA8O,QAAA9O,KAAAi1G,cAAAr/G,EAAAoK,KAAAgwG,gBAAA,QAAA9uF,KAAAtrB,EAAAsrB,KAAAzsB,EAAA+G,MAAApG,EAAAoG,MAAA/G,IAAAuM,EAAA,SAAAxM,EAAAC,EAAAO,GAAA,GAAAI,IAAA4K,KAAA8O,QAAA9O,KAAAi1G,cAAAr/G,EAAAoK,KAAAgwG,gBAAA,QAAAjkG,IAAAnW,EAAAmW,IAAA/W,EAAAyG,OAAArG,EAAAqG,OAAAzG,IAAAD,EAAA,SAAAP,EAAAC,EAAAO,GAAA,OAAAyG,OAAAuE,KAAAi1G,aAAAx5G,OAAAzG,IAAAy4B,GAAA,SAAAh5B,EAAAO,EAAAE,GAAA,MAAAV,GAAAuD,OAAAiI,KAAAq1G,QAAAtgH,EAAA8Q,MAAA7F,KAAA8F,WAAA9F,KAAAq1G,QAAAjgH,EAAAyQ,MAAA7F,MAAAvL,EAAAO,EAAAE,MAAAu/G,GAAA,SAAAhgH,EAAAO,EAAAE,GAAA,MAAAV,GAAAuD,OAAAiI,KAAAq1G,QAAAtgH,EAAA8Q,MAAA7F,KAAA8F,WAAA9F,KAAAq1G,QAAA1xG,EAAAkC,MAAA7F,MAAAvL,EAAAO,EAAAE,MAAA07B,GAAA,SAAAn8B,EAAAO,EAAAE,GAAA,MAAAV,GAAAuD,OAAAiI,KAAAq1G,QAAAr0G,EAAA6E,MAAA7F,KAAA8F,WAAA9F,KAAAq1G,QAAAjgH,EAAAyQ,MAAA7F,MAAAvL,EAAAO,EAAAE,MAAAw/G,GAAA,SAAAjgH,EAAAO,EAAAE,GAAA,MAAAV,GAAAuD,OAAAiI,KAAAq1G,QAAAr0G,EAAA6E,MAAA7F,KAAA8F,WAAA9F,KAAAq1G,QAAA1xG,EAAAkC,MAAA7F,MAAAvL,EAAAO,EAAAE;AxDgoBA,GwDhoBAkgH,WAAA,SAAA3gH,EAAAO,GAAAR,EAAA8zG,GAAA/2C,OAAA/6D,KAAAwJ,KAAAvL,GAAAO,EAAAgL,KAAAsoG,OAAA,UAAA7zG,GAAAuL,KAAAsvD,SAAA76D,EAAAO,EAAAgL,KAAAsoG,OAAAx2C,WAAAw2C,GAAA,WAAA,OAAA2L,gBAAAj0G,KAAAi0G,gBAAAvhB,QAAA1yF,KAAA0yF,QAAA7nC,OAAA7qD,KAAA6qD,OAAA7qC,SAAAhgB,KAAAggB,SAAA3a,KAAArF,KAAAqF,KAAA4vG,aAAAj1G,KAAAi1G,aAAAjF,iBAAAhwG,KAAAgwG,qBAAAx7G,EAAAuD,OAAAvD,EAAA8zG,GAAAwN,WAAA12F,QAAA,WAAA5qB,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,cAAAoI,MAAA,SAAAzL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAAlZ,EAAA,SAAAnB,GAAAD,EAAAC,GAAAI,KAAA,WAAA,GAAAJ,GAAAD,EAAAwL,KAAAvL,GAAAoB,KAAA,wBAAA2F,MAAAyU,SAAAxb,EAAA+G,QAAA,IAAAC,OAAAwU,SAAAxb,EAAAgH,SAAA,IAAAylB,KAAAjR,SAAAxb,EAAAoF,IAAA,QAAA,IAAAkS,IAAAkE,SAAAxb,EAAAoF,IAAA,OAAA;AxDioBA,KwDjoBA,iBAAAzE,GAAAo+G,YAAAp+G,EAAAo+G,WAAAr9G,WAAAP,EAAAR,EAAAo+G,YAAAp+G,EAAAo+G,WAAAx8G,QAAA5B,EAAAo+G,WAAAp+G,EAAAo+G,WAAA,GAAA59G,EAAAR,EAAAo+G,aAAAh/G,EAAAK,KAAAO,EAAAo+G,WAAA,SAAAh/G,GAAAoB,EAAApB,MAAAuhH,OAAA,SAAAthH,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAAlZ,EAAAV,EAAA+/G,aAAAx9G,EAAAvC,EAAA86G,iBAAAt4G,GAAA+D,OAAAvG,EAAAmQ,KAAA5J,OAAA7F,EAAA6F,QAAA,EAAAD,MAAAtG,EAAAmQ,KAAA7J,MAAA5F,EAAA4F,OAAA,EAAAuQ,IAAA7W,EAAA8qB,SAAAjU,IAAAtU,EAAAsU,KAAA,EAAAmV,KAAAhsB,EAAA8qB,SAAAkB,KAAAzpB,EAAAypB,MAAA,GAAA7kB,EAAA,SAAA5H,EAAAS,GAAAV,EAAAC,GAAAI,KAAA,WAAA,GAAAJ,GAAAD,EAAAwL,MAAA5K,EAAAZ,EAAAwL,MAAAnK,KAAA,wBAAAD,KAAA6B,EAAAvC,GAAAA,EAAA8B,OAAA9B,EAAAT,EAAAknB,QAAA3mB,EAAAi/G,gBAAA,IAAAj9G,QAAA,QAAA,WAAA,QAAA,SAAA,MAAA,OAAAxC,GAAAK,KAAA4C,EAAA,SAAAjD,EAAAC,GAAA,GAAAO,IAAAI,EAAAX,IAAA,IAAAiD,EAAAjD,IAAA,EAAAO,IAAAA,GAAA,IAAAY,EAAAnB,GAAAO,GAAA;AxDkoBA,GwDloBAP,EAAAoF,IAAAjE,KAAA,iBAAAR,GAAAo+G,YAAAp+G,EAAAo+G,WAAAr+G,SAAAkH,EAAAjH,EAAAo+G,YAAAh/G,EAAAK,KAAAO,EAAAo+G,WAAA,SAAAh/G,EAAAC,GAAA4H,EAAA7H,EAAAC,MAAAqL,KAAA,SAAArL,EAAAO,GAAAR,EAAAwL,MAAAgC,WAAA,2BAAAxN,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,WAAAgI,KAAA,SAAArL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAAlZ,EAAAV,EAAAg/G,8BAAAz8G,EAAA7B,EAAAoB,QAAA,YAAAtB,KAAAE,EAAA,GAAAuC,UAAAT,EAAAD,GAAAjD,EAAA8zG,GAAA8C,UAAAx1G,EAAA,GAAA,QAAA,EAAAV,EAAAggH,SAAAz5G,OAAAY,EAAA5E,EAAA,EAAAvC,EAAAggH,SAAA15G,MAAAiB,GAAAjB,MAAAtG,EAAAmQ,KAAA7J,MAAAa,EAAAZ,OAAAvG,EAAAmQ,KAAA5J,OAAA/D,GAAAgF,EAAAuT,SAAA/a,EAAAw9F,QAAA74F,IAAA,QAAA,KAAA3E,EAAA8qB,SAAAkB,KAAAhsB,EAAA86G,iBAAA9uF,OAAA,KAAAvkB,EAAAsT,SAAA/a,EAAAw9F,QAAA74F,IAAA,OAAA,KAAA3E,EAAA8qB,SAAAjU,IAAA7W,EAAA86G,iBAAAjkG,MAAA,IAAA7W,GAAAw9F,QAAAnrE,QAAA/yB,EAAAuD,OAAA0E,EAAAE,GAAAD;AAAAqP,AxDmoBA,IwDnoBApP,EAAAukB,KAAAxkB,QAAAqC,SAAA3J,EAAAq+G,gBAAA7zG,OAAAxK,EAAAs+G,cAAApsF,KAAA,WAAA,GAAAtyB,IAAAwG,MAAAyU,SAAA/a,EAAAw9F,QAAA74F,IAAA,SAAA,IAAA4B,OAAAwU,SAAA/a,EAAAw9F,QAAA74F,IAAA,UAAA,IAAAkS,IAAAkE,SAAA/a,EAAAw9F,QAAA74F,IAAA,OAAA,IAAAqnB,KAAAjR,SAAA/a,EAAAw9F,QAAA74F,IAAA,QAAA,IAAAjE,IAAAA,EAAAoB,QAAAxC,EAAAoB,EAAA,IAAAiE,KAAA2B,MAAAxG,EAAAwG,MAAAC,OAAAzG,EAAAyG,SAAAvG,EAAAwgH,aAAA1gH,GAAAE,EAAAkgH,WAAA,SAAA3gH,SAAAD,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,eAAAoI,MAAA,SAAAzL,EAAAS,GAAA,GAAAE,GAAAZ,EAAAwL,MAAAnK,KAAA,aAAAD,EAAAR,EAAA0Z,QAAArX,EAAArC,EAAAs9F,QAAAh7F,EAAA9B,EAAA64G,YAAApyG,EAAA3E,YAAAlD,GAAAkD,EAAA6N,IAAA,GAAA,SAAA7P,KAAAgC,GAAAD,EAAAyhB,SAAA3T,IAAA,GAAA7N,CAAA,IAAA2E,EAAA,GAAAjH,EAAA4gH,iBAAAxhH,EAAA6H,GAAA,WAAA3G,KAAAgC,IAAAA,GAAAmE,SAAAzG,EAAA6gH,iBAAA/0F,KAAA,EAAAnV,IAAA,GAAA3W,EAAA8gH;AAAAh1F,AxDooBA,KwDpoBA,EAAAnV,IAAA,GAAA3W,EAAA+gH,YAAAzjB,QAAAl+F,EAAAqH,UAAAqlB,KAAA,EAAAnV,IAAA,EAAAvQ,MAAAhH,EAAAqH,UAAAL,QAAAC,OAAAjH,EAAAqH,UAAAJ,UAAAI,SAAAT,KAAAjF,WAAA+6G,kBAAA,CAAA,GAAAz0G,GAAAjI,EAAA6H,GAAAK,IAAAlI,IAAA,MAAA,QAAA,OAAA,WAAAK,KAAA,SAAAL,EAAAC,GAAAiI,EAAAlI,GAAAQ,EAAAyH,EAAA5C,IAAA,UAAApF,MAAAW,EAAA6gH,gBAAAx5G,EAAAqsB,SAAA1zB,EAAA8gH,kBAAAz5G,EAAAujB,WAAA5qB,EAAAghH,eAAA36G,OAAAgB,EAAAsuG,cAAAruG,EAAA,GAAAlB,MAAAiB,EAAAquG,aAAApuG,EAAA,GAAA,IAAAC,GAAAvH,EAAA6gH,gBAAAl1G,EAAA3L,EAAAghH,cAAA36G,OAAAuF,EAAA5L,EAAAghH,cAAA56G,MAAAyF,EAAAzM,EAAA8zG,GAAA8C,UAAA/uG,EAAA,QAAAA,EAAA80G,YAAAnwG,EAAApM,EAAAJ,EAAA8zG,GAAA8C,UAAA/uG,GAAAA,EAAA60G,aAAAnwG,CAAA3L,GAAA+gH,YAAAzjB,QAAAr2F,EAAA6kB,KAAAvkB,EAAAukB,KAAAnV,IAAApP,EAAAoP,IAAAvQ,MAAAyF,EAAAxF,OAAA7G,KAAAmhH,OAAA,SAAAthH,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAArX,GAAAvC,EAAAkhH;AAAAlhH,AxDqoBA,EwDroBA+gH,iBAAA55G,GAAAnH,EAAAmQ,KAAAnQ,EAAA8qB,UAAAvjB,EAAAvH,EAAA8+G,cAAAv/G,EAAA8gH,SAAA74G,GAAAqP,IAAA,EAAAmV,KAAA,GAAAvkB,EAAAzH,EAAA8gH,gBAAAr5G,GAAA,IAAAd,UAAA,SAAAnG,KAAAiH,EAAA9C,IAAA,eAAA6C,EAAAjF,GAAA4E,EAAA6kB,MAAAhsB,EAAAu8G,QAAAh6G,EAAAypB,KAAA,KAAAhsB,EAAAmQ,KAAA7J,MAAAtG,EAAAmQ,KAAA7J,OAAAtG,EAAAu8G,QAAAv8G,EAAA8qB,SAAAkB,KAAAzpB,EAAAypB,KAAAhsB,EAAA8qB,SAAAkB,KAAAxkB,EAAAwkB,MAAAzkB,IAAAvH,EAAAmQ,KAAA5J,OAAAvG,EAAAmQ,KAAA7J,MAAAtG,EAAAy+G,aAAAz+G,EAAA8qB,SAAAkB,KAAA9rB,EAAAy1D,OAAApzD,EAAAypB,KAAA,GAAA7kB,EAAA0P,KAAA7W,EAAAu8G,QAAAh6G,EAAAsU,IAAA,KAAA7W,EAAAmQ,KAAA5J,OAAAvG,EAAAmQ,KAAA5J,QAAAvG,EAAAu8G,QAAAv8G,EAAA8qB,SAAAjU,IAAAtU,EAAAsU,IAAA7W,EAAA8qB,SAAAjU,KAAAtP,IAAAvH,EAAAmQ,KAAA7J,MAAAtG,EAAAmQ,KAAA5J,OAAAvG,EAAAy+G,aAAAz+G,EAAA8qB,SAAAjU,IAAA7W,EAAAu8G,QAAAh6G,EAAAsU,IAAA,GAAA7W,EAAA4zB,OAAA5H,KAAAhsB,EAAAihH,WAAAj1F,KAAAhsB,EAAA8qB,SAAAkB,KAAAhsB,EAAA4zB,OAAA/c,IAAA7W,EAAAihH,WAAApqG,IAAA7W,EAAA8qB,SAAAjU,GAAA,IAAAhL,GAAAxG,KAAA6uC,KAAAl0C,EAAAu8G,QAAAv8G,EAAA4zB,OAAA5H,KAAAxkB,EAAAwkB,KAAAhsB,EAAA4zB,OAAA5H,KAAAxkB,EAAAwkB,MAAAhsB,EAAAggH,SAAA15G,OAAAwF,EAAAzG,KAAA6uC,KAAAl0C,EAAAu8G,QAAAv8G,EAAA4zB,OAAA/c,IAAArP,EAAAqP,IAAA7W,EAAA4zB,OAAA/c,IAAAtU,EAAAsU,KAAA7W,EAAAggH,SAAAz5G,QAAAwF,EAAA/L,EAAA8gH,iBAAAzwG,IAAA,IAAArQ,EAAAw9F,QAAAx5E,SAAA3T,IAAA,GAAA3Q,EAAA,oBAAAc,KAAAR,EAAA8gH,iBAAAn8G,IAAA;AAAAoH,AxDsoBA,GwDtoBArM,IAAAmM,GAAA7L,EAAAihH,WAAAj1F,MAAAngB,EAAA7L,EAAAmQ,KAAA7J,OAAAtG,EAAAihH,WAAA36G,QAAAtG,EAAAmQ,KAAA7J,MAAAtG,EAAAihH,WAAA36G,MAAAuF,EAAAtE,IAAAvH,EAAAmQ,KAAA5J,OAAAvG,EAAAmQ,KAAA7J,MAAAtG,EAAAy+G,cAAA3yG,EAAA9L,EAAAmQ,KAAA5J,QAAAvG,EAAAihH,WAAA16G,SAAAvG,EAAAmQ,KAAA5J,OAAAvG,EAAAihH,WAAA16G,OAAAuF,EAAAvE,IAAAvH,EAAAmQ,KAAA7J,MAAAtG,EAAAmQ,KAAA5J,OAAAvG,EAAAy+G,eAAA7zG,KAAA,SAAArL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAArX,GAAAvC,EAAA8qB,SAAA9qB,EAAA+gH,iBAAAv+G,EAAAxC,EAAAghH,kBAAA75G,EAAAnH,EAAA8gH,iBAAAv5G,EAAAjI,EAAAU,EAAA21D,QAAAnuD,EAAAD,EAAAqsB,SAAAnsB,EAAAF,EAAA+mG,aAAAtuG,EAAAggH,SAAA15G,MAAAuF,EAAAtE,EAAAs1C,cAAA78C,EAAAggH,SAAAz5G,MAAAvG,GAAAu8G,UAAAr8G,EAAAmyB,SAAA,WAAA7xB,KAAA2G,EAAAxC,IAAA,cAAArF,EAAAwL,MAAAnG,KAAAqnB,KAAAxkB,EAAAwkB,KAAAxpB,EAAAwpB,KAAAzpB,EAAAypB,KAAA1lB,MAAAmB,EAAAlB,OAAAsF,IAAA7L,EAAAu8G,UAAAr8G,EAAAmyB,SAAA,SAAA7xB,KAAA2G,EAAAxC,IAAA,cAAArF,EAAAwL,MAAAnG;AAAAqnB,AxDuoBA,KwDvoBAxkB,EAAAwkB,KAAAxpB,EAAAwpB,KAAAzpB,EAAAypB,KAAA1lB,MAAAmB,EAAAlB,OAAAsF,OAAAvM,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,SAAAoI,MAAA,SAAAzL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAAlZ,EAAAV,EAAAmQ,IAAAnQ,GAAA2+G,MAAA3+G,EAAA++G,gBAAAltG,QAAA7R,EAAA2+G,MAAAh6G,KAAAyI,QAAA,IAAArI,QAAA,QAAA+lB,SAAA,WAAAvkB,OAAA7F,EAAA6F,OAAAD,MAAA5F,EAAA4F,MAAAgmB,OAAA,EAAAN,KAAA,EAAAnV,IAAA,IAAAoC,SAAA,sBAAAA,SAAA,gBAAA/Y,GAAAy+G,MAAAz+G,EAAAy+G,MAAA,IAAA3+G,EAAA2+G,MAAA14G,SAAAjG,EAAA21D,SAAAkrD,OAAA,SAAAthH,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,YAAAX,GAAA4Z,OAAA5Z,GAAA2+G,OAAA3+G,EAAA2+G,MAAAh6G,KAAAmmB,SAAA,WAAAvkB,OAAAvG,EAAAmQ,KAAA5J,OAAAD,MAAAtG,EAAAmQ,KAAA7J,SAAAsE,KAAA,SAAArL,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,YAAAX,GAAA4Z,OAAA5Z,GAAA2+G,OAAA3+G,EAAA21D,QAAA31D,EAAA21D,OAAAtlD,IAAA,GAAAvJ,YAAA9G,EAAA2+G,MAAAtuG,IAAA;AxDwoBA,IwDxoBA/Q,EAAA8zG,GAAA/2C,OAAAz5D,IAAA,YAAA,QAAAi+G,OAAA,SAAAthH,EAAAO,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,aAAAT,EAAAF,EAAA4Z,QAAAlZ,EAAAV,EAAAmQ,KAAA5N,EAAAvC,EAAA+/G,aAAAv9G,EAAAxC,EAAA86G,iBAAA3zG,EAAAnH,EAAAq5G,IAAAn5G,GAAA4+G,cAAAv/G,EAAA8gH,QAAAngH,GAAAu5G,KAAA,gBAAAv5G,GAAAu5G,MAAAv5G,EAAAu5G,KAAAv5G,EAAAu5G,MAAAv5G,EAAAu5G,IAAA,IAAAjyG,GAAAnC,KAAA6vE,OAAAx0E,EAAA4F,MAAA/D,EAAA+D,QAAApG,EAAAu5G,KAAA,IAAA,KAAAv5G,EAAAu5G,KAAA,IAAA,GAAAhyG,EAAApC,KAAA6vE,OAAAx0E,EAAA6F,OAAAhE,EAAAgE,SAAArG,EAAAu5G,KAAA,IAAA,KAAAv5G,EAAAu5G,KAAA,IAAA,EAAA,cAAAj5G,KAAA2G,IAAAnH,EAAAmQ,KAAA7J,MAAA/D,EAAA+D,MAAAkB,EAAAxH,EAAAmQ,KAAA5J,OAAAhE,EAAAgE,OAAAkB,GAAA,SAAAjH,KAAA2G,IAAAnH,EAAAmQ,KAAA7J,MAAA/D,EAAA+D,MAAAkB,EAAAxH,EAAAmQ,KAAA5J,OAAAhE,EAAAgE,OAAAkB,EAAAzH,EAAA8qB,SAAAjU,IAAArU,EAAAqU,IAAApP,GAAA,SAAAjH,KAAA2G,IAAAnH,EAAAmQ,KAAA7J,MAAA/D,EAAA+D,MAAAkB,EAAAxH,EAAAmQ,KAAA5J,OAAAhE,EAAAgE,OAAAkB,EAAAzH,EAAA8qB,SAAAkB,KAAAxpB,EAAAwpB,KAAAxkB,IAAAxH,EAAAmQ,KAAA7J,MAAA/D,EAAA+D,MAAAkB,EAAAxH,EAAAmQ,KAAA5J,OAAAhE,EAAAgE,OAAAkB;AAAAzH,AxDyoBA,EwDzoBA8qB,SAAAjU,IAAArU,EAAAqU,IAAApP,EAAAzH,EAAA8qB,SAAAkB,KAAAxpB,EAAAwpB,KAAAxkB,KAAA,IAAA1H,GAAA,SAAAR,GAAA,MAAAyb,UAAAzb,EAAA,KAAA,GAAAU,EAAA,SAAAV,GAAA,OAAAkS,MAAAuJ,SAAAzb,EAAA,OAAAqO,QAIA,SAAArO,EAAAC,GAAAD,EAAA+2G,OAAA,gBAAA/2G,EAAA8zG,GAAA+F,OAAAv/F,SAAA3T,SAAA,OAAAk7G,aAAA,EAAAjK,SAAA,EAAA11G,OAAA,IAAA+7G,UAAA,SAAA9lD,QAAA,WAAA,GAAAl4D,GAAAuL,IAAAA,MAAA0yF,QAAAvkF,SAAA,iBAAAnO,KAAAs2G,SAAA,CAAA,IAAAthH,EAAAgL,MAAAu2G,QAAA,WAAAvhH,EAAAR,EAAAC,EAAAqa,QAAApY,OAAAjC,EAAAi+F,QAAA,IAAA19F,EAAAmZ,SAAA,eAAAnZ,EAAAH,KAAA,WAAA,GAAAJ,GAAAD,EAAAwL,MAAAhL,EAAAP,EAAAq0B,QAAAt0B,GAAAqB,KAAAmK,KAAA,mBAAA0yF,QAAA1yF,KAAA6xC,SAAAp9C,EAAAysB,KAAAlsB,EAAAksB,KAAAnV,IAAA/W,EAAA+W,IAAAy8B,MAAAxzC,EAAAksB,KAAAzsB,EAAA+uG,aAAAwN,OAAAh8G,EAAA+W,IAAAtX,EAAAs9C,cAAAykE,eAAA,EAAA19G,SAAArE,EAAA6Z,SAAA;AAAAmoG,AxDsoBA,UwDtoBAhiH,EAAA6Z,SAAA,gBAAAooG,YAAAjiH,EAAA6Z,SAAA,uBAAAtO,KAAAu2G,UAAAv2G,KAAA22G,UAAA3hH,EAAAmZ,SAAA,eAAAnO,KAAAqsG,aAAArsG,KAAA6qD,OAAAr2D,EAAA,6CAAAk6C,QAAA,WAAA,MAAA1uC,MAAA22G,UAAAvoG,YAAA,eAAApM,WAAA,mBAAAhC,KAAA0yF,QAAAtkF,YAAA,wCAAApM,WAAA,cAAAiU,OAAA,eAAAjW,KAAAusG,gBAAAvsG,MAAAktG,YAAA,SAAAz4G,GAAA,GAAAO,GAAAgL,IAAA,IAAAA,KAAA42G,MAAAniH,EAAAof,MAAApf,EAAAwf,QAAAjU,KAAA8O,QAAAhG,SAAA,CAAA,GAAA5T,GAAA8K,KAAA8O,OAAA9O,MAAA22G,UAAAniH,EAAAU,EAAAwB,OAAAsJ,KAAA0yF,QAAA,IAAA1yF,KAAAsvD,SAAA,QAAA76D,GAAAD,EAAAU,EAAAiG,UAAAyiB,OAAA5d,KAAA6qD,QAAA7qD,KAAA6qD,OAAAhxD;AAAAqnB,AxDuoBA,KwDvoBAzsB,EAAAqf,QAAA/H,IAAAtX,EAAAyf,QAAA1Y,MAAA,EAAAC,OAAA,IAAAvG,EAAAmhH,aAAAr2G,KAAAu2G,UAAAv2G,KAAA22G,UAAAjgH,OAAA,gBAAA7B,KAAA,WAAA,GAAAK,GAAAV,EAAAqB,KAAAmK,KAAA,kBAAA9K,GAAAshH,eAAA,GAAA/hH,EAAA+f,UAAA/f,EAAAoiH,UAAA3hH,EAAA28C,SAAAzjC,YAAA,eAAAlZ,EAAA4D,UAAA,EAAA5D,EAAA28C,SAAA1jC,SAAA,kBAAAjZ,EAAAwhH,aAAA,EAAA1hH,EAAAs6D,SAAA,cAAA76D,GAAAiiH,YAAAxhH,EAAAw9F,aAAAl+F,EAAAC,EAAA6d,QAAAqJ,UAAAD,UAAA7mB,KAAA,WAAA,GAAAK,GAAAV,EAAAqB,KAAAmK,KAAA,kBAAA,IAAA9K,EAAA,CAAA,GAAAE,IAAAX,EAAA+f,UAAA/f,EAAAoiH,UAAA3hH,EAAA28C,SAAAvjC,SAAA,cAAA,OAAApZ,GAAA28C,SAAAzjC,YAAAhZ,EAAA,iBAAA,eAAA+Y,SAAA/Y,EAAA,eAAA,kBAAAF,EAAAwhH,aAAAthH,EAAAF,EAAAuhH,UAAArhH;AAAAF,AxDwoBA,EwDxoBA4D,SAAA1D,EAAAA,EAAAJ,EAAAs6D,SAAA,YAAA76D,GAAAgiH,UAAAvhH,EAAAw9F,UAAA19F,EAAAs6D,SAAA,cAAA76D,GAAAiiH,YAAAxhH,EAAAw9F,WAAA,OAAA2a,WAAA,SAAA54G,GAAA,GAAAO,GAAAgL,IAAA,IAAAA,KAAAs2G,SAAA,GAAAt2G,KAAA8O,QAAAhG,SAAA,CAAA,GAAA5T,GAAA8K,KAAA8O,QAAA1Z,EAAA4K,KAAA42G,KAAA,GAAAhhH,EAAAoK,KAAA42G,KAAA,GAAAn/G,EAAAhD,EAAAof,MAAAnc,EAAAjD,EAAAwf,KAAA,IAAA7e,EAAAqC,EAAA,CAAA,GAAA4E,GAAA5E,CAAAA,GAAArC,EAAAA,EAAAiH,EAAA,GAAAzG,EAAA8B,EAAA,CAAA,GAAA2E,GAAA3E,CAAAA,GAAA9B,EAAAA,EAAAyG,EAAA,MAAA2D,MAAA6qD,OAAAhxD,KAAAqnB,KAAA9rB,EAAA2W,IAAAnW,EAAA4F,MAAA/D,EAAArC,EAAAqG,OAAA/D,EAAA9B,IAAAoK,KAAA22G,UAAA9hH,KAAA,WAAA,GAAAwH,GAAA7H,EAAAqB,KAAAmK,KAAA,kBAAA,IAAA3D,GAAAA,EAAAq2F,SAAA19F,EAAA09F,QAAA,GAAA,CAAA,GAAAj2F,IAAA,CAAA,UAAAvH,EAAAu9G,UAAAh2G,IAAAJ,EAAA6kB,KAAAzpB,GAAA4E,EAAAmsC,MAAApzC,GAAAiH,EAAA0P,IAAArU,GAAA2E,EAAA20G,OAAAp7G,GAAA,OAAAV,EAAAu9G,YAAAh2G,EAAAJ,EAAA6kB,KAAA9rB,GAAAiH,EAAAmsC,MAAA/wC,GAAA4E,EAAA0P,IAAAnW,GAAAyG,EAAA20G,OAAAt5G,GAAA+E,GAAAJ,EAAAvD,WAAAuD,EAAAw1C,SAAAzjC,YAAA;AAAA/R,AxDyoBA,EwDzoBAvD,UAAA,GAAAuD,EAAAq6G,cAAAr6G,EAAAw1C,SAAAzjC,YAAA,kBAAA/R,EAAAq6G,aAAA,GAAAr6G,EAAAo6G,YAAAp6G,EAAAw1C,SAAA1jC,SAAA,gBAAA9R,EAAAo6G,WAAA,EAAAzhH,EAAAs6D,SAAA,YAAA76D,GAAAgiH,UAAAp6G,EAAAq2F,aAAAr2F,EAAAo6G,aAAAhiH,EAAA+f,SAAA/f,EAAAoiH,UAAAx6G,EAAAm6G,eAAAn6G,EAAAw1C,SAAAzjC,YAAA,gBAAA/R,EAAAo6G,WAAA,EAAAp6G,EAAAw1C,SAAA1jC,SAAA,eAAA9R,EAAAvD,UAAA,IAAAuD,EAAAw1C,SAAAzjC,YAAA,gBAAA/R,EAAAo6G,WAAA,EAAAp6G,EAAAm6G,gBAAAn6G,EAAAw1C,SAAA1jC,SAAA,kBAAA9R,EAAAq6G,aAAA,GAAA1hH,EAAAs6D,SAAA,cAAA76D,GAAAiiH,YAAAr6G,EAAAq2F,YAAAr2F,EAAAvD,WAAArE,EAAA+f,UAAA/f,EAAAoiH,UAAAx6G,EAAAm6G,gBAAAn6G,EAAAw1C,SAAAzjC,YAAA,eAAA/R,EAAAvD,UAAA,EAAAuD,EAAAw1C,SAAA1jC,SAAA;AAAA9R,AxD0oBA,EwD1oBAq6G,aAAA,EAAA1hH,EAAAs6D,SAAA,cAAA76D,GAAAiiH,YAAAr6G,EAAAq2F,gBAAA,IAAA4a,WAAA,SAAA74G,GAAA,GAAAO,GAAAgL,IAAAA,MAAAs2G,SAAA,CAAAt2G,MAAA8O,OAAA,OAAAta,GAAA,kBAAAwL,KAAA0yF,QAAA,IAAA79F,KAAA,WAAA,GAAAK,GAAAV,EAAAqB,KAAAmK,KAAA,kBAAA9K,GAAA28C,SAAAzjC,YAAA,kBAAAlZ,EAAAwhH,aAAA,EAAAxhH,EAAAshH,eAAA,EAAAxhH,EAAAs6D,SAAA,aAAA76D,GAAAqiH,WAAA5hH,EAAAw9F,YAAAl+F,EAAA,gBAAAwL,KAAA0yF,QAAA,IAAA79F,KAAA,WAAA,GAAAK,GAAAV,EAAAqB,KAAAmK,KAAA,kBAAA9K,GAAA28C,SAAAzjC,YAAA,gBAAAD,SAAA,eAAAjZ,EAAAuhH,WAAA,EAAAvhH,EAAA4D,UAAA,EAAA5D,EAAAshH,eAAA,EAAAxhH,EAAAs6D,SAAA,WAAA76D,GAAAqE,SAAA5D,EAAAw9F,YAAA1yF,KAAAsvD,SAAA,OAAA76D,GAAAuL,KAAA6qD,OAAAxvD,UAAA,KAAA7G,EAAAuD,OAAAvD,EAAA8zG,GAAAyO;AAAA33F,AxD2oBA,QwD3oBA,YAAAvc,QAIA,SAAArO,EAAAC,GAAAD,EAAA+2G,OAAA,cAAA/2G,EAAA8zG,GAAA+F,OAAA1C,kBAAA,OAAAtnG,OAAA,EAAAyK,SAAA3T,SAAA,SAAAozG,MAAA,EAAAyI,aAAA,EAAAvI,aAAA,EAAAzzC,OAAA,OAAA0zC,UAAA,EAAAuI,aAAA,EAAAC,sBAAA,EAAAC,iBAAA,EAAAxI,MAAA,EAAA/2G,QAAA,EAAAizD,OAAA,WAAAwhC,MAAA,MAAA/pF,SAAA,EAAAoxF,aAAA,EAAAob,QAAA,EAAAE,QAAA,EAAAC,kBAAA,GAAAC,YAAA,GAAAp7C,MAAA,UAAA2+C,UAAA,YAAA9xF,OAAA,KAAAgsC,QAAA,WAAA,GAAAn4D,GAAAwL,KAAA8O,OAAA9O,MAAA4xG,kBAAA5xG,KAAA0yF,QAAAvkF,SAAA,eAAAnO,KAAAu2G,UAAAv2G,KAAAo3G,SAAAp3G,KAAAqsF,MAAAr1F,OAAA,MAAAxC,EAAA+5G,MAAA,aAAA74G,KAAAsK,KAAAqsF,MAAA,GAAA/hD,KAAAzwC,IAAA,WAAA,oBAAAnE,KAAAsK,KAAAqsF,MAAA,GAAA/hD,KAAAzwC,IAAA,aAAA;AAAAmG,AxDwoBA,KwDxoBA8oB,OAAA9oB,KAAA0yF,QAAA5pE,SAAA9oB,KAAAqsG,aAAArsG,KAAAqE,OAAA,GAAAqqC,QAAA,WAAAl6C,EAAAg3G,OAAArpG,UAAAusC,QAAAl4C,KAAAwJ,MAAAA,KAAA0yF,QAAAtkF,YAAA,oCAAApO,KAAAusG,eAAA,KAAA,GAAA93G,GAAAuL,KAAAqsF,MAAAr1F,OAAA,EAAAvC,GAAA,EAAAA,IAAAuL,KAAAqsF,MAAA53F,GAAA61C,KAAAtoC,WAAAhC,KAAA0rG,WAAA,QAAA,OAAA1rG,OAAAisG,WAAA,SAAAx3G,EAAAO,GAAA,aAAAP,GAAAuL,KAAA8O,QAAAra,GAAAO,EAAAgL,KAAAurG,SAAAv2G,EAAA,WAAA,eAAA,yBAAAR,EAAAg3G,OAAArpG,UAAA8pG,WAAApmG,MAAA7F,KAAA8F,YAAA+mG,cAAA,SAAAp4G,EAAAO,GAAA,GAAAE,GAAA8K,IAAA,IAAAA,KAAAq3G,UAAA,OAAA,CAAA,IAAAr3G,KAAA8O,QAAAhG,UAAA,UAAA9I,KAAA8O,QAAApW,KAAA,OAAA,CAAAsH,MAAAs3G,cAAA7iH,EAAA,IAAAW,GAAA,KAAAQ,EAAAoK,IAAAxL,GAAAC,EAAA6d,QAAAqJ,UAAA9mB,KAAA;AAAA,AxDyoBA,MwDzoBAL,GAAAqB,KAAAmK,KAAA9K,EAAAw2G,WAAA,UAAA91G,GAAAR,EAAAZ,EAAAwL,OAAA,GAAA,QAAA,IAAAxL,EAAAqB,KAAApB,EAAA6d,OAAApd,EAAAw2G,WAAA,UAAA91G,IAAAR,EAAAZ,EAAAC,EAAA6d,UAAAld,EAAA,OAAA,CAAA,IAAA4K,KAAA8O,QAAAlX,SAAA5C,EAAA,CAAA,GAAA0C,IAAA,CAAA,IAAAlD,EAAAwL,KAAA8O,QAAAlX,OAAAxC,GAAA6P,KAAA,KAAAyW,UAAA7mB,KAAA,WAAAmL,MAAAvL,EAAA6d,SAAA5a,GAAA,MAAAA,EAAA,OAAA,EAAA,MAAAsI,MAAA0xG,YAAAt8G,EAAA4K,KAAAu3G,4BAAA,GAAArK,YAAA,SAAAz4G,EAAAO,EAAAE,GAAA,GAAAE,GAAA4K,KAAA8O,QAAAlZ,EAAAoK,IAAA,IAAAA,KAAAw3G,iBAAAx3G,KAAAA,KAAA6uG,mBAAA7uG,KAAA6qD,OAAA7qD,KAAAuvG,cAAA96G,GAAAuL,KAAAwvG,0BAAAxvG,KAAA0vG,gBAAA1vG,KAAAyqG,aAAAzqG,KAAA6qD,OAAA4/C,eAAAzqG,KAAA8oB,OAAA9oB,KAAA0xG,YAAA5oF,SAAA9oB,KAAA8oB,QAAA/c,IAAA/L,KAAA8oB,OAAA/c,IAAA/L,KAAA6vG,QAAA9jG;AAAAmV,AxD0oBA,KwD1oBAlhB,KAAA8oB,OAAA5H,KAAAlhB,KAAA6vG,QAAA3uF,MAAA1sB,EAAAuD,OAAAiI,KAAA8oB,QAAAvS,OAAA2K,KAAAzsB,EAAAof,MAAA7T,KAAA8oB,OAAA5H,KAAAnV,IAAAtX,EAAAwf,MAAAjU,KAAA8oB,OAAA/c,KAAAmN,OAAAlZ,KAAA8vG,mBAAAx4F,SAAAtX,KAAA+vG,uBAAA/vG,KAAA6qD,OAAAhxD,IAAA,WAAA,YAAAmG,KAAA2vG,YAAA3vG,KAAA6qD,OAAAhxD,IAAA,YAAAmG,KAAAgwG,iBAAAhwG,KAAAiwG,kBAAAx7G,GAAAuL,KAAAkwG,cAAAz7G,EAAAof,MAAA7T,KAAAmwG,cAAA17G,EAAAwf,MAAA7e,EAAAs5G,UAAA1uG,KAAAowG,wBAAAh7G,EAAAs5G,UAAA1uG,KAAAy3G,aAAAn8F,KAAAtb,KAAA0xG,YAAAp2F,OAAA,GAAApC,OAAAlZ,KAAA0xG,YAAAx4F,SAAA,IAAAlZ,KAAA6qD,OAAA,IAAA7qD,KAAA0xG,YAAA,IAAA1xG,KAAA0xG,YAAA3vG,OAAA/B,KAAA03G,qBAAAtiH,EAAAq5G,aAAAzuG,KAAAqwG,kBAAAj7G,EAAA4lE,SAAAxmE,EAAA,QAAAqF,IAAA,YAAAmG,KAAA23G,cAAAnjH,EAAA,QAAAqF,IAAA;AAAArF,AxD2oBA,EwD3oBA,QAAAqF,IAAA,SAAAzE,EAAA4lE,SAAA5lE,EAAAkN,UAAAtC,KAAA6qD,OAAAhxD,IAAA,aAAAmG,KAAA43G,eAAA53G,KAAA6qD,OAAAhxD,IAAA,YAAAmG,KAAA6qD,OAAAhxD,IAAA,UAAAzE,EAAAkN,UAAAlN,EAAAurB,SAAA3gB,KAAA6qD,OAAAhxD,IAAA,YAAAmG,KAAA63G,cAAA73G,KAAA6qD,OAAAhxD,IAAA,WAAAmG,KAAA6qD,OAAAhxD,IAAA,SAAAzE,EAAAurB,SAAA3gB,KAAAyqG,aAAA,IAAA5uG,UAAA,QAAAmE,KAAAyqG,aAAA,GAAAwG,UAAAjxG,KAAAgyG,eAAAhyG,KAAAyqG,aAAA3hF,UAAA9oB,KAAAsvD,SAAA,QAAA76D,EAAAuL,KAAA2wG,WAAA3wG,KAAA83G,4BAAA93G,KAAAwvG,2BAAAt6G,EAAA,IAAA,GAAAuC,GAAAuI,KAAA+3G,WAAA/gH,OAAA,EAAAS,GAAA,EAAAA,IAAAuI,KAAA+3G,WAAAtgH,GAAA63D,SAAA,WAAA76D,EAAAmB,EAAA+6G,QAAA3wG,MAAA,OAAAxL,GAAA8zG,GAAAmH,YAAAj7G,EAAA8zG,GAAAmH,UAAAzmD,QAAAhpD,MAAAxL,EAAA8zG,GAAAmH,YAAAr6G,EAAAm7G,eAAA/7G,EAAA8zG,GAAAmH,UAAAe,eAAAxwG,KAAAvL;AAAAuL,AxD4oBA,KwD5oBAg4G,UAAA,EAAAh4G,KAAA6qD,OAAA18C,SAAA,sBAAAnO,KAAAqtG,WAAA54G,IAAA,GAAA44G,WAAA,SAAA54G,GAAA,GAAAuL,KAAAggB,SAAAhgB,KAAAiwG,kBAAAx7G,GAAAuL,KAAA4vG,YAAA5vG,KAAA0wG,mBAAA,YAAA1wG,KAAAi4G,kBAAAj4G,KAAAi4G,gBAAAj4G,KAAA4vG,aAAA5vG,KAAA8O,QAAAkgG,OAAA,CAAA,GAAAh6G,GAAAgL,KAAA8O,QAAA5Z,GAAA,CAAA8K,MAAAyqG,aAAA,IAAA5uG,UAAA,QAAAmE,KAAAyqG,aAAA,GAAAwG,SAAAjxG,KAAAgyG,eAAAjmG,IAAA/L,KAAAyqG,aAAA,GAAA3vG,aAAArG,EAAAwf,MAAAjf,EAAAi6G,kBAAAjvG,KAAAyqG,aAAA,GAAAt2F,UAAAjf,EAAA8K,KAAAyqG,aAAA,GAAAt2F,UAAAnf,EAAAk6G,YAAAz6G,EAAAwf,MAAAjU,KAAAgyG,eAAAjmG,IAAA/W,EAAAi6G,oBAAAjvG,KAAAyqG,aAAA,GAAAt2F,UAAAjf,EAAA8K,KAAAyqG,aAAA,GAAAt2F,UAAAnf,EAAAk6G;AAAAlvG,AxD6oBA,KwD7oBAgyG,eAAA9wF,KAAAlhB,KAAAyqG,aAAA,GAAA5vG,YAAApG,EAAAof,MAAA7e,EAAAi6G,kBAAAjvG,KAAAyqG,aAAA,GAAA12F,WAAA7e,EAAA8K,KAAAyqG,aAAA,GAAA12F,WAAA/e,EAAAk6G,YAAAz6G,EAAAof,MAAA7T,KAAAgyG,eAAA9wF,KAAAlsB,EAAAi6G,oBAAAjvG,KAAAyqG,aAAA,GAAA12F,WAAA7e,EAAA8K,KAAAyqG,aAAA,GAAA12F,WAAA/e,EAAAk6G,eAAAz6G,EAAAwf,MAAAzf,EAAAqH,UAAAsY,YAAAnf,EAAAi6G,kBAAA/5G,EAAAV,EAAAqH,UAAAsY,UAAA3f,EAAAqH,UAAAsY,YAAAnf,EAAAk6G,aAAA16G,EAAAgS,QAAA/K,UAAAhH,EAAAwf,MAAAzf,EAAAqH,UAAAsY,aAAAnf,EAAAi6G,oBAAA/5G,EAAAV,EAAAqH,UAAAsY,UAAA3f,EAAAqH,UAAAsY,YAAAnf,EAAAk6G,cAAAz6G,EAAAof,MAAArf,EAAAqH,UAAAkY,aAAA/e,EAAAi6G,kBAAA/5G,EAAAV,EAAAqH,UAAAkY,WAAAvf,EAAAqH,UAAAkY,aAAA/e,EAAAk6G,aAAA16G,EAAAgS,QAAAhL,SAAA/G,EAAAof,MAAArf,EAAAqH,UAAAkY,cAAA/e,EAAAi6G,oBAAA/5G,EAAAV,EAAAqH,UAAAkY,WAAAvf,EAAAqH,UAAAkY,aAAA/e,EAAAk6G;AAAAh6G,AxD8oBA,KwD9oBA,GAAAV,EAAA8zG,GAAAmH,YAAAz6G,EAAAu7G,eAAA/7G,EAAA8zG,GAAAmH,UAAAe,eAAAxwG,KAAAvL,GAAAuL,KAAA4vG,YAAA5vG,KAAA0wG,mBAAA,YAAA1wG,KAAA8O,QAAAy/F,MAAA,KAAAvuG,KAAA8O,QAAAy/F,OAAAvuG,KAAA6qD,OAAA,GAAA7wD,MAAAknB,KAAAlhB,KAAAggB,SAAAkB,KAAA,MAAAlhB,KAAA8O,QAAAy/F,MAAA,KAAAvuG,KAAA8O,QAAAy/F,OAAAvuG,KAAA6qD,OAAA,GAAA7wD,MAAA+R,IAAA/L,KAAAggB,SAAAjU,IAAA,KAAA,KAAA,GAAA3W,GAAA4K,KAAAqsF,MAAAr1F,OAAA,EAAA5B,GAAA,EAAAA,IAAA,CAAA,GAAAQ,GAAAoK,KAAAqsF,MAAAj3F,GAAAqC,EAAA7B,EAAA00C,KAAA,GAAA5yC,EAAAsI,KAAAk4G,uBAAAtiH,EAAA,IAAA8B,GAAAD,GAAAuI,KAAA0xG,YAAA,IAAA1xG,KAAA0zF,YAAA,GAAAh8F,EAAA,OAAA,UAAA,IAAAD,IAAAjD,EAAA8zG,GAAAxuG,SAAAkG,KAAA0zF,YAAA,GAAAj8F,KAAA,gBAAAuI,KAAA8O,QAAApW,MAAAlE,EAAA8zG,GAAAxuG,SAAAkG,KAAA0yF,QAAA,GAAAj7F,IAAA,GAAA,CAAA,GAAAuI,KAAAwnG,UAAA,GAAA9vG,EAAA,OAAA,KAAA,WAAAsI,KAAA8O,QAAA2jG,YAAAzyG,KAAAm4G,qBAAAviH,GAAA;AAAAoK,AxD+oBA,KwD/oBAo4G,WAAA3jH,EAAAmB,GAAAoK,KAAAsvD,SAAA,SAAA76D,EAAAuL,KAAA2wG,UAAA,QAAA,MAAA3wG,MAAAq4G,mBAAA5jH,GAAAD,EAAA8zG,GAAAmH,WAAAj7G,EAAA8zG,GAAAmH,UAAAmB,KAAA5wG,KAAAvL,GAAAuL,KAAAsvD,SAAA,OAAA76D,EAAAuL,KAAA2wG,WAAA3wG,KAAAi4G,gBAAAj4G,KAAA4vG,aAAA,GAAAtC,WAAA,SAAA74G,EAAAO,GAAA,GAAAP,EAAA,CAAA,GAAAD,EAAA8zG,GAAAmH,YAAAzvG,KAAA8O,QAAAyhG,eAAA/7G,EAAA8zG,GAAAmH,UAAAp4E,KAAAr3B,KAAAvL,GAAAuL,KAAA8O,QAAAggG,OAAA,CAAA,GAAA55G,GAAA8K,KAAA5K,EAAAF,EAAAw+F,YAAA5qE,QAAA5zB,GAAAmiH,WAAA,EAAA7iH,EAAAwL,KAAA6qD,QAAAtjC,SAAArG,KAAA9rB,EAAA8rB,KAAAlhB,KAAA8oB,OAAA5P,OAAAgI,KAAAhsB,EAAA26G,QAAA3uF,MAAAlhB,KAAAspB,aAAA,IAAAztB,SAAAT,KAAA,EAAA4E,KAAAspB,aAAA,GAAAvV,YAAAhI,IAAA3W,EAAA2W,IAAA/L,KAAA8oB,OAAA5P,OAAAnN,IAAA7W,EAAA26G,QAAA9jG,KAAA/L,KAAAspB,aAAA,IAAAztB,SAAAT,KAAA,EAAA4E,KAAAspB,aAAA,GAAAnV;AxDgpBA,EwDhpBAlE,SAAAjQ,KAAA8O,QAAAggG,OAAA,KAAA,IAAA,WAAA55G,EAAAo7G,OAAA77G,SAAAuL,MAAAswG,OAAA77G,EAAAO,EAAA,QAAA,IAAAm3G,OAAA,WAAA,GAAA13G,GAAAuL,IAAA,IAAAA,KAAAg4G,SAAA,CAAAh4G,KAAA2sG,UAAAr6F,OAAA,OAAA,YAAAtS,KAAA8O,QAAA+7C,OAAA7qD,KAAA0xG,YAAA73G,IAAAmG,KAAAs4G,YAAAlqG,YAAA,sBAAApO,KAAA0xG,YAAA5vG,MAAA,KAAA,GAAA9M,GAAAgL,KAAA+3G,WAAA/gH,OAAA,EAAAhC,GAAA,EAAAA,IAAAgL,KAAA+3G,WAAA/iH,GAAAs6D,SAAA,aAAA,KAAA76D,EAAAk8G,QAAA3wG,OAAAA,KAAA+3G,WAAA/iH,GAAA48G,eAAA2G,OAAAv4G,KAAA+3G,WAAA/iH,GAAAs6D,SAAA,MAAA,KAAA76D,EAAAk8G,QAAA3wG,OAAAA,KAAA+3G,WAAA/iH,GAAA48G,eAAA2G,KAAA,GAAA,MAAAv4G,MAAA0zF,cAAA1zF,KAAA0zF,YAAA,GAAAv9F,YAAA6J,KAAA0zF,YAAA,GAAAv9F,WAAA6F,YAAAgE,KAAA0zF,YAAA;AAAA,AxDipBA,YwDjpBA1zF,KAAA8O,QAAA+7C,QAAA7qD,KAAA6qD,QAAA7qD,KAAA6qD,OAAA,GAAA10D,YAAA6J,KAAA6qD,OAAAxvD,SAAA7G,EAAAuD,OAAAiI,MAAA6qD,OAAA,KAAAmtD,UAAA,EAAAX,WAAA,EAAAmB,aAAA,OAAAx4G,KAAAy3G,YAAAn8F,KAAA9mB,EAAAwL,KAAAy3G,YAAAn8F,MAAAiD,MAAAve,KAAA0xG,aAAAl9G,EAAAwL,KAAAy3G,YAAAv+F,QAAAkF,QAAApe,KAAA0xG,cAAA1xG,MAAA+hB,UAAA,SAAAttB,GAAA,GAAAO,GAAAgL,KAAAy4G,kBAAAhkH,GAAAA,EAAAikH,WAAAxjH,IAAA,OAAAT,GAAAA,MAAAD,EAAAQ,GAAAH,KAAA,WAAA,GAAAG,IAAAR,EAAAC,EAAA61C,MAAAtqC,MAAA6E,KAAApQ,EAAAy+C,WAAA,OAAA,IAAAl8B,MAAAviB,EAAAkkH,YAAA,gBAAA3jH,IAAAE,EAAA2K,MAAApL,EAAA42C,KAAAr2C,EAAA,GAAA,MAAA,KAAAP,EAAA42C,KAAA52C,EAAAkkH,WAAA3jH,EAAA,GAAAA,EAAA,QAAAE,EAAA8B,QAAAvC,EAAA42C,KAAAn2C,EAAA2K,KAAApL,EAAA42C,IAAA,KAAAn2C,EAAA6Q,KAAA,MAAAT,QAAA,SAAA7Q,GAAA,GAAAO,GAAAgL,KAAAy4G,kBAAAhkH,GAAAA,EAAAikH,WAAAxjH;AAAA,AxDkpBA,MwDlpBAT,GAAAA,MAAAO,EAAAH,KAAA,WAAAK,EAAA2K,KAAArL,EAAAC,EAAA61C,MAAAtqC,MAAA6E,KAAApQ,EAAAy+C,WAAA,OAAA,MAAAh+C,GAAAy8G,gBAAA,SAAAn9G,GAAA,GAAAC,GAAAuL,KAAA4vG,YAAA1uF,KAAAlsB,EAAAP,EAAAuL,KAAA+wG,kBAAAv1G,MAAAtG,EAAA8K,KAAA4vG,YAAA7jG,IAAA3W,EAAAF,EAAA8K,KAAA+wG,kBAAAt1G,OAAA7F,EAAApB,EAAA0sB,KAAAzpB,EAAA7B,EAAApB,EAAAgH,MAAA9D,EAAAlD,EAAAuX,IAAA1P,EAAA3E,EAAAlD,EAAAiH,OAAAgB,EAAAuD,KAAA8oB,OAAAvS,MAAAxK,IAAArP,EAAAsD,KAAA8oB,OAAAvS,MAAA2K,KAAAvkB,EAAAzH,EAAAuH,EAAA/E,GAAA2E,EAAAnH,EAAAuH,GAAAhI,EAAAiI,EAAA9G,GAAA6B,EAAAhD,EAAAiI,CAAA,OAAA,WAAAsD,KAAA8O,QAAA2jG,WAAAzyG,KAAA8O,QAAA8pG,2BAAA,WAAA54G,KAAA8O,QAAA2jG,WAAAzyG,KAAA+wG,kBAAA/wG,KAAAo3G,SAAA,QAAA,UAAA5iH,EAAAwL,KAAAo3G,SAAA,QAAA,UAAAz6G,EAAA/G,EAAAnB,EAAAuL,KAAA+wG,kBAAAv1G,MAAA,GAAAxG,EAAAgL,KAAA+wG,kBAAAv1G,MAAA,EAAA/D,GAAAC,EAAAxC,EAAA8K,KAAA+wG,kBAAAt1G,OAAA,GAAArG,EAAA4K,KAAA+wG,kBAAAt1G,OAAA,EAAAY;AxDmpBA,EwDnpBA67G,uBAAA,SAAAzjH,GAAA,GAAAO,GAAA,MAAAgL,KAAA8O,QAAAy/F,MAAA/5G,EAAA8zG,GAAA+C,WAAArrG,KAAA4vG,YAAA7jG,IAAA/L,KAAA8oB,OAAAvS,MAAAxK,IAAAtX,EAAAsX,IAAAtX,EAAAgH,QAAAvG,EAAA,MAAA8K,KAAA8O,QAAAy/F,MAAA/5G,EAAA8zG,GAAA+C,WAAArrG,KAAA4vG,YAAA1uF,KAAAlhB,KAAA8oB,OAAAvS,MAAA2K,KAAAzsB,EAAAysB,KAAAzsB,EAAA+G,OAAApG,EAAAJ,GAAAE,EAAAU,EAAAoK,KAAA64G,4BAAAphH,EAAAuI,KAAA84G,6BAAA,OAAA1jH,GAAA4K,KAAAo3G,SAAA3/G,GAAA,SAAAA,GAAA,QAAA7B,EAAA,EAAA,EAAAA,IAAA,QAAAA,EAAA,EAAA,IAAA,GAAAuiH,qBAAA,SAAA1jH,GAAA,GAAAO,GAAAR,EAAA8zG,GAAA+C,WAAArrG,KAAA4vG,YAAA7jG,IAAA/L,KAAA8oB,OAAAvS,MAAAxK,IAAAtX,EAAAsX,IAAAtX,EAAAgH,OAAA,EAAAhH,EAAAgH,QAAAvG,EAAAV,EAAA8zG,GAAA+C,WAAArrG,KAAA4vG,YAAA1uF,KAAAlhB,KAAA8oB,OAAAvS,MAAA2K,KAAAzsB,EAAAysB,KAAAzsB,EAAA+G,MAAA,EAAA/G,EAAA+G,OAAApG,EAAA4K,KAAA64G,4BAAAjjH,EAAAoK,KAAA84G;AAAA,AxDopBA,MwDppBA94G,MAAAo3G,UAAAxhH,EAAA,SAAAA,GAAAV,GAAA,QAAAU,IAAAV,EAAAE,IAAA,QAAAA,GAAAJ,GAAA,MAAAI,IAAAJ,IAAA6jH,0BAAA,WAAA,GAAArkH,GAAAwL,KAAA4vG,YAAA7jG,IAAA/L,KAAAi4G,gBAAAlsG,GAAA,OAAA,IAAAvX,IAAAA,EAAA,EAAA,OAAA,OAAAskH,4BAAA,WAAA,GAAAtkH,GAAAwL,KAAA4vG,YAAA1uF,KAAAlhB,KAAAi4G,gBAAA/2F,IAAA,OAAA,IAAA1sB,IAAAA,EAAA,EAAA,QAAA,SAAA+hH,QAAA,SAAA/hH,GAAA,MAAAwL,MAAAs3G,cAAA9iH,GAAAwL,KAAA6uG,mBAAA7uG,MAAA+4G,aAAA,WAAA,GAAAvkH,GAAAwL,KAAA8O,OAAA,OAAAta,GAAAwiH,YAAAvyG,aAAArB,QAAA5O,EAAAwiH,aAAAxiH,EAAAwiH,aAAAyB,kBAAA,SAAAhkH,GAAA,GAAAS,MAAAE,KAAAQ,EAAAoK,KAAA+4G,cAAA,IAAAnjH,GAAAnB,EAAA,IAAA,GAAAgD,GAAA7B,EAAAoB,OAAA,EAAAS,GAAA,EAAAA,IAAA,IAAA,GAAAC,GAAAlD,EAAAoB,EAAA6B,IAAA4E,EAAA3E,EAAAV,OAAA,EAAAqF,GAAA,EAAAA,IAAA;AAAA,AxDqpBA,GwDrpBAI,GAAAjI,EAAAqB,KAAA6B,EAAA2E,GAAA2D,KAAA0rG,WAAAjvG,IAAAA,GAAAuD,OAAAvD,EAAAqS,QAAAhG,UAAA1T,EAAAyK,MAAArL,EAAA8B,WAAAmG,EAAAqS,QAAAu9E,OAAA5vF,EAAAqS,QAAAu9E,MAAA71F,KAAAiG,EAAAi2F,SAAAl+F,EAAAiI,EAAAqS,QAAAu9E,MAAA5vF,EAAAi2F,SAAA15E,IAAA,uBAAAA,IAAA,4BAAAvc,IAAArH,EAAAyK,MAAArL,EAAA8B,WAAA0J,KAAA8O,QAAAu9E,OAAArsF,KAAA8O,QAAAu9E,MAAA71F,KAAAwJ,KAAA0yF,QAAA,MAAA5jF,QAAA9O,KAAA8O,QAAAw7B,KAAAtqC,KAAA0xG,cAAAl9G,EAAAwL,KAAA8O,QAAAu9E,MAAArsF,KAAA0yF,SAAA15E,IAAA,uBAAAA,IAAA,4BAAAhZ,MAAA,KAAA,GAAAvI,GAAArC,EAAA4B,OAAA,EAAAS,GAAA,EAAAA,IAAArC,EAAAqC,GAAA,GAAA5C,KAAA,WAAAK,EAAA2K,KAAAG,OAAA,OAAAxL,GAAAU,IAAAqiH,yBAAA,WAAA,IAAA,GAAA/iH,GAAAwL,KAAA0xG,YAAAzsG,KAAA,SAAAjF,KAAA0rG,WAAA,UAAAj3G,EAAA,EAAAA,EAAAuL,KAAAqsF,MAAAr1F,OAAAvC,IAAA,IAAA,GAAAO,GAAA,EAAAA,EAAAR,EAAAwC,OAAAhC,IAAAR,EAAAQ,IAAAgL,KAAAqsF,MAAA53F,GAAA61C,KAAA,IAAAtqC,KAAAqsF,MAAA1uF,OAAAlJ,EAAA;AxDspBA,EwDtpBA6iH,cAAA,SAAA7iH,GAAAuL,KAAAqsF,SAAArsF,KAAA+3G,YAAA/3G,KAAA,IAAAhL,GAAAgL,KAAAqsF,MAAAj3F,IAAAZ,EAAA8B,WAAA0J,KAAA8O,QAAAu9E,OAAArsF,KAAA8O,QAAAu9E,MAAA71F,KAAAwJ,KAAA0yF,QAAA,GAAAj+F,GAAA61C,KAAAtqC,KAAA0xG,cAAAl9G,EAAAwL,KAAA8O,QAAAu9E,MAAArsF,KAAA0yF,SAAA1yF,OAAApK,EAAAoK,KAAA+4G,cAAA,IAAAnjH,GAAAoK,KAAAqE,MAAA,IAAA,GAAA5M,GAAA7B,EAAAoB,OAAA,EAAAS,GAAA,EAAAA,IAAA,IAAA,GAAAC,GAAAlD,EAAAoB,EAAA6B,IAAA4E,EAAA3E,EAAAV,OAAA,EAAAqF,GAAA,EAAAA,IAAA,CAAA,GAAAI,GAAAjI,EAAAqB,KAAA6B,EAAA2E,GAAA2D,KAAA0rG,WAAAjvG,IAAAA,GAAAuD,OAAAvD,EAAAqS,QAAAhG,WAAA1T,EAAAyK,MAAArL,EAAA8B,WAAAmG,EAAAqS,QAAAu9E,OAAA5vF,EAAAqS,QAAAu9E,MAAA71F,KAAAiG,EAAAi2F,QAAA,GAAAj+F,GAAA61C,KAAAtqC,KAAA0xG,cAAAl9G,EAAAiI,EAAAqS,QAAAu9E,MAAA5vF,EAAAi2F,SAAAj2F,IAAAuD,KAAA+3G,WAAAl4G,KAAApD,IAAA,IAAA,GAAAhF,GAAArC,EAAA4B,OAAA,EAAAS,GAAA,EAAAA,IAAA,IAAA,GAAAiF,GAAAtH,EAAAqC,GAAA,GAAAkF,EAAAvH,EAAAqC,GAAA,GAAA4E,EAAA,EAAA0E,EAAApE,EAAA3F,OAAA+J,EAAA1E,EAAAA,IAAA,CAAA,GAAA2E,GAAAxM,EAAAmI,EAAAN,GAAA2E,GAAAnL,KAAAmK,KAAA0rG,WAAA,QAAAhvG;AAAA1H,AxDupBA,EwDvpBA6K,MAAAyqC,KAAAtpC,EAAA8zC,SAAAp4C,EAAAlB,MAAA,EAAAC,OAAA,EAAAylB,KAAA,EAAAnV,IAAA,MAAA8iG,iBAAA,SAAAp6G,GAAAuL,KAAAspB,cAAAtpB,KAAA6qD,SAAA7qD,KAAA8oB,OAAA5P,OAAAlZ,KAAA8vG,mBAAA,KAAA,GAAA96G,GAAAgL,KAAAqsF,MAAAr1F,OAAA,EAAAhC,GAAA,EAAAA,IAAA,CAAA,GAAAE,GAAA8K,KAAAqsF,MAAAr3F,EAAA,IAAAE,EAAA4/C,UAAA90C,KAAAw3G,mBAAAx3G,KAAAw3G,kBAAAtiH,EAAAo1C,KAAA,IAAAtqC,KAAA0xG,YAAA,GAAA,CAAA,GAAAt8G,GAAA4K,KAAA8O,QAAAkqG,iBAAAxkH,EAAAwL,KAAA8O,QAAAkqG,iBAAA9jH,EAAAo1C,MAAAp1C,EAAAo1C,IAAA71C,KAAAS,EAAAsG,MAAApG,EAAAouG,aAAAtuG,EAAAuG,OAAArG,EAAA28C,cAAA,IAAAn8C,GAAAR,EAAA0zB,QAAA5zB,GAAAgsB,KAAAtrB,EAAAsrB,KAAAhsB,EAAA6W,IAAAnW,EAAAmW,KAAA,GAAA/L,KAAA8O,QAAAmqG,QAAAj5G,KAAA8O,QAAAmqG,OAAAC,kBAAAl5G,KAAA8O,QAAAmqG,OAAAC,kBAAA1iH,KAAAwJ,UAAA,KAAA,GAAAhL,GAAAgL,KAAA+3G,WAAA/gH,OAAA,EAAAhC,GAAA,EAAAA,IAAA,CAAA,GAAAY,GAAAoK,KAAA+3G,WAAA/iH,GAAA09F,QAAA5pE;AAAA9oB,AxDwpBA,KwDxpBA+3G,WAAA/iH,GAAA48G,eAAA1wF,KAAAtrB,EAAAsrB,KAAAlhB,KAAA+3G,WAAA/iH,GAAA48G,eAAA7lG,IAAAnW,EAAAmW,IAAA/L,KAAA+3G,WAAA/iH,GAAA48G,eAAAp2G,MAAAwE,KAAA+3G,WAAA/iH,GAAA09F,QAAA8Q,aAAAxjG,KAAA+3G,WAAA/iH,GAAA48G,eAAAn2G,OAAAuE,KAAA+3G,WAAA/iH,GAAA09F,QAAA3gD,cAAA,MAAA/xC,OAAA03G,mBAAA,SAAAjjH,GAAA,GAAAO,GAAAP,GAAAuL,KAAA9K,EAAAF,EAAA8Z,OAAA,KAAA5Z,EAAAw+F,aAAAx+F,EAAAw+F,YAAAjvF,aAAArB,OAAA,CAAA,GAAAhO,GAAAF,EAAAw+F,WAAAx+F,GAAAw+F,aAAAhB,QAAA,WAAA,GAAAj+F,GAAAD,EAAAqH,SAAA9E,cAAA/B,EAAA08G,YAAA,GAAAv5G,WAAAgW,SAAA/Y,GAAAJ,EAAA08G,YAAA,GAAAtnG,UAAA,4BAAAgE,YAAA,sBAAA,EAAA,OAAAhZ,KAAAX,EAAAuF,MAAAimB,WAAA,UAAAxrB,GAAA0kH,OAAA,SAAA3kH,EAAAC,KAAAW,GAAAF,EAAAgiH,wBAAAziH,EAAAgH,UAAAhH,EAAAgH,OAAAzG,EAAA08G,YAAA3G,cAAA96F,SAAAjb,EAAA08G,YAAA73G,IAAA,eAAA,EAAA,IAAAoW,SAAAjb,EAAA08G,YAAA73G,IAAA,kBAAA,EAAA;AAAApF,AxDypBA,EwDzpBA+G,SAAA/G,EAAA+G,MAAAxG,EAAA08G,YAAA5G,aAAA76F,SAAAjb,EAAA08G,YAAA73G,IAAA,gBAAA,EAAA,IAAAoW,SAAAjb,EAAA08G,YAAA73G,IAAA,iBAAA,EAAA,QAAA7E,EAAA0+F,YAAAl/F,EAAAU,EAAAw+F,YAAAhB,QAAAl8F,KAAAxB,EAAA09F,QAAA19F,EAAA08G,cAAA18G,EAAA08G,YAAAnzF,MAAAvpB,EAAA0+F,aAAAx+F,EAAAw+F,YAAAylB,OAAAnkH,EAAAA,EAAA0+F,cAAA2kB,mBAAA,SAAA5jH,GAAA,IAAA,GAAAO,GAAA,KAAAE,EAAA,KAAAE,EAAA4K,KAAA+3G,WAAA/gH,OAAA,EAAA5B,GAAA,EAAAA,IAAA,IAAAZ,EAAA8zG,GAAAxuG,SAAAkG,KAAA0xG,YAAA,GAAA1xG,KAAA+3G,WAAA3iH,GAAAs9F,QAAA,IAAA,GAAA1yF,KAAA2xG,gBAAA3xG,KAAA+3G,WAAA3iH,GAAAw8G,gBAAA,CAAA,GAAA58G,GAAAR,EAAA8zG,GAAAxuG,SAAAkG,KAAA+3G,WAAA3iH,GAAAs9F,QAAA,GAAA19F,EAAA09F,QAAA,IAAA,QAAA19F,GAAAgL,KAAA+3G,WAAA3iH,GAAAF,EAAAE,MAAA4K,MAAA+3G,WAAA3iH,GAAAw8G,eAAA2G,OAAAv4G,KAAA+3G,WAAA3iH,GAAAk6D,SAAA,MAAA76D,EAAAuL,KAAA2wG,QAAA3wG;AAAAA,AxD0pBA,KwD1pBA+3G,WAAA3iH,GAAAw8G,eAAA2G,KAAA,EAAA,IAAAvjH,EAAA,GAAA,IAAAgL,KAAA+3G,WAAA/gH,OAAAgJ,KAAA+3G,WAAA7iH,GAAAo6D,SAAA,OAAA76D,EAAAuL,KAAA2wG,QAAA3wG,OAAAA,KAAA+3G,WAAA7iH,GAAA08G,eAAA2G,KAAA,MAAA,IAAAv4G,KAAAw3G,kBAAAx3G,KAAA+3G,WAAA7iH,GAAA,CAAA,IAAA,GAAAU,GAAA,IAAA6B,EAAA,KAAAC,EAAAsI,KAAA4vG,YAAA5vG,KAAA+3G,WAAA7iH,GAAAkiH,SAAA,OAAA,OAAA/6G,EAAA2D,KAAAqsF,MAAAr1F,OAAA,EAAAqF,GAAA,EAAAA,IAAA,GAAA7H,EAAA8zG,GAAAxuG,SAAAkG,KAAA+3G,WAAA7iH,GAAAw9F,QAAA,GAAA1yF,KAAAqsF,MAAAhwF,GAAAiuC,KAAA,IAAA,CAAA,GAAA7tC,GAAAuD,KAAA+3G,WAAA7iH,GAAAkiH,SAAAp3G,KAAAqsF,MAAAhwF,GAAAiuC,KAAAxhB,SAAA5H,KAAAlhB,KAAAqsF,MAAAhwF,GAAAiuC,KAAAxhB,SAAA/c,GAAAxR,MAAA6uC,IAAA3sC,EAAA/E,GAAA9B,IAAAA,EAAA2E,KAAA6uC,IAAA3sC,EAAA/E,GAAAD,EAAAuI,KAAAqsF,MAAAhwF,GAAA2D,KAAAwnG,UAAA/qG,EAAA/E,EAAA,EAAA,OAAA,MAAA,IAAAD,IAAAuI,KAAA8O,QAAAmoG,YAAA,MAAAj3G,MAAAw3G,iBAAAx3G,KAAA+3G,WAAA7iH;AAAAuC,AxD2pBA,EwD3pBAuI,KAAAo4G,WAAA3jH,EAAAgD,EAAA,MAAA,GAAAuI,KAAAo4G,WAAA3jH,EAAA,KAAAuL,KAAA+3G,WAAA7iH,GAAAw9F,SAAA,GAAA1yF,KAAAsvD,SAAA,SAAA76D,EAAAuL,KAAA2wG,WAAA3wG,KAAA+3G,WAAA7iH,GAAAo6D,SAAA,SAAA76D,EAAAuL,KAAA2wG,QAAA3wG,OAAAA,KAAA8O,QAAA4kF,YAAAylB,OAAAn5G,KAAAw3G,iBAAAx3G,KAAA0zF,aAAA1zF,KAAA+3G,WAAA7iH,GAAAo6D,SAAA,OAAA76D,EAAAuL,KAAA2wG,QAAA3wG,OAAAA,KAAA+3G,WAAA7iH,GAAA08G,eAAA2G,KAAA,IAAAhJ,cAAA,SAAA96G,GAAA,GAAAO,GAAAgL,KAAA8O,QAAA5Z,EAAAV,EAAA8B,WAAAtB,EAAA61D,QAAAr2D,EAAAQ,EAAA61D,OAAAhlD,MAAA7F,KAAA0yF,QAAA,IAAAj+F,EAAAuL,KAAA0xG,eAAA,SAAA18G,EAAA61D,OAAA7qD,KAAA0xG,YAAA3qG,QAAA/G,KAAA0xG,WAAA,OAAAx8G,GAAAymB,QAAA,QAAA3kB,QAAAxC,EAAA,UAAAQ,EAAAmG,SAAAnG,EAAAmG,SAAA6E,KAAA0xG,YAAA,GAAAv7G,YAAA,GAAAiB,YAAAlC,EAAA,IAAAA,EAAA,IAAA8K,KAAA0xG,YAAA,KAAA1xG,KAAAs4G;AAAA98G,AxD4pBA,MwD5pBAwE,KAAA0xG,YAAA,GAAA13G,MAAAwB,MAAAC,OAAAuE,KAAA0xG,YAAA,GAAA13G,MAAAyB,OAAAukB,SAAAhgB,KAAA0xG,YAAA73G,IAAA,YAAAkS,IAAA/L,KAAA0xG,YAAA73G,IAAA,OAAAqnB,KAAAlhB,KAAA0xG,YAAA73G,IAAA,WAAA,IAAA3E,EAAA,GAAA8E,MAAAwB,OAAAxG,EAAAmiH,kBAAAjiH,EAAAsG,MAAAwE,KAAA0xG,YAAAl2G,UAAA,IAAAtG,EAAA,GAAA8E,MAAAyB,QAAAzG,EAAAmiH,kBAAAjiH,EAAAuG,OAAAuE,KAAA0xG,YAAAj2G,UAAAvG,GAAAk7G,wBAAA,SAAA37G,GAAA,gBAAAA,KAAAA,EAAAA,EAAAK,MAAA,MAAAN,EAAA0H,QAAAzH,KAAAA,GAAAysB,MAAAzsB,EAAA,GAAAsX,KAAAtX,EAAA,IAAA,IAAA,QAAAA,KAAAuL,KAAA8oB,OAAAvS,MAAA2K,KAAAzsB,EAAAysB,KAAAlhB,KAAA6vG,QAAA3uF,MAAA,SAAAzsB,KAAAuL,KAAA8oB,OAAAvS,MAAA2K,KAAAlhB,KAAA+wG,kBAAAv1G,MAAA/G,EAAA+zC,MAAAxoC,KAAA6vG,QAAA3uF,MAAA,OAAAzsB,KAAAuL,KAAA8oB,OAAAvS,MAAAxK,IAAAtX,EAAAsX,IAAA/L,KAAA6vG,QAAA9jG;AAAA,AxD6pBA,UwD7pBAtX,KAAAuL,KAAA8oB,OAAAvS,MAAAxK,IAAA/L,KAAA+wG,kBAAAt1G,OAAAhH,EAAAu8G,OAAAhxG,KAAA6vG,QAAA9jG,MAAA+jG,iBAAA,WAAA9vG,KAAAspB,aAAAtpB,KAAA6qD,OAAAvhC,cAAA,IAAA70B,GAAAuL,KAAAspB,aAAAR,QAAA,OAAA,YAAA9oB,KAAA2vG,aAAA3vG,KAAAyqG,aAAA,IAAA5uG,UAAArH,EAAA8zG,GAAAxuG,SAAAkG,KAAAyqG,aAAA,GAAAzqG,KAAAspB,aAAA,MAAA70B,EAAAysB,MAAAlhB,KAAAyqG,aAAA12F,aAAAtf,EAAAsX,KAAA/L,KAAAyqG,aAAAt2F,cAAAnU,KAAAspB,aAAA,IAAAztB,SAAAT,MAAA4E,KAAAspB,aAAA,GAAA2nF,SAAA,QAAAjxG,KAAAspB,aAAA,GAAA2nF,QAAA17G,eAAAf,EAAA2qB,QAAAurF,QAAAj2G,GAAAsX,IAAA,EAAAmV,KAAA,KAAAnV,IAAAtX,EAAAsX,KAAAkE,SAAAjQ,KAAAspB,aAAAzvB,IAAA,kBAAA,KAAA,GAAAqnB,KAAAzsB,EAAAysB,MAAAjR,SAAAjQ,KAAAspB,aAAAzvB,IAAA,mBAAA,KAAA;AxD8pBA,GwD9pBAk2G,mBAAA,WAAA,GAAA,YAAA/vG,KAAA2vG,YAAA,CAAA,GAAAn7G,GAAAwL,KAAA0xG,YAAA1xF,UAAA,QAAAjU,IAAAvX,EAAAuX,KAAAkE,SAAAjQ,KAAA6qD,OAAAhxD,IAAA,OAAA,KAAA,GAAAmG,KAAAyqG,aAAAt2F,YAAA+M,KAAA1sB,EAAA0sB,MAAAjR,SAAAjQ,KAAA6qD,OAAAhxD,IAAA,QAAA,KAAA,GAAAmG,KAAAyqG,aAAA12F,cAAA,OAAAhI,IAAA,EAAAmV,KAAA,IAAAwuF,cAAA,WAAA1vG,KAAA6vG,SAAA3uF,KAAAjR,SAAAjQ,KAAA0xG,YAAA73G,IAAA,cAAA,KAAA,EAAAkS,IAAAkE,SAAAjQ,KAAA0xG,YAAA73G,IAAA,aAAA,KAAA,IAAA21G,wBAAA,WAAAxvG,KAAA+wG,mBAAAv1G,MAAAwE,KAAA6qD,OAAA24C,aAAA/nG,OAAAuE,KAAA6qD,OAAA9Y,gBAAAs+D,gBAAA,WAAA,GAAA57G,GAAAuL,KAAA8O,OAAA,IAAA,UAAAra,EAAAg6G,cAAAh6G,EAAAg6G,YAAAzuG,KAAA6qD,OAAA,GAAA10D;AxD+pBA,CwD/pBA,YAAA1B,EAAAg6G,aAAA,UAAAh6G,EAAAg6G,eAAAzuG,KAAAyuG,aAAA,EAAAzuG,KAAA8oB,OAAAxR,SAAA4J,KAAAlhB,KAAA8oB,OAAA5P,OAAAgI,KAAA,EAAAlhB,KAAA8oB,OAAAxR,SAAAvL,IAAA/L,KAAA8oB,OAAA5P,OAAAnN,IAAAvX,EAAA,YAAAC,EAAAg6G,YAAA5yG,SAAA2K,QAAAhL,QAAAwE,KAAA+wG,kBAAAv1G,MAAAwE,KAAA6vG,QAAA3uF,MAAA1sB,EAAA,YAAAC,EAAAg6G,YAAA5yG,SAAA2K,QAAA/K,UAAAI,SAAAT,KAAAjF,WAAA+6G,cAAAlxG,KAAA+wG,kBAAAt1G,OAAAuE,KAAA6vG,QAAA9jG,OAAA,6BAAArW,KAAAjB,EAAAg6G,aAAA,CAAA,GAAAz5G,GAAAR,EAAAC,EAAAg6G,aAAA,GAAAv5G,EAAAV,EAAAC,EAAAg6G,aAAA3lF,SAAA1zB,EAAA,UAAAZ,EAAAQ,GAAA6E,IAAA,WAAAmG,MAAAyuG,aAAAv5G,EAAAgsB,MAAAjR,SAAAzb,EAAAQ,GAAA6E,IAAA,mBAAA,KAAA,IAAAoW,SAAAzb,EAAAQ,GAAA6E,IAAA,eAAA,KAAA,GAAAmG,KAAA6vG,QAAA3uF,KAAAhsB,EAAA6W,KAAAkE,SAAAzb,EAAAQ,GAAA6E,IAAA,kBAAA,KAAA,IAAAoW,SAAAzb,EAAAQ,GAAA6E,IAAA,cAAA,KAAA,GAAAmG,KAAA6vG,QAAA9jG,IAAA7W,EAAAgsB,MAAA9rB,EAAAmF,KAAAC,IAAAxF,EAAAm8G,YAAAn8G,EAAA6F,aAAA7F,EAAA6F,cAAAoV,SAAAzb,EAAAQ,GAAA6E,IAAA,mBAAA,KAAA,IAAAoW,SAAAzb,EAAAQ,GAAA6E,IAAA,gBAAA,KAAA,GAAAmG,KAAA+wG,kBAAAv1G,MAAAwE,KAAA6vG,QAAA3uF,KAAAhsB,EAAA6W,KAAA3W,EAAAmF,KAAAC,IAAAxF,EAAAk8G,aAAAl8G,EAAA8F,cAAA9F,EAAA8F,eAAAmV,SAAAzb,EAAAQ,GAAA6E,IAAA,kBAAA,KAAA,IAAAoW,SAAAzb,EAAAQ,GAAA6E,IAAA,iBAAA,KAAA,GAAAmG,KAAA+wG,kBAAAt1G,OAAAuE,KAAA6vG,QAAA9jG;AxDgqBA,GwDhqBA2kG,mBAAA,SAAAj8G,EAAAO,GAAAA,IAAAA,EAAAgL,KAAAggB,SAAA,IAAA9qB,GAAA,YAAAT,EAAA,EAAA,GAAAmB,GAAAoK,KAAA8O,QAAA,YAAA9O,KAAA2vG,aAAA3vG,KAAAyqG,aAAA,IAAA5uG,UAAArH,EAAA8zG,GAAAxuG,SAAAkG,KAAAyqG,aAAA,GAAAzqG,KAAAspB,aAAA,IAAAtpB,KAAAyqG,aAAAzqG,KAAAspB,cAAA7xB,EAAA,eAAA/B,KAAAE,EAAA,GAAAq7G,QAAA,QAAAllG,IAAA/W,EAAA+W,IAAA/L,KAAA8oB,OAAAxR,SAAAvL,IAAA7W,EAAA8K,KAAA8oB,OAAA5P,OAAAnN,IAAA7W,GAAAV,EAAA2qB,QAAAI,QAAA,SAAAvf,KAAA2vG,YAAA,GAAA,SAAA3vG,KAAA2vG,aAAA3vG,KAAAyqG,aAAAt2F,YAAA1c,EAAA,EAAA7B,EAAAue,aAAAjf,GAAAgsB,KAAAlsB,EAAAksB,KAAAlhB,KAAA8oB,OAAAxR,SAAA4J,KAAAhsB,EAAA8K,KAAA8oB,OAAA5P,OAAAgI,KAAAhsB,GAAAV,EAAA2qB,QAAAI,QAAA,SAAAvf,KAAA2vG,YAAA,GAAA,SAAA3vG,KAAA2vG,aAAA3vG,KAAAyqG,aAAA12F,aAAAtc,EAAA,EAAA7B,EAAAme,cAAA7e;AxDiqBA,GwDjqBA+6G,kBAAA,SAAAx7G,GAAA,GAAAO,GAAAgL,KAAA8O,QAAA5Z,EAAA,YAAA8K,KAAA2vG,aAAA3vG,KAAAyqG,aAAA,IAAA5uG,UAAArH,EAAA8zG,GAAAxuG,SAAAkG,KAAAyqG,aAAA,GAAAzqG,KAAAspB,aAAA,IAAAtpB,KAAAyqG,aAAAzqG,KAAAspB,aAAAl0B,EAAA,eAAAM,KAAAR,EAAA,GAAA+7G,QAAA,aAAAjxG,KAAA2vG,cAAA3vG,KAAAyqG,aAAA,IAAA5uG,UAAAmE,KAAAyqG,aAAA,IAAAzqG,KAAAspB,aAAA,MAAAtpB,KAAA8oB,OAAAxR,SAAAtX,KAAA+vG,qBAAA,IAAAn6G,GAAAnB,EAAAof,MAAApc,EAAAhD,EAAAwf,KAAA,IAAAjU,KAAAgwG,mBAAAhwG,KAAAyuG,cAAAh6G,EAAAof,MAAA7T,KAAA8oB,OAAAvS,MAAA2K,KAAAlhB,KAAAyuG,YAAA,KAAA74G,EAAAoK,KAAAyuG,YAAA,GAAAzuG,KAAA8oB,OAAAvS,MAAA2K,MAAAzsB,EAAAwf,MAAAjU,KAAA8oB,OAAAvS,MAAAxK,IAAA/L,KAAAyuG,YAAA,KAAAh3G,EAAAuI,KAAAyuG,YAAA,GAAAzuG,KAAA8oB,OAAAvS,MAAAxK;AAAAtX,AxDkqBA,EwDlqBAof,MAAA7T,KAAA8oB,OAAAvS,MAAA2K,KAAAlhB,KAAAyuG,YAAA,KAAA74G,EAAAoK,KAAAyuG,YAAA,GAAAzuG,KAAA8oB,OAAAvS,MAAA2K,MAAAzsB,EAAAwf,MAAAjU,KAAA8oB,OAAAvS,MAAAxK,IAAA/L,KAAAyuG,YAAA,KAAAh3G,EAAAuI,KAAAyuG,YAAA,GAAAzuG,KAAA8oB,OAAAvS,MAAAxK,MAAA/W,EAAA25G,MAAA,CAAA,GAAAj3G,GAAAsI,KAAAmwG,cAAA51G,KAAA6vE,OAAA3yE,EAAAuI,KAAAmwG,eAAAn7G,EAAA25G,KAAA,IAAA35G,EAAA25G,KAAA,EAAAl3G,GAAAuI,KAAAyuG,cAAA/2G,EAAAsI,KAAA8oB,OAAAvS,MAAAxK,IAAA/L,KAAAyuG,YAAA,IAAA/2G,EAAAsI,KAAA8oB,OAAAvS,MAAAxK,IAAA/L,KAAAyuG,YAAA,IAAA/2G,EAAAsI,KAAA8oB,OAAAvS,MAAAxK,IAAA/L,KAAAyuG,YAAA,GAAA/2G,EAAA1C,EAAA25G,KAAA,GAAAj3G,EAAA1C,EAAA25G,KAAA,GAAAj3G,CAAA,IAAA2E,GAAA2D,KAAAkwG,cAAA31G,KAAA6vE,OAAAx0E,EAAAoK,KAAAkwG,eAAAl7G,EAAA25G,KAAA,IAAA35G,EAAA25G,KAAA,EAAA/4G,GAAAoK,KAAAyuG,cAAApyG,EAAA2D,KAAA8oB,OAAAvS,MAAA2K,KAAAlhB,KAAAyuG,YAAA,IAAApyG,EAAA2D,KAAA8oB,OAAAvS,MAAA2K,KAAAlhB,KAAAyuG,YAAA,IAAApyG,EAAA2D,KAAA8oB,OAAAvS,MAAA2K,KAAAlhB,KAAAyuG,YAAA,GAAApyG,EAAArH,EAAA25G,KAAA,GAAAtyG,EAAArH,EAAA25G,KAAA,GAAAtyG;AxDmqBA,CwDnqBA,OAAA0P,IAAAtU,EAAAuI,KAAA8oB,OAAAvS,MAAAxK,IAAA/L,KAAA8oB,OAAAxR,SAAAvL,IAAA/L,KAAA8oB,OAAA5P,OAAAnN,KAAAvX,EAAA2qB,QAAAI,QAAA,SAAAvf,KAAA2vG,YAAA,EAAA,SAAA3vG,KAAA2vG,aAAA3vG,KAAAyqG,aAAAt2F,YAAA/e,EAAA,EAAAF,EAAAif,aAAA+M,KAAAtrB,EAAAoK,KAAA8oB,OAAAvS,MAAA2K,KAAAlhB,KAAA8oB,OAAAxR,SAAA4J,KAAAlhB,KAAA8oB,OAAA5P,OAAAgI,MAAA1sB,EAAA2qB,QAAAI,QAAA,SAAAvf,KAAA2vG,YAAA,EAAA,SAAA3vG,KAAA2vG,aAAA3vG,KAAAyqG,aAAA12F,aAAA3e,EAAA,EAAAF,EAAA6e,gBAAAqkG,WAAA,SAAA5jH,EAAAC,EAAAO,EAAAE,GAAAF,EAAAA,EAAA,GAAAoC,YAAA4I,KAAA0zF,YAAA,IAAAj/F,EAAA61C,KAAA,GAAAn0C,WAAAuV,aAAA1L,KAAA0zF,YAAA,GAAA,QAAA1zF,KAAAwnG,UAAA/yG,EAAA61C,KAAA,GAAA71C,EAAA61C,KAAA,GAAAzxB,aAAA7Y,KAAAyrC,QAAAzrC,KAAAyrC,UAAAzrC,KAAAyrC,QAAA,CAAA,IAAAr2C,GAAA4K,KAAApK,EAAAoK,KAAAyrC,OAAAjlC,QAAArI,WAAA;AAAAvI,AxDoqBA,GwDpqBAR,EAAAq2C,SAAAr2C,EAAAy5G,kBAAA35G,IAAA,IAAAo7G,OAAA,SAAA77G,EAAAO,GAAAgL,KAAAq3G,WAAA,CAAA,IAAAniH,KAAA,KAAA8K,KAAAw4G,cAAAx4G,KAAA0xG,YAAAx4F,SAAAliB,QAAAgJ,KAAA0zF,YAAAr1E,OAAAre,KAAA0xG,aAAA1xG,KAAAw4G,aAAA,KAAAx4G,KAAA6qD,OAAA,IAAA7qD,KAAA0xG,YAAA,GAAA,CAAA,IAAA,GAAA97G,KAAAoK,MAAAs4G,YAAA,QAAAt4G,KAAAs4G,WAAA1iH,IAAA,UAAAoK,KAAAs4G,WAAA1iH,MAAAoK,KAAAs4G,WAAA1iH,GAAA,GAAAoK,MAAA0xG,YAAA73G,IAAAmG,KAAAs4G,YAAAlqG,YAAA,0BAAApO,MAAA0xG,YAAA5vG,MAAA,IAAA9B,KAAA6xG,cAAA78G,GAAAE,EAAA2K,KAAA,SAAArL,GAAAwL,KAAAsvD,SAAA,UAAA96D,EAAAwL,KAAA2wG,QAAA3wG,KAAA6xG,iBAAA7xG,KAAA6xG,aAAA7xG,KAAAy3G,YAAAn8F,MAAAtb,KAAA0xG,YAAAp2F,OAAAtC,IAAA,uBAAA,IAAAhZ,KAAAy3G,YAAAv+F,QAAAlZ,KAAA0xG,YAAAx4F,SAAA,MAAAlkB,GAAAE,EAAA2K,KAAA,SAAArL;AAAAwL,AxDqqBA,KwDrqBAsvD,SAAA,SAAA96D,EAAAwL,KAAA2wG,cAAAn8G,EAAA8zG,GAAAxuG,SAAAkG,KAAA0yF,QAAA,GAAA1yF,KAAA0xG,YAAA,IAAA,CAAA18G,GAAAE,EAAA2K,KAAA,SAAArL,GAAAwL,KAAAsvD,SAAA,SAAA96D,EAAAwL,KAAA2wG,YAAA,KAAA,GAAA/6G,GAAAoK,KAAA+3G,WAAA/gH,OAAA,EAAApB,GAAA,EAAAA,IAAApB,EAAA8zG,GAAAxuG,SAAAkG,KAAA+3G,WAAAniH,GAAA88F,QAAA,GAAA1yF,KAAA0xG,YAAA,MAAA18G,IAAAE,EAAA2K,KAAA,SAAArL,GAAA,MAAA,UAAAC,GAAAD,EAAA86D,SAAA,UAAA76D,EAAAuL,KAAA2wG,QAAA3wG,SAAAxJ,KAAAwJ,KAAAA,KAAA+3G,WAAAniH,KAAAV,EAAA2K,KAAA,SAAArL,GAAA,MAAA,UAAAC,GAAAD,EAAA86D,SAAA,SAAA76D,EAAAuL,KAAA2wG,QAAA3wG,SAAAxJ,KAAAwJ,KAAAA,KAAA+3G,WAAAniH,MAAA,IAAA,GAAAA,GAAAoK,KAAA+3G,WAAA/gH,OAAA,EAAApB,GAAA,EAAAA,IAAAZ,GAAAE,EAAA2K,KAAA,SAAArL,GAAA,MAAA,UAAAC,GAAAD,EAAA86D,SAAA,aAAA76D,EAAAuL,KAAA2wG,QAAA3wG,SAAAxJ,KAAAwJ,KAAAA,KAAA+3G,WAAAniH;AAAAoK,AxDsqBA,KwDtqBA+3G,WAAAniH,GAAAg8G,eAAA2G,OAAArjH,EAAA2K,KAAA,SAAArL,GAAA,MAAA,UAAAC,GAAAD,EAAA86D,SAAA,MAAA76D,EAAAuL,KAAA2wG,QAAA3wG,SAAAxJ,KAAAwJ,KAAAA,KAAA+3G,WAAAniH,KAAAoK,KAAA+3G,WAAAniH,GAAAg8G,eAAA2G,KAAA,EAAA,IAAAv4G,KAAA23G,eAAAnjH,EAAA,QAAAqF,IAAA,SAAAmG,KAAA23G,eAAA33G,KAAA43G,gBAAA53G,KAAA6qD,OAAAhxD,IAAA,UAAAmG,KAAA43G,gBAAA53G,KAAA63G,eAAA73G,KAAA6qD,OAAAhxD,IAAA,SAAA,QAAAmG,KAAA63G,cAAA,GAAA73G,KAAA63G,eAAA73G,KAAAg4G,UAAA,EAAAh4G,KAAAqxG,oBAAA,CAAA,IAAAr8G,EAAA,CAAAgL,KAAAsvD,SAAA,aAAA76D,EAAAuL,KAAA2wG,UAAA,KAAA,GAAA/6G,GAAA,EAAAA,EAAAV,EAAA8B,OAAApB,IAAAV,EAAAU,GAAAY,KAAAwJ,KAAAvL,EAAAuL,MAAAsvD,SAAA,OAAA76D,EAAAuL,KAAA2wG,WAAA,MAAA3wG,MAAA6xG,aAAA,GAAA,EAAA,GAAA78G,GAAAgL,KAAAsvD,SAAA,aAAA76D,EAAAuL,KAAA2wG;AAAA3wG,AxDuqBA,KwDvqBA0zF,YAAA,GAAAv9F,WAAA6F,YAAAgE,KAAA0zF,YAAA,IAAA1zF,KAAA6qD,OAAA,IAAA7qD,KAAA0xG,YAAA,IAAA1xG,KAAA6qD,OAAAxvD,SAAA2E,KAAA6qD,OAAA,MAAA71D,EAAA,CAAA,IAAA,GAAAY,GAAA,EAAAA,EAAAV,EAAA8B,OAAApB,IAAAV,EAAAU,GAAAY,KAAAwJ,KAAAvL,EAAAuL,MAAAsvD,SAAA,OAAA76D,EAAAuL,KAAA2wG,WAAA,MAAA3wG,MAAA6xG,aAAA,GAAA,GAAAviD,SAAA,WAAA96D,EAAAg3G,OAAArpG,UAAAmtD,SAAAzpD,MAAA7F,KAAA8F,cAAA,GAAA9F,KAAAmsG,UAAAwE,QAAA,SAAAl8G,GAAA,GAAAO,GAAAP,GAAAuL,IAAA,QAAA6qD,OAAA71D,EAAA61D,OAAA6oC,YAAA1+F,EAAA0+F,aAAAl/F,MAAAwrB,SAAAhrB,EAAAgrB,SAAAgwF,iBAAAh7G,EAAAg7G,iBAAAlnF,OAAA9zB,EAAA46G,YAAAtlE,KAAAt1C,EAAA08G,YAAA0H,OAAA3kH,EAAAA,EAAAi+F,QAAA,SAAAl+F,EAAAuD,OAAAvD,EAAA8zG,GAAA+Q,UAAAj6F,QAAA,YAAAvc,QAIA,SAAArO,EAAAC,GAAAD,EAAA+2G,OAAA,gBAAAz8F,SAAAkL,OAAA;AAAA4O,AxDoqBA,SwDpqBA,QAAA0wF,YAAA,EAAAC,YAAA,EAAAC,aAAA,EAAA3hH,MAAA,QAAA4hH,WAAA,EAAAngG,OAAA,sCAAAogG,OAAApgG,OAAA,uBAAAqgG,eAAA,wBAAAzT,YAAA,EAAA0T,iBAAA,WAAA,MAAA55G,MAAAkQ,KAAA3a,gBAAAoN,SAAAuN,KAAA3a,gBAAAo3D,QAAA,WAAA,GAAAl4D,GAAAuL,KAAAhL,EAAAP,EAAAqa,OAAA,IAAAra,EAAA2yC,QAAA,EAAA3yC,EAAAi+F,QAAAvkF,SAAA,0CAAAiN,SAAA,MAAAjN,SAAA,uBAAA1Z,EAAAywB,QAAAzwB,EAAAi+F,QAAAztF,KAAAjQ,EAAAskB,QAAAnL,SAAA,sEAAA6H,KAAA,uBAAA,WAAAhhB,EAAA8T,UAAAtU,EAAAwL,MAAAmO,SAAA;AxDqqBA,GwDrqBA6H,KAAA,uBAAA,WAAAhhB,EAAA8T,UAAAtU,EAAAwL,MAAAoO,YAAA,oBAAA4H,KAAA,kBAAA,WAAAhhB,EAAA8T,UAAAtU,EAAAwL,MAAAmO,SAAA,oBAAA6H,KAAA,iBAAA,WAAAhhB,EAAA8T,UAAAtU,EAAAwL,MAAAoO,YAAA,oBAAA3Z,EAAAywB,QAAA7J,OAAAlN,SAAA,2EAAAnZ,EAAAkxG,WAAA,CAAA,GAAAhxG,GAAAT,EAAAi+F,QAAAztF,KAAA,KAAAvO,OAAA1B,EAAA4kH,kBAAAl0G,GAAA,EAAA,IAAAxQ,EAAA8B,OAAA,CAAA,GAAA5B,GAAAF,EAAAqmB,QAAA,uBAAAnmB,GAAA4B,OAAAvC,EAAAulB,OAAA5kB,EAAAX,EAAAulB,OAAA9kB,EAAAqmB,QAAA,yBAAAD,QAAA7mB,EAAAulB,OAAAvlB,EAAAolH,YAAAplH,EAAAulB,QAAAhlB,EAAAglB,QAAA7L,SAAA,oCAAAE,YAAA,iBAAAA,YAAA;AAAA5Z,AxDsqBA,EwDtqBAulB,OAAAqB,OAAAlN,SAAA,+BAAA1Z,EAAAqlH,eAAArlH,EAAAshH,SAAAthH,EAAAi+F,QAAA7tF,KAAA,OAAA,WAAApQ,EAAAywB,QAAArgB,KAAA,OAAA,OAAAmR,KAAA,oBAAA,SAAAxhB,GAAA,MAAAC,GAAAslH,SAAAvlH,KAAA6mB,OAAAxW,KAAA,OAAA,YAAApQ,EAAAywB,QAAAlM,IAAAvkB,EAAAulB,QAAA,IAAAnV,MAAAm1G,gBAAA,QAAAC,gBAAA,QAAAlqG,SAAA,KAAAsL,OAAAtZ,OAAAtN,EAAAulB,OAAAhjB,OAAAvC,EAAAulB,OAAAnV,MAAAm1G,gBAAA,OAAAC,gBAAA,OAAAlqG,SAAA,IAAAtb,EAAAywB,QAAAxf,GAAA,GAAAb,KAAA,WAAA,GAAArQ,EAAA2qB,QAAAI,QAAA9qB,EAAAywB,QAAAjgB,KAAA,KAAAJ,KAAA,WAAA,IAAA7P,EAAA6C,OAAApD,EAAAywB,QAAAlP,KAAAhhB,EAAA6C,MAAA/C,MAAA,KAAAiR,KAAA,eAAA,aAAA,SAAAvR,GAAAC,EAAAylH,cAAA1jH,KAAA/B,EAAAD,EAAAwL,MAAAxL,EAAAie;AxDuqBA,IwDvqBAqnG,aAAA,WAAA,GAAArlH,GAAAuL,KAAA8O,OAAAra,GAAAilH,QAAAllH,EAAA,iBAAA2Z,SAAA,WAAA1Z,EAAAilH,MAAApgG,QAAAyF,UAAA/e,KAAAklB,SAAAllB,KAAAga,OAAAoB,SAAA,YAAA/M,YAAA5Z,EAAAilH,MAAApgG,QAAAjL,YAAA5Z,EAAAilH,MAAAC,gBAAA35G,KAAA0yF,QAAAvkF,SAAA,wBAAAgsG,cAAA,WAAAn6G,KAAAklB,QAAA9J,SAAA,YAAA/f,SAAA2E,KAAA0yF,QAAAtkF,YAAA,uBAAAsgC,QAAA,WAAA,GAAAj6C,GAAAuL,KAAA8O,OAAA9O,MAAA0yF,QAAAtkF,YAAA,0CAAAL,WAAA,QAAA/N,KAAAklB,QAAAjP,OAAA,cAAA7H,YAAA,4IAAAL,WAAA,QAAAA,WAAA,iBAAAA,WAAA,iBAAAA,WAAA;AAAA/N,AxDwqBA,KwDxqBAklB,QAAAjgB,KAAA,KAAA8I,WAAA,YAAA/N,KAAAm6G,eAAA,IAAAnlH,GAAAgL,KAAAklB,QAAA7J,OAAAxhB,IAAA,UAAA,IAAAkU,WAAA,QAAAK,YAAA,8IAAA,QAAA3Z,EAAA6kH,YAAA7kH,EAAA2lH,aAAAplH,EAAA6E,IAAA,SAAA,IAAArF,EAAAg3G,OAAArpG,UAAAusC,QAAAl4C,KAAAwJ,OAAAisG,WAAA,SAAAx3G,EAAAO,GAAAR,EAAAg3G,OAAArpG,UAAA8pG,WAAApmG,MAAA7F,KAAA8F,WAAA,UAAArR,GAAAuL,KAAAq6G,SAAArlH,GAAA,SAAAP,IAAAuL,KAAAm6G,gBAAAnlH,GAAAgL,KAAA85G,gBAAA,YAAArlH,GAAAuL,KAAAklB,QAAAptB,IAAAkI,KAAAklB,QAAA7J,QAAArmB,EAAA,WAAA,eAAA;AxDyqBA,EwDzqBA+kH,SAAA,SAAAtlH,GAAA,KAAAuL,KAAA8O,QAAAhG,UAAArU,EAAA6lH,QAAA7lH,EAAAoiH,SAAA,CAAA,GAAA7hH,GAAAR,EAAA8zG,GAAA50F,QAAAxe,EAAA8K,KAAAklB,QAAAluB,OAAA5B,EAAA4K,KAAAklB,QAAArO,MAAApiB,EAAA6d,QAAA1c,GAAA,CAAA,QAAAnB,EAAAif,SAAA,IAAA1e,GAAAi1G,MAAA,IAAAj1G,GAAAg0G,KAAApzG,EAAAoK,KAAAklB,SAAA9vB,EAAA,GAAAF,EAAA,MAAA,KAAAF,GAAAs0G,KAAA,IAAAt0G,GAAAq1G,GAAAz0G,EAAAoK,KAAAklB,SAAA9vB,EAAA,EAAAF,GAAAA,EAAA,MAAA,KAAAF,GAAAm1G,MAAA,IAAAn1G,GAAAk0G,MAAAlpG,KAAAk6G,eAAA5nG,OAAA7d,EAAA6d,QAAA7d,EAAA6d,QAAA7d,EAAAge,iBAAA,MAAA7c,IAAApB,EAAAC,EAAA6d,QAAAzN,KAAA,WAAA,IAAArQ,EAAAoB,GAAAiP,KAAA,WAAA,GAAAjP,EAAA+e,SAAA,IAAA,IAAAohG,OAAA,WAAA,GAAA/gH,GAAAP,EAAAuL,KAAA8O,OAAA,IAAAra,EAAAglH,UAAA,CAAA,GAAAjlH,EAAA2qB,QAAAurF,KAAA,CAAA,GAAAx1G,GAAA8K,KAAA0yF,QAAAx5E,SAAArf,IAAA,WAAAmG,MAAA0yF,QAAAx5E,SAAArf,IAAA,WAAA,UAAA7E,EAAAgL,KAAA0yF,QAAAx5E,SAAAzd,SAAAjH,EAAA2qB,QAAAurF,MAAA1qG,KAAA0yF,QAAAx5E,SAAArf,IAAA,WAAA3E;AAAA8K,AxD0qBA,KwD1qBAklB,QAAArwB,KAAA,WAAAG,GAAAR,EAAAwL,MAAA+xC,aAAA,KAAA/xC,KAAAklB,QAAA7J,OAAAxmB,KAAA,WAAAL,EAAAwL,MAAAvE,OAAAlB,KAAAC,IAAA,EAAAxF,EAAAR,EAAAwL,MAAA+qG,cAAAv2G,EAAAwL,MAAAvE,aAAA5B,IAAA,WAAA,YAAApF,GAAA6kH,aAAAtkH,EAAA,EAAAgL,KAAAklB,QAAA7J,OAAAxmB,KAAA,WAAAG,EAAAuF,KAAAC,IAAAxF,EAAAR,EAAAwL,MAAAvE,OAAA,IAAAA,YAAAA,OAAAzG,GAAA,OAAAgL,OAAAq6G,SAAA,SAAA7lH,GAAAwL,KAAA8O,QAAAkL,OAAAxlB,CAAA,IAAAC,GAAAuL,KAAA65G,YAAArlH,GAAA,EAAA,OAAAwL,MAAAk6G,eAAA5nG,OAAA7d,GAAAA,GAAAuL,MAAA65G,YAAA,SAAAplH,GAAA,MAAAA,GAAA,gBAAAA,GAAAuL,KAAAklB,QAAAxuB,OAAA,OAAAjC,EAAA,KAAAuL,KAAAklB,QAAAlM,IAAAhZ,KAAAklB,QAAAlM,IAAAvkB,IAAAA,KAAA,EAAAD,MAAAwL,KAAAklB,QAAAxuB,OAAA,WAAAwjH,cAAA,SAAAzlH,EAAAO,GAAA,GAAAE,GAAA8K,KAAA8O,OAAA,KAAA5Z,EAAA4T,SAAA,CAAA,IAAArU,EAAA6d,OAAA;AAAA,AxD2qBA,IwD3qBApd,EAAAskH,YAAA,MAAAx5G,MAAAga,OAAA5L,YAAA,iCAAAD,SAAA,kCAAAiN,SAAA,YAAAhN,YAAAlZ,EAAAwkH,MAAAC,gBAAAxrG,SAAAjZ,EAAAwkH,MAAApgG,QAAAtZ,KAAAga,OAAAqB,OAAAlN,SAAA,8BAAA,IAAA/Y,GAAA4K,KAAAga,OAAAqB,OAAAzlB,GAAAkZ,QAAA5Z,EAAAqlH,UAAA/lH,MAAAgmH,UAAAtlH,EAAA8kB,OAAAygG,WAAAjmH,MAAAkmH,WAAAtlH,GAAAqC,EAAAuI,KAAAga,OAAAxlB,KAAA,YAAAwL,MAAA26G,QAAAljH,EAAArC,EAAAQ,GAAA,GAAA8B,GAAAlD,EAAAC,EAAAwe,eAAAje,GAAAqH,EAAA3E,EAAA,KAAAsI,KAAAga,OAAA,EAAA,IAAA9kB,EAAA8kB,OAAA9kB,EAAAskH,aAAAn9G,GAAA,EAAA2D,KAAAklB,QAAArO,MAAAnf,KAAAsI,KAAAonC,UAAAlyC,EAAAskH,aAAAn9G,GAAA,CAAA,GAAAI,GAAAuD,KAAAga,OAAAviB,EAAAC,EAAA2jB,OAAAjmB,EAAA4K,KAAAga,OAAAqB,OAAAzlB,GAAAkZ,QAAA5Z,EAAAqlH,UAAAl+G,GAAAnH,EAAAskH,YAAAhlH,MAAAkD,EAAA8iH,UAAAx6G,KAAAga;AAAAygG,AxD4qBA,WwD5qBAp+G,GAAAnH,EAAAskH,YAAAhlH,MAAAiD,EAAAijH,WAAAtlH,GAAAsH,EAAAsD,KAAAklB,QAAArO,MAAA7W,KAAAga,OAAA,IAAAha,KAAAklB,QAAArO,MAAAnf,EAAA,GAAAsI,MAAAga,OAAA3d,EAAA7H,MAAAkD,EAAAsI,KAAA26G,QAAAljH,EAAArC,EAAAQ,EAAAyG,EAAAK,GAAAD,EAAA2R,YAAA,iCAAAD,SAAA,kCAAAiN,SAAA,YAAAhN,YAAAlZ,EAAAwkH,MAAAC,gBAAAxrG,SAAAjZ,EAAAwkH,MAAApgG,QAAAjd,IAAA3E,EAAA0W,YAAA,kCAAAD,SAAA,iCAAAiN,SAAA,YAAAhN,YAAAlZ,EAAAwkH,MAAApgG,QAAAnL,SAAAjZ,EAAAwkH,MAAAC,gBAAAjiH,EAAA2jB,OAAAlN,SAAA,mCAAAwsG,QAAA,SAAAlmH,EAAAO,EAAAE,EAAAE,EAAAQ,GAAA,GAAA6B,GAAAuI,KAAAtI,EAAAD,EAAAqX,OAAArX,GAAAmjH,OAAAnmH,EAAAgD,EAAAojH,OAAA7lH,EAAAyC,EAAA5B,KAAAX,CAAA,IAAAmH,GAAA,WAAA,MAAA5E,GAAAA,EAAAqjH,WAAAj1G,MAAApO,EAAAqO,WAAA;AxD6qBA,CwD7qBA,IAAArO,EAAA63D,SAAA,cAAA,KAAA73D,EAAA5B,MAAA4B,EAAA2vC,QAAA,IAAApyC,EAAAqQ,OAAA5Q,EAAA4Q,OAAArQ,EAAAqQ,OAAA3N,EAAAkxB,SAAA,CAAA,GAAAnsB,KAAAA,GAAA/E,EAAA8hH,aAAApkH,GAAAwlH,OAAApmH,MAAAqmH,OAAA7lH,EAAAyL,SAAApE,EAAA0+G,KAAAnlH,EAAA0jH,WAAA5hH,EAAA4hH,YAAA5hH,EAAA+hH,YAAAmB,OAAAnmH,EAAAomH,OAAA7lH,EAAAyL,SAAApE,EAAA0+G,KAAAnlH,EAAA0jH,WAAA5hH,EAAA4hH,YAAA5hH,EAAA+hH,WAAA/hH,EAAAsjH,UAAAtjH,EAAAsjH,QAAAtjH,EAAAkxB,UAAAlxB,EAAAujH,kBAAAvjH,EAAAujH,gBAAAvjH,EAAAqH,UAAArH,EAAAkxB,SAAAp0B,EAAA8B,WAAAoB,EAAAsjH,SAAAtjH,EAAAsjH,QAAAv+G,GAAA/E,EAAAsjH,QAAAtjH,EAAAqH,SAAAvK,EAAA8B,WAAAoB,EAAAujH,iBAAAvjH,EAAAujH,gBAAAx+G,GAAA/E,EAAAujH,eAAA,IAAAv+G,GAAAlI,EAAA8zG,GAAA4S,UAAAC,WAAAx+G,EAAAjF,EAAAqH,SAAAgC,EAAArJ,EAAAkxB,QAAA7nB,KAAArE,EAAAqE,KAAAvM,EAAAoL,OAAAmB,KAAAA,EAAA,SAAArE,EAAAqE,KAAArE,EAAAqE,GAAA,SAAAvM,GAAAwL,KAAAo7G,MAAA5mH,GAAAoL,OAAAmB,EAAAhC,SAAApC,GAAA,QAAAD,EAAAqE,GAAAtE;AxD8qBA,KwD9qBA/E,GAAA8hH,aAAApkH,EAAAX,EAAA6hB,UAAAthB,EAAA+M,OAAAtN,EAAAqN,QAAAzF,GAAA,EAAArH,GAAAsmB,OAAAzW,MAAAm1G,gBAAA,QAAAC,gBAAA,QAAAlqG,SAAA,KAAA6E,OAAAngB,EAAA6mB,OAAAzW,MAAAm1G,gBAAA,OAAAC,gBAAA,OAAAlqG,SAAA,IAAA4E,SAAAmmG,WAAA,SAAAtmH,GAAAwL,KAAAonC,QAAA5yC,EAAA,IAAAwL,KAAAonC,QAAApnC,KAAAonC,UAAApnC,KAAA8O,QAAAyqG,YAAAv5G,KAAA46G,OAAA9iH,IAAAkI,KAAA66G,QAAAhhH,KAAA4B,OAAA,GAAA8F,SAAA,KAAAvB,KAAA66G,OAAAzsG,YAAA,+BAAApO,KAAA66G,OAAA7jH,SAAAgJ,KAAA66G,OAAA3hG,SAAA,GAAA9O,UAAApK,KAAA66G,OAAA3hG,SAAA,GAAA9O,WAAApK,KAAAsvD,SAAA,SAAA,KAAAtvD,KAAAnK,UAAArB,EAAAuD,OAAAvD,EAAA8zG,GAAA4S,WAAA97F,QAAA,SAAA+7F,YAAAC,MAAA,SAAA3mH,EAAAO,GAAA,GAAAP,EAAAD,EAAAuD,QAAA6H,OAAA;AAAAb,AxD+qBA,SwD/qBA,KAAAtK,EAAAO,IAAAP,EAAAomH,OAAAx1G,OAAA,WAAA5Q,GAAAmmH,OAAArzF,SAAA9rB,OAAA,OAAA4/G,WAAA,OAAAC,cAAA,QAAA7mH,EAAA,KAAAA,EAAAmmH,OAAAv1G,OAAA,WAAA5Q,GAAAomH,OAAAtzF,SAAA9rB,OAAA,OAAA4/G,WAAA,OAAAC,cAAA,QAAA7mH,EAAA,IAAA4H,GAAAnH,EAAAT,EAAAmmH,OAAA/gH,IAAA,YAAAzE,EAAA,EAAAQ,KAAA6B,KAAAC,GAAA,SAAA,aAAA,iBAAA+E,EAAAhI,EAAAmmH,MAAAv+G,GAAAI,EAAA,GAAAzC,MAAAwB,MAAAiB,EAAAjB,MAAAiB,EAAAyc,SAAA1d,QAAAb,WAAA8B,EAAA5C,IAAA,gBAAAc,WAAA8B,EAAA5C,IAAA,kBAAAc,WAAA8B,EAAA5C,IAAA,qBAAA,IAAAc,WAAA8B,EAAA5C,IAAA,sBAAA,IAAArF,EAAAK,KAAA6C,EAAA,SAAA1C,EAAAE,GAAAuC,EAAAvC,GAAA,MAAA,IAAAE,IAAA,GAAAZ,EAAAqF,IAAApF,EAAAmmH,OAAA,GAAA1lH,IAAA8hB,MAAA,mBAAAphB,GAAAV,IAAA2D,MAAAzD,EAAA,GAAA6xB,KAAA7xB,EAAA,IAAA,QAAAX,EAAAmmH,OAAA/gH;AAAA4B,AxDgrBA,OwDhrBA,EAAA8F,SAAA,WAAAO,OAAArN,EAAAomH,OAAAnkH,OAAA,WAAA7B,KAAAJ,EAAAgM,UAAAwB,MAAAvL,OAAA,YAAA6wB,QAAA9vB,GAAA6vB,KAAA,SAAA9yB,EAAAQ,GAAA,UAAAA,EAAAgZ,OAAA5Y,EAAAJ,EAAAiN,IAAAjN,EAAAkL,QAAA,EAAA,GAAAlL,EAAAqJ,IAAArJ,EAAAkL,QAAAlL,EAAAiN,IAAAjN,EAAAkL,QAAAzL,EAAAmmH,OAAA,GAAA5gH,MAAAhF,EAAAgZ,MAAA5Y,EAAAQ,EAAAZ,EAAAgZ,MAAAnV,MAAAjD,EAAAZ,EAAAgZ,MAAAiZ,MAAAloB,SAAAtK,EAAAsK,SAAAa,OAAAnL,EAAAmL,OAAAa,SAAA,WAAAhM,EAAA6kH,YAAA7kH,EAAAmmH,OAAA/gH,IAAA,SAAA,IAAApF,EAAAmmH,OAAA/gH,KAAA2B,MAAAa,EAAAkF,SAAArM,IAAAT,EAAAgM,eAAA86G,YAAA,SAAA/mH,GAAAwL,KAAAo7G,MAAA5mH,GAAAoL,OAAApL,EAAAumH,KAAA,gBAAA,QAAAh8G,SAAAvK,EAAAumH,KAAA,IAAA,WAAAl4G,QAIA,SAAArO,EAAAC,GAAA,GAAAO,GAAA,CAAAR,GAAA+2G,OAAA,mBAAAz8F,SAAA3T,SAAA,OAAAqgH,WAAA,EAAAvuG,MAAA,IAAAwuG,UAAA,EAAAz7F,UAAAwtF,GAAA,WAAAzhF,GAAA;AAAAwhF,AxD6qBA,UwD7qBA,QAAAjqG,OAAA,MAAA+rC,QAAA,EAAAsd,QAAA,WAAA,GAAAz3D,GAAAT,EAAAuL,KAAAhL,EAAAgL,KAAA0yF,QAAA,GAAAr7F,aAAA2I,MAAA07G,YAAA17G,KAAA0yF,QAAA3/E,GAAA,YAAA/S,KAAA0yF,QAAAvkF,SAAA,yBAAAtJ,KAAA,eAAA,OAAAA,MAAA82G,KAAA,UAAAC,oBAAA,OAAAC,gBAAA,SAAA7lG,KAAA,uBAAA,SAAAhhB,GAAA,IAAAP,EAAAqa,QAAAhG,WAAArU,EAAAi+F,QAAA6X,SAAA,YAAA,CAAAr1G,GAAA,CAAA,IAAAE,GAAAZ,EAAA8zG,GAAA50F,OAAA,QAAA1e,EAAA0e,SAAA,IAAAte,GAAA20G,QAAAt1G,EAAAqnH,MAAA,eAAA9mH,EAAA,MAAA,KAAAI,GAAA00G,UAAAr1G,EAAAqnH,MAAA,WAAA9mH,EAAA,MAAA,KAAAI,GAAAi1G,GAAA51G,EAAAsnH,UAAA,WAAA/mH,EAAA,MAAA,KAAAI,GAAA4zG,KAAAv0G,EAAAsnH,UAAA,OAAA/mH,EAAA,MAAA,KAAAI,GAAA8zG,MAAA,IAAA9zG,GAAAu0G,aAAAl1G,EAAAunH,KAAAhiG,SAAA9kB,GAAA,EAAAF,EAAAyd;AAAA,AxD8qBA,IwD9qBArd,GAAAg1G,IAAA,IAAA31G,EAAAunH,KAAAhiG,OAAA,MAAAvlB,GAAAunH,KAAAptG,OAAA5Z,EAAA,MAAA,KAAAI,GAAA+zG,OAAA10G,EAAAi+F,QAAAnkF,IAAA9Z,EAAAwnH,MAAAxnH,EAAAsH,MAAA/G,EAAA,MAAA,SAAAmY,aAAA1Y,EAAAynH,WAAAznH,EAAAynH,UAAA/9G,WAAA,WAAA1J,EAAAwnH,MAAAxnH,EAAAi+F,QAAAnkF,QAAA9Z,EAAA0nH,aAAA,KAAA1nH,EAAA2nH,OAAA,KAAApnH,KAAAP,EAAAqa,QAAA7B,WAAA+I,KAAA,wBAAA,SAAAxhB,GAAAU,IAAAA,GAAA,EAAAV,EAAAie,oBAAAuD,KAAA,qBAAA,WAAAvhB,EAAAqa,QAAAhG,WAAArU,EAAA0nH,aAAA,KAAA1nH,EAAAk7D,SAAAl7D,EAAAi+F,QAAAnkF,SAAAyH,KAAA,oBAAA,SAAAxhB,GAAAC,EAAAqa,QAAAhG,WAAAqE,aAAA1Y,EAAAynH,WAAAznH,EAAA4nH,QAAAl+G,WAAA,WAAA1J,EAAAsH,MAAAvH,GAAAC,EAAA4gH,QAAA7gH,IAAA,QAAAwL,KAAAs8G,cAAAt8G,KAAAg8G,KAAAxnH,EAAA,aAAA2Z,SAAA,mBAAAhT,SAAA3G,EAAAwL,KAAA8O,QAAA3T,UAAA,OAAAnG,GAAA,IAAAunH,UAAA,SAAAvnH;AAAA,AxD+qBA,GwD/qBAE,GAAAT,EAAAunH,KAAAtpB,QAAA,EAAAl+F,GAAAQ,EAAAsd,QAAAiJ,QAAA,iBAAAvkB,QAAAmH,WAAA,WAAA3J,EAAAqH,UAAAka,IAAA,YAAA,SAAA/gB,GAAAA,EAAAsd,SAAA7d,EAAAi+F,QAAA,IAAA19F,EAAAsd,SAAApd,IAAAV,EAAA8zG,GAAAxuG,SAAA5E,EAAAF,EAAAsd,SAAA7d,EAAAsH,WAAA,GAAAoC,WAAA,WAAAgP,aAAA1Y,EAAA4nH,UAAA,MAAAL,MAAArnG,MAAA,SAAAngB,EAAAQ,GAAA,GAAAE,GAAAF,EAAAs1C,KAAAz0C,KAAA,sBAAA,IAAApB,EAAA66D,SAAA,QAAA96D,GAAA81C,KAAAp1C,KAAA,OAAAQ,KAAAlB,EAAAygB,cAAAvc,OAAAjE,EAAAi+F,QAAAnkF,IAAArZ,EAAA2D,QAAAC,SAAA,SAAAtE,EAAAU,GAAA,GAAAE,GAAAF,EAAAo1C,KAAAz0C,KAAA,qBAAAD,EAAAnB,EAAAk7D,QAAAl7D,GAAAi+F,QAAA,KAAA19F,EAAA8kB,gBAAArlB,EAAAi+F,QAAA/9E,QAAAlgB,EAAAk7D,SAAA/5D,EAAAuI,WAAA,WAAA1J,EAAAk7D,SAAA/5D,EAAAnB,EAAA0nH,aAAA/mH,GAAA,KAAA,IAAAX,EAAA66D,SAAA,SAAA96D,GAAA81C,KAAAl1C,KAAAX,EAAAi+F,QAAAnkF,IAAAnZ,EAAAyD;AAAApE,AxDgrBA,EwDhrBAwnH,KAAAxnH,EAAAi+F,QAAAnkF,MAAA9Z,EAAAsH,MAAAvH,GAAAC,EAAA0nH,aAAA/mH,GAAAwf,KAAA,SAAApgB,EAAAQ,GAAAP,EAAAunH,KAAAtpB,QAAA3/E,GAAA,aAAAte,EAAAi+F,QAAAnkF,QAAA9Z,EAAAwnH,MAAAxnH,EAAAi+F,QAAAnkF,IAAA9Z,EAAAwnH,SAAAt7F,OAAA3gB,KAAA0yF,QAAA/xE,SAAA,GAAA9mB,KAAAkS,IAAA,EAAAmV,KAAA,IAAAnf,OAAAlM,KAAA,QAAArB,EAAA6O,GAAA4qG,UAAAjuG,KAAAg8G,KAAAtpB,QAAAub,WAAAx5G,EAAA+nH,oBAAA,WAAA/nH,EAAAi+F,QAAA3kF,WAAA,iBAAAvZ,EAAAgS,QAAAwP,KAAA,eAAAvhB,EAAA+nH,sBAAA9tE,QAAA,WAAA1uC,KAAA0yF,QAAAtkF,YAAA,yBAAAL,WAAA,gBAAAA,WAAA,QAAAA,WAAA,qBAAAA,WAAA,iBAAA/N,KAAAg8G,KAAAtpB,QAAAr3F,SAAA7G,EAAAgS,QAAAyP,OAAA,eAAAjW,KAAAw8G,qBAAAhoH,EAAAg3G,OAAArpG,UAAAusC,QAAAl4C,KAAAwJ;AxDirBA,EwDjrBAisG,WAAA,SAAAx3G,EAAAO,GAAAR,EAAAg3G,OAAArpG,UAAA8pG,WAAApmG,MAAA7F,KAAA8F,WAAA,WAAArR,GAAAuL,KAAAs8G,cAAA,aAAA7nH,GAAAuL,KAAAg8G,KAAAtpB,QAAAv3F,SAAA3G,EAAAQ,GAAA,OAAAgL,KAAA0yF,QAAA,GAAAr7F,eAAA,IAAA,aAAA5C,GAAAO,GAAAgL,KAAAsmB,KAAAtmB,KAAAsmB,IAAAvB,SAAAu3F,YAAA,WAAA,GAAAtnH,GAAAE,EAAAT,EAAAuL,IAAAxL,GAAA0H,QAAA8D,KAAA8O,QAAAxL,SAAAtO,EAAAgL,KAAA8O,QAAAxL,OAAAtD,KAAAsD,OAAA,SAAA7O,EAAAS,GAAAA,EAAAV,EAAA8zG,GAAAmU,aAAA/lH,OAAA1B,EAAAP,EAAAwnH,SAAA,gBAAAj8G,MAAA8O,QAAAxL,QAAApO,EAAA8K,KAAA8O,QAAAxL,OAAAtD,KAAAsD,OAAA,SAAAtO,EAAAI,GAAAX,EAAA6xB,KAAA7xB,EAAA6xB,IAAAvB,QAAAtwB,EAAA6xB,IAAA9xB,EAAAmqB,MAAAC,IAAA1pB,EAAAW,KAAAb,EAAA0I,SAAA,OAAA2lB,QAAA,SAAA7uB,EAAAC,GAAAW,EAAAZ,IAAAqJ,MAAA,WAAAzI,WAAA4K,KAAAsD,OAAAtD,KAAA8O,QAAAxL,QAAA84G,OAAA,SAAA5nH,EAAAC;AAAA,AxDkrBA,MwDlrBAD,GAAA,MAAAA,EAAAA,EAAAwL,KAAA0yF,QAAAnkF,MAAAvO,KAAAi8G,KAAAj8G,KAAA0yF,QAAAnkF,MAAA/Z,EAAAwC,OAAAgJ,KAAA8O,QAAA2sG,UAAAz7G,KAAAjE,MAAAtH,IAAA0Y,aAAAnN,KAAAq8G,SAAAr8G,KAAAsvD,SAAA,SAAA76D,MAAA,EAAAuL,KAAA08G,QAAAloH,GAAA,SAAAkoH,QAAA,SAAAloH,GAAAwL,KAAAqvC,UAAArvC,KAAA0yF,QAAAvkF,SAAA,2BAAAnO,KAAAsD,QAAA24G,KAAAznH,GAAAwL,KAAA28G,cAAAA,UAAA,WAAA,GAAAnoH,GAAAwL,KAAAvL,IAAAO,CAAA,OAAA,UAAAE,GAAAT,IAAAO,GAAAR,EAAAooH,WAAA1nH,GAAAV,EAAA66C,UAAA76C,EAAA66C,SAAA76C,EAAAk+F,QAAAtkF,YAAA,6BAAAwuG,WAAA,SAAApoH,IAAAwL,KAAA8O,QAAAhG,UAAAtU,GAAAA,EAAAwC,QAAAxC,EAAAwL,KAAA68G,WAAAroH,GAAAwL,KAAA88G,SAAAtoH,GAAAwL,KAAAsvD,SAAA,SAAAtvD,KAAAjE,SAAAA,MAAA,SAAAvH,GAAA2Y,aAAAnN,KAAAq8G,SAAAr8G,KAAAg8G,KAAAtpB,QAAA3/E,GAAA,cAAA/S,KAAAg8G,KAAAtpB,QAAA3wF;AAAA/B,AxDmrBA,KwDnrBAg8G,KAAAe,aAAA/8G,KAAAsvD,SAAA,QAAA96D,KAAA6gH,QAAA,SAAA7gH,GAAAwL,KAAA2vD,WAAA3vD,KAAA0yF,QAAAnkF,OAAAvO,KAAAsvD,SAAA,SAAA96D,GAAA81C,KAAAtqC,KAAAm8G,gBAAAU,WAAA,SAAApoH,GAAA,MAAAA,GAAAuC,QAAAvC,EAAA,GAAAozG,OAAApzG,EAAA,GAAAoE,MAAApE,EAAAD,EAAAwR,IAAAvR,EAAA,SAAAA,GAAA,MAAA,gBAAAA,IAAAozG,MAAApzG,EAAAoE,MAAApE,GAAAD,EAAAuD,QAAA8vG,MAAApzG,EAAAozG,OAAApzG,EAAAoE,MAAAA,MAAApE,EAAAoE,OAAApE,EAAAozG,OAAApzG,MAAAqoH,SAAA,SAAAroH,GAAA,GAAAO,GAAAgL,KAAAg8G,KAAAtpB,QAAArxF,QAAAsf,OAAA3gB,KAAA0yF,QAAA/xE,SAAA,EAAA3gB,MAAAg9G,YAAAhoH,EAAAP,GAAAuL,KAAAg8G,KAAAe,aAAA/8G,KAAAg8G,KAAAzF,UAAAvhH,EAAA8M,OAAA9B,KAAAi9G,cAAAjoH,EAAAgrB,SAAAxrB,EAAAuD,QAAAikF,GAAAh8E,KAAA0yF,SAAA1yF,KAAA8O,QAAAkR,WAAAhgB,KAAA8O,QAAA0sG,WAAAx7G,KAAAg8G,KAAA3gG,KAAA,GAAA7mB,GAAAyd,MAAA,eAAAgrG,YAAA;AAAA,AxDorBA,GwDprBAzoH,GAAAwL,KAAAg8G,KAAAtpB,OAAAl+F,GAAAgvG,WAAAjpG,KAAAC,IAAAhG,EAAAgH,MAAA,IAAAgoG,aAAA,EAAAxjG,KAAA0yF,QAAA8Q,gBAAAwZ,YAAA,SAAAvoH,EAAAO,GAAA,GAAAE,GAAA8K,IAAAxL,GAAAK,KAAAG,EAAA,SAAAR,EAAAQ,GAAAE,EAAAgoH,YAAAzoH,EAAAO,MAAAkoH,YAAA,SAAAzoH,EAAAO,GAAA,MAAAR,GAAA,aAAAqB,KAAA,oBAAAb,GAAA4oB,OAAAppB,EAAA,WAAAyE,KAAAjE,EAAA6yG,QAAA1sG,SAAA1G,IAAAqnH,MAAA,SAAAtnH,EAAAC,GAAA,MAAAuL,MAAAg8G,KAAAtpB,QAAA3/E,GAAA,YAAA/S,KAAAg8G,KAAAr2G,SAAA,YAAAjQ,KAAAlB,IAAAwL,KAAAg8G,KAAAp2G,QAAA,QAAAlQ,KAAAlB,IAAAwL,KAAA0yF,QAAAnkF,IAAAvO,KAAAi8G,UAAAj8G,MAAAg8G,KAAAe,kBAAA/8G,MAAAg8G,KAAAxnH,GAAAC,OAAAuL,MAAAo8G,OAAA,KAAA3nH,IAAA82G,OAAA,WAAA,MAAAvrG,MAAAg8G,KAAAtpB,SAAAqpB,UAAA,SAAAvnH,EAAAC,KAAAuL,KAAA07G,aAAA17G,KAAAg8G,KAAAtpB,QAAA3/E,GAAA,eAAA/S,KAAA87G,MAAAtnH,EAAAC;AAAAA,AxDqrBA,EwDrrBAge,qBAAAje,EAAAuD,OAAAvD,EAAA8zG,GAAAmU,cAAAU,YAAA,SAAA3oH,GAAA,MAAAA,GAAAa,QAAA,2BAAA,SAAAqB,OAAA,SAAAjC,EAAAO,GAAA,GAAAE,GAAA,GAAAwc,QAAAld,EAAA8zG,GAAAmU,aAAAU,YAAAnoH,GAAA,IAAA,OAAAR,GAAA+B,KAAA9B,EAAA,SAAAD,GAAA,MAAAU,GAAAQ,KAAAlB,EAAAqzG,OAAArzG,EAAAqE,OAAArE,SAAAqO,QAAA,SAAArO,GAAAA,EAAA+2G,OAAA,WAAA5+C,QAAA,WAAA,GAAAl4D,GAAAuL,IAAAA,MAAA0yF,QAAAvkF,SAAA,qDAAAtJ,MAAA82G,KAAA,UAAAyB,wBAAA,uBAAA7mG,MAAA,SAAAvhB,GAAAR,EAAAQ,EAAAsd,QAAAiJ,QAAA,mBAAAvkB,SAAAhC,EAAAyd,iBAAAhe,EAAAma,OAAA5Z,MAAAgL,KAAAu2G,WAAAA,QAAA,WAAA,GAAA9hH,GAAAuL,KAAAhL,EAAAgL,KAAA0yF,QAAAt3E,SAAA,gCAAAjN,SAAA,gBAAAtJ,KAAA,OAAA;AAAA7P,AxDsrBA,EwDtrBAomB,SAAA,KAAAjN,SAAA,iBAAAtJ,KAAA,WAAA,IAAA2Q,WAAA,SAAAxgB,GAAAP,EAAA4lH,SAAArlH,EAAAR,EAAAwL,MAAAkZ,YAAAzD,WAAA,WAAAhhB,EAAAsoH,gBAAA1C,SAAA,SAAA7lH,EAAAC,GAAA,GAAAuL,KAAA+8G,aAAA/8G,KAAAorG,YAAA,CAAA,GAAAp2G,GAAAP,EAAAq0B,SAAA/c,IAAA/L,KAAA0yF,QAAA5pE,SAAA/c,IAAA7W,EAAA8K,KAAA0yF,QAAAv+E,YAAA/e,EAAA4K,KAAA0yF,QAAAj3F,QAAA,GAAAzG,EAAAgL,KAAA0yF,QAAAv+E,UAAAjf,EAAAF,GAAAA,GAAAI,GAAA4K,KAAA0yF,QAAAv+E,UAAAjf,EAAAF,EAAAI,EAAAX,EAAAgH,UAAAuE,KAAAga,OAAAvlB,EAAAiR,GAAA,GAAA0V,SAAA,KAAAjN,SAAA,kBAAAtJ,KAAA,KAAA,sBAAA5C,MAAAjC,KAAAsvD,SAAA,QAAA96D,GAAA81C,KAAA71C,KAAAsoH,WAAA,WAAA/8G,KAAAga,SAAAha,KAAAga,OAAAoB,SAAA,KAAAhN,YAAA,kBAAAL,WAAA,MAAA/N,KAAAsvD,SAAA,QAAAtvD,KAAAga,OAAA;AxDurBA,EwDvrBAqB,KAAA,SAAA7mB,GAAAwL,KAAAq9G,KAAA,OAAA,sBAAA7oH,IAAAm7D,SAAA,SAAAn7D,GAAAwL,KAAAq9G,KAAA,OAAA,qBAAA7oH,IAAAmR,MAAA,WAAA,MAAA3F,MAAAga,SAAAha,KAAAga,OAAAwB,QAAA,iBAAAxkB,QAAA4O,KAAA,WAAA,MAAA5F,MAAAga,SAAAha,KAAAga,OAAA6B,QAAA,iBAAA7kB,QAAAqmH,KAAA,SAAA7oH,EAAAC,EAAAO,GAAA,IAAAgL,KAAAga,OAAA,WAAAha,MAAAq6G,SAAArlH,EAAAgL,KAAA0yF,QAAAt3E,SAAA3mB,GAAA,IAAAS,GAAA8K,KAAAga,OAAAxlB,EAAA,OAAA,iBAAAkR,GAAA,EAAAxQ,GAAA8B,OAAAgJ,KAAAq6G,SAAArlH,EAAAE,GAAA8K,KAAAq6G,SAAArlH,EAAAgL,KAAA0yF,QAAAt3E,SAAA3mB,KAAA6oH,SAAA,SAAA7oH,GAAA,GAAAuL,KAAAorG,YAAA,CAAA,IAAAprG,KAAAga,QAAAha,KAAA4F,OAAA,WAAA5F,MAAAq6G,SAAA5lH,EAAAuL,KAAA0yF,QAAAt3E,SAAA,uBAAA,IAAApmB,GAAAgL,KAAAga,OAAA8O,SAAA/c,IAAA7W,EAAA8K,KAAA0yF,QAAAj3F,SAAArG,EAAA4K,KAAA0yF,QAAAt3E,SAAA,iBAAA1kB,OAAA;AAAA,AxDwrBA,GwDxrBAjC,GAAAD,EAAAwL,MAAA8oB,SAAA/c,IAAA/W,EAAAE,EAAAV,EAAAwL,MAAAvE,QAAA,OAAA,IAAAhH,GAAAA,EAAA,KAAAW,GAAA4B,SAAA5B,EAAA4K,KAAA0yF,QAAAt3E,SAAA,uBAAApb,KAAAq6G,SAAA5lH,EAAAW,OAAA4K,MAAAq6G,SAAA5lH,EAAAuL,KAAA0yF,QAAAt3E,SAAA,iBAAA1kB,QAAAsJ,KAAAga,QAAAha,KAAA4F,OAAA,SAAA,WAAA23G,aAAA,SAAA9oH,GAAA,GAAAuL,KAAAorG,YAAA,CAAA,IAAAprG,KAAAga,QAAAha,KAAA2F,QAAA,WAAA3F,MAAAq6G,SAAA5lH,EAAAuL,KAAA0yF,QAAAt3E,SAAA,sBAAA,IAAApmB,GAAAgL,KAAAga,OAAA8O,SAAA/c,IAAA7W,EAAA8K,KAAA0yF,QAAAj3F,SAAArG,EAAA4K,KAAA0yF,QAAAt3E,SAAA,iBAAA1kB,OAAA,WAAA,GAAAjC,GAAAD,EAAAwL,MAAA8oB,SAAA/c,IAAA/W,EAAAE,EAAAV,EAAAwL,MAAAvE,QAAA,OAAA,IAAAhH,GAAAA,EAAA,KAAAW,GAAA4B,SAAA5B,EAAA4K,KAAA0yF,QAAAt3E,SAAA,wBAAApb,KAAAq6G,SAAA5lH,EAAAW;AxDyrBA,KwDzrBA4K,MAAAq6G,SAAA5lH,EAAAuL,KAAA0yF,QAAAt3E,SAAA,iBAAA1kB,QAAAsJ,KAAAga,QAAAha,KAAA2F,QAAA,QAAA,YAAAylG,UAAA,WAAA,MAAAprG,MAAA0yF,QAAAj3F,SAAAuE,KAAA0yF,QAAAl+F,EAAA6O,GAAA2K,KAAA,OAAA,QAAA,iBAAAY,OAAA,SAAApa,GAAAwL,KAAAsvD,SAAA,WAAA96D,GAAA81C,KAAAtqC,KAAAga,aAAAnX,QAIA,SAAArO,EAAAC,GAAA,GAAAO,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAA,qDAAAC,EAAA,kCAAA2E,EAAA,8IAAAI,EAAA,WAAA,GAAAhI,GAAAD,EAAAwL,MAAAiF,KAAA,aAAA9G,YAAA,WAAA1J,EAAA4b,OAAA,YAAA,IAAA3T,EAAA,SAAAjI,GAAA,GAAAO,GAAAP,EAAAoY,KAAA3X,EAAAT,EAAAihB,KAAAtgB,EAAAZ;AAAA,AxDsrBA,MwDtrBAQ,KAAAI,EAAAF,EAAAV,EAAAU,GAAA+P,KAAA,UAAAjQ,EAAA,MAAAR,EAAA,UAAAQ,EAAA,KAAAP,EAAA4C,eAAAX,OAAA,WAAA,OAAAsJ,KAAA0V,QAAAtgB,EAAAZ,GAAA+2G,OAAA,aAAAz8F,SAAAhG,SAAA,KAAA7P,MAAA,EAAA4uG,MAAA,KAAA6R,OAAA8D,QAAA,KAAAC,UAAA,OAAA9wD,QAAA,WAAA3sD,KAAA0yF,QAAAn3E,QAAA,QAAAtF,OAAA,gBAAAD,KAAA,eAAAvZ,GAAA,iBAAAuD,MAAA8O,QAAAhG,SAAA9I,KAAA8O,QAAAhG,WAAA9I,KAAA0yF,QAAA6X,SAAA,YAAAvqG,KAAA0yF,QAAA6X,SAAA,WAAAvqG,KAAA8O,QAAAhG,UAAA9I,KAAA09G,uBAAA19G,KAAA29G,WAAA39G,KAAA49G,cAAA/4G,KAAA,QAAA,IAAApQ,GAAAuL,KAAAtI,EAAAsI,KAAA8O,QAAAzS,EAAA,aAAA2D,KAAAtH,MAAA,UAAAsH,KAAAtH,KAAAiE,EAAA,kBAAAN,EAAA,GAAA,oBAAA0E,EAAA;AAAA,AxDurBA,OwDvrBArJ,EAAAmwG,QAAAnwG,EAAAmwG,MAAA7nG,KAAA49G,cAAAp/F,QAAAxe,KAAA49G,cAAAzvG,SAAA1W,GAAAoN,KAAA,OAAA,UAAAmR,KAAA,oBAAA,WAAAte,EAAAoR,WAAAtU,EAAAwL,MAAAmO,SAAA,kBAAAnO,OAAAhL,GAAAR,EAAAwL,MAAAmO,SAAA,sBAAA6H,KAAA,oBAAA,WAAAte,EAAAoR,UAAAtU,EAAAwL,MAAAoO,YAAAzR,KAAAqZ,KAAA,eAAA,SAAAxhB,GAAAkD,EAAAoR,WAAAtU,EAAAie,iBAAAje,EAAA+gB,8BAAAvV,KAAA0yF,QAAA18E,KAAA,eAAA,WAAAvhB,EAAAmpH,cAAAzvG,SAAApN,KAAAiV,KAAA,cAAA,WAAAvhB,EAAAmpH,cAAAxvG,YAAArN,KAAA1E,IAAA2D,KAAA0yF,QAAA18E,KAAA,gBAAA,WAAApgB,GAAAnB,EAAA8hH,YAAAv2G,KAAA49G,cAAA5nG,KAAA,mBAAA,SAAAxhB,GAAAkD,EAAAoR,WAAAlT,GAAA;AAAAV,AxDwrBA,EwDxrBAV,EAAAqf,MAAAze,EAAAZ,EAAAyf,SAAA+B,KAAA,iBAAA,SAAAxhB,GAAAkD,EAAAoR,WAAA5T,IAAAV,EAAAqf,OAAAze,IAAAZ,EAAAyf,SAAAre,GAAA,MAAA,aAAAoK,KAAAtH,KAAAsH,KAAA49G,cAAA5nG,KAAA,eAAA,WAAA,MAAAte,GAAAoR,UAAAlT,GAAA,GAAApB,EAAAwL,MAAAqO,YAAA,uBAAA5Z,GAAAmpH,cAAA/4G,KAAA,eAAApQ,EAAAi+F,QAAA,GAAA95F,YAAA,UAAAoH,KAAAtH,KAAAsH,KAAA49G,cAAA5nG,KAAA,eAAA,WAAA,GAAAte,EAAAoR,UAAAlT,EAAA,OAAA,CAAApB,GAAAwL,MAAAmO,SAAA,mBAAA1Z,EAAAmpH,cAAA/4G,KAAA,eAAA,OAAA,IAAA7P,GAAAP,EAAAi+F,QAAA,EAAAh2F,GAAA1H,GAAAgkB,IAAAhkB,GAAAgR,IAAA,WAAA,MAAAxR,GAAAwL,MAAAqQ,OAAA,UAAA,KAAAjC,YAAA,mBAAAvJ,KAAA,eAAA,YAAA7E,KAAA49G,cAAA5nG,KAAA,mBAAA;AAAA,AxDyrBA,MwDzrBAte,GAAAoR,UAAA,GAAAtU,EAAAwL,MAAAmO,SAAA,mBAAAnZ,EAAAgL,KAAAxL,EAAAqH,UAAAka,IAAA,UAAA,WAAA/gB,EAAA,OAAAR,UAAAwhB,KAAA,iBAAA,WAAA,MAAAte,GAAAoR,UAAA,MAAAtU,GAAAwL,MAAAoO,YAAA,qBAAA4H,KAAA,iBAAA,SAAAvhB,GAAA,MAAAiD,GAAAoR,UAAA,QAAArU,EAAAif,SAAAlf,EAAA8zG,GAAA50F,QAAAy2F,OAAA11G,EAAAif,SAAAlf,EAAA8zG,GAAA50F,QAAAw1F,QAAA10G,EAAAwL,MAAAmO,SAAA,sBAAA6H,KAAA,eAAA,WAAAxhB,EAAAwL,MAAAoO,YAAA,qBAAApO,KAAA49G,cAAA7qG,GAAA,MAAA/S,KAAA49G,cAAAC,MAAA,SAAAppH,GAAAA,EAAAif,UAAAlf,EAAA8zG,GAAA50F,QAAAy2F,OAAA31G,EAAAwL,MAAAuW,WAAAvW,KAAAisG,WAAA,WAAAv0G,EAAAoR,UAAA9I,KAAA89G,gBAAAJ,qBAAA,WAAA,GAAA19G,KAAA0yF,QAAA3/E,GAAA,aAAA/S,KAAAtH,KAAA,WAAAsH,KAAA0yF,QAAA3/E,GAAA,UAAA/S,KAAAtH,KAAA,QAAAsH,KAAA0yF,QAAA3/E,GAAA,SAAA/S,KAAAtH,KAAA,QAAAsH,KAAAtH,KAAA;AAAA,AxD0rBA,awD1rBAsH,KAAAtH,MAAA,UAAAsH,KAAAtH,KAAA,CAAA,GAAAlE,GAAAwL,KAAA0yF,QAAA/2E,UAAAjlB,OAAA,SAAAjC,EAAA,cAAAuL,KAAA0yF,QAAA7tF,KAAA,MAAA,IAAA7E,MAAA49G,cAAAppH,EAAAyQ,KAAAxQ,GAAAuL,KAAA49G,cAAA5mH,SAAAxC,EAAAA,EAAAwC,OAAAxC,EAAAwnB,WAAAhc,KAAA0yF,QAAA12E,WAAAhc,KAAA49G,cAAAppH,EAAAkC,OAAAjC,GAAAuL,KAAA49G,cAAA5mH,SAAAgJ,KAAA49G,cAAAppH,EAAAyQ,KAAAxQ,KAAAuL,KAAA0yF,QAAAvkF,SAAA,8BAAA,IAAAnZ,GAAAgL,KAAA0yF,QAAA3/E,GAAA,WAAA/d,IAAAgL,KAAA49G,cAAAzvG,SAAA,mBAAAnO,KAAA49G,cAAA/4G,KAAA,eAAA7P,OAAAgL,MAAA49G,cAAA59G,KAAA0yF,SAAA6Y,OAAA,WAAA,MAAAvrG,MAAA49G,eAAAlvE,QAAA,WAAA1uC,KAAA0yF,QAAAtkF,YAAA;AAAApO,AxD2rBA,KwD3rBA49G,cAAAxvG,YAAA3W,EAAA,IAAAC,EAAA,IAAA2E,GAAA0R,WAAA,QAAAA,WAAA,gBAAAyQ,KAAAxe,KAAA49G,cAAA34G,KAAA,mBAAAuZ,QAAAxe,KAAA29G,UAAA39G,KAAA49G,cAAA7vG,WAAA,SAAAvZ,EAAAg3G,OAAArpG,UAAAusC,QAAAl4C,KAAAwJ,OAAAisG,WAAA,SAAAx3G,EAAAO,GAAA,MAAAR,GAAAg3G,OAAArpG,UAAA8pG,WAAApmG,MAAA7F,KAAA8F,WAAA,aAAArR,OAAAO,EAAAgL,KAAA0yF,QAAA6X,SAAA,YAAA,GAAAvqG,KAAA0yF,QAAA6X,SAAA,YAAA,QAAAvqG,MAAA89G,gBAAAvH,QAAA,WAAA,GAAA9hH,GAAAuL,KAAA0yF,QAAA3/E,GAAA,YAAAte,KAAAuL,KAAA8O,QAAAhG,UAAA9I,KAAAisG,WAAA,WAAAx3G,GAAA,UAAAuL,KAAAtH,KAAAgE,EAAAsD,KAAA0yF,QAAA,IAAA79F,KAAA,WAAAL,EAAAwL,MAAA+S,GAAA,YAAAve,EAAAwL,MAAAqQ,OAAA,UAAAlC,SAAA,mBAAAtJ,KAAA,eAAA,QAAArQ,EAAAwL,MAAAqQ,OAAA,UAAAjC,YAAA,mBAAAvJ,KAAA,eAAA;AxD4rBA,GwD5rBA,aAAA7E,KAAAtH,OAAAsH,KAAA0yF,QAAA3/E,GAAA,YAAA/S,KAAA49G,cAAAzvG,SAAA,mBAAAtJ,KAAA,eAAA,QAAA7E,KAAA49G,cAAAxvG,YAAA,mBAAAvJ,KAAA,eAAA,WAAAi5G,aAAA,WAAA,GAAA,UAAA99G,KAAAtH,KAAA,YAAAsH,KAAA8O,QAAA+4F,OAAA7nG,KAAA0yF,QAAAnkF,IAAAvO,KAAA8O,QAAA+4F,OAAA,IAAApzG,GAAAuL,KAAA49G,cAAAxvG,YAAA/R,GAAArH,EAAAR,EAAA,gBAAAwL,KAAA0yF,QAAA,GAAAr7F,eAAA8W,SAAA,kBAAAqQ,KAAAxe,KAAA8O,QAAA+4F,OAAA1sG,SAAA1G,EAAA4M,SAAApI,OAAA/D,EAAA8K,KAAA8O,QAAA4qG,MAAAtkH,EAAAF,EAAAsoH,SAAAtoH,EAAAuoH,UAAA7nH,IAAAV,GAAAsoH,SAAAtoH,EAAAuoH,WAAAz9G,KAAA8O,QAAA7V,MAAArD,EAAAiK,KAAA,uBAAAzK,EAAA,IAAAF,EAAAsoH,QAAA,WAAA,eAAAtoH,EAAAsoH,SAAA/oH,EAAA2pB,QAAA,+CAAAlpB,EAAAsoH,QAAA;AAAAtoH,AxD6rBA,EwD7rBAuoH,WAAAhpH,EAAAmpB,OAAA,iDAAA1oB,EAAAuoH,UAAA,aAAAz9G,KAAA8O,QAAA7V,OAAArD,EAAAiK,KAAAzK,EAAA,uBAAA,uBAAA4K,KAAA29G,UAAAlpH,EAAAoQ,KAAA,QAAA7P,KAAAY,EAAAiK,KAAA,uBAAApL,EAAA0Z,SAAAvY,EAAAmQ,KAAA,SAAAvR,EAAA+2G,OAAA,gBAAAz8F,SAAAu9E,MAAA,iEAAA1/B,QAAA,WAAA3sD,KAAA0yF,QAAAvkF,SAAA,iBAAAqzB,MAAA,WAAAxhC,KAAAu2G,WAAAtK,WAAA,SAAAx3G,EAAAO,GAAA,aAAAP,GAAAuL,KAAA+9G,QAAA1tG,OAAA,SAAA5b,EAAAO,GAAAR,EAAAg3G,OAAArpG,UAAA8pG,WAAApmG,MAAA7F,KAAA8F,YAAAywG,QAAA,WAAA,GAAA9hH,GAAA,QAAAuL,KAAA0yF,QAAA74F,IAAA,YAAAmG,MAAA+9G,QAAA/9G,KAAA0yF,QAAAztF,KAAAjF,KAAA8O,QAAAu9E,OAAA31F,OAAA,cAAA2Z,OAAA,WAAApO,MAAA+W,IAAA,cAAA3I,SAAApO,MAAA+D,IAAA;AAAA,AxD8rBA,MwD9rBAxR,GAAAwL,MAAAqQ,OAAA,UAAA,KAAAjC,YAAA,gDAAA1X,OAAA,UAAAyX,SAAA1Z,EAAA,kBAAA,kBAAAwN,MAAAvL,OAAA,SAAAyX,SAAA1Z,EAAA,iBAAA,mBAAAwN,MAAAA,OAAAysC,QAAA,WAAA1uC,KAAA0yF,QAAAtkF,YAAA,gBAAApO,KAAA+9G,QAAA/3G,IAAA,WAAA,MAAAxR,GAAAwL,MAAAqQ,OAAA,UAAA,KAAAjC,YAAA,kCAAAnM,MAAAoO,OAAA,WAAA7b,EAAAg3G,OAAArpG,UAAAusC,QAAAl4C,KAAAwJ,UAAA6C,QAIA,SAAArO,EAAAC,GAAA,GAAAO,GAAA,uDAAAE,GAAA6oH,SAAA,EAAAtiH,QAAA,EAAAs4G,WAAA,EAAA/yF,UAAA,EAAAkqF,WAAA,EAAAnqF,UAAA,EAAAvlB,OAAA,GAAApG,GAAA2+G,WAAA,EAAA/yF,UAAA;AAAAkqF,AxD2rBA,WwD3rBA,EAAAnqF,UAAA,EAAAvsB,GAAA+2G,OAAA,aAAAz8F,SAAAkvG,UAAA,EAAAD,WAAAE,eAAA,EAAAC,UAAA,QAAAC,YAAA,GAAA7M,WAAA,EAAAvvG,KAAA,KAAAtG,OAAA,OAAAs4G,WAAA,EAAA/yF,UAAA,EAAAkqF,UAAA,IAAAnqF,SAAA,IAAAq9F,OAAA,EAAAp+F,UAAAwtF,GAAA,SAAAzhF,GAAA,SAAAwhF,UAAA,MAAAlkF,MAAA,SAAA50B,GAAA,GAAAO,GAAAR,EAAAwL,MAAAnG,IAAApF,GAAAq0B,SAAA/c,GAAA,GAAA/W,GAAAR,EAAAwL,MAAAnG,IAAA,MAAApF,EAAAsX,IAAA/W,KAAA8gH,WAAA,EAAAh0G,KAAA,KAAAu/C,OAAA,EAAAg9D,MAAA,GAAA7iH,MAAA,IAAAmlB,OAAA,KAAAgsC,QAAA,WAAA3sD,KAAAs+G,cAAAt+G,KAAA0yF,QAAA7tF,KAAA,SAAA,gBAAA7E,MAAAs+G,gBAAAt+G,KAAAs+G,cAAA,IAAAt+G,KAAA8O,QAAAuvG,MAAAr+G,KAAA8O,QAAAuvG,OAAAr+G,KAAAs+G,aAAA,IAAA7pH,GAAAuL,KAAA9K,EAAAT,EAAAqa,QAAA1Z,EAAAF,EAAAmpH,OAAA,SAAAzoH,EAAApB,EAAA8zG,GAAAiW,OAAAC,WAAA/pH,EAAAi+F,SAAAj7F,GAAAhD,EAAAgqH,SAAAjqH,EAAA,gBAAA2G,SAAAU,SAAAT,MAAA2G,OAAAoM,SAAAnZ,EAAAE,EAAAipH,aAAAtkH;AAAA8mB,AxD4rBA,OwD5rBAzrB,EAAAyrB,SAAA9b,KAAA,WAAA,IAAAhL,IAAA,UAAA,GAAA6kH,QAAA,SAAA1pH,GAAAE,EAAA+oH,gBAAAjpH,EAAA0d,sBAAA1d,EAAA0e,SAAA1e,EAAA0e,UAAAlf,EAAA8zG,GAAA50F,QAAAy1F,SAAA10G,EAAAsH,MAAA/G,GAAAA,EAAAyd,oBAAA5N,MAAA82G,KAAA,SAAAgD,kBAAA/oH,IAAA2mH,UAAA,SAAA/nH,GAAAC,EAAAmqH,WAAA,EAAApqH,KAAA6H,GAAA5H,EAAAi+F,QAAA5wF,OAAAiM,WAAA,SAAAI,SAAA,uCAAAhT,SAAA1D,IAAAhD,EAAAoqH,iBAAArqH,EAAA,gBAAA2Z,SAAA,wEAAA4Q,UAAAtnB,IAAAgF,EAAAjI,EAAA,oBAAA2Z,SAAA,0CAAAtJ,KAAA,OAAA,UAAAkM,MAAA,WAAAtU,EAAA0R,SAAA,mBAAA;AAAA1R,AxD6rBA,EwD7rBA2R,YAAA,oBAAAuG,MAAA,WAAAlY,EAAA0R,SAAA,oBAAAyG,KAAA,WAAAnY,EAAA2R,YAAA,oBAAAmI,MAAA,SAAA/hB,GAAA,MAAAC,GAAAsH,MAAAvH,IAAA,IAAA2G,SAAAkB,IAAA5H,EAAAqqH,0BAAAtqH,EAAA,kBAAA2Z,SAAA,8BAAAlV,KAAA/D,EAAAgpH,WAAA/iH,SAAAsB,GAAAjI,EAAA,iBAAA2Z,SAAA,mBAAAtJ,KAAA,KAAAjP,GAAA4oB,KAAAppB,GAAA2pB,UAAA1iB,EAAA7H,GAAA8B,WAAApB,EAAA6pH,eAAAvqH,EAAA8B,WAAApB,EAAA8pH,eAAA9pH,EAAA8pH,YAAA9pH,EAAA6pH,aAAA1iH,EAAA4I,KAAA,KAAAnN,IAAAuE,GAAAsuG,mBAAAz1G,EAAAo8G,WAAA98G,EAAA6O,GAAAiuG,WAAA78G,EAAAwqH,iBAAA/pH,EAAA4gH,WAAAthH,EAAA6O,GAAAyyG,WAAArhH,EAAAyqH,iBAAAzqH,EAAA0qH,eAAAjqH,EAAA6oH,SAAAtpH,EAAA2qH,SAAA,EAAA5qH,EAAA6O,GAAA4qG,UAAAx2G,EAAAw2G;AxD8rBA,EwD9rBAzsE,MAAA,WAAAxhC,KAAA8O,QAAAkvG,UAAAh+G,KAAAymB,QAAAioB,QAAA,WAAA,GAAAl6C,GAAAwL,IAAA,OAAAxL,GAAA6qH,SAAA7qH,EAAA6qH,QAAA3wE,UAAAl6C,EAAAiqH,SAAA18G,OAAAvN,EAAAk+F,QAAAz8E,OAAA,WAAAjU,WAAA,UAAAoM,YAAA,uCAAArM,OAAA5G,SAAA,QAAA3G,EAAAiqH,SAAApjH,SAAA7G,EAAA8pH,eAAA9pH,EAAAk+F,QAAA7tF,KAAA,QAAArQ,EAAA8pH,eAAA9pH,GAAA+2G,OAAA,WAAA,MAAAvrG,MAAAy+G,UAAA1iH,MAAA,SAAAtH,GAAA,GAAAS,GAAAE,EAAAJ,EAAAgL,IAAA,KAAA,IAAAhL,EAAAs6D,SAAA,cAAA76D,GAAA,MAAAO,GAAAqqH,SAAArqH,EAAAqqH,QAAA3wE,UAAA15C,EAAAypH,SAAAxoG,OAAA,sBAAAjhB,EAAAoqH,SAAA,EAAApqH,EAAA8Z,QAAA/M,KAAA/M,EAAAypH,SAAA18G,KAAA/M,EAAA8Z,QAAA/M,KAAA,WAAA/M,EAAAs6D,SAAA,QAAA76D,MAAAO,EAAAypH,SAAA18G,OAAA/M,EAAAs6D,SAAA,QAAA76D;AAAAD,AxD+rBA,EwD/rBA8zG,GAAAiW,OAAAc,QAAAtJ,SAAA/gH,EAAA8Z,QAAAsvG,QAAAlpH,EAAA,EAAAV,EAAA,cAAAK,KAAA,WAAAmL,OAAAhL,EAAAypH,SAAA,KAAArpH,EAAAZ,EAAAwL,MAAAnG,IAAA,WAAA6M,MAAAtR,KAAAF,EAAAqF,KAAAC,IAAAtF,EAAAE,OAAAZ,EAAA8zG,GAAAiW,OAAAe,KAAApqH,GAAAF,GAAAuqH,OAAA,WAAA,MAAAv/G,MAAAo/G,SAAAR,UAAA,SAAAnqH,EAAAO,GAAA,GAAAY,GAAAV,EAAA8K,KAAA5K,EAAAF,EAAA4Z,OAAA,OAAA1Z,GAAAgpH,QAAA3pH,IAAAW,EAAAisD,QAAAjsD,EAAAgpH,MAAAlpH,EAAAo6D,SAAA,QAAAt6D,IAAAI,EAAAurB,OAAAnsB,EAAA8zG,GAAAiW,OAAAe,OAAA9qH,EAAA8zG,GAAAiW,OAAAe,KAAAlqH,EAAAurB,QAAAzrB,EAAAmqH,UAAA7qH,EAAA8zG,GAAAiW,OAAAe,MAAA,EAAApqH,EAAAmqH,QAAAG,IAAA3lH,IAAA,UAAArF,EAAA8zG,GAAAiW,OAAAc,QAAAC,KAAA9qH,EAAA8zG,GAAAiW,OAAAe,OAAA1pH,GAAAue,UAAAjf,EAAAw9F,QAAAv+E,YAAAJ,WAAA7e,EAAAw9F,QAAA3+E,cAAAvf,EAAA8zG,GAAAiW,OAAAe,MAAA,EAAApqH,EAAAupH,SAAA5kH,IAAA,UAAArF,EAAA8zG,GAAAiW,OAAAe,MAAApqH,EAAAw9F,QAAA7tF,KAAAjP,GAAAV,EAAAo6D,SAAA,QAAAt6D;AAAAE,AxDgsBA,IwDhsBAuxB,KAAA,WAAA,IAAAzmB,KAAAo/G,QAAA,CAAA,GAAA3qH,GAAAuL,KAAAhL,EAAAP,EAAAqa,QAAA5Z,EAAAT,EAAAgqH,QAAA,OAAAhqH,GAAA4qH,QAAArqH,EAAAopH,MAAA,GAAA5pH,GAAA8zG,GAAAiW,OAAAc,QAAA5qH,GAAA,KAAAA,EAAAgrH,QAAAhrH,EAAAirH,UAAA1qH,EAAAgrB,UAAA9qB,EAAA4M,KAAA9M,EAAA8M,MAAArN,EAAAmqH,WAAA,GAAA5pH,EAAAopH,OAAAlpH,EAAA8gB,KAAA,oBAAA,SAAAvhB,GAAA,GAAAA,EAAAif,UAAAlf,EAAA8zG,GAAA50F,QAAA02F,IAAA,CAAA,GAAAp1G,GAAAR,EAAA,YAAAwL,MAAA9K,EAAAF,EAAA0B,OAAA,UAAAtB,EAAAJ,EAAA0B,OAAA,QAAA,OAAAjC,GAAA6d,SAAAld,EAAA,IAAAX,EAAA8gH,SAAA9gH,EAAA6d,SAAApd,EAAA,IAAAT,EAAA8gH,UAAAngH,EAAAuf,MAAA,IAAA,GAAA,QAAAzf,EAAAyf,MAAA,IAAA,MAAAngB,EAAAC,EAAAi+F,QAAAztF,KAAA,aAAAM,MAAA/G,OAAAtJ,EAAA+P,KAAA,mCAAAM,MAAA/G,OAAAtJ,EAAAqQ,SAAAG,GAAA,GAAAiP,QAAAlgB,EAAA2qH,SAAA,EAAA3qH,EAAA66D,SAAA,QAAA76D,IAAA0qH,eAAA,SAAA1qH,GAAA,GAAAO,GAAAgL,KAAA9K,GAAA,EAAAE,EAAAZ,EAAA,eAAA2Z,SAAA,6DAAAvY,EAAApB,EAAA,eAAA2Z,SAAA,uBAAAhT,SAAA/F;AAAAJ,AxDisBA,EwDjsBAypH,SAAAx5G,KAAA,yBAAA5J,SAAA,gBAAA5G,IAAA,OAAAA,GAAAD,EAAAK,KAAAJ,EAAA,WAAA,QAAAS,GAAA,KAAAA,IAAAV,EAAAK,KAAAJ,EAAA,SAAAA,EAAAS,GAAAA,EAAAV,EAAA8B,WAAApB,IAAAqhB,MAAArhB,EAAA+D,KAAAxE,GAAAS,CAAA,IAAAE,GAAAZ,EAAA,mCAAA+hB,MAAA,WAAArhB,EAAAqhB,MAAA1Q,MAAA7Q,EAAA09F,QAAA,GAAA5sF,aAAA3K,SAAAvF,EAAApB,GAAAK,KAAAK,EAAA,SAAAV,EAAAC,GAAA,UAAAD,IAAAA,IAAAY,GAAAA,EAAAZ,GAAAC,GAAAW,EAAAyP,KAAArQ,EAAAC,MAAAD,EAAA6O,GAAAgN,QAAAjb,EAAAib,WAAAjb,EAAA+F,SAAAnG,EAAAypH,YAAAQ,eAAA,WAAA,QAAArpH,GAAApB,GAAA,OAAAwrB,SAAAxrB,EAAAwrB,SAAA8I,OAAAt0B,EAAAs0B,QAAA,GAAA1zB,GAAAX,EAAAuL,KAAAhL,EAAAP,EAAAqa,QAAA5Z,EAAAV,EAAAqH,SAAApH,GAAAgqH,SAAAnN,WAAAnF,OAAA,gDAAAv0G,OAAA,sBAAA62G,YAAA,WAAAvuG,MAAA,SAAAhL,EAAAuC;AAAArC,AxDksBA,EwDlsBA,SAAAJ,EAAAyG,OAAA,OAAAjH,EAAAwL,MAAAvE,SAAAjH,EAAAwL,MAAAvE,OAAAjH,EAAAwL,MAAAvE,UAAA0S,SAAA,sBAAA1Z,EAAA66D,SAAA,YAAAp6D,EAAAU,EAAA6B,KAAAm5G,KAAA,SAAAp8G,EAAAQ,GAAAP,EAAA66D,SAAA,OAAA96D,EAAAoB,EAAAZ,KAAA8K,KAAA,SAAArI,EAAAC,GAAA1C,EAAAgrB,UAAAtoB,EAAAsoB,SAAAkB,KAAAhsB,EAAA6e,aAAArc,EAAAsoB,SAAAjU,IAAA7W,EAAAif,aAAA3f,EAAAwL,MAAAoO,YAAA,sBAAA3S,OAAArG,GAAAX,EAAA66D,SAAA,WAAA73D,EAAA7B,EAAA8B,IAAAlD,EAAA8zG,GAAAiW,OAAAc,QAAAtJ,aAAAmJ,eAAA,SAAAlqH,GAAA,QAAA0C,GAAAlD,GAAA,OAAAw7G,iBAAAx7G,EAAAw7G,iBAAAiF,aAAAzgH,EAAAygH,aAAAj1F,SAAAxrB,EAAAwrB,SAAA3a,KAAA7Q,EAAA6Q,MAAArQ,EAAAA,IAAAP,EAAAuL,KAAA8O,QAAAgnG,UAAA9gH,CAAA,IAAAE,GAAA8K,KAAA5K,EAAAF,EAAA4Z,QAAAlZ,EAAAV,EAAAupH,SAAA5kH,IAAA,YAAApC,EAAA,gBAAAzC,GAAAA,EAAA;AAAAE,AxDmsBA,EwDnsBAupH,SAAA3I,WAAA3J,OAAA,qBAAAsC,YAAA,WAAA+E,WAAAt+G,EAAAw9F,QAAA1xE,SAAA5rB,EAAA4rB,SAAA+yF,UAAA3+G,EAAA2+G,UAAAhzF,SAAA3rB,EAAA2rB,SAAAmqF,UAAAh2G,EAAAyqH,aAAA7L,QAAAr8G,EAAAyI,MAAA,SAAAzL,EAAAO,GAAAR,EAAAwL,MAAAmO,SAAA,sBAAAjZ,EAAAo6D,SAAA,cAAA76D,EAAAiD,EAAA1C,KAAA+gH,OAAA,SAAAvhH,EAAAC,GAAAS,EAAAo6D,SAAA,SAAA96D,EAAAkD,EAAAjD,KAAAqL,KAAA,SAAArL,EAAAO,GAAAR,EAAAwL,MAAAoO,YAAA,sBAAAhZ,EAAAqG,OAAAjH,EAAAwL,MAAAvE,SAAArG,EAAAoG,MAAAhH,EAAAwL,MAAAxE,QAAAtG,EAAAo6D,SAAA,aAAA76D,EAAAiD,EAAA1C,IAAAR,EAAA8zG,GAAAiW,OAAAc,QAAAtJ,YAAAl8G,IAAA,WAAAjE,GAAAqP,KAAA,oBAAAkJ,SAAA,qCAAAwxG,WAAA,WAAA,GAAAnrH,GAAAwL,KAAA8O,OAAA,OAAA,SAAAta,EAAAiH,OAAAjH,EAAA02G,UAAA3wG,KAAA+3B,IAAA99B,EAAA02G,UAAA12G,EAAAiH;AxDosBA,EwDpsBAikH,UAAA,SAAAjrH,GAAA,GAAAW,GAAAJ,KAAAE,GAAA,EAAA,EAAAT,KAAA,gBAAAA,IAAA,gBAAAA,IAAA,KAAAA,MAAAO,EAAAP,EAAAK,MAAAL,EAAAK,MAAA,MAAAL,EAAA,GAAAA,EAAA,IAAA,IAAAO,EAAAgC,SAAAhC,EAAA,GAAAA,EAAA,IAAAR,EAAAK,MAAA,OAAA,OAAA,SAAAL,EAAAC,IAAAO,EAAAR,KAAAQ,EAAAR,KAAAU,EAAAV,GAAAQ,EAAAR,GAAAQ,EAAAR,GAAAC,KAAAA,GAAA+4G,GAAAx4G,EAAA+Q,KAAA,KAAAgmB,GAAA/2B,EAAA+Q,KAAA,KAAA+iB,OAAA5zB,EAAA6Q,KAAA,OAAAtR,EAAAD,EAAAuD,UAAAvD,EAAA8zG,GAAAiW,OAAAp8G,UAAA2M,QAAAkR,SAAAvrB,IAAAA,EAAAD,EAAA8zG,GAAAiW,OAAAp8G,UAAA2M,QAAAkR,SAAA5qB,EAAA4K,KAAAy+G,SAAA1rG,GAAA,YAAA3d,GAAA4K,KAAAy+G,SAAA38G,OAAA9B,KAAAy+G,SAAA5kH,KAAAkS,IAAA,EAAAmV,KAAA,IAAAlB,SAAAxrB,EAAAuD,QAAAikF,GAAAx1E,QAAA/R,IAAAW,GAAA4K,KAAAy+G,SAAA18G,QAAAiqG,YAAA,SAAAv3G,GAAA,GAAAO,GAAAgL,KAAApK,KAAA6B,GAAA,CAAAjD,GAAAK,KAAAJ,EAAA,SAAAD,EAAAC,GAAAO,EAAAi3G,WAAAz3G,EAAAC,GAAAD,IAAAU,KAAAuC,GAAA,GAAAjD,IAAAY,KAAAQ,EAAApB,GAAAC,KAAAgD,GAAAuI,KAAAy/G,QAAAz/G,KAAAy+G,SAAA1rG,GAAA,qBAAA/S,KAAAy+G,SAAA3I,UAAA,SAAAlgH;AxDqsBA,EwDrsBAq2G,WAAA,SAAAx3G,EAAAS,GAAA,GAAAE,GAAA4K,KAAApK,EAAAR,EAAAqpH,QAAA,QAAAhqH,GAAA,IAAA,cAAAA,EAAA,aAAA,MAAA,KAAA,UAAAW,EAAA+pH,eAAAjqH,EAAA,MAAA,KAAA,YAAAE,EAAA0pH,0BAAA7lH,KAAA,GAAA/D,EAAA,MAAA,KAAA,cAAAU,EAAAwY,YAAAhZ,EAAA0Z,QAAAqvG,aAAAhwG,SAAAnZ,EAAAE,EAAA,MAAA,KAAA,WAAAA,EAAAU,EAAAuY,SAAA,sBAAAvY,EAAAwY,YAAA,qBAAA,MAAA,KAAA,YAAA,GAAA3W,GAAA7B,EAAAmd,GAAA,mBAAAtb,KAAAvC,GAAAU,EAAA07G,UAAA,YAAA75G,GAAAvC,GAAAE,EAAA6pH,gBAAA,MAAA,KAAA,WAAA7pH,EAAAsqH,UAAAxqH,EAAA,MAAA,KAAA,YAAA,GAAAwC,GAAA9B,EAAAmd,GAAA,mBAAArb,KAAAxC,GAAAU,EAAAkgH,UAAA,WAAAp+G,GAAA,gBAAAxC,IAAAU,EAAAkgH,UAAA,SAAA,UAAA5gH,IAAAwC,GAAAxC,KAAA,GAAAE,EAAA8pH,eAAAhqH;AAAA,AxDssBA,KwDtsBA,KAAA,QAAAV,EAAA,mBAAAY,EAAAypH,kBAAArgG,KAAA,IAAAtpB,GAAA,WAAAV,EAAAg3G,OAAArpG,UAAA8pG,WAAApmG,MAAAzQ,EAAA0Q,YAAA25G,MAAA,WAAA,GAAAzqH,GAAAE,EAAAT,EAAAuL,KAAA8O,QAAA1Z,EAAA4K,KAAAy+G,SAAA1rG,GAAA,WAAA,IAAA/S,KAAA0yF,QAAA5wF,OAAAjI,KAAA2B,MAAA,OAAA0vG,UAAA,EAAAzvG,OAAA,IAAAhH,EAAAssB,SAAAtsB,EAAA+G,QAAA/G,EAAA+G,MAAA/G,EAAAssB,UAAA/rB,EAAAgL,KAAAy+G,SAAA5kH,KAAA4B,OAAA,OAAAD,MAAA/G,EAAA+G,QAAAC,SAAAvG,EAAAqF,KAAAC,IAAA,EAAA/F,EAAAy2G,UAAAl2G,GAAA,SAAAP,EAAAgH,OAAA,GAAAjH,EAAA6D,QAAA6yG,UAAAlrG,KAAA0yF,QAAA74F,KAAAqxG,UAAAh2G,EAAAuG,OAAA,aAAA,CAAAuE,KAAAy+G,SAAA38G,MAAA,IAAAlM,GAAAoK,KAAA0yF,QAAA74F,IAAA,SAAA,QAAA4B,QAAArG,IAAA4K,KAAAy+G,SAAA18G,OAAA/B,KAAA0yF,QAAAj3F,OAAAlB,KAAAC,IAAA5E,EAAAV,QAAA8K,MAAA0yF,QAAAj3F,OAAAlB,KAAAC,IAAA/F,EAAAgH,OAAAzG,EAAA,GAAAgL,MAAAy+G,SAAA1rG,GAAA,qBAAA/S,KAAAy+G,SAAA3I,UAAA,SAAA,YAAA91G,KAAA2/G;AxDusBA,IwDvsBAnrH,EAAAuD,OAAAvD,EAAA8zG,GAAAiW,QAAAn/F,QAAA,SAAAjT,KAAA,EAAAmzG,KAAA,EAAAd,WAAA,SAAAhqH,GAAA,GAAAC,GAAAD,EAAAqQ,KAAA,KAAA,OAAApQ,KAAAuL,KAAAmM,MAAA,EAAA1X,EAAAuL,KAAAmM,MAAA,mBAAA1X,GAAA4qH,QAAA,SAAA5qH,GAAAuL,KAAAw/G,IAAAhrH,EAAA8zG,GAAAiW,OAAAc,QAAArtF,OAAAv9B,MAAAD,EAAAuD,OAAAvD,EAAA8zG,GAAAiW,OAAAc,SAAAO,aAAAC,gBAAAP,KAAA,EAAA3nH,OAAAnD,EAAAwR,IAAA,iDAAAlR,MAAA,KAAA,SAAAN,GAAA,MAAAA,GAAA,oBAAAuR,KAAA,KAAAisB,OAAA,SAAAv9B,GAAA,IAAAuL,KAAA4/G,UAAA5oH,SAAAmH,WAAA,WAAA3J,EAAA8zG,GAAAiW,OAAAc,QAAAO,UAAA5oH,QAAAxC,EAAAqH,UAAAma,KAAAxhB,EAAA8zG,GAAAiW,OAAAc,QAAA1nH,OAAA,SAAAlD,GAAA,MAAAD,GAAAC,EAAA6d,QAAAqO,SAAAnsB,EAAA8zG,GAAAiW,OAAAc,QAAAC,MAAA,EAAA,UAAA,GAAA9qH,EAAAqH,UAAAma,KAAA,yBAAA,SAAAhhB;AAAAP,AxDwsBA,EwDxsBAqa,QAAAmvG,gBAAAjpH,EAAA0d,sBAAA1d,EAAA0e,SAAA1e,EAAA0e,UAAAlf,EAAA8zG,GAAA50F,QAAAy1F,SAAA10G,EAAAsH,MAAA/G,GAAAA,EAAAyd,oBAAAje,EAAAgS,QAAAwP,KAAA,wBAAAxhB,EAAA8zG,GAAAiW,OAAAc,QAAAtJ,QAAA,IAAA/gH,IAAAgL,KAAA6/G,aAAA5oH,OAAAzC,EAAA,eAAA2Z,SAAA,sBAAAhT,SAAAU,SAAAT,MAAAvB,KAAA2B,MAAAwE,KAAAxE,QAAAC,OAAAuE,KAAAvE,UAAA,OAAAjH,GAAA6O,GAAA4qG,UAAAj5G,EAAAi5G,WAAAjuG,KAAA4/G,UAAA//G,KAAA7K,GAAAA,GAAA05C,QAAA,SAAAj6C,GAAA,GAAAO,GAAAR,EAAAmC,QAAAlC,EAAAuL,KAAA4/G,UAAA,KAAA5qH,GAAAgL,KAAA6/G,aAAAhgH,KAAAG,KAAA4/G,UAAAjiH,OAAA3I,EAAA,GAAA,IAAA,IAAAgL,KAAA4/G,UAAA5oH,QAAAxC,GAAAqH,SAAA2K,SAAAyP,OAAA,mBAAAxhB,EAAA4G,QAAA,IAAAnG,GAAA,CAAAV,GAAAK,KAAAmL,KAAA4/G,UAAA,WAAA1qH,EAAAqF,KAAAC,IAAAtF,EAAA8K,KAAAnG,IAAA;AxDysBA,GwDzsBAmG,KAAAs/G,KAAApqH,GAAAuG,OAAA,WAAA,GAAAhH,GAAAO,CAAA,OAAAR,GAAA2qB,QAAAurF,MAAAl2G,EAAA2qB,QAAAC,QAAA,GAAA3qB,EAAA8F,KAAAC,IAAAqB,SAAA6L,gBAAAwpG,aAAAr1G,SAAAT,KAAA81G,cAAAl8G,EAAAuF,KAAAC,IAAAqB,SAAA6L,gBAAA5M,aAAAe,SAAAT,KAAAN,cAAA9F,EAAAP,EAAAD,EAAAgS,QAAA/K,SAAA,KAAAhH,EAAA,MAAAD,EAAAqH,UAAAJ,SAAA,MAAAD,MAAA,WAAA,GAAA/G,GAAAO,CAAA,OAAAR,GAAA2qB,QAAAurF,MAAAj2G,EAAA8F,KAAAC,IAAAqB,SAAA6L,gBAAAypG,YAAAt1G,SAAAT,KAAA+1G,aAAAn8G,EAAAuF,KAAAC,IAAAqB,SAAA6L,gBAAA7M,YAAAgB,SAAAT,KAAAP,aAAA7F,EAAAP,EAAAD,EAAAgS,QAAAhL,QAAA,KAAA/G,EAAA,MAAAD,EAAAqH,UAAAL,QAAA,MAAAu6G,OAAA,WAAA,GAAAthH,GAAAD,KAAAA,GAAAK,KAAAL,EAAA8zG,GAAAiW,OAAAc,QAAAO,UAAA,WAAAnrH,EAAAA,EAAAqD,IAAAkI,QAAAvL,EAAAoF,KAAA2B,MAAA;AAAAC,AxD0sBA,OwD1sBA,IAAA5B,KAAA2B,MAAAhH,EAAA8zG,GAAAiW,OAAAc,QAAA7jH,QAAAC,OAAAjH,EAAA8zG,GAAAiW,OAAAc,QAAA5jH,cAAAjH,EAAAuD,OAAAvD,EAAA8zG,GAAAiW,OAAAc,QAAAl9G,WAAAusC,QAAA,WAAAl6C,EAAA8zG,GAAAiW,OAAAc,QAAA3wE,QAAA1uC,KAAAw/G,SAAA38G,QAIA,SAAArO,EAAAC,GAAA,GAAAO,GAAA,CAAAR,GAAA+2G,OAAA,YAAA/2G,EAAA8zG,GAAA+F,OAAA1C,kBAAA,QAAA78F,SAAAyY,SAAA,EAAA6kF,SAAA,EAAA5xG,IAAA,IAAA83B,IAAA,EAAAwtF,YAAA,aAAA1pF,OAAA,EAAA9O,KAAA,EAAAzuB,MAAA,EAAAi+B,OAAA,MAAA61B,QAAA,WAAA,GAAAl4D,GAAAuL,KAAA9K,EAAA8K,KAAA8O,QAAA1Z,EAAA4K,KAAA0yF,QAAAztF,KAAA,qBAAAkJ,SAAA,kCAAAvY,EAAA,2EAAA6B,EAAAvC,EAAA4hC,QAAA5hC,EAAA4hC,OAAA9/B,QAAA,EAAAU,IAAAsI,MAAA+/G,aAAA,EAAA//G,KAAAggH,eAAA;AAAAhgH,AxDusBA,KwDvsBAigH,aAAA,EAAAjgH,KAAAkgH,aAAA,KAAAlgH,KAAAmgH,qBAAAngH,KAAAqsG,aAAArsG,KAAA0yF,QAAAvkF,SAAA,uBAAAnO,KAAA8/G,YAAA,8CAAA5qH,EAAA4T,SAAA,kCAAA,KAAA9I,KAAAo2B,MAAA5hC,MAAAU,EAAAkhC,QAAAlhC,EAAAkhC,SAAA,IAAAlhC,EAAA4hC,SAAA5hC,EAAA4hC,QAAA92B,KAAAogH,YAAApgH,KAAAogH,cAAAlrH,EAAA4hC,OAAA9/B,QAAA,IAAA9B,EAAA4hC,OAAA9/B,SAAA9B,EAAA4hC,QAAA5hC,EAAA4hC,OAAA,GAAA5hC,EAAA4hC,OAAA,MAAA92B,KAAAo2B,MAAA5hC,EAAA,eAAA2G,SAAA6E,KAAA0yF,SAAAvkF,SAAA,oCAAA,QAAAjZ,EAAAkhC,OAAA,QAAAlhC,EAAAkhC,MAAA,oBAAAlhC,EAAAkhC,MAAA,KAAA,KAAA,GAAA/5B,GAAAjH,EAAA4B,OAAAS,EAAA4E,EAAAA,GAAA,EAAA3E,EAAAmI,KAAAjK,EAAAoK,MAAA8zG,QAAA1+G,EAAA0C,IAAAtD,EAAAkD,EAAAqO,KAAA,KAAA5K,SAAA1G,EAAAi+F;AAAA1yF,AxDwsBA,KwDxsBApI,OAAAoI,KAAA8zG,QAAApuG,GAAA,GAAA1F,KAAA8zG,QAAAh8G,IAAAkI,KAAAo2B,OAAA1/B,OAAA,KAAA6f,MAAA,SAAA/hB,GAAAA,EAAAie,mBAAA1B,MAAA,WAAA7b,EAAA4T,UAAAtU,EAAAwL,MAAAmO,SAAA,mBAAA,WAAA3Z,EAAAwL,MAAAoO,YAAA,oBAAAuG,MAAA,WAAAzf,EAAA4T,SAAAtU,EAAAwL,MAAA4U,QAAApgB,EAAA,8BAAA4Z,YAAA,kBAAA5Z,EAAAwL,MAAAmO,SAAA,qBAAAyG,KAAA,WAAApgB,EAAAwL,MAAAoO,YAAA,oBAAApO,KAAA8zG,QAAAj/G,KAAA,SAAAJ,GAAAD,EAAAwL,MAAAnK,KAAA,yBAAApB,KAAAuL,KAAA8zG,QAAA4K,QAAA,SAAAxpH,GAAA,GAAAU,GAAA6B,EAAAC,EAAA2E,EAAAjH,EAAAZ,EAAAwL,MAAAnK,KAAA,yBAAA,KAAApB,EAAAqa,QAAAhG,SAAA,CAAA,OAAA5T,EAAAwe,SAAA,IAAAlf,GAAA8zG,GAAA50F,QAAA01F,KAAA,IAAA50G,GAAA8zG,GAAA50F,QAAAu1F;AAAA,AxDysBA,IwDzsBAz0G,GAAA8zG,GAAA50F,QAAAq2F,QAAA,IAAAv1G,GAAA8zG,GAAA50F,QAAAo2F,UAAA,IAAAt1G,GAAA8zG,GAAA50F,QAAA22F,GAAA,IAAA71G,GAAA8zG,GAAA50F,QAAAu2F,MAAA,IAAAz1G,GAAA8zG,GAAA50F,QAAAs1F,KAAA,IAAAx0G,GAAA8zG,GAAA50F,QAAA41F,KAAA,GAAAp0G,EAAAud,kBAAAhe,EAAAsrH,cAAAtrH,EAAAsrH,aAAA,EAAAvrH,EAAAwL,MAAAmO,SAAA,mBAAAvY,EAAAnB,EAAA4rH,OAAAnrH,EAAAE,GAAAQ,KAAA,GAAA,OAAA,OAAAyG,EAAA5H,EAAAqa,QAAAwY,KAAA7vB,EAAAC,EAAAjD,EAAAqa,QAAAgoB,QAAAriC,EAAAqa,QAAAgoB,OAAA9/B,OAAAvC,EAAAqiC,OAAA1hC,GAAAX,EAAAoE,QAAA3D,EAAAwe,SAAA,IAAAlf,GAAA8zG,GAAA50F,QAAA01F,KAAA1xG,EAAAjD,EAAA2rH,WAAA,MAAA,KAAA5rH,GAAA8zG,GAAA50F,QAAAu1F,IAAAvxG,EAAAjD,EAAA6rH,WAAA,MAAA,KAAA9rH,GAAA8zG,GAAA50F,QAAAq2F,QAAAryG,EAAAjD,EAAA8rH,gBAAA9oH,GAAAhD,EAAA6rH,YAAA7rH,EAAA2rH,aAAAprH,EAAA,MAAA,KAAAR,GAAA8zG,GAAA50F,QAAAo2F,UAAApyG,EAAAjD,EAAA8rH,gBAAA9oH,GAAAhD,EAAA6rH,YAAA7rH,EAAA2rH,aAAAprH,EAAA,MAAA,KAAAR,GAAA8zG,GAAA50F,QAAA22F,GAAA,IAAA71G,GAAA8zG,GAAA50F,QAAAu2F;AAAA,AxD0sBA,GwD1sBAxyG,IAAAhD,EAAA6rH,YAAA,MAAA5oH,GAAAjD,EAAA8rH,gBAAA9oH,EAAA4E,EAAA,MAAA,KAAA7H,GAAA8zG,GAAA50F,QAAAs1F,KAAA,IAAAx0G,GAAA8zG,GAAA50F,QAAA41F,KAAA,GAAA7xG,IAAAhD,EAAA2rH,YAAA,MAAA1oH,GAAAjD,EAAA8rH,gBAAA9oH,EAAA4E,GAAA5H,EAAA+rH,OAAAtrH,EAAAE,EAAAsC,MAAAmmH,MAAA,SAAA7oH,GAAA,GAAAE,GAAAV,EAAAwL,MAAAnK,KAAA,yBAAApB,GAAAsrH,cAAAtrH,EAAAsrH,aAAA,EAAAtrH,EAAAgsH,MAAAzrH,EAAAE,GAAAT,EAAA4gH,QAAArgH,EAAAE,GAAAV,EAAAwL,MAAAoO,YAAA,sBAAApO,KAAA0gH,gBAAA1gH,KAAAigH,aAAA,GAAAvxE,QAAA,WAAA,MAAA1uC,MAAA8zG,QAAAz4G,SAAA2E,KAAAo2B,MAAA/6B,SAAA2E,KAAA0yF,QAAAtkF,YAAA,kHAAApM,WAAA,UAAAiU,OAAA,WAAAjW,KAAAusG,gBAAAvsG,MAAA6sG,cAAA,SAAAp4G;AAAA,AxD2sBA,GwD3sBAS,GAAAE,EAAAQ,EAAA6B,EAAAC,EAAA2E,EAAAI,EAAAC,EAAAC,EAAA3H,EAAAgL,KAAA8O,OAAA,OAAA9Z,GAAA8T,UAAA,GAAA9I,KAAA2gH,aAAAnlH,MAAAwE,KAAA0yF,QAAA8Q,aAAA/nG,OAAAuE,KAAA0yF,QAAA3gD,eAAA/xC,KAAA61G,cAAA71G,KAAA0yF,QAAA5pE,SAAA5zB,GAAA0O,EAAAnP,EAAAof,MAAAhQ,EAAApP,EAAAwf,OAAA7e,EAAA4K,KAAA4gH,oBAAA1rH,GAAAU,EAAAoK,KAAAsgH,YAAAtgH,KAAAogH,YAAA,EAAA1oH,EAAAsI,KAAAA,KAAA8zG,QAAAj/G,KAAA,SAAAJ,GAAA,GAAAO,GAAAuF,KAAA6uC,IAAAh0C,EAAAsC,EAAAo/B,OAAAriC,GAAAmB,GAAAZ,IAAAY,EAAAZ,EAAAyC,EAAAjD,EAAAwL,MAAA3D,EAAA5H,KAAAO,EAAAohC,SAAA,GAAAp2B,KAAA82B,OAAA,KAAA9hC,EAAAs9B,MAAAj2B,GAAA,EAAA5E,EAAAjD,EAAAwL,KAAA8zG,QAAAz3G,KAAAI,EAAAuD,KAAAqgH,OAAA5rH,EAAA4H,GAAAI,KAAA,GAAA,GAAAuD,KAAAggH,eAAA,EAAAtoH,EAAAwoH,aAAA7jH,EAAA5E,EAAA0W,SAAA,mBAAAwG,QAAAjY,EAAAjF,EAAAqxB,SAAAnsB,GAAAnI,EAAAC,EAAA6d,QAAAqJ,UAAAD,UAAA3I,GAAA,qBAAA/S,KAAA6gH,aAAAlkH,GAAAukB,KAAA,EAAAnV,IAAA,IAAAmV,KAAAzsB,EAAAof,MAAAnX,EAAAwkB,KAAAzpB,EAAA+D,QAAA;AAAAuQ,AxD4sBA,IwD5sBAtX,EAAAwf,MAAAvX,EAAAqP,IAAAtU,EAAAgE,SAAA,GAAAwU,SAAAxY,EAAAoC,IAAA,kBAAA,KAAA,IAAAoW,SAAAxY,EAAAoC,IAAA,qBAAA,KAAA,IAAAoW,SAAAxY,EAAAoC,IAAA,aAAA,KAAA,IAAAmG,KAAA8zG,QAAAxlG,SAAA,mBAAAtO,KAAAwgH,OAAA/rH,EAAA4H,EAAAjH,GAAA4K,KAAAigH,aAAA,GAAA,KAAA/S,YAAA,SAAA14G,GAAA,OAAA,GAAA64G,WAAA,SAAA74G,GAAA,GAAAC,IAAAmP,EAAApP,EAAAqf,MAAAhQ,EAAArP,EAAAyf,OAAAjf,EAAAgL,KAAA4gH,oBAAAnsH,EAAA,OAAAuL,MAAAwgH,OAAAhsH,EAAAwL,KAAAkgH,aAAAlrH,IAAA,GAAAs4G,WAAA,SAAA94G,GAAA,MAAAwL,MAAA8zG,QAAA1lG,YAAA,mBAAApO,KAAAggH,eAAA,EAAAhgH,KAAAygH,MAAAjsH,EAAAwL,KAAAkgH,cAAAlgH,KAAAq1G,QAAA7gH,EAAAwL,KAAAkgH,cAAAlgH,KAAAkgH,aAAA,KAAAlgH,KAAA6gH,aAAA,KAAA7gH,KAAAigH,aAAA,GAAA,GAAAE,mBAAA,WAAAngH,KAAA8/G,YAAA,aAAA9/G,KAAA8O,QAAAgxG,YAAA,WAAA;AxD6sBA,EwD7sBAc,oBAAA,SAAApsH,GAAA,GAAAC,GAAAO,EAAAE,EAAAE,EAAAQ,CAAA,OAAA,eAAAoK,KAAA8/G,aAAArrH,EAAAuL,KAAA2gH,YAAAnlH,MAAAxG,EAAAR,EAAAoP,EAAA5D,KAAA61G,cAAA30F,MAAAlhB,KAAA6gH,aAAA7gH,KAAA6gH,aAAA3/F,KAAA,KAAAzsB,EAAAuL,KAAA2gH,YAAAllH,OAAAzG,EAAAR,EAAAqP,EAAA7D,KAAA61G,cAAA9pG,KAAA/L,KAAA6gH,aAAA7gH,KAAA6gH,aAAA90G,IAAA,IAAA7W,EAAAF,EAAAP,EAAAS,EAAA,IAAAA,EAAA,GAAA,EAAAA,IAAAA,EAAA,GAAA,aAAA8K,KAAA8/G,cAAA5qH,EAAA,EAAAA,GAAAE,EAAA4K,KAAAsgH,YAAAtgH,KAAAogH,YAAAxqH,EAAAoK,KAAAogH,YAAAlrH,EAAAE,EAAA4K,KAAAugH,gBAAA3qH,IAAAyqH,OAAA,SAAA7rH,EAAAC,GAAA,GAAAO,IAAA4C,OAAAoI,KAAA8zG,QAAAr/G,GAAAoE,MAAAmH,KAAAnH,QAAA,OAAAmH,MAAA8O,QAAAgoB,QAAA92B,KAAA8O,QAAAgoB,OAAA9/B,SAAAhC,EAAA6D,MAAAmH,KAAA82B,OAAAriC,GAAAO,EAAA8hC,OAAA92B,KAAA82B,UAAA92B,KAAAsvD,SAAA,QAAA96D,EAAAQ,IAAAwrH,OAAA,SAAAhsH,EAAAC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ;AAAAoK,AxD8sBA,KwD9sBA8O,QAAAgoB,QAAA92B,KAAA8O,QAAAgoB,OAAA9/B,QAAA9B,EAAA8K,KAAA82B,OAAAriC,EAAA,EAAA,GAAA,IAAAuL,KAAA8O,QAAAgoB,OAAA9/B,QAAAgJ,KAAA8O,QAAAsnB,SAAA,IAAA,IAAA3hC,GAAAO,EAAAE,GAAA,IAAAT,GAAAS,EAAAF,KAAAA,EAAAE,GAAAF,IAAAgL,KAAA82B,OAAAriC,KAAAW,EAAA4K,KAAA82B,SAAA1hC,EAAAX,GAAAO,EAAAY,EAAAoK,KAAAsvD,SAAA,QAAA96D,GAAAoD,OAAAoI,KAAA8zG,QAAAr/G,GAAAoE,MAAA7D,EAAA8hC,OAAA1hC,IAAAF,EAAA8K,KAAA82B,OAAAriC,EAAA,EAAA,GAAAmB,KAAA,GAAAoK,KAAA82B,OAAAriC,EAAAO,GAAA,KAAAA,IAAAgL,KAAAnH,UAAAjD,EAAAoK,KAAAsvD,SAAA,QAAA96D,GAAAoD,OAAAoI,KAAA8zG,QAAAr/G,GAAAoE,MAAA7D,IAAAY,KAAA,GAAAoK,KAAAnH,MAAA7D,KAAAyrH,MAAA,SAAAjsH,EAAAC,GAAA,GAAAO,IAAA4C,OAAAoI,KAAA8zG,QAAAr/G,GAAAoE,MAAAmH,KAAAnH,QAAAmH,MAAA8O,QAAAgoB,QAAA92B,KAAA8O,QAAAgoB,OAAA9/B,SAAAhC,EAAA6D,MAAAmH,KAAA82B,OAAAriC,GAAAO,EAAA8hC,OAAA92B,KAAA82B,UAAA92B,KAAAsvD,SAAA,OAAA96D,EAAAQ,IAAAqgH,QAAA,SAAA7gH,EAAAC,GAAA,IAAAuL,KAAA+/G,cAAA//G,KAAAggH,cAAA;AAAA,AxD+sBA,GwD/sBAhrH,IAAA4C,OAAAoI,KAAA8zG,QAAAr/G,GAAAoE,MAAAmH,KAAAnH,QAAAmH,MAAA8O,QAAAgoB,QAAA92B,KAAA8O,QAAAgoB,OAAA9/B,SAAAhC,EAAA6D,MAAAmH,KAAA82B,OAAAriC,GAAAO,EAAA8hC,OAAA92B,KAAA82B,UAAA92B,KAAAsvD,SAAA,SAAA96D,EAAAQ,KAAA6D,MAAA,SAAArE,GAAA,MAAAsR,WAAA9O,QAAAgJ,KAAA8O,QAAAjW,MAAAmH,KAAAugH,gBAAA/rH,GAAAwL,KAAA0gH,gBAAA1gH,KAAAq1G,QAAA,KAAA,GAAA,QAAAr1G,KAAA8gH,UAAAhqF,OAAA,SAAAriC,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,CAAA,IAAAkQ,UAAA9O,OAAA,EAAA,MAAAgJ,MAAA8O,QAAAgoB,OAAAriC,GAAAuL,KAAAugH,gBAAAvrH,GAAAgL,KAAA0gH,gBAAA1gH,KAAAq1G,QAAA,KAAA5gH,GAAA,MAAA,KAAAqR,UAAA9O,OAAA,MAAAgJ,MAAA+gH,SAAA,KAAAvsH,EAAA0H,QAAA4J,UAAA,IAAA,MAAA9F,MAAA8O,QAAAgoB,QAAA92B,KAAA8O,QAAAgoB,OAAA9/B,OAAAgJ,KAAA+gH,QAAAtsH,GAAAuL,KAAAnH,OAAA,KAAA3D,EAAA8K,KAAA8O,QAAAgoB,OAAA1hC,EAAA0Q,UAAA;AAAAlQ,AxDgtBA,EwDhtBA,EAAAA,EAAAV,EAAA8B,OAAApB,GAAA,EAAAV,EAAAU,GAAAoK,KAAAugH,gBAAAnrH,EAAAQ,IAAAoK,KAAAq1G,QAAA,KAAAz/G,EAAAoK,MAAA0gH,iBAAAzU,WAAA,SAAAx3G,EAAAO,GAAA,GAAAE,GAAAE,EAAA,CAAA,QAAAZ,EAAA0H,QAAA8D,KAAA8O,QAAAgoB,UAAA1hC,EAAA4K,KAAA8O,QAAAgoB,OAAA9/B,QAAAxC,EAAAg3G,OAAArpG,UAAA8pG,WAAApmG,MAAA7F,KAAA8F,WAAArR,GAAA,IAAA,WAAAO,GAAAgL,KAAA8zG,QAAAp9G,OAAA,mBAAAke,OAAA5U,KAAA8zG,QAAA1lG,YAAA,kBAAApO,KAAA8zG,QAAAvJ,SAAA,YAAA,GAAAvqG,KAAA0yF,QAAAvkF,SAAA,iBAAAnO,KAAA8zG,QAAAvJ,SAAA,YAAA,GAAAvqG,KAAA0yF,QAAAtkF,YAAA,eAAA,MAAA,KAAA,cAAApO,KAAAmgH,qBAAAngH,KAAA0yF,QAAAtkF,YAAA,2CAAAD,SAAA,aAAAnO,KAAA8/G;AAAA9/G,AxDitBA,KwDjtBA0gH,eAAA,MAAA,KAAA,QAAA1gH,KAAAigH,aAAA,EAAAjgH,KAAA0gH,gBAAA1gH,KAAAq1G,QAAA,KAAA,GAAAr1G,KAAAigH,aAAA,CAAA,MAAA,KAAA,SAAA,IAAAjgH,KAAAigH,aAAA,EAAAjgH,KAAA0gH,gBAAAxrH,EAAA,EAAAE,EAAAF,EAAAA,GAAA,EAAA8K,KAAAq1G,QAAA,KAAAngH,EAAA8K,MAAAigH,aAAA,IAAAa,OAAA,WAAA,GAAAtsH,GAAAwL,KAAA8O,QAAAjW,KAAA,OAAArE,GAAAwL,KAAAugH,gBAAA/rH,IAAAusH,QAAA,SAAAvsH,GAAA,GAAAC,GAAAO,EAAAE,CAAA,IAAA4Q,UAAA9O,OAAA,MAAAvC,GAAAuL,KAAA8O,QAAAgoB,OAAAtiC,GAAAC,EAAAuL,KAAAugH,gBAAA9rH,EAAA,KAAAO,EAAAgL,KAAA8O,QAAAgoB,OAAAp9B,QAAAxE,EAAA,EAAAA,EAAAF,EAAAgC,OAAA9B,GAAA,EAAAF,EAAAE,GAAA8K,KAAAugH,gBAAAvrH,EAAAE,GAAA,OAAAF,IAAAurH,gBAAA,SAAA/rH,GAAA,GAAAA,GAAAwL,KAAAogH,YAAA,MAAApgH,MAAAogH,WAAA,IAAA5rH,GAAAwL,KAAAsgH,YAAA,MAAAtgH,MAAAsgH,WAAA,IAAA7rH,GAAAuL,KAAA8O,QAAAwY,KAAA,EAAAtnB,KAAA8O,QAAAwY,KAAA,EAAAtyB,GAAAR,EAAAwL,KAAAogH,aAAA3rH,EAAAS,EAAAV,EAAAQ;AAAA,AxDktBA,MwDltBA,GAAAuF,KAAA6uC,IAAAp0C,IAAAP,IAAAS,GAAAF,EAAA,EAAAP,GAAAA,GAAAkG,WAAAzF,EAAA8rH,QAAA,KAAAZ,UAAA,WAAA,MAAApgH,MAAA8O,QAAAwjB,KAAAguF,UAAA,WAAA,MAAAtgH,MAAA8O,QAAAtU,KAAAkmH,cAAA,WAAA,GAAA9qH,GAAA8B,EAAA2E,EAAAI,EAAAC,EAAAjI,EAAAuL,KAAA8O,QAAAsnB,MAAAphC,EAAAgL,KAAA8O,QAAA5Z,EAAA8K,KAAA5K,EAAA4K,KAAAigH,aAAA,EAAAjrH,EAAAuyB,QAAA9vB,IAAAuI,MAAA8O,QAAAgoB,QAAA92B,KAAA8O,QAAAgoB,OAAA9/B,OAAAgJ,KAAA8zG,QAAAj/G,KAAA,SAAAJ,EAAA4H,GAAAzG,GAAAV,EAAA4hC,OAAAriC,GAAAS,EAAAkrH,cAAAlrH,EAAAorH,YAAAprH,EAAAkrH,aAAA,IAAA3oH,EAAA,eAAAvC,EAAA4qH,YAAA,OAAA,UAAAlqH,EAAA,IAAApB,EAAAwL,MAAAF,KAAA,EAAA,GAAA1K,EAAA,UAAA,OAAAqC,EAAAzC,EAAAuyB,SAAAryB,EAAA4Z,QAAAsnB,SAAA,IAAA,eAAAlhC,EAAA4qH,aAAA,IAAArrH,GAAAS,EAAAkhC,MAAAt2B,KAAA,EAAA,GAAA1K,EAAA,UAAA,QAAA8rB,KAAAtrB,EAAA,KAAAZ,EAAAuyB,SAAA,IAAA9yB,GAAAS,EAAAkhC,MAAAhhC,EAAA,UAAA;AAAAoG,AxDmtBA,MwDntBA5F,EAAA8B,EAAA,MAAA4I,OAAA,EAAAvB,SAAA/J,EAAAuyB,YAAA,IAAA9yB,GAAAS,EAAAkhC,MAAAt2B,KAAA,EAAA,GAAA1K,EAAA,UAAA,QAAA47G,OAAAp7G,EAAA,KAAAZ,EAAAuyB,SAAA,IAAA9yB,GAAAS,EAAAkhC,MAAAhhC,EAAA,UAAA,QAAAqG,OAAA7F,EAAA8B,EAAA,MAAA4I,OAAA,EAAAvB,SAAA/J,EAAAuyB,YAAA7vB,EAAA9B,KAAAyG,EAAA2D,KAAAnH,QAAA4D,EAAAuD,KAAAogH,YAAA1jH,EAAAsD,KAAAsgH,YAAA1qH,EAAA8G,IAAAD,GAAAJ,EAAAI,IAAAC,EAAAD,GAAA,IAAA,EAAAhF,EAAA,eAAAvC,EAAA4qH,YAAA,OAAA,UAAAlqH,EAAA,IAAAoK,KAAApI,OAAAkI,KAAA,EAAA,GAAA1K,EAAA,UAAA,OAAAqC,EAAAzC,EAAAuyB,SAAA,QAAA9yB,GAAA,eAAAuL,KAAA8/G,aAAA9/G,KAAAo2B,MAAAt2B,KAAA,EAAA,GAAA1K,EAAA,UAAA,QAAAoG,MAAA5F,EAAA,KAAAZ,EAAAuyB,SAAA,QAAA9yB,GAAA,eAAAuL,KAAA8/G,aAAA9/G,KAAAo2B,MAAAhhC,EAAA,UAAA,QAAAoG,MAAA,IAAA5F,EAAA,MAAA0K,OAAA,EAAAvB,SAAA/J,EAAAuyB,UAAA,QAAA9yB,GAAA,aAAAuL,KAAA8/G,aAAA9/G,KAAAo2B,MAAAt2B,KAAA,EAAA,GAAA1K,EAAA,UAAA;AAAAqG,AxDotBA,OwDptBA7F,EAAA,KAAAZ,EAAAuyB,SAAA,QAAA9yB,GAAA,aAAAuL,KAAA8/G,aAAA9/G,KAAAo2B,MAAAhhC,EAAA,UAAA,QAAAqG,OAAA,IAAA7F,EAAA,MAAA0K,OAAA,EAAAvB,SAAA/J,EAAAuyB,cAAA/yB,EAAAuD,OAAAvD,EAAA8zG,GAAA2Y,QAAA7hG,QAAA,YAAAvc,QAIA,SAAArO,EAAAC,GAAA,QAAAW,KAAA,QAAAJ,EAAA,QAAAY,KAAA,QAAAV,EAAA,GAAAF,GAAA,EAAAE,EAAA,CAAAV,GAAA+2G,OAAA,WAAAz8F,SAAAhX,IAAA,KAAAopH,YAAA,KAAAj1G,OAAA,EAAAk1G,OAAA,KAAA3H,aAAA,EAAA7wG,QAAA,KAAAG,YAAA80F,OAAA,KAAA/lG,MAAA,QAAAsI,GAAA,KAAAihH,SAAA,WAAA1sG,KAAA,KAAA2sG,cAAA,cAAAhmH,OAAA,KAAAuT,OAAA,KAAA9M,KAAA,KAAAw/G,QAAA,0BAAAC,YAAA,wDAAA50D,QAAA,WAAA3sD,KAAAwhH,SAAA,IAAAvV,WAAA,SAAAz3G,EAAAC;AAAA,AxDitBA,GwDjtBA,YAAAD,EAAA,CAAA,GAAAwL,KAAA8O,QAAA0qG,aAAA/kH,GAAAuL,KAAA8O,QAAAhW,SAAA,MAAAkH,MAAA4O,OAAAna,OAAAuL,MAAA8O,QAAAta,GAAAC,EAAAuL,KAAAwhH,WAAAC,OAAA,SAAAjtH,GAAA,MAAAA,GAAA6pH,OAAA7pH,EAAA6pH,MAAAhpH,QAAA,MAAA,KAAAA,QAAA,uBAAA,KAAA2K,KAAA8O,QAAAsyG,SAAAhsH,KAAAssH,kBAAA,SAAAltH,GAAA,MAAAA,GAAAa,QAAA,KAAA,QAAAssH,QAAA,WAAA,GAAAltH,GAAAuL,KAAAmhH,SAAAnhH,KAAAmhH,OAAAnhH,KAAA8O,QAAAqyG,OAAAt0G,MAAA,WAAAjX,IAAA,OAAApB,GAAA2sH,OAAAt7G,MAAA,MAAApR,GAAA+J,OAAAhK,EAAA4Q,UAAAU,cAAA87G,IAAA,SAAAptH,EAAAC,GAAA,OAAAotH,IAAArtH,EAAA4xG,MAAA3xG,EAAAoiB,MAAA7W,KAAA8hH,QAAAjrG,MAAAriB,KAAAutH,SAAA,WAAA/hH,KAAAgiH,IAAAtrH,OAAA,wBAAA0X,YAAA,uBAAAnJ,KAAA,yBAAApQ,KAAA;AAAA,AxDktBA,GwDltBAJ,GAAAD,EAAAwL,KAAAvL,GAAA+pB,KAAA/pB,EAAAoB,KAAA,eAAAmM,WAAA,iBAAAw/G,QAAA,SAAAxsH,GAAA,QAAA+L,GAAAtM,EAAAO,GAAAP,EAAAoF,IAAA,UAAA,KAAArF,EAAA6D,QAAAiK,SAAAtN,EAAAsN,SAAA7N,EAAA,GAAAuF,MAAAd,gBAAA,UAAA,GAAAhE,GAAA8K,KAAA5K,EAAA4K,KAAA8O,QAAAlZ,EAAA,MAAAoK,MAAAslD,KAAAtlD,KAAA0yF,QAAAztF,KAAA,SAAAS,GAAA,GAAA1F,KAAAgiH,IAAAxtH,EAAA,qBAAAwL,KAAAslD,MAAAtlD,KAAA8hH,QAAA9hH,KAAAgiH,IAAAh8G,IAAA,WAAA,MAAAxR,GAAA,IAAAwL,MAAA,KAAAA,KAAAiiH,OAAAztH,MAAAwL,KAAA8hH,QAAAjtH,KAAA,SAAAJ,EAAAO,GAAA,GAAAqH,GAAA5E,EAAAjD,EAAAQ,GAAA6P,KAAA,QAAAnN,EAAAD,EAAA3C,MAAA,KAAA,EAAA,IAAA4C,IAAAA,IAAAiL,SAAAO,WAAApO,MAAA,KAAA,KAAAuH,EAAA7H,EAAA,QAAA,KAAAkD,IAAA2E,EAAA6T,QAAAzY,EAAAzC,EAAAogD,KAAApgD,EAAAkb,KAAAzY,GAAA7B,EAAAF,KAAA+B,GAAAvC,EAAA+sH,OAAA/sH,EAAA+sH,OAAAnqH,IAAA5C,EAAAw9F,QAAAztF,KAAA/P,EAAAwsH,kBAAAjqH,SAAA,IAAAA,GAAA,MAAAA,EAAA,CAAAjD,EAAAqB,KAAAb,EAAA,YAAAyC;AAAAjD,AxDmtBA,EwDntBAqB,KAAAb,EAAA,YAAAyC,EAAApC,QAAA,OAAA,IAAA,IAAAoH,GAAAvH,EAAAusH,OAAAzsH,EAAAA,GAAAkb,KAAA,IAAAzT,CAAA,IAAAC,GAAAxH,EAAAw9F,QAAAztF,KAAA,IAAAxI,EAAAC,GAAA1F,SAAA0F,EAAAlI,EAAAY,EAAAisH,eAAAx8G,KAAA,KAAApI,GAAA0R,SAAA,oDAAA6Q,YAAA9pB,EAAA+sH,OAAAxtH,EAAA,IAAAS,EAAAowD,MAAA5oD,EAAA7G,KAAA,gBAAA,IAAAX,EAAA+sH,OAAA/sH,EAAA+sH,OAAAnqH,IAAA4E,OAAAtH,GAAA0T,SAAAjJ,KAAApL,KAAAO,GAAAgL,KAAA0yF,QAAAvkF,SAAA,qDAAAnO,KAAAslD,KAAAn3C,SAAA,iFAAAnO,KAAAgiH,IAAA7zG,SAAA,kCAAAnO,KAAAiiH,OAAA9zG,SAAA,oDAAA/Y,EAAA0D,WAAArE,GAAAkO,SAAAyyC,MAAAp1C,KAAA8hH,QAAAjtH,KAAA,SAAAL,EAAAC;AAAA,AxDotBA,MwDptBAA,GAAA2gD,MAAAzyC,SAAAyyC,MAAAhgD,EAAA0D,SAAAtE,GAAA,GAAA,SAAA,gBAAAY,GAAA0D,UAAA1D,EAAA+rH,SAAA/rH,EAAA0D,SAAAmX,SAAA/a,EAAAysH,UAAA,KAAA,gBAAAvsH,GAAA0D,UAAAkH,KAAAgiH,IAAAtrH,OAAA,qBAAAM,SAAA5B,EAAA0D,SAAAkH,KAAAgiH,IAAAnrG,MAAA7W,KAAAgiH,IAAAtrH,OAAA,uBAAAtB,EAAA0D,SAAA1D,EAAA0D,WAAAkH,KAAAgiH,IAAAhrH,OAAA,EAAA,KAAA,OAAA5B,EAAA0D,WAAA1D,EAAA0D,SAAA,IAAA1D,EAAA0D,SAAA1D,EAAA0D,UAAA,GAAAkH,KAAA8hH,QAAA1sH,EAAA0D,WAAA1D,EAAA0D,SAAA,EAAA1D,EAAA0D,SAAA,EAAA1D,EAAA0T,SAAAtU,EAAAoU,OAAAxT,EAAA0T,SAAAtK,OAAAhK,EAAAwR,IAAAhG,KAAAgiH,IAAAtrH,OAAA,sBAAA,SAAAlC,EAAAC,GAAA,MAAAS,GAAA8sH,IAAAnrG,MAAAriB,OAAAyR,OAAA,IAAAzR,EAAAmC,QAAAvB,EAAA0D,SAAA1D,EAAA0T,WAAA1T,EAAA0T,SAAAnL,OAAAnJ,EAAAmC,QAAAvB,EAAA0D,SAAA1D,EAAA0T,UAAA,GAAA9I,KAAAiiH,OAAA9zG,SAAA;AAAAnO,AxDqtBA,KwDrtBAgiH,IAAA5zG,YAAA,oCAAAhZ,EAAA0D,UAAA,GAAAkH,KAAA8hH,QAAA9qH,SAAA9B,EAAAw9F,QAAAztF,KAAA/P,EAAAwsH,kBAAAxsH,EAAA4sH,QAAA1sH,EAAA0D,UAAAs8C,OAAAhnC,YAAA,gBAAApO,KAAAgiH,IAAAt8G,GAAAtQ,EAAA0D,UAAAqV,SAAA,oCAAAjZ,EAAAw9F,QAAApyF,MAAA,OAAA,WAAApL,EAAAo6D,SAAA,OAAA,KAAAp6D,EAAA0sH,IAAA1sH,EAAA4sH,QAAA1sH,EAAA0D,UAAA5D,EAAAw9F,QAAAztF,KAAA/P,EAAAwsH,kBAAAxsH,EAAA4sH,QAAA1sH,EAAA0D,UAAAs8C,OAAA,OAAAp1C,KAAA0U,KAAAtf,EAAA0D,WAAAtE,EAAAgS,QAAAwP,KAAA,SAAA,WAAA9gB,EAAA8sH,IAAAlqH,IAAA5C,EAAA4sH,SAAA7rG,OAAA,SAAA/gB,EAAA8sH,IAAA9sH,EAAA4sH,QAAA5sH,EAAA+sH,OAAA,QAAA7sH,EAAA0D,SAAAkH,KAAAgiH,IAAAnrG,MAAA7W,KAAAgiH,IAAAtrH,OAAA,sBAAAsJ,KAAA0yF,QAAAt9F,EAAAokH,YAAA,WAAA,eAAA;AAAApkH,AxDstBA,EwDttBA+rH,QAAAnhH,KAAA2hH,QAAAvsH,EAAA0D,SAAA1D,EAAA+rH,OAAA,KAAA,GAAAzpH,GAAAD,EAAA,EAAAC,EAAAsI,KAAAgiH,IAAAvqH,GAAAA,IAAAjD,EAAAkD,GAAA,IAAAlD,EAAAmC,QAAAc,EAAArC,EAAA0T,WAAAtU,EAAAkD,GAAA4W,SAAA,oBAAA,cAAA,YAAA,oBAAA,IAAAlZ,EAAA6W,SAAA,GAAAjM,KAAA8hH,QAAA9/G,WAAA,cAAAhC,KAAAgiH,IAAAlqH,IAAAkI,KAAA8hH,SAAA7rG,OAAA,SAAA,cAAA7gB,EAAAyC,MAAA,CAAA,GAAAwE,GAAA,SAAA7H,EAAAC,GAAAA,EAAAse,GAAA,6BAAAte,EAAA0Z,SAAA,YAAA3Z,IAAAiI,EAAA,SAAAjI,EAAAC,GAAAA,EAAA2Z,YAAA,YAAA5Z,GAAAwL,MAAAgiH,IAAAhsG,KAAA,iBAAA,WAAA3Z,EAAA,QAAA7H,EAAAwL,SAAAA,KAAAgiH,IAAAhsG,KAAA,gBAAA,WAAAvZ,EAAA,QAAAjI,EAAAwL,SAAAA,KAAA8hH,QAAA9rG,KAAA,aAAA,WAAA3Z,EAAA,QAAA7H,EAAAwL,MAAAub,QAAA,SAAAvb,KAAA8hH,QAAA9rG,KAAA,YAAA;AAAAvZ,AxDutBA,EwDvtBA,QAAAjI,EAAAwL,MAAAub,QAAA,SAAA,GAAA7e,GAAAC,CAAAvH,GAAA+K,KAAA3L,EAAA0H,QAAA9G,EAAA+K,KAAAzD,EAAAtH,EAAA+K,GAAA,GAAAxD,EAAAvH,EAAA+K,GAAA,IAAAzD,EAAAC,EAAAvH,EAAA+K,GAAA,IAAAa,GAAArE,EAAA,SAAAlI,EAAAO,GAAAR,EAAAC,GAAA8mB,QAAA,MAAApN,SAAA,oCAAAnZ,EAAA+M,OAAAqM,YAAA,gBAAAmZ,QAAA5qB,EAAAA,EAAAoC,UAAA,SAAA,WAAAgC,EAAA/L,EAAA2H,GAAAzH,EAAAo6D,SAAA,OAAA,KAAAp6D,EAAA0sH,IAAAntH,EAAAO,EAAA,QAAA,SAAAP,EAAAO,GAAAR,EAAAC,GAAA8mB,QAAA,MAAApN,SAAA,oCAAAnZ,EAAAoZ,YAAA,gBAAAlZ,EAAAo6D,SAAA,OAAA,KAAAp6D,EAAA0sH,IAAAntH,EAAAO,EAAA,MAAAiM,EAAAvE,EAAA,SAAAlI,EAAAC,GAAAA,EAAA8yB,QAAA7qB,EAAAA,EAAAqC,UAAA,SAAA,WAAA7J,EAAA8sH,IAAA5zG,YAAA,oCAAA3Z,EAAA0Z,SAAA,gBAAApN,EAAAtM,EAAAiI,GAAAxH,EAAAw9F,QAAA1lF,QAAA,WAAA,SAAAxY,EAAAC,EAAAO,GAAAE,EAAA8sH,IAAA5zG,YAAA;AAAA3Z,AxDwtBA,EwDxtBA0Z,SAAA,gBAAAjZ,EAAAw9F,QAAA1lF,QAAA,QAAAhN,MAAA8hH,QAAA9rG,KAAA5gB,EAAAyC,MAAA,QAAA,WAAA,GAAApD,GAAAuL,KAAAhL,EAAAR,EAAAC,GAAA8mB,QAAA,MAAA3lB,EAAAV,EAAA+sH,OAAAvrH,OAAA,uBAAAe,EAAAvC,EAAAw9F,QAAAztF,KAAA/P,EAAAwsH,kBAAAjtH,EAAA2gD,MAAA,IAAApgD,EAAAsZ,SAAA,sBAAAlZ,EAAAokH,aAAAxkH,EAAAsZ,SAAA,sBAAAtZ,EAAAsZ,SAAA,wBAAApZ,EAAA+sH,OAAAvrH,OAAA,aAAAM,QAAA9B,EAAAo6D,SAAA,SAAA,KAAAp6D,EAAA0sH,IAAA5hH,KAAAvI,EAAA,QAAA,EAAA,MAAAuI,MAAA4U,QAAA,CAAA,IAAAxf,EAAA0D,SAAA5D,EAAA4sH,QAAAjrG,MAAA7W,MAAA9K,EAAA6vB,QAAA3vB,EAAAokH,YAAA,CAAA,GAAAxkH,EAAAsZ,SAAA,oBAAA,MAAAlZ,GAAA0D,SAAA,GAAA1D,EAAA+rH,QAAAjsH,EAAAysH,QAAAvsH,EAAA0D,SAAA1D,EAAA+rH,QAAAjsH,EAAAw9F,QAAApyF,MAAA,OAAA,WAAAW,EAAAxM,EAAAmB,KAAAoX,QAAA,QAAAhN,KAAA4U;AxDytBA,CwDztBA,CAAA,KAAAhf,EAAAoB,OAAA,MAAA5B,GAAA+rH,QAAAjsH,EAAAysH,QAAAvsH,EAAA0D,SAAA1D,EAAA+rH,QAAAjsH,EAAAw9F,QAAApyF,MAAA,OAAA,WAAAU,EAAAvM,EAAAgD,KAAAvC,EAAAwf,KAAAxf,EAAA4sH,QAAAjrG,MAAA7W,OAAAA,KAAA4U,QAAA,EAAA,GAAAxf,EAAA+rH,QAAAjsH,EAAAysH,QAAAvsH,EAAA0D,SAAA1D,EAAA+rH,SAAA1pH,EAAAT,OAAA,KAAA,kDAAApB,GAAAoB,QAAA9B,EAAAw9F,QAAApyF,MAAA,OAAA,WAAAW,EAAAxM,EAAAmB,KAAAV,EAAAw9F,QAAApyF,MAAA,OAAA,WAAAU,EAAAvM,EAAAgD,KAAAvC,EAAAwf,KAAAxf,EAAA4sH,QAAAjrG,MAAA7W,OAAAxL,EAAA2qB,QAAAurF,MAAA1qG,KAAA4U,SAAA5U,KAAA8hH,QAAA9rG,KAAA,aAAA,WAAA,OAAA,KAAAksG,UAAA,SAAA1tH,GAAA,MAAA,gBAAAA,KAAAA,EAAAwL,KAAA8hH,QAAAjrG,MAAA7W,KAAA8hH,QAAAprH,OAAA,WAAAlC,EAAA,QAAAA,GAAAk6C,QAAA,WAAA,GAAAj6C,GAAAuL,KAAA8O,OAAA,OAAA9O,MAAA+kB,QAAA/kB,KAAA0yF,QAAAz8E,OAAA,SAAA7H,YAAA,yEAAApM,WAAA;AAAAhC,AxD0tBA,KwD1tBAslD,KAAAl3C,YAAA,iFAAApO,KAAA8hH,QAAAjtH,KAAA,WAAA,GAAAJ,GAAAD,EAAAqB,KAAAmK,KAAA,YAAAvL,KAAAuL,KAAAkQ,KAAAzb,EAAA,IAAAO,GAAAR,EAAAwL,MAAAiW,OAAA,QAAAzhB,GAAAK,MAAA,OAAA,OAAA,SAAA,SAAAL,EAAAC,GAAAO,EAAAgN,WAAAvN,EAAA,aAAAuL,KAAAgiH,IAAA/rG,OAAA,SAAAne,IAAAkI,KAAAiiH,QAAAptH,KAAA,WAAAL,EAAAqB,KAAAmK,KAAA,gBAAAxL,EAAAwL,MAAA3E,SAAA7G,EAAAwL,MAAAoO,aAAA,mBAAA,gBAAA,mBAAA,kBAAA,iBAAA,iBAAA,oBAAA,gBAAA,oBAAA,mBAAA,gBAAArI,KAAA,QAAAtR,EAAA0sH,QAAAnhH,KAAA2hH,QAAA,KAAAltH,EAAA0sH,QAAAnhH,MAAAlI,IAAA,SAAA9C,EAAAE,EAAAE;AAAAA,AxD2tBA,IwD3tBAX,IAAAW,EAAA4K,KAAA8hH,QAAA9qH,OAAA,IAAApB,GAAAoK,KAAAvI,EAAAuI,KAAA8O,QAAApX,EAAAlD,EAAAiD,EAAA8pH,YAAAlsH,QAAA,aAAAL,GAAAK,QAAA,cAAAH,IAAAmH,EAAArH,EAAAgO,QAAA,KAAAhD,KAAAyhH,OAAAjtH,EAAA,IAAAkD,GAAA,IAAA1C,EAAAK,QAAA,IAAA,GAAAqC,GAAAyW,SAAA,kCAAAtY,KAAA,gBAAA,EAAA,IAAA4G,GAAA7G,EAAA88F,QAAAztF,KAAA,IAAA5I,EAAA,OAAAI,GAAAzF,SAAAyF,EAAAjI,EAAAiD,EAAA4pH,eAAAx8G,KAAA,KAAAxI,GAAAxG,KAAA,gBAAA,IAAA4G,EAAA0R,SAAA,iEAAA/Y,GAAA4K,KAAAgiH,IAAAhrH,QAAAU,EAAAyD,SAAA6E,KAAAslD,MAAA7oD,EAAAtB,SAAA6E,KAAAslD,KAAA,GAAAnvD,cAAAuB,EAAAgU,aAAA1L,KAAAgiH,IAAA5sH,IAAAqH,EAAAiP,aAAA1L,KAAAiiH,OAAA7sH,KAAAqC,EAAAqR,SAAAtU,EAAAwR,IAAAvO,EAAAqR,SAAA,SAAAtU,EAAAC,GAAA,MAAAD,IAAAY,IAAAZ,EAAAA,IAAAwL,KAAAwhH,UAAA,GAAAxhH,KAAA8hH,QAAA9qH,SAAAS,EAAAqB,SAAA;AAAApB,AxD4tBA,EwD5tBAyW,SAAA,oCAAA1R,EAAA2R,YAAA,gBAAApO,KAAA0yF,QAAApyF,MAAA,OAAA,WAAA1K,EAAA05D,SAAA,OAAA,KAAA15D,EAAAgsH,IAAAhsH,EAAAksH,QAAA,GAAAlsH,EAAAqsH,OAAA,OAAAjiH,KAAA0U,KAAA,IAAA1U,KAAAsvD,SAAA,MAAA,KAAAtvD,KAAA4hH,IAAA5hH,KAAA8hH,QAAA1sH,GAAA4K,KAAAiiH,OAAA7sH,KAAA4K,MAAA3E,OAAA,SAAA5G,GAAAA,EAAAuL,KAAAkiH,UAAAztH,EAAA,IAAAO,GAAAgL,KAAA8O,QAAA5Z,EAAA8K,KAAAgiH,IAAAt8G,GAAAjR,GAAA4G,SAAAjG,EAAA4K,KAAAiiH,OAAAv8G,GAAAjR,GAAA4G,QAAA,OAAAnG,GAAAoZ,SAAA,qBAAAtO,KAAA8hH,QAAA9qH,OAAA,GAAAgJ,KAAA4O,OAAAna,GAAAA,EAAA,EAAAuL,KAAA8hH,QAAA9qH,OAAA,EAAA,KAAAhC,EAAA8T,SAAAtU,EAAAwR,IAAAxR,EAAA+B,KAAAvB,EAAA8T,SAAA,SAAAtU,EAAAQ,GAAA,MAAAR,IAAAC,IAAA,SAAAD,EAAAQ,GAAA,MAAAR,IAAAC,IAAAD,EAAAA,IAAAwL,KAAAwhH,UAAAxhH,KAAAsvD,SAAA,SAAA,KAAAtvD,KAAA4hH,IAAA1sH,EAAA+P,KAAA,KAAA,GAAA7P,EAAA,KAAA4K,MAAA49F,OAAA,SAAAnpG;AAAAA,AxD6tBA,EwD7tBAuL,KAAAkiH,UAAAztH,EAAA,IAAAO,GAAAgL,KAAA8O,OAAA,IAAA,IAAAta,EAAAmC,QAAAlC,EAAAO,EAAA8T,UAAA,MAAA9I,MAAAgiH,IAAAt8G,GAAAjR,GAAA2Z,YAAA,qBAAApZ,EAAA8T,SAAAtU,EAAA+B,KAAAvB,EAAA8T,SAAA,SAAAtU,EAAAQ,GAAA,MAAAR,IAAAC,IAAAuL,KAAAsvD,SAAA,SAAA,KAAAtvD,KAAA4hH,IAAA5hH,KAAA8hH,QAAArtH,GAAAuL,KAAAiiH,OAAAxtH,KAAAuL,MAAA2I,QAAA,SAAAnU,GAAAA,EAAAwL,KAAAkiH,UAAA1tH,EAAA,IAAAQ,GAAAgL,KAAA8O,OAAA,OAAAta,IAAAQ,EAAA8D,WAAAkH,KAAAgiH,IAAAt8G,GAAAlR,GAAA2Z,SAAA,qBAAAnZ,EAAA8T,SAAAjJ,KAAArL,GAAAQ,EAAA8T,SAAA7C,OAAAjG,KAAAsvD,SAAA,UAAA,KAAAtvD,KAAA4hH,IAAA5hH,KAAA8hH,QAAAttH,GAAAwL,KAAAiiH,OAAAztH,MAAAwL,MAAA4O,OAAA,SAAApa,GAAA,GAAAA,EAAAwL,KAAAkiH,UAAA1tH,GAAA,IAAAA,EAAA,CAAA,IAAAwL,KAAA8O,QAAA0qG,aAAA,IAAAx5G,KAAA8O,QAAAhW,SAAA,MAAAkH,KAAAxL,GAAAwL,KAAA8O,QAAAhW,SAAA,MAAAkH,MAAA8hH,QAAAp8G,GAAAlR,GAAA8R,QAAAtG,KAAA8O,QAAAjX,MAAA;AAAAmI,AxD8tBA,MwD9tBA0U,KAAA,SAAAjgB,GAAAA,EAAAuL,KAAAkiH,UAAAztH,EAAA,IAAAO,GAAAgL,KAAA9K,EAAA8K,KAAA8O,QAAA1Z,EAAA4K,KAAA8hH,QAAAp8G,GAAAjR,GAAA,GAAAmB,EAAApB,EAAAqB,KAAAT,EAAA,YAAA,IAAA4K,KAAA+kB,SAAAnvB,GAAA,IAAAoK,KAAA0yF,QAAApyF,MAAA,QAAAtJ,QAAAxC,EAAAqB,KAAAT,EAAA,cAAA,WAAA4K,MAAA0yF,QAAA1lF,QAAA,OAAA,IAAAhN,KAAAgiH,IAAAt8G,GAAAjR,GAAA0Z,SAAA,uBAAAjZ,EAAAosH,QAAA,CAAA,GAAA7pH,GAAAjD,EAAA,OAAAY,EAAAqC,GAAA5B,KAAA,aAAA4B,EAAA+mB,QAAAA,KAAAtpB,EAAAosH,SAAA,MAAAthH,MAAAsmB,IAAA9xB,EAAAmqB,KAAAnqB,EAAAuD,UAAA7C,EAAAgsH,aAAAtiG,IAAAhpB,EAAAytB,QAAA,SAAAztB,EAAA6B,GAAAzC,EAAA09F,QAAAztF,KAAAjQ,EAAA0sH,kBAAAtsH,EAAAggD,OAAA52B,KAAA5oB,GAAAZ,EAAA+sH,WAAA7sH,EAAA+W,OAAAzX,EAAAqB,KAAAT,EAAA,cAAA,GAAAJ,EAAAs6D,SAAA,OAAA,KAAAt6D,EAAA4sH,IAAA5sH,EAAA8sH,QAAArtH,GAAAO,EAAAitH,OAAAxtH,IAAA,KAAAS,EAAAgsH,YAAA79F,QAAAztB,EAAA6B,GAAA,MAAAC,MAAAmG,MAAA,SAAArJ,EAAAoB,EAAA6B,GAAAzC,EAAA+sH;AAAA/sH,AxD+tBA,EwD/tBAs6D,SAAA,OAAA,KAAAt6D,EAAA4sH,IAAA5sH,EAAA8sH,QAAArtH,GAAAO,EAAAitH,OAAAxtH,IAAA,KAAAS,EAAAgsH,YAAArjH,MAAArJ,EAAAoB,EAAAnB,EAAAW,GAAA,MAAAqC,SAAAzC,EAAA09F,QAAA1lF,QAAA,QAAAhN,MAAA+kB,MAAA,WAAA,MAAA/kB,MAAA0yF,QAAApyF,UAAAN,KAAAiiH,OAAAniH,MAAA,GAAA,GAAAE,KAAA0yF,QAAApyF,MAAA,OAAAN,KAAA0yF,QAAApyF,MAAA,QAAA3C,OAAA,GAAA,IAAAqC,KAAAsmB,MAAAtmB,KAAAsmB,IAAAvB,cAAA/kB,MAAAsmB,KAAAtmB,KAAA+hH,WAAA/hH,MAAA4e,IAAA,SAAApqB,EAAAC,GAAA,MAAAuL,MAAA8hH,QAAAp8G,GAAAlR,GAAAwN,WAAA,cAAAnM,KAAA,YAAApB,GAAAuL,MAAAhJ,OAAA,WAAA,MAAAgJ,MAAA8hH,QAAA9qH,UAAAxC,EAAAuD,OAAAvD,EAAA8zG,GAAA6Z,MAAA/iG,QAAA,WAAA5qB,EAAAuD,OAAAvD,EAAA8zG,GAAA6Z,KAAAhgH,WAAAigH,SAAA,KAAAC,OAAA,SAAA7tH,EAAAC,GAAA,GAAAO,GAAAgL,KAAA9K,EAAA8K,KAAA8O,QAAA1Z,EAAAJ,EAAAstH,UAAAttH,EAAAstH,QAAA,SAAA7tH,GAAA0Y,aAAAnY,EAAAotH;AAAAptH,AxDguBA,EwDhuBAotH,SAAAjkH,WAAA,WAAA,GAAA3J,GAAAU,EAAA4D,QAAA9D,GAAA4Z,SAAApa,EAAAQ,EAAA8sH,QAAA9qH,OAAAxC,EAAA,IAAAA,GAAAC,GAAAA,EAAA2e,oBAAAxd,EAAAZ,EAAAutH,YAAAvtH,EAAAutH,UAAA9tH,EAAA,SAAAD,GAAAY,KAAA,SAAAZ,GAAAA,EAAAsf,SAAA9e,EAAAqtH,OAAA,OAAA,OAAA7tH,IAAAwL,KAAA0yF,QAAA18E,KAAA,WAAA5gB,GAAA4K,KAAA8hH,QAAA9rG,KAAA9gB,EAAA2C,MAAA,QAAAjC,GAAAR,MAAA+X,aAAAnY,EAAAotH,UAAApiH,KAAA0yF,QAAAz8E,OAAA,WAAA7gB,GAAA4K,KAAA8hH,QAAA7rG,OAAA/gB,EAAA2C,MAAA,QAAAjC,SAAAoK,MAAAsiH,cAAAtiH,MAAAuiH,WAAAviH,SAAA6C,QAIA,SAAAC,EAAAinB,WAAA,QAAAy4F,cAAAxiH,KAAAouC,OAAA,EAAApuC,KAAAyiH,SAAA,KAAAziH,KAAA+7G,WAAA,EAAA/7G,KAAA0iH,mBAAA1iH,KAAA2iH,oBAAA,EAAA3iH,KAAA4iH,WAAA,EAAA5iH,KAAA6iH,WAAA,oBAAA7iH,KAAA8iH,aAAA;AAAA9iH,AxD6tBA,KwD7tBA+iH,aAAA,uBAAA/iH,KAAAgjH,cAAA,wBAAAhjH,KAAAijH,aAAA,uBAAAjjH,KAAAkjH,cAAA,yBAAAljH,KAAAmjH,mBAAA,6BAAAnjH,KAAAojH,cAAA,4BAAApjH,KAAAqjH,cAAA,+BAAArjH,KAAAsjH,YAAAtjH,KAAAsjH,SAAA,KAAApF,UAAA,OAAAqF,SAAA,OAAAC,SAAA,OAAAC,YAAA,QAAAC,YAAA,UAAA,WAAA,QAAA,QAAA,MAAA,OAAA,OAAA,SAAA,YAAA,UAAA,WAAA,YAAAC,iBAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,OAAAC,UAAA,SAAA,SAAA,UAAA,YAAA,WAAA,SAAA;AAAAC,AxD8tBA,ewD9tBA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,OAAAC,aAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAAC,WAAA,KAAAC,WAAA,WAAAC,SAAA,EAAAC,OAAA,EAAAC,oBAAA,EAAAC,WAAA,IAAApkH,KAAAqgE,WAAAgkD,OAAA,QAAAC,SAAA,SAAAC,eAAAC,YAAA,KAAAC,WAAA,GAAAC,WAAA,MAAAC,YAAA,GAAAC,iBAAA,EAAAC,kBAAA,EAAAC,wBAAA,EAAAC,aAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,UAAA,YAAAC,iBAAA,EAAAC,mBAAA,EAAAC,UAAA,EAAAC,cAAAtlH,KAAAulH,YAAAC,gBAAA,MAAAC,QAAA,KAAAC,QAAA,KAAA3mH,SAAA,OAAA4mH,cAAA,KAAAC,WAAA,KAAAC,SAAA,KAAAC,kBAAA;AAAAC,AxD+tBA,QwD/tBA,KAAAC,eAAA,EAAAC,iBAAA,EAAAC,WAAA,EAAAC,cAAA,GAAAC,SAAA,GAAAC,UAAA,GAAAC,gBAAA,EAAAC,iBAAA,EAAAC,UAAA,EAAA19G,UAAA,GAAAhG,EAAA/K,OAAAiI,KAAAqgE,UAAArgE,KAAAsjH,SAAA,KAAAtjH,KAAAymH,MAAAC,UAAA5jH,EAAA,YAAA9C,KAAA6iH,WAAA,gGAAA,QAAA6D,WAAAlyH,GAAA,GAAAC,GAAA,gFAAA,OAAAD,GAAAwhB,KAAA,WAAA,SAAAxhB,GAAA,GAAAQ,GAAA8N,EAAAtO,EAAA8d,QAAAiJ,QAAA9mB,EAAAO,GAAAgC,QAAAhC,EAAAoZ,YAAA,sEAAA4H,KAAA,YAAA,SAAAhhB,GAAA,GAAAE,GAAA4N,EAAA9N,EAAAsd,QAAAiJ,QAAA9mB;AxDguBA,CwDhuBAqO,EAAA6jH,WAAAC,sBAAAC,WAAA76D,OAAAx3D,EAAA0kB,SAAA,GAAA2tG,WAAAhtG,MAAA,KAAA3kB,EAAA8B,SAAA9B,EAAAymB,QAAA,2BAAA1W,KAAA,KAAAmJ,YAAA,kBAAAlZ,EAAAiZ,SAAA,kBAAAjZ,EAAAoZ,SAAA,uBAAApZ,EAAAiZ,SAAA,4BAAAjZ,EAAAoZ,SAAA,uBAAApZ,EAAAiZ,SAAA,+BAAA,QAAA24G,cAAAtyH,EAAAC,GAAAqO,EAAA/K,OAAAvD,EAAAC,EAAA,KAAA,GAAAO,KAAAP,IAAA,MAAAA,EAAAO,IAAAP,EAAAO,IAAA+0B,aAAAv1B,EAAAQ,GAAAP,EAAAO,GAAA,OAAAR,GAAA,QAAA0H,SAAA1H,GAAA,MAAAA,KAAAsO,EAAAqc,QAAAI,QAAA,gBAAA/qB,IAAAA,EAAAwC,QAAAxC,EAAAiQ,aAAAjQ,EAAAiQ,YAAAvB,WAAA8T,MAAA,eAAAlU,EAAA/K,OAAA+K,EAAAwlG,IAAAqe,YAAAvnG,QAAA,WAAA,IAAA2nG,WAAA,aAAAC,QAAA,GAAA9+G,OAAAC,UAAA0+G;AAAA/jH,AxDiuBA,EwDjuBA/K,OAAAyqH,WAAArgH,WAAA8kH,gBAAA,gBAAAC,QAAA,EAAAj8E,IAAA,WAAAjrC,KAAAouC,OAAApD,QAAAC,IAAAplC,MAAA,GAAAC,YAAAqhH,kBAAA,WAAA,MAAAnnH,MAAAymH,OAAAW,YAAA,SAAA5yH,GAAA,MAAAsyH,cAAA9mH,KAAAqgE,UAAA7rE,OAAAwL,MAAAqnH,kBAAA,SAAA/0G,OAAAg1G,UAAA,GAAAC,gBAAA,IAAA,KAAA,GAAAC,YAAAxnH,MAAAqgE,UAAA,CAAA,GAAAonD,WAAAn1G,OAAA9c,aAAA,QAAAgyH,SAAA,IAAAC,UAAA,CAAAF,eAAAA,kBAAA,KAAAA,eAAAC,UAAA1/G,KAAA2/G,WAAA,MAAA9gF,KAAA4gF,eAAAC,UAAAC,YAAA,GAAAtvH,UAAAma,OAAAna,SAAA5C,cAAAy2D,OAAA,OAAA7zD,UAAA,QAAAA,QAAAma,QAAAtN,KAAAhF,KAAAmM,MAAA,EAAAmG,OAAAtN,GAAA,KAAAhF,KAAAmM;AAAA,AxDkuBA,GwDluBAu7G,MAAA1nH,KAAA2nH,SAAA7kH,EAAAwP,QAAA05C,OAAA07D,MAAAJ,SAAAxkH,EAAA/K,UAAAuvH,aAAAC,oBAAA,SAAApvH,SAAA6H,KAAA4nH,mBAAAt1G,OAAAo1G,MAAA17D,QAAAhsD,KAAA6nH,kBAAAv1G,OAAAo1G,OAAAC,SAAA,SAAAnzH,EAAAC,GAAA,GAAAO,GAAAR,EAAA,GAAAwQ,GAAA3P,QAAA,oBAAA,SAAA,QAAA2P,GAAAhQ,EAAA6kB,MAAArlB,EAAAszH,YAAA,EAAAC,cAAA,EAAAC,aAAA,EAAAC,UAAA,EAAAC,SAAA,EAAAl8D,OAAAv3D,EAAAgyH,MAAAhyH,EAAAiyH,UAAA5jH,EAAA,eAAA9C,KAAA8iH,aAAA,wFAAA9iH,KAAAymH,QAAAmB,mBAAA,SAAApzH,EAAAC,GAAA,GAAAO,GAAA8N,EAAAtO,EAAAC,GAAAmpB,OAAA9a,MAAArO,EAAA6R,QAAAxD,MAAA9N,EAAAsZ,SAAAtO,KAAAinH,mBAAAjnH,KAAAmoH,aAAAnzH,EAAAP,GAAAO,EAAAmZ,SAAAnO,KAAAinH,iBAAAvI,QAAA1+G,KAAAooH,YAAAC,SAAAroH,KAAAsoH,aAAAzK,MAAA79G,KAAAuoH,UAAAvyG,KAAA,qBAAA,SAAAxhB,EAAAQ,EAAAE;AAAAT,AxDmuBA,EwDnuBA6yH,SAAAtyH,GAAAE,IAAA8gB,KAAA,qBAAA,SAAAxhB,EAAAQ,GAAA,MAAAgL,MAAAwoH,KAAA/zH,EAAAO,KAAAgL,KAAAyoH,UAAAh0H,GAAAqO,EAAAjN,KAAArB,EAAAuyH,UAAAtyH,GAAAA,EAAA6yH,SAAAx+G,UAAA9I,KAAA0oH,mBAAAl0H,KAAA2zH,aAAA,SAAA3zH,EAAAC,GAAA,GAAAO,GAAAgL,KAAAwoH,KAAA/zH,EAAA,cAAAS,EAAA8K,KAAAwoH,KAAA/zH,EAAA,QAAAA,GAAAmpB,QAAAnpB,EAAAmpB,OAAAviB,SAAArG,IAAAP,EAAAmpB,OAAA9a,EAAA,gBAAA9C,KAAA+iH,aAAA,KAAA/tH,EAAA,WAAAR,EAAAU,EAAA,SAAA,SAAAT,EAAAmpB,SAAAppB,EAAAyhB,OAAA,QAAAjW,KAAA2oH,iBAAAl0H,EAAA6R,SAAA7R,EAAA6R,QAAAjL,QAAA,IAAAjG,GAAA4K,KAAAwoH,KAAA/zH,EAAA,SAAA,KAAA,SAAAW,GAAA,QAAAA,IAAAZ,EAAAmgB,MAAA3U,KAAA2oH,iBAAA,UAAAvzH,GAAA,QAAAA,EAAA,CAAA,GAAAQ,GAAAoK,KAAAwoH,KAAA/zH,EAAA,cAAAgD,EAAAuI,KAAAwoH,KAAA/zH,EAAA,cAAAA,GAAA6R,QAAAxD,EAAA9C,KAAAwoH,KAAA/zH,EAAA,mBAAAqO,EAAA,UAAAqL,SAAAnO,KAAAgjH,eAAAn+G;AAAA6Z,AxDouBA,IwDpuBAjnB,EAAAmxH,IAAAhzH,EAAAyoH,MAAAzoH,IAAAkN,EAAA,mCAAAqL,SAAAnO,KAAAgjH,eAAAxkG,KAAA,IAAA/mB,EAAA7B,EAAAkN,EAAA,UAAA+B,MAAA6Z,IAAAjnB,EAAAmxH,IAAAhzH,EAAAyoH,MAAAzoH,MAAApB,EAAAU,EAAA,SAAA,SAAAT,EAAA6R,SAAA7R,EAAA6R,QAAAiQ,MAAA,WAAA,MAAAzT,GAAA6jH,WAAAhE,oBAAA7/G,EAAA6jH,WAAAkC,YAAAr0H,EAAA,GAAAsO,EAAA6jH,WAAAmC,kBAAAhmH,EAAA6jH,WAAAhE,oBAAA7/G,EAAA6jH,WAAAkC,YAAAr0H,EAAA,IAAAsO,EAAA6jH,WAAAmC,kBAAAhmH,EAAA6jH,WAAAgC,gBAAAn0H,EAAA,KAAAsO,EAAA6jH,WAAAgC,gBAAAn0H,EAAA,KAAA,MAAAi0H,UAAA,SAAAj0H,GAAA,GAAAwL,KAAAwoH,KAAAh0H,EAAA,cAAAA,EAAAw3D,OAAA,CAAA,GAAAv3D,GAAA,GAAAyT,MAAA,KAAA,GAAA,IAAAlT,EAAAgL,KAAAwoH,KAAAh0H,EAAA,aAAA,IAAAQ,EAAAgiB,MAAA,QAAA,CAAA,GAAA9hB,GAAA,SAAAV,GAAA,IAAA,GAAAC,GAAA,EAAAO,EAAA,EAAAE,EAAA,EAAAA,EAAAV,EAAAwC,OAAA9B,IAAAV,EAAAU,GAAA8B,OAAAvC,IAAAA,EAAAD,EAAAU,GAAA8B;AAAAhC,AxDquBA,EwDruBAE,EAAA,OAAAF,GAAAP,GAAAs0H,SAAA7zH,EAAA8K,KAAAwoH,KAAAh0H,EAAAQ,EAAAgiB,MAAA,MAAA,aAAA,qBAAAviB,EAAAu0H,QAAA9zH,EAAA8K,KAAAwoH,KAAAh0H,EAAAQ,EAAAgiB,MAAA,MAAA,WAAA,kBAAA,GAAAviB,EAAAm8E,UAAAp8E,EAAAqlB,MAAAhV,KAAA,OAAA7E,KAAAipH,YAAAz0H,EAAAC,GAAAuC,UAAA6wH,kBAAA,SAAArzH,EAAAC,GAAA,GAAAO,GAAA8N,EAAAtO,EAAAQ,GAAAsZ,SAAAtO,KAAAinH,mBAAAjyH,EAAAmZ,SAAAnO,KAAAinH,iBAAArpG,OAAAnpB,EAAAgyH,OAAAzwG,KAAA,qBAAA,SAAAxhB,EAAAQ,EAAAE,GAAAT,EAAA6yH,SAAAtyH,GAAAE,IAAA8gB,KAAA,qBAAA,SAAAxhB,EAAAQ,GAAA,MAAAgL,MAAAwoH,KAAA/zH,EAAAO,KAAA8N,EAAAjN,KAAArB,EAAAuyH,UAAAtyH,GAAAuL,KAAAkpH,SAAAz0H,EAAAuL,KAAAmpH,gBAAA10H,IAAA,GAAAuL,KAAAopH,kBAAA30H,GAAAuL,KAAAqpH,iBAAA50H,GAAAA,EAAA6yH,SAAAx+G,UAAA9I,KAAA0oH,mBAAAl0H,GAAAC,EAAAgyH,MAAA5sH,IAAA,UAAA;AxDsuBA,EwDtuBAyvH,kBAAA,SAAA90H,EAAAC,EAAAO,EAAAE,EAAAE,GAAA,GAAAQ,GAAAoK,KAAAupH,WAAA,KAAA3zH,EAAA,CAAAoK,KAAAmM,MAAA,CAAA,IAAA1U,GAAA,KAAAuI,KAAAmM,IAAAnM,MAAAwpH,aAAA1mH,EAAA,0BAAArL,EAAA,4DAAAuI,KAAAwpH,aAAA9K,QAAA1+G,KAAAooH,YAAAtlH,EAAA,QAAA8a,OAAA5d,KAAAwpH,cAAA5zH,EAAAoK,KAAAupH,YAAAvpH,KAAA2nH,SAAA3nH,KAAAwpH,cAAA,GAAA5zH,EAAA0xH,YAAAxkH,EAAAjN,KAAAmK,KAAAwpH,aAAA,GAAAzC,UAAAnxH,GAAA,GAAAkxH,aAAAlxH,EAAA0xH,SAAApyH,OAAAT,EAAAA,GAAAA,EAAAgQ,aAAAyD,KAAAlI,KAAAipH,YAAArzH,EAAAnB,GAAAA,EAAAuL,KAAAwpH,aAAAj7G,IAAA9Z,GAAAuL,KAAAypH,KAAAr0H,EAAAA,EAAA4B,OAAA5B,GAAAA,EAAAye,MAAAze,EAAA6e,OAAA,MAAAjU,KAAAypH,KAAA,CAAA,GAAA/xH,GAAAmE,SAAA6L,gBAAAgiH,YAAArtH,EAAAR,SAAA6L,gBAAAiiH,aAAAltH,EAAAZ,SAAA6L,gBAAAqM,YAAAlY,SAAAT,KAAA2Y,WAAArX,EAAAb,SAAA6L,gBAAAyM,WAAAtY,SAAAT,KAAA+Y;AAAAnU,AxDuuBA,KwDvuBAypH,MAAA/xH,EAAA,EAAA,IAAA+E,EAAAJ,EAAA,EAAA,IAAAK,GAAA,MAAAsD,MAAAwpH,aAAA3vH,IAAA,OAAAmG,KAAAypH,KAAA,GAAA,GAAA,MAAA5vH,IAAA,MAAAmG,KAAAypH,KAAA,GAAA,MAAA7zH,EAAA0xH,SAAAzB,SAAA7wH,EAAAgL,KAAA4iH,WAAA,EAAA5iH,KAAAymH,MAAAt4G,SAAAnO,KAAAijH,cAAAjjH,KAAA2oH,gBAAA3oH,KAAAwpH,aAAA,IAAA1mH,EAAA8mH,SAAA9mH,EAAA8mH,QAAA5pH,KAAAymH,OAAA3jH,EAAAjN,KAAAmK,KAAAwpH,aAAA,GAAAzC,UAAAnxH,GAAAoK,MAAA6pH,mBAAA,SAAAr1H,GAAA,GAAAC,GAAAqO,EAAAtO,GAAAQ,EAAA8N,EAAAjN,KAAArB,EAAAuyH,UAAA,IAAAtyH,EAAA6Z,SAAAtO,KAAAinH,iBAAA,CAAA,GAAA/xH,GAAAV,EAAA2D,SAAA5C,aAAAuN,GAAAd,WAAAxN,EAAAuyH,WAAA,SAAA7xH,GAAAF,EAAA4oB,OAAAviB,SAAArG,EAAAsR,QAAAjL,SAAA5G,EAAA2Z,YAAApO,KAAAinH,iBAAAhxG,OAAA,QAAAjW,KAAA2oH,iBAAA1yG,OAAA,UAAAjW,KAAAooH,YAAAnyG,OAAA,WAAAjW,KAAAsoH,aAAAryG,OAAA,QAAAjW,KAAAuoH,YAAA,OAAArzH,GAAA,QAAAA,IAAAT,EAAA2Z,YAAApO,KAAAinH,iBAAA5lH;AxDwuBA,GwDxuBAyoH,kBAAA,SAAAt1H,GAAA,GAAAC,GAAAqO,EAAAtO,GAAAQ,EAAA8N,EAAAjN,KAAArB,EAAAuyH,UAAA,IAAAtyH,EAAA6Z,SAAAtO,KAAAinH,iBAAA,CAAA,GAAA/xH,GAAAV,EAAA2D,SAAA5C,aAAA,IAAA,SAAAL,EAAAV,EAAAsU,UAAA,EAAA9T,EAAAsR,QAAA5P,OAAA,UAAA7B,KAAA,WAAAmL,KAAA8I,UAAA,IAAA7G,MAAAvL,OAAA,OAAAmD,KAAAyI,QAAA,MAAA04D,OAAA,SAAA,IAAA,OAAA9lE,GAAA,QAAAA,EAAA,CAAA,GAAAE,GAAAX,EAAA2mB,SAAA,IAAApb,KAAA8iH,aAAA1tH,GAAAgmB,WAAAhN,YAAA,qBAAAhZ,EAAA6P,KAAA,yDAAA8I,WAAA,YAAA/N,KAAA0iH,gBAAA5/G,EAAAkD,IAAAhG,KAAA0iH,gBAAA,SAAAjuH,GAAA,MAAAA,IAAAD,EAAA,KAAAC,MAAAi0H,mBAAA,SAAAl0H,GAAA,GAAAC,GAAAqO,EAAAtO,GAAAQ,EAAA8N,EAAAjN,KAAArB,EAAAuyH,UAAA,IAAAtyH,EAAA6Z,SAAAtO,KAAAinH,iBAAA,CAAA,GAAA/xH,GAAAV,EAAA2D,SAAA5C;AAAA,AxDyuBA,GwDzuBA,SAAAL,EAAAV,EAAAsU,UAAA,EAAA9T,EAAAsR,QAAA5P,OAAA,UAAA7B,KAAA,WAAAmL,KAAA8I,UAAA,IAAA7G,MAAAvL,OAAA,OAAAmD,KAAAyI,QAAA,MAAA04D,OAAA,gBAAA,IAAA,OAAA9lE,GAAA,QAAAA,EAAA,CAAA,GAAAE,GAAAX,EAAA2mB,SAAA,IAAApb,KAAA8iH,aAAA1tH,GAAAgmB,WAAAjN,SAAA,qBAAA/Y,EAAA6P,KAAA,yDAAAJ,KAAA,WAAA,YAAA7E,KAAA0iH,gBAAA5/G,EAAAkD,IAAAhG,KAAA0iH,gBAAA,SAAAjuH,GAAA,MAAAA,IAAAD,EAAA,KAAAC,IAAAuL,KAAA0iH,gBAAA1iH,KAAA0iH,gBAAA1rH,QAAAxC,IAAAoyH,sBAAA,SAAApyH,GAAA,IAAAA,EAAA,OAAA,CAAA,KAAA,GAAAC,GAAA,EAAAA,EAAAuL,KAAA0iH,gBAAA1rH,OAAAvC,IAAA,GAAAuL,KAAA0iH,gBAAAjuH,IAAAD,EAAA,OAAA,CAAA,QAAA,GAAAu1H,SAAA,SAAAv1H,GAAA,IAAA,MAAAsO,GAAAjN,KAAArB,EAAAuyH;AxD0uBA,CwD1uBA,MAAAtyH,GAAA,KAAA,8CAAAu1H,kBAAA,SAAAx1H,EAAAC,EAAAO,GAAA,GAAAE,GAAA8K,KAAA+pH,SAAAv1H,EAAA,IAAA,GAAAsR,UAAA9O,QAAA,gBAAAvC,GAAA,MAAA,YAAAA,EAAAqO,EAAA/K,UAAA+K,EAAA6jH,WAAAtmD,WAAAnrE,EAAA,OAAAT,EAAAqO,EAAA/K,UAAA7C,EAAAoyH,UAAAtnH,KAAAwoH,KAAAtzH,EAAAT,GAAA,IAAA,IAAAW,GAAAX,KAAA,IAAA,gBAAAA,KAAAW,KAAAA,EAAAX,GAAAO,GAAAE,EAAA,CAAA8K,KAAAyiH,UAAAvtH,GAAA8K,KAAA8oH,iBAAA,IAAAlzH,GAAAoK,KAAAiqH,mBAAAz1H,GAAA,GAAAiD,EAAAuI,KAAAkqH,eAAAh1H,EAAA,OAAAwC,EAAAsI,KAAAkqH,eAAAh1H,EAAA,MAAA4xH,cAAA5xH,EAAAoyH,SAAAlyH,GAAA,OAAAqC,GAAArC,EAAA4uH,aAAAj6F,WAAA30B,EAAAqwH,UAAA17F,YAAA70B,EAAAoyH,SAAA7B,QAAAzlH,KAAAipH,YAAA/zH,EAAAuC,IAAA,OAAAC,GAAAtC,EAAA4uH,aAAAj6F,WAAA30B,EAAAswH,UAAA37F,YAAA70B,EAAAoyH,SAAA5B,QAAA1lH,KAAAipH,YAAA/zH,EAAAwC;AAAAsI,AxD2uBA,KwD3uBAmoH,aAAArlH,EAAAtO,GAAAU,GAAA8K,KAAAyoH,UAAAvzH,GAAA8K,KAAAkpH,SAAAh0H,EAAAU,GAAAoK,KAAAqpH,iBAAAn0H,GAAA8K,KAAAopH,kBAAAl0H,KAAAi1H,kBAAA,SAAA31H,EAAAC,EAAAO,GAAAgL,KAAAgqH,kBAAAx1H,EAAAC,EAAAO,IAAAo1H,mBAAA,SAAA51H,GAAA,GAAAC,GAAAuL,KAAA+pH,SAAAv1H,EAAAC,IAAAuL,KAAAopH,kBAAA30H,IAAA41H,mBAAA,SAAA71H,EAAAC,GAAA,GAAAO,GAAAgL,KAAA+pH,SAAAv1H,EAAAQ,KAAAgL,KAAAkpH,SAAAl0H,EAAAP,GAAAuL,KAAAopH,kBAAAp0H,GAAAgL,KAAAqpH,iBAAAr0H,KAAAi1H,mBAAA,SAAAz1H,EAAAC,GAAA,GAAAO,GAAAgL,KAAA+pH,SAAAv1H,EAAA,OAAAQ,KAAAA,EAAAg3D,QAAAhsD,KAAAsqH,kBAAAt1H,EAAAP,GAAAO,EAAAgL,KAAAuqH,SAAAv1H,GAAA,MAAAozH,WAAA,SAAA5zH,GAAA,GAAAC,GAAAqO,EAAA6jH,WAAAoD,SAAAv1H,EAAA8d,QAAAtd,GAAA,EAAAE,EAAAT,EAAAgyH,MAAA1zG,GAAA,qBAAA,IAAAte,EAAAsnH,WAAA,EAAAj5G,EAAA6jH,WAAAhE,mBAAA,OAAAnuH,EAAAkf;AAAA,AxD4uBA,IwD5uBA,GAAA5Q,EAAA6jH,WAAAmC,kBAAA9zH,GAAA,CAAA,MAAA,KAAA,IAAA,GAAAI,GAAA0N,EAAA,MAAAA,EAAA6jH,WAAAtD,cAAA,SAAAvgH,EAAA6jH,WAAAvD,cAAA,IAAA3uH,EAAAgyH,MAAArxH,GAAA,IAAA0N,EAAA6jH,WAAA6D,WAAAh2H,EAAA8d,OAAA7d,EAAAszH,cAAAtzH,EAAAuzH,aAAA5yH,EAAA,GAAA,IAAAQ,GAAAkN,EAAA6jH,WAAA6B,KAAA/zH,EAAA,WAAA,IAAAmB,EAAA,CAAA,GAAA6B,GAAAqL,EAAA6jH,WAAAsC,YAAAx0H,EAAAmB,GAAAiQ,MAAApR,EAAAolB,MAAAplB,EAAAolB,MAAA,GAAA,MAAApiB,EAAAhD,QAAAqO,GAAA6jH,WAAAmC,iBAAA,QAAA,CAAA,KAAA,IAAAhmH,EAAA6jH,WAAAmC,iBAAA,MAAA,KAAA,IAAAhmH,EAAA6jH,WAAA8D,YAAAj2H,EAAA8d,OAAA9d,EAAAqiH,SAAA/zG,EAAA6jH,WAAA6B,KAAA/zH,EAAA,kBAAAqO,EAAA6jH,WAAA6B,KAAA/zH,EAAA,cAAA,IAAA,MAAA,KAAA,IAAAqO,EAAA6jH,WAAA8D,YAAAj2H,EAAA8d,OAAA9d,EAAAqiH,SAAA/zG,EAAA6jH,WAAA6B,KAAA/zH,EAAA,kBAAAqO,EAAA6jH,WAAA6B,KAAA/zH,EAAA,cAAA;AAAA,AxD6uBA,KwD7uBA,KAAA,KAAAD,EAAAqiH,SAAAriH,EAAAggB,UAAA1R,EAAA6jH,WAAA+D,WAAAl2H,EAAA8d,QAAAtd,EAAAR,EAAAqiH,SAAAriH,EAAAggB,OAAA,MAAA,KAAA,KAAAhgB,EAAAqiH,SAAAriH,EAAAggB,UAAA1R,EAAA6jH,WAAAgE,WAAAn2H,EAAA8d,QAAAtd,EAAAR,EAAAqiH,SAAAriH,EAAAggB,OAAA,MAAA,KAAA,KAAAhgB,EAAAqiH,SAAAriH,EAAAggB,UAAA1R,EAAA6jH,WAAA8D,YAAAj2H,EAAA8d,OAAApd,EAAA,EAAA,GAAA,KAAAF,EAAAR,EAAAqiH,SAAAriH,EAAAggB,QAAAhgB,EAAAygB,cAAAqlG,QAAAx3G,EAAA6jH,WAAA8D,YAAAj2H,EAAA8d,OAAA9d,EAAAqiH,SAAA/zG,EAAA6jH,WAAA6B,KAAA/zH,EAAA,kBAAAqO,EAAA6jH,WAAA6B,KAAA/zH,EAAA,cAAA,IAAA,MAAA,KAAA,KAAAD,EAAAqiH,SAAAriH,EAAAggB,UAAA1R,EAAA6jH,WAAA8D,YAAAj2H,EAAA8d,OAAA,GAAA,KAAAtd,EAAAR,EAAAqiH,SAAAriH,EAAAggB,OAAA,MAAA,KAAA,KAAAhgB,EAAAqiH,SAAAriH,EAAAggB,UAAA1R,EAAA6jH,WAAA8D,YAAAj2H,EAAA8d,OAAApd,EAAA,GAAA,EAAA,KAAAF,EAAAR,EAAAqiH,SAAAriH,EAAAggB,QAAAhgB,EAAAygB,cAAAqlG,QAAAx3G,EAAA6jH,WAAA8D,YAAAj2H,EAAA8d,OAAA9d,EAAAqiH,SAAA/zG,EAAA6jH,WAAA6B,KAAA/zH,EAAA,kBAAAqO,EAAA6jH,WAAA6B,KAAA/zH,EAAA,cAAA;AAAA,AxD8uBA,KwD9uBA,KAAA,KAAAD,EAAAqiH,SAAAriH,EAAAggB,UAAA1R,EAAA6jH,WAAA8D,YAAAj2H,EAAA8d,OAAA,EAAA,KAAAtd,EAAAR,EAAAqiH,SAAAriH,EAAAggB,OAAA,MAAA,SAAAxf,GAAA,MAAA,KAAAR,EAAAkf,SAAAlf,EAAAqiH,QAAA/zG,EAAA6jH,WAAAgC,gBAAA3oH,MAAAhL,GAAA,CAAAA,KAAAR,EAAAie,iBAAAje,EAAA4e,oBAAAk1G,YAAA,SAAA9zH,GAAA,GAAAC,GAAAqO,EAAA6jH,WAAAoD,SAAAv1H,EAAA8d,OAAA,IAAAxP,EAAA6jH,WAAA6B,KAAA/zH,EAAA,kBAAA,CAAA,GAAAO,GAAA8N,EAAA6jH,WAAAiE,eAAA9nH,EAAA6jH,WAAA6B,KAAA/zH,EAAA,eAAAS,EAAAkO,OAAAynH,aAAAr2H,EAAAif,UAAAsW,UAAAv1B,EAAAkf,QAAAlf,EAAAif,SAAA,OAAAjf,GAAAqiH,SAAAriH,EAAAggB,SAAA,IAAAtf,IAAAF,GAAAA,EAAAgO,QAAA9N,GAAA,KAAAqzH,SAAA,SAAA/zH,GAAA,GAAAC,GAAAqO,EAAA6jH,WAAAoD,SAAAv1H,EAAA8d,OAAA,IAAA7d,EAAAolB,MAAAtL,OAAA9Z,EAAAq2H,QAAA,IAAA,GAAA91H,GAAA8N,EAAA6jH,WAAAoE,UAAAjoH,EAAA6jH,WAAA6B,KAAA/zH,EAAA,cAAAA,EAAAolB,MAAAplB,EAAAolB,MAAAtL,MAAA,KAAAzL,EAAA6jH,WAAAqE,iBAAAv2H;AAAAO,AxD+uBA,IwD/uBA8N,EAAA6jH,WAAA2D,kBAAA71H,GAAAqO,EAAA6jH,WAAA0C,iBAAA50H,GAAAqO,EAAA6jH,WAAAyC,kBAAA30H,IAAA,MAAAS,GAAA4N,EAAA6jH,WAAA17E,IAAA/1C,GAAA,OAAA,GAAAyzH,gBAAA,SAAAn0H,GAAA,GAAAA,EAAAA,EAAA8d,QAAA9d,EAAA,SAAAA,EAAA2D,SAAA5C,gBAAAf,EAAAsO,EAAA,QAAAtO,EAAA2B,YAAA,KAAA2M,EAAA6jH,WAAAC,sBAAApyH,IAAAsO,EAAA6jH,WAAAkC,YAAAr0H,EAAA,CAAA,GAAAC,GAAAqO,EAAA6jH,WAAAoD,SAAAv1H,EAAAsO,GAAA6jH,WAAAlE,UAAA3/G,EAAA6jH,WAAAlE,UAAAhuH,IAAAqO,EAAA6jH,WAAAlE,SAAAgE,MAAA3mH,MAAA,GAAA,GAAArL,GAAAqO,EAAA6jH,WAAAhE,oBAAA7/G,EAAA6jH,WAAAmC,gBAAAhmH,EAAA6jH,WAAAlE,SAAA5oG,MAAA,IAAA,IAAA7kB,GAAA8N,EAAA6jH,WAAA6B,KAAA/zH,EAAA,cAAAS,EAAAF,EAAAA,EAAA6Q,MAAArR,GAAAA,EAAAC,MAAA,IAAAS,KAAA,EAAA,CAAA4xH,aAAAryH,EAAA6yH,SAAApyH,GAAAT,EAAAq2H,QAAA,KAAAhoH,EAAA6jH,WAAAkC,WAAAr0H;AAAAsO,AxDgvBA,EwDhvBA6jH,WAAA2D,kBAAA71H,GAAAqO,EAAA6jH,WAAA/D,YAAApuH,EAAAqE,MAAA,IAAAiK,EAAA6jH,WAAA8C,OAAA3mH,EAAA6jH,WAAA8C,KAAA3mH,EAAA6jH,WAAAsE,SAAAz2H,GAAAsO,EAAA6jH,WAAA8C,KAAA,IAAAj1H,EAAAsG,aAAA,IAAA1F,IAAA,CAAA0N,GAAAtO,GAAAmnB,UAAA9mB,KAAA,WAAA,MAAAO,IAAA,SAAA0N,EAAA9C,MAAAnG,IAAA,aAAAzE,IAAAA,GAAA0N,EAAAqc,QAAA+rG,QAAApoH,EAAA6jH,WAAA8C,KAAA,IAAA5tH,SAAA6L,gBAAAqM,WAAAjR,EAAA6jH,WAAA8C,KAAA,IAAA5tH,SAAA6L,gBAAAyM,UAAA,IAAAve,IAAAsrB,KAAApe,EAAA6jH,WAAA8C,KAAA,GAAA19G,IAAAjJ,EAAA6jH,WAAA8C,KAAA,GAAA,IAAA3mH,EAAA6jH,WAAA8C,KAAA,KAAAh1H,EAAAgyH,MAAAplH,QAAA5M,EAAAgyH,MAAA5sH,KAAAmmB,SAAA,WAAA/lB,QAAA,QAAA8R,IAAA,YAAAjJ,EAAA6jH,WAAAyC,kBAAA30H,GAAAmB,EAAAkN,EAAA6jH,WAAAwE,aAAA12H,EAAAmB,EAAAR,GAAAX,EAAAgyH,MAAA5sH,KAAAmmB,SAAAld,EAAA6jH,WAAA/D,WAAA9/G,EAAA8mH,QAAA,SAAAx0H,EAAA,QAAA;AAAA6E,AxDivBA,QwDjvBA,OAAAinB,KAAAtrB,EAAAsrB,KAAA,KAAAnV,IAAAnW,EAAAmW,IAAA,QAAAtX,EAAAu3D,OAAA,CAAA,GAAAv0D,GAAAqL,EAAA6jH,WAAA6B,KAAA/zH,EAAA,YAAAiD,EAAAoL,EAAA6jH,WAAA6B,KAAA/zH,EAAA,YAAA4H,EAAA,WAAA,GAAA7H,GAAAC,EAAAgyH,MAAAxhH,KAAA,6BAAA,IAAAzQ,EAAAwC,OAAA,CAAA,GAAAhC,GAAA8N,EAAA6jH,WAAAyE,YAAA32H,EAAAgyH,MAAAjyH,GAAAqF,KAAAqnB,MAAAlsB,EAAA,GAAA+W,KAAA/W,EAAA,GAAAwG,MAAA/G,EAAAgyH,MAAAjjB,aAAA/nG,OAAAhH,EAAAgyH,MAAA10E,iBAAAt9C,GAAAgyH,MAAA9lG,OAAA7d,EAAAtO,GAAAmsB,SAAA,GAAA7d,EAAA6jH,WAAAhE,oBAAA,EAAA7/G,EAAAuoH,SAAAvoH,EAAAuoH,QAAA5zH,GAAAhD,EAAAgyH,MAAA3kH,KAAArK,EAAAqL,EAAA6jH,WAAA6B,KAAA/zH,EAAA,eAAAiD,EAAA2E,GAAA5H,EAAAgyH,MAAAhvH,GAAA,QAAAA,EAAAC,EAAA,KAAA2E,KAAA5E,IAAAC,IAAA2E,IAAA5H,EAAAolB,MAAA9G,GAAA,cAAAte,EAAAolB,MAAA9G,GAAA,cAAAte,EAAAolB,MAAAlF,QAAA7R,EAAA6jH,WAAAlE,SAAAhuH,MAAA20H,kBAAA,SAAA50H,GAAA,GAAAC,GAAAuL,IAAAvL,GAAAyyH,QAAA;AAAA,AxDkvBA,GwDlvBAlyH,GAAA8N,EAAA6jH,WAAAyE,YAAA52H,EAAAiyH,MAAAI,YAAAryH,EAAAA,EAAAiyH,MAAAplH,QAAAuc,OAAA5d,KAAAsrH,cAAA92H,IAAAwL,KAAAurH,gBAAA/2H,EAAA,IAAAU,GAAAV,EAAAiyH,MAAAxhH,KAAA,+BAAA/P,EAAA8B,QAAA9B,EAAA2E,KAAAqnB,MAAAlsB,EAAA,GAAA+W,KAAA/W,EAAA,GAAAwG,MAAAhH,EAAAiyH,MAAAjjB,aAAA/nG,OAAAjH,EAAAiyH,MAAA10E,gBAAAv9C,EAAAiyH,MAAAxhH,KAAA,IAAAjF,KAAAqjH,cAAA,MAAAxO,WAAA,IAAAz/G,GAAA4K,KAAAwrH,mBAAAh3H,GAAAoB,EAAAR,EAAA,GAAAqC,EAAA,EAAA,IAAAjD,EAAAiyH,MAAAr4G,YAAA,qEAAA5S,MAAA,IAAA5F,EAAA,GAAApB,EAAAiyH,MAAAt4G,SAAA,uBAAAvY,GAAAiE,IAAA,QAAApC,EAAA7B,EAAA,MAAApB,EAAAiyH,OAAA,GAAArxH,EAAA,IAAA,GAAAA,EAAA,GAAA,MAAA,UAAA,SAAA,uBAAAZ,EAAAiyH,OAAAzmH,KAAAwoH,KAAAh0H,EAAA,SAAA,MAAA,UAAA,SAAA;AAAAA,AxDmvBA,GwDnvBAsO,EAAA6jH,WAAAlE,UAAA3/G,EAAA6jH,WAAAhE,oBAAAnuH,EAAAqlB,OAAArlB,EAAAqlB,MAAA9G,GAAA,cAAAve,EAAAqlB,MAAA9G,GAAA,cAAAve,EAAAqlB,MAAA,IAAAhe,SAAAie,eAAAtlB,EAAAqlB,MAAAlF,QAAAngB,EAAAi3H,UAAA,CAAA,GAAA/zH,GAAAlD,EAAAi3H,SAAAttH,YAAA,WAAAzG,IAAAlD,EAAAi3H,WAAAj3H,EAAAi3H,WAAAj3H,EAAAiyH,MAAAxhH,KAAA,mCAAAiZ,YAAA1pB,EAAAi3H,WAAA/zH,EAAAlD,EAAAi3H,UAAA,MAAA,KAAAL,YAAA,SAAA52H,GAAA,GAAAC,GAAA,SAAAD,GAAA,OAAAk3H,KAAA,EAAAC,OAAA,EAAAC,MAAA,GAAAp3H,IAAAA,EAAA,QAAAmG,WAAAlG,EAAAD,EAAAqF,IAAA,uBAAAc,WAAAlG,EAAAD,EAAAqF,IAAA,wBAAAsxH,aAAA,SAAA32H,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAAiyH,MAAAjjB,aAAApuG,EAAAZ,EAAAiyH,MAAA10E,cAAAn8C,EAAApB,EAAAqlB,MAAArlB,EAAAqlB,MAAA2pF,aAAA,EAAA/rG,EAAAjD,EAAAqlB,MAAArlB,EAAAqlB,MAAAk4B,cAAA,EAAAr6C,EAAAmE,SAAA6L,gBAAAgiH,aAAA10H,EAAA,EAAA8N,EAAAjH,UAAAkY,cAAA1X,EAAAR,SAAA6L,gBAAAiiH,cAAA30H,EAAA,EAAA8N,EAAAjH,UAAAsY;AAAA,AxDovBA,MwDpvBA1f,GAAAysB,MAAAlhB,KAAAwoH,KAAAh0H,EAAA,SAAAU,EAAAU,EAAA,EAAAnB,EAAAysB,MAAAlsB,GAAAP,EAAAysB,MAAA1sB,EAAAqlB,MAAAiP,SAAA5H,KAAApe,EAAAjH,UAAAkY,aAAA,EAAAtf,EAAAsX,KAAA/W,GAAAP,EAAAsX,KAAAvX,EAAAqlB,MAAAiP,SAAA/c,IAAAtU,EAAAqL,EAAAjH,UAAAsY,YAAA,EAAA1f,EAAAysB,MAAA3mB,KAAA+3B,IAAA79B,EAAAysB,KAAAzsB,EAAAysB,KAAAhsB,EAAAwC,GAAAA,EAAAxC,EAAAqF,KAAA6uC,IAAA30C,EAAAysB,KAAAhsB,EAAAwC,GAAA,GAAAjD,EAAAsX,KAAAxR,KAAA+3B,IAAA79B,EAAAsX,IAAAtX,EAAAsX,IAAA3W,EAAAiH,GAAAA,EAAAjH,EAAAmF,KAAA6uC,IAAAh0C,EAAAqC,GAAA,GAAAhD,GAAAw2H,SAAA,SAAAz2H,GAAA,IAAA,GAAAC,GAAAuL,KAAA+pH,SAAAv1H,GAAAQ,EAAAgL,KAAAwoH,KAAA/zH,EAAA,SAAAD,IAAA,UAAAA,EAAAkE,MAAA,GAAAlE,EAAAW,UAAA2N,EAAAqY,KAAAb,QAAAgH,OAAA9sB,KAAAA,EAAAA,EAAAQ,EAAA,kBAAA,cAAA,IAAAE,GAAA4N,EAAAtO,GAAAs0B,QAAA,QAAA5zB,EAAAgsB,KAAAhsB,EAAA6W,MAAA+8G,gBAAA,SAAAt0H,GAAA,GAAAC,GAAAuL,KAAAyiH,QAAA,IAAAhuH,KAAAD,GAAAC,GAAAqO,EAAAjN,KAAArB,EAAAuyH,aAAA/mH,KAAA2iH,mBAAA,CAAA,GAAA3tH,GAAAgL,KAAAwoH,KAAA/zH,EAAA,YAAAS,EAAA8K,KAAAwoH,KAAA/zH,EAAA,YAAAW,EAAA;AAAA0N,AxDqvBA,EwDrvBA6jH,WAAAkF,YAAAp3H,GAAAqO,GAAAuoH,SAAAvoH,EAAAuoH,QAAAr2H,GAAAP,EAAAgyH,MAAA1kH,KAAA/M,EAAA8N,EAAA6jH,WAAA6B,KAAA/zH,EAAA,eAAAS,EAAAE,GAAAX,EAAAgyH,MAAA,aAAAzxH,EAAA,UAAA,UAAAA,EAAA,UAAA,QAAAA,EAAAE,EAAA,KAAAE,GAAAJ,GAAAI,IAAA4K,KAAA2iH,oBAAA,CAAA,IAAA/sH,GAAAoK,KAAAwoH,KAAA/zH,EAAA,UAAAmB,IAAAA,EAAAiQ,MAAApR,EAAAolB,MAAAplB,EAAAolB,MAAA,GAAA,MAAAplB,EAAAolB,MAAAplB,EAAAolB,MAAAtL,MAAA,GAAA9Z,IAAAuL,KAAA6oH,WAAA,KAAA7oH,KAAA4iH,YAAA5iH,KAAAwpH,aAAA3vH,KAAAmmB,SAAA,WAAAkB,KAAA,IAAAnV,IAAA,WAAAjJ,EAAA8mH,UAAA9mH,EAAAgpH,YAAAhpH,EAAA,QAAA8a,OAAA5d,KAAAymH,SAAAzmH,KAAA4iH,WAAA,IAAAiJ,YAAA,SAAAr3H,GAAAA,EAAAiyH,MAAAr4G,YAAApO,KAAAijH,cAAAhtG,OAAA,4BAAA81G,oBAAA,SAAAv3H,GAAA,GAAAsO,EAAA6jH,WAAAlE,SAAA,CAAA,GAAAhuH,GAAAqO,EAAAtO,EAAA8d,QAAAtd,EAAA8N,EAAA6jH,WAAAoD,SAAAt1H,EAAA;AxDsvBA,CwDtvBAA,EAAA,GAAAuQ,IAAAlC,EAAA6jH,WAAA9D,YAAA,GAAApuH,EAAAknB,QAAA,IAAA7Y,EAAA6jH,WAAA9D,YAAA7rH,SAAAvC,EAAA6Z,SAAAxL,EAAA6jH,WAAAM,mBAAAxyH,EAAA8mB,QAAA,IAAAzY,EAAA6jH,WAAA3D,eAAAhsH,QAAA8L,EAAA6jH,WAAAhE,sBAAA7/G,EAAA6jH,WAAA/D,YAAA9/G,EAAA8mH,UAAAn1H,EAAA6Z,SAAAxL,EAAA6jH,WAAAM,kBAAAnkH,EAAA6jH,WAAAlE,UAAAztH,IAAA8N,EAAA6jH,WAAAmC,oBAAA2B,YAAA,SAAAj2H,EAAAC,EAAAO,GAAA,GAAAE,GAAA4N,EAAAtO,GAAAY,EAAA4K,KAAA+pH,SAAA70H,EAAA,GAAA8K,MAAA4mH,sBAAA1xH,EAAA,MAAA8K,KAAAgsH,gBAAA52H,EAAAX,GAAA,KAAAO,EAAAgL,KAAAwoH,KAAApzH,EAAA,oBAAA,GAAAJ,GAAAgL,KAAAopH,kBAAAh0H,KAAAu1H,WAAA,SAAAn2H,GAAA,GAAAC,GAAAqO,EAAAtO,GAAAQ,EAAAgL,KAAA+pH,SAAAt1H,EAAA,GAAA,IAAAuL,KAAAwoH,KAAAxzH,EAAA,gBAAAA,EAAAi3H,WAAAj3H,EAAA8yH,YAAA9yH,EAAAi3H;AAAAj3H,AxDuvBA,EwDvvBAizH,UAAAjzH,EAAA+yH,cAAA/yH,EAAAk3H,aAAAl3H,EAAAkzH,SAAAlzH,EAAAgzH,aAAAhzH,EAAAm3H,gBAAA,CAAA,GAAAj3H,GAAA,GAAAgT,KAAAlT,GAAA8yH,YAAA5yH,EAAAqyE,UAAAvyE,EAAAizH,UAAAjzH,EAAA+yH,cAAA7yH,EAAAoyE,WAAAtyE,EAAAkzH,SAAAlzH,EAAAgzH,aAAA9yH,EAAAixE,cAAAnmE,KAAAosH,cAAAp3H,GAAAgL,KAAAyqH,YAAAh2H,IAAA43H,iBAAA,SAAA73H,EAAAC,EAAAO,GAAA,GAAAE,GAAA4N,EAAAtO,GAAAY,EAAA4K,KAAA+pH,SAAA70H,EAAA,GAAAE,GAAA,YAAA,KAAAJ,EAAA,QAAA,SAAAI,EAAA,QAAA,KAAAJ,EAAA,QAAA,SAAAib,SAAAxb,EAAAqa,QAAAra,EAAAoa,eAAAhW,MAAA,IAAAmH,KAAAosH,cAAAh3H,GAAA4K,KAAAyqH,YAAAv1H,IAAAs1H,WAAA,SAAAh2H,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAA0N,EAAAtO,EAAA,KAAAsO,EAAA5N,GAAAoZ,SAAAtO,KAAAmjH,sBAAAnjH,KAAA4mH,sBAAAxxH,EAAA,IAAA,CAAA,GAAAQ,GAAAoK,KAAA+pH,SAAA30H,EAAA,GAAAQ,GAAAkyH,YAAAlyH,EAAAq2H,WAAAnpH,EAAA,IAAA5N,GAAAspB;AAAA5oB,AxDwvBA,EwDxvBAmyH,cAAAnyH,EAAAs2H,aAAAz3H,EAAAmB,EAAAoyH,aAAApyH,EAAAu2H,YAAAn3H,EAAAgL,KAAAssH,YAAA93H,EAAAwL,KAAAipH,YAAArzH,EAAAA,EAAAq2H,WAAAr2H,EAAAs2H,aAAAt2H,EAAAu2H,gBAAAzB,WAAA,SAAAl2H,GAAA,GAAAC,GAAAqO,EAAAtO,EAAAwL,MAAA+pH,SAAAt1H,EAAA,GAAAuL,MAAAssH,YAAA73H,EAAA,KAAA63H,YAAA,SAAA93H,EAAAC,GAAA,GAAAO,GAAA8N,EAAAtO,GAAAU,EAAA8K,KAAA+pH,SAAA/0H,EAAA,GAAAP,GAAA,MAAAA,EAAAA,EAAAuL,KAAAipH,YAAA/zH,GAAAA,EAAA2kB,OAAA3kB,EAAA2kB,MAAAtL,IAAA9Z,GAAAuL,KAAAqpH,iBAAAn0H,EAAA,IAAAE,GAAA4K,KAAAwoH,KAAAtzH,EAAA,WAAAE,GAAAA,EAAAyQ,MAAA3Q,EAAA2kB,MAAA3kB,EAAA2kB,MAAA,GAAA,MAAAplB,EAAAS,IAAAA,EAAA2kB,OAAA3kB,EAAA2kB,MAAAvT,QAAA,UAAApR,EAAA82D,OAAAhsD,KAAAopH,kBAAAl0H,IAAA8K,KAAA8oH,kBAAA9oH,KAAA6oH,WAAA3zH,EAAA2kB,MAAA,GAAA,gBAAA3kB,GAAA2kB,MAAA,IAAA3kB,EAAA2kB,MAAAlF,QAAA3U,KAAA6oH,WAAA,OAAAQ,iBAAA,SAAA70H,GAAA,GAAAC,GAAAuL,KAAAwoH,KAAAh0H,EAAA;AAAA,AxDyvBA,GwDzvBAC,EAAA,CAAA,GAAAO,GAAAgL,KAAAwoH,KAAAh0H,EAAA,cAAAwL,KAAAwoH,KAAAh0H,EAAA,cAAAU,EAAA8K,KAAAuqH,SAAA/1H,GAAAY,EAAA4K,KAAAusH,WAAAv3H,EAAAE,EAAA8K,KAAAgrH,iBAAAx2H,GAAAsO,GAAArO,GAAAI,KAAA,WAAAiO,EAAA9C,MAAAuO,IAAAnZ,OAAAo3H,WAAA,SAAAh4H,GAAA,GAAAC,GAAAD,EAAAo8E,QAAA,QAAAn8E,EAAA,GAAA,EAAAA,EAAA,KAAA8wH,YAAA,SAAA/wH,GAAA,GAAAC,GAAA,GAAAyT,MAAA1T,EAAA2T,UAAA1T,GAAAu0H,QAAAv0H,EAAA8yE,UAAA,GAAA9yE,EAAAm8E,UAAA,GAAA,IAAA57E,GAAAP,EAAA0T,SAAA,OAAA1T,GAAAs0H,SAAA,GAAAt0H,EAAAu0H,QAAA,GAAAzuH,KAAAi3B,MAAAj3B,KAAA6vE,OAAAp1E,EAAAP,GAAA,OAAA,GAAA,GAAAs2H,UAAA,SAAAv2H,EAAAC,EAAAO,GAAA,GAAA,MAAAR,GAAA,MAAAC,EAAA,KAAA,mBAAA,IAAAA,EAAA,gBAAAA,GAAAA,EAAAyO,WAAAzO,EAAA,GAAA,IAAAA,EAAA,MAAA,KAAA,IAAAS,IAAAF,EAAAA,EAAAwwH,gBAAA,OAAAxlH,KAAAqgE,UAAAmlD,eAAAtwH,GAAA,gBAAAA,GAAAA,GAAA,GAAAgT,OAAAi+D,cAAA,IAAAl2D,SAAA/a,EAAA;AAAA,AxD0vBA,IwD1vBA,GAAAE,IAAAJ,EAAAA,EAAA6uH,cAAA,OAAA7jH,KAAAqgE,UAAAwjD,cAAAjuH,GAAAZ,EAAAA,EAAA4uH,SAAA,OAAA5jH,KAAAqgE,UAAAujD,SAAAnsH,GAAAzC,EAAAA,EAAA2uH,gBAAA,OAAA3jH,KAAAqgE,UAAAsjD,gBAAAjsH,GAAA1C,EAAAA,EAAA0uH,WAAA,OAAA1jH,KAAAqgE,UAAAqjD,WAAArnH,EAAA,GAAAI,EAAA,GAAAC,EAAA,GAAAC,EAAA,GAAAoE,GAAA,EAAAC,EAAA,SAAAvM,GAAA,GAAAO,GAAAD,EAAA,EAAAP,EAAAwC,QAAAxC,EAAAgF,OAAAzE,EAAA,IAAAN,CAAA,OAAAO,IAAAD,IAAAC,GAAAiM,EAAA,SAAAzM,GAAA,GAAAQ,GAAAgM,EAAAxM,GAAAU,EAAA,KAAAV,EAAA,GAAA,KAAAA,EAAA,GAAA,KAAAA,GAAAQ,EAAA,EAAA,KAAAR,EAAA,EAAA,EAAAY,EAAA,GAAAsc,QAAA,UAAAxc,EAAA,KAAAU,EAAAnB,EAAAqY,UAAAvJ,GAAAyT,MAAA5hB,EAAA,KAAAQ,EAAA,KAAA,8BAAA2N,CAAA,OAAAA,IAAA3N,EAAA,GAAAoB,OAAAiZ,SAAAra,EAAA,GAAA,KAAAhB,EAAA,SAAAJ,EAAAQ,EAAAE,GAAA,GAAAE,GAAA0N,EAAAkD,IAAAhF,EAAAxM,GAAAU,EAAAF,EAAA,SAAAR,EAAAC,GAAA,QAAAA,EAAAD,MAAAyR,KAAA,SAAAzR,EAAAC,GAAA,QAAAD,EAAA,GAAAwC,OAAAvC,EAAA,GAAAuC,UAAApB,EAAA,EAAA,IAAAkN,EAAAjO,KAAAO,EAAA,SAAAZ,EAAAQ;AAAA,AxD2vBA,GwD3vBAE,GAAAF,EAAA,EAAA,OAAAP,GAAA6H,OAAAiH,EAAArO,EAAA8B,QAAAzB,eAAAL,EAAAK,eAAAK,EAAAZ,EAAA,GAAAuO,GAAArO,EAAA8B,QAAA,GAAA,SAAA,IAAApB,EAAA,MAAAA,GAAA,CAAA,MAAA,4BAAA2N,GAAArC,EAAA,WAAA,GAAAzM,EAAA+E,OAAA+J,IAAA/O,EAAAgF,OAAAzE,GAAA,KAAA,kCAAAwO,CAAAA,MAAAA,EAAA,EAAAxO,EAAA,EAAAA,EAAAP,EAAAwC,OAAAjC,IAAA,GAAAgM,EAAA,KAAAvM,EAAAgF,OAAAzE,IAAAiM,EAAA,KAAAE,IAAAH,GAAA,MAAA,QAAAvM,EAAAgF,OAAAzE,IAAA,IAAA,IAAA2H,EAAAuE,EAAA,IAAA,MAAA,KAAA,IAAArM,EAAA,IAAAQ,EAAAQ,EAAA,MAAA,KAAA,IAAA+G,EAAAsE,EAAA,IAAA,MAAA,KAAA,IAAAxE,EAAAwE,EAAA,IAAA,MAAA,KAAA,IAAAxE,EAAA7H,EAAA,IAAA6C,EAAAC,EAAA,MAAA,KAAA,IAAA2E,EAAA4E,EAAA,IAAA,MAAA,KAAA,IAAA,GAAAuC,GAAA,GAAA0E,MAAAjH,EAAA,KAAA5E,GAAAmH,EAAA2iE,cAAA1pE,EAAA+G,EAAA8jE,WAAA,EAAA5qE,EAAA8G,EAAA+jE,SAAA,MAAA,KAAA,IAAA,GAAA/jE,GAAA,GAAA0E,OAAAjH,EAAA,KAAAjB,KAAAysH,cAAA,IAAApwH,GAAAmH,EAAA2iE,cAAA1pE,EAAA+G,EAAA8jE,WAAA,EAAA5qE,EAAA8G,EAAA+jE,SAAA;AAAA,AxD4vBA,IwD5vBA,IAAAvmE,EAAA,KAAAE,IAAAH,GAAA,CAAA,MAAA,SAAAG,IAAA,GAAAqC,EAAA9O,EAAAuC,OAAA,KAAA,4CAAAvC,EAAAqY,UAAAvJ,EAAA,IAAA,IAAAlH,EAAAA,GAAA,GAAA6L,OAAAi+D,cAAA,IAAA9pE,IAAAA,IAAA,GAAA6L,OAAAi+D,eAAA,GAAAj+D,OAAAi+D,cAAA,KAAAjxE,GAAAmH,EAAA,EAAA,OAAAM,EAAA,GAAA,IAAAF,EAAA,EAAAC,EAAAC,IAAA,CAAA,GAAA8G,GAAAzD,KAAA0sH,gBAAArwH,EAAAI,EAAA,EAAA,IAAAgH,GAAA/G,EAAA,KAAAD,KAAAC,GAAA+G,EAAA,GAAAD,GAAAxD,KAAA2sH,sBAAA,GAAAzkH,MAAA7L,EAAAI,EAAA,EAAAC,GAAA,IAAA8G,EAAA2iE,eAAA9pE,GAAAmH,EAAA8jE,WAAA,GAAA7qE,GAAA+G,EAAA+jE,WAAA7qE,EAAA,KAAA,cAAA,OAAA8G,IAAAopH,KAAA,WAAAC,OAAA,aAAAzkD,SAAA,WAAA0kD,QAAA,WAAAC,QAAA,aAAAC,SAAA,WAAAC,SAAA,YAAAC,SAAA,YAAAC,IAAA,WAAAC,MAAA,IAAAC,UAAA,IAAAC,IAAA,WAAAb,aAAA,IAAA,OAAAlyH,KAAAi3B,MAAA,OAAAj3B,KAAAi3B,MAAA,MAAAj3B,KAAAi3B,MAAA,QAAA,GAAA,GAAA;AAAA+6F,AxD6vBA,WwD7vBA,SAAA/3H,EAAAC,EAAAO,GAAA,IAAAP,EAAA,MAAA,EAAA,IAAAS,IAAAF,EAAAA,EAAA6uH,cAAA,OAAA7jH,KAAAqgE,UAAAwjD,cAAAzuH,GAAAJ,EAAAA,EAAA4uH,SAAA,OAAA5jH,KAAAqgE,UAAAujD,SAAAhuH,GAAAZ,EAAAA,EAAA2uH,gBAAA,OAAA3jH,KAAAqgE,UAAAsjD,gBAAAlsH,GAAAzC,EAAAA,EAAA0uH,WAAA,OAAA1jH,KAAAqgE,UAAAqjD,WAAAhsH,EAAA,SAAAjD,GAAA,GAAAO,GAAA+L,EAAA,EAAAvM,EAAAwC,QAAAxC,EAAAgF,OAAAuH,EAAA,IAAAtM,CAAA,OAAAO,IAAA+L,IAAA/L,GAAAqH,EAAA,SAAA7H,EAAAC,EAAAO,GAAA,GAAAE,GAAA,GAAAT,CAAA,IAAAiD,EAAAlD,GAAA,KAAAU,EAAA8B,OAAAhC,GAAAE,EAAA,IAAAA,CAAA,OAAAA,IAAAuH,EAAA,SAAAjI,EAAAC,EAAAO,EAAAE,GAAA,MAAAwC,GAAAlD,GAAAU,EAAAT,GAAAO,EAAAP,IAAAiI,EAAA,GAAAC,GAAA,CAAA,IAAAlI,EAAA,IAAA,GAAAsM,GAAA,EAAAA,EAAAvM,EAAAwC,OAAA+J,IAAA,GAAApE,EAAA,KAAAnI,EAAAgF,OAAAuH,IAAArJ,EAAA,KAAAgF,GAAAlI,EAAAgF,OAAAuH,GAAApE,GAAA,MAAA,QAAAnI,EAAAgF,OAAAuH,IAAA,IAAA,IAAArE,GAAAL,EAAA,IAAA5H,EAAA8yE,UAAA,EAAA,MAAA,KAAA,IAAA7qE,GAAAD,EAAA,IAAAhI,EAAAm8E,SAAA17E,EAAAE,EAAA,MAAA,KAAA,IAAAsH,GAAAL,EAAA,IAAA9B,KAAA6vE,OAAA,GAAAliE,MAAAzT,EAAA0xE,cAAA1xE,EAAA6yE,WAAA7yE,EAAA8yE,WAAAp/D,UAAA,GAAAD,MAAAzT,EAAA0xE,cAAA,EAAA,GAAAh+D,WAAA,OAAA;AAAA,AxD8vBA,KwD9vBA,KAAA,IAAAzL,GAAAL,EAAA,IAAA5H,EAAA6yE,WAAA,EAAA,EAAA,MAAA,KAAA,IAAA5qE,GAAAD,EAAA,IAAAhI,EAAA6yE,WAAA1xE,EAAA6B,EAAA,MAAA,KAAA,IAAAiF,GAAAhF,EAAA,KAAAjD,EAAA0xE,eAAA1xE,EAAA84H,UAAA,IAAA,GAAA,IAAA,IAAA94H,EAAA84H,UAAA,GAAA,MAAA,KAAA,IAAA7wH,GAAAjI,EAAA0T,SAAA,MAAA,KAAA,IAAAzL,GAAA,IAAAjI,EAAA0T,UAAAnI,KAAAysH,YAAA,MAAA,KAAA,IAAA/0H,EAAA,KAAAgF,GAAA,IAAAC,GAAA,CAAA,MAAA,SAAAD,GAAAlI,EAAAgF,OAAAuH,GAAA,MAAArE,IAAAkuH,eAAA,SAAAp2H,GAAA,IAAA,GAAAC,GAAA,GAAAO,GAAA,EAAAE,EAAA,SAAAT,GAAA,GAAAO,GAAAI,EAAA,EAAAZ,EAAAwC,QAAAxC,EAAAgF,OAAApE,EAAA,IAAAX,CAAA,OAAAO,IAAAI,IAAAJ,GAAAI,EAAA,EAAAA,EAAAZ,EAAAwC,OAAA5B,IAAA,GAAAJ,EAAA,KAAAR,EAAAgF,OAAApE,IAAAF,EAAA,KAAAT,GAAAD,EAAAgF,OAAApE,GAAAJ,GAAA,MAAA,QAAAR,EAAAgF,OAAApE,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAAX,GAAA,YAAA,MAAA,KAAA,IAAA,IAAA,IAAA,MAAA,KAAA,KAAA,IAAAS,EAAA,KAAAT,GAAA,IAAAO,GAAA,CAAA,MAAA,SAAAP,GAAAD,EAAAgF,OAAApE,GAAA,MAAAX;AxD+vBA,EwD/vBA+zH,KAAA,SAAAh0H,EAAAC,GAAA,MAAAD,GAAA8yH,SAAA7yH,KAAAs1B,UAAAv1B,EAAA8yH,SAAA7yH,GAAAuL,KAAAqgE,UAAA5rE,IAAA61H,kBAAA,SAAA91H,EAAAC,GAAA,GAAAD,EAAAqlB,MAAAtL,OAAA/Z,EAAAs2H,QAAA,CAAA,GAAA11H,GAAAQ,EAAAZ,EAAAgL,KAAAwoH,KAAAh0H,EAAA,cAAAU,EAAAV,EAAAs2H,QAAAt2H,EAAAqlB,MAAArlB,EAAAqlB,MAAAtL,MAAA,IAAAnZ,GAAAQ,EAAAoK,KAAAmpH,gBAAA30H,EAAA,IAAAiD,GAAAuI,KAAAgrH,iBAAAx2H,EAAA,KAAAY,EAAA4K,KAAA+qH,UAAA/1H,EAAAE,EAAAuC,IAAA7B,EAAA,MAAA8B,GAAAsI,KAAAirC,IAAAvzC,GAAAxC,EAAAT,EAAA,GAAAS,EAAAV,EAAAszH,YAAA1yH,EAAAmyE,UAAA/yE,EAAAyzH,UAAAzzH,EAAAuzH,cAAA3yH,EAAAkyE,WAAA9yE,EAAA0zH,SAAA1zH,EAAAwzH,aAAA5yH,EAAA+wE,cAAA3xE,EAAAy3H,WAAA/2H,EAAAE,EAAAmyE,UAAA,EAAA/yE,EAAA03H,aAAAh3H,EAAAE,EAAAkyE,WAAA,EAAA9yE,EAAA23H,YAAAj3H,EAAAE,EAAA+wE,cAAA,EAAAnmE,KAAAgsH,gBAAAx3H,KAAA20H,gBAAA,SAAA30H,GAAA,MAAAwL,MAAAwtH,gBAAAh5H,EAAAwL,KAAAytH,eAAAj5H,EAAAwL,KAAAwoH,KAAAh0H,EAAA,eAAA,GAAA0T;AxDgwBA,EwDhwBAulH,eAAA,SAAAj5H,EAAAC,EAAAO,GAAA,GAAAE,GAAA,SAAAV,GAAA,GAAAC,GAAA,GAAAyT,KAAA,OAAAzT,GAAAu0H,QAAAv0H,EAAA8yE,UAAA/yE,GAAAC,GAAAW,EAAA,SAAAX,GAAA,IAAA,MAAAqO,GAAA6jH,WAAAoE,UAAAjoH,EAAA6jH,WAAA6B,KAAAh0H,EAAA,cAAAC,EAAAqO,EAAA6jH,WAAAqE,iBAAAx2H,IAAA,MAAAQ,IAAA,IAAA,GAAAE,IAAAT,EAAAc,cAAAyhB,MAAA,MAAAlU,EAAA6jH,WAAA4D,SAAA/1H,GAAA,OAAA,GAAA0T,MAAA9S,EAAAF,EAAAixE,cAAAvwE,EAAAV,EAAAoyE,WAAA7vE,EAAAvC,EAAAqyE,UAAA7vE,EAAA,sCAAA2E,EAAA3E,EAAA4C,KAAA7F,GAAA4H,GAAA,CAAA,OAAAA,EAAA,IAAA,KAAA,IAAA,IAAA,IAAA,IAAA5E,GAAAwY,SAAA5T,EAAA,GAAA,GAAA,MAAA,KAAA,IAAA,IAAA,IAAA5E,GAAA,EAAAwY,SAAA5T,EAAA,GAAA,GAAA,MAAA,KAAA,IAAA,IAAA,IAAAzG,GAAAqa,SAAA5T,EAAA,GAAA,IAAA5E,EAAA8C,KAAA+3B,IAAA76B,EAAAqL,EAAA6jH,WAAA+F,gBAAAt3H,EAAAQ,GAAA,MAAA,KAAA,IAAA,IAAA,IAAAR,GAAA6a,SAAA5T,EAAA,GAAA,IAAA5E,EAAA8C,KAAA+3B,IAAA76B,EAAAqL,EAAA6jH,WAAA+F,gBAAAt3H,EAAAQ;AxDiwBA,CwDjwBAyG,EAAA3E,EAAA4C,KAAA7F,GAAA,MAAA,IAAAyT,MAAA9S,EAAAQ,EAAA6B,IAAA7B,EAAA,MAAAnB,GAAA,KAAAA,EAAAO,EAAA,gBAAAP,GAAAW,EAAAX,GAAA,gBAAAA,GAAAiS,MAAAjS,GAAAO,EAAAE,EAAAT,GAAA,GAAAyT,MAAAzT,EAAA0T,UAAA,OAAAvS,GAAAA,GAAA,gBAAAA,EAAAsN,WAAAlO,EAAAY,EAAAA,IAAAA,EAAA83H,SAAA,GAAA93H,EAAA+3H,WAAA,GAAA/3H,EAAAg4H,WAAA,GAAAh4H,EAAAi4H,gBAAA,IAAA7tH,KAAA2sH,sBAAA/2H,IAAA+2H,sBAAA,SAAAn4H,GAAA,MAAAA,IAAAA,EAAAk5H,SAAAl5H,EAAAs5H,WAAA,GAAAt5H,EAAAs5H,WAAA,EAAA,GAAAt5H,GAAA,MAAA00H,SAAA,SAAA10H,EAAAC,EAAAO,GAAA,GAAAE,IAAAT,EAAAW,EAAAZ,EAAAuzH,cAAAnyH,EAAApB,EAAAwzH,aAAAvwH,EAAAuI,KAAAwtH,gBAAAh5H,EAAAwL,KAAAytH,eAAAj5H,EAAAC,EAAA,GAAAyT,OAAA1T,GAAAszH,YAAAtzH,EAAAy3H,WAAAx0H,EAAA8vE,UAAA/yE,EAAAyzH,UAAAzzH,EAAAuzH,cAAAvzH,EAAA03H,aAAAz0H,EAAA6vE,WAAA9yE,EAAA0zH,SAAA1zH,EAAAwzH,aAAAxzH,EAAA23H,YAAA10H,EAAA0uE,eAAA/wE,GAAAZ,EAAAuzH,eAAAnyH,GAAApB,EAAAwzH,gBAAAhzH,GAAAgL,KAAAosH,cAAA53H;AAAAwL,AxDkwBA,KwDlwBAgsH,gBAAAx3H,GAAAA,EAAAqlB,OAAArlB,EAAAqlB,MAAAtL,IAAArZ,EAAA,GAAA8K,KAAAipH,YAAAz0H,KAAA+1H,SAAA,SAAA/1H,GAAA,GAAAC,IAAAD,EAAA23H,aAAA33H,EAAAqlB,OAAA,IAAArlB,EAAAqlB,MAAAtL,MAAA,KAAAvO,KAAA2sH,sBAAA,GAAAzkH,MAAA1T,EAAA23H,YAAA33H,EAAA03H,aAAA13H,EAAAy3H,YAAA,OAAAx3H,IAAA82H,gBAAA,SAAA/2H,GAAA,GAAAC,GAAAuL,KAAAwoH,KAAAh0H,EAAA,cAAAQ,EAAA,IAAAR,EAAAwQ,GAAA3P,QAAA,QAAA,KAAAb,GAAAiyH,MAAAxhH,KAAA,kBAAAe,IAAA,WAAA,GAAAxR,IAAA8mB,KAAA,WAAA9U,OAAA,aAAAwgH,QAAAL,WAAA8D,YAAAz1H,GAAAP,EAAA,MAAA4mB,KAAA,WAAA7U,OAAA,aAAAwgH,QAAAL,WAAA8D,YAAAz1H,GAAAP,EAAA,MAAAsN,KAAA,WAAAyE,OAAA,aAAAwgH,QAAAL,WAAAmC,mBAAAiF,MAAA,WAAAvnH,OAAA,aAAAwgH,QAAAL,WAAAgE,WAAA31H;AxDmwBA,EwDnwBAg5H,UAAA,WAAA,MAAAxnH,QAAA,aAAAwgH,QAAAL,WAAA6D,WAAAx1H,GAAAgL,KAAAxK,aAAA,eAAAwK,KAAAxK,aAAA,aAAAwK,OAAA,GAAAiuH,YAAA,WAAA,MAAAznH,QAAA,aAAAwgH,QAAAL,WAAA0F,iBAAAr3H,EAAAgL,KAAA,MAAA,GAAAkuH,WAAA,WAAA,MAAA1nH,QAAA,aAAAwgH,QAAAL,WAAA0F,iBAAAr3H,EAAAgL,KAAA,MAAA,GAAA8C,GAAA9C,MAAAgW,KAAAhW,KAAAxK,aAAA,cAAAhB,EAAAwL,KAAAxK,aAAA,qBAAA81H,cAAA,SAAA92H,GAAA,GAAAC,GAAA,GAAAyT,KAAAzT,GAAAuL,KAAA2sH,sBAAA,GAAAzkH,MAAAzT,EAAA0xE,cAAA1xE,EAAA6yE,WAAA7yE,EAAA8yE,WAAA,IAAAvyE,GAAAgL,KAAAwoH,KAAAh0H,EAAA,SAAAU,EAAA8K,KAAAwoH,KAAAh0H,EAAA,mBAAAY,EAAA4K,KAAAwoH,KAAAh0H,EAAA,oBAAAoB,EAAAoK,KAAAwoH,KAAAh0H,EAAA,0BAAAiD,EAAAuI,KAAAwrH,mBAAAh3H,GAAAkD,EAAAsI,KAAAwoH,KAAAh0H,EAAA,oBAAA6H,EAAA2D,KAAAwoH,KAAAh0H,EAAA,cAAAiI,EAAA,GAAAhF,EAAA,IAAA,GAAAA,EAAA,GAAAiF,EAAAsD,KAAA2sH,sBAAAn4H,EAAAy3H,WAAA,GAAA/jH,MAAA1T,EAAA23H,YAAA33H,EAAA03H,aAAA13H,EAAAy3H,YAAA,GAAA/jH,MAAA,KAAA,EAAA,IAAAvL,EAAAqD,KAAAkqH,eAAA11H,EAAA,OAAAuM,EAAAf,KAAAkqH,eAAA11H,EAAA,OAAAwM,EAAAxM,EAAAyzH,UAAAvwH,EAAAuJ,EAAAzM,EAAA0zH;AAAA,AxDowBA,GwDpwBA,EAAAlnH,IAAAA,GAAA,GAAAC,KAAAF,EAAA,CAAA,GAAAnM,GAAAoL,KAAA2sH,sBAAA,GAAAzkH,MAAAnH,EAAAolE,cAAAplE,EAAAumE,WAAA7vE,EAAA,GAAAA,EAAA,GAAA,EAAAsJ,EAAAwmE,WAAA,KAAA3yE,EAAA+H,GAAAA,EAAA/H,EAAA+H,EAAA/H,EAAAoL,KAAA2sH,sBAAA,GAAAzkH,MAAAjH,EAAAD,EAAA,IAAApM,GAAAoM,IAAA,EAAAA,IAAAA,EAAA,GAAAC,KAAAzM,EAAAyzH,UAAAjnH,EAAAxM,EAAA0zH,SAAAjnH,CAAA,IAAAC,GAAAlB,KAAAwoH,KAAAh0H,EAAA,WAAA0M,GAAAtL,EAAAoK,KAAAusH,WAAArrH,EAAAlB,KAAA2sH,sBAAA,GAAAzkH,MAAAjH,EAAAD,EAAA3E,EAAA,IAAA2D,KAAAgrH,iBAAAx2H,IAAA0M,CAAA,IAAAqC,GAAAvD,KAAAmuH,gBAAA35H,EAAA,GAAAyM,EAAAD,GAAA,6FAAAE,EAAA,mDAAAlM,EAAA,IAAA,KAAA,KAAAkM,EAAA,cAAA9L,EAAA,GAAA,wEAAA8L,EAAA,mDAAAlM,EAAA,IAAA,KAAA,KAAAkM,EAAA,cAAAnM,EAAAiL,KAAAwoH,KAAAh0H,EAAA;AAAAO,AxDqwBA,EwDrwBAa,EAAAoK,KAAAusH,WAAAx3H,EAAAiL,KAAA2sH,sBAAA,GAAAzkH,MAAAjH,EAAAD,EAAA3E,EAAA,IAAA2D,KAAAgrH,iBAAAx2H,IAAAO,CAAA,IAAAyO,GAAAxD,KAAAmuH,gBAAA35H,EAAA,EAAAyM,EAAAD,GAAA,6FAAAjM,EAAA,mDAAAC,EAAA,IAAA,KAAA,KAAAD,EAAA,cAAAK,EAAA,GAAA,wEAAAL,EAAA,mDAAAC,EAAA,IAAA,KAAA,KAAAD,EAAA,cAAA0O,EAAAzD,KAAAwoH,KAAAh0H,EAAA,eAAAkP,EAAA1D,KAAAwoH,KAAAh0H,EAAA,gBAAAA,EAAAy3H,WAAAvvH,EAAAjI,CAAAgP,GAAA7N,EAAAoK,KAAAusH,WAAA9oH,EAAAC,EAAA1D,KAAAgrH,iBAAAx2H,IAAAiP,CAAA,IAAAE,GAAAnP,EAAAw3D,OAAA,GAAA,+IAAAhsD,KAAAwoH,KAAAh0H,EAAA,aAAA,YAAAoP,EAAA1O,EAAA,4DAAAF,EAAA2O,EAAA,KAAA3D,KAAAouH,WAAA55H,EAAAkP,GAAA,oJAAAD,EAAA,YAAA,KAAAzO,EAAA,GAAA2O,GAAA,SAAA,GAAAE,EAAAoM,SAAAjQ,KAAAwoH,KAAAh0H,EAAA,YAAA;AAAAqP,AxDswBA,EwDtwBA6C,MAAA7C,GAAA,EAAAA,CAAA,KAAA,GAAAC,GAAA9D,KAAAwoH,KAAAh0H,EAAA,YAAAuP,EAAA/D,KAAAwoH,KAAAh0H,EAAA,YAAAyP,GAAAjE,KAAAwoH,KAAAh0H,EAAA,iBAAAwL,KAAAwoH,KAAAh0H,EAAA,gBAAA0P,EAAAlE,KAAAwoH,KAAAh0H,EAAA,cAAAgQ,EAAAxE,KAAAwoH,KAAAh0H,EAAA,mBAAAG,EAAAqL,KAAAwoH,KAAAh0H,EAAA,iBAAAE,EAAAsL,KAAAwoH,KAAAh0H,EAAA,mBAAAiB,EAAAuK,KAAAwoH,KAAAh0H,EAAA,qBAAAS,GAAA+K,KAAAwoH,KAAAh0H,EAAA,kBAAAwL,KAAAulH,YAAAvlH,KAAAmpH,gBAAA30H,IAAAsB,EAAA,GAAAuX,EAAA,EAAAA,EAAA5V,EAAA,GAAA4V,IAAA,CAAA,GAAAC,GAAA,EAAAtN,MAAAknH,QAAA,CAAA,KAAA,GAAA35G,GAAA,EAAAA,EAAA9V,EAAA,GAAA8V,IAAA,CAAA,GAAAC,GAAAxN,KAAA2sH,sBAAA,GAAAzkH,MAAAjH,EAAAD,EAAAxM,EAAAszH,cAAAr6G,EAAA,iBAAAC,EAAA,EAAA,IAAAjR,EAAA,CAAA,GAAAiR,GAAA,kCAAAjW,EAAA,GAAA,EAAA,OAAA8V,GAAA,IAAA,GAAAG,GAAA,6BAAAD,EAAA,eAAAzY,EAAA,QAAA,OAAA;AAAA,AxDuwBA,IwDvwBAyC,GAAA,GAAA,EAAAiW,GAAA,4BAAAD,EAAA,eAAAzY,EAAA,OAAA,QAAA,MAAA,SAAA0Y,GAAA,8BAAAD,EAAA,GAAAC,GAAA,KAAAA,GAAA,uEAAAD,EAAA,MAAA,WAAA/X,KAAA+X,IAAA,GAAAJ,EAAArY,EAAAwO,EAAAD,EAAA,KAAA,YAAA7N,KAAA+X,IAAA,GAAAJ,EAAArY,EAAAuO,EAAAC,EAAA,IAAAxD,KAAAquH,yBAAA75H,EAAAwM,EAAAC,EAAAtE,EAAAoE,EAAAsM,EAAA,GAAAE,EAAA,EAAArJ,EAAAM,GAAA,yDAAA,KAAA,GAAAmJ,GAAA7J,EAAA,sCAAA9D,KAAAwoH,KAAAh0H,EAAA,cAAA,QAAA,GAAAoZ,EAAA,EAAA,EAAAA,EAAAA,IAAA,CAAA,GAAAC,IAAAD,EAAA/J,GAAA,CAAA8J,IAAA,QAAAC,EAAA/J,EAAA,GAAA,GAAA,EAAA,kCAAA,IAAA,iBAAAE,EAAA8J,GAAA,KAAA5J,EAAA4J,GAAA,eAAAH,GAAAC,EAAA,sBAAA,IAAAG,GAAA9N,KAAA0sH,gBAAAzrH,EAAAD;AAAAC,AxDwwBA,GwDxwBAzM,EAAAwzH,cAAAhnH,GAAAxM,EAAAuzH,gBAAAvzH,EAAAszH,YAAAvtH,KAAA+3B,IAAA99B,EAAAszH,YAAAh6G,GAAA,IAAA0C,IAAAxQ,KAAAsuH,oBAAArtH,EAAAD,GAAA6C,EAAA,GAAA,EAAA4M,EAAAlW,KAAAg3B,MAAA/gB,EAAA1C,GAAA,GAAA4C,EAAAjU,GAAAuD,KAAAknH,QAAAz2G,EAAAzQ,KAAAknH,QAAAz2G,CAAAzQ,MAAAknH,QAAAx2G,CAAA,KAAA,GAAAC,GAAA3Q,KAAA2sH,sBAAA,GAAAzkH,MAAAjH,EAAAD,EAAA,EAAAwP,IAAAI,EAAA,EAAAF,EAAAE,EAAAA,IAAA,CAAAlD,GAAA,MAAA,KAAA,GAAAmD,GAAA/M,EAAA,sCAAA9D,KAAAwoH,KAAAh0H,EAAA,iBAAAmc,GAAA,QAAA,GAAA/C,EAAA,EAAA,EAAAA,EAAAA,IAAA,CAAA,GAAA5X,IAAArB,EAAAA,EAAAkR,MAAArR,EAAAqlB,MAAArlB,EAAAqlB,MAAA,GAAA,MAAAlJ,MAAA,EAAA,IAAA1a,GAAA0a,EAAA22D,YAAAtmE,EAAAqY,GAAApjB,KAAAR,IAAAO,GAAA,IAAA2G,GAAAA,EAAAgU,GAAA5P,GAAA4P,EAAA5P,CAAA8P,IAAA,gBAAAjD,EAAA/J,EAAA,GAAA,GAAA,EAAA,0BAAA,KAAA5N,GAAA,6BAAA,KAAA0a,EAAAxI,WAAAqF,EAAArF,WAAAnH,GAAAxM,EAAAuzH,eAAAvzH,EAAAunH,WAAA9mH,EAAAkT,WAAAwI,EAAAxI,WAAAlT,EAAAkT,WAAAqF,EAAArF,UAAA,IAAAnI,KAAAqjH,cAAA,KAAAhqG,GAAA,IAAArZ,KAAAmjH,mBAAA,qBAAA,KAAAltH,KAAAvB,EAAA,GAAA,IAAAsB,GAAA,IAAA2a,EAAAxI,WAAAzL,EAAAyL,UAAA,IAAAnI,KAAAojH,cAAA,KAAAzyG,EAAAxI,WAAA1T,EAAA0T,UAAA,uBAAA,KAAA,KAAAlS,KAAAvB,IAAAsB,GAAA,GAAA,GAAA,WAAAA,GAAA,GAAA,MAAAqjB,GAAA,GAAA,4DAAA1I,EAAA22D,WAAA,gBAAA32D,EAAAw1D,cAAA,KAAA,KAAAlwE,KAAAvB,EAAA,SAAA2kB,GAAA,kCAAA1I,EAAA42D,UAAA,UAAA,8BAAA52D,EAAAxI,WAAA1T,EAAA0T,UAAA,sBAAA,KAAAwI,EAAAxI,WAAAzL,EAAAyL,UAAA,mBAAA,KAAAlS,GAAA,yBAAA,IAAA,cAAA0a,EAAA42D,UAAA,QAAA;AAAA52D,AxDywBA,EwDzwBAq4G,QAAAr4G,EAAA42D,UAAA,GAAA52D,EAAA3Q,KAAA2sH,sBAAAh8G,GAAAjD,GAAAmD,EAAA,QAAA7P,IAAAA,EAAA,KAAAA,EAAA,EAAAC,KAAAyM,GAAA,oBAAAjR,EAAA,UAAAhF,EAAA,GAAA,GAAA8V,GAAA9V,EAAA,GAAA,EAAA,8CAAA,IAAA,IAAA6V,GAAAI,EAAA5X,GAAAwX,EAAA,MAAAxX,IAAA8N,GAAAd,EAAAqc,QAAAurF,MAAAz6F,SAAAnN,EAAAqc,QAAAC,QAAA,IAAA,IAAA5qB,EAAAw3D,OAAA,wFAAA,IAAAx3D,EAAAunH,WAAA,EAAAjmH,GAAAu4H,yBAAA,SAAA75H,EAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,GAAA,GAAA2E,GAAA2D,KAAAwoH,KAAAh0H,EAAA,eAAAiI,EAAAuD,KAAAwoH,KAAAh0H,EAAA,cAAAkI,EAAAsD,KAAAwoH,KAAAh0H,EAAA,sBAAAmI,EAAA,oCAAAoE,EAAA,EAAA,IAAAnL,IAAAyG,EAAA0E,GAAA,qCAAAtJ,EAAAhD,GAAA,cAAA,CAAA,GAAAuM,GAAA9L,GAAAA,EAAAixE,eAAAnxE,EAAAiM,EAAA7L,GAAAA,EAAA+wE,eAAAnxE;AAAA+L,AxD0wBA,GwD1wBA,qFAAA,KAAA,GAAAnM,GAAA,EAAA,GAAAA,EAAAA,MAAAoM,GAAApM,GAAAM,EAAAoyE,eAAArmE,GAAArM,GAAAQ,EAAAkyE,cAAAvmE,GAAA,kBAAAnM,EAAA,KAAAA,GAAAH,EAAA,uBAAA,IAAA,IAAAiD,EAAA9C,GAAA,YAAAmM,IAAA,YAAA,GAAArE,IAAAC,GAAAoE,IAAAnL,GAAAyG,GAAAI,EAAA,GAAA,YAAAjI,EAAAi3H,UAAA,GAAAj3H,EAAAi3H,UAAA,GAAA71H,IAAA6G,EAAAE,GAAA,oCAAA3H,EAAA,cAAA,CAAA,GAAAkM,GAAAlB,KAAAwoH,KAAAh0H,EAAA,aAAAM,MAAA,KAAAyO,GAAA,GAAA2E,OAAAi+D,cAAApxE,EAAA,SAAAP,GAAA,GAAAC,GAAAD,EAAAwiB,MAAA,WAAAhiB,EAAAib,SAAAzb,EAAAsY,UAAA,GAAA,IAAAtY,EAAAwiB,MAAA,UAAAzT,EAAA0M,SAAAzb,EAAA,IAAAyb,SAAAzb,EAAA,GAAA,OAAAkS,OAAAjS,GAAA8O,EAAA9O,GAAA+O,EAAAzO,EAAAmM,EAAA,IAAAuC,EAAAlJ,KAAAC,IAAAgJ,EAAAzO,EAAAmM,EAAA,IAAA,IAAA,KAAAsC,EAAAtO,EAAAqF,KAAAC,IAAAgJ,EAAAtO,EAAAixE,eAAA3iE,EAAAC,EAAArO,EAAAmF,KAAA+3B,IAAA7uB,EAAArO,EAAA+wE,eAAA1iE;AAAAjP,AxD2wBA,EwD3wBAi3H,WAAA,oFAAAhoH,GAAAD,EAAAA,IAAAhP,EAAAi3H,WAAA,kBAAAjoH,EAAA,KAAAA,GAAAxO,EAAA,uBAAA,IAAA,IAAAwO,EAAA,WAAAhP,GAAAi3H,WAAA,YAAA9uH,GAAAnI,EAAAi3H,UAAAj3H,EAAAi3H,UAAA,KAAA,MAAA9uH,IAAAqD,KAAAwoH,KAAAh0H,EAAA,cAAAkI,IAAAC,KAAA/G,GAAAyG,GAAAI,EAAA,GAAA,UAAAsE,GAAApE,GAAA,UAAAqvH,gBAAA,SAAAx3H,EAAAC,EAAAO,GAAA,GAAAE,GAAAV,EAAA0zH,UAAA,KAAAlzH,EAAAP,EAAA,GAAAW,EAAAZ,EAAAyzH,WAAA,KAAAjzH,EAAAP,EAAA,GAAAmB,EAAA2E,KAAA+3B,IAAA99B,EAAAszH,YAAA9nH,KAAA0sH,gBAAAx3H,EAAAE,KAAA,KAAAJ,EAAAP,EAAA,GAAAgD,EAAAuI,KAAAwtH,gBAAAh5H,EAAAwL,KAAA2sH,sBAAA,GAAAzkH,MAAAhT,EAAAE,EAAAQ,IAAApB,GAAAszH,YAAArwH,EAAA8vE,UAAA/yE,EAAAyzH,UAAAzzH,EAAAuzH,cAAAtwH,EAAA6vE,WAAA9yE,EAAA0zH,SAAA1zH,EAAAwzH,aAAAvwH,EAAA0uE,eAAA,KAAAnxE,GAAA,KAAAA,IAAAgL,KAAAosH,cAAA53H;AxD4wBA,EwD5wBAg5H,gBAAA,SAAAh5H,EAAAC,GAAA,GAAAO,GAAAgL,KAAAkqH,eAAA11H,EAAA,OAAAU,EAAA8K,KAAAkqH,eAAA11H,EAAA,OAAAY,EAAAJ,GAAAA,EAAAP,EAAAO,EAAAP,CAAA,OAAAW,GAAAF,GAAAE,EAAAF,EAAAA,EAAAE,GAAAg3H,cAAA,SAAA53H,GAAA,GAAAC,GAAAuL,KAAAwoH,KAAAh0H,EAAA,oBAAAC,IAAAA,EAAAoR,MAAArR,EAAAqlB,MAAArlB,EAAAqlB,MAAA,GAAA,MAAArlB,EAAAwzH,aAAAxzH,EAAAuzH,cAAA,EAAAvzH,KAAAg3H,mBAAA,SAAAh3H,GAAA,GAAAC,GAAAuL,KAAAwoH,KAAAh0H,EAAA,iBAAA,OAAA,OAAAC,GAAA,EAAA,GAAA,gBAAAA,IAAA,EAAAA,GAAAA,GAAAy1H,eAAA,SAAA11H,EAAAC,GAAA,MAAAuL,MAAAytH,eAAAj5H,EAAAwL,KAAAwoH,KAAAh0H,EAAAC,EAAA,QAAA,OAAAi4H,gBAAA,SAAAl4H,EAAAC,GAAA,MAAA,IAAAuL,KAAA2sH,sBAAA,GAAAzkH,MAAA1T,EAAAC,EAAA,KAAA8yE,WAAA+mD,oBAAA,SAAA95H,EAAAC,GAAA,MAAA,IAAAyT,MAAA1T,EAAAC,EAAA,GAAAm8E,UAAAu9C,gBAAA,SAAA35H,EAAAC,EAAAO,EAAAE;AAAA,AxD6wBA,GwD7wBAE,GAAA4K,KAAAwrH,mBAAAh3H,GAAAoB,EAAAoK,KAAA2sH,sBAAA,GAAAzkH,MAAAlT,EAAAE,GAAA,EAAAT,EAAAA,EAAAW,EAAA,GAAAA,EAAA,IAAA,GAAA,OAAA,GAAAX,GAAAmB,EAAAozH,QAAAhpH,KAAA0sH,gBAAA92H,EAAAuwE,cAAAvwE,EAAA0xE,aAAAtnE,KAAAouH,WAAA55H,EAAAoB,IAAAw4H,WAAA,SAAA55H,EAAAC,GAAA,GAAAO,GAAAgL,KAAAkqH,eAAA11H,EAAA,OAAAU,EAAA8K,KAAAkqH,eAAA11H,EAAA,MAAA,SAAAQ,GAAAP,EAAA0T,WAAAnT,EAAAmT,cAAAjT,GAAAT,EAAA0T,WAAAjT,EAAAiT,YAAA6iH,iBAAA,SAAAx2H,GAAA,GAAAC,GAAAuL,KAAAwoH,KAAAh0H,EAAA,kBAAA,OAAAC,GAAA,gBAAAA,GAAAA,GAAA,GAAAyT,OAAAi+D,cAAA,IAAAl2D,SAAAxb,EAAA,KAAA+wH,gBAAA/wH,EAAAovH,cAAA7jH,KAAAwoH,KAAAh0H,EAAA,iBAAAovH,SAAA5jH,KAAAwoH,KAAAh0H,EAAA,YAAAmvH,gBAAA3jH,KAAAwoH,KAAAh0H,EAAA,mBAAAkvH,WAAA1jH,KAAAwoH,KAAAh0H,EAAA;AxD8wBA,GwD9wBAy0H,YAAA,SAAAz0H,EAAAC,EAAAO,EAAAE,GAAAT,IAAAD,EAAAy3H,WAAAz3H,EAAAszH,YAAAtzH,EAAA03H,aAAA13H,EAAAuzH,cAAAvzH,EAAA23H,YAAA33H,EAAAwzH,aAAA,IAAA5yH,GAAAX,EAAA,gBAAAA,GAAAA,EAAAuL,KAAA2sH,sBAAA,GAAAzkH,MAAAhT,EAAAF,EAAAP,IAAAuL,KAAA2sH,sBAAA,GAAAzkH,MAAA1T,EAAA23H,YAAA33H,EAAA03H,aAAA13H,EAAAy3H,YAAA,OAAAjsH,MAAAusH,WAAAvsH,KAAAwoH,KAAAh0H,EAAA,cAAAY,EAAA4K,KAAAgrH,iBAAAx2H,OAAAsO,EAAAO,GAAAsjH,WAAA,SAAAnyH,GAAA,IAAAwL,KAAAhJ,OAAA,MAAAgJ,KAAA8C,GAAA6jH,WAAA4H,cAAAzrH,EAAAjH,UAAA0gH,UAAAz5G,EAAA6jH,WAAAoF,qBAAA9mH,KAAA,QAAA2Y,OAAA9a,EAAA6jH,WAAAF,OAAA3jH,EAAA6jH,WAAA4H,aAAA,EAAA,IAAA95H,GAAAsO,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EAAA,OAAA,gBAAAtR,IAAA,cAAAA,GAAA,WAAAA,GAAA,UAAAA,EAAA,UAAAA,GAAA,GAAAsR,UAAA9O,QAAA,gBAAA8O,WAAA,GAAAhD,EAAA6jH,WAAA,IAAAnyH,EAAA,cAAAqR,MAAA/C,EAAA6jH,YAAA3mH,KAAA,IAAAxB,OAAA/J,IAAAuL,KAAAnL,KAAA;AAAA,AxD+wBA,gBwD/wBAL,GAAAsO,EAAA6jH,WAAA,IAAAnyH,EAAA,cAAAqR,MAAA/C,EAAA6jH,YAAA3mH,MAAAxB,OAAA/J,IAAAqO,EAAA6jH,WAAAU,kBAAArnH,KAAAxL,KAAAsO,EAAA6jH,WAAA,IAAAnyH,EAAA,cAAAqR,MAAA/C,EAAA6jH,YAAA3mH,KAAA,IAAAxB,OAAA/J,KAAAqO,EAAA6jH,WAAA,GAAAnE,YAAA1/G,EAAA6jH,WAAA4H,aAAA,EAAAzrH,EAAA6jH,WAAAx6G,MAAA,GAAAjE,OAAAC,UAAArF,EAAA6jH,WAAAvnG,QAAA,SAAA5Y,OAAA,aAAAwgH,QAAAlkH,GAAAD,QAKAA,OAAAwoH,SAAA,SAAA72H,EAAAC,GAAA,QAAAO,GAAAP,GAAA,GAAAO,EAAA,OAAAP,IAAAA,EAAAgQ,aAAA1B,OAAA,GAAAtO,EAAAuC,OAAAvC,GAAAO,EAAA,kEAAAsF,KAAA7F,KAAAwb,SAAAjb,EAAA,GAAA,IAAAib,SAAAjb,EAAA,GAAA,IAAAib,SAAAjb,EAAA,GAAA,MAAAA,EAAA,mGAAAsF,KAAA7F,KAAA,KAAAkG,WAAA3F,EAAA,IAAA,KAAA2F,WAAA3F,EAAA,IAAA,KAAA2F,WAAA3F,EAAA,MAAAA,EAAA,oDAAAsF,KAAA7F,KAAAwb,SAAAjb,EAAA,GAAA,IAAAib,SAAAjb,EAAA,GAAA,IAAAib,SAAAjb,EAAA,GAAA,MAAAA,EAAA,2CAAAsF,KAAA7F,KAAAwb,SAAAjb,EAAA,GAAAA,EAAA,GAAA,IAAAib,SAAAjb,EAAA,GAAAA,EAAA,GAAA,IAAAib,SAAAjb,EAAA,GAAAA,EAAA,GAAA,MAAAA,EAAA,qBAAAsF,KAAA7F,IAAAW,EAAAo5H,YAAAp5H,EAAAZ,EAAAgE,KAAA/D,GAAAc;AxD2wBA,CwD3wBA,QAAAL,GAAAT,EAAAS,GAAA,GAAAE,EAAA,GAAA,CAAA,GAAAA,GAAAZ,EAAA6zG,QAAA7zG,EAAAqF,KAAApF,EAAAS,GAAA,IAAAE,GAAA,eAAAA,GAAAZ,EAAA2D,SAAA1D,EAAA,QAAA,KAAAS,GAAA,wBAAAT,EAAAA,EAAA0B,WAAA,OAAAnB,GAAAI,GAAA,QAAAsC,KAAA,GAAA1C,GAAAE,EAAAV,EAAAqH,SAAA4G,YAAA5G,SAAA4G,YAAAqJ,iBAAA9L,KAAA,MAAAA,KAAAihB,aAAAxsB,IAAA,IAAAD,GAAAA,EAAAwC,QAAAxC,EAAA,IAAAA,EAAAA,EAAA,IAAA,IAAA,GAAAY,GAAAZ,EAAAwC,OAAA5B,KAAAJ,EAAAR,EAAAY,GAAA,gBAAAZ,GAAAQ,KAAAE,EAAAF,EAAAK,QAAA,UAAA,SAAAb,EAAAC,GAAA,MAAAA,GAAAgF,gBAAAhF,EAAAS,GAAAV,EAAAQ,QAAA,KAAAA,IAAAR,GAAA,gBAAAA,GAAAQ,KAAAP,EAAAO,GAAAR,EAAAQ,GAAA,OAAAP,GAAA,QAAA4H,GAAA5H,GAAA,GAAAO,GAAAE,CAAA,KAAAF,IAAAP,GAAAS,EAAAT,EAAAO,IAAA,MAAAE,GAAAV,EAAA8B,WAAApB,IAAAF,IAAAyC,IAAA,YAAA/B,KAAAV,KAAA,SAAAU,KAAAV,IAAA0R,MAAA/L,WAAAzF,YAAAT,GAAAO,EAAA,OAAAP,GAAA,QAAAgI,GAAAjI,EAAAC;AAAA,AxD4wBA,GwD5wBAS,GAAAF,GAAA6b,EAAA,EAAA,KAAA3b,IAAAT,GAAAD,EAAAU,IAAAT,EAAAS,KAAAF,EAAAE,GAAAT,EAAAS,GAAA,OAAAF,GAAA,QAAA0H,GAAAjI,EAAAO,EAAAE,EAAAE,GAAA,MAAA,gBAAAX,KAAAW,EAAAJ,EAAAE,EAAA,KAAAF,EAAAP,EAAAA,EAAAO,EAAAy5H,QAAAj6H,EAAA8B,WAAAtB,KAAAI,EAAAJ,EAAAE,EAAA,KAAAF,OAAA,gBAAAA,IAAAR,EAAA2L,GAAA+M,OAAAlY,MAAAI,EAAAF,EAAAA,EAAAF,EAAAA,MAAAR,EAAA8B,WAAApB,KAAAE,EAAAF,EAAAA,EAAA,MAAAF,EAAAA,MAAAE,EAAAA,GAAAF,EAAA+J,SAAA7J,EAAAV,EAAA2L,GAAAoG,IAAA,EAAA,gBAAArR,GAAAA,EAAAA,IAAAV,GAAA2L,GAAA+M,OAAA1Y,EAAA2L,GAAA+M,OAAAhY,GAAAV,EAAA2L,GAAA+M,OAAAyF,SAAAvd,EAAAA,GAAAJ,EAAAyL,UAAAhM,EAAAO,EAAAE,EAAAE,GAAA,QAAAuH,GAAAlI,GAAA,OAAAA,GAAA,gBAAAA,IAAAD,EAAA2L,GAAA+M,OAAAzY,IAAA,EAAA,gBAAAA,IAAAD,EAAA62H,QAAA52H,IAAA,GAAA,EAAAD,EAAA62H,WAAA72H,EAAAK,MAAA,kBAAA,oBAAA,kBAAA,mBAAA,iBAAA,cAAA,QAAA,gBAAA,SAAAJ,EAAAW,GAAAZ,EAAA2L,GAAAmnB,KAAAlyB,GAAA,SAAAZ;AAAAA,AxD6wBA,EwD7wBAk6H,YAAAl6H,EAAA0L,MAAAhL,EAAAV,EAAAqK,KAAAzJ,GAAAZ,EAAAyN,IAAAjN,EAAAR,EAAAyN,KAAAzN,EAAAk6H,WAAA,GAAAl6H,EAAAqK,KAAA7E,MAAA5E,GAAA,OAAAmF,KAAAC,IAAAD,KAAA+3B,IAAAriB,SAAAzb,EAAA6yB,KAAA7yB,EAAAyN,IAAA,GAAAzN,EAAA0L,MAAA,IAAA1L,EAAA0L,MAAA,GAAA,IAAA,KAAA,GAAA,IAAA3F,KAAAC,IAAAD,KAAA+3B,IAAAriB,SAAAzb,EAAA6yB,KAAA7yB,EAAAyN,IAAA,GAAAzN,EAAA0L,MAAA,IAAA1L,EAAA0L,MAAA,GAAA,IAAA,KAAA,GAAA,IAAA3F,KAAAC,IAAAD,KAAA+3B,IAAAriB,SAAAzb,EAAA6yB,KAAA7yB,EAAAyN,IAAA,GAAAzN,EAAA0L,MAAA,IAAA1L,EAAA0L,MAAA,GAAA,IAAA,KAAA,GAAA,MAAA,IAAA9K,IAAAu5H,MAAA,EAAA,IAAA,KAAAC,OAAA,IAAA,IAAA,KAAAC,OAAA,IAAA,IAAA,KAAAC,OAAA,EAAA,EAAA,GAAAC,MAAA,EAAA,EAAA,KAAAC,OAAA,IAAA,GAAA,IAAAC,MAAA,EAAA,IAAA,KAAAC,UAAA,EAAA,EAAA,KAAAC,UAAA,EAAA,IAAA,KAAAC,UAAA,IAAA,IAAA,KAAAC,WAAA,EAAA,IAAA,GAAAC,WAAA,IAAA,IAAA,KAAAC,aAAA,IAAA,EAAA,KAAAC,gBAAA,GAAA,IAAA,IAAAC,YAAA,IAAA,IAAA,GAAAC,YAAA,IAAA,GAAA;AAAAC,AxD8wBA,SwD9wBA,IAAA,EAAA,GAAAC,YAAA,IAAA,IAAA,KAAAC,YAAA,IAAA,EAAA,KAAAC,SAAA,IAAA,EAAA,KAAAC,MAAA,IAAA,IAAA,GAAAC,OAAA,EAAA,IAAA,GAAAC,QAAA,GAAA,EAAA,KAAAC,OAAA,IAAA,IAAA,KAAAC,WAAA,IAAA,IAAA,KAAAC,WAAA,IAAA,IAAA,KAAAC,YAAA,IAAA,IAAA,KAAAC,WAAA,IAAA,IAAA,KAAAC,WAAA,IAAA,IAAA,KAAAC,aAAA,IAAA,IAAA,KAAAC,MAAA,EAAA,IAAA,GAAAC,SAAA,IAAA,EAAA,KAAAC,QAAA,IAAA,EAAA,GAAAC,MAAA,EAAA,EAAA,KAAAC,OAAA,IAAA,IAAA,GAAAC,QAAA,IAAA,IAAA,GAAAC,MAAA,IAAA,IAAA,KAAAC,QAAA,IAAA,EAAA,KAAAC,QAAA,IAAA,EAAA,KAAAC,KAAA,IAAA,EAAA,GAAAC,QAAA,IAAA,IAAA,KAAAC,OAAA,IAAA,IAAA,KAAAC,QAAA,IAAA,IAAA,GAAA7C,aAAA,IAAA,IAAA,MAAA54H,GAAA,MAAA,SAAA,UAAA6B,GAAAiqB,OAAA,EAAA4vG,aAAA,EAAAC,YAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAC,UAAA;AAAAvmB,AxD+wBA,YwD/wBA,EAAA3pF,OAAA,EAAAC,QAAA,EAAAjtB,GAAA62H,QAAAsG,aAAA,SAAAl9H,EAAAO,EAAAE,EAAAE,GAAA,MAAAZ,GAAA8B,WAAApB,KAAAE,EAAAF,EAAAA,EAAA,MAAA8K,KAAAM,MAAA,WAAA,GAAAS,GAAAtJ,EAAAjD,EAAAwL,MAAAtD,EAAAjF,EAAAoN,KAAA,UAAA,IAAAlI,EAAAN,EAAA3E,EAAAlB,KAAAwJ,OAAAgB,EAAAvJ,EAAAoN,KAAA,UAAA,EAAArQ,GAAAK,KAAAe,EAAA,SAAApB,EAAAQ,GAAAP,EAAAO,IAAAyC,EAAAzC,EAAA,SAAAP,EAAAO,MAAA+L,EAAA1E,EAAA3E,EAAAlB,KAAAwJ,OAAAvI,EAAAoN,KAAA,QAAA7D,GAAAvJ,EAAA8vB,QAAA9qB,EAAAE,EAAAoE,IAAAT,OAAA,EAAAvB,SAAA/J,EAAA4K,OAAA1K,EAAAuL,SAAA,WAAAjM,EAAAK,KAAAe,EAAA,SAAApB,EAAAQ,GAAAP,EAAAO,IAAAyC,EAAAzC,EAAA,SAAAP,EAAAO,MAAA,gBAAAyC,GAAAoN,KAAA,UAAApN,EAAAoN,KAAA,SAAA6E,QAAA,GAAAjS,EAAAoN,KAAA,SAAA6E,QAAAhN,GAAAjF,EAAAoN,KAAA,QAAAnI,GAAAtH,GAAAA,EAAAyQ,MAAA7F,KAAA8F,WAAAtR,EAAAwY,QAAAhN,YAAAxL,EAAA6O,GAAAtL,QAAA65H,UAAAp9H,EAAA6O,GAAA8K,SAAAA,SAAA,SAAA1Z,EAAAO,EAAAE,EAAAE,GAAA,MAAAJ,GAAAR,EAAA62H,QAAAsG,aAAA9rH,MAAA7F;AAAAlI,AxDgxBA,IwDhxBArD,GAAAO,EAAAE,EAAAE,IAAA4K,KAAA4xH,UAAAn9H,IAAAo9H,aAAAr9H,EAAA6O,GAAA+K,YAAAA,YAAA,SAAA3Z,EAAAO,EAAAE,EAAAE,GAAA,MAAAJ,GAAAR,EAAA62H,QAAAsG,aAAA9rH,MAAA7F,OAAA3E,OAAA5G,GAAAO,EAAAE,EAAAE,IAAA4K,KAAA6xH,aAAAp9H,IAAAq9H,aAAAt9H,EAAA6O,GAAAgL,YAAAA,YAAA,SAAArZ,EAAAE,EAAAE,EAAAQ,EAAA6B,GAAA,MAAA,iBAAAvC,IAAAA,IAAAT,EAAAW,EAAAZ,EAAA62H,QAAAsG,aAAA9rH,MAAA7F,MAAA9K,GAAA4C,IAAA9C,IAAAqG,OAAArG,GAAAI,EAAAQ,EAAA6B,IAAAuI,KAAA8xH,aAAA98H,EAAAE,GAAAV,EAAA62H,QAAAsG,aAAA9rH,MAAA7F,OAAAsW,OAAAthB,GAAAE,EAAAE,EAAAQ,KAAAm8H,YAAA,SAAAt9H,EAAAO,EAAAE,EAAAE,EAAAQ,GAAA,MAAApB,GAAA62H,QAAAsG,aAAA9rH,MAAA7F,OAAAlI,IAAA9C,EAAAqG,OAAA5G,GAAAS,EAAAE,EAAAQ,OAAApB,EAAAuD,OAAAvD,EAAA62H,SAAAjsG,QAAA,SAAA4yG,KAAA,SAAAx9H,EAAAC,GAAA,IAAA,GAAAO,GAAA,EAAAA,EAAAP,EAAAuC,OAAAhC,IAAA,OAAAP,EAAAO,IAAAR,EAAAqB,KAAA,cAAApB,EAAAO,GAAAR,EAAA,GAAAwF,MAAAvF,EAAAO,MAAAi9H,QAAA,SAAAz9H,EAAAC;AAAA,AxDixBA,IwDjxBA,GAAAO,GAAA,EAAAA,EAAAP,EAAAuC,OAAAhC,IAAA,OAAAP,EAAAO,IAAAR,EAAAqF,IAAApF,EAAAO,GAAAR,EAAAqB,KAAA,cAAApB,EAAAO,MAAAk9H,QAAA,SAAA19H,EAAAC,GAAA,MAAA,UAAAA,IAAAA,EAAAD,EAAAue,GAAA,WAAA,OAAA,QAAAte,GAAA09H,YAAA,SAAA39H,EAAAC,GAAA,GAAAO,GAAAE,CAAA,QAAAV,EAAA,IAAA,IAAA,MAAAQ,EAAA,CAAA,MAAA,KAAA,SAAAA,EAAA,EAAA,MAAA,KAAA,SAAAA,EAAA,CAAA,MAAA,SAAAA,EAAAR,EAAA,GAAAC,EAAAgH,OAAA,OAAAjH,EAAA,IAAA,IAAA,OAAAU,EAAA,CAAA,MAAA,KAAA,SAAAA,EAAA,EAAA,MAAA,KAAA,QAAAA,EAAA,CAAA,MAAA,SAAAA,EAAAV,EAAA,GAAAC,EAAA+G,MAAA,OAAAoI,EAAA1O,EAAA2O,EAAA7O,IAAAo9H,cAAA,SAAA39H,GAAA,GAAAA,EAAAykB,SAAAnG,GAAA,uBAAA,MAAAte,GAAAykB,QAAA,IAAAlkB,IAAAwG,MAAA/G,EAAA+uG,YAAA,GAAA/nG,OAAAhH,EAAAs9C,aAAA,GAAAlxB,QAAApsB,EAAAoF,IAAA,UAAA3E,EAAAV,EAAA,eAAA2Z,SAAA,sBAAAtU,KAAAw4H,SAAA,OAAAjkB,WAAA;AAAA1sF,AxDkxBA,OwDlxBA,OAAAF,OAAA,EAAAC,QAAA,IAAArsB,EAAAyG,SAAAie,aAAA,KAAA1kB,EAAA4P,GAAA,MAAApP,GAAAR,EAAAyG,SAAAT,KAAA,MAAA3G,GAAAupB,KAAA9oB,IAAAT,EAAA,KAAAW,GAAAZ,EAAAsF,SAAArF,EAAA,GAAAW,KAAAZ,EAAAY,GAAAuf,QAAAzf,EAAAT,EAAAykB,SAAA,UAAAzkB,EAAAoF,IAAA,aAAA3E,EAAA2E,KAAAmmB,SAAA,aAAAvrB,EAAAoF,KAAAmmB,SAAA,eAAAxrB,EAAAuD,OAAA/C,GAAAgrB,SAAAvrB,EAAAoF,IAAA,YAAA8mB,OAAAlsB,EAAAoF,IAAA,aAAArF,EAAAK,MAAA,MAAA,OAAA,SAAA,SAAA,SAAAL,EAAAU,GAAAF,EAAAE,GAAAT,EAAAoF,IAAA3E,GAAAwR,MAAAuJ,SAAAjb,EAAAE,GAAA,OAAAF,EAAAE,GAAA,UAAAT,EAAAoF,KAAAmmB,SAAA,WAAAjU,IAAA,EAAAmV,KAAA,EAAAsnB,MAAA,OAAAwoE,OAAA,UAAA97G,EAAA2E,IAAA7E,GAAA8M,QAAAwwH,cAAA,SAAA79H,GAAA,GAAAO,GAAAE,EAAA2G,SAAAie,aAAA,OAAArlB,GAAAykB,SAAAnG,GAAA,wBAAA/d,EAAAP,EAAAykB,SAAAgF,YAAAzpB,IAAAA,EAAA,KAAAS,GAAAV,EAAAsF,SAAArF,EAAA,GAAAS,KAAAV,EAAAU,GAAAyf;AAAA3f,AxDmxBA,GwDnxBAP,GAAA89H,cAAA,SAAA99H,EAAAO,EAAAE,EAAAE,GAAA,MAAAA,GAAAA,MAAAZ,EAAAK,KAAAG,EAAA,SAAAR,EAAAQ,GAAA,GAAAY,GAAAnB,EAAA+9H,QAAAx9H,EAAAY,GAAA,GAAA,IAAAR,EAAAJ,GAAAY,EAAA,GAAAV,EAAAU,EAAA,MAAAR,KAAAZ,EAAA6O,GAAAtL,QAAA02H,OAAA,SAAAh6H,EAAAO,EAAAE,EAAAE,GAAA,GAAAQ,GAAA8G,EAAAmJ,MAAA7F,KAAA8F,WAAArO,GAAAqX,QAAAlZ,EAAA,GAAAmJ,SAAAnJ,EAAA,GAAAioC,SAAAjoC,EAAA,IAAA8B,EAAAD,EAAAqX,QAAA2jH,KAAAp2H,EAAA7H,EAAA62H,QAAA52H,EAAA,OAAAD,GAAA2L,GAAAoG,MAAAlK,EAAA3E,EAAAsI,KAAAtI,GAAAD,EAAAsH,SAAAtH,EAAAomC,UAAA79B,KAAAnL,KAAA,WAAA4C,EAAAomC,UAAApmC,EAAAomC,SAAArnC,KAAAwJ,QAAA3D,EAAA7F,KAAAwJ,KAAAvI,IAAAi7H,MAAAl+H,EAAA6O,GAAAvB,KAAAA,KAAA,SAAAtN,GAAA,GAAAmI,EAAAnI,GAAA,MAAAwL,MAAA0yH,MAAA7sH,MAAA7F,KAAA8F,UAAA,IAAArR,GAAAiI,EAAAmJ,MAAA7F,KAAA8F,UAAA,OAAArR,GAAA,GAAAg+H,KAAA,OAAAzyH,KAAAyuH,OAAA5oH,MAAA7F,KAAAvL,IAAAk+H,MAAAn+H,EAAA6O,GAAAtB,KAAAA,KAAA,SAAAvN,GAAA,GAAAmI,EAAAnI,GAAA,MAAAwL,MAAA2yH,MAAA9sH,MAAA7F,KAAA8F,UAAA,IAAArR,GAAAiI,EAAAmJ,MAAA7F,KAAA8F;AAAA,AxDoxBA,MwDpxBArR,GAAA,GAAAg+H,KAAA,OAAAzyH,KAAAyuH,OAAA5oH,MAAA7F,KAAAvL,IAAAm+H,SAAAp+H,EAAA6O,GAAAiT,OAAAA,OAAA,SAAA7hB,GAAA,GAAAkI,EAAAlI,IAAA,iBAAAA,IAAAD,EAAA8B,WAAA7B,GAAA,MAAAuL,MAAA4yH,SAAA/sH,MAAA7F,KAAA8F,UAAA,IAAA9Q,GAAA0H,EAAAmJ,MAAA7F,KAAA8F,UAAA,OAAA9Q,GAAA,GAAAy9H,KAAA,SAAAzyH,KAAAyuH,OAAA5oH,MAAA7F,KAAAhL,IAAAw9H,QAAA,SAAA/9H,GAAA,GAAAO,GAAAgL,KAAAnG,IAAApF,GAAAS,IAAA,OAAAV,GAAAK,MAAA,KAAA,KAAA,IAAA,MAAA,SAAAL,EAAAC,GAAAO,EAAAgO,QAAAvO,GAAA,IAAAS,GAAAyF,WAAA3F,GAAAP,MAAAS,IAAA,IAAA6L,KAAAvM,GAAAK,MAAA,OAAA,QAAA,QAAA,QAAA,QAAA,SAAAL,EAAAC,GAAAsM,EAAAtM,GAAA,SAAAA,GAAA,MAAA8F,MAAAipE,IAAA/uE,EAAAD,EAAA,MAAAA,EAAAuD,OAAAgJ,GAAA8xH,KAAA,SAAAr+H,GAAA,MAAA,GAAA+F,KAAA6tB,IAAA5zB,EAAA+F,KAAA8tB,GAAA,IAAAyqG,KAAA,SAAAt+H,GAAA,MAAA,GAAA+F,KAAAw4H,KAAA,EAAAv+H,EAAAA,IAAAw+H,QAAA,SAAAx+H,GAAA,MAAA,KAAAA,GAAA,IAAAA,EAAAA,GAAA+F,KAAAipE,IAAA,EAAA,GAAAhvE,EAAA,IAAA+F,KAAA04H,KAAA,IAAAz+H,EAAA,GAAA,KAAA+F,KAAA8tB,GAAA;AxDqxBA,EwDrxBA6qG,KAAA,SAAA1+H,GAAA,MAAAA,GAAAA,GAAA,EAAAA,EAAA,IAAA2+H,OAAA,SAAA3+H,GAAA,IAAA,GAAAC,GAAAO,EAAA,EAAAR,IAAAC,EAAA8F,KAAAipE,IAAA,IAAAxuE,IAAA,GAAA,KAAA,MAAA,GAAAuF,KAAAipE,IAAA,EAAA,EAAAxuE,GAAA,OAAAuF,KAAAipE,KAAA,EAAA/uE,EAAA,GAAA,GAAAD,EAAA,MAAAA,EAAAK,KAAAkM,EAAA,SAAAtM,EAAAO,GAAAR,EAAAoL,OAAA,SAAAnL,GAAAO,EAAAR,EAAAoL,OAAA,UAAAnL,GAAA,SAAAD,GAAA,MAAA,GAAAQ,EAAA,EAAAR,IAAAA,EAAAoL,OAAA,YAAAnL,GAAA,SAAAD,GAAA,MAAA,GAAAA,EAAAQ,EAAA,EAAAR,GAAA,EAAAQ,EAAA,GAAAR,EAAA,GAAA,GAAA,MAAAqO,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAA+H,MAAA,SAAA3+H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,GAAA,WAAA,MAAA,SAAA,OAAA,SAAAE,EAAAZ,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,QAAA78H,EAAAnB,EAAAqa,QAAA04F,WAAA,UAAAhzG,GAAA62H,QAAA2G,KAAAh9H,EAAAE,GAAAF,EAAA8M,MAAA,IAAArK,GAAAjD,EAAA62H,QAAA+G,cAAAp9H,GAAA6E,KAAA0H,SAAA,WAAA7J,EAAA,YAAA9B,EAAA,SAAA,QAAAyG,EAAA,YAAAzG,EAAA6B,EAAAgE,SAAAhE,EAAA+D;AAAA,AxDkxBA,QwDlxBApG,GAAAqC,EAAAoC,IAAAnC,EAAA,EAAA,IAAA+E,KAAAA,GAAA/E,GAAA,QAAAtC,EAAAiH,EAAA,EAAA5E,EAAA8vB,QAAA9qB,EAAAhI,EAAAsK,SAAAtK,EAAAqa,QAAAlP,OAAA,WAAA,QAAAxK,GAAAJ,EAAA+M,OAAAvN,EAAA62H,QAAA4G,QAAAj9H,EAAAE,GAAAV,EAAA62H,QAAAiH,cAAAt9H,GAAAP,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7Q,EAAA,GAAA8Q,WAAA9Q,EAAAgY,gBAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAgI,OAAA,SAAA5+H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,GAAA,WAAA,MAAA,SAAA,OAAA,SAAAE,EAAAZ,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,UAAA78H,EAAAnB,EAAAqa,QAAA04F,WAAA,KAAA/vG,EAAAhD,EAAAqa,QAAAs9F,UAAA,GAAA10G,EAAAjD,EAAAqa,QAAA4nB,OAAA,EAAAr6B,EAAA5H,EAAAsK,UAAA,GAAA,aAAArJ,KAAAN,IAAAF,EAAA2K,KAAA,WAAArL,EAAA62H,QAAA2G,KAAAh9H,EAAAE,GAAAF,EAAA8M,OAAAtN,EAAA62H,QAAA+G,cAAAp9H,EAAA,IAAAyH,GAAA,MAAA7G,GAAA,QAAAA,EAAA,MAAA,OAAA8G,EAAA,MAAA9G,GAAA,QAAAA,EAAA,MAAA,MAAA6B,EAAAhD,EAAAqa,QAAAs9F,WAAA,OAAA3vG,EAAAzH,EAAA+8C,aAAA,GAAA,EAAA/8C,EAAAwuG,YAAA,GAAA;AAAA,AxD+wBA,GwD/wBA,QAAApuG,GAAAJ,EAAA6E,IAAA,UAAA,GAAAA,IAAA4C,EAAA,OAAAC,GAAAjF,EAAAA,GAAA,QAAArC,IAAAqC,GAAA,EAAAC,GAAA,QAAAtC,GAAAsC,IAAA,QAAAtC,EAAA,CAAA,GAAAuH,IAAA2F,QAAA,EAAA3F,GAAAF,IAAA,OAAAC,EAAA,KAAA,MAAAjF,EAAAzC,EAAAuyB,QAAA5qB,EAAAN,EAAA,EAAA5H,EAAAqa,QAAAlP,QAAAnI,GAAA,EAAAC,IAAA,IAAA,GAAAqJ,GAAA,EAAArJ,EAAAqJ,EAAAA,IAAA,CAAA,GAAAC,MAAApM,IAAAoM,GAAAvE,IAAA,OAAAC,EAAA,KAAA,MAAAjF,EAAA7C,EAAA6H,IAAA,OAAAC,EAAA,KAAA,MAAAjF,EAAAzC,EAAAuyB,QAAAvmB,EAAA3E,EAAA,EAAA5H,EAAAqa,QAAAlP,QAAA2nB,QAAA3yB,EAAAyH,EAAA,EAAA5H,EAAAqa,QAAAlP,QAAAnI,EAAA,QAAArC,EAAA,EAAAqC,EAAAA,EAAA,EAAA,GAAA,QAAArC,EAAA,CAAA,GAAAuH,IAAA2F,QAAA,EAAA3F,GAAAF,IAAA,OAAAC,EAAA,KAAA,MAAAjF,EAAAzC,EAAAuyB,QAAA5qB,EAAAN,EAAA,EAAA5H,EAAAqa,QAAAlP,OAAA,WAAA5K,EAAA+M,OAAAvN,EAAA62H,QAAA4G,QAAAj9H,EAAAE,GAAAV,EAAA62H,QAAAiH,cAAAt9H,GAAAP,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7F,KAAA8F,iBAAA,CAAA,GAAA9E,MAAApM,IAAAoM,GAAAvE,IAAA,OAAAC,EAAA,KAAA,MAAAjF,EAAA7C,EAAA6H,IAAA,OAAAC,EAAA,KAAA,MAAAjF,EAAAzC,EAAAuyB,QAAAvmB,EAAA3E,EAAA,EAAA5H,EAAAqa,QAAAlP,QAAA2nB,QAAA3yB,EAAAyH,EAAA,EAAA5H,EAAAqa,QAAAlP,OAAA;AAAApL,AxDgxBA,EwDhxBA62H,QAAA4G,QAAAj9H,EAAAE,GAAAV,EAAA62H,QAAAiH,cAAAt9H,GAAAP,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7F,KAAA8F,aAAA9Q,EAAAsL,MAAA,KAAA,WAAAtL,EAAAgY,YAAAhY,EAAAgY,cAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAiI,KAAA,SAAA7+H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,GAAA,WAAA,MAAA,SAAA,OAAA,QAAA,SAAA,SAAAE,EAAAZ,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,QAAA78H,EAAAnB,EAAAqa,QAAA04F,WAAA,UAAAhzG,GAAA62H,QAAA2G,KAAAh9H,EAAAE,GAAAF,EAAA8M,MAAA,IAAArK,GAAAjD,EAAA62H,QAAA+G,cAAAp9H,GAAA6E,KAAA0H,SAAA,WAAA7J,EAAA,OAAA1C,EAAA,GAAAi8G,QAAAx5G,EAAAzC,EAAAqH,GAAAgJ,KAAA,YAAAzP,EAAA,SAAA,QAAAoqB,SAAA,YAAApqB,EAAA,MAAA,QAAA6G,EAAA,YAAA7G,EAAA8B,EAAA+D,SAAA/D,EAAA8D,OAAA,SAAApG,IAAAsC,EAAAmC,IAAAwC,EAAAgJ,KAAA,GAAA3N,EAAAmC,IAAAwC,EAAA2jB,SAAAvjB,EAAA,GAAA,IAAAC;AAAAA,AxD6wBA,EwD7wBAL,EAAAgJ,MAAA,QAAAjQ,EAAAqH,EAAA,EAAAC,EAAAL,EAAA2jB,UAAA,QAAA5qB,EAAA,EAAAqH,EAAA,EAAA/E,EAAA6vB,QAAA7qB,GAAA4D,OAAA,EAAAvB,SAAAtK,EAAAsK,SAAAa,OAAAnL,EAAAqa,QAAAlP,OAAAa,SAAA,WAAA,QAAArL,GAAAJ,EAAA+M,OAAAvN,EAAA62H,QAAA4G,QAAAj9H,EAAAE,GAAAV,EAAA62H,QAAAiH,cAAAt9H,GAAAP,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7Q,EAAA,GAAA8Q,WAAA9Q,EAAAgY,iBAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAh0F,KAAA,SAAA5iC,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,GAAA,WAAA,MAAA,SAAA,OAAA,QAAA,WAAAE,EAAAZ,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,QAAA78H,EAAAnB,EAAAqa,QAAA04F,WAAA,MAAAhzG,GAAA62H,QAAA2G,KAAAh9H,EAAAE,GAAAF,EAAA8M,OAAAtN,EAAA62H,QAAA+G,cAAAp9H,EAAA,IAAAyC,GAAA,MAAA7B,GAAA,QAAAA,EAAA,MAAA,OAAA8B,EAAA,MAAA9B,GAAA,QAAAA,EAAA,MAAA,MAAAyG,EAAA5H,EAAAqa,QAAAs9F,WAAA,OAAA30G,EAAAzC,EAAA+8C,aAAA,GAAA,EAAA/8C,EAAAwuG,YAAA,GAAA;AAAA,AxD0wBA,QwD1wBApuG,GAAAJ,EAAA6E,IAAA,UAAA,GAAAA,IAAApC,EAAA,OAAAC,GAAA2E,EAAAA,EAAA,IAAAI,IAAA6F,QAAA,QAAAlN,EAAA,EAAA,EAAAqH,GAAAhF,IAAA,QAAArC,EAAA,OAAAsC,EAAA,KAAA,KAAA,OAAAA,EAAA,KAAA,MAAA2E,EAAArH,EAAAuyB,QAAA9qB,GAAA6D,OAAA,EAAAvB,SAAAtK,EAAAsK,SAAAa,OAAAnL,EAAAqa,QAAAlP,OAAAa,SAAA,WAAA,QAAArL,GAAAJ,EAAA+M,OAAAvN,EAAA62H,QAAA4G,QAAAj9H,EAAAE,GAAAV,EAAA62H,QAAAiH,cAAAt9H,GAAAP,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7F,KAAA8F,WAAA9Q,EAAAgY,iBAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAkI,QAAA,SAAA9+H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAP,EAAAqa,QAAA0kH,OAAAj5H,KAAA6vE,MAAA7vE,KAAAw4H,KAAAt+H,EAAAqa,QAAA0kH,SAAA,EAAAt+H,EAAAT,EAAAqa,QAAA0kH,OAAAj5H,KAAA6vE,MAAA7vE,KAAAw4H,KAAAt+H,EAAAqa,QAAA0kH,SAAA,CAAA/+H,GAAAqa,QAAA2jH,KAAA,UAAAh+H,EAAAqa,QAAA2jH,KAAAj+H,EAAAwL,MAAA+S,GAAA,YAAA,OAAA,OAAAte,EAAAqa,QAAA2jH,IAAA,IAAAr9H,GAAAZ,EAAAwL,MAAA8B,OAAAjI,IAAA,aAAA,UAAAjE,EAAAR,EAAA0zB;AAAAlzB,AxDuwBA,EwDvwBAmW,KAAAkE,SAAA7a,EAAAyE,IAAA,aAAA,KAAA,EAAAjE,EAAAsrB,MAAAjR,SAAA7a,EAAAyE,IAAA,cAAA,KAAA,CAAA,KAAA,GAAApC,GAAArC,EAAAouG,YAAA,GAAA9rG,EAAAtC,EAAA28C,aAAA,GAAA11C,EAAA,EAAArH,EAAAqH,EAAAA,IAAA,IAAA,GAAAI,GAAA,EAAAvH,EAAAuH,EAAAA,IAAArH,EAAA2R,QAAA5L,SAAA,QAAA6iB,KAAA,eAAAnkB,KAAAmmB,SAAA,WAAAC,WAAA,UAAAiB,MAAAzkB,GAAAhF,EAAAvC,GAAA6W,KAAA1P,GAAA3E,EAAA1C,KAAAkkB,SAAA/K,SAAA,sBAAAtU,KAAAmmB,SAAA,WAAAze,SAAA,SAAA/F,MAAA/D,EAAAvC,EAAAuG,OAAA/D,EAAA1C,EAAAksB,KAAAtrB,EAAAsrB,KAAAzkB,GAAAhF,EAAAvC,IAAA,QAAAT,EAAAqa,QAAA2jH,MAAAh2H,EAAAlC,KAAAi3B,MAAAt8B,EAAA,KAAAuC,EAAAvC,GAAA,GAAA6W,IAAAnW,EAAAmW,IAAA1P,GAAA3E,EAAA1C,IAAA,QAAAP,EAAAqa,QAAA2jH,MAAAp2H,EAAA9B,KAAAi3B,MAAAx8B,EAAA,KAAA0C,EAAA1C,GAAA,GAAAsN,QAAA,QAAA7N,EAAAqa,QAAA2jH,KAAA,EAAA,IAAAlrG,SAAArG,KAAAtrB,EAAAsrB,KAAAzkB,GAAAhF,EAAAvC,IAAA,QAAAT,EAAAqa,QAAA2jH,KAAA,GAAAh2H,EAAAlC,KAAAi3B,MAAAt8B,EAAA,KAAAuC,EAAAvC,IAAA6W,IAAAnW,EAAAmW,IAAA1P,GAAA3E,EAAA1C,IAAA,QAAAP,EAAAqa,QAAA2jH,KAAA,GAAAp2H,EAAA9B,KAAAi3B,MAAAx8B,EAAA,KAAA0C,EAAA1C;AAAAsN,AxDwwBA,QwDxwBA,QAAA7N,EAAAqa,QAAA2jH,KAAA,EAAA,GAAAh+H,EAAAsK,UAAA,IAAAZ,YAAA,WAAA,QAAA1J,EAAAqa,QAAA2jH,KAAAr9H,EAAAyE,KAAAomB,WAAA,YAAA7qB,EAAAyE,KAAAomB,WAAA,YAAAle,OAAAtN,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAAzQ,EAAA,IAAAA,EAAA4X,UAAAxY,EAAA,0BAAA6G,UAAA5G,EAAAsK,UAAA,SAAA8D,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAoI,KAAA,SAAAh/H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,EAAAV,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,OAAAz9H,GAAAuyB,SAAAjlB,QAAApN,IAAAoL,OAAA,EAAAvB,SAAAtK,EAAAsK,SAAAa,OAAAnL,EAAAqa,QAAAlP,OAAAa,SAAA,WAAAhM,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7F,KAAA8F,WAAA9Q,EAAAgY,iBAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAqI,KAAA,SAAAj/H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,GAAA,WAAA,MAAA,SAAA,OAAA,SAAAE,EAAAZ,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,QAAA78H,EAAAnB,EAAAqa,QAAAzJ,MAAA,GAAA5N,IAAAhD,EAAAqa,QAAA6kH,WAAAj8H,EAAAjD,EAAAsK,SAAAtK,EAAAsK,SAAA,EAAAvK,EAAA2L,GAAA+M,OAAAyF,SAAA;AAAAne,AxDiwBA,EwDjwBA62H,QAAA2G,KAAAh9H,EAAAE,GAAAF,EAAA8M,MAAA,IAAAzF,GAAA7H,EAAA62H,QAAA+G,cAAAp9H,GAAA6E,KAAA0H,SAAA,WAAA9E,EAAA,QAAArH,GAAAqC,EAAAiF,EAAAD,GAAA,QAAA,WAAA,SAAA,SAAAE,EAAAF,GAAAJ,EAAAb,QAAAa,EAAAZ,WAAAY,EAAAZ,SAAAY,EAAAb,SAAAuF,EAAA,YAAAzG,KAAA1E,EAAAmL,KAAAnL,EAAAqa,SAAAlP,EAAA,GAAA,IAAA,IAAApE,EAAA,QAAAvH,EAAA,EAAA,IAAA,QAAAA,GAAAiH,EAAAxC,IAAApC,GAAAgE,OAAA,EAAAD,MAAA5F,IAAA6F,OAAA7F,EAAA4F,MAAA,GAAA,IAAAwF,MAAApM,IAAAoM,GAAAtE,EAAA,IAAA,QAAAtH,EAAAuH,EAAA,GAAA/G,EAAAhB,EAAA8H,EAAA,IAAA,QAAAtH,EAAAuH,EAAA,GAAA,EAAAN,EAAAkrB,QAAAvmB,EAAAtJ,EAAAjD,EAAAqa,QAAAlP,QAAA2nB,QAAA3yB,EAAA8C,EAAAjD,EAAAqa,QAAAlP,OAAA,WAAA,QAAAxK,GAAAJ,EAAA+M,OAAAvN,EAAA62H,QAAA4G,QAAAj9H,EAAAE,GAAAV,EAAA62H,QAAAiH,cAAAt9H,GAAAP,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7Q,EAAA,GAAA8Q,WAAA9Q,EAAAgY,gBAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAuI,UAAA,SAAAn/H,GAAA,MAAAuL,MAAAM,MAAA;AAAA,AxD8vBA,GwD9vBAtL,GAAAR,EAAAwL,MAAA9K,GAAA,kBAAA,kBAAA,WAAAE,EAAAZ,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,QAAA78H,GAAAi+H,gBAAA7+H,EAAA6E,IAAA,mBAAA,SAAAzE,IAAAQ,EAAA0M,QAAA,GAAA9N,EAAA62H,QAAA2G,KAAAh9H,EAAAE,GAAAF,EAAA8M,OAAAjI,KAAAi6H,gBAAA,OAAAD,gBAAAp/H,EAAAqa,QAAAilH,OAAA,YAAAxsG,QAAA3xB,GAAA0K,OAAA,EAAAvB,SAAAtK,EAAAsK,SAAAa,OAAAnL,EAAAqa,QAAAlP,OAAAa,SAAA,WAAA,QAAArL,GAAAJ,EAAA+M,OAAAvN,EAAA62H,QAAA4G,QAAAj9H,EAAAE,GAAA,QAAAE,IAAAZ,EAAA6D,QAAAiK,SAAAtC,KAAAhG,MAAAd,gBAAA,UAAAzE,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7F,KAAA8F,WAAA9Q,EAAAgY,iBAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAA2I,QAAA,SAAAv/H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,EAAAV,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,QAAAr9H,EAAA,GAAAX,EAAAqa,QAAA4nB,OAAA,GAAA,EAAA9gC,EAAAnB,EAAAsK,SAAAtK,EAAAsK,SAAA,EAAAvK,EAAA2L,GAAA+M,OAAAyF,SAAA,EAAAlb,EAAAzC,EAAA+d,GAAA,YAAArb,EAAA;AAAAD,AxD2vBA,IwD3vBAzC,EAAA6E,IAAA,UAAA,GAAAiI,OAAApK,EAAA,IAAA,QAAAxC,GAAAuC,GAAA,QAAAvC,IAAAuC,IAAArC,GAAA,KAAA,GAAAiH,GAAA,EAAAjH,EAAAiH,EAAAA,IAAArH,EAAAuyB,SAAAjlB,QAAA5K,GAAA9B,EAAAnB,EAAAqa,QAAAlP,QAAAlI,GAAAA,EAAA,GAAA,CAAA1C,GAAAuyB,SAAAjlB,QAAA5K,GAAA9B,EAAAnB,EAAAqa,QAAAlP,OAAA,WAAA,GAAAlI,GAAA1C,EAAA+M,OAAAtN,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7F,KAAA8F,aAAA9Q,EAAAsL,MAAA,KAAA,WAAAtL,EAAAgY,YAAAA,cAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAA4I,KAAA,SAAAx/H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,EAAAV,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,QAAAr9H,EAAA6a,SAAAxb,EAAAqa,QAAAolH,QAAA,KAAA,IAAAt+H,EAAAR,EAAA,IAAAqC,GAAAgE,OAAAzG,EAAAyG,SAAAD,MAAAxG,EAAAwG,QAAAhH,GAAAuD,OAAAtD,EAAAqa,SAAA2kH,MAAA,EAAAhB,KAAAv9H,EAAAg/H,QAAA,QAAAh/H,EAAAE,EAAA,IAAAq2E,KAAA,QAAAv2E,EAAAuC,GAAAgE,OAAAhE,EAAAgE,OAAA7F,EAAA4F,MAAA/D,EAAA+D,MAAA5F,KAAAZ,EAAAy5H,OAAA,QAAAh6H,EAAAqa,QAAAra,EAAAsK,SAAAtK,EAAAopC;AAAA7oC,AxDwvBA,EwDxvBAgY,aAAAxY,EAAA62H,QAAA8I,MAAA,SAAA1/H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,EAAAV,EAAAuD,QAAA,KAAAtD,EAAAqa,SAAA1Z,EAAAZ,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,UAAA78H,EAAAqa,SAAAxb,EAAAqa,QAAAolH,QAAA,MAAA,GAAAjkH,SAAAxb,EAAAqa,QAAAolH,QAAA,IAAA,EAAA,QAAA9+H,EAAA,EAAA,KAAAqC,EAAAhD,EAAAqa,QAAA04F,WAAA,OAAA9vG,EAAAjD,EAAAqa,QAAAslH,MAAA,WAAAh/H,IAAAF,EAAAk/H,OAAA18H,IAAA,SAAA,UAAAxC,EAAA+8H,SAAA,EAAA,IAAA51H,IAAAZ,OAAAzG,EAAAyG,SAAAD,MAAAxG,EAAAwG,QAAAxG,GAAAy2E,KAAAh3E,EAAAqa,QAAA28D,OAAA,QAAAr2E,GAAAqG,OAAA,EAAAD,MAAA,GAAAa,EAAA,IAAAI,IAAAoH,EAAA,cAAApM,EAAA7B,EAAA,IAAA,EAAAgO,EAAA,YAAAnM,EAAA7B,EAAA,IAAA,EAAAZ,GAAA02E,IAAAjwE,OAAAY,EAAAZ,OAAAgB,EAAAoH,EAAArI,MAAAa,EAAAb,MAAAiB,EAAAmH,GAAAnP,EAAAqa,QAAA2kH,OAAA,QAAAr+H,IAAAJ,EAAAy2E,KAAAnpE,QAAA,EAAAtN,EAAA02E,GAAAppE,QAAA,GAAA,QAAAlN,IAAAJ,EAAAy2E,KAAAnpE,QAAA,EAAAtN,EAAA02E,GAAAppE,QAAA;AAAApN,AxDyvBA,EwDzvBAu2E,KAAAz2E,EAAAy2E,KAAAv2E,EAAAw2E,GAAA12E,EAAA02E,GAAAx2E,EAAAu9H,KAAAr9H,EAAAJ,EAAAy5H,OAAA,OAAAv5H,EAAAT,EAAAsK,SAAAtK,EAAAopC,UAAA7oC,EAAAgY,aAAAxY,EAAA62H,QAAAhmH,KAAA,SAAA5Q,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,GAAA,WAAA,MAAA,SAAA,OAAA,QAAA,QAAA,SAAA,WAAA,WAAAE,GAAA,WAAA,MAAA,SAAA,OAAA,QAAA,WAAA,WAAAQ,GAAA,QAAA,SAAA,YAAA6B,GAAA,YAAAC,GAAA,iBAAA,oBAAA,aAAA,iBAAA2E,GAAA,kBAAA,mBAAA,cAAA,gBAAAI,EAAAjI,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,UAAA/1H,EAAAjI,EAAAqa,QAAAmjH,UAAA,EAAAt1H,EAAAlI,EAAAqa,QAAAqlH,OAAA,OAAApzH,EAAAtM,EAAAqa,QAAAslH,OAAApzH,GAAAvF,OAAAzG,EAAAyG,SAAAD,MAAAxG,EAAAwG,QAAA,IAAAxG,EAAAy2E,KAAAh3E,EAAAqa,QAAA28D,MAAAzqE;AAAAhM,AxD0vBA,EwD1vBA02E,GAAAj3E,EAAAqa,QAAA48D,IAAA1qE,EAAAD,EAAA,CAAA,GAAAnM,GAAAJ,EAAA62H,QAAA8G,YAAApxH,EAAAC,EAAAhM,GAAAy2E,KAAA1/D,KAAA/K,EAAAvF,OAAAzG,EAAAy2E,KAAAhwE,QAAA7G,EAAAiP,EAAA7O,EAAAy2E,KAAAvqD,MAAAlgB,EAAAxF,MAAAxG,EAAAy2E,KAAAjwE,OAAA5G,EAAAgP,EAAA5O,EAAA02E,GAAA3/D,KAAA/K,EAAAvF,OAAAzG,EAAA02E,GAAAjwE,QAAA7G,EAAAiP,EAAA7O,EAAA02E,GAAAxqD,MAAAlgB,EAAAxF,MAAAxG,EAAA02E,GAAAlwE,OAAA5G,EAAAgP,EAAA,GAAA1C,IAAAuqE,MAAA5nE,EAAA7O,EAAAy2E,KAAAhwE,OAAAuF,EAAAvF,OAAAmI,EAAA5O,EAAAy2E,KAAAjwE,MAAAwF,EAAAxF,OAAAkwE,IAAA7nE,EAAA7O,EAAA02E,GAAAjwE,OAAAuF,EAAAvF,OAAAmI,EAAA5O,EAAA02E,GAAAlwE,MAAAwF,EAAAxF,SAAA,OAAAmB,GAAA,QAAAA,KAAAuE,EAAAuqE,KAAA5nE,GAAA3C,EAAAwqE,GAAA7nE,IAAA3O,EAAAA,EAAAsJ,OAAA9G,GAAA1C,EAAAy2E,KAAAj3E,EAAA62H,QAAAkH,cAAAv9H,EAAA0C,EAAAwJ,EAAAuqE,KAAA5nE,EAAA7O,EAAAy2E,MAAAz2E,EAAA02E,GAAAl3E,EAAA62H,QAAAkH,cAAAv9H,EAAA0C,EAAAwJ,EAAAwqE,GAAA7nE,EAAA7O,EAAA02E,KAAAxqE,EAAAuqE,KAAA7nE,GAAA1C,EAAAwqE,GAAA9nE,IAAA1O,EAAAA,EAAAsJ,OAAAnC,GAAArH,EAAAy2E,KAAAj3E,EAAA62H,QAAAkH,cAAAv9H,EAAAqH,EAAA6E,EAAAuqE,KAAA7nE,EAAA5O,EAAAy2E,MAAAz2E,EAAA02E,GAAAl3E,EAAA62H,QAAAkH,cAAAv9H,EAAAqH,EAAA6E,EAAAwqE,GAAA9nE,EAAA5O,EAAA02E,OAAA,WAAA/uE,GAAA,QAAAA,IAAAuE,EAAAuqE,KAAA5nE,GAAA3C,EAAAwqE,GAAA7nE,IAAA3O,EAAAA,EAAAsJ,OAAA/G;AAAAzC,AxD2vBA,EwD3vBAy2E,KAAAj3E,EAAA62H,QAAAkH,cAAAv9H,EAAAyC,EAAAyJ,EAAAuqE,KAAA5nE,EAAA7O,EAAAy2E,MAAAz2E,EAAA02E,GAAAl3E,EAAA62H,QAAAkH,cAAAv9H,EAAAyC,EAAAyJ,EAAAwqE,GAAA7nE,EAAA7O,EAAA02E,KAAAl3E,EAAA62H,QAAA2G,KAAAh9H,EAAA0H,EAAAxH,EAAAE,GAAAJ,EAAA8M,OAAAtN,EAAA62H,QAAA+G,cAAAp9H,GAAAA,EAAA6E,IAAA,WAAA,UAAAA,IAAA7E,EAAAy2E,OAAA,WAAA9uE,GAAA,QAAAA,KAAAjF,EAAAA,EAAA8G,QAAA,YAAA,iBAAAA,OAAA/G,GAAA4E,EAAAA,EAAAmC,QAAA,aAAA,gBAAA5I,EAAAV,EAAAsJ,OAAA9G,GAAA8G,OAAAnC,GAAArH,EAAAiQ,KAAA,YAAApQ,KAAA,WAAA,GAAAG,GAAAR,EAAAwL,KAAAtD,IAAAlI,EAAA62H,QAAA2G,KAAAh9H,EAAAY,EAAA,IAAAV,IAAAuG,OAAAzG,EAAAyG,SAAAD,MAAAxG,EAAAwG,QAAAxG,GAAAy2E,MAAAhwE,OAAAvG,EAAAuG,OAAAyF,EAAAuqE,KAAA5nE,EAAArI,MAAAtG,EAAAsG,MAAA0F,EAAAuqE,KAAA7nE,GAAA5O,EAAA02E,IAAAjwE,OAAAvG,EAAAuG,OAAAyF,EAAAwqE,GAAA7nE,EAAArI,MAAAtG,EAAAsG,MAAA0F,EAAAwqE,GAAA9nE,GAAA1C,EAAAuqE,KAAA5nE,GAAA3C,EAAAwqE,GAAA7nE,IAAA7O,EAAAy2E,KAAAj3E,EAAA62H,QAAAkH,cAAAv9H,EAAA0C,EAAAwJ,EAAAuqE,KAAA5nE,EAAA7O,EAAAy2E,MAAAz2E,EAAA02E,GAAAl3E,EAAA62H,QAAAkH,cAAAv9H,EAAA0C,EAAAwJ,EAAAwqE,GAAA7nE,EAAA7O,EAAA02E;AAAAxqE,AxD4vBA,EwD5vBAuqE,KAAA7nE,GAAA1C,EAAAwqE,GAAA9nE,IAAA5O,EAAAy2E,KAAAj3E,EAAA62H,QAAAkH,cAAAv9H,EAAAqH,EAAA6E,EAAAuqE,KAAA7nE,EAAA5O,EAAAy2E,MAAAz2E,EAAA02E,GAAAl3E,EAAA62H,QAAAkH,cAAAv9H,EAAAqH,EAAA6E,EAAAwqE,GAAA9nE,EAAA5O,EAAA02E,KAAA12E,EAAA6E,IAAA7E,EAAAy2E,MAAAz2E,EAAAuyB,QAAAvyB,EAAA02E,GAAAj3E,EAAAsK,SAAAtK,EAAAqa,QAAAlP,OAAA,WAAAlD,GAAAlI,EAAA62H,QAAA4G,QAAAj9H,EAAAY,QAAAZ,EAAAuyB,QAAAvyB,EAAA02E,IAAAprE,OAAA,EAAAvB,SAAAtK,EAAAsK,SAAAa,OAAAnL,EAAAqa,QAAAlP,OAAAa,SAAA,WAAA,IAAAzL,EAAA02E,GAAAppE,SAAAtN,EAAA6E,IAAA,UAAA7E,EAAAy2E,KAAAnpE,SAAA,QAAA7F,GAAAzH,EAAA+M,OAAAvN,EAAA62H,QAAA4G,QAAAj9H,EAAA0H,EAAAxH,EAAAE,GAAAZ,EAAA62H,QAAAiH,cAAAt9H,GAAAP,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7F,KAAA8F,WAAA9Q,EAAAgY,iBAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAgJ,MAAA,SAAA5/H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,GAAA,WAAA,MAAA,SAAA,OAAA,SAAAU,GAAApB,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA;AAAAh+H,AxDyvBA,EwDzvBAqa,QAAA04F,WAAA,QAAA/vG,EAAAhD,EAAAqa,QAAAs9F,UAAA,GAAA10G,EAAAjD,EAAAqa,QAAA4nB,OAAA,EAAAr6B,EAAA5H,EAAAsK,UAAAtK,EAAAqa,QAAA/P,UAAA,GAAAvK,GAAA62H,QAAA2G,KAAAh9H,EAAAE,GAAAF,EAAA8M,OAAAtN,EAAA62H,QAAA+G,cAAAp9H,EAAA,IAAAyH,GAAA,MAAA7G,GAAA,QAAAA,EAAA,MAAA,OAAA8G,EAAA,MAAA9G,GAAA,QAAAA,EAAA,MAAA,MAAA+G,KAAAoE,KAAAC,IAAArE,GAAAF,IAAA,OAAAC,EAAA,KAAA,MAAAjF,EAAAsJ,EAAAtE,IAAA,OAAAC,EAAA,KAAA,MAAA,EAAAjF,EAAAuJ,EAAAvE,IAAA,OAAAC,EAAA,KAAA,MAAA,EAAAjF,EAAAzC,EAAAuyB,QAAA5qB,EAAAN,EAAA5H,EAAAqa,QAAAlP,OAAA,KAAA,GAAAhL,GAAA,EAAA8C,EAAA9C,EAAAA,IAAAI,EAAAuyB,QAAAxmB,EAAA1E,EAAA5H,EAAAqa,QAAAlP,QAAA2nB,QAAAvmB,EAAA3E,EAAA5H,EAAAqa,QAAAlP,OAAA5K,GAAAuyB,QAAAxmB,EAAA1E,EAAA5H,EAAAqa,QAAAlP,QAAA2nB,QAAA5qB,EAAAN,EAAA,EAAA5H,EAAAqa,QAAAlP,OAAA,WAAApL,EAAA62H,QAAA4G,QAAAj9H,EAAAE,GAAAV,EAAA62H,QAAAiH,cAAAt9H,GAAAP,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7F,KAAA8F,aAAA9Q,EAAAsL,MAAA,KAAA,WAAAtL,EAAAgY,YAAAhY,EAAAgY;AxD0vBA,KwD1vBAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAjQ,MAAA,SAAA3mH,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,GAAA,WAAA,MAAA,SAAA,OAAA,SAAAE,EAAAZ,EAAA62H,QAAA6G,QAAAl9H,EAAAP,EAAAqa,QAAA2jH,MAAA,QAAA78H,EAAAnB,EAAAqa,QAAA04F,WAAA,MAAAhzG,GAAA62H,QAAA2G,KAAAh9H,EAAAE,GAAAF,EAAA8M,OAAAtN,EAAA62H,QAAA+G,cAAAp9H,GAAA6E,KAAA0H,SAAA,UAAA,IAAA9J,GAAA,MAAA7B,GAAA,QAAAA,EAAA,MAAA,OAAA8B,EAAA,MAAA9B,GAAA,QAAAA,EAAA,MAAA,MAAAyG,EAAA5H,EAAAqa,QAAAs9F,WAAA,OAAA30G,EAAAzC,EAAA+8C,aAAA,GAAA/8C,EAAAwuG,YAAA,GAAA,SAAApuG,GAAAJ,EAAA6E,IAAApC,EAAA,OAAAC,EAAAgP,MAAArK,GAAA,IAAAA,GAAAA,EAAAA,EAAA,IAAAI,KAAAA,GAAAhF,IAAA,QAAArC,EAAA,OAAAsC,EAAA,KAAA,KAAA,OAAAA,EAAA,KAAA,MAAA2E,EAAArH,EAAAuyB,QAAA9qB,GAAA6D,OAAA,EAAAvB,SAAAtK,EAAAsK,SAAAa,OAAAnL,EAAAqa,QAAAlP,OAAAa,SAAA,WAAA,QAAArL,GAAAJ,EAAA+M,OAAAvN,EAAA62H,QAAA4G,QAAAj9H,EAAAE;AAAAV,AxDuvBA,EwDvvBA62H,QAAAiH,cAAAt9H,GAAAP,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7F,KAAA8F,WAAA9Q,EAAAgY,iBAAAnK,QAIA,SAAArO,EAAAC,GAAAD,EAAA62H,QAAAiJ,SAAA,SAAA7/H,GAAA,MAAAuL,MAAAM,MAAA,WAAA,GAAAtL,GAAAR,EAAAwL,MAAA9K,EAAAV,EAAAC,EAAAqa,QAAA48D,IAAAt2E,EAAAF,EAAA4zB,SAAAlzB,GAAAmW,IAAA3W,EAAA2W,IAAAmV,KAAA9rB,EAAA8rB,KAAAzlB,OAAAvG,EAAA61G,cAAAvvG,MAAAtG,EAAA41G,cAAArzG,EAAAzC,EAAA8zB,SAAApxB,EAAAlD,EAAA,2CAAA2G,SAAAU,SAAAT,MAAA+S,SAAA1Z,EAAAqa,QAAA1E,WAAAvQ,KAAAkS,IAAAtU,EAAAsU,IAAAmV,KAAAzpB,EAAAypB,KAAAzlB,OAAAzG,EAAA+1G,cAAAvvG,MAAAxG,EAAA81G,aAAA9qF,SAAA,aAAAuH,QAAA3xB,EAAAnB,EAAAsK,SAAAtK,EAAAqa,QAAAlP,OAAA,WAAAlI,EAAA2D,SAAA5G,EAAAopC,UAAAppC,EAAAopC,SAAAh4B,MAAA7Q,EAAA,GAAA8Q,WAAA9Q,EAAAgY,gBAAAnK,UCvHA+mB,OAAA,WACA,SACA,SACA,UACA,qBACA,YACA,SAAA/Y,EAAA/N,EAAA4B,QAAA6vH;AAGA,AzDk2BA,GyDl2BAC,UACApyH,KAAA,WAOAU,EAAA2xH,SAAA,SAAA71G,IAAA/oB,KAAAgoC,UACA/6B,EAAA4xH,KAAA91G,IAAA/oB,KAAAgoC,SAAA,UAIA82F,iBAAA,WACA3pF,QAAAqlB,KAAA,kCACA,IACAukE,aAKA,OAJAlwH,SAAA+mF,UACAmpC,aAAA9xH,EAAA,sBAAAq/G,KAAA,UAAA,YACAr/G,EAAA,kBAAA4C,GAAAkvH,cAAA3vH,KAAA,mBAEAnC,EAAA,UAAA4B,QAAA+mF,QAAA,oBAMAopC,yBAAA,SAAAC,OACA9pF,QAAAqlB,KAAA,kCACA,IAAAJ,YAAAjwD,KAAA20H,kBACA,OAAA1kE,aAAAA,WAAAj5D,OAAA,EACAi5D,WAAA/qD,UAEA,GAMA6vH,gBAAA,SAAAloH,MACAm+B,QAAAqlB,KAAA,mCACAvtD,EAAA,IAAA+J,MAAA0J;AzD0zBA,EyDlzBAy+G,kBAAA,SAAAnoH,MACAm+B,QAAAqlB,KAAA,kCAGA,KAFA,GAAAkkC,MAAAzxF,EAAA,gCACAzG,EAAA,EACAA,EAAAk4F,KAAAv9F,QAAA,CACA,GAAA03F,KAAA6F,KAAAl4F,EACA,IAAAqyF,KAAAA,IAAA1pF,IAAA0pF,IAAA1pF,KAAA6H,KACA,MAAAxQ,EAEAA,KAEA,MAAA,IAGA44H,QAAA,SAAA5W,MAAAz/F,IAAA6H,MACAukB,QAAAqlB,KAAA,mCACA5pC,KAAAA,OAAA,CACA,IAAAyqB,KAAAlxC,KAAAk1H,iBAAAt2G,KACAk2G,MAAAhyH,EAAA,QACA,KAAAouC,MACA4jF,MAAA3S,KAAA,MAAAvjG,IAAAy/F,OACAntE,IAAA4jF,MAAA3S,KAAA,UAAA,GAGA17F,MACAquG,MAAA3S,KAAA,SAAAjxE,MAIAgkF,iBAAA,SAAAt2G,KACAosB,QAAAqlB,KAAA,kCACA,IAAAkkC,MAAAzxF,EAAA,6BACAzG,EAAA,EACA44C,IAAA,EASA,OARAs/C,MAAA1/F,KAAA,WACA,GAAAqb,MAAApN,EAAAjN,KAAAmK,KAAA,YACA,OAAA4e,OAAA1O,UACA+kC,IAAA54C,OAGAA;AzD2wBA,GyDzwBA44C,KAGAkgF,SAAA,SAAAt+G,OACAm0B,QAAAqlB,KAAA,mCACAx5C,MAAA,IACA/T,EAAA,SAAAq/G,KAAA,SAAAtrG,QAUAu+G,aAAA,SAAAC,OAAAC,QAAA12G,KACAosB,QAAAqlB,KAAA,kCACA,IAAAx5C,OAAA7W,KAAAg1H,kBAAAM,QACAD,QAAAlT,KAAA,MAAAtrG,MAAA+H,KACAy2G,OAAAlT,KAAA,SAAAtrG,QAYA0+G,QAAA,WACAvqF,QAAAqlB,KAAA,wCACAvtD,EAAA0D,QAAAsP,GAAA,QAAA,SAAA1gB,GAGA,MAFAA,GAAAge,kBACAhe,EAAAqd,kBACA,IAEA8hH,WAAAr0H,SAQAqzD,OAAA,WACAvoB,QAAAqlB,KAAA,wCACAvtD,EAAA0D,QAAAD,IAAA,SACAguH,WAAAz0H,QAQA01H,MAAA,SAAAtwH,SAAA0Z,IAAA/oB,MAEA+oB,IAAAA,KAAA,GAEA/oB,KACAA,KAAAg8E,IAAA,GAAA3pE,OAAAC,UAGAtS;AAAAg8E,AzDwsBA,IyDxsBA,GAAA3pE,OAAAC,WAEArF,EAAAoC,UAAAnD,OAAAV,QAAAS,OACA,KAAA8c,IAAA5b,QAAA,KACAF,EAAAoC,UAAAwP,KAAAkK,IAAA/oB,OAGA+oB,KAAA,IAAA9b,EAAAkf,MAAAnsB,MACAiN,EAAAoC,UAAAwP,KAAAkK,OAQA62G,MAAA,SAAAphE,KACA,MAAAA,KAAArxD,QAAA,KAAA,GAAAqxD,IAAA,QAAA,GAAAnsD,OAAAC,UAAAksD,IAAA,QAAA,GAAAnsD,OAAAC,WAUAutH,QAAA,WAEA1qF,QAAAqlB,KAAA,cACAlyD,WAAA,WACA2E,EAAA,mBAAA2rH,OAAA,aAAAsF,MAAA,WAAA,OACA,KACA51H,WAAA,WACA2E,EAAA,cAAAilB,QAAA,SACA,KACA5pB,WAAA,WACA2E,EAAA,eAAA8kB,QAAA,OACA,OAQA+tG,WAAA,SAAAzwH,SAAA0wH,WACA5qF,QAAAqlB,KAAA,+BACAulE,YACAA,UAAA,KAEA9yH,EAAAoC,UAAArQ,KAAA,WACAiO,EAAA9C,MAAA/G,OAAAjC,OAAA4+H,YAAA9yH,EAAA9C,MAAAsO,SAAA,iBACAxL,EAAA9C,MAAAgO,KAAA,QAAAlL,EAAA9C,MAAA/G;AACA6J,AzDmpBA,EyDnpBA9C,MAAAnG,IAAA,SAAA,WACAiJ,EAAA9C,MAAAwe,KAAA1b,EAAA9C,MAAA/G,OAAA6T,UAAA,EAAA8oH,WAAA,iBAAAlxH,QAAAmxH,YAAA,2BACA/yH,EAAA9C,MAAAmO,SAAA,mBAKA2nH,cAAA,SAAA56F,SACA8P,QAAAqlB,KAAA,oCACAvtD,EAAA,aAAA9L,OAIA8L,EAAA,aAAA0b,KAAA0c,SAAAp5B,OAHAgB,EAAA,QAAA8a,OAAA,yEAAAsd,QAAA,UAKAl7B,KAAA01H,WAOAK,mBAAA,SAAA76F,SACAl7B,KAAA81H,cAAA56F,SACAp4B,EAAA,aAAAqL,SAAA,mBAOA6nH,kBAAA,SAAA96F,SACAl7B,KAAA81H,cAAA56F,SACAp4B,EAAA,aAAAsL,YAAA,mBAOA6nH,qBAAA;AACA,AzD2mBA,MyD3mBA,mBAAArzH,WAAAkvD,SAAA,gBAAAlvD,WAAAkvD,QAAA,oBACAtrD,OAAAvI,eAAA,GAAAuI,QAAAvI,cAAA,oCAAA,GAIAi4H,QAAA,SAAAt3G,KACAosB,QAAAqlB,KAAA,aACA,IAAAk4B,MAAA1sF,SAAA9E,cAAA,OACAwxF,MAAA7vF,KAAA,WACA6vF,KAAA+U,IAAA,aACA/U,KAAAr4E,KAAA0O,IACA/iB,SAAA1E,qBAAA,QAAA,GAAAC,YAAAmxF,OAMA4tC,KAAA,SAAAnnF,OAAAonF,WAAAvpE,UAAArT,QAEA,GAAA56B,IAEA,IAAA,gBAAAowB,SAAA,gBAAAonF,aAAA,gBAAAvpE,WACA,KAAA,IAAA17B,WAAA,yCAUA,OAPAvS,KAAAla,QAAAs9F,SAAAn1C,UAAA,IAAAupE,WAAA,IAAApnF,OAEAn+B,EAAA+nB,SAAA4gB,QACA56B,KAAA,IAAA46B,OACA3oC,EAAAjM,cAAA40C,UACA56B,KAAA,IAAA9b,EAAAkf,MAAAw3B;AAEA56B,AzD4kBA,KyDxkBA,OAAA41G,WCxRA5qG,OAAA,6CACA,SACA,WACA,SAAA/Y,EAAA8jC,SACA,YAiCA,SAAA/F,WAAA5T,QACA,GAAAs5B,WAQA,OAPAzjD,GAAAikB,QAAAuhG,SAAA,SAAAx9H,MAAAgU,MACA,GAAA,mBAAAmuB,QAAAnuB,MACAynD,QAAAznD,MAAAmuB,OAAAnuB,UACA,IAAAhU,MACA,KAAA,IAAA+N,OAAA,qBAAAiG,KAAA,oBAGAgE,EAAA6f,SAAA4jC,QAAA+L,WAaA,QAAAi2D,eAAAt7F,QAEA,GAAAs5B,SAAA1lB,UAAA5T,OAUA,OAPAs5B,SAAAlvC,QACAkvC,QAAAlvC,SAAA,IAEAkvC,QAAAlvC,QAAA2E,QASAwsG,kBAAA,WACA,MAAAjiE,SAAAkiE,gBAOAC,mBAAA,WACA,MAAAniE,SAAAoiE,iBAOAC,iBAAA,WACA,MAAAriE,SAAAgyC;A1DowBA,E0D7vBAswB,qBAAA,WACA,MAAAtiE,SAAAuiE,UAAAC,mBAAAz2D,UAAAw2D,UAAAC,mBAOAC,oBAAA,WACA,MAAAziE,SAAAuiE,UAAAG,kBAAA32D,UAAAw2D,UAAAG,kBAQAC,iBAAA,SAAAjoF,QACA,MAAA2F,SAAAwhF,KAAAnnF,OAAAhvC,KAAA42H,uBAAA52H,KAAA+2H,uBACAP,eAAAx2H,KAAAu2H,oBACAG,gBAAA12H,KAAAy2H,qBACAnwB,cAAAtmG,KAAA22H,sBAUAO,iBAAA,SAAAn2D,IAAA/xB,QACA,MAAA2F,SAAAwhF,KAAAnnF,OAAAhvC,KAAA42H,uBAAA52H,KAAA+2H,uBACAP,eAAAx2H,KAAAu2H,oBACAG,gBAAA12H,KAAAy2H;AACAU,A1D2tBA,kB0D3tBAn3H,KAAA22H,mBACAS,eAAAr2D,OAUAs2D,gBAAA,SAAAt2D,IAAAI,QACA,MAAAxsB,SAAAwhF,KAAAh1D,OAAAnhE,KAAA42H,uBAAA52H,KAAA+2H,uBACAP,eAAAx2H,KAAAu2H,oBACAG,gBAAA12H,KAAAy2H,qBACAU,kBAAAn3H,KAAA22H,mBACAS,eAAAr2D,OAQAu2D,WAAA,WACA,MAAAhjE,SAAAlvC,SAOAmyG,uBAAA,WACA,GAAAC,eAAAljE,QAAAuiE,UAAAW,kBACA3qE,UAAA2qE,cAAA3qE,WAAA7sD,KAAA+2H,sBACAX,WAAAoB,cAAApB,YAAAp2H,KAAA42H,uBACA5nF,OAAAwoF,cAAAxoF,OAIA6B,QAAA8D,QAAAwhF,KAAAnnF,OAAAonF,WAAAvpE;AACA2pE,A1DmrBA,e0DnrBAx2H,KAAAu2H,oBACAG,gBAAA12H,KAAAy2H,qBACAnwB,cAAAtmG,KAAA22H,qBAIAn9E,OAAA3oC,EAAA/L,MAAA0yH,cAAAh+E,YACA3I,QAAA2mF,cAAA3mF,SAAAA,SAaA,OATA2I,QAAAp0B,QACAo0B,OAAAp0B,SAAA,IAEAo0B,OAAAp0B,QAAAkvC,QAAAlvC,QAEAo0B,OAAAhxB,WACAgxB,OAAAhxB,UAAA,MAIAvP,QAAAu+G,cAAAv+G,QACAvgB,KAAA8+H,cAAA9+H,KACA8gD,OAAAA,UA5LA,GAAA6mB,YACAw2D,WACAC,kBAAA,SACAE,iBAAA,eASAX,UACAG,gBAAA,EACAE,iBAAA,EACApwB,eAAA,EACAuwB,WAAA,EACAzxG,SAAA,EAiLA,OAAAkxG,iBC7MA1sG,OAAA,2CACA,SACA,SACA,OACA,eACA,oBACA,UACA,6CACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAgH,QAAA2L,oBAAAsG,QAAA2hF;AACA,A3D21BA,Y2D/0BA,SAAAtlF,SAAAhpC,MAAA4W,IAAA46B,OAAA91B,YAAA+zG,SAGA,GAAAC,gBAAA,WACA,MAAA,IAAAh1F,SAAA,SAAAt5B,QAAAC,QACA,GAEAinC,OAFAprB,WACA0rB,aAAA5oC,MAAAw4D,iBAEAi3D,WACAnnF,MAAAM,aAAAL,WACAD,QACAprB,QAAA,gBAAAorB,QAGAxtC,EAAA6b,MACAC,IAAAA,IACAlmB,KAAA8gD,OAAA,OAAA,MACAvtC,OAAA,EACApW,KAAA2jD,OACAt0B,QAAAA,QACA1d,OAAA,EACA9J,SAAA,OACAgmB,YAAAA,aAAAqG,OACA3E,QAAApd,MAAA2vH,cAAAL,eAEA92H,KAAA,SAAA3K,MACAA,MAAAA,KAAAy6C,OACAM,aAAAH,SAAA56C,KAAAy6C,OAGAz6C,MAAAA,KAAAwtB,QACAja,QAAAvT,MAEAwT,OAAAxT,QAGA6K,KAAA,SAAA2wC,MAAAC,WAAAC,aACA,GAAA17C,KACA,KACAA,KAAAqR,KAAAC,MAAAkqC,MAAAjuB;A3DyyBA,C2DxyBA,MAAAhuB,GACAS,MACAwtB,SAAA,EACA/f,OAAA,UACAkuC,QAAA,QACA9sC,QAAA1E,KACAyxC,KAAAJ,MAAA5sB,OACA/rB,KAAA44C,YAAA,QACApW,QAAAqW,aAAA7V,GAAA,uBAIA7lC,KAAAy6C,OACAM,aAAAH,SAAA56C,KAAAy6C,OAGAjnC,OAAAxT,UAMA,OAAA4hI,YAAA,EACAC,iBAIA1vH,MAAA4vH,gBAMA,GAAAl1F,SAAA,SAAAt5B,QAAAC,QAEA,GAAAwuH,YAAA,WACA,GAAAjjI,GAAA8iI,gBACA1vH,OAAA4vH,gBAAAhjI,EACAA,EAAAuU,KAAAC,SAAAxU,SAAAyU,QAIArB,OAAA4vH,gBAAAzuH,KAAA0uH,YAAA7vH,SAAA6vH,eAdA7vH,MAAA4vH,gBAAAF,iBACA1vH,MAAA4vH,iBAsBA,GAAAE,kBAOAF,gBAAA,KAaAx1H,KAAA,SAAA44B,OAAAwe,QACA,GAAA4mB,YAAAplC,UAMA,OAHAh7B,MAAA23H,cAAArB,cAAAl2D;AAGApvB,A3D2tBA,Q2D3tBAhxC,KAAAA,KAAA23H,cAAAV,iBAAA,QAAAz9E,SAQA9K,QAAA,WAMA,MAJA1uC,MAAA23H,cAAA,KACA33H,KAAA43H,gBAAA,KAGAl1F,QAAAt5B,WAQAoqD,YAAA,WACA,MAAAxiB,SAAAhxC,KAAAA,KAAA23H,cAAAV,iBAAA,iBAQAvjE,eAAA,WACA,MAAA1iB,SAAAhxC,KAAAA,KAAA23H,cAAAV,iBAAA,oBAQArjE,WAAA,WACA,MAAA5iB,SAAAhxC,KAAAA,KAAA23H,cAAAV,iBAAA,gBAUAr2D,cAAA,SAAAC,WACA,MAAA7vB,SAAAhxC,KAAAA,KAAA23H,cAAAV,iBAAA,mBAAA7uB,UAAAlhG,KAAAo0B,UAAAulC,cAUAC,eAAA,SAAA9xB,OAAAwK,QACA,MAAAxI,SAAAhxC,KAAAA,KAAA23H,cAAAV,iBAAAjoF,QAAAwK;A3D6pBA,E2DppBAkb,QAAA,SAAAqM,KACA,MAAA/vB,SAAAhxC,KAAAA,KAAA23H,cAAAT,iBAAAn2D,IAAA,aAWAC,WAAA,SAAAD,IAAAnjE,MAAAwnC,SAAAoU,QACA,GAAAp+C,MAAA8L,KAAAo0B,UAAAzqB,EAAA/L,OACAkjG,UAAApqG,MACAm6H,aAAA3yF,UACAoU,YAEA,OAAAxI,SAAAhxC,KAAAA,KAAA23H,cAAAT,iBAAAn2D,IAAA,cAAA3lE,KAAA,qBAWA6lE,eAAA,SAAAF,IAAA/xB,OAAAwK,QACA,MAAAxI,SAAAhxC,KAAAA,KAAA23H,cAAAT,iBAAAn2D,IAAA/xB,QAAAwK,SAYA0nB,UAAA,SAAAH,IAAAI,OAAA3nB,QACA,MAAAxI,SAAAhxC,KAAAA,KAAA23H,cAAAN,gBAAAt2D,IAAAI,QAAA3nB,OAAA,MAAA,IAOAknB,iBAAA,WACA,GAAA1lC,QAAAh7B,KAAA23H,cAAAJ,wBACA,OAAAv8F,QAAA/hB,QACAo1B,oBAAArT,OAAAtiC,KAAAsiC,OAAAwe,QAEA;A3D8lBA,E2D1lBA,OAAAs+E,mBCvQAluG,OAAA,qBACA,SACA,gBACA,SAAA/Y,EAAA6xB,SACA,YAQA,OAAA,UAAAs1F,iBAEA,GAAAlmE,YACAmmE,WACAC,YAMAC,QAUArgI,IAAA,SAAAijC,OAAAs0B,SAAArvC,UACA,IAAAnP,EAAA+nB,SAAAmC,QACA,KAAA,IAAA5J,WAAA,gCAEA,KAAAtgB,EAAA+nB,SAAAy2B,UACA,KAAA,IAAAl+B,WAAA,oCAcA,OAXA8mG,SAAA5oE,UAAA4oE,QAAA5oE,cAEAx+C,EAAA4nB,SAAAzY,UACAi4G,QAAA5oE,UAAArvC,UAAA+a,OAEA,YAAA/a,UAAA,WAAAA,SACAi4G,QAAA5oE,UAAAxyD,QAAAk+B,QAEAk9F,QAAA5oE,UAAAxvD,KAAAk7B,QAGA/6B,MAUA4d,OAAA,SAAAmd,OAAAs0B,UACA,MAAArvD,MAAAlI,IAAAijC,OAAAs0B;A5DoyBA,E4D1xBAjxC,QAAA,SAAA2c,OAAAs0B,UACA,MAAArvD,MAAAlI,IAAAijC,OAAAs0B,SAAA,WASAh0D,OAAA,SAAA0/B,QAEA,MADAm9F,UAAAr4H,KAAAk7B,QACA/6B,MAOA0U,KAAA,WACA,MAAA,IAAAguB,SAAA,SAAAt5B,QAAAC,QAEA,GAAA+uH,cAAAvnH,EAAAonH,SAAAnhG,SAAAjC,UAAAgC,OAAAjC,WAAAsjG,UAAAr/H,OAEA,OAAAu/H,cAAAphI,WAEAinC,SAAAm6F,aAAA,WACA,GAAAC,kBAAA3+H,MAAAlD,KAAAsP,UACA+K,GAAAikB,QAAAsjG,aAAA,SAAAE,WAAAzhH,OACA,GAAA06C,QAAA8mE,cAAAxhH,OACAw4C,SAAAx+C,EAAAgnB,QAAAogG,QAAA,SAAA1pH,KACA,MAAAsC,GAAA/W,SAAAyU,IAAA+pH,aAEAznH,GAAAva,WAAAi7D,SAAA1gD,EAAA+nB,SAAAy2B,YACAyC,QAAAzC,UAAAyC,QAAAzC,cACAyC,QAAAzC,UAAAxvD,KAAA0xD,WAGAnoD;A5DqvBA,E4DnvBAC,YAGAD,cAUAkoD,WAAA,SAAAjC,UACA,MAAAx+C,GAAA+nB,SAAAy2B,UACAyC,QAAAzC,cAEAx+C,EAAAihD,SAAAh7B,SAAAjC,UAAAgC,OAAAh+B,SAOA0/H,cAAA,WACA,MAAA1nH,GAAAwhB,KAAAy/B,UAqBA,OAhBAjhD,GAAAikB,QAAAkjG,gBAAA,SAAAQ,WAAAnpE,UACA,IAAAx+C,EAAA+nB,SAAAy2B,UACA,KAAA,IAAAl+B,WAAA,oCAGA,KAAAtgB,EAAA3U,QAAAs8H,cAAA3nH,EAAA2oB,IAAAg/F,WAAA3nH,EAAAva,YACA,KAAA,IAAA66B,WAAA,wCAGA2gC,SAAAzC,UACAyC,QAAAzC,UAAAyC,QAAAzC,UAAA7wD,OAAAg6H,YAEA1mE,QAAAzC,UAAAmpE,aAIAL,UCjKAvuG,OAAA,YACA,SACA,SACA,mBACA,SAAA9mB,EAAA+N,GACA,YAUA,SAAA4nH,QAAA/lC;A7Dw1BA,A6Dv1BA,MAAAA,mBAAA5vF,GAAA4vF,QAAA5vF,EAAA4vF,SATA,GAAAgmC,aAAA,QAeA,QAOA52H,KAAA,SAAA4wF,SACA,MAAA+lC,QAAA/lC,SAAAtkF,YAAAsqH,cAQA32H,KAAA,SAAA2wF,SACA,MAAA+lC,QAAA/lC,SAAAvkF,SAAAuqH,cAQApiH,OAAA,SAAAo8E,SACA,MAAA+lC,QAAA/lC,SAAArkF,YAAAqqH,cAUAC,SAAA,SAAAjmC,QAAAkmC,MACA,GAAAC,MAAAJ,OAAA/lC,QACA,OAAAkmC,MAGAC,KAAAvqH,SAAAoqH,cAAA,SAAAG,KAAAh/H,IAAA,YAAA,WAAAg/H,KAAAh/H,IAAA,cAFAg/H,KAAAvqH,SAAAoqH,iBCrCA9uG,OAAA,eACA,SACA,iBACA,gBACA,SAAA/Y,EAAAo0B,UAAAvC,SACA,YAoBA,SAAAwvB,eAAAvtB,SAAAjU,UACA,GAAAi9B,WAEA,KAAA98C,EAAAjM,cAAA+/B,YAAA9zB,EAAA+nB,SAAA+L,SAAA93B,OAAAgE,EAAAynB,QAAAqM,SAAA93B,QAAAgE,EAAAva,WAAAquC,SAAAviC,MACA,KAAA,IAAA+uB,WAAA;AAeA,A9DoyBA,M8DhzBAw8B,YAAAhpB,SAAA93B,KAEA6jB,SAAAA,aAUA,SAAA+tE,KAAAhtC,WAAAz2B,QACA,GAAAu2B,QAAAn7C,SAEAm4B,UAEAuqF,gBAGA,KAAAjoH,EAAA6nB,SAAA+lE,QAAA5tF,EAAAva,WAAAmoG,KAAA3oF,MAAAjF,EAAAva,WAAAmoG,KAAAn4F,SACA,KAAA,IAAA6qB,WAAA,oDA8QA,OA3QA6J,QAAAnqB,EAAA6f,SAAAsK,WAAAtK,UAMA6gC,QAMAwnE,QAAA,WACA,GAAAt2F,MAAAziC,IAEA,OAAAoW,UAAA,WAAAjN,KAAA,WACAs5B,KAAAn8B,QAAA,cASAlE,KAAA,SAAAsnB,SACA,GAAA+Y,MAAAziC,IAOA,OANAuuC,WAEA7kB,UACAovG,cAAApvG,SAGAtT,SAAA,OAAAsT,SAAAvgB,KAAA,WACAs5B,KAAAgM,SAAA,QAAA,GACAnoC,QAAA,WAQAyrD,OAAA,WACA,GAAAtvB,MAAAziC,IAEA,OAAAoW,UAAA,UAAAjN,KAAA;AACAs5B,A9D0uBA,K8D1uBAgM,SAAA,SAAA,GACAnoC,QAAA,UACAA,QAAA,YAQA0rD,OAAA,WACA,GAAAvvB,MAAAziC,IAEA,OAAAoW,UAAA,UAAAjN,KAAA,WACAs5B,KAAAgM,SAAA,UAAA,GACAnoC,QAAA,aAQAooC,QAAA,WACA,GAAAjM,MAAAziC,IAEA,OAAAoW,UAAA,WAAAjN,KAAA,WAEA6xB,UACAuT,UAEA9L,KAAAgM,SAAA,QAAA,GACAhM,KAAAn8B,QAAA,cAaAA,QAAA,SAAAuG,MACA,GAAAw4B,SAAA3rC,MAAAlD,KAAAsP,UAAA,EAEA,OADA24F,MAAAn4F,QAAAT,MAAA44F,MAAA,UAAA5xF,KAAA,IAAA8gD,WAAA4D,QAAA/yD,OAAA6mC,OACArlC,MAOAg5H,QAAA,WACA,MAAAv6B,OAOAtsC,cAAA,WACA,MAAAV,aAOA7iB,UAAA,WACA,MAAA5T,SASAi+F,UAAA,SAAApsH,KAAAhU,OAMA,MALAgY,GAAAjM,cAAAiI,MACAmuB,OAAAnqB,EAAA6f,SAAA7jB,KAAAmuB,QAEAA,OAAAnuB,MAAAhU;AAEAmH,A9DopBA,M8D3oBAwuC,SAAA,SAAA3hC,MACA,QAAA0hC,OAAA1hC,OAWA4hC,SAAA,SAAA5hC,KAAAmN,QACA,IAAAnJ,EAAA+nB,SAAA/rB,OAAAgE,EAAAynB,QAAAzrB,MACA,KAAA,IAAAskB,WAAA,6BAIA,OAFAod,QAAA1hC,QAAAmN,OAEAha,MAQAk5H,WAAA,WACA,MAAAJ,gBAUAK,WAAA,SAAAzvG,SAGA,MAFAovG,eAAApvG,QAEA1pB,MAQAmtC,QAAA,WACA,MAAAwgB,aAOA7rD,KAAA,WACA,GAAA2gC,MAAAziC,IAEA,OAAAoW,UAAA,QAAAjN,KAAA,WACAs5B,KAAAgM,SAAA,WAAA,GACAnoC,QAAA,WAQAvE,KAAA,WACA,GAAA0gC,MAAAziC,IAEA,OAAAoW,UAAA,QAAAjN,KAAA,WACAs5B,KAAAgM,SAAA,WAAA,GACAnoC,QAAA,WAQAs3F,OAAA,WACA,GAAAn7D,MAAAziC,IAEA,OAAAoW,UAAA,UAAAjN,KAAA,WACAs5B,KAAAgM,SAAA,WAAA,GACAnoC,QAAA;A9DqjBA,I8D7iBAqC,QAAA,WACA,GAAA85B,MAAAziC,IAEA,OAAAoW,UAAA,WAAAjN,KAAA,WACAs5B,KAAAgM,SAAA,WAAA,GACAnoC,QAAA,eAYA8P,SAAA6uB,UAAAssB,OAAA5sB,UACAc,YAAA,EACAD,QAAA,SAAAJ,UACA,MAAA1C,SAAAt5B,QAAAg8B,aAKAv0B,EAAA+nB,SAAAlI,SAAA0oG,YAAAvoH,EAAAynB,QAAA5H,SAAA0oG,YACA7nE,OAAA,MAAA7gC,SAAA0oG,SAAA5/H,OAAA,GAAAC,cAAAi3B,SAAA0oG,SAAA1/H,MAAA,IAAA63D,OAAAynE,SAGAznE,QAIA,MAAAW,iBCtWAtoC,OAAA,0BAAA,SAAA,eAAA,SAAA/Y,EAAAqhD,eACA,YAMA,OAAArhD,GAAAmlB,aAAAk8B,eAEAknE,SAAA,iBCzBAxvG,OAAA,iEAAA,cAAA,SAAAmuB;AACA,AhEk4BA,MgEl4BAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAMA,MALAmK,MAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,SAIA,qCCiBA+zB,OAAA,6DACA,SACA,OACA,WACA,yBACA,iEACA,SAAA9mB,EAAA44B,GAAA29F,MAAAnnE,cAAAonE,cACA,YAMA,IAAAC,eAAA,SAAAtpE,YACAntD,EAAA,IAAAmtD,YAAAprD,KAAA,SAAA,UAMA,OAAAqtD,gBACArlD,KAAA,cAKAzK,KAAA,WACA,GAAAqgC,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,eAEAz5H,MAAA6xC,SAAA/uC,EAAAw2H;AAEAt5H,AjE40BA,KiE50BA+B,OAGAy3H,WACA1jH,GAAA,QAAA,WACA2sB,KAAA1gC,SAEA+T,GAAA,kBAAA,SAAAmyF,SACAA,UACAxlE,KAAAoP,SAAArzB,KAAAypF,SACAsxB,cAAA92F,KAAAoP,UAGA2nF,WAAAlzH,QAAA,kBAGAwP,GAAA,aAAA,WACA2sB,KAAA3gC,SAEAgU,GAAA,aAAA,WACA2sB,KAAA1gC,OACA0gC,KAAAoP,SAAAxwC,WAOA0wD,OAAA,WAGA,GAAA9B,YAAAjwD,KAAAmyD,gBAAAg2C,gBACAl4C,YAAA5xC,OAAAre,KAAA6xC,WAMAnD,QAAA,WACA1uC,KAAA6xC,SAAAx2C,UAMAuiG,OAAA,WACA59F,KAAA6xC,SAAA5jC,WAAA,YACAG,YAAA,aAMAzF,QAAA,WACA3I,KAAA6xC,SAAA7jC,KAAA,YAAA,GACAG,SAAA,aAMArM,KAAA,WACAu3H,MAAAv3H,KAAA9B,KAAA6xC,WAMA9vC,KAAA;AACAs3H,AjEwwBA,MiExwBAt3H,KAAA/B,KAAA6xC,eCvGAjoB,OAAA,qDACA,SACA,OACA,0BACA,SAAA9mB,EAAA44B,GAAAw2B,eACA,YAKA,OAAAA,gBACArlD,KAAA,UAKAzK,KAAA,WACA,GAAAqgC,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,eAEAz5H,MAAA6xC,SAAA/uC,EAAA,WACA9C,KAAA6xC,SAAA/7B,GAAA,gFAAA,SAAA1gB,GACAA,EAAAmgB,2BACAngB,EAAAge,mBAGA,IAAAsmH,QAAA,WACAj3F,KAAAm7D,UAEA+7B,SAAA,SAAAtnE,SACA5vB,KAAA95B,UAIA6wH,YACA1jH,GAAA,cAAA4jH,QACA5jH,GAAA,wBAAA6jH,WAMA5nE,OAAA,WACA,GAAA6nE,cAAA55H,KAAAy5H,gBAAAtnE,gBAAAg2C;AACAyxB,AlEo0BA,akEp0BAr7G,MAAAve,KAAA6xC,WAOAnD,QAAA,WACA1uC,KAAA6xC,SAAAx2C,UAMAuiG,OAAA,WACA,GAAA47B,YAAAx5H,KAAAy5H,gBACA9nE,SAAA6nE,WAAAhmE,kBACAqmE,WAAAloE,SAAA32B,WACA8+F,cAAAD,WAAA/nE,YACAioE,cAAAD,cAAAza,WAEAr/G,MAAA6xC,SAAA1jC,SAAA,WAEA4rH,cAAAC,MACAh6H,KAAA6xC,SAAA1jC,SAAA,iBAOAxF,QAAA,WACA3I,KAAA6xC,SAAAzjC,YAAA,yBAMAtM,KAAA,WACA9B,KAAA49F,UAMA77F,KAAA,WACA/B,KAAA2I,eChHAihB,OAAA,0BAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D;AnEi4BA,AmE/3BA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAMA,OALAA,SAAA,mCACAiC,OAAAlW,QAAAjrB,SAAAokC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAnkC,QAAAokC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBAXA5oD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IAqBA,OARA4oD,SAAA,kHACAiC,OAAAlW,QAAAzZ,SAAA4yB,OAAAjD,OAAAr0D,KAAAq3D;AnEs3BA,AmEt3BAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3yB,QAAA4yB,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,mBACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAnkC,SAAA0rB,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,wECxBAh/B,OAAA,6BAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAoBA,OAnBAA,SAAA;ApEg4BA,CoE/3BAiC,OAAAlW,QAAAj8C,MAAAo1D,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAn1D,KAAAo1D,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,WACAjD,OAAAlW,QAAA3vC,IAAA8oD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA7oD,GAAA8oD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,oBACAjD,OAAAlW,QAAA3vC,IAAA8oD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA7oD,GAAA8oD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA;ApEq3BA,AoEp3BAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAqsE,MAAA9kF,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA+iF,SAAAtkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,SACAjD,OAAAlW,QAAAkzD,OAAA/5C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAg6C,MAAA/5C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,cAGA,QAAAqsE,UAAAtsE,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAMA,OALAA,SAAA,sBACAiC,OAAAlW,QAAAulF,MAAApsE,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAqsE,KAAApsE,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D;ApEw2BA,AoEv2BAjC,QAAAjV,iBAAAma,QACA,aAnCA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAlF,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IAwCA,OAHA8tD,QAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAAkwD,SAAA3oE,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,SClCAh/B,OAAA,oBAAA,SAAA,UAAA,SAAA9mB,EAAA+N,GACA,YAKA,IAAAupH,aAUAtrH,QAAA,SAAAurH,OAAAxsF,GAAA/+B,SACA,MAAA9O,MAAAnL,KAAA,WACA,GAAAgkI,MAAA/1H,EAAA9C,MACAs6H,eAAAzB,KAAAhjI,KAAAwkI,OACAC,iBACAzB,KAAAhjI,KAAAwkI,OAAAxpH,EAAA/L,MAAAw1H,eAAAxrH;ArE82BA,IqE91BAnG,QAAA,SAAA0xH,OAAAxsF,IACA,MAAA7tC,MAAAnL,KAAA,WACA,GAAAgkI,MAAA/1H,EAAA9C,MACA8O,QAAA+pH,KAAAhjI,KAAAwkI,OACAvrH,UACA+pH,KAAA1qH,SAAAW,QAAAyrH,cAAA,YACAj0H,QAAA,WAAAunC,OAcA+vD,OAAA,SAAAy8B,OAAAxsF,IACA,MAAA7tC,MAAAnL,KAAA,WACA,GAAAgkI,MAAA/1H,EAAA9C,MACA8O,QAAA+pH,KAAAhjI,KAAAwkI,OACAvrH,UACA+pH,KAAAzqH,YAAAU,QAAAyrH,cAAA,YACAj0H,QAAA,UAAAunC,QAUA2sF,aAYA7uE,SAAA,SAAAgC,WAAA4D,OAAAv2B,QACAA,OAAAA,UACA,IAAA6S,IAAA7S,OAAA6S,IAAA8f,WAAAp4D,cACA8kI,OAAAr/F,OAAAq/F,QAAA,MAAAxsF,GACA4sF,OAAAz/F,OAAAy/F,UAGA,OAAA5pH,GAAAva,WAAAwM,EAAAO,GAAAsqD,aACA7qD,EAAAjF,MAAA,kBAAA8vD,WAAA,0BAEA98C,EAAAjM,cAAA2sD,SAAA1gD,EAAAva,WAAAi7D,OAAAnvD,OAKAyO,EAAAqjB,OAAAq9B,OAAA1gD,EAAA8lB,UAAAyjG,WAAA,SAAA/nH,OAAArE,KAAAq9B;AACAx6B,ArE+xBA,EqE/xBAva,WAAA0X,QACAqE,OAAAg5B,KAAAx6B,EAAAklB,QAAAqkG,WAAA/uF,KAAAgvF,OAAAxsF,QAKAh9B,EAAAikB,QAAA2lG,OAAA,SAAAC,cACA,GAAAC,eAAAD,aACAE,aAAAF,YACA,MAAAhlI,KAAA+kI,QAGAG,aAAAA,aAAAvlI,QAAA,KAAA,IAFAslI,cAAA,IAAAA,cAMA9pH,EAAAva,WAAAi7D,OAAAopE,kBAAA9pH,EAAAva,WAAAi7D,OAAAqpE,iBACArpE,OAAAqpE,cAAA,WACA,GAAAzlH,aACAkwB,KAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EAKA,OAJA9F,MAAAnL,KAAA,WAEAsgB,YAAAo8C,OAAAopE,eAAA90H,MAAA0rD,QAAAzuD,EAAA9C,OAAAxB,OAAA6mC,SAEAlwB,aAAAnV,cAQA8C,EAAAO,GAAAsqD,YAAA,SAAAxf,QACA,GAAAojB,OAAApjB,QAAA,CACA,IAAA,KAAAz4C,KAAAy4C,QAGA,MAAAojB,QAAApjB,QAAAtoC,MAAA7F,KAAA+C,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA;AAFAhD,ArE6vBA,EqE7vBAjF,MAAA,oCAAAswC,OAAA,SAIA,IAAA,gBAAAA,UAAAA,OACA,MAAAojB,QAAAnvD,KAAAyD,MAAA7F,KAAA8F,UAEAhD,GAAAjF,MAAA,UAAAswC,OAAA,gCA/CArrC,EAAAjF,MAAA,4FAoDA,OAAA28H,eCzJA5wG,OAAA,wBAAA,SAAA,UAAA,SAAA9mB,EAAA+N,GACA,YAEA,IAAA6f,WACAwmB,WAAA,EACA2jF,cAAA,QACAC,WAAA,EACAC,SAAA,GAKAC,cACA,SAAA,aAQAC,qBAAA,SAAApC,MACA,OAAAA,KAAA9lH,GAAAioH,aAAAj1H,KAAA,OA0BAm1H,gBAAA,SAAA1T,SAAA14G,SAEA,GAAA2zB,MAAAziC,IACAA,MAAA8O,QAAA+B,EAAA6f,SAAA5hB,QAAA4hB;AACA,AtEu1BA,GsEv1BAxrB,UAAA,SAAAsiH,SAAA,GAGA,OAAA32G,GAAAhI,IAAA7I,KAAA8O,QAAA,cAAA+B,EAAA+nB,SAAA54B,KAAA8O,QAAAwC,YAIAtR,KAAA8O,QAAAooC,WAAAl3C,KAAA8O,QAAAooC,UAAAhyC,WACAA,SAAAlF,KAAA8O,QAAAooC,UAAAhyC,SAAA,IAAAA,UAGAlF,KAAA8O,QAAAqsH,QACAj2H,UAAA,IAAAlF,KAAA8O,QAAAqsH,WAIAr4H,GAAAjH,UACA0K,IAAAvG,KAAA8O,QAAA+rH,cAAA31H,UACA4Q,GAAA9V,KAAA8O,QAAA+rH,cAAA31H,SAAA,SAAA9P,GAEA,GAAAyjI,MAAA/1H,EAAA1N,EAAAkd,OACA,IAAAmwB,KAAA3zB,QAAAisH,WAAA,GAAAlC,KAAA9lH,GAAA7N,UAAA,CACA,GAAAk2H,SAAAC,MAEAtxG,UAAA8uG,KAAAhjI,KAAA2xH,YAAA/kF,KAAA3zB,QAAAqsH,OAAA14F,KAAA3zB,QAAAisH,WACAM,OAAAxC,KACAA,KAAAA,KAAAl9G,QAAA,SAAA6rG,SAAA,MAGA4T,QAAA34F,KAAA3zB,QAAAgsH,aAAA,EAAAI,gBAAAI,UAAA9T,SAAAqR,MAAAp2F,KAAA3zB,QAAAqsH,MAAAE,OAAAtxG;AAGA8uG,AtEwzBA,KsExzBAhjI,KAAA4sC,KAAA3zB,QAAAwC,aACA,kBAAAmxB,MAAA84F,cACA94F,KAAA84F,aAAA1C,KAAAuC,SAIAvC,KAAA9lH,GAAA,WAAA8lH,KAAAh0H,KAAA,SACA/B,EAAA,gBAAA+1H,KAAAh0H,KAAA,QAAA,MAAAmU,IAAA6/G,MAAA/iH,GAAA2sB,KAAA3zB,QAAA+rH,cAAA,SAAAzlI,GACA,kBAAAqtC,MAAA+4F,kBACA/4F,KAAA+4F,iBAAA3C,KAAAuC,SAEAH,qBAAApC,OACAzjI,EAAAqd,oBAOA,kBAAAgwB,MAAA+4F,kBACA/4F,KAAA+4F,iBAAA3C,KAAAuC,SAMAH,qBAAApC,OACAzjI,EAAAqd,qBAvDA3P,EAAAjF,MAAA,gDAwHA,OArDAq9H,iBAAA/4H,UAAAC,KAAA,SAAAlI,IAIA,MAFA8F,MAAAu7H,aAAArhI,GAEA8F,MAQAk7H,gBAAA/4H,UAAAmE,QAAA,SAAApM;AAIA,AtEkwBA,MsEpwBA8F,MAAAw7H,iBAAAthI,GAEA8F,MAWAk7H,gBAAAI,UAAA,SAAA9T,SAAAqR,MACA,GAAA4C,eAAA,sBACAL,WACAM,eAAA7C,KAAAh0H,KAAA,QAAA2iH,WAAAqR,KAAAh0H,KAAA,SAAAg0H,KAAAh0H,KAAA,WACA,KAAAgM,EAAAynB,QAAAojG,gBAAA,CAEA,GAAA1oH,SAAAyoH,cAAAnhI,KAAAohI,eACA,IAAA,OAAA1oH,QAAA,CACA,GAAA9N,UAAAw2H,eAAArmI,QAAAomI,cAAA,GAEAL,SADA,YAAApoH,QAAA,IAAA,MAAAA,QAAA,GACA6lH,KAAAl9G,QAAAzW,UACA,MAAA8N,QAAA,GACA6lH,KAAA78G,SAAA9W,UACA,MAAA8N,QAAA,GACA6lH,KAAAx9G,KAAAnW,UAEApC,EAAAoC,SAAA2zH,UAGAuC,SAAAt4H,EAAA44H,gBAGA,MAAAN,UAIAF,kBCpKAtxG,OAAA,YAAA,SAAA,mBAAA,wBAAA,SAAA9mB,EAAA03H,YAAAU;AvEk4BA,AuEj4BA,YAUA,IAAAvtE,YAAA,QACA0sE,OAAA,MAAA1sE,WAEAj9B,UACAirG,gBAAA,cACAC,kBAAA,WACAC,aAAA,EACAC,gBAAA,EACAtgI,MAAA,aACAulB,SAAA,EACAmqF,UAAA,EACA6wB,SAAA,EACAC,SAAA,KACAz0G,QAAA,KAIA00G,YAAA,IAEA7d,OAgBAh8G,KAAA,SAAA0M,SAcA,MAXAA,SAAAhM,EAAA/K,QAAA,KAAA24B,SAAA5hB,SAGAA,QAAAyY,UACA,gBAAAzY,SAAAyY,QACAzY,QAAAyY,QAAAmJ,SAAAnJ,QAEAzY,QAAAyY,QAAAhtB,KAAAC,IAAAyhI,YAAAntH,QAAAyY,UAIAzkB,EAAA9C,MAAAnL,KAAA,WACA,GAAAqnI,QAAAp5H,EAAA9C,KAQA,IANA8O,QAAAqtH,aAAA,eAAAD,OAAAr3H,KAAA,QAAA,GAAAqD,OAAAC,WAGA+zH,OAAArmI,KAAAwkI,OAAAvrH,SAGA,IAAAhM,EAAA,IAAAgM,QAAAqtH,cAAAnlI,OAAA,CACA,GAAAolI,UAAAt5H,EAAA,UAAA+B;AvE6zBA,AuE7zBAG,GAAA8J,QAAAqtH,aAAA9sH,QAAAP,QAAA8sH,mBACA9sH,SAAAktH,mBAAAl5H,IAAAgM,QAAAktH,SAAAhlI,QAEAolI,SAAAviI,IAAA,WAAA,YACAiV,QAAAktH,SAAAp+G,OAAAw+G,WAGAF,OAAA39G,MAAA69G,UAKA,IAAAt5H,EAAA,IAAAgM,QAAA6sH,gBAAAO,QAAAllI,QAAA8X,QAAAgtH,gBACAh5H,EAAA,eAAAgM,QAAA6sH,gBAAA,4CAAAxgI,SAAA+gI,QAGAptH,QAAA+sH,aACAzd,MAAAie,MAAAH,QAOAA,OAAA51H,QAAA,UAAAqnD,eASA2uE,SAAA,SAAAzqF,UACA,MAAAA,UAAAh9C,KAAA,WACA,GAAAqnI,QAAAp5H,EAAA9C,MACA8O,QAAAotH,OAAArmI,KAAAwkI,OAEA6B,QAAAl6H,WAAAq4H,QACAv3H,EAAA,IAAAgM,QAAAqtH,cAAA9gI,SACA6gI,OAAAn6H,OAMA8vC,SAAAvrC,QAAA,aAAAqnD;AvEgxBA,IuEvwBA4uE,YAAA,SAAA1qF,UACA,GAAA/iC,SAAA+iC,SAAAh8C,KAAAwkI,OAEAvrH,WACA,eAAAA,QAAAtT,OACAsH,EAAA0D,QAAAsP,GAAA,UAAA63C,WAAA,SAAAv4D,GACAA,EAAAqd,iBACA2rG,MAAAoe,QAAA3qF,YAIA/iC,QAAAgtH,iBACAh5H,EAAA,IAAAgM,QAAA6sH,gBAAA9pF,UAAA/7B,GAAA,SAAA63C,WAAA,SAAAv4D,GACAA,EAAAqd,iBACA2rG,MAAAqe,OAAA5qF,YAGA/uC,EAAA,IAAAgM,QAAAqtH,cAAArmH,GAAA,SAAA63C,WAAA,SAAAv4D,GACAA,EAAAqd,iBACA2rG,MAAAqe,OAAA5qF,YAGA/uC,EAAAjH,UAAAia,GAAA,WAAA63C,WAAA,SAAAv4D,GACA,KAAAA,EAAAse,UACAte,EAAAqd,iBACA2rG,MAAAqe,OAAA5qF,gBAYA6qF,cAAA,SAAA7qF,UACA,GAAA/iC,SAAA+iC,SAAAh8C,KAAAwkI,OAEAvrH,UAAA,eAAAA,QAAAtT,OACAsH,EAAA0D,QAAAD,IAAA,UAAAonD;AvE+tBA,AuE5tBA9b,SAAAtrC,IAAA,SAAAonD,YAEA7+C,UAAAA,QAAAgtH,iBACAh5H,EAAA,IAAAgM,QAAA6sH,gBAAA9pF,UAAAtrC,IAAA,SAAAonD,YACA7qD,EAAA,IAAAgM,QAAAqtH,cAAA51H,IAAA,SAAAonD,YACA7qD,EAAAjH,UAAA0K,IAAA,WAAAonD,cAUA0uE,MAAA,SAAAxqF,UACA,GAGA8qF,WAAAC,OAAAR,SAAA1wD,GAHAmxD,YAAAhrF,SAAAE,cACA+qF,aAAAh6H,EAAA0D,QAAA/K,SACAqT,QAAA+iC,SAAAh8C,KAAAwkI,OAGA,oBAAAvrH,WAEA8tH,OAAA,WACA/qF,SAAA1jC,SAAA,UACAiwG,MAAAme,YAAA1qF,UAMAA,SAAAvrC,QAAA,UAAAqnD,aAIAgvE,UAAA7tH,QAAAitH,SAAAc,YAAAC,aAAA,IAAAA,aAAAD,aAAA,EACAnxD,IACAppE,QAAA,IACAyJ,IAAA4wH,UAAA,MAGAve,MAAAoe,QAAA3qF;AvEorBA,AuElrBAuqF,SAAAt5H,EAAA,IAAAgM,QAAAqtH,cAEAtqF,SAAA/vC,OAEAgN,QAAAyY,SAAAsqB,SAAA9+B,GAAA,aACA8+B,SAAAh4C,KACAkS,IAAA,IAAA8wH,YAAA,KACA5iI,QAAA,UAGAmiI,SAAAt0G,OAAAhZ,QAAAyY,QAAA00G,aACApqF,SAAAtqB,QAAAmkD,GAAA58D,QAAAyY,QAAAq1G,UAEAR,SAAAt6H,OACA+vC,SAAAh4C,IAAA6xE,IACAkxD,YAUAH,OAAA,SAAA5qF,UACA,GAAA/iC,SAAA+iC,SAAAh8C,KAAAwkI,QACA+B,SAAAt5H,EAAA,IAAAgM,QAAAqtH,cACApW,QAAA,WACAl0E,SAAAzjC,YAAA,UACAyjC,SAAAh4C,IAAA,UAAA,QAMAg4C,SAAAvrC,QAAA,UAAAqnD,YAGAywD,OAAAse,cAAA7qF,UAEA/iC,QAAAyY,SAAAsqB,SAAA9+B,GAAA,aACAqpH,SAAAr0G,QAAAjZ,QAAAyY,QAAA00G,aACApqF,SAAAtqB,SAAAjlB,QAAA,IAAAyJ,IAAA;AvEwoBA,EuExoBA+C,QAAAyY,QAAAw+F,WAEAqW,SAAAr6H,OACA8vC,SAAA9vC,OACAgkH,YASAyW,QAAA,SAAA3qF,UAEA,GAAA/iC,SAAA+iC,SAAAh8C,KAAAwkI,QACA0C,YAAA9sH,SAAAnN,EAAA0D,QAAAhL,QAAA,IACA3B,OAGAmjI,WAAA,eAAAluH,QAAAtT,MAAA,GAAAuhI,YAAA9sH,SAAAnB,QAAAtT,MAAA,GACA3B,KAAA2B,MAAAjB,KAAAC,IAAAwiI,WAAAluH,QAAAiS,UACAjS,QAAAo8F,YACArxG,IAAAqxG,UAAAj7F,SAAAnB,QAAAo8F,WAAA,MAIAr5D,SAAAh4C,IAAAA,MAiBA,OAXA2gI,aAAA7uE,SAAAgC,WAAAywD,OACAqc,QAAA,OAAA,QAAA,aAUA,SAAAxqE,YACA,GAAAirE,iBAAA,SACAhkF,UAAA+Y,WACA4qE,cAAA,QACAvpH,UAAA+oH,SACAj4H,KAAA,SAAAy2H,KAAAuC,SACAA,QAAAhd,aCvSAx0F,OAAA,aACA,SACA,SACA,OACA,yBACA,4BACA,YACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAuhG,QAAAC;AxEu3BA,AwEt3BA,YAMA,IAAAC,QAAA,SAMAC,iBACAC,IACAr4H,GAAA,KACAtM,KAAA,OACAmvG,MAAAnsE,GAAA,MACA3/B,OAAA,GAGAowG,QACAnnG,GAAA,SACAtM,KAAA,UACAmvG,MAAAnsE,GAAA,UACA3/B,OAAA,GAGAuhI,KACAt4H,GAAA,MACAtM,KAAA,OACAmvG,MAAAnsE,GAAA,OACA3/B,OAAA,GAGAwhI,IACAv4H,GAAA,KACAtM,KAAA,UACAmvG,MAAAnsE,GAAA,MACA3/B,OAAA,IAQAskE,WACAnlC,QAAA,GACAxR,QAAA,GACAluB,MAAA,IACA+rB,SAAA,EACAi2G,YAAA,EACAC,aAAA,EACA11B,SAAA,OACAgW,QAAA,aAOAQ,QAwBAn8G,KAAA,SAAA0M,SAEA,GAAA2zB,MAAAziC,KACArI,UACA+lI,YAAA7sH,EAAAglB,KAAA/mB,YAAA,SAAAjW,MAAAwyC,KACA,GAAAxV,OAAA,CAKA,OAJAwV,KAAAr0C,OAAA,GAAA,OAAAq0C,IAAA/uC,OAAA,EAAA,KACA3E,OAAA0zC,IAAA/uC,OAAA,IAAAzD,MACAg9B,MAAA,GAEAA,MA4BA,OAxBAhlB,GAAA6f,SAAA1wB,KAAA09H,YAAAr9D,WAGArgE,KAAA29H,MAAA76H,EAAAm6H,QAAAj9H;AxEixBA,AwEhxBAA,KAAA49H,SAAA59H,KAAA29H,MAAA14H,KAAA,YACAjF,KAAA69H,UAAA,EACA79H,KAAA6yD,WAAA,EAGA7yD,KAAA49H,SAAA9nH,GAAA,QAAAqnH,OAAA,SAAAn9H,KAAA89H,eAAA9nH,KAAAhW,OACAA,KAAA+9H,WAAA/9H,KAAA+9G,SAGAltG,EAAAikB,QAAAn9B,OAAA,SAAAkmC,SAAAuP,WACAA,UAAApqC,QAAA,KAAA,IACAoqC,WAAA+vF,QAEA16F,KAAA3sB,GAAAs3B,UAAA73C,cAAAsoC,YAGA79B,KAAAw9H,YACAx9H,KAAA+xD,SAGA/xD,MAQA0uC,QAAA,WAiBA,MAhBA1uC,MAAA6yD,YACA7yD,KAAAs8H,WAGAt8H,KAAA69H,UAAA,EACA79H,KAAA6yD,WAAA,EAEA7yD,KAAAsG,QAAA,UAAA62H,QAGAn9H,KAAA49H,SAAAr3H,IAAA42H,QACAn9H,KAAA29H,MAAAp3H,IAAA42H,QAAA9hI,SACA2E,KAAA29H,MAAA,KACA39H,KAAA49H,SAAA,MAGA59H,MAQA+9H,WAAA,SAAAhgB,SACA,GAAAt7E,MAAAziC,IAoCA,OAlCAA,MAAA6yD,YACAkrD,UACAA,QAAA19C,UAAA09C;AxEutBA,AwEptBAltG,EAAA3U,QAAA6hH,WAGAA,QADAltG,EAAA+nB,SAAAmlF,SACAA,QAAAjpH,MAAA,MAEAipH,UAKA/9G,KAAA+9G,WACAltG,EAAAikB,QAAAipF,QAAA,SAAAigB,KACAntH,EAAA+nB,SAAAolG,OACAA,IAAAA,IAAAxlI,OACAwlI,IAAAZ,gBAAAY,OACAh5H,GAAAg5H,IACAtlI,KAAA,OACAmvG,MAAAm2B,MAGAA,IAAAtlI,OACAslI,IAAAtlI,KAAA,WAEA+pC,KAAAs7E,QAAAigB,IAAAh5H,IAAAg5H,MAGAh+H,KAAA49H,SAAAp/G,KAAA0+G,WAAAl9H,QAGAA,MASA+xD,OAAA,SAAA2Z,IAMA,MALA1rE,MAAA6yD,YACA/vD,EAAA4oE,IAAA1rE,KAAA+nG,UAAAnqF,OAAA5d,KAAA29H,OACA39H,KAAAi+H,WACAj+H,KAAA69H,UAAA,GAEA79H,MAQA8B,KAAA,WAQA,MAPA9B,MAAA6yD,YACA7yD,KAAA69H,SAGA79H,KAAAq8H,QAFAr8H,KAAA+xD,UAKA/xD,MAQA+B,KAAA,WAQA,OAPA/B,KAAA6yD,WAAA7yD,KAAA69H,WACA79H,KAAAy8H,SAEAz8H,KAAAy9H,aACAz9H,KAAA0uC,WAGA1uC,MAQA8V,GAAA,SAAAs3B,WACA,GAAAm2D,KAAAvjG,KAAA29H;AxEgoBA,AwE3nBA,MAJAp6B,MACAA,IAAAztF,GAAAjQ,MAAA09F,IAAAz9F,WAGA9F,MAQAuG,IAAA,SAAA6mC,WACA,GAAAm2D,KAAAvjG,KAAA29H,KAKA,OAJAp6B,MACAA,IAAAh9F,IAAAV,MAAA09F,IAAAz9F,WAGA9F,MASAsG,QAAA,SAAA8mC,UAAA8wF,iBACA,GAAA36B,KAAAvjG,KAAA29H,KAgBA,OAdAp6B,OACAx5E,SAAAm0G,kBACAA,oBAEArtH,EAAA3U,QAAAgiI,mBACAA,iBAAAA,kBAGAA,gBAAAn7H,MAAAZ,UAAAzI,MAAAlD,KAAA0nI,iBACAA,gBAAAr+H,KAAAG,MAEAujG,IAAAj9F,QAAA8mC,UAAA8wF,kBAGAl+H,MAOAmjG,OAAA,WACA,MAAAnjG,MAAA29H,OASAG,eAAA,SAAAjmI,OACA,GAAA63D,MAAA5sD,EAAAjL,MAAAya,QACAtN,GAAA0qD,KAAA75D,KAAA,WACAmoI,IAAAh+H,KAAA+9G,QAAA/4G,GAEAg5H,MACAh+H,KAAAm+H,SAAAH,MAUAG,SAAA,SAAAH,KAEAA,IAAAhvF,QACAgvF,IAAAhvF,OAAAnpC,MAAA7F,MAAAg+H,IAAAh+H;AxEgjBA,AwExiBAA,KAAAsG,QAAA03H,IAAAh5H,GAAA,MAAAm4H,QAAAa,MAGAA,IAAAjiI,OACAiE,KAAA+B,QAIAq8H,iBAAA,WACA,GAAAC,QAAA3uE,IAEA2uE,QAAAv7H,EAAA,YAAA9C,KAAA49H,UACAS,OAAArnI,OACAqnI,OAAA1pH,SAGA+6C,KAAA5sD,EAAA,SAAA9C,KAAA49H,UAAAj4H,QACA+pD,KAAA14D,QACA04D,KAAA/6C,UASAspH,SAAA,WACAj+H,KAAA29H,MAAAvf,OACA5iH,MAAAwE,KAAAxE,MACA+rB,QAAAvnB,KAAAunB,UAGAvnB,KAAAo+H,oBAOA/B,MAAA,WACAr8H,KAAA29H,MAAAvf,MAAA,SAOAqe,OAAA,WACAz8H,KAAA29H,MAAAvf,MAAA,UAOAke,SAAA,WACAt8H,KAAA29H,MAAAvf,MAAA,aASAkgB,cAAA,SAAAxvH,SACA,GAAAgmC,UAAAjkC,EAAA9J,MAAAw3G,QAAA,EAEA,OADAzpE,UAAA1yC,KAAA0M,SACAgmC,SAGA,OAAAwpF,iBCzaA10G,OAAA,mBAAA,SAAA,aAAA,SAAA/Y,EAAA0tG;AzE04BA,AyEz4BA,YAQA,OAAA,UAAArjF,QAAA8T,QACA,GAAAuvF,KAAAhgB,QACArjF,QAAAA,QACA6iF,QAAA,KACAyf,YAAA,EACAC,aAAA,GAMA,OAHA5sH,GAAAva,WAAA04C,SACAuvF,IAAAzoH,GAAA,eAAAk5B,QAEAuvF,OCpBA30G,OAAA,qBAAA,SAAA,aAAA,SAAA/Y,EAAA0tG,QACA,YASA,OAAA,UAAArjF,QAAA2qB,OAAA24E,QACA,GAAAC,WAAA,EACAF,IAAAhgB,QACArjF,QAAAA,QACA6iF,QAAA,YACAyf,YAAA,EACAC,aAAA,EACAiB,QAAA,WACAD,UAAA,EACA5tH,EAAAva,WAAAuvD,SACAA,OAAArvD,KAAAwJ,QAYA,OAPA6Q,GAAAva,WAAAkoI,SACAD,IAAAzoH,GAAA,eAAA,WACA2oH,UACAD,OAAAhoI,KAAAwJ,QAIAu+H,OC7BA30G,OAAA,mDACA,SACA,OACA,yBACA,kBACA,qBACA,SAAA9mB,EAAA44B,GAAAw2B,cAAAysE,YAAAC;AACA,A3Ei4BA,Y2E53BA,OAAA1sE,gBACArlD,KAAA,SAKAzK,KAAA,WACA,GACAo3H,YAAAx5H,KAAAy5H,eAGAD,YACA1jH,GAAA,QAAA6oH,aACA7oH,GAAA,UAAA8oH,oBC5BAh1G,OAAA,yDACA,SACA,0BACA,SAAA/Y,EAAAqhD,eACA,YAMA,OAAAA,gBAEArlD,KAAA,eAKAzK,KAAA,aAOA22H,QAAA,WACA,GAAAS,YAAAx5H,KAAAy5H,eAIAD,YAAAn7G,OAAA,QAAA,SAAAjpB,EAAAS,MAYA,GAVA2jI,WAAAxmE,WAAAyN,kBACAt3D,KAAA,SAAAmlC,cACA,MAAAA,cAAAvyC,UAFAy9H,SAQA3oH,EAAAlJ,MAEAkJ,EAAA6nB,SAAA7iC,OAAAA,KAAAqlC,QAAA,CACA,GAAA16B,MAAApL,EAAAoL,OACAkE,QAAA80H,WAAA9lE;AAIAhvD,A5E61BA,S4E71BAA,QAAAkiG,SACA4yB,WAAA9mE,YAAAhuD,QAAAkiG,SAIA4yB,WAAAlzH,QAAA,QAAAzQ,KAAAqlC,QAAA,WACAs+F,WAAAlzH,QAAA,aAAA,YAAAzQ,KAAA47C,MACAjxC,iBCtDAopB,OAAA,qDACA,qBACA,0BACA,SAAA2qG,WAAAriE,eACA,YAMA,OAAAA,gBAEArlD,KAAA,UAKAzK,KAAA,WACA,GAAAo3H,YAAAx5H,KAAAy5H,eACAD,YACA1jH,GAAA,aAAA,WACAy+G,WAAAr0H,UAEA4V,GAAA,aAAA,WACAy+G,WAAAz0H,cCrBA8pB,OAAA,uDACA,SACA,OACA,yBACA,eACA,SAAA9mB,EAAA44B,GAAAw2B,cAAAqmC;AACA,A9Eo4BA,Y8E/3BA,OAAArmC,gBACArlD,KAAA,WAKAzK,KAAA,WACA,GAGAy8H,iBAEArF,WAAAx5H,KAAAy5H,gBAKAqF,aAAA,WACAD,iBACAA,gBAAA9iI,QAKAy9H,YACA1jH,GAAA,QAAA,SAAA6wB,KACA,GAAAzL,SAAAyL,IACAjuC,KAAA,OAOA,IALA,gBAAAiuC,OACAzL,QAAAyL,IAAAzL,QACAxiC,KAAAiuC,IAAAjuC,OAGAwiC,QACA,OAAAxiC,MACA,IAAA,YACAwiC,QAAAQ,GAAA,sCACA,MAEA,KAAA,eACAR,QAAAQ,GAAA,kBACA,MAEA,SACAR,QAAAQ,GAAA,sBAIAmjG,gBAAAtmC,WAAA16F,MAAAq9B,WAEAplB,GAAA,SAAA,SAAAolB,SACA2jG,gBAAAtmC,WAAAtpC,OAAA/zB,WAEAplB,GAAA,UAAA,SAAAolB,SACA2jG,gBAAAtmC,WAAAvpC,QAAA9zB;A9Ey0BA,G8Ev0BAplB,GAAA,OAAA,SAAAolB,SACA2jG,gBAAAtmC,WAAAxpC,KAAA7zB,WAEAplB,GAAA,2BAAAgpH,mBC1EAl1G,OAAA,gEACA,SACA,SACA,OACA,0BACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAw2B,eACA,YAMA,OAAAA,gBAEArlD,KAAA,eAKAzK,KAAA,aAOA22H,QAAA,WAIA,QAAAgG,cACAvF,WAAAhrF,SAAA,iBACAgrF,WAAAlzH,QAAA,cAIA,QAAA04H,aACAxF,WAAAhrF,SAAA,iBACAgrF,WAAAlzH,QAAA,aAVA,GAAAkzH,YAAAx5H,KAAAy5H,eAeA32H,GAAA0D,QAAAsP,GAAA,uBAAA,WACAipH,eAIAj8H,EAAA0D,QAAAsP,GAAA,sBAAA;AACAkpH,A/E81BA,c+E31BAxF,WACA1jH,GAAA,aAAA,WACA0jH,WAAA/qF,SAAA,gBAAA,KAEA34B,GAAA,YAAA,WACA0jH,WAAA/qF,SAAA,gBAAA,KAEApwB,OAAA,QAAA,SAAAjpB,EAAAyI,OAEA,MAAAgT,GAAA6nB,SAAA76B,QAAA,YAAAA,MAAAyF,SAAAzF,MAAA4zC,MACAstF,cAGA,GAJA,SAQAvF,WAAAxmE,WACAl9C,GAAA,UAAA,WAEAkpH,eAOAtwF,QAAA,WACA5rC,EAAA0D,QAAAD,IAAA,wBACAzD,EAAA0D,QAAAD,IAAA,4BCjFAqjB,OAAA,0DACA,0BACA,SAAAsoC,eACA,YAMA,OAAAA,gBAEArlD,KAAA,YAKAksH,QAAA,WACA,GAAAS,YAAAx5H,KAAAy5H,eAGAD,YAAAxmE,WACAsN,IAAA,SAAAjT,IAAAuyC,IAAAvkF;AACA,AhF03BA,GgF13BAxlB,MAAA+pG,KAAAA,IAAA/pG,IAGA,OAAAA,OAAAA,KAAA6C,MAAA,cAAA7C,KAAA6C,MAEA8gI,WAAA/qF,SAAA,qBAAA,QAEA+qF,WAAAhrF,SAAA,SAKAgrF,WAAAlzH,QAAA,QAAAzQ,MAFA2jI,WAAAlzH,QAAA,iBAQA+U,WAOAjZ,KAAA,WACA,GAAAo3H,YAAAx5H,KAAAy5H,eAGAD,YAAAxmE,WACA31B,QAAA,YAAA,SAAAxnC,OACAA,MAAA,UAAAA,KAAA6C,MAAA,UAAA7C,KAAA6C,MACA8gI,WAAAlzH,QAAA,QAAAzQ,aC7DA+zB,OAAA,kCAAA,WACA,YAUA,IARA,eAAApjB,UACAA,OAAAy4H,gBAGA/2H,KAAA7J,IAAA6J,KAAA7J,KAAA,WACA,OAAA,GAAA6J,OAAAC,aAGA,OAAA3B,QAAAy4H,aAAA,CAEA,GAAAC,WAAAh3H,KAAA7J,KAEAmI,QAAAy4H,YAAAE,QAAA34H,OAAAy4H,YAAAE,OAAAC,kBACAF,UAAA14H,OAAAy4H,YAAAE,OAAAC;AjFw4BA,AiFr4BA54H,OAAAy4H,YAAA5gI,IAAA,WACA,MAAA6J,MAAA7J,MAAA6gI,cCbAt1G,OAAA,cAAA,gCAAA,WACA,YASA,SAAAy1G,cAAArkG,QAuIA,QAAA38B,OACA,MAAAmI,QAAAy4H,YAAA5gI,MAvIA,GAAA+hE,YAAAplC,WACAsoB,MAAAjlD,MACAuH,KAAA09C,MACAvkD,SAAAqhE,WAAAk/D,eAAA,EACA1hI,SACA2hI,kBAAA,IAAAn/D,WAAAnxB,UAMA7uC,OAMAF,MAAA,SAAAo/H,eAOA,MANAh8E,OAAAjlD,MACAuH,KAAA09C,MACAvkD,SAAAugI,eAAA,EACA1hI,MAAAwpC,SAAA,EACAxpC,MAAAupC,SAAA,EAEAnnC,MAOAsoB,KAAA,WACA,GACAk3G,SADA91C,UAAArrF,KAMA,OAJAT,OAAAwpC,UACAo4F,QAAA91C,UAAA9jF,KACAA,KAAA8jF,WAEA81C,SAOArrE,MAAA,WAMA,MALAv2D,OAAAwpC,UACAroC,UAAAV,MAAAilD;AACA1lD,AlFu1BA,MkFv1BAwpC,SAAA,GAGApnC,MAOAo0D,OAAA,WAQA,MAPAx2D,OAAAwpC,UACAkc,MAAAjlD,MACAuH,KAAA09C,MACA1lD,MAAAupC,SAAA,EACAvpC,MAAAwpC,SAAA,GAGApnC,MAOAF,KAAA,WAQA,MAPAlC,OAAAwpC,UACAroC,UAAAV,MAAAilD,OAGA1lD,MAAAwpC,SAAA,EACAxpC,MAAAupC,SAAA,EAEAnnC,MAQAy/H,YAAA,WACA,MAAA7hI,OAAAwpC,QACAroC,UAAAV,MAAAilD,OAEAvkD,UAQAgU,GAAA,SAAAo9B,WACA,QAAAvyC,MAAAuyC,YAQAr4C,IAAA,SAAA04D,MAIA,MAHAA,MAAA71D,WAAA61D,MACAzxD,UAAAyxD,KACA5qD,MAAA4qD,KACAxwD,MAQAwf,IAAA,SAAAgxC,MAIA,MAHAA,MAAA71D,WAAA61D,MACAzxD,UAAAyxD,KACA5qD,MAAA4qD,KACAxwD,MAgBA,OAJAu/H,mBACAn/H,MAAAF,MAAAkgE,WAAAk/D,eAGAl/H,MAGA,MAAAi/H,gBCzJAz1G,OAAA,wDACA,SACA,eACA,aACA,aACA,eACA,0BACA,SAAA/Y,EAAAi+B,eAAAuwF,aAAApoE,MAAAv0B,QAAAwvB;AACA,AnFw4BA,YmFl4BA,IAAAqkD,SAAA,GAMA,OAAArkD,gBAEArlD,KAAA,WAKAzK,KAAA,WAEA,GAAAqgC,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,gBACAiG,YAAAlG,WAAA9lE,iBACAisE,kBAAAD,YAAA14B,eAAA,IAAA04B,YAAAz4B,OAGA,OAAAhwC,OAAA,YAAAuiE,WAAA5qF,YAAA03D,eAAAn9F,KAAA,SAAAy2H,eAOA,MAJAn9F,MAAAo9F,UAAAR,cACApwF,WAAA,IAGA2wF,cAAAlrE,QAAAirE,mBACAx2H,KAAA,SAAA22H,cAMA,MALAA,cAAAjvH,EAAA4nB,SAAAqnG,cAAAA,aAAA,GAKAA,cAAAJ,YAAAK,gBACAH,cAAAhrE,QAAA+qE,kBAAAD,YAAAK,iBAAA,GADA,SAIA52H,KAAA,WAEAs5B,KAAA8M,QAAAT;AAEAE,AnFw1BA,OmFx1BA,WAGA,GAAAwwF,SAAA/8F,KAAAo9F,UAAAv3G,OACA5jB,QAAA80H,WAAA9lE,iBAGAqzC,cAAAriG,QAAAsiG,eAAA,IAAAtiG,QAAAuiG,OAEA24B,eAAAlrE,QAAAqyC,eAAA59F,KAAA,SAAApK,UACAA,SAAA8R,EAAA4nB,SAAA15B,UAAAA,SAAA,EACAygI,QAAA3uH,EAAA4nB,SAAA+mG,UAAAA,QAAA,EAAAA,QAAA,IAAA,EAGAI,cAAAhrE,QAAAmyC,cAAAhoG,SAAAygI,YAGAh3G,SAAA+tF,QACAtnE,WAAA,IAIAuqF,WAEAj7G,MAAA,wBAAA,WACAkkB,KAAAm7D,WAGAv/E,OAAA,8BAAA,SAAAjpB,GACAqtC,KAAA+L,SAAA,YACA/L,KAAA95B,YASAmN,GAAA,sBAAA,SAAA1gB,EAAA4qI,UAAAP,aACA,GAAA5uH,EAAAva,WAAAmpI,aAAA,CACA,IAAA,eAAA/pI,KAAAsqI,WACA,MAAAP,aAAA/8F,QAAAr5B,OAAA,GAAAzC,OAAA;AAOA64H,AnFwyBA,YmFxyBAG,cAAAlrE,QAAAsrE,eAIA3hH,OAAA,SAAA,SAAAjpB,GACA,GAAAoL,MAAApL,EAAAoL,MAEAo/H,eAAA9qE,QACA3rD,KAAA3I,MADAo/H,SAEAp/H,aASAkuC,QAAA,WACA1uC,KAAAuvC,QAAAzvC,OACAE,KAAA6/H,UAAA//H,QAMA89F,OAAA,WACA59F,KAAAuvC,QAAArvC,QACAF,KAAA6/H,UAAAzrE,UAMAzrD,QAAA,WACA3I,KAAAuvC,QAAAzvC,OACAE,KAAA6/H,UAAA1rE,aCpKAvqC,OAAA,sDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAgBA,OAfAA,SAAA,kCACAiC,OAAAlW,QAAAwxD,SAAAr4C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY;AAAAv/C,ApF+5BA,KoF/5BAA,QACAg1D,OAAAgD,QAAAA,OAAAs4C,QAAAr4C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,kCACAjD,OAAAlW,QAAA17C,MAAA60D,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA50D,KAAA60D,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,KACAA,OAAAnZ,QAAAgR,OAAAnvD,KAAAq3D,OAAA,MAAAh4D,MAAAA,QAAA,EAAAA,KAAAA,KAAA8P,OAAAyvC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA+iF,SAAAtkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,SACAjD,OAAAlW,QAAA17C,MAAA60D,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA50D;AAAA60D,ApFq5BA,aoFr5BAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,gBAGA,QAAAqsE,UAAAtsE,OAAAh4D,MAGA,MAAA,MA3BAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAlF,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IAgCA,OAJA4oD,SAAA,yCACAkF,OAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAAoyE,QAAA7qF,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,iBCbAh/B,OAAA,kDACA,SACA,OACA,yBACA,sDACA,SAAA9mB,EAAA44B,GAAAw2B,cAAAguE;AACA,ArF+4BA,YqF74BA,OAAAhuE,gBACArlD,KAAA,QACAzK,KAAA,WACA,GAAAqgC,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,gBACA9nE,SAAA6nE,WAAAhmE,cAEAz8D,cAAA,WAEA,GAAA2N,SAAA80H,WAAA9lE,iBACAusE,SACA95B,QAAA,iBACAltG,KAAA04D,SAAA0sD,OASA,OAPA35G,SAAAy7H,yBACAF,OAAApgI,MACAsmG,QAAA,oBACAltG,KAAAyL,QAAA07H,eAIAt9H,EAAAo9H,UAAAD,OAAAA,UAGAjgI,MAAA6xC,SAAA96C,gBAGAyiI,WACAj7G,MAAA,aAAA,WACA,GAAAszB,UAAA96C,eACA0rC,MAAAoP,SAAA3zB,YAAA2zB,UACApP,KAAAoP,SAAAA,YAIAkgB,OAAA,WACA,GAAA9B,YAAAjwD,KAAAmyD,gBAAAkuE,gBACApwE,YAAAryC,OAAA5d,KAAA6xC;ArFy2BA,MqFp2BAjoB,OAAA,qBAAA,UAAA,SAAAw3C,QCvEA,GAAA5lC,QAAA,UAEA,QAEAuyB,OAAA,SAAAuyE,YAGA,GAAA3yD,SAAA19D,SAAAqwH,WAAA,GACA55H,OAAAinE,WACAA,QAAA,EAEA,IAAAnd,MAAA4Q,OAAAriE,SAAA4uE,QAAA,WACAj2E,EAAA84D,KAAAjrD,IAAA,UAAA,GAAAirD,KAAAjrD,IAAA,SAAA,IAAAirD,KAAAjrD,IAAA,SACAxE,EAAAyvD,KAAAjrD,IAAA,YAAA,GAAAirD,KAAAjrD,IAAA,WAAA,IAAAirD,KAAAjrD,IAAA,WACAxQ,EAAAy7D,KAAAjrD,IAAA,YAAA,GAAAirD,KAAAjrD,IAAA,WAAA,IAAAirD,KAAAjrD,IAAA,UACA,OAAA7N,GAAA,IAAAqJ,EAAA,IAAAhM,GAGAwrI,OAAA,SAAApwH,WAEA,GAAAqgD,MAAA4Q,OAAAjxD,UAAAqrB,OACA,OAAAg1B,MAAAmd,UAAA,GAAAnd,KAAAkd,UAAA,KAAAld,KAAAid,YCtBA7jD,OAAA,sDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C;AAKA,AvFu6BA,QuFv6BAokI,UAAApsE,OAAAh4D,MAGA,MAAA,YAPAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IA4BA,OApBA4oD,SAAA,2CACAiC,OAAAlW,QAAAj8C,MAAAo1D,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAn1D,KAAAo1D,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,iBACAA,OAAAnZ,QAAAgR,OAAAnvD,KAAAq3D,OAAAA,QAAAA,OAAAzmB,SAAAgO,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF;AACAlF,AvF25BA,QuF35BA,oBACAiC,OAAAlW,QAAA3vC,IAAA8oD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA7oD,GAAA8oD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,aACAjD,OAAAlW,QAAAkzD,OAAA/5C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAg6C,MAAA/5C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,mDACAjD,OAAAlW,QAAAkzD,OAAA/5C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAg6C,MAAA/5C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D;AAAAzY,AvFk5BA,QuFl5BAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,mECTAlkC,OAAA,2DACA,SACA,SACA,OACA,SACA,oBACA,sDACA,SAAA9mB,EAAA+N,EAAA6qB,GAAA0lC,OAAAo/D,YAAAC,UACA,YAEA,IAAAC,mBAAA,yBAAAl6H,QAMAm6H,UAAA,IAKAC,YACAlrI,KAAA,iBACAmrI,SAAA,WACAp1C,QAAA,oBACAnhD,KAAA,qBAeAw2F,sBAAA,SAAA9lG,QACA,GAAAnlC,KAEA,KAAAgb,EAAAjM,cAAAo2B,QACA,KAAA,IAAA7J,WAAA;AAEA,AxF42BA,GwF52BAtgB,EAAAynB,QAAA0C,OAAAh2B,IACA,KAAA,IAAAmsB,WAAA,+BAEA,KAAAtgB,EAAA/W,SAAA8mI,WAAA5lG,OAAAtiC,MACA,KAAA,IAAAy4B,WAAA,0BAaA,OAVAt7B,MAAAgb,EAAA6f,SAAAsK,QACA6sE,MAAA,GACAk5B,UAAA,EACAC,YACA55F,SAAA,KAYAhlC,KAAA,WAGA,MAFApC,MAAA6xC,SAAA/uC,EAAA29H,SAAA5qI,OACAmK,KAAAihI,SAAAn+H,EAAA,kBAAA9C,KAAA6xC,UACA7xC,MAQA+xD,OAAA,SAAA9B,YAEA,MADAA,YAAAryC,OAAA5d,KAAA6xC,UACA7xC,MAOA0uC,QAAA,WAEA,MADA1uC,MAAA6xC,SAAAx2C,SACA2E,MAOAu2G,QAAA,WACA,GAAA9zE,MAAAziC,KACAm5G,OAAA,WACA12E,KAAAw+F,SAAAhoI,KAAAunI,YAAAzyE,OAAAl4D,KAAAkrI,UAAAJ,YAQA,OANAD,mBACAl6H,OAAA06H,sBAAA/nB,QAEAA;AAGAn5G,AxF8yBA,MwFvyBAqwD,KAAA,WACA,GAAA0wE,WACA7lG,WACA8zB,QAAAn+C,EAAAinB,SAAAjiC,KAAAmrI,UAAAG,QAAA,GAEA,KAAAtwH,EAAAynB,QAAA02B,UACAn+C,EAAAlK,SAAAqoD,QAAAoyE,QACAvrI,KAAAkrI,WAAA/xE,QAAAoyE,MACA,CAGA,OAFAL,UAAA3/D,OAAAriE,SAAAlJ,KAAAkrI,UAAAJ,UAAA,WAAAzzD,WACAltE,KAAAihI,SAAA7yH,YAAA,mCAAAD,SAAA,OAAA6gD,QAAAt2D,MACA7C,KAAA6C,MACA,IAAA,oBACAwiC,QAAAjiC,KAAAyiC,GAAA,yDAAAqlG,UACA,MAEA,KAAA,oBACA7lG,QAAAjiC,KAAAyiC,GAAA,4DAAAqlG,UACA,MAEA,KAAA,WACA7lG,QAAAjiC,KAAAyiC,GAAA,8DAAAqlG;AACA,AxFkxBA,KwFhxBA,KAAA,iBACA7lG,QAAAjiC,KAAAyiC,GAAA,wDAAAqlG,WAIA,GAAAI,QAAAtwH,EAAA5L,KAAApP,KAAAmrI,UAAAI,MAAApyE,QAAAoyE,OACAD,SAAAA,OAAAC,OAAAvrI,KAAAmrI,SAAAG,OAAAC,MAAAT,aACA9qI,KAAAmrI,SAAAG,OAAAC,MAAAT,WAAAQ,QAAA,GAGAjmG,QAAAxiC,KAAAs2D,QAAAt2D,KAGA,MAAAwiC,UAQAl2B,GAAA,WACA,MAAAnP,MAAAmP,IAQAuJ,IAAA,SAAA1V,OACA,MAAA,mBAAAA,QACAhD,KAAAkrI,UAAAloI,MACAmH,MAEAnK,KAAAkrI,WAQA35F,QAAA,SAAAvuC,OACA,MAAA,mBAAAA,QACAhD,KAAAuxC,UAAAvuC,MACAmH,QAEAnK,KAAAuxC,UAKA,OAAA05F,yBCpMAl3G,OAAA,sCACA,SACA,SACA,OACA,iCACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAiqE;AACA,AzF05BA,YyFl5BA,SAAA07B,uBAAAlwE,QACA,GAAA05B,WAAA,CAyBA,OAxBAh6E,GAAAikB,QAAAq8B,OAAAq0C,YAAAr0C,OAAAq0C,WAAAh3D,WAAA,SAAA5wC,OACA,GAAAwnC,UAAAxnC,OAAAA,MAAAwnC,QAEA,OAAAv0B,GAAA6nB,SAAA0M,YAEAv0B,EAAA6nB,SAAA0M,SAAAyS,OAAAhnC,EAAA6nB,SAAA0M,SAAAg1B,SAAAvpD,EAAA3U,QAAAkpC,SAAAg1B,QACAywB,UAAA,EAEAh6E,EAAA6nB,SAAA0M,SAAAkgB,OACAz0C,EAAAikB,QAAAsQ,SAAAkgB,KAAA,SAAA9hB,OAEA,MAAA3yB,GAAA3U,QAAAsnC,QAAAA,MAAAxsC,QACA6zF,UAAA,GACA,GAFA,SAOAA,WACA,EAhBA,SAqBAA,SASA,QAAAy2C,gBAAApmG,QAAA44B,MAAA3C,QACA,GAMAowE,yBANAv7H,IAAAmrD,OAAAyC,aACAlvD,QAAAysD,OAAAuC,iBACAq4B,MAAA4Z,UAAAzZ,cAAAlmF,IAAAtB,QAAA6iG,aAAAzzC,OACA0tE,gBAAAz1C,OAAAA,MAAAf,MAAAe,MAAAlB,SACA42C,aAAA11C,OAAAA,MAAAjB,QACA42C,kBAAA;AA+BA,AzF20BA,MyFv2BAF,mBACAD,wBAAAF,sBAAAlwE,SAEAowE,yBAAA78H,QAAAyiG,cACAq6B,kBAGAD,0BAAA78H,QAAAyiG,cACAq6B,mBAKAC,cAAAD,gBACAE,kBAAAhmG,GAAA,4EACA8lG,gBAAAt+H,WACAu+H,aAAAv+H,aAGAu+H,eACAC,kBAAAhmG,GAAA,yCAAA+lG,aAAAv+H,aAGAs+H,kBACAE,kBAAAhmG,GAAA,sCAAA8lG,gBAAAt+H,eAIAw+H,kBAAA,IAAAxmG,SAAA1iC,OAGA,OACA8oI,eAAAA;AzFw0BA,I0Fr7BA13G,OAAA,uDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAMA,MALAmK,MAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,SAIA,sCCeA+zB,OAAA,kDACA,SACA,SACA,OACA,eACA,aACA,aACA,WACA,yBACA,0DACA,qCACA,uDACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAoT,eAAAuwF,aAAApoE,MAAAoiE,MAAAnnE,cAAA4uE,sBAAA1vF,SAAAuwF;AACA,A3Fm5BA,Y2F74BA,IAAAC,cAAA,IAMAjB,UAAA,IAKAkB,YAAAnmG,GAAA,8IAGAklG,YACAlrI,KAAA,iBACAmrI,SAAA,WACAp1C,QAAA,oBACAnhD,KAAA,qBAQAw3F,eAAA,SAAAp9H,SACA,GAAAq9H,iBAAAr9H,QAAAq9H,mBACA,OAAAlxH,GAAAsoB,KAAA4oG,gBAAA,SAAAC,YACA,MAAA,sBAAAA,WAAAC,eAQA,OAAA/vE,gBAEArlD,KAAA,QAKAzK,KAAA,WAEA,GAAAqgC,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,gBACA9nE,SAAA6nE,WAAAhmE,kBACAvB,WAAAN,SAAAM,eACAiwE,aAAAvwE,SAAA32B,QAAA22B,SAAA32B,OAAAknG,iBAEAC,iBAOAC,eAAA,SAAA1pI;AACA,A3Fk1BA,G2Fl1BA2pI,gBACAjiI,MACAsE,QAAA80H,WAAA9lE,gBAGA,KAAAhvD,QAAAgjG,WAAAhjG,QAAA2iG,mBAAAp1C,WAAA60C,cACAu7B,eAAAxxH,EAAAinB,SAAApzB,QAAAq9H,iBAAAE,aAAAvpI,QACA,CACA0H,OACAynG,MAAAw6B,eAAAx6B,MACAnvG,KAAA2pI,eAAAJ,aACAlB,UAAAsB,eAAA10D,QAAAgzD,UACA37H,GAAAq9H,eAAA/+H,OACA8jC,SAAA,EACA45F,aAGAnwH,EAAAqxH,aAAAG,eAAAJ,eAAAntG,QAAA,SAAAj8B,MAAAwyC,KACAx6B,EAAA/W,UAAA,OAAA,UAAA,UAAAjB,SACAuH,MAAA4gI,SAAA31F,MACA3yC,KAAAG,MACAsoI,OAAA/gI,MAAA2gI,UAAAJ,WAAAt1F,IACA+1F,MAAAnxH,SAAAo7B,IAAA,IAAAs1F,aAKA,IAAA2B,wBAAAzxH,EAAA5L,KAAA7E,MAAA4gI,UAAAG,QAAA,KACAtwH,EAAAynB,QAAAgqG,yBAAAA,uBAAAlB,OAAAhhI,MAAA4gI,SAAAsB,uBAAAlB,MAAAT,aACAvgI,MAAA4gI,SAAAsB,uBAAAlB,MAAAT,WAAAQ,QAAA;A3FszBA,C2FlzBA,MAAA/gI,QAIAmiI,kBAAA,SAAA7pI,KAAAo7D,MAAA9zC,UACA,GAAAtb,SAAA80H,WAAA9lE,iBACA1tD,IAAAwzH,WAAA5lE,aAEA63B,QAAAzlF,IAAAs0C,MAAA51C,QAAA89H,YAAA92C,SAAAhnF,QAAA+9H,WACAC,QAAA7xH,EAAAxL,KAAAomF,QAAAY,OACA/hD,KAAAz5B,EAAA5L,KAAAwmF,QAAAY,OAAArsE,SAAAtb,QAAA6iG,cAEA,QAAA7iG,QAAAgjG,WAAAhjG,QAAA2iG,mBAAAp1C,WAAAtD,QAAAmzE,eAAAp9H,UAAA4lC,QAEA,SAAA5xC,OAAA,sBAAAo7D,OAAAxpB,KAAAq4F,kBAAA,IAAAD,UACA,aAAAhqI,MAAA,IAAA4xC,KAAAq4F,mBACA,SAAAjqI,MAAAsnB,SAAA,IAAAA,SAAAyrE,QAAAzrE,UAAAA,UAAAyrE,QAAAzrE,SAAA0iH,WAGA,GAOAE,YAAA,SAAAlqI,MACAypI,cAAAzpI,QACA+pC,KAAA6xB,QAAAO,WAAAstE,cAAAzpI,MAAAsM;AAEAm9H,A3FqxBA,c2FrxBAzpI,MAAAg2C,UACAyzF,cAAAtxH,EAAAglB,KAAAssG,cAAAzpI,QASAmqI,SAAA,SAAAnqI,KAAAsiC,QACAA,SACAmnG,cAAAzpI,MAAAooI,sBAAA9lG,QACAmnG,cAAAzpI,MACA0J,OACA2vD,OAAAtvB,KAAAoP,YAQAixF,aAAA,SAAAC,cAEAlyH,EAAAikB,QAAA8rG,WAAA,SAAAloI,MACA,GAAAsqI,aAAAZ,eAAA1pI,KAEAypI,eAAAzpI,MACAsqI,YAEAb,cAAAzpI,MAAAsM,OAAAg+H,YAAAh+H,KACA49H,YAAAlqI,MACAmqI,SAAAnqI,KAAAsqI,cAHAJ,YAAAlqI,MAKAsqI,cAEAD,aAGAtgG,KAAA6xB,QAAAI,QAAAsuE,YAAAh+H,IAAAmE,KAAA,SAAA85H,WACApyH,EAAA4nB,SAAAwqG,YAAAA,WAAA,IACAD,YAAAjC,UAAAkC,WAEAJ,SAAAnqI,KAAAsqI,eAJAvgG,SAKA,SAAAkE;AAEAk8F,A3FuuBA,S2FvuBAnqI,KAAAsqI,eAIAH,SAAAnqI,KAAAsqI,gBAMA,OAAA/rE,OAAA,SAAAuiE,WAAA5qF,YAAA03D,eAAAn9F,KAAA,SAAA+5H,WAGAzgG,KAAA6xB,QAAA4uE,UAGAzgG,KAAAoP,SAAA/uC,EAAA6+H,eAGAl/F,KAAAo9F,UAAAR,cACApwF,WAAA,IAIAxM,KAAA8M,QAAAT,gBAMAE,OAAA,WAGA,GAEAm0F,cAAAC,WAFA5D,QAAA/8F,KAAAo9F,UAAAv3G,OACAlD,SAAA,CAGAvU,GAAAikB,QAAAqtG,cAAA,SAAA/hI,MAAA1H,MACA,GAAA2qI,YACAr0E,QACAs0E,WAAA,WACA9J,WAAAp0G,QAAA+9G,aAAAC,YAGAhjI,OAAAgnC,YACAi8F,WAAA9oI,KAAAC,IAAA4F,MAAAmO,MAAAixH,QAAA,GACAp/H,MACAmO,IAAA80H,YACA9sB,UAEA,GAAA8sB,YACAjjI,MAAAgnC,SAAA,GACAhiB,SAAA,EACAg+G,WAAAhjI,MAAA4E,KACAm+H,aAAAzqI;AAEA+pC,A3FgrBA,K2FhrBA6xB,QAAAM,QAAAx0D,MAAA4E,KAAA,GACAmE,KAAAm6H,YADA7gG,SAEA6gG,cAGA7gG,KAAA6xB,QAAAM,QAAAx0D,MAAA4E,KAAAq+H,YACAr0E,QAAA5uD,MAAAiwD,OACAx/C,EAAAynB,QAAA02B,UACAwqE,WAAAlzH,QAAA0oD,QAAAt2D,KAAAs2D,QAAA/1D,UAKAmsB,SACAqd,KAAA95B,WAGA6f,SAAAo5G,aACA3yF,WAAA,IAMAuqF,WAEA1jH,GAAA,WAAA,WAGAgtH,cAAA,KAGAhtH,GAAA,aAAA,WACA2sB,KAAAm7D,WAEA9nF,GAAA,cAAA,WACA2sB,KAAA95B,YAGA4V,MAAA,aAAA,WAEAkkB,KAAAm7D,WAGA9nF,GAAA,aAAA,WAEA2sB,KAAA+L,SAAA,YACA/L,KAAA95B,YAIA0V,OAAA,OAAA,SAAAjpB,EAAAsD,KAAAo7D,MAAA9zC,UACA,GAAAxf,MAAApL,EAAAoL,OAEA+iI,OAAA,WACAX,YAAAhC,WAAAt2F,MACA9pC,QAGAgjI,WAAA;AACAhK,A3FqnBA,W2FrnBAlzH,QAAA,wBACAlR,EAAAu3C,UAIAlK,MAAA+L,SAAA,YACA/L,KAAA95B,UAIA45H,kBAAA7pI,KAAAo7D,MAAA9zC,UACAw5G,WAAAlzH,QAAA,UAAA8qC,SAAAkwF,eAAAO,YAAA,UAAArI,YAAA+J,OAAAC,YAEAD,WAIAllH,OAAA,SAAA,SAAAjpB,GACA,GAAAoL,MAAApL,EAAAoL,MAGAiiC,MAAA6xB,QAAAQ,QACA3rD,KAAA3I,MADAiiC,SAEAjiC,WAQAuxD,OAAA,WACA,GAAA9B,YAAAjwD,KAAAmyD,gBAAAkuE,gBACApwE,YAAAryC,OAAA5d,KAAA6xC,WAMAnD,QAAA,WACA1uC,KAAAuvC,QAAAzvC,OACAE,KAAA6/H,UAAA//H,OACAE,KAAA6xC,SAAAx2C,UAMAuiG,OAAA,WACA59F,KAAAuvC,QAAArvC,QACAF,KAAA6/H,UAAAzrE,UAMAzrD,QAAA,WACA3I,KAAAuvC,QAAAzvC,OACAE,KAAA6/H,UAAA1rE;AAMAryD,A3FsjBA,K2FtjBA,WACAu3H,MAAAv3H,KAAA9B,KAAA6xC,WAMA9vC,KAAA,WACAs3H,MAAAt3H,KAAA/B,KAAA6xC,eC/YAjoB,OAAA,kEAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAMA,MALAmK,MAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,SAIA,kMCFA+zB,OAAA,kBAAA,SAAA,SAAA,oBACA,SAAA9mB,EAAA+N,EAAA2pH,aACA,YAEA,IAAA3sF,IAAA,cACAwsF,OAAA,MAAAxsF,GAGAnd;A7Fi7BA,A6Fh7BA6pG,aAAA,WACAvgI,MAAA,OACAnB,MAAA,EACA4qI,cAAA,GAOAC,aAgBAthI,KAAA,SAAA0M,SAGA,MAFAA,SAAA+B,EAAA6f,SAAA5hB,YAAA4hB,UAEA1wB,KAAAnL,KAAA,WACA,GACA8uI,QAAAzP,QADA2E,KAAA/1H,EAAA9C,KAGA64H,MAAAhjI,KAAAwkI,UAEAvrH,QAAAjW,MAAAoX,SAAAnB,QAAAjW,MAAA,IAGAggI,KAAAhjI,KAAAwkI,OAAAvrH,SAEAolH,QAAAplH,QAAAjW,MAAA,IAEA8qI,OAAA7gI,EAAA,iBACAtH,MAAA04H,SACArvH,KAAA,QAAAqvH,SAGAplH,QAAA20H,cACAE,OAAA1qI,KAAAi7H,SAGA2E,KAAA1qH,SAAA,eACAA,SAAAW,QAAA9U,OACAqH,QACAuc,OAAA+lH,QAMA9K,KAAAvyH,QAAA,UAAAunC,QAiBA+1F,QAAA,SAAA/K,KAAAhgI,OACA,GACA8qI,QAAAzP,QADAplH,QAAA+pH,KAAAhjI,KAAAwkI,OAGAxhI,OAAAoX,SAAApX,MAAA,IACAA,OAAA,GAAA,KAAAA,QACAq7H,QAAAr7H,MAAA,IACA8qI,OAAA9K,KAAAz9G,SAAA;A7F61BA,A6F31BAuoH,OAAAnoI,MAAA3C,MAAA,KACAgM,KAAA,QAAAqvH,SAEAplH,QAAA20H,cACAE,OAAA1qI,KAAAi7H,SAGAplH,QAAAjW,MAAAA,MACAggI,KAAAhjI,KAAAwkI,OAAAvrH,SAMA+pH,KAAAvyH,QAAA,UAAAunC,GAAAh1C,SAeAioH,OAAA,SAAA+X,KAAAhgI,OACA,GAAAiW,SAAA+pH,KAAAhjI,KAAAwkI,OACA,OAAA,mBAAAxhI,OACA6qI,YAAAE,QAAA/K,KAAAhgI,OAGAiW,QAAAjW,OAWA61C,QAAA,WACA,MAAA1uC,MAAAnL,KAAA,WACA,GAAAgkI,MAAA/1H,EAAA9C,MACA8O,QAAA+pH,KAAAhjI,KAAAwkI,OACAvrH,WAEA+pH,KAAAzqH,YAAA,eACA/M,QACAW,WAAAq4H,QAMAxB,KAAAvyH,QAAA,WAAAunC,QAOA2sF,aAAA7uE,SAAA9d,GAAA61F,aACAjJ,QAAA,SAAA,aClJA7wG,OAAA,8DACA,SACA,SACA,OACA,yBACA,iEACA,kBACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAw2B,cAAA2xE;AACA,A9Fk6BA,Y8Fv5BA,IAAAC,iBAAA,SAAAlyE,YAAAC,QAAAkyE,kBAAAC,eAKA,GAAAC,UAOAC,WAAA,WACA,GAAAl5C,OAAAzwF,KAAAC,IAAA,EAAAo3D,YAAAuyE,aACAC,MAAA7pI,KAAAi3B,MAAAogC,YAAAyyE,gBAAAr5C,MAAA,IACA,QACAo5C,MAAAA,MACAv8B,MAAAu8B,MAAA,MASApkH,SAAA,WAGA,GAAAskH,aAAA,WACA,MAAAzyE,UAAAA,QAAAvX,MACAuX,QAAAvX,MAAAsX,YAAA4wE,YADA,QAMA+B,eAAA,WACA,GAAA1D,UAAAyD,aACA,OAAAzD,WAAAA,SAAAn1C,SACAm1C,SAAAn1C,SAAA95B,YAAA6wE,WADA,QAMA+B,sBACA9uI,MACAs1F,MAAA,WACA,MAAAzwF,MAAAC,IAAA,EAAAo3D,YAAAuyE,cAEAnkH,SAAA,WACA,MAAA4xC,aAAA21C,aAAA;A9Fs2BA,G8Fn2BAs5B,UACA71C,MAAA,WACA,GAAA61C,UAAAyD,aACA,OAAAzD,UACAhwH,EAAAmoB,OAAA64B,QAAAvX,MAAAsX,YAAA4wE,YAAA92C,SAAA,SAAAtwD,IAAAqwD,SACA,MAAArwD,KAAAvqB,EAAAxL,KAAAomF,QAAAY,QACA,GAEA,GAEArsE,SAAA,WACA,GAAAykH,aAAAF,gBACA,OAAAE,aACAA,YAAAp4C,MAAAz6B,YAAAo1C,gBAAA09B,eAAA,EAEA,IAGAD,aACAz5C,MAAA,WACA,GAAAy5C,aAAAF,gBACA,OAAAE,aACA5zH,EAAAxL,KAAAo/H,YAAAp4C,OAEA,GAEArsE,SAAA,WACA,GAAAykH,aAAAF,gBACA,OAAAE,aACAA,YAAAp4C,MAAAz6B,YAAAo1C,gBAAA27B,kBAAA,EAEA,KAKAl3F,QAAA+4F,qBAAAR,gBAAAQ,qBAAA9uI,KACAs1F,MAAAv/C,QAAAu/C,QACA25C,gBAAAl5F,QAAAzrB;AAEA,A9F4zBA,O8F3zBAokH,MAAAp5C,MAAA,EAAAzwF,KAAAi3B,MAAAmzG,gBAAA35C,MAAA,KAAA,EACA6c,MAAAnsE,GAAA,gBAAAipG,gBAAA35C,SAIA,OAAAi5C,SAAAF,qBAOA,OAAA7xE,gBAEArlD,KAAA,cAKAzK,KAAA,WACA,GAAAwiI,gBACAC,iBACArL,WAAAx5H,KAAAy5H,gBACA9nE,SAAA6nE,WAAAhmE,cACAx4B,OAAA22B,SAAA32B,OAAA+oG,sBACAA,kBAAA/oG,OAAAtiC,MAAA,aACAsrI,cAAAhpG,OAAA84B,OAAA,OAKAqlD,OAAA,WACA,GAAA2rB,cAAAhB,gBAAAtK,WAAA9lE,iBAAA8lE,WAAA5lE,aAAAmwE,kBAAAC,cACAc,eAAAF,gBAAAC,mBACAD,eAAA3rI,KAAA6rI,aAAAj9B,OACAg9B,iBAAAE,YAAA,QAAAD,aAAAV;A9FyxBA,C8FpxBApkI,MAAA6xC,SAAA/uC,EAAA+gI,eAGAe,eAAA9hI,EAAA,kCAAA9C,KAAA6xC,UACAgzF,iBAAA/hI,EAAA,gCAAA9C,KAAA6xC,UAGAgzF,iBAAAE,cAGA5rB,SAEAqgB,WACA1jH,GAAA,QAAAqjG,QACArjG,GAAA,WAAAqjG,SAMApnD,OAAA,WACA,GAAA9B,YAAAjwD,KAAAmyD,gBAAAkuE,gBACApwE,YAAAryC,OAAA5d,KAAA6xC,eCrMAjoB,OAAA,kCAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAMA,MALAmK,MAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,SAIA,oCCYA+zB,OAAA,gBACA,SACA,SACA,kBACA,kCACA,SAAA9mB,EAAA+N,EAAA40B,WAAAu/F;AhG46BA,AgG36BA,YAEA,IAAAz/F,WAAA7rC,MAQAurI,UAAA,SAAAC,MAAAx0G,UAGA,GAMAu/B,YANAk1E,aAAAH,WAGAI,kBAMAC,cASAjjI,KAAA,SAAA44B,QAuBA,MApBAh7B,MAAAg7B,OAAAnqB,EAAAmqB,YACAnF,KAAA,SAAAh9B,OACA,MAAA,QAAAA,OAAAkxB,SAAAlxB,QAEA63B,SAAAA,cACA73B,QAEAusI,kBAMAplI,KAAAsG,QAAA,QAEAtG,KAAAg7B,OAAA+sE,WACA93C,WAAAntD,EAAA9C,KAAAg7B,OAAA+sE,UACA/nG,KAAA+xD,UAGA/xD,MAQA0uC,QAAA,WAcA,MATA1uC,MAAAsG,QAAA,WAEAtG,KAAAslI,YACAtlI,KAAAslI,WAAAjqI,SAGA2E,KAAAslI,WAAA,KACAF,kBAEAplI,MASA+xD,OAAA,SAAA7a,WAsBA,MArBAA,aACA+Y,WAAAntD,EAAAo0C,YAEAl3C,KAAAslI,WAAAxiI,EAAAqiI,aAAAnlI,KAAAg7B,SAEAi1B,aACAjwD,KAAAg7B,OAAA3lC,SACA46D,WAAA5uD;AhG+0BA,AgG70BA4uD,WAAAryC,OAAA5d,KAAAslI,aAGAtlI,KAAAyuC,SAAA,YAAA,GAOAzuC,KAAAsG,QAAA,SAAAtG,KAAAslI,YAEAtlI,MAQA8B,KAAA,WAQA,MAFA9B,MAAAsG,QAAA,OAAAtG,MAEAA,KAAAyuC,SAAA,UAAA,IAQA1sC,KAAA,WAQA,MAFA/B,MAAAsG,QAAA,OAAAtG,MAEAA,KAAAyuC,SAAA,UAAA,IAQAmvD,OAAA,WAQA,MAFA59F,MAAAsG,QAAA,SAAAtG,MAEAA,KAAAyuC,SAAA,YAAA,IAQA9lC,QAAA,WAQA,MAFA3I,MAAAsG,QAAA,UAAAtG,MAEAA,KAAAyuC,SAAA,YAAA,IAQA17B,GAAA,SAAAnV,OACA,QAAAwnI,eAAAxnI,QAUA6wC,SAAA,SAAA7wC,MAAA2nI,MAiBA,MAhBAA,QAAAA,KACAH,eAAAxnI,OAAA2nI,KAEAvlI,KAAAslI,YACAtlI,KAAAslI,WAAAj3H,YAAAzQ,MAAA2nI,MAUAvlI,KAAAsG,QAAA,QAAA1I,MAAA2nI,KAAAvlI,MAEAA,MAOAo/D,aAAA;AhGutBA,AgGttBA,MAAAnP,aAQAu1E,WAAA,WACA,MAAAxlI,MAAAslI,YAOAG,YAAA,WACA,MAAAN,eASAO,YAAA,SAAArsG,UACA,GAAA20B,KAAA30B,UAAA2rG,UAiBA,OAhBAG,cAAAn3E,IAGAn9C,EAAAva,WAAA6uI,gBACAA,aAAA,WACA,MAAAn3E,OASAhuD,KAAAsG,QAAA,WAAA6+H,cAEAnlI,MAaA,OARAklI,QACAr0H,EAAAq0H,OAAA9vG,YAAAN,QAAA,SAAAqZ,QACAk3F,aAAAl3F,QAAA,WACA,MAAA+2F,OAAA/2F,QAAAtoC,MAAAw/H,aAAA9/F,OAAA/uC,KAAAsP,eAKA2/B,WAAA4/F,cAGA,OAAAJ,aCzRAr7G,OAAA,iBACA,SACA,gBACA,SAAA9mB,EAAA4/B,SACA,YASA,SAAAijG,YAAAjzC,QAAAx7C,WACA,MAAA,IAAAxU,SAAA,SAAAt5B,SACA,GAEAw8H,kBAAAC,aAAAC,aAAA3xH,UAFA09B,SAAA/uC,EAAA4vF,SACAziC,WAAAntD,EAAAo0C,WAAArF,SAAA34B;AjGo6BA,AiGj6BA24B,SAAA76C,QAAAi5D,WAAAj5D,QACA4uI,iBAAA31E,WAAA97C,YACA2xH,aAAAj0F,SAAA/oB,SAAA/c,IAAAkkD,WAAAnnC,SAAA/c,IAAA65H,iBACAC,aAAAC,aAAA71E,WAAAx0D,SAAAo2C,SAAAE,cAEA59B,UAAA5Z,KAAAC,IAAAD,KAAA+3B,IAAAwzG,aAAAF,kBAAAC,cACA1xH,YAAAyxH,iBACA31E,WAAA1oC,SAAApT,UAAAA,YAAA/U,UAAAoB,KAAA4I,SAEAA,WAGAA,YAKA,MAAAu8H,cCvDA/7G,OAAA,2DAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAGA,MAAA,UAPAmK,KAAAw2C,cAAA,EAAA;AACA7B,AlGq8BA,QkGr8BA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAnmB,KAAAziC,KAAAwlD,cAAA7Q,QAAA6Q,cAAA7R,iBAAA3zC,KAAA2zC,gBA8CA,OAtCAiV,SAAA,sCACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAvsC,QAAA8zB,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,uHACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,4BAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,4BAAA/+C,WACA,gFACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AlGu7BA,SkGv7BAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,0BAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,0BAAA/+C,WACA,uLACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,cAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,cAAA/+C,WACA,+OACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AlGo7BA,SkGp7BAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,eAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,eAAA/+C,WACA,kNACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,SAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,SAAA/+C,WACA,kMACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AlGi7BA,SkGj7BAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,kBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,kBAAA/+C,WACA,oNACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,WAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,WAAA/+C,WACA,oMACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AjG/BA,AD68BA,SkG96BAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,mBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,mBAAA/+C,WACA,sNACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,aAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,aAAA/+C,WACA,iMACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AjGlCA,SiGkCAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,gCAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,gCAAA/+C,WACA,mNACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,UAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,UAAA/+C,WACA,0VACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AjGrCA,SiGqCAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,gBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,gBAAA/+C,WACA,KACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,MAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,MAAA/+C,WACA,0JACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,oCAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,oCAAA/+C,WACA,sJACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AjG1CA,SiG0CAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,2CAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,2CAAA/+C,WACA,0NACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,sDAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,sDAAA/+C,WACA,qEACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AjG7CA,SiG6CAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,sDAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,sDAAA/+C,WACA,2CCjDA8a,OAAA,+DAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAoBA,OAnBAA,SAAA,mDACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA7zC,QAAAo7B,QAAAJ,QAAAvS,KAAA2U,QAAA,EAAA2uF,SAAAlwI,MAAAwN,GAAAo/B,KAAA2U,QAAA,EAAA+iF,SAAAtkI;AAAAA,AlGNA,KkGMAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,eACAiC,OAAAlW,QAAA3vC,IAAA8oD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA7oD,GAAA8oD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,yDACAjD,OAAAlW,QAAAkzD,OAAA/5C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAg6C,MAAA/5C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,qDACAjD,OAAAlW,QAAAkzD,OAAA/5C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA;AlGhBA,IkGiBAg1D,OAAAgD,QAAAA,OAAAg6C,MAAA/5C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,6HACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAm4E,UAAA5wF,QAAAJ,QAAAvS,KAAA2U,QAAA,EAAA6uF,SAAApwI,MAAAwN,GAAAo/B,KAAA2U,QAAA,EAAA8uF,SAAArwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,oBAGA,QAAAuxE,UAAAtsE,OAAAh4D,MAGA,MAAA,SAGA,QAAAkwI,UAAAl4E,OAAAh4D,MAGA,MAAA,YAGA,QAAAqwI,UAAAr4E,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAcA,OAbAA,SAAA,wHACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AlGxCA,SkGwCAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,sDAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,sDAAA/+C,WACA,6EACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,sDAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,sDAAA/+C,WACA;AlG1CA,CkG2CA+7C,OAAAlW,QAAA30B,UAAA8tC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA7tC,SAAA8tC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,YACAna,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,kBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,kBAAA/+C,WACA,4DACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,kBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,kBAAA/+C,WACA;AlGjDA,CkGqDA,QAAAm3H,UAAAp4E,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAKA,OAJAA,SAAA,sFACAkF,OAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAA69B,UAAAt2C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA+uF,SAAAtwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,4BAGA,QAAAu9E,UAAAt4E,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAwBA,OAvBAA,SAAA,8DACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA7zC,QAAAo7B,QAAAJ,QAAAvS,KAAA2U,QAAA,EAAA2uF,SAAAlwI,MAAAwN,GAAAo/B,KAAA2U,QAAA,EAAA+iF,SAAAtkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF;AACAlF,AlGnEA,QkGmEA,eACAiC,OAAAlW,QAAA3vC,IAAA8oD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA7oD,GAAA8oD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,iEACAjD,OAAAlW,QAAAkzD,OAAA/5C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAg6C,MAAA/5C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,6DACAjD,OAAAlW,QAAAkzD,OAAA/5C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAg6C;AAAA/5C,AlG5EA,akG4EAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,oEACAna,kBAAAma,OAAAD,QAAAA,OAAAk+B,MAAAj+B,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA+8B,eAAA/8B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IACAna,kBAAAma,OAAAD,QAAAA,OAAAk+B,MAAAj+B,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAk9B,YAAAl9B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,mIACAA,OAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAAw+B;AAAAj3C,AlGlFA,QkGkFAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAgvF,UAAAvwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,2DAGA,QAAAw9E,WAAAv4E,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAkCA,OAjCAA,SAAA,sDACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA7zC,QAAAo7B,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAivF,UAAAxwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAi9B,SAAA11C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAkvF,UAAAzwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAg9B;AAAAz1C,AlG9FA,QkG8FAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAmvF,UAAA1wI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAk9B,QAAA31C,QAAAJ,QAAAvS,KAAA2U,QAAA,GAAAovF,UAAA3wI,MAAAwN,GAAAo/B,KAAA2U,QAAA,GAAAqvF,UAAA5wI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,eACAiC,OAAAlW,QAAA3vC,IAAA8oD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA7oD,GAAA8oD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,qBACAjD,OAAAlW,QAAA30B,UAAA8tC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA7tC,SAAA8tC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D;AAAAzY,AlGvGA,QkGuGAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,kFACAjD,OAAAlW,QAAAkzD,OAAA/5C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAg6C,MAAA/5C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,wEACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAi9B,SAAA11C,QAAAJ,QAAAvS,KAAA2U,QAAA,GAAAsvF,UAAA7wI,MAAAwN,GAAAo/B,KAAA2U,QAAA,GAAAuvF,UAAA9wI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;AlG/GA,CkGgHAiC,OAAAlW,QAAA99B,OAAAi3C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAh3C,MAAAi3C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,yCACAjD,OAAAlW,QAAAkzD,OAAA/5C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAg6C,MAAA/5C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,qFAGA,QAAAu4E,WAAAx4E,OAAAh4D,MAGA,MAAA,UAGA,QAAAywI,WAAAz4E,OAAAh4D,MAGA,MAAA,WAGA,QAAA0wI,WAAA14E,OAAAh4D;AAGA,AlGxIA,MkGwIA,YAGA,QAAA4wI,WAAA54E,OAAAh4D,MAGA,MAAA,UAGA,QAAA2wI,WAAA34E,OAAAh4D,MAGA,MAAA,UAGA,QAAA8wI,WAAA94E,OAAAh4D,MAGA,MAAA,UAGA,QAAA6wI,WAAA74E,OAAAh4D,MAEA,GAAAi4D,OAEA,OADAA,QAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAg9B,UAAAz1C,QAAAJ,QAAAvS,KAAA2U,QAAA,GAAAwvF,UAAA/wI,MAAAwN,GAAAo/B,KAAA2U,QAAA,GAAAyvF,UAAAhxI,MAAAA,KAAAA,OACAi4D,QAAA,IAAAA,OAAAA,OACA,GAEA,QAAA+4E,WAAAh5E,OAAAh4D,MAGA,MAAA,WAGA,QAAA+wI,WAAA/4E,OAAAh4D,MAEA,GAAAi4D,OAEA,OADAA,QAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAk9B,QAAA31C,QAAAJ,QAAAvS,KAAA2U,QAAA,GAAA0vF,UAAAjxI,MAAAwN,GAAAo/B,KAAA2U,QAAA,GAAA2vF,UAAAlxI,MAAAA,KAAAA,OACAi4D,QAAA,IAAAA,OAAAA,OACA;AlG9KA,CkGgLA,QAAAi5E,WAAAl5E,OAAAh4D,MAGA,MAAA,SAGA,QAAAixI,WAAAj5E,OAAAh4D,MAGA,MAAA,SAvMAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAlF,OAAA,GAAApD,cAAA7Q,QAAA6Q,cAAA7R,iBAAA3zC,KAAA2zC,iBAAAkW,aAAA,WAAApnB,KAAAziC,IA4MA,OAJA4oD,SAAA,+CACAkF,OAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAAvT,OAAAlF,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,gBC5LAh/B,OAAA,uDACA,SACA,SACA,OACA,eACA,gBACA,gCACA,0DACA,+DACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAupG,UAAAU,WAAAhgC,UAAAqhC,aAAAC;AACA,AnGZA,YmG4bA,SAAAC,kBAAAlsG,OAAAh1B,IAAAtB,SAKA,QAAAyiI,UAAAC,OACA,GAAApnH,UAAAonH,MAAAvxI,KAAA,YACAi1F,SAAAs8C,MAAA94H,SAAA+4H,QAAAv8C,QAGAloF,WAAA0kI,YAAAtnH,SAAA8qE,SAQAloF,UAAA0D,QAAA,OAAA0Z,SAAA8qE,SAQA,QAAA/2B,MAAAqzE,OACA,GAAApnH,UAAAonH,MAAAvxI,KAAA,WAOA+M,WAAA0D,QAAA,OAAA0Z,UAGA,GAAApd,WAAAqiI,UAAAsC,aAAAlnE,WACAqlE,YAAAsB,cAGAlxH,GAAA,OAAA,WACA9V,KAAA+S,GAAA,aACA/S,KAAA+xD,SAGA/xD,KAAAm5G,OAAAnzG,IAAAtB,WAIAoR,GAAA,UAAA,WACA9V,KAAAwnI,SAAA,OAIA1xH,GAAA,OAAA,WACA9V,KAAAynI,eAIA3xH,GAAA,SAAA,WACA,GAAA2sB,MAAAziC,KAGAslI,WAAAtlI,KAAAwlI,aACAkC,WAAApC,WAAArgI,KAAA0iI,WAAAC,WACAC,SAAAH,WAAAziI,KAAA,MACA6iI,MAAAxC,WAAArgI,KAAA0iI,WAAAI;AAGA/nI,AnGjgBA,KmGigBAwnI,UAEAQ,cAAA1C,WAAArgI,KAAA0iI,WAAAM,cACAC,YAAA5C,WAAArgI,KAAA0iI,WAAAQ,YACAC,gBAAA9C,WAAArgI,KAAA0iI,WAAAU,gBACAC,aAAAhD,WAAArgI,KAAA0iI,WAAAY,aAGAb,WAAAA,WACAG,SAAAA,SAGAC,MAAAA,MAGAU,aAAAlD,WAAArgI,KAAA0iI,WAAAc,cAIAzoI,KAAA0oI,eAGApD,WAAAxvH,GAAA,QAAA6xH,WAAA1C,UAAA0C,WAAAgB,eAAA,WACAlmG,KAAA1vB,GAAA,cACAuyH,WAAAj3H,YAAAg5H,QAAAx4E,WACAy2E,WAAAh3H,SAAA+4H,QAAAx4E,YACApsB,KAAAmmG,kBAMAtD,WAAAxvH,GAAA,QAAA6xH,WAAA1C,UAAA0C,WAAAkB,gBAAA,WACApmG,KAAA1vB,GAAA,aACA0vB,KAAAqmG,YAAAhmI,EAAA9C,MAAAub,QAAAosH,WAAAoB,WAAApB,WAAAoB;AnGliBA,GmGuiBAjB,MAAAhyH,GAAA,QAAA6xH,WAAA1C,UAAA0C,WAAAqB,WAAA,WACA,GAAAC,OAEAxmG,MAAA1vB,GAAA,cACAk2H,OAAAnmI,EAAA9C,MAAAub,QAAAosH,WAAArtF,OAEA7X,KAAAqmG,YAAAG,OAAAtB,WAAArtF,SACA2uF,OAAA36H,SAAA+4H,QAAArtH,QACAyoB,KAAAmmG,eAEAnmG,KAAAymG,SAAAD,OAAAhkI,KAAA0iI,WAAAj8C,UAAA/lF,QAAAsjI,YAQAnB,MAAAhyH,GAAA,QAAA6xH,WAAA1C,UAAA0C,WAAAwB,cAAA,WACA1mG,KAAA1vB,GAAA,aACA0vB,KAAAqmG,YAAAhmI,EAAA9C,MAAAub,QAAAosH,WAAAj8C,UAAAi8C,WAAAj8C,YAKAo8C,MAAAhyH,GAAA,QAAA6xH,WAAA1C,UAAA0C,WAAAyB,WAAA,SAAAvxI,OACA,GAAAuvI,OAAAhM,OAEA34F,MAAA1vB,GAAA,cACAq0H,MAAAtkI,EAAA9C,MAAAub,QAAAosH,WAAAt7C,OAEA+6C,MAAA94H,SAAA+4H,QAAAv+H,YACAsyH,QAAAt4H,EAAAjL,MAAAya;AACAmwB,AnGvkBA,KmGukBAzH,OAAAquG,SAAAjO,QAAAroH,GAAA40H,WAAAjuB,SAAA4rB,WAAAh3H,SAAA+4H,QAAAx4E,WAEAu4E,MAAA94H,SAAA+4H,QAAAiC,SACAnC,SAAAC,QAIA3kG,KAAA7zB,OAAAw4H,OACArzE,KAAAqzE,YAOAU,MAAAhyH,GAAA,QAAA6xH,WAAA1C,UAAA0C,WAAA4B,YAAA,WACA,GAAA75E,KAEAjtB,MAAA1vB,GAAA,cACA28C,KAAA5sD,EAAA9C,MAGA0vD,KAAAphD,SAAA+4H,QAAAv+H,YACA4mD,KAAAvhD,SAAAk5H,QAAAv+H,UACAirD,KAAArE,UAOAg4E,WAAA5xH,GAAA,QAAA6xH,WAAA1C,UAAA,KAAA,WACA,GAAAv1E,MAAA+iE,IAEAhwF,MAAA1vB,GAAA,cACA28C,KAAA5sD,EAAA9C,MACAyyH,KAAA/iE,KAAA75D,KAAA,QAGAgyI,SAAAz5H,YAAAi5H,QAAArtH,QACAsrH,WAAAl3H,YAAAi5H,QAAAx4E,WACAa,KAAAvhD,SAAAk5H,QAAArtH,QAGAyoB,KAAA/rC,OAAA+7H,UASA,OAHA7vH,WAAA4mI,cAAA;AAGA5mI,AnG3nBA,UmG2nBAR,KAAA44B,QA5mBA,GAAAqlC,YACAvM,MAAA,OACA21E,aAAA,EACAC,gBAAA,EACApoH,QAAA,GAQA+lH,SACArtH,OAAA,SACA60C,UAAA,YACA2qD,YAAA,cACAl4F,OAAA,SACAxY,SAAA,WACAgiF,QAAA,UACAD,SAAA,WACAE,OAAA,SACAu+C,OAAA,SACApP,KAAA,qBACApmE,OACAp+D,KAAA,aACAmrI,SAAA,kBACA4D,YAAA,uBASAkF,UACAtC,QAAAv8C,QACAu8C,QAAAx8C,SACAw8C,QAAAt8C,QAQA48C,YACA1C,UAAA,iBACA2C,UAAA,yBACAG,KAAA,sBACAY,eAAA,6BACAF,YAAA,wBACAR,aAAA;AACAE,AnGnEA,WmGmEA,+CACAE,eAAA,mDACAE,YAAA,gDACAQ,UAAA,sBACAF,gBAAA,6CACAvuF,MAAA,sBACA0uF,WAAA,6CACAt9C,SAAA,yBACAy9C,cAAA,gDACA98C,MAAA,sBACA+8C,WAAA,6CACAQ,UAAA,4CACAC,WAAA,6BACAnwB,MAAA,sBACA6vB,YAAA;AACAO,AnGjFA,SmGiFA,yBACAC,QAAA,UACAvwB,YAAA,eACAwwB,kBAAA,qBACAV,OAAA,UACAz+C,SAAA,YACAC,QAAA,WACAm/C,WAAA,iBACAC,YAAA,kBACA5oH,OAAA,WASA6oH,YACA3wG,IAAA,GACA4wG,WAAAzC,WAAA98C,SACAC,QAAA68C,WAAAsC,WACAp/C,SAAA88C,WAAAuC,YACAG,SAAA1C,WAAArmH,QAOAimH,cAMA1gC,YAAA,SAAA7mF,SAAAulH,MACA,GACAj7F,MADAtkC,IAAAhG,KAAAgG,GAGAA,OACAskC,KAAAq7D,UAAA9Z,UAAA7lF,IAAAga,UAEAsqB,OACAA,KAAAwgD,QAAAy6C,KACA5/B,UAAArZ,gBAAAtmF,IAAAga,aAUAsnH,YAAA,SAAAtnH,SAAAulH,MACA,GAEArL,MAFAkN,MAAApnH,UAAAA,SAAA7a,OAAA6a,SAAAhgB,KAAAwnI,SAAAM,MAAA7iI,KAAA,kBAAA+a,SAAA,KACAsqH,YAAAtqI,KAAAsqI;AAIAtqI,AnG7IA,KmG6IA6mG,YAAA7mF,SAAAulH,MAGA6B,MAAA/4H,YAAAg5H,QAAAv8C,QAAAy6C,MAGArL,KAAArpH,EAAA5L,KAAA0kI,SAAA94H,EAAAmF,KAAAoxH,MAAA94H,SAAA84H,SAAAC,QAAAiC,OACAlC,MAAAniI,KAAA0iI,WAAAjuB,OAAA70G,KAAA,QAAAwiI,QAAAnN,KAAA,SAAAA,MAGAoQ,YAAAx/C,QAAA9qF,KAAAwnI,SAAAM,MAAA7iI,KAAA0iI,WAAA78C,SAAA9zF,OACAgJ,KAAAuqI,WAAAvqI,KAAAwnI,SAAAc,aAAAgC,YAAAx/C,QAAAw/C,YAAAt/C,OAGAhrF,KAAAtJ,OAAAsJ,KAAAwpI,gBAOA9yI,OAAA,QAAAA,QAAA6xC,UACA,GAAA9F,MAAAziC,KAGAwqI,OAAAxqI,KAAAwnI,SAAAM,MAAA7iI,KAAA0iI,WAAAt7C,OAAAj+E,YAAAi5H,QAAA/lH,QAGA5qB,OAAAyzI,WAAA5hG,UACA8hG,SAAAF,WAAAzzI,OAAA,WAAA,WACAA,SACA8zI,OAAA9zI,OAAAA,QAAAyX,SAAAk5H,QAAA/lH,QAIAthB,KAAAwnI,SAAAM,MAAA7iI,KAAA0iI,WAAAj8C,UAAA72F,KAAA;AACA,AnGhLA,GmGgLA41I,UAAA3nI,EAAA9C,MACAwqI,OAAAC,SAAAxlI,KAAA0iI,WAAAt7C,OACAq+C,UAAAF,OAAA9zI,OAAA2zI,UACAr/C,MAAAw/C,OAAAxzI,OACAy1E,GAAAue,MAAA0/C,UAAA1zI,MACAyrC,MAAA8nG,WAAAE,SAAAxlI,KAAA0iI,WAAAmC,UAAAr9D,GAAAue,SAEAhrF,KAAAwpI,cAAAjhG,UAQAmgG,aAAA,SAAA1tG,QACA,GAAAsqG,YAAAtlI,KAAAwlI,aACAmF,WAAAtD,QAAAvzE,MAAA9zD,KAAAg7B,OAAA84B,OAAAuM,UAAAvM,MAoBA,OAjBA94B,QAAAnqB,EAAA/L,MAAA9E,KAAAg7B,OAAAA,YAGAsqG,WAAAj3H,YAAAg5H,QAAA7tB,YAAAx+E,OAAAyuG,aAGAnE,WAAAl3H,YAAAu8H,YACAA,WAAAtD,QAAAvzE,MAAA9zD,KAAAg7B,OAAA84B,OAAAuM,UAAAvM,OACAwxE,WAAAn3H,SAAAw8H,YAGA3vG,OAAA1Z,OACAthB,KAAA+B,OAEA/B,KAAA8B,OAGA9B,MAMAynI,WAAA,WACA9B,WAAA3lI,KAAAwnI,SAAAM,MAAA7iI,KAAA0iI,WAAAkC,YAAA7pI,KAAAwnI,SAAAM;AnG3NA,EmGoOA3uB,OAAA,SAAAnzG,IAAAtB,SACA,GAAAkmI,WAAA5qI,KAAA6qI,aAAA7kI,IAAAtB,SACA4lI,YAAAM,UAAA7+C,QACAlB,SAAA,EACAC,QAAA,EACAC,OAAA,EACAC,MAAA,EAkCA,OA/BAhrF,MAAAgG,IAAAA,IACAhG,KAAAsqI,YAAAA,YAGAtqI,KAAAuqI,WAAAvqI,KAAAwnI,SAAAQ,cAAAsC,YAAAz/C,SAAAy/C,YAAAt/C,OACAhrF,KAAAuqI,WAAAvqI,KAAAwnI,SAAAY,gBAAAkC,YAAAt/C,MAAAs/C,YAAAz/C,SAAAy/C,YAAAt/C,OACAhrF,KAAAuqI,WAAAvqI,KAAAwnI,SAAAU,YAAAoC,YAAAv/C,OAAAu/C,YAAAt/C,OACAhrF,KAAAuqI,WAAAvqI,KAAAwnI,SAAAc,aAAAgC,YAAAx/C,QAAAw/C,YAAAt/C,OAGAtmF,QAAAshI,UAaAhmI,KAAAwnI,SAAAE,WAAA3lI,OACA/B,KAAAwnI,SAAAgB,aAAA1mI,OACA9B,KAAAwnI,SAAAM,MAAAzmI,UAdArB,KAAAwnI,SAAAE,WAAA5lI;AACA9B,AnGxPA,KmGwPAwnI,SAAAgB,aAAAzmI,OACA/B,KAAAwnI,SAAAM,MAAAtpH,KAAAyoH,iBAAA2D,YAEA5qI,KAAAynI,aAEAznI,KAAAyuC,SAAA,kBAAAzuC,KAAAg7B,OAAA0uG,gBACA1pI,KAAAg7B,OAAA0uG,gBAEA1pI,KAAAwnI,SAAAM,MAAA7iI,KAAA0iI,WAAA2B,QAAAn7H,SAAAk5H,QAAAv+H,WASA9I,KAAAtJ,OAAAsJ,KAAAwnI,SAAAK,SAAAnxI,OAAAixI,WAAAoC,SAAAl0I,KAAA,SAEAmK,MASA6qI,aAAA,SAAA7kI,IAAAtB,SAEA,GAAAkmI,WAAA/5H,EAAA6mB,UAAA1xB,SAGA66H,SAAA+J,UAAAtwF,MAAA51C,QAAA89H,gBACA/2C,QAAAo1C,SAAAn1C,UAAAm1C,SAAAn1C,SAAAhnF,QAAA+9H,eACAn4F,KAAAmhD,QAAAY,OAAAZ,QAAAY,MAAA3nF,QAAAsiG,mBAQA,QALA65B,SAAA7mH,QAAA,EACAyxE,QAAAzxE,QAAA,EACAswB,KAAAtwB,QAAA,EAGAha,KAAAg7B,OAAA84B;AACA,AnGnSA,ImGmSA,cAEA82E,WACAtwF,SACAyxC,MAAAN,QAAAM,OAEA80C,SAAAn1C,YACAm1C,SAAAn1C,SAAAhnF,QAAA+9H,WAAAh3C,QACAm/C,UAAAtwF,MAAA51C,QAAA89H,YAAA3B,QACA,MAEA,KAAA,WAEA+J,WACAtwF,SACAyxC,MAAA80C,SAAA90C,OAEA6+C,UAAAtwF,MAAA51C,QAAA89H,YAAA3B,QACA,MAEA,SACA,IAAA,QAKA,MAAA+J,YAUAL,WAAA,SAAAO,OAAAt/F,MAAAw/C,OACA8/C,OAAA7xI,KAAAuyC,MAAA,IAAAw/C,QASAp8E,OAAA,SAAAoR,SAAAyG,MAEA,GAAAqhH,OAAA9nI,KAAAwnI,SAAAM,MACAhvI,SAAAknB,UAAAA,SAAA7a,OAAA6a,SAAA8nH,MAAA7iI,KAAA,kBAAA+a,SAAA,KACA+qH,UAAAjyI,SAAA8iB,aAAAksH,MAUA,OAPArhH,OACAzmB,KAAAkpI,SAAA6B,WAIAjD,MAAA7iI,KAAA0iI,WAAAoC,SAAA37H,YAAAi5H,QAAArtH;AACA+wH,AnG7VA,UmG6VAjzI,IAAAgB,UAAAqV,SAAAk5H,QAAArtH,QACAlhB,UAOA8vI,aAAA,WAEA,GAAAd,OAAA9nI,KAAAwnI,SAAAM,MACAhvI,SAAAgvI,MAAA7iI,KAAA0iI,WAAAt7C,MAAAs7C,WAAAoC,SACAgB,UAAAjyI,SAAA8iB,aAAAksH,MAKA,OAFA9nI,MAAAkpI,SAAA6B,WAEAjyI,UAQAowI,SAAA,SAAA8B,OAAAjlG,OACAA,MAAA/lC,KAAAwnI,SAAAM,OAAA7iI,KAAA0iI,WAAAnuB,aAAArrG,SAAAk5H,QAAAx4E,WACAm8E,OAAA58H,YAAAi5H,QAAAx4E,YASAi6E,YAAA,SAAA1iC,MAAA6kC,kBACA,GAAAp8E,WAAAu3C,MAAA93F,SAAA+4H,QAAAx4E,UAWA,OATAo8E,mBACAjrI,KAAAwnI,SAAAM,MAAA7iI,KAAAgmI,kBAAA98H,SAAAk5H,QAAAx4E,WAGAA,UACAu3C,MAAAh4F,YAAAi5H,QAAAx4E,WAEAu3C,MAAAj4F,SAAAk5H,QAAAx4E;AAEAA,AnG5YA,WmGoZAv4C,OAAA,SAAAxU,MAWA,MAVAioB,UAAAjoB,OACAA,KAAA9B,KAAA+S,GAAA,WAGAjR,KACA9B,KAAA8B,OAEA9B,KAAA+B,OAGA/B,MAsNA,OAAAknI,oBCnpBAt9G,OAAA,mDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,gBAoBA,OAjBAiV,SAAA,sBACAiC,OAAAlW,QAAAwxD,SAAAr4C,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAs4C,QAAAr4C,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D;AAAAzY,ApGsBA,QoGtBAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,2CACAjD,OAAAlW,QAAA0pE,OAAAvwD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAwwD,MAAAvwD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,0EACAjD,OAAAlW,QAAAulF,MAAApsE,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAqsE,KAAApsE,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,0CACAjD,OAAAlW,QAAA17C,MAAA60D,OAAAjD,OAAAr0D,KAAAq3D;AAAAzY,ApGYA,ACjCA,QmGqBAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA50D,KAAA60D,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,iCCDAlkC,OAAA,oDACA,SACA,SACA,OACA,WACA,yBACA,sDACA,mDACA,SAAA9mB,EAAA+N,EAAA6qB,GAAA29F,MAAAnnE,cAAAtvD,UAAAsoI,WACA,YAqCA,SAAAC,uBAAAzmI,SACA,GAAAhH,UAAAgH,QAAA0mI,YAAA,YAAA,SACA,OAAAC,YAAA3tI,UAQA,QAAA4tI,qBAAA1oI,WACA,GAAAlF,UAAAkF,UAAAmQ,GAAA,UAAA,aAAA;AACA,ApGhFA,MoGgFAs4H,YAAA3tI,UASA,QAAA6tI,cAAA11I,KAAAm5C,QACA,MAAAlsC,GAAAooI,UAAAr1I,OAAAigB,GAAA,QAAAk5B,QAQA,QAAAw8F,cAAAC,QAAA51I,MACA41I,QAAA51I,KAAA,aAAAA,KAAAswG,UACAslC,QACA51I,KAAA,UAAAA,KAAAswG,SACAthG,KAAA,QAAAhP,KAAAwoH,OAEAotB,QAAAxmI,KAAA,SAAAJ,KAAA,QAAAhP,KAAAqkI,MACAuR,QAAAxmI,KAAA,SAAAhM,KAAApD,KAAAoD,OArEA,GAAAoyI,aACAK,SACAvlC,QAAA,gBACAkY,MAAA3iF,GAAA,0CACAw+F,KAAA,SACAjhI,KAAAyiC,GAAA,oBAEAiwG,WACAxlC,QAAA,kBACAkY,MAAA3iF,GAAA,iDACAw+F,KAAA,SACAjhI,KAAAyiC,GAAA,sBAEAkwG,YACAzlC,QAAA,cACAkY,MAAA3iF,GAAA;AACAw+F,ApGnDA,KoGmDA,cACAjhI,KAAAyiC,GAAA,gBAEAmwG,YACA1lC,QAAA,cACAkY,MAAA3iF,GAAA,0BACAw+F,KAAA,cACAjhI,KAAAyiC,GAAA,gBAqDA,OAAAw2B,gBACArlD,KAAA,SAKAzK,KAAA,WAYA,QAAA0pI,aACA,GAAApnI,SAAA80H,WAAA9lE,gBACA,OAAAq4E,iBAAA9yH,SAAAvU,SAAAA,QAAAoK,SAAApK,QAAAoK,QAAAk9H,aASA,QAAA7E,UAAAnnH,SAAAulH,MAGA,MAFA9iG,MAAA95B,UAEA6wH,WAAAxmE,WACA8N,eAAA,YACA9gD,SAAAA,SACAulH,KAAAA,OAEAp8H,KAAA,WACA,GAAAzE,SAAA80H,WAAA9lE,gBAGAhvD,SAAA6iG,eAAAvnF,WACAtb,QAAA0mI,YAAA7F,MAIAiG,aAAA/oG,KAAAwpG,gBAAAd,sBAAAzmI;AAGA+9B,ApG/JA,KoG+JA7/B,UAAA0kI,YAAAtnH,SAAAulH,MACA9iG,KAAAm7D,WAlBA47B,SAoBA,WAEA/2F,KAAA7/B,UAAA0kI,YAAAtnH,UAAAulH,MACA9iG,KAAAm7D,WAhDA,GAAAn7D,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,gBACA9nE,SAAA6nE,WAAAhmE,cACA9uD,QAAA80H,WAAA9lE,iBACA1tD,IAAAwzH,WAAA5lE,aACAm4E,gBAAAp6E,SAAA32B,OAAAkxG,UA+CAlsI,MAAA4C,UAAAA,UAAAmpI,gBAAA/lI,IAAAtB,SACAoR,GAAA,OAAA,SAAAkK,UACAyiB,KAAA+L,SAAA,cAAA,IACA/L,KAAA95B,UACA6wH,WAAAzlE,KAAA/zC,SAAA,WAGAlK,GAAA,OAAA,SAAAkK,SAAAulH,MACA9iG,KAAA+L,SAAA,cAAA,GACA24F,SAAAnnH,SAAAulH,QAIAvlI,KAAAisI,gBAAAV,aAAAJ,sBAAAzmI,SAAA,SAAAtP,GACA,GAAAsP;AACAtP,ApGvLA,EoGuLAqd,iBACAgwB,KAAA+L,SAAA,cAAA,IACA9pC,QAAA80H,WAAA9lE,iBACAyzE,SAAAziI,QAAA6iG,cAAA7iG,QAAA0mI,gBAIAprI,KAAAmsI,cAAAZ,aAAAD,oBAAAtrI,KAAA4C,WAAA,SAAAxN,GACAA,EAAAqd,iBACAgwB,KAAA+L,SAAA,cAAA,IACA/L,KAAA7/B,UAAAmQ,GAAA,UACA0vB,KAAA7/B,UAAAd,OAEA2gC,KAAA7/B,UAAAb,OAGAypI,aAAA/oG,KAAA0pG,cAAAb,oBAAA7oG,KAAA7/B,eAKA5C,KAAA2I,UAEAmjI,aACA9rI,KAAA+B,OAIAy3H,WACA1jH,GAAA,WAAA,WACA,GAAApR,SAAA80H,WAAA9lE,iBACA1tD,IAAAwzH,WAAA5lE,YAEAk4E,cACAN,aAAA/oG,KAAAwpG,gBAAAd,sBAAAzmI,UACA+9B,KAAA7/B,UACAu2G,OAAAnzG,IAAAtB,SACAgkI;AACAW,ApG5NA,SoG4NA3kI,QAAAshI,UAAAthI,QAAAoK,QAAAs9H,aAEA3pG,KAAA3gC,OACA0pI,aAAA/oG,KAAA0pG,cAAAb,oBAAA7oG,KAAA7/B,aAEA6/B,KAAA1gC,SAGA+T,GAAA,cAAA,WACAg2H,aACArpG,KAAAm7D,WAGA9nF,GAAA,eAAA,WACAg2H,aACArpG,KAAA95B,aAQAopD,OAAA,WACA,GAAAN,YAAAzxD,KAAAmyD,gBACAk6E,kBAAA56E,WAAA66E,iBACAC,gBAAA96E,WAAA+6E,cAEAH,mBAAAzuH,OAAA5d,KAAAmsI,eACAE,kBAAAzuH,OAAA5d,KAAAisI,iBACAM,gBAAA3uH,OAAA5d,KAAA4C,UAAA4iI,eAMA92F,QAAA,WACA1uC,KAAAisI,gBAAA5wI,SACA2E,KAAAmsI,cAAA9wI,SACA2E,KAAA4C,UAAA8rC,WAMAkvD,OAAA;AACA59F,ApGzQA,KoGyQAisI,gBAAA79H,YAAA,YACAH,WAAA,YACAjO,KAAAmsI,cAAA/9H,YAAA,YAEAH,WAAA,YACAjO,KAAA4C,UAAAg7F,UAMAj1F,QAAA,WACA3I,KAAAisI,gBAAA99H,SAAA,YACAH,KAAA,YAAA,GACAhO,KAAAmsI,cAAAh+H,SAAA,YACAH,KAAA,YAAA,GACAhO,KAAA4C,UAAA+F,WAMA7G,KAAA,WACA,GAAA03H,YAAAx5H,KAAAy5H,gBACA/0H,QAAA80H,WAAA9lE,kBACAhvD,QAAAshI,UAAAthI,QAAAoK,QAAAs9H,WACA/S,MAAAv3H,KAAA9B,KAAAisI,iBAEA5S,MAAAt3H,KAAA/B,KAAAisI,iBAEA5S,MAAAv3H,KAAA9B,KAAAmsI,eACAnsI,KAAA4C,UAAAd,QAMAC,KAAA,WACAs3H,MAAAt3H,KAAA/B,KAAAisI,iBACA5S,MAAAt3H,KAAA/B,KAAAmsI,eACAnsI,KAAA4C,UAAAb;ApGhTA,MqGgBA6nB,OAAA,6CACA,SACA,OACA,WACA,yBACA,mDACA,SAAA9mB,EAAA44B,GAAA29F,MAAAnnE,cAAAg5E,WACA,YAKA,IAAAG,aACAhwH,MACA8qF,QAAA,eACAkY,MAAA3iF,GAAA,kCACAw+F,KAAA,UACAjhI,KAAAyiC,GAAA,SAEAz5B,KACAkkG,QAAA,WACAkY,MAAA3iF,GAAA,wCACAw+F,KAAA,eACAjhI,KAAAyiC,GAAA,cASA3kC,cAAA,SAAA2N,SACA,GAAAhH,UAAAgH,QAAA+nI,OAAA,MAAA,MACA,OAAA3pI,GAAAooI,UAAAG,WAAA3tI,aAQAgvI,cAAA,SAAA76F,SAAAntC,SACA,GAAAhH,UAAAgH,QAAA+nI,OAAA,MAAA,MACA56F,UAAAh8C,KAAA,aAAAw1I,WAAA3tI,UAAAyoG,UAEAt0D,SAAAh8C,KAAA,UAAAw1I,WAAA3tI,UAAAyoG,SACAthG,KAAA,QAAAwmI,WAAA3tI,UAAA2gH,OACAp5G,KAAA,SAAAhM,KAAAoyI,WAAA3tI,UAAAzE;AAEA,ArGjEA,SqGiEAyE,SACAm0C,SAAA5sC,KAAA,SAAAomI,WAAAppI,IAAAi4H,MACA9rH,YAAA,QAAAi9H,WAAAppI,IAAAi4H,MACA/rH,SAAA,QAAAk9H,WAAAhwH,KAAA6+G,MAEAroF,SAAA5sC,KAAA,SAAAomI,WAAAhwH,KAAA6+G,MACA9rH,YAAA,QAAAi9H,WAAAhwH,KAAA6+G,MACA/rH,SAAA,QAAAk9H,WAAAppI,IAAAi4H,OAQA,OAAAhoE,gBACArlD,KAAA,OAKAzK,KAAA,WACA,GAAAqgC,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,eAGAz5H,MAAA6xC,SAAA96C,cAAAyiI,WAAA9lE,kBAGA1zD,KAAA6xC,SAAA/7B,GAAA,QAAA,SAAA1gB,GACAA,EAAAqd,iBAEAgwB,KAAA+L,SAAA,cAAA,IACA/L,KAAA95B,UACA,aAAA7F,EAAA9C,MAAAnK,KAAA,YACA4sC,KAAAn8B,QAAA,OAEAkzH,WAAAn+G,UAKArb,KAAA2I,UAGA6wH,WACA1jH,GAAA,WAAA,WACA42H,cAAAjqG,KAAAoP,SAAA2nF,WAAA9lE;ArG/GA,GqGiHA59C,GAAA,YAAA,WACA2sB,KAAAm7D,WAEA9nF,GAAA,aAAA,WACA2sB,KAAA95B,aAOAopD,OAAA,WAGA,GAAA9B,YAAAjwD,KAAAmyD,gBAAAw6E,mBACA18E,YAAAryC,OAAA5d,KAAA6xC,WAMAnD,QAAA,WACA1uC,KAAA6xC,SAAAx2C,UAMAuiG,OAAA,WACA59F,KAAA6xC,SAAA5jC,WAAA,YACAG,YAAA,aAMAzF,QAAA,WACA3I,KAAA6xC,SAAA7jC,KAAA,YAAA,GACAG,SAAA,aAMArM,KAAA,WACAu3H,MAAAv3H,KAAA9B,KAAA6xC,WAMA9vC,KAAA,WACAs3H,MAAAt3H,KAAA/B,KAAA6xC,eCvJAjoB,OAAA,iDACA,SACA,OACA,WACA,yBACA,mDACA,SAAA9mB,EAAA44B,GAAA29F,MAAAnnE,cAAAg5E;AACA,AtGpBA,YsGyBA,OAAAh5E,gBAEArlD,KAAA,WAKAzK,KAAA,WACA,GAAAqgC,MAAAziC,KAEAw5H,WAAAx5H,KAAAy5H,gBAKAnjH,OAAA,WACA,GAAA5R,SAAA80H,WAAA9lE,gBACA,KAAAhvD,QAAAkoI,gBAAAloI,QAAAmoI,gBACApqG,KAAA3gC,OAEA2gC,KAAA1gC,OAKA/B,MAAA6xC,SAAA/uC,EAAAooI,WACA/kC,QAAA,gBACAkY,MAAA3iF,GAAA,sCACAw+F,KAAA,WACAjhI,KAAAyiC,GAAA,eAIA17B,KAAA6xC,SAAA/7B,GAAA,QAAA,SAAA1gB,GACAA,EAAAqd,iBACAgwB,KAAA+L,SAAA,cAAA,IACA/L,KAAA95B,UAEA6wH,WAAA7pE,cAKAr5C,SACAmsB,KAAA95B,UAGA6wH,WACA1jH,GAAA,WAAAQ,QACAR,GAAA,YAAA,WACA2sB,KAAAm7D,WAEA9nF,GAAA,aAAA,WACA2sB,KAAA95B,aAOAopD,OAAA;AACA,AtGrFA,GsGqFA9B,YAAAjwD,KAAAmyD,gBAAAw6E,mBACA18E,YAAAryC,OAAA5d,KAAA6xC,WAMAnD,QAAA,WACA1uC,KAAA6xC,SAAAx2C,UAMAuiG,OAAA,WACA59F,KAAA6xC,SAAA5jC,WAAA,YACAG,YAAA,aAMAzF,QAAA,WACA3I,KAAA6xC,SAAA7jC,KAAA,YAAA,GACAG,SAAA,aAMArM,KAAA,WACAu3H,MAAAv3H,KAAA9B,KAAA6xC,WAMA9vC,KAAA,WACAs3H,MAAAt3H,KAAA/B,KAAA6xC,eC/GAjoB,OAAA,oDACA,SACA,SACA,OACA,WACA,yBACA,qCACA,mDACA,SAAA9mB,EAAA+N,EAAA6qB,GAAA29F,MAAAnnE,cAAA9gB,SAAA85F,WACA,YAEA,OAAAh5E;AACArlD,AvGvBA,KuGuBA,cACAzK,KAAA,WAKA,QAAAkU,UACA,GAAAxH,SAAA0qH,WAAA9lE,iBAAA5kD,OACA+qH,YAAAiT,cAAAh+H,QAAAg+H,aAAAh+H,QAAAi+H,oBACAtqG,KAAA3gC,OAEA2gC,KAAA1gC,OAIA,QAAA+qI,eACAtT,WAAAn+G,KAAA,WAdA,GAAAonB,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,gBACAI,WAAAL,WAAAhmE,cAAAx4B,MAeAh7B,MAAA6xC,SAAA/uC,EAAAooI,WACA/kC,QAAA,eACAkY,MAAA3iF,GAAA,4BACAw+F,KAAA,eACAjhI,KAAAyiC,GAAA,mBAGA17B,KAAA6xC,SAAA/7B,GAAA,QAAA,SAAA1gB,GACA,GAAAsP,SAAA80H,WAAA9lE,iBACAkqC,OAAA/sF,EAAAmF,KAAAysB,KAAAm7D,OAAAn7D,KACArtC,GAAAqd,iBACAgwB,KAAA+L,SAAA,cAAA,IACA/L,KAAA95B,UAEAjE,QAAAoK,QAAAi+H,mBACAvT,WAAAlzH,QACA,UACA8qC,SAAAkwF,eACA5lG,GAAA,8IACA,UAAA89F,YACAsT,YACAlvC,QAGAkvC;AvGjEA,GuGsEA9sI,KAAA2I,UACA2N,SAEAkjH,WACA1jH,GAAA,WAAAQ,QACAR,GAAA,YAAA,WACA2sB,KAAAm7D,WAEA9nF,GAAA,aAAA,WACA2sB,KAAA95B,aAOAopD,OAAA,WAGA,GAAA9B,YAAAjwD,KAAAmyD,gBAAAw6E,mBACA18E,YAAAryC,OAAA5d,KAAA6xC,WAMAnD,QAAA,WACA1uC,KAAA6xC,SAAAx2C,UAMAuiG,OAAA,WACA59F,KAAA6xC,SAAA5jC,WAAA,YACAG,YAAA,aAMAzF,QAAA,WACA3I,KAAA6xC,SAAA7jC,KAAA,YAAA,GACAG,SAAA,aAMArM,KAAA,WACAu3H,MAAAv3H,KAAA9B,KAAA6xC,WAMA9vC,KAAA,WACAs3H,MAAAt3H,KAAA/B,KAAA6xC,eCrHAjoB,OAAA,6CACA,SACA,OACA,WACA,yBACA,mDACA,SAAA9mB,EAAA44B,GAAA29F,MAAAnnE,cAAAg5E;AACA,AxGhBA,YwGqBA,IAAAG,aACAr3E,MACAmyC,QAAA,OACAkY,MAAA3iF,GAAA,iCACAw+F,KAAA,WACAjhI,KAAAyiC,GAAA,SAEAz5B,KACAkkG,QAAA,WACAkY,MAAA3iF,GAAA,sCACAw+F,KAAA,WACAjhI,KAAAyiC,GAAA,uBASA3kC,cAAA,SAAA2N,SACA,GAAAhH,UAAAgH,QAAA+nI,OAAA,MAAA,MACA,OAAA3pI,GAAAooI,UAAAG,WAAA3tI,aAQAgvI,cAAA,SAAA76F,SAAAntC,SACA,GAAAhH,UAAAgH,QAAA+nI,OAAA,MAAA,MACA56F,UAAAh8C,KAAA,aAAAw1I,WAAA3tI,UAAAyoG,SAEAt0D,SAAAh8C,KAAA,UAAAw1I,WAAA3tI,UAAAyoG,SACAthG,KAAA,QAAAwmI,WAAA3tI,UAAA2gH,OACAp5G,KAAA,SAAAhM,KAAAoyI,WAAA3tI,UAAA2gH,OAOA,OAAAnsD,gBAEArlD,KAAA;AAKAzK,AxGtEA,KwGsEA,WACA,GAAAqgC,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,gBAEAnjH,OAAA,WACA,GAAA5R,SAAA80H,WAAA9lE,gBACA,OAAAhvD,SAAAoK,QAAAk+H,iBAAA,GACAvqG,KAAA3gC,QACA,IAGA2gC,KAAA1gC,QACA,GAGA/B,MAAA6xC,SAAA96C,cAAAyiI,WAAA9lE,kBAEA1zD,KAAA6xC,SAAA/7B,GAAA,QAAA,SAAA1gB,GACAA,EAAAqd,iBAEAgwB,KAAA+L,SAAA,cAAA,IACA/L,KAAA95B,UAEA6wH,WAAAxlE,UAIA19C,SACAmsB,KAAA95B,UAEA6wH,WACA1jH,GAAA,WAAA,WACAQ,UACAo2H,cAAAjqG,KAAAoP,SAAA2nF,WAAA9lE,oBAGA59C,GAAA,YAAA,WACA2sB,KAAAm7D,WAEA9nF,GAAA,aAAA,WACA2sB,KAAA95B,aAOAopD,OAAA,WACA,GAAA9B,YAAAjwD,KAAAmyD,gBAAAw6E;AACA18E,AxGtHA,WwGsHAryC,OAAA5d,KAAA6xC,WAMAnD,QAAA,WACA1uC,KAAA6xC,SAAAx2C,UAMAuiG,OAAA,WACA59F,KAAA6xC,SAAA5jC,WAAA,YACAG,YAAA,aAMAzF,QAAA,WACA3I,KAAA6xC,SAAA7jC,KAAA,YAAA,GACAG,SAAA,aAMArM,KAAA,WACAu3H,MAAAv3H,KAAA9B,KAAA6xC,WAMA9vC,KAAA,WACAs3H,MAAAt3H,KAAA/B,KAAA6xC,eC1KAjoB,OAAA,uDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAg1D,QAAA/7C,QAAA85C,OAAA,GAAApD,cAAA7Q,QAAA6Q,cAAA7R,iBAAA3zC,KAAA2zC;AAUA,AzGEA,MyGTAiV,SAAA,+GACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,gBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,gBAAA/+C,WACA,8FACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,SAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,SAAA/+C,WACA,iFACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,AzGKA,SyGLAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,OAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,OAAA/+C,WACA,0BCSA8a,OAAA,mDACA,SACA,OACA,yBACA,WACA,kDACA,uDACA,SAAA9mB,EAAA44B,GAAAw2B,cAAAmnE,MAAA6R,UAAA+B,YACA,YAKA,OAAA/6E,gBAEArlD,KAAA,UAKAzK,KAAA,WAQA,QAAA8qI,gBACA,GAAAxoI,SAAA80H,WAAA9lE,gBACAhvD,SAAAoK,QAAAq+H,aACA1qG,KAAA3gC,OAEA2gC,KAAA1gC,OAZA,GAAA0gC,MAAAziC,KAEAw5H,WAAAx5H,KAAAy5H,eAeAz5H,MAAAyrI,QAAA3oI,EAAAooI;AACA/kC,A1G3CA,Q0G2CA,UACAkY,MAAA3iF,GAAA,mBACAw+F,KAAA,MACAjhI,KAAAyiC,GAAA,cAIA17B,KAAAotI,MAAAtqI,EAAAmqI,cAAA9xI,SAAA6E,KAAAyrI,SACAzrI,KAAAqtI,OAAArtI,KAAAyrI,QAAAxmI,KAAA,qCACAjF,KAAAstI,QAAAttI,KAAAyrI,QAAAxmI,KAAA,uCACAjF,KAAAutI,QAAAvtI,KAAAyrI,QAAAxmI,KAAA,qCAGAjF,KAAAyrI,QAAA31H,GAAA,QAAA,SAAA1gB,GAEA0N,EAAA1N,EAAAkd,QAAAiJ,QAAA,gCAAAvkB,SAIA5B,EAAAqd,iBAEAgwB,KAAA+L,SAAA,cAAA,IAEA6qF,MAAA/iH,OAAAmsB,KAAA2qG,OACA/T,MAAAV,SAAAl2F,KAAA2qG,QAEA3qG,KAAA4qG,OAAA9+H,IAAA,IAAAoG,YAMA3U,KAAAstI,QAAAx3H,GAAA,QAAA,WACAujH,MAAAt3H,KAAA0gC,KAAA2qG,SAIAptI,KAAAutI,QAAAz3H,GAAA,QAAA,WACA,GAAAqlC,SAAA1Y,KAAA4qG,OAAA9+H;AAEA4sC,A1GlFA,U0GmFA1Y,KAAA95B,UAEA6wH,WAAAxmE,WACA8N,eAAA,WACA3lB,QAAAA,UAEAhyC,KAAA,WACAkwH,MAAAt3H,KAAA0gC,KAAA2qG,OACA3qG,KAAAm7D,WANA47B,SAQA,WACAH,MAAAt3H,KAAA0gC,KAAA2qG,OACA3qG,KAAAm7D,cAMAsvC,eACAltI,KAAA2I,UAGA6wH,WACA1jH,GAAA,WAAAo3H,cACAp3H,GAAA,aAAA,WACA2sB,KAAAm7D,WAEA9nF,GAAA,aAAA,WACA2sB,KAAA95B,aAOAopD,OAAA,WACA,GAAA9B,YAAAjwD,KAAAmyD,gBAAAm6E,gBACAr8E,YAAAryC,OAAA5d,KAAAyrI,UAMA/8F,QAAA,WACA1uC,KAAAyrI,QAAApwI,UAMAuiG,OAAA,WACA59F,KAAAyrI,QAAAx9H,WAAA,YACAG,YAAA,aAMAzF,QAAA,WACA0wH,MAAAt3H,KAAA/B,KAAAotI,OACAptI,KAAAyrI,QAAAz9H,KAAA,YAAA,GACAG,SAAA;A1G/IA,E0GqJArM,KAAA,WACAu3H,MAAAv3H,KAAA9B,KAAAyrI,UAMA1pI,KAAA,WACAs3H,MAAAt3H,KAAA/B,KAAAotI,OACA/T,MAAAt3H,KAAA/B,KAAAyrI,cC5KA,SAAA+B,YACA,YA0gBA,SAAAC,UAEA,QAAAp1G,WAAAp3B,GACA,IAAAA,GAAA,gBAAAA,GAAA,OAAA,CAEA,IAAAysI,SAAAC,UAAA1sI,IAAAuF,MAEA,OAAA,kBAAA9Q,WAAAg4I,SAAA15C,SACA/yF,YAAAysI,SAAA15C,QACA,IAAA/yF,EAAA9L,UAAA,gBAAA8L,GAAA9I,SAEA,QAAAqK,UAAAorI,OAAA,MAAAA,SAAApnI,WAAAonI,QAAAA,MAAAC,SAAAD,gBAAAA,OAAAC,OACA,QAAAC,WAAAF,OAAA,QAAAA,OAAAA,gBAAAG,kBACA,QAAA7xI,SAAA0xI,OACA,MAAAl1G,UAAAk1G,QACA7jH,eAAA6jH,OAAA52I,QACAV,WAAAs3I,MAAAjwI,QAEA,QAAA+6B,UAAAk1G;A3G9gBA,A2G8gBA,QAAAA,OAAA,gBAAAA,OACA,QAAAt3I,YAAAs3I,OAAA,MAAA,kBAAAA,OACA,QAAAn1G,UAAAm1G,OAAA,MAAA,gBAAAA,OACA,QAAAI,QAAAJ,OAAA,MAAA,iBAAAA,OACA,QAAAh1G,UAAAg1G,OAAA,MAAA,gBAAAA,OAEA,QAAAK,aAAAp1I,OACA,MAAA+/B,UAAA//B,QAGAgD,SAAAqyI,cAAAr1I,QACA,IAJA,EAOA,QAAAd,QAAAo2I,KAAA7qI,QACA,IAAA,GAAA0K,QAAA1K,QACA6qI,KAAAngI,MAAA1K,OAAA0K,KAEA,OAAAmgI,MAOA,QAAAC,eAAAD,KAAA7qI,QACA,IAAA,GAAA0K,QAAA1K,QAAA,CACA,GAAA+qI,aAAA,CAGA,KAAA,GAAAC,UAAAC,iBACA,GAAA,IAAAvgI,KAAAhL,QAAAsrI,SAAAC,gBAAAD,QAAA54I,KAAAsY,MAAA,CACAqgI,YAAA,CACA,OAIAA,aACAF,KAAAngI,MAAA1K,OAAA0K;A3GnjBA,C2GsjBA,MAAAmgI,MAGA,QAAAK,YAAAL,KAAAzvH,KACAyvH,KAAAM,KAAAN,KAAAM,SACAN,KAAAM,KAAA7qI,EAAA8a,IAAA+vH,KAAA7qI,EACAuqI,KAAAM,KAAA5qI,EAAA6a,IAAA+vH,KAAA5qI,EAEAsqI,KAAAO,OAAAP,KAAAO,WACAP,KAAAO,OAAA9qI,EAAA8a,IAAAgwH,OAAA9qI,EACAuqI,KAAAO,OAAA7qI,EAAA6a,IAAAgwH,OAAA7qI,EAEAsqI,KAAA94H,UAAAqJ,IAAArJ,UAGA,QAAAs5H,YAAAC,UAAAC,SAAArzC,aACA,GAAAszC,SAAAD,SAAA73I,OAAA,EACA+3I,eAAAF,UACAA,SAAA,EAEAG,WAAAF,QAAAG,MAAAzzC,aACAozC,UAAAH,KAAA7qI,EAAAqrI,MAAArrI,EACAgrI,UAAAH,KAAA5qI,EAAAorI,MAAAprI,EAEAqrI,YAAAJ,QAAAG,MAAAzzC,aACAozC,UAAAF,OAAA9qI,EAAAqrI,MAAArrI,EACAgrI,UAAAF,OAAA7qI,EAAAorI,MAAAprI,EAEA+qI,UAAAv5H,WAAA,GAAAnN,OAAAC,UAGA,QAAAgnI,gBAAAP,UAAAtzH,KAAA0L,KACA4nH,UAAAH,KAAA7qI,EAAAojB,IAAAynH,KAAA7qI,EAAA0X,KAAAmzH,KAAA7qI,EACAgrI,UAAAH,KAAA5qI,EAAAmjB,IAAAynH,KAAA5qI,EAAAyX,KAAAmzH,KAAA5qI;A3GtlBA,A2GulBA+qI,UAAAF,OAAA9qI,EAAAojB,IAAA0nH,OAAA9qI,EAAA0X,KAAAozH,OAAA9qI,EACAgrI,UAAAF,OAAA7qI,EAAAmjB,IAAA0nH,OAAA7qI,EAAAyX,KAAAozH,OAAA7qI,EACA+qI,UAAAv5H,WAAA,GAAAnN,OAAAC,UAAAmT,KAAAjG,SAGA,IAAAyW,IAAAvxB,KAAAC,IAAAo0I,UAAAv5H,UAAA,IAAA,KACAu5H,WAAAH,KAAAhnH,MAAA2nH,MAAAR,UAAAH,KAAA7qI,EAAAgrI,UAAAH,KAAA5qI,GAAAioB,GACA8iH,UAAAH,KAAAY,GAAAT,UAAAH,KAAA7qI,EAAAkoB,GACA8iH,UAAAH,KAAAa,GAAAV,UAAAH,KAAA5qI,EAAAioB,GAEA8iH,UAAAF,OAAAjnH,MAAA2nH,MAAAR,UAAAF,OAAA9qI,EAAAgrI,UAAAH,KAAA5qI,GAAAioB,GACA8iH,UAAAF,OAAAW,GAAAT,UAAAF,OAAA9qI,EAAAkoB,GACA8iH,UAAAF,OAAAY,GAAAV,UAAAF,OAAA7qI,EAAAioB,GAGA,QAAAyjH,iBAAAT,SACA,MAAAA,mBAAAtoI,QAAAyL,OACAu9H,eAAAhpI,OAAAipI,OAAAX,kBAAAtoI,QAAAipI,MAIA,QAAAC,OAAAh3I,KAAAo2I,QAAAa,IAOA,MANAA,IAAAA;A3G5mBA,A2G6mBAj3I,KAAAA,MAAA,OAEAi3I,GAAA/rI,EAAAkrI,QAAAp2I,KAAA,KACAi3I,GAAA9rI,EAAAirI,QAAAp2I,KAAA,KAEAi3I,GAGA,QAAAX,WAAAF,QAAAL,MAcA,MAbAA,MAAAA,SAGAmB,eAAAL,gBAAAT,UACAY,MAAA,SAAAZ,QAAAL,MAEAA,KAAA7qI,GAAA4C,OAAAqpI,QACApB,KAAA5qI,GAAA2C,OAAAspI,SAGAJ,MAAA,OAAAZ,QAAAL,MAGAA,KAGA,QAAAS,aAAAJ,QAAAJ,QAWA,MAVAA,QAAAA,WAEAkB,eAAAL,gBAAAT,SAEAY,MAAA,SAAAZ,QAAAJ,QAGAgB,MAAA,SAAAZ,QAAAJ,QAGAA,OAGA,QAAAqB,aAAAC,KAEA,MADAA,KAAAA,KAAAxpI,QAEA5C,EAAAosI,IAAAH,SAAAG,IAAAn0I,SAAA6L,gBAAAqM,WACAlQ,EAAAmsI,IAAAF,SAAAE,IAAAn0I,SAAA6L,gBAAAyM,WAIA,QAAA87H,cAAAnB,SACA,MAAAr2G,UAAAq2G,QAAAoB,WAAApB,QAAAoB,UAAApB,QAAAljD;A3G5pBA,C2G+pBA,QAAAukD,kBAAAz9C,SACA,MAAAA,mBAAA09C,oBACA19C,QAAA29C,wBACA39C,QAGA,QAAAi7C,WAAAlxG,MACA,GAAAj6B,SAAAi6B,MACA,MAAAA,KAGA,IAAA6zG,UAAA7zG,KAAAplC,eAAAolC,IAEA,OAAA6zG,UAAA7tI,aAAA6tI,SAAA5tI,cAAA8D,OAGA,QAAA+pI,sBAAA79C,SACA,GAAA89C,YAAA99C,kBAAA+9C,YACA/9C,QAAAzpE,wBACAypE,QAAAg+C,iBAAA,EAEA,OAAAF,cACAtvH,KAAAsvH,WAAAtvH,KACAsnB,MAAAgoG,WAAAhoG,MACAz8B,IAAAykI,WAAAzkI,IACAilG,OAAAw/B,WAAAx/B,OACAx1G,MAAAg1I,WAAAh1I,OAAAg1I,WAAAhoG,MAAAgoG,WAAAtvH,KACAzlB,OAAA+0I,WAAA/0I,QAAA+0I,WAAAx/B,OAAAw/B,WAAAzkI,KAIA,QAAA4kI,gBAAAj+C;A3G7rBA,A2G8rBA,GAAA89C,YAAAD,qBAAA79C,QAEA,KAAAk+C,QAAAJ,WAAA,CACA,GAAAxhC,QAAA+gC,YAAApC,UAAAj7C,SAEA89C,YAAAtvH,MAAA8tF,OAAAprG,EACA4sI,WAAAhoG,OAAAwmE,OAAAprG,EACA4sI,WAAAzkI,KAAAijG,OAAAnrG,EACA2sI,WAAAx/B,QAAAhC,OAAAnrG,EAGA,MAAA2sI,YAGA,QAAAK,cAAAh5I,OACA,GAAAi5I,WAyBA,OAtBA50I,SAAArE,QACAi5I,QAAA,GAAAj5I,MAAA,GACAi5I,QAAA,GAAAj5I,MAAA,IAIA,aAAAA,MAAAa,KACA,IAAAb,MAAAi5I,QAAA95I,QACA85I,QAAA,GAAAj5I,MAAAi5I,QAAA,GACAA,QAAA,GAAAj5I,MAAAk5I,eAAA,IAEA,IAAAl5I,MAAAi5I,QAAA95I,SACA85I,QAAA,GAAAj5I,MAAAk5I,eAAA,GACAD,QAAA,GAAAj5I,MAAAk5I,eAAA,KAIAD,QAAA,GAAAj5I,MAAAi5I,QAAA,GACAA,QAAA,GAAAj5I,MAAAi5I,QAAA,IAIAA,QAGA,QAAA/B,gBAAAF,UAWA,IAAA,GAFA7gI,MARAgjI;A3GzuBA,A2G0uBAn9H,MAAA,EACAI,MAAA,EACAH,QAAA,EACAI,QAAA,EACA+8H,QAAA,EACAC,QAAA,GAIA70I,EAAA,EAAAA,EAAAwyI,SAAA73I,OAAAqF,IACA,IAAA2R,OAAAgjI,SACAA,QAAAhjI,OAAA6gI,SAAAxyI,GAAA2R,KAGA,KAAAA,OAAAgjI,SACAA,QAAAhjI,OAAA6gI,SAAA73I,MAGA,OAAAg6I,SAGA,QAAAG,WAAAt5I,OACA,GAAAA,MAAAb,QAAAa,MAAAi5I,SAAAj5I,MAAAi5I,QAAA95I,OAAA,EAAA,CAIA,GAAA85I,SAAAD,aAAAh5I,OACAu5I,KAAA72I,KAAA+3B,IAAAw+G,QAAA,GAAAj9H,MAAAi9H,QAAA,GAAAj9H,OACAw9H,KAAA92I,KAAA+3B,IAAAw+G,QAAA,GAAA78H,MAAA68H,QAAA,GAAA78H,OACAq9H,KAAA/2I,KAAAC,IAAAs2I,QAAA,GAAAj9H,MAAAi9H,QAAA,GAAAj9H,OACA09H,KAAAh3I,KAAAC,IAAAs2I,QAAA,GAAA78H,MAAA68H,QAAA,GAAA78H,MAEA,QACArQ,EAAAwtI,KACAvtI,EAAAwtI,KACAnwH,KAAAkwH,KACArlI,IAAAslI,KACA71I,MAAA81I,KAAAF,KACA31I,OAAA81I,KAAAF,OAIA,QAAAG,eAAA35I,MAAA45I,aACAA,YAAAA,aAAA3iF,eAAA2iF;A3GpxBA,A2GsxBA,GAAAC,SAAAD,YAAA,IACAE,QAAAF,YAAA,IACAX,QAAAD,aAAAh5I,OAGA+5I,GAAAd,QAAA,GAAAY,SAAAZ,QAAA,GAAAY,SACAG,GAAAf,QAAA,GAAAa,SAAAb,QAAA,GAAAa,QAEA,OAAAvC,OAAAwC,GAAAC,IAGA,QAAAC,YAAAj6I,MAAAk6I,UAAAN,aACAA,YAAAA,aAAA3iF,eAAA2iF,WAEA,IAAAC,SAAAD,YAAA,IACAE,QAAAF,YAAA,IACAX,QAAAD,aAAAh5I,OACA+5I,GAAAd,QAAA,GAAAY,SAAAZ,QAAA,GAAAY,SACAG,GAAAf,QAAA,GAAAa,SAAAb,QAAA,GAAAa,SACAK,MAAA,IAAAz3I,KAAA03I,KAAAJ,GAAAD,IAAAr3I,KAAA8tB,EAEA,IAAAoQ,SAAAs5G,WAAA,CACA,GAAAG,IAAAF,MAAAD,UACAI,UAAAD,GAAA,GAEAC,WAAA,IACAH,OAAA,IAAAA,MAAA,IAAA,EAEAG,UAAA,IACAH,OAAA,IAAAA,MAAA,IAAA,EAEA,KAAAG,UACAH,OAAA,IAAAA,MAAA,IAAA,EAEA,KAAAG,YACAH,OAAA,IAAAA,MAAA,IAAA;A3GxzBA,C2G4zBA,MAAAA,OAGA,QAAAI,aAAAC,aAAA3/C,SACA,GAAA0hC,QAAAie,aACAA,aAAAvjI,QAAAslH,OACAtlE,eAAAslE,MAuBA,OArBA,WAAAA,OACAA,OAAAke,cAAA5/C,SAEA,SAAA0hC,OACAA,OAAAie,aAAAE,QAAA7/C,SAEAu7C,YAAA7Z,UACAA,OAAA74G,QAAAm3E,QAAA0hC,UAAAxwH,EAAA,EAAAC,EAAA,IAGAvN,WAAA89H,UACAA,OAAAA,OAAAie,cAAA3/C,UAGAr6D,UAAA+7F,UACAA,OAAAuc,eAAAvc,SAGAA,OAAAxwH,EAAA,KAAAwwH,QAAAA,OAAAxwH,EAAAwwH,OAAAlzG,KACAkzG,OAAAvwH,EAAA,KAAAuwH,QAAAA,OAAAvwH,EAAAuwH,OAAAroH,IAEAqoH,OAIA,QAAAoe,kBAAAhvI,EAAAivI,GAAAC,GAAAC,IACA,GAAAC,IAAA,EAAApvI,CACA,OAAAovI,IAAAA,GAAAH,GAAA,EAAAG,GAAApvI,EAAAkvI,GAAAlvI,EAAAA,EAAAmvI,GAGA,QAAAE,wBAAAC,OAAAC,OAAAC,IAAAC,IAAAC,KAAAC,KAAAnzH,UACA;A3Gl2BA,A2Gm2BApc,EAAA4uI,iBAAAxyH,SAAA8yH,OAAAE,IAAAE,MACArvI,EAAA2uI,iBAAAxyH,SAAA+yH,OAAAE,IAAAE,OAKA,QAAAC,aAAA5vI,EAAA/O,EAAAO,EAAAE,GAEA,MADAsO,IAAAtO,GACAF,EAAAwO,GAAAA,EAAA,GAAA/O,EAGA,QAAA4+I,cAAAn6H,OAAAgnB,OACA,KAAAA,OAAA,CACA,GAAAA,QAAAhnB,OACA,OAAA,CAGAgnB,OAAAA,MAAA/pC,WAGA,OAAA,EAGA,QAAAolB,SAAA2kB,MAAAh7B,UAGA,IAFA,GAAAgU,QAAAo5H,cAAApyG,OAEA7H,UAAAnf,SAAA,CACA,GAAA4B,gBAAA5B,OAAAhU,UAAA,MAAAgU,OAEAA,QAAAo5H,cAAAp5H,QAGA,MAAA,MAGA,QAAAo5H,eAAA71G,MACA,GAAAvjB,QAAAujB,KAAAtmC,UAEA,IAAA23I,UAAA50H,QAAA,CAEA,MAAAA,OAAAA,OAAAulF,OAAAqvC,UAAA50H,UAEA,MAAAA,QAGA,MAAAA,QAGA,QAAAo6H,WAAAjB,aAAA3/C,SACA,MAAA2/C,cAAAkB,WAAA7gD,QAAAr7F,eACAg8I,aAAAhB,aAAAkB,SAAA7gD;A3Gp5BA,C2Gu5BA,QAAA8gD,YAAAnB,aAAAoB,oBAAA/gD,SACA,GAAAghD,YAAArB,aAAAvjI,QAAA4kI,UAEA,OAAAA,aAAAr7G,UAAAq6D,SAEA95D,SAAA86G,YACAC,YAAAjhD,QAAAghD,WAAAD,qBAEAp7G,UAAAq7G,YACAL,aAAAK,WAAAhhD,UAGA,GATA,EAYA,QAAAkhD,WAAAvB,aAAAoB,oBAAA/gD,SACA,GAAAmhD,WAAAxB,aAAAvjI,QAAA+kI,SAEA,OAAAA,WAEAx7G,UAAAq6D,SAEA95D,SAAAi7G,WACAF,YAAAjhD,QAAAmhD,UAAAJ,qBAEAp7G,UAAAw7G,WACAR,aAAAQ,UAAAnhD,UAGA,GATA,GAFA,EAcA,QAAAohD,WAAAvlC,KAAA8jC,cACA,IAAAA,aAAA,OAAA,CAEA,IAAA0B,UAAA1B,aAAAvjI,QAAA8hG,KAAArC,IAEA,OAAA,OAAAA,MAAA,OAAAwlC,UAAAA,WAAAxlC;A3G37BA,C2G87BA,QAAAylC,WAAA3B,aAAArjG,QACA,GAAAlgC,SAAAujI,aAAAvjI,OAMA,OAJA,UAAApZ,KAAAs5C,UACAA,OAAA,UAGAlgC,QAAAkgC,QAAAmgE,MAAArgG,QAAAkgC,QAAAmgE,KAAAl2F,QAGA,QAAAg7H,eAAA5B,aAAArjG,QACA,GAAAlgC,SAAAujI,aAAAvjI,OAMA,OAJA,UAAApZ,KAAAs5C,UACAA,OAAA,UAGAlgC,QAAAkgC,QAAAklG,UAAAplI,QAAAkgC,QAAAklG,SAAAj7H,QAGA,QAAAk7H,iBAAA9B,aAAArjG,QACA,GAAAlgC,SAAAujI,aAAAvjI,OAMA,OAJA,UAAApZ,KAAAs5C,UACAA,OAAA,UAGAlgC,QAAAkgC,QAAAy4F,YAAA34H,QAAAkgC,QAAAy4F,WAAAxuH,QAGA,QAAAm7H,wBAAA/B,aAAA3/C,QAAA1jD,QAQA,IAAA,GAPAlgC,SAAAujI,aAAAvjI,QACAulI,WAAAvlI,QAAAkgC,OAAAniC,MAAArS,IACA85I,cAAAxlI,QAAAkgC,OAAAniC,MAAAynI,cACAC,mBAAA,EACAC,YAAA,EACAC,mBAAA,EAEAp4I,EAAA,EAAAgwC,IAAAqoG,aAAA19I,OAAAq1C,IAAAhwC,EAAAA,IAAA;A3Gn+BA,A2Go+BA,GAAAm/F,aAAAk5C,aAAAr4I,GACAs4I,YAAAn5C,YAAAo5C,SAAA/nI,KACAmN,OAAAwhF,YAAAsL,aAEA,IAAA9sF,OAAA,CAIA,GAFAu6H,qBAEAA,oBAAAM,gBACA,OAAA,CAGA,IAAAr5C,YAAAlpF,SAAA+/H,aAAA,CAIA,GAFAmC,aAAAG,cAAA3lG,OAAAniC,KAAA,EAEA2nI,aAAAH,WACA,OAAA,CAGA,IAAA74C,YAAA9I,UAAAA,UACA+hD,qBAEAE,cAAA3lG,OAAAniC,MAAA4nI,oBAAAH,eACA,OAAA,IAKA,MAAAO,iBAAA,EAIA,QAAAC,uBAAA5yH,UACA,GAAA6yH,UAGA77H,OAGAgnB,MACA7jC,EACA2E,EAPAg0I,YAAA9yH,SAAA,GACArL,MAAAm+H,YAAA,EAAA,GAEAC,sBACAC,kBAKA,KAAA74I,EAAA,EAAAA,EAAA6lB,SAAAlrB,OAAAqF,IAIA,GAHA04I,SAAA7yH,SAAA7lB,GAGA04I,UAAAA,WAAAC,YAIA,GAAAA;A3GvhCA,A2G+hCA,GAAAD,SAAA5+I,aAAA4+I,SAAA19I,cAIA,GAAA29I,YAAA7+I,aAAA4+I,SAAA19I,cAAA,CAMA,IAAA49I,mBAAAj+I,OAEA,IADAkiB,OAAA87H,YACA97H,OAAA/iB,YAAA+iB,OAAA/iB,aAAA+iB,OAAA7hB,eACA49I,mBAAAp4I,QAAAqc,QACAA,OAAAA,OAAA/iB,UAMA,IAAA6+I,sBAAA91E,cACA61E,mBAAAtE,eACAsE,mBAAAI,gBAAA,CAEA,GAAAJ,WAAAC,YAAA7+I,WACA,QAGA+iB,QAAA67H,SAAAK,oBAGAl8H,QAAA67H,QAKA,KAFAG,mBAEAh8H,OAAA/iB,aAAA+iB,OAAA7hB,eACA69I,gBAAAr4I,QAAAqc,QACAA,OAAAA,OAAA/iB,UAMA,KAHA6K,EAAA,EAGAk0I,gBAAAl0I,IAAAk0I,gBAAAl0I,KAAAi0I,mBAAAj0I,IACAA;A3G3kCA,A2G8kCA,GAAA2a,UACAu5H,gBAAAl0I,EAAA,GACAk0I,gBAAAl0I,GACAi0I,mBAAAj0I,GAKA,KAFAk/B,MAAAvkB,QAAA,GAAAvQ,UAEA80B,OAAA,CACA,GAAAA,QAAAvkB,QAAA,GAAA,CACAq5H,YAAAD,SACAl+H,MAAAxa,EACA44I,qBAEA,OAEA,GAAA/0G,QAAAvkB,QAAA,GACA,KAGAukB,OAAAA,MAAApnB,qBA/DAk8H,aAAAD,SACAl+H,MAAAxa,MAbA24I,aAAAD,SACAl+H,MAAAxa,CA8EA,OAAAwa,OAGA,QAAAw+H,eAwCA,GAvCAr1I,KAAAsS,OAAA,KACAtS,KAAA0yF,QAAA,KACA1yF,KAAAs1I,WAAA,KACAt1I,KAAAu1I,YAAA,KACAv1I,KAAAw1I,eAAA,KACAx1I,KAAAy1I,gBAAA,KAEAz1I,KAAA40I,UACA/nI,KAAA,KACA0hG,KAAA,KACAmnC,MAAA,MAGA11I,KAAAgT,WACAhT,KAAA21I,iBAEA31I,KAAA41I,eACA57H,QAAA,EACA67H,WAAA,EACAC,QAAA,EAEAC,WAAA,KACAC,YAEArkH,GAAA,EAAAL,GAAA,EACA2kH,GAAA;A3GloCA,A2GkoCAC,GAAA,EAEAC,GAAA,EACAC,IAAA,EAAAC,IAAA,EACAt3I,SAAA,EAEAu3I,SAAA,EACAC,SAAA,EAEAC,UAAA,EACAC,UAAA,EACAp6I,EAAA,MAGA/F,WAAA8Q,SAAAjF,UAAA6T,MACAhW,KAAA02I,kBAAA12I,KAAA22I,aAAA3gI,KAAAhW,MACAA,KAAA42I,oBAAA52I,KAAA62I,eAAA7gI,KAAAhW,UAEA,CACA,GAAA4rC,MAAA5rC,IAEAA,MAAA02I,kBAAA,WAAA,MAAA9qG,MAAA+qG,gBACA32I,KAAA42I,oBAAA,WAAA,MAAAhrG,MAAAirG,kBAGA72I,KAAA82I,aACAC,aACA70H,YACA80H,UAIAh3I,KAAA6uI,YACA7uI,KAAAi3I,cACAj3I,KAAAk3I,eACAl3I,KAAAm3I,aACAn3I,KAAAo3I,cAGAp3I,KAAAq3I,YACA5I,MAAA7qI,EAAA,EAAAC,EAAA,GACA6qI,QAAA9qI,EAAA,EAAAC,EAAA,GACAwR,UAAA,GAGArV,KAAAs3I,WACA7I,MAAA7qI,EAAA,EAAAC,EAAA,GACA6qI,QAAA9qI,EAAA,EAAAC,EAAA,GACAwR,UAAA,GAIArV,KAAAu3I,aACA9I;A3GtrCA,A2GsrCA7qI,EAAA,EAAAC,EAAA,GACA6qI,QAAA9qI,EAAA,EAAAC,EAAA,GACAwR,UAAA,GAIArV,KAAAw3I,cACA/I,MAAA7qI,EAAA,EAAAC,EAAA,EAAAwrI,GAAA,EAAAC,GAAA,EAAA7nH,MAAA,GACAinH,QAAA9qI,EAAA,EAAAC,EAAA,EAAAwrI,GAAA,EAAAC,GAAA,EAAA7nH,MAAA,GACApS,UAAA,GAGArV,KAAAy3I,UAAA,KACAz3I,KAAA03I,eAEA13I,KAAA23I,aAAA,KACA33I,KAAA43I,gBAAA,KAEA53I,KAAA63I,UAAA,KACA73I,KAAA83I,QAAA,EACA93I,KAAA+3I,QAAA,KAEA/3I,KAAAg4I,aAAA92H,KAAA,EAAAsnB,MAAA,EAAAz8B,IAAA,EAAAilG,OAAA,GACAhxG,KAAAi4I,gBAAA/2H,KAAA,EAAAsnB,MAAA,EAAAz8B,IAAA,EAAAilG,OAAA,GACAhxG,KAAAk4I,eAEAl4I,KAAAm4I,SACAj4I,OAAA0D,EAAA,EAAAC,EAAA,GAEAu0I,cAAA,EACAC,aAAA,EACAjsC,SAAA,EAEA+nB,MAAA,EAEAmkB,WAAA,EACAvG,UAAA,GAGA/xI,KAAAu4I,YACA30I,EAAA,EAAAC,EAAA,EACA+tI,GAAA,EAAAC,GAAA,EACA2G,MAAA,EAAAC,MAAA,EACAC,SAAA,EAAAC,SAAA,EACAC,WACA5vI,QAAA,EACA6vI,SAAA,GAGA74I,KAAA84I,gBACAlH,GAAA,EAAAC,GAAA,EACAkH,YAAA,EAAAC,YAAA;A3GxuCA,A2GyuCA7pC,KAAA,KACA8pC,YAAA,EACAJ,SAAA,GAGA74I,KAAA84I,eAAA3pC,KAAAnvG,KAAAu4I,WAEAv4I,KAAAk5I,eAAA,EACAl5I,KAAAm5I,iBAAA,EACAn5I,KAAAo5I,WAAA,EACAp5I,KAAAg4G,UAAA,EACAh4G,KAAA80G,UAAA,EACA90G,KAAAq5I,WAAA,KAEAr5I,KAAAquG,OAAA,EAEAqmC,aAAA70I,KAAAG,MAm3DA,QAAAs5I,2BAAAxK,QAAAyK,UAAAC,aACA,GAIAh+C,aAJAn/F,EAAA,EAAAgwC,IAAAqoG,aAAA19I,OACAyiJ,WAAA,SAAA/jJ,KAAAo5I,QAAA4K,aAAAH,YAEA,IAAAzK,QAAA4K,YAGA10I,GAAAirI,aAAAnB,QAGA,IAAA,cAAAp5I,KAAA6jJ,WACA,IAAAl9I,EAAA,EAAAgwC,IAAAhwC,EAAAA,IAAA,CACAm/F,YAAAk5C,aAAAr4I,EAEA,IAAAq2F,SAAA8mD,WAEA,IAAAh+C,YAAAo6C,cAAA57H,QAAAwhF,YAAAlpF,OAAAxD,QAAA0sF,YAAAo5C,SAAA/nI,MAAA8sI,QAAAC,aACAp+C,YAAA6S,QAAAorC,WACA,KAAA/mD,SAAA;A3G7nGA,A2G+nGA,GAAAA,UAAA8I,YAAA9I,QACA,MAAA8I,YAEA9I,SAAA4/C,cAAA5/C,UAOA,GAAA+mD,aAAAjK,gBAAAqK,qBAAA,CAGA,IAAAx9I,EAAA,EAAAgwC,IAAAhwC,EAAAA,IACA,GAAAq4I,aAAAr4I,GAAAgyG,QAAAqmC,aAAAr4I,GAAAu5I,cAAA57H,OACA,MAAA06H,cAAAr4I,EAOA,KAAAA,EAAA,EAAAgwC,IAAAhwC,EAAAA,IACA,GAAAq4I,aAAAr4I,GAAAgyG,SAAA,OAAA34G,KAAA6jJ,aAAA7E,aAAAr4I,GAAAu5I,cAAA57H,QACA,MAAAwhF,YAQA,OAHAA,aAAA,GAAA65C,aACA75C,YAAA6S,OAAA,EAEA7S,YAIA,IAAAn/F,EAAA,EAAAgwC,IAAAhwC,EAAAA,IACA,GAAAvC,SAAA46I,aAAAr4I,GAAA46I,WAAAjyI,IACA,MAAA0vI,cAAAr4I,EAKA,IAAA,cAAA3G,KAAA6jJ,WACA,MAAA,KAIA,KAAAl9I,EAAA,EAAAgwC,IAAAhwC,EAAAA,IAGA,GAFAm/F,YAAAk5C,aAAAr4I,KAEAm/F,YAAAo5C,SAAA/nI,MAAA2uF,YAAAlpF,OAAAxD,QAAAqpI,QAAA,WACA38C,YAAAsL,gBACA2yC,aAAAj+C,YAAA6S,OAEA,MAAA7S;A3GrrGA,A2GyrGA,MAAA,IAAA65C,aAGA,QAAAyE,kBAAA3rG,QACA,MAAA,UAAAt2C,OACA,GAAA2jG,aAKAn/F,EAJAm9I,YAAArJ,iBAAAt4I,MAAAoiD,KACApiD,MAAAoiD,KAAA,GACApiD,MAAAya,QACAynI,eAAA5J,iBAAAt4I,MAAAob,cAGA,IAAAu8H,eAAA,QAAA95I,KAAAmC,MAAAa,MAGA,IAFAshJ,eAAA,GAAA9xI,OAAAC,UAEA9L,EAAA,EAAAA,EAAAxE,MAAAk5I,eAAA/5I,OAAAqF,IAAA,CACA,GAAAyyI,SAAAj3I,MAAAk5I,eAAA10I,EAEAm/F,aAAA89C,0BAAAxK,QAAAj3I,MAAAa,KAAA8gJ,aAEAh+C,cAEAA,YAAAy+C,oBAAAT,YAAAO,gBAEAv+C,YAAArtD,QAAA2gG,QAAAj3I,MAAA2hJ,YAAAO,qBAGA,CACA,IAAAF,sBAAA,QAAAnkJ,KAAAmC,MAAAa,MAAA,CAEA,IAAA2D,EAAA,EAAAA,EAAAq4I,aAAA19I,OAAAqF,IACA,IAAAq4I,aAAAr4I,GAAAgyG,OAAAqmC,aAAAr4I,GAAA68I,cACA;A3GxtGA,A2G8tGA,IAAA,GAAAhxI,OAAAC,UAAA6xI,cAAA,IACA,OAMA,GAFAx+C,YAAA89C,0BAAAzhJ,MAAAA,MAAAa,KAAA8gJ,cAEAh+C,YAAA,MAEAA,aAAAy+C,oBAAAT,YAAAO,gBAEAv+C,YAAArtD,QAAAt2C,MAAAA,MAAA2hJ,YAAAO,kBAKA,QAAAG,eAAA1+C,YAAA3jG,MAAAm3C,OAAAmrG,MAAAznD,QAAA0nD,SACA,GAAA1L,QACAD,KACAn8H,OAAAkpF,YAAAlpF,OACAimI,WAAA/8C,YAAA+8C,WACAO,eAAAt9C,YAAAs9C,eACAjK,SAAArzC,YAAAqzC,SACA4C,aAAAn/H,QAAAA,OAAAxD,SAAAggD,gBAAA2iF,YACAC,QAAAD,YAAA,IACAE,QAAAF,YAAA,IACA3iI,QAAAwD,OAAAA,OAAAxD,QAAAggD,eACAslE,OAAAge,YAAA9/H,OAAAogF,SACA2nD,SAAA,UAAAF,MACArE,OAAA,QAAAqE,MACA/pI,OAAAiqI,SAAA7+C,YAAA+7C,YAAA/7C,YAAA87C;A3G3vGA,A2G6vGA5kD,QAAAA,SAAA8I,YAAA9I,QAEA+7C,KAAA12I,UAAAqY,OAAAq+H,MACAC,OAAA32I,UAAAqY,OAAAs+H,QAEAD,KAAA7qI,GAAAwwH,OAAAxwH,EACA6qI,KAAA5qI,GAAAuwH,OAAAvwH,EAEA6qI,OAAA9qI,GAAAwwH,OAAAxwH,EACA8qI,OAAA7qI,GAAAuwH,OAAAvwH,CAEA,IAAAy2I,gBAAAxrI,QAAAkgC,QAAAmgE,MAAArgG,QAAAkgC,QAAAmgE,KAAAmrC,gBAEAtG,UAAA1hI,OAAA08B,SAAAqrG,UAAAC,gBAAAA,eAAAtjJ,SACAgJ,KAAAmvG,MACA/4E,MAAAmiH,WAAAniH,MACAptB,OAAAuvI,WAAAvvI,OACApF,EAAA20I,WAAAG,SACA70I,EAAA00I,WAAAI,SACAH,MAAAD,WAAAC,MACAC,MAAAF,WAAAE,MACA7G,GAAA2G,WAAA3G,GACAC,GAAA0G,WAAA1G,IAGA0G,WAAAvvI,SACAylI,KAAA7qI,GAAA20I,WAAA3G,GACAnD,KAAA5qI,GAAA00I,WAAA1G,GACAnD,OAAA9qI,GAAA20I,WAAA3G,GACAlD,OAAA7qI,GAAA00I,WAAA1G,MAIAoC,cAAA3hI,OAAA08B,SAAAqrG,UAAAvrI,QAAAkgC,QAAAklG,SAAAqG,cAAAzB,eAAAG,aACAxK,KAAA7qI,GAAAk1I,eAAAlH;A3G9xGA,A2G+xGAnD,KAAA5qI,GAAAi1I,eAAAjH,GACAnD,OAAA9qI,GAAAk1I,eAAAlH,GACAlD,OAAA7qI,GAAAi1I,eAAAjH,GAEA7xI,KAAAk0I,UACAtC,GAAAkH,eAAAlH,GACAC,GAAAiH,eAAAjH,KAIA7xI,KAAA6T,MAAA46H,KAAA7qI,EACA5D,KAAAiU,MAAAw6H,KAAA5qI,EACA7D,KAAA8T,QAAA46H,OAAA9qI,EACA5D,KAAAkU,QAAAw6H,OAAA7qI,EAEA7D,KAAAw6I,GAAAh/C,YAAA+7C,YAAA9I,KAAA7qI,EAAAwwH,OAAAxwH,EACA5D,KAAAy6I,GAAAj/C,YAAA+7C,YAAA9I,KAAA5qI,EAAAuwH,OAAAvwH,EACA7D,KAAA06I,SAAAl/C,YAAA+7C,YAAA7I,OAAA9qI,EAAAwwH,OAAAxwH,EACA5D,KAAA26I,SAAAn/C,YAAA+7C,YAAA7I,OAAA7qI,EAAAuwH,OAAAvwH,EACA7D,KAAA62G,QAAAh/G,MAAAg/G,QACA72G,KAAAs6G,OAAAziH,MAAAyiH,OACAt6G,KAAAu1G,SAAA19G,MAAA09G,SACAv1G,KAAAwU,QAAA3c,MAAA2c,QACAxU,KAAAqQ,OAAAxY,MAAAwY,OACArQ,KAAA+9G,QAAAlmH,MAAAkmH,QACA/9G,KAAAsS,OAAAogF,QACA1yF,KAAAm2I,GAAA36C,YAAA27C,UAAA,GACAn3I,KAAAtH,KAAAs2C,QAAAmrG,OAAA;A3GzzGA,A2G2zGAn6I,KAAAw7F,YAAAA,YACAx7F,KAAAqyI,aAAA//H,MAEA,IAAAsjI,eAAAp6C,YAAAo6C,aAqGA,IAnGAA,cAAA57H,SACAha,KAAAugC,OAAA,WAGA65G,UACAp6I,KAAAqU,cAAA+lI,SAIAtE,OACA,WAAArE,aACAzxI,KAAA4xI,GAAAlD,OAAA9qI,EAAA43F,YAAA+7C,YAAA7I,OAAA9qI,EACA5D,KAAA6xI,GAAAnD,OAAA7qI,EAAA23F,YAAA+7C,YAAA7I,OAAA7qI,IAGA7D,KAAA4xI,GAAAnD,KAAA7qI,EAAA43F,YAAA+7C,YAAA9I,KAAA7qI,EACA5D,KAAA6xI,GAAApD,KAAA5qI,EAAA23F,YAAA+7C,YAAA9I,KAAA5qI,GAGAw2I,UACAr6I,KAAA4xI,GAAA,EACA5xI,KAAA6xI,GAAA,GAGA,iBAAAsI,OACAn6I,KAAA4xI,GAAAp2C,YAAAq8C,UAAAjG,GACA5xI,KAAA6xI,GAAAr2C,YAAAq8C,UAAAhG,IAGA,WAAAJ,aACAzxI,KAAA4xI,GAAAlD,OAAA9qI,EAAA43F,YAAAq8C,UAAA/jI,QACA9T,KAAA6xI,GAAAnD,OAAA7qI,EAAA23F,YAAAq8C,UAAA3jI,UAGAlU,KAAA4xI,GAAAnD,KAAA7qI,EAAA43F,YAAAq8C,UAAAhkI;A3Gj2GA,A2Gk2GA7T,KAAA6xI,GAAApD,KAAA5qI,EAAA23F,YAAAq8C,UAAA5jI,OAGAunF,YAAAq8C,WAAA,YAAAr8C,YAAAq8C,UAAAt3G,SACAq1G,cAAA57H,QACAlL,QAAAkgC,QAAA2qG,SAAA7qI,QAAAkgC,QAAA2qG,QAAAiB,kBAEAhF,cAAAU,UAAAt2I,KAAA4xI,GACAgE,cAAAW,UAAAv2I,KAAA6xI,GAEA7xI,KAAA4xI,GAAA5xI,KAAA6xI,GAAA,GAGA,WAAA7iG,QAAAwsD,YAAA69C,WACAvqI,QAAAinG,OAAA8kC,QACA,MAAAr/C,YAAA69C,WACAr5I,KAAA4xI,GAAA5xI,KAAA6xI,GAGA7xI,KAAA6xI,GAAA7xI,KAAA4xI,GAEA5xI,KAAA86I,KAAA,OAGA96I,KAAA86I,KAAAt/C,YAAA69C,WAEA,MAAA79C,YAAA69C,WACAr5I,KAAA6xI,GAAA,EAEA,MAAAr2C,YAAA69C,aACAr5I,KAAA4xI,GAAA,IAIA,YAAA5iG,SACAhvC,KAAA8wI,SAAAjC,SAAA,GAAAA,SAAA,IAEAwL,UACAr6I,KAAAosG,SAAAolC,cAAA3C,SAAA4C,aACAzxI,KAAA+6I,IAAA5J,UAAAtC;A3Gx4GA,A2Gy4GA7uI,KAAAm0H,MAAA,EACAn0H,KAAA8qC,GAAA,EACA9qC,KAAAgyI,MAAAF,WAAAjD,SAAA9kH,OAAA0nH,aACAzxI,KAAAslE,GAAA,GAEAwwE,QAAAj+I,gBAAAqiJ,gBACAl6I,KAAAosG,SAAA5Q,YAAAq8C,UAAAzrC,SACApsG,KAAA+6I,IAAAv/C,YAAAq8C,UAAAkD,IACA/6I,KAAAm0H,MAAA34B,YAAAq8C,UAAA1jB,MACAn0H,KAAA8qC,GAAA9qC,KAAAm0H,MAAA,EACAn0H,KAAAgyI,MAAAx2C,YAAAq8C,UAAA7F,MACAhyI,KAAAslE,GAAAtlE,KAAAgyI,MAAAx2C,YAAA28C,QAAAG,aAGAt4I,KAAAosG,SAAAolC,cAAA3C,SAAA4C,aACAzxI,KAAA+6I,IAAA5J,UAAAtC,UACA7uI,KAAAm0H,MAAAn0H,KAAAosG,SAAA5Q,YAAA28C,QAAAC,cACAp4I,KAAAgyI,MAAAF,WAAAjD,SAAArzC,YAAA28C,QAAApG,UAAAN,aAEAzxI,KAAA8qC,GAAA9qC,KAAAm0H,MAAA34B,YAAA28C,QAAA6C,UACAh7I,KAAAslE,GAAAtlE,KAAAgyI,MAAAx2C,YAAA28C,QAAApG;A3G55GA,A2Gg6GAsI,SACAr6I,KAAAqV,UAAAmmF,YAAA27C,UAAA,GACAn3I,KAAA8rB,GAAA,EACA9rB,KAAAjB,SAAA,EACAiB,KAAAynB,MAAA,EACAznB,KAAAi7I,UAAA,EACAj7I,KAAAk7I,UAAA,MAEA,IAAA,iBAAAf,MACAn6I,KAAAqV,UAAAmmF,YAAAq8C,UAAAxiI,UACArV,KAAA8rB,GAAA0vE,YAAAq8C,UAAA/rH,GACA9rB,KAAAjB,SAAAy8F,YAAAq8C,UAAA94I,SACAiB,KAAAynB,MAAA+zE,YAAAq8C,UAAApwH,MACAznB,KAAAi7I,UAAAz/C,YAAAq8C,UAAAoD,UACAj7I,KAAAk7I,UAAA1/C,YAAAq8C,UAAAqD,cAOA,IAJAl7I,KAAAqV,WAAA,GAAAnN,OAAAC,UACAnI,KAAA8rB,GAAA9rB,KAAAqV,UAAAmmF,YAAAq8C,UAAAxiI,UACArV,KAAAjB,SAAAiB,KAAAqV,UAAAmmF,YAAA27C,UAAA,GAEAt/I,gBAAAqiJ,eAAA,CACA,GAAAtI,IAAA5xI,KAAA0xI,SAAAl2C,YAAAq8C,UAAAnG,SACAG,GAAA7xI,KAAA2xI,SAAAn2C,YAAAq8C,UAAAlG,SACA7lH,GAAA9rB,KAAA8rB,GAAA;A3Gv7GA,A2Gy7GA9rB,KAAAynB,MAAA2nH,MAAAwC,GAAAC,IAAA/lH,GACA9rB,KAAAi7I,UAAArJ,GAAA9lH,GACA9rB,KAAAk7I,UAAArJ,GAAA/lH,OAKA9rB,MAAAynB,MAAA+zE,YAAAg8C,aAAA/F,aAAAhqH,MACAznB,KAAAi7I,UAAAz/C,YAAAg8C,aAAA/F,aAAApC,GACArvI,KAAAk7I,UAAA1/C,YAAAg8C,aAAA/F,aAAAnC,EAIA,KAAAwG,QAAA,iBAAAqE,QACA3+C,YAAAq8C,UAAApwH,MAAA,KAAAznB,KAAAqV,UAAAmmF,YAAAq8C,UAAAxiI,UAAA,IAAA,CAEA,GAAA28H,OAAA,IAAAz3I,KAAA4gJ,MAAA3/C,YAAAq8C,UAAAqD,UAAA1/C,YAAAq8C,UAAAoD,WAAA1gJ,KAAA8tB,GACA+yH,QAAA,IAEA,GAAApJ,QACAA,OAAA,IAGA,IAAA9wH,MAAA8wH,OAAA,IAAAoJ,SAAA,IAAAA,QAAApJ,MACAqJ,GAAArJ,OAAA,IAAAoJ,SAAA,IAAAA,QAAApJ,MAEAxpG,OAAAtnB,OAAA8wH,OAAA,IAAAoJ,SAAA,GAAAA,QAAApJ,OACAj3B,MAAAsgC,IAAArJ,OAAA,GAAAoJ,SAAA,IAAAA,QAAApJ;A3Gn9GA,A2Gq9GAhyI,KAAAs7I,OACAD,GAAAA,GACAtgC,KAAAA,KACA75F,KAAAA,KACAsnB,MAAAA,MACAwpG,MAAAA,MACAvqH,MAAA+zE,YAAAq8C,UAAApwH,MACA8zH,UACA33I,EAAA43F,YAAAq8C,UAAAoD,UACAp3I,EAAA23F,YAAAq8C,UAAAqD,aAgBA,QAAAM,0BACAx7I,KAAAiV,cAAAxC,iBAGA,QAAAgpI,iBAAAzsG,QACA,GAAAgsB,QAAA,EAKA,IAHA,SAAAhsB,OAAAniC,OACAmuD,OAAA0gF,cAAA9qC,MAEA,WAAA5hE,OAAAniC,KACA,GAAAmiC,OAAAu/D,KACAvzC,OAAA0gF,cAAA1sG,OAAAniC,KAAAmiC,OAAAu/D,UAEA,IAAAv/D,OAAA0mG,MAAA,CAIA,IAAA,GAHAiG,WAAA,SACAC,WAAA,MAAA,SAAA,OAAA,SAEAv/I,EAAA,EAAA,EAAAA,EAAAA,IACA2yC,OAAA0mG,MAAAkG,UAAAv/I,MACAs/I,WAAAC,UAAAv/I,GAIA2+D,QAAA0gF,cAAAC,WAIA,MAAA3gF,QAGA,QAAA6gF,iBAAAhvI,KAAAhU,MAAA41I,KAAA/7C,QAAA+gD,oBAAAqI,KAAAt6H;A3G5gHA,A2G8gHA,IAAA3oB,MAAA,OAAA,CAGA,IAAAA,SAAA,EAAA,CAEA,GAAA2C,OAAAi9B,SAAAqjH,KAAAtgJ,OAAAsgJ,KAAAtgJ,MAAAsgJ,KAAAtzG,MAAAszG,KAAA56H,KACAzlB,OAAAg9B,SAAAqjH,KAAArgJ,QAAAqgJ,KAAArgJ,OAAAqgJ,KAAA9qC,OAAA8qC,KAAA/vI,GAWA,IATA,EAAAvQ,QACA,SAAAqR,KAAAA,KAAA,QACA,UAAAA,OAAAA,KAAA,SAEA,EAAApR,SACA,QAAAoR,KAAAA,KAAA,SACA,WAAAA,OAAAA,KAAA,QAGA,SAAAA,KAAA,MAAA4hI,MAAA7qI,GAAApI,OAAA,EAAAsgJ,KAAA56H,KAAA46H,KAAAtzG,OAAAhnB,MACA,IAAA,QAAA3U,KAAA,MAAA4hI,MAAA5qI,GAAApI,QAAA,EAAAqgJ,KAAA/vI,IAAA+vI,KAAA9qC,QAAAxvF,MAEA,IAAA,UAAA3U,KAAA,MAAA4hI,MAAA7qI,GAAApI,OAAA,EAAAsgJ,KAAAtzG,MAAAszG,KAAA56H,MAAAM,MACA,IAAA,WAAA3U,KAAA,MAAA4hI,MAAA5qI,GAAApI,QAAA,EAAAqgJ,KAAA9qC,OAAA8qC,KAAA/vI,KAAAyV,OAIA,MAAA6W,WAAAq6D,SAEAr6D,UAAAx/B,OAEAA,QAAA65F,QAEAihD,YAAAjhD,QAAA75F,MAAA46I,sBANA;A3GtiHA,C2G+iHA,QAAAsI,sBAAAjN,QAAAtzC,YAAA9I,SACA,GAIAspD,aAJAF,KAAA97I,KAAAuyI,QAAA7/C,SACAupD,cAAA,EACAjtG,OAAA,KACAqqG,WAAA,KAEA5K,KAAA12I,UAAAyjG,YAAA87C,UAAA7I,MACA3/H,QAAA9O,KAAA8O,OAEA,KAAAgtI,KAAA,MAAA,KAEA,IAAAI,gBAAAnmC,QAAAjnG,QAAAinG,OAAA98F,QAAA,CACA,GAAAkjI,eAAArtI,QAAAinG,MAOA,IALAimC,aACA96H,MAAA,EAAAsnB,OAAA,EAAAz8B,KAAA,EAAAilG,QAAA,GAIAt4E,SAAAyjH,cAAAzG,OAAA,CACA,IAAA,GAAA0G,QAAAJ,aACAA,YAAAI,MAAAP,gBAAAO,KACAD,cAAAzG,MAAA0G,MACA3N,KACAjzC,YAAAm8C,aACAjlD,QACAopD,KACAK,cAAA36H,QAAAA,OAGAw6H,aAAA96H,KAAA86H,YAAA96H,OAAA86H,YAAAxzG,MACAwzG,YAAAjwI,IAAAiwI,YAAAjwI,MAAAiwI,YAAAhrC;A3G7kHA,A2G+kHAirC,aAAAD,YAAA96H,MAAA86H,YAAAxzG,OAAAwzG,YAAAjwI,KAAAiwI,YAAAhrC,WAEA,CACA,GAAAxoE,OAAA,MAAA15B,QAAAinG,OAAAxH,MAAAkgC,KAAA7qI,EAAAk4I,KAAAtzG,MAAAhnB,OACAwvF,OAAA,MAAAliG,QAAAinG,OAAAxH,MAAAkgC,KAAA5qI,EAAAi4I,KAAA9qC,OAAAxvF,MAEAy6H,cAAAzzG,OAAAwoE,OACAqoC,YAAA7wG,MAAA,IAAA,KAAAwoE,OAAA,IAAA,KAgBA,MAZAhiE,QAAAitG,aACA,SACAC,gBAAAtrC,MAAA9hG,QAAA8hG,KAAA33F,QACA,OACA,KAEAijI,gBAAA/D,SACA38C,YAAAy7C,WAAAjgJ,QAAA,IACAwkG,YAAAwc,WAAAxc,YAAAsZ,WACA9lE,OAAA,WAGAA,QAEAniC,KAAAmiC,OACAu/D,KAAA8qC,WACA3D,MAAAsG,aAIA,KAKA,QAAAK,gBAAArtG,OAAAqjG,cACA,IAAA35G,SAAAsW,QAAA,MAAA,KAEA,IAAAstG,YAAAttG,OAAAniC,KACAiC,QAAAujI,aAAAvjI;A3GtnHA,A2GwnHA,OAAA,WAAAwtI,YAAAxtI,QAAAinG,OAAA98F,SACA,SAAAqjI,YAAAxtI,QAAA8hG,KAAA33F,SACA,YAAAqjI,YAAAxtI,QAAAqpI,QAAAl/H,UACAijI,gBAAAI,cAEA,WAAAA,YAAA,aAAAA,cACAA,WAAA,YAGAttG,QAEA,KAmBA,QAAAutG,kBAAA1kJ,MAAA2kJ,YACA,GAAAC,cACAC,UAAAC,gBAAA9kJ,MAAAa,MACA8gJ,YAAArJ,iBAAAt4I,MAAAoiD,KACApiD,MAAAoiD,KAAA,GACApiD,MAAAya,QACAogF,QAAA8mD,WAEAgD,YAAAA,YAAA,GAAA,CAGA,KAAA,GAAAxuI,QAAAnW,OACA4kJ,UAAAzuI,MAAAnW,MAAAmW,KAOA,KAJAyuI,UAAAxnI,cAAApd,MACA4kJ,UAAAhqI,eAAA+oI,uBAGAnjH,UAAAq6D,UAAA,CACA,IAAA,GAAAr2F,GAAA,EAAAA,EAAAqgJ,UAAAtkI,UAAAphB,OAAAqF,IAAA;A3GzqHA,A2G0qHA,GAAA6I,UAAAw3I,UAAAtkI,UAAA/b,GACAqI,QAAAg4I,UAAAryF,SAAAhuD,EAEA,IAAAye,gBAAA43E,QAAAxtF,WACAmuI,aAAA3uI,QAAA80I,cACAnG,aAAA3uI,QAAAguF,SAAA,CAEA,GAAA/pD,WAAA+zG,UAAA/zG,UAAAtsC,EAEAogJ,WAAAxpI,cAAAy/E,OAEA,KAAA,GAAAj2F,GAAA,EAAAA,EAAAksC,UAAA3xC,OAAAyF,IACAksC,UAAAlsC,GAAA,KAAA+/I,YACA7zG,UAAAlsC,GAAA,GAAAggJ,YAMA/pD,QAAA4/C,cAAA5/C,UAIA,QAAAkqD,oBAAA/kJ,OACA,MAAA0kJ,kBAAA/lJ,KAAAwJ,KAAAnI,OAAA,GAgEA,QAAAglJ,UAAAnqD,QAAA5jF,SACA,MAAAguI,eAAAv3I,IAAAmtF,QAAA5jF,UAAA,GAAAiuI,cAAArqD,QAAA5jF,SASA,QAAAiuI,cAAArqD,QAAA5jF,SACA9O,KAAAg9I,SAAAtqD,QACA1yF,KAAAi9I,SAAAj9I,KAAAi9I,YAEA,IAAAvP,QAEA,IAAAO,YAAAv7C,SAAA;A3GjxHA,A2GkxHA1yF,KAAAkF,SAAAwtF,OAEA,IAAAhuF,SAAAoK,SAAAA,QAAApK,OAEAgpI,SAAAhpI,QAAAipI,UAAAjpI,SAAA8B,OAEA9B,UAAAgpI,QAAAwP,KACAx4I,kBAAAgpI,SAAAwP,KACA7kH,UAAA3zB,UAAAA,UAAAgpI,QAAA7xI,YAEAmE,KAAAuzI,SAAA7uI,aAIAgpI,SAAAC,UAAAj7C,SAEAr6D,UAAAq6D,QAAAg7C,WAEAyP,cACAxlJ,OAAAG,IAAAkI,KAAAg9I,SAAAI,YAAAriC,KAAApyE,UAAA00G,aACA1lJ,OAAAG,IAAAkI,KAAAg9I,SAAAI,YAAA//B,KAAA10E,UAAA20G,gBAGA3lJ,OAAAG,IAAAkI,KAAAg9I,SAAA,YAAAr0G,UAAA00G,aACA1lJ,OAAAG,IAAAkI,KAAAg9I,SAAA,YAAAr0G,UAAA20G,cACA3lJ,OAAAG,IAAAkI,KAAAg9I,SAAA,aAAAr0G,UAAA00G,aACA1lJ,OAAAG,IAAAkI,KAAAg9I,SAAA,YAAAr0G,UAAA20G;A3G3yHA,A2GgzHAt9I,KAAAu9I,KAAA7P,QAAA7xI,SAEA/B,SAAA0jJ,UAAAx9I,KAAAu9I,OACAE,iBAAAz9I,KAAAu9I,MAGAT,cAAAj9I,KAAAG,MAEAA,KAAAyO,IAAAK,SAs2CA,QAAA4uI,UAAAvvG,OAAAjT,SACA,GAAAyiH,SAAA,CAEA,OAAA,YAMA,MALAA,UACAn3I,OAAAwkC,QAAAqlB,KAAAn1B,SACAyiH,QAAA,GAGAxvG,OAAAtoC,MAAA7F,KAAA8F,YAgaA,QAAA83I,oBAAA/lJ,OACA,IAAA,GAAAwE,GAAA,EAAAA,EAAAq4I,aAAA19I,OAAAqF,IACAq4I,aAAAr4I,GAAAwhJ,WAAAhmJ,MAAAA,OAIA,QAAA4lJ,kBAAAK,KACA,IAAAhkJ,SAAA0jJ,UAAAM,KAAA,CAEA,GAAA9N,KAAA8N,IAAAr7I,aAAAq7I,IAAAp7I,YAGA,KAAA,GAAA62I,aAAAoD,iBACAhlJ,OAAAG,IAAAgmJ,IAAAvE,UAAAgD,kBACA5kJ,OAAAG,IAAAgmJ,IAAAvE,UAAAqD,oBAAA,EAGAO,eAEAC,YADAD,eAAAnN,IAAA+N;A3GxlLA,A2G0lLA1C,GAAA,cAAAtgC,KAAA,gBAAAxC,KAAA,YACAtzD,IAAA,WAAAo4D,KAAA,gBAAAlR,OAAA,oBAIAkvC,GAAA,YAAAtgC,KAAA,cAAAxC,KAAA,cACAtzD,IAAA,aAAAo4D,KAAA,cAAAlR,OAAA,iBAGAx0G,OAAAG,IAAAgmJ,IAAAV,YAAAriC,KAAApyE,UAAAq1G,cACArmJ,OAAAG,IAAAgmJ,IAAAV,YAAA//B,KAAA10E,UAAAs1G,aACAtmJ,OAAAG,IAAAgmJ,IAAAV,YAAA7kC,KAAA5vE,UAAAu1G,aACAvmJ,OAAAG,IAAAgmJ,IAAAV,YAAAn4F,IAAAtc,UAAAw1G,YACAxmJ,OAAAG,IAAAgmJ,IAAAV,YAAA/B,GAAA1yG,UAAAy1G,WACAzmJ,OAAAG,IAAAgmJ,IAAAV,YAAAjxC,OAAAxjE,UAAA01G,eAGA1mJ,OAAAG,IAAAgmJ,IAAAV,YAAA//B,KAAA10E,UAAA21G,kBAGA3mJ,OAAAG,IAAAgmJ,IAAA,YAAAn1G,UAAAq1G;A3G7mLA,A2G8mLArmJ,OAAAG,IAAAgmJ,IAAA,YAAAn1G,UAAAs1G,aACAtmJ,OAAAG,IAAAgmJ,IAAA,UAAAn1G,UAAAy1G,WACAzmJ,OAAAG,IAAAgmJ,IAAA,YAAAn1G,UAAAu1G,aACAvmJ,OAAAG,IAAAgmJ,IAAA,WAAAn1G,UAAAw1G,YAEAxmJ,OAAAG,IAAAgmJ,IAAA,aAAAn1G,UAAAq1G,cACArmJ,OAAAG,IAAAgmJ,IAAA,YAAAn1G,UAAAs1G,aACAtmJ,OAAAG,IAAAgmJ,IAAA,WAAAn1G,UAAAy1G,WACAzmJ,OAAAG,IAAAgmJ,IAAA,cAAAn1G,UAAA01G,eAGA1mJ,OAAAG,IAAAgmJ,IAAA,YAAAn1G,UAAA21G,gBACA3mJ,OAAAG,IAAAgmJ,IAAA,YAAAn1G,UAAA21G,iBAGA3mJ,OAAAG,IAAAk4I,IAAA,OAAA4N,mBAEA,KACA,GAAA5N,IAAA3nI,aAAA,CACA,GAAAk2I,WAAAvO,IAAA3nI,aAAAhR,cACAqL,aAAA67I,UAAA97I,WAEA9K,QAAAG,IAAAymJ,UAAA,UAAA51G,UAAAk1G;A3GnoLA,A2GooLAlmJ,OAAAG,IAAAymJ,UAAA,WAAA51G,UAAAk1G,YACAlmJ,OAAAG,IAAAymJ,UAAA,cAAA51G,UAAAk1G,YACAlmJ,OAAAG,IAAAymJ,UAAA,YAAA51G,UAAAk1G,YACAlmJ,OAAAG,IAAAymJ,UAAA,cAAA51G,UAAAk1G,YACAlmJ,OAAAG,IAAA4K,aAAA,OAAAk7I,qBAGA,MAAA//I,OACAg/I,SAAA2B,kBAAA3gJ,MAIAlG,OAAAG,IAAAgmJ,IAAA,YAAA,SAAAjmJ,OACA,IAAA,GAAAwE,GAAA,EAAAA,EAAAq4I,aAAA19I,OAAAqF,IAAA,CACA,GAAAm/F,aAAAk5C,aAAAr4I,EAEA,IAAAm/F,YAAA9I,UACA8I,YAAA9I,UAAA76F,MAAAya,QACA+gI,aAAA73C,YAAA9I,QAAA76F,MAAAya,SAGA,WADAkpF,aAAAijD,uBAAA5mJ,MAAA2jG,YAAAlpF,OAAAkpF,YAAA9I,YAMA/6F,OAAA+mJ,iBAEA/mJ,OAAAG,IAAAgmJ,IAAA,cAAA,SAAAjmJ;A3G/pLA,A2GgqLA,GAAA2jG,aAAAk5C,aAAA,EAEAl5C,aAAAmjD,iBACAnjD,YAAAijD,uBAAA5mJ,SAKAF,OAAAG,IAAAgmJ,IAAA,WAAAhE,iBAAA,iBAGA0D,UAAA39I,KAAAi+I,MAKA,QAAA96I,SAAA47I,MAAAtsI,QACA,IAAA,GAAAjW,GAAA,EAAAgwC,IAAAuyG,MAAA5nJ,OAAAq1C,IAAAhwC,EAAAA,IACA,GAAAuiJ,MAAAviJ,KAAAiW,OACA,MAAAjW,EAIA,OAAA,GAGA,QAAAvC,UAAA8kJ,MAAAtsI,QACA,MAAA,KAAAtP,QAAA47I,MAAAtsI,QAGA,QAAAwI,iBAAA43E,QAAAxtF,SAAA25I,UACA,MAAAC,oBACAA,mBAAApsD,QAAAxtF,SAAA25I,WAIAr4I,SAAAgnI,aACAtoI,SAAAA,SAAA7P,QAAA,YAAA,MAGAq9F,QAAAqsD,yBAAA75I,WAGA,QAAAyuI,aAAAjhD,QAAAxtF,SAAA8hC,OACA,KAAA3O,UAAAq6D,UAAA,CACA,GAAA53E,gBAAA43E,QAAAxtF,UACA,OAAA;A3G7sLA,A2GktLA,GAFAwtF,QAAA4/C,cAAA5/C,SAEAA,UAAA1rD,MACA,MAAAlsB,iBAAA43E,QAAAxtF,UAIA,OAAA,EA1wLA,GAAAsoI,WAAA,CAEA,GAyBA4P,aAyTA0B,mBAjVAt4I,OAAA,WAEA,GAAAw4I,IAAAxR,WAAA3xI,SAAAgiB,eAAA,GAGA,OAAAmhI,IAAA3nJ,gBAAAm2I,WAAA3xI,UACA,kBAAA2xI,YAAAxvH,MACAwvH,WAAAxvH,KAAAghI,MAAAA,GAEAxR,WAAAxvH,KAAAwvH,YAIAA,cAGA3xI,SAAA2K,OAAA3K,SACAkyI,iBAAAvnI,OAAAunI,kBAAAN,MACAgD,WAAAjqI,OAAAiqI,YAAAhD,MACA0H,cAAA3uI,OAAA2uI,eAAA1H,MACA2C,mBAAA5pI,OAAA4pI,oBAAA3C,MACAvuE,YAAA14D,OAAA04D,aAAA14D,OAAAwtF,QAEAmpD,aAAA32I,OAAA22I,cAAA32I,OAAAu3I,eAGA3O,MAAA70I,KAAA60I,OAAA,SAAAxrI,EAAAC;A3GuBA,A2GvBA,MAAAtJ,MAAAw4H,KAAAnvH,EAAAA,EAAAC,EAAAA,IAEAorI,SAEAuO,aAEAV,iBACApI,gBAEAuK,aAAA,EASAtC,mBAEA7tF,gBACAjX,MACAgO,OAAA,KACAq5F,cAAA,KACAC,aAAA,EACA1sI,eAAA,OACA2hH,QAAAxwH,EAAA,EAAAC,EAAA,GACA4tI,YAAA,OACAoC,UAAA,KACAH,WAAA,KACAH,SAAA13I,SACAujJ,YAAA,MAGAxuC,MACA33F,SAAA,EACAomI,aAAA,EACA7kJ,IAAAqhE,EAAAA,EACAy4E,cAAA,EAEAnlC,KAAA,KACA+kC,SAAA,KACAyF,QAAA,KACAlS,WAAA,KAEAl5B,KAAA,MAGAl3E,MACApe,SAAA,EACA4sC,OAAA,KACAu1F,QAAA,WAGArlC,QACA98F,SAAA,EACAomI,aAAA,EACA7kJ,IAAAqhE,EAAAA,EACAy4E,cAAA,EAEAnlC,KAAA,KACA+kC,SAAA,KACAyF,QAAA,KACAlS,WAAA,KAEAoT,QAAA,EACAyE,qBAAA,EACA/wC,KAAA,KAGA/sF,OAAA8gD,IAMAozE,MAAA,KAMAjgH,OAAA;A3G1DA,A2G6DA0iH,SACAkH,aAAA,EACApmI,SAAA,EACAze,IAAAqhE,EAAAA,EACAy4E,cAAA,EAEAJ,SAAA,MAGAqL,WACAF,aAAA,EACA7kJ,IAAAqhE,EAAAA,EACAy4E,cAAA,EAEAnlC,MACAl2F,SAAA,EACAumI,SAAA,EACAppH,MAAAylC,EAAAA,EACA+8E,QAAA,KACAzxD,QAAA,KAEAmzD,eAAA,MAGApG,UACAj7H,SAAA,EACAumI,SAAA,GAGA/X,YACAxuH,SAAA,EACAi+B,UAAA,KACA11B,OAAA,GACAiG,MAAA,KAGAkyH,SACA1gI,SAAA,EACAwmI,WAAA,GACAC,SAAA,IACAC,SAAA,GACA/F,aAAA,EACAgB,iBAAA,EACAgF,kBAAA,MAIAC,cAAA,KAIApY,YACAjsC,YAAA,KACAn/F,EAAA,KACAuH,EAAA,EAAAC,EAAA,EAGAmrG,OAAA,WACA,GAMAqgC,IAAAC,GAAA2G,GAAAC,GANApnI,QAAA24H,WAAAjsC,YAAAlpF,OAAAxD,QAAA24H,WAAAjsC,YAAAo5C,SAAA/nI,MAAA46H,WACAvwF,UAAApoC,QAAAooC,WAAAy2F,UAAAlG,WAAAjsC,YAAA9I,SACAr0F,KAAA,GAAA6J,OAAAC,UAEA23I,KAAAzhJ,IAAAopI,WAAAsY,WAAA,IACAC,KAAA3hJ,IAAAopI,WAAAwY,WAAA;A3G3HA,A2G+HAnxI,QAAAysI,UACAlM,GAAAvgI,QAAAysI,SAAA33I,EACA0rI,GAAAxgI,QAAAysI,SAAA13I,GAGAwrI,GAAAC,GAAAxgI,QAAA2Y,MAGAwuH,GAAA5G,GAAAyQ,IACA5J,GAAA5G,GAAA0Q,KAEA/J,IAAA,GAAAC,IAAA,KACA1zI,SAAA00C,WACAA,UAAAgpG,SAAAzY,WAAA7jI,EAAAqyI,GAAAxO,WAAA5jI,EAAAqyI,IAEAh/F,YACAA,UAAAnjC,YAAA0zH,WAAA7jI,EAAAqyI,GACA/+F,UAAA/iC,WAAAszH,WAAA5jI,EAAAqyI,IAGAD,IAAA,IAAAxO,WAAAsY,UAAA1hJ,KACA63I,IAAA,IAAAzO,WAAAwY,UAAA5hJ,MAGAopI,WAAA0Y,cACAC,YAAA3Y,WAAAprI,GACAorI,WAAAprI,EAAAgkJ,SAAA5Y,WAAAz4B,UAIAmxC,aAAA,EACAJ,UAAA,EACAE,UAAA,EAEA//I,MAAA,SAAAs7F,aACAisC,WAAA0Y,aAAA,EACAC,YAAA3Y,WAAAprI,GAEAorI,WAAAjsC,YAAAA,YACAisC,WAAAsY,WAAA,GAAA73I,OAAAC,UACAs/H,WAAAwY,WAAA,GAAA/3I,OAAAC;A3GtKA,A2GuKAs/H,WAAAprI,EAAAgkJ,SAAA5Y,WAAAz4B,SAGAlvG,KAAA,WACA2nI,WAAA0Y,aAAA,EACAC,YAAA3Y,WAAAprI,KAKAmzI,cAAA,gBAAAhpI,SAAAA,OAAA85I,eAAAzkJ,mBAAA2K,QAAA85I,cAGAzG,uBAAAsD,aAGA37H,OAAAguH,eAAAqK,qBAAA,GAAA,GAEA0G,qBAAA,EAGAvG,cAAA,EAGAnF,gBAAAh5E,EAAAA,EAGA6/E,cAAA7/I,SAAA29B,MAAAhzB,OAAAg6I,MACA5vC,KAAA,OACA6vC,QAAA,WACAC,QAAA,WACAC,SAAA,YAEAC,UAAA,WACAC,WAAA,WACAC,aAAA,WACAC,YAAA,WACAC,cAAA,YACAC,kBAAA,YACAC,eAAA,YACAC,iBAAA;A3G9MA,A2GgNAhJ,QAAA,KAEAvnC,KAAA,OACA6vC,QAAA,YACAC,QAAA,YACAC,SAAA,cAEAC,UAAA,YACAC,WAAA,YACAC,aAAA,YACAC,YAAA,YACAC,cAAA,cACAC,kBAAA,cACAC,eAAA,cACAC,iBAAA,cAEAhJ,QAAA,IAGA+D,iBACAtrC,MAAA,EACAmF,QAAA,EACAoiC,SAAA,GAIAiJ,WAAA,gBAAAvlJ,UAAA,aAAA,QAEAwlJ,YACA,YACA,WACA,mBACA,UACA,YACA,YACA,eACA,iBACA,WACA,OACA,cACA,aACA,qBACA,YACA,eACA,cACA,sBACA,aAEA,OACA,OACA,KACA,SACA,MACA,YACA,QAGAC,gBAGA1R,cAAA,SAAAhtI,UAAA2+I,SACA/R,eACA5sI,UAAAyc,UAAArI,MAAA,UAGA45H,OAAA,iBAAAl7I,KAAAkN,UAAA4+I,WACA,YAAA9rJ,KAAAkN,UAAA6+I,YAGA1C,wBAAA,WAAA/qD,SAAA7xF,UACA,UAAA,yBAAA6xF,SAAA7xF,UACA,wBAAA,sBAAA6xF,SAAA7xF,UACA,qBAAA,oBAAA6xF,SAAA7xF,UACA,mBAAA,oBAMAk+I,SAAA7S,WAAAtM,sBACAkf,YAAA5S,WAAAkU,qBAGA/pJ,OAAA;A3GlSA,A2G4SA,QAAAG,KAAA46F,QAAAh6F,KAAA2wC,SAAAmzG,YACA,GAAAmF,cAAA3+I,QAAAkf,SAAAwwE,SACApgF,OAAAsmI,QAAA+I,aAuBA,IArBArvI,SACAA,QACA3a,UACAiqJ,UAAA,GAGAD,aAAAz/H,SAAAriB,KAAA6yF,SAAA,EACAkmD,QAAA/4I,KAAAyS,QAEAuvI,kBAAAhiJ,KAAA6+I,gBACAoD,YACA31F,WACA41F,aACA,OAGAzvI,OAAA3a,OAAAe,QACA4Z,OAAA3a,OAAAe,SACA4Z,OAAAsvI,cAGA9nJ,SAAAwY,OAAA3a,OAAAe,MAAA2wC,UAAA,CACA,GAAA4L,IAEA,IAAAypG,eAAA,CACA,GAAA/1G,WAAAk5G,kBAAAF,cACAK,cAAAh/I,QAAA2lC,UAAAm5G,SAAAz4G,UAEA8iB,QAAAxjB,UAAAwjB,QAAA61F,gBAAA,SAAAnqJ,OACAA,MAAAoqJ,8BACApqJ,MAAAya,OAAAza,MAAA0c,WACA1c,MAAAob,cAAAy/E;A3G9UA,A2GgVA76F,MAAA4a,eAAA5a,MAAA4a,gBAAAyvI,WACArqJ,MAAAub,gBAAAvb,MAAAub,iBAAA+uI,SACAtqJ,MAAA0d,yBAAA1d,MAAA0d,0BAAA6sI,YAEA,cAAA1sJ,KAAAmC,MAAAa,QACAb,MAAAgc,MAAAhc,MAAAic,QAAA65H,UAAAj7C,SAAA72F,SAAA6L,gBAAAqM,WACAlc,MAAAoc,MAAApc,MAAAqc,QAAAy5H,UAAAj7C,SAAA72F,SAAA6L,gBAAAyM,WAGAk1B,SAAAxxC,QAIAo9C,KAAAy9C,QAAA2vD,UAAAvsI,GAAApd,KAAAyzD,QAAAt7B,QAAA2rH,aAEA,KAAAwF,eACAr5G,UAAAm5G,SAAAjiJ,KAAAwpC,UACAV,UAAAwjB,QAAAtsD,KAAAssD,SACAxjB,UAAAo5G,SAAAliJ,KAAA,IAGA8oC,UAAAo5G,SAAAC,qBAIA/sG,KAAAy9C,QAAA2vD,UAAA3pJ,KAAA2wC,SAAAmzG,aAAA,EAIA,OAFAlqI,QAAA3a,OAAAe,MAAAmH,KAAAwpC;A3G1WA,A2G4WA4L,KAIA,QAAA55C,QAAAq3F,QAAAh6F,KAAA2wC,SAAAmzG,YACA,GAAAngJ,GAGAssC,UACAq5G,cAHAL,aAAA3+I,QAAAkf,SAAAwwE,SACApgF,OAAAsmI,QAAA+I,cAGAx1F,QAAA9iB,QAEA,IAAA/2B,QAAAA,OAAA3a,OAUA,GANA+mJ,iBACA/1G,UAAAk5G,kBAAAF,cACAK,cAAAh/I,QAAA2lC,UAAAm5G,SAAAz4G,UACA8iB,QAAAxjB,UAAAwjB,QAAA61F,gBAGA,QAAAtpJ,KAAA,CASA,GAAA4Z,OAAA3a,OAAAe,MAAA,CACA,GAAA2zC,KAAA/5B,OAAA3a,OAAAe,MAAA1B,MAEA,IAAA,QAAAqyC,SAAA,CACA,IAAAhtC,EAAA,EAAAgwC,IAAAhwC,EAAAA,IACAhB,OAAAq3F,QAAAh6F,KAAA4Z,OAAA3a,OAAAe,MAAA2D,GAAAw0B,QAAA2rH,YAEA,QAEA,IAAAngJ,EAAA,EAAAgwC,IAAAhwC,EAAAA,IACA,GAAAiW,OAAA3a,OAAAe,MAAA2D,KAAAgtC,SAAA,CACAqpD,QAAA9gF,aAAAkE,GAAApd,KAAAyzD,QAAAqwF,aAAA,GACAlqI,OAAA3a,OAAAe,MAAAiF,OAAAtB,EAAA;A3GtZA,A2GwZAqiJ,gBAAA/1G,YACAA,UAAAo5G,SAAAC,iBACA,IAAAr5G,UAAAo5G,SAAAC,iBACAr5G,UAAAm5G,SAAAnkJ,OAAAqkJ,cAAA,GACAr5G,UAAAwjB,QAAAxuD,OAAAqkJ,cAAA,GACAr5G,UAAAo5G,SAAApkJ,OAAAqkJ,cAAA,IAIA,OAKA1vI,OAAA3a,OAAAe,OAAA,IAAA4Z,OAAA3a,OAAAe,MAAA1B,SACAsb,OAAA3a,OAAAe,MAAA,KACA4Z,OAAAsvI,aAIAtvI,OAAAsvI,YACAhJ,QAAAj7I,OAAAgkJ,aAAA,GACAz/H,SAAAvkB,OAAAgkJ,aAAA,GACAE,kBAAAlkJ,OAAAgkJ,aAAA,QA7CA,KAAAjpJ,OAAA4Z,QAAA3a,OACA2a,OAAA3a,OAAAwL,eAAAzK,OACA2C,OAAAq3F,QAAAh6F,KAAA,OA+CA,QAAAwpJ,cACAliJ,KAAAmV,aAAA,EAGA,QAAAgtI,YACAniJ,KAAAsV,cAAA,EAGA,QAAA8sI,eACApiJ,KAAAsV,cAAA;A3G3bA,A2G4bAtV,KAAAiiJ,6BAAA,EA7JA,GAAAvD,gBAAA,eAAAl4I,WAAA,oBAAAA,SACA67I,SAAA3D,eAAA,cAAA,mBACA9sI,YAAA8sI,eAAA,cAAA,sBACA5oI,GAAA4oI,eAAA,KAAA,GAEAx8H,YACA02H,WACAiJ,oBAyJA,QACA/pJ,IAAAA,IACAuD,OAAAA,OACAqjJ,eAAAA,eAEA4D,UAAApgI,SACAqgI,SAAA3J,QACA4J,mBAAAX,sBA2CAtT,iBACAjvH,OAAA,iDAyuBA+1H,aAAAlzI,WACA6sI,UAAA,SAAAF,QAAAa,IAAA,MAAAX,WAAAF,QAAAa,GAAA3vI,OACAkvI,YAAA,SAAAJ,QAAAa,IAAA,MAAAT,aAAAJ,QAAAa,GAAA3vI;A3G5tCA,E2G6tCA2uI,WAAA,SAAAr8H,OAAAmwI,KAAA,MAAA9T,YAAAr8H,OAAAmwI,IAAAziJ,OAEAk+I,YAAA,SAAApP,QAAAj3I,MAAA2hJ,aAgCA,QAAAkJ,gBAAArQ,aAAAntI,UACAmtI,cACAiB,UAAAjB,aAAAmH,eACAhG,WAAAnB,aAAAmH,YAAAA,cACA5F,UAAAvB,aAAAmH,YAAAA,cACA1+H,gBAAA0+H,YAAAt0I,YAEAy9I,WAAA9iJ,KAAAwyI,cACAuQ,iBAAA/iJ,KAAA25I,cAvCA,IAAAx5I,KAAA40I,SAAA/nI,MAAA7M,KAAAquG,MAAA,CAEA,GAAAs0C,eACAC,oBACAC,kBAAA7iJ,KAAA0yF,OAEA1yF,MAAA8iJ,WAAAhU,UAEA9uI,KAAAsS,SACAkhI,WAAAxzI,KAAAsS,OAAAtS,KAAA0yF,QAAA8mD,cACA5F,UAAA5zI,KAAAsS,OAAAtS,KAAA0yF,QAAA8mD,eAGAx5I,KAAAsS,OAAA;A3G5uCA,A2G6uCAtS,KAAA0yF,QAAA,KACA1yF,KAAAgT,WACAhT,KAAA21I,iBAGA,IAAAoN,qBAAAjG,cAAAv3I,IAAAi0I,aACAwJ,cAAAD,sBACAvP,WAAAuP,oBAAAvJ,YAAAA,cACA5F,UAAAmP,oBAAAvJ,YAAAA,cACA6C,eACA0G,oBAAAnzG,UAAAk/F,QAAAj3I,MAAAmI,KAAAw5I,aACAuJ,oBAEAC,iBAAA5O,uBAAA2O,oBAAAvJ,YAAAwJ,iBACAA,cAAA,MAeAA,eACAhjJ,KAAAsS,OAAAywI,oBACA/iJ,KAAA0yF,QAAA8mD,YACAx5I,KAAAgT,WACAhT,KAAA21I,mBAGAmH,cAAAmG,gBAAAP,gBAEA1iJ,KAAAkjJ,iBAAApU,QAAAj3I,MAAA8qJ,WAAAC,mBACA5iJ,KAAAgT,QAAA2vI;A3GnxCA,A2GoxCA3iJ,KAAA21I,cAAAiN,iBAEA5iJ,KAAAs9I,aAAAxO,QAAAj3I,MAAAmI,KAAAgT,QAAAhT,KAAA21I,eACAh+I,OAAAG,IAAA0hJ,YACA2D,aAAAC,YAAA//B,KAAA,YACA10E,UAAA20G,eAEAt9I,KAAAsS,SACA+gI,aAAAwP,kBAAArJ,cACAx5I,KAAAs9I,aAAAxO,QAAAj3I,MAAAmI,KAAAgT,QAAAhT,KAAA21I,eACAh+I,OAAAG,IAAAkI,KAAA0yF,QACAyqD,aAAAC,YAAA//B,KAAA,YACA10E,UAAA20G,gBAGAt9I,KAAAsS,OAAA,KACAtS,KAAA0yF,QAAA,KACA1yF,KAAAgT,WACAhT,KAAA21I,sBAQA2H,aAAA,SAAAxO,QAAAj3I,MAAA2hJ,YAAAO,eAAA/mI,QAAA2iI,eACA,GAAArjI,QAAAtS,KAAAsS,MAEA,KAAAtS,KAAA40I,SAAA/nI,MAAA7M,KAAAquG,MAAA,CAEA,GAAAr/D,OAGAhvC,MAAA2uI,WAAA3uI,KAAAs3I,WAAAxI;A3GrzCA,A2GuzCA97H,QACAg8B,OAAAhvC,KAAAkjJ,iBAAApU,QAAAj3I,MAAAmb,QAAA2iI,eAEArjI,SACA08B,OAAAqtG,eAAA/pI,OAAAs9B,UAAA5vC,KAAA6uI,SAAA,GAAAh3I,MAAAmI,KAAAA,KAAA0yF,SAAA1yF,KAAAsS,SAGAA,QAAAA,OAAAxD,QAAAqwI,cACAnwG,OACA18B,OAAAirI,KAAA71I,gBAAA1N,MAAAghE,OAAAygF,gBAAAzsG,QAGA18B,OAAAirI,KAAA71I,gBAAA1N,MAAAghE,OAAA,QAIAh7D,MAAA40I,SAAA/nI,MACA7M,KAAAy+I,uBAAA5mJ,MAAAya,OAAAtS,KAAA0yF,UAIAyrD,WAAA,SAAArP,QAAAj3I,MAAA2hJ,aACAx5I,KAAA40I,SAAA/nI,OAGAiwI,cAAAv3I,IAAAi0I,cACA7hJ,OAAA0D,OAAAm+I,YACA2D,aAAAC,YAAA//B,KAAA,YACA10E,UAAA20G,cAGAt9I,KAAAsS,QAAAtS,KAAAsS,OAAAxD,QAAAqwI,cAAAn/I,KAAA8mG,gBACA9mG,KAAAsS,OAAAirI,KAAA71I,gBAAA1N,MAAAghE,OAAA;A3Gt1CA,E2G01CAgjF,aAAA,SAAAlP,QAAAj3I,MAAA2hJ,YAAAO,gBAyCA,QAAAoJ,aAAA9Q,aAAAntI,SAAAR,SACA,GAAAwd,UAAA48H,mBACAp6I,QAAArL,iBAAA6L,UACA6kB,MAEAupH,WAAAjB,aAAA3/C,WACA8gD,WAAAnB,aAAA3/C,QAAA8mD,cACA5F,UAAAvB,aAAA3/C,QAAA8mD,cACA1+H,gBAAA43E,QAAAxtF,SAAAgd,YAEA0pB,KAAA54B,QAAAnT,KAAAwyI,cACAzmG,KAAA+pG,cAAA91I,KAAA6yF,UAnDA,GAKA1jD,QALApD,KAAA5rC,KAEAojJ,UAAAzrJ,OAAA+mJ,eAAA3mJ,UAAAF,OAAAA,MACA66F,QAAA8mD,YACA6J,aAAArjJ,KAAA8iJ,WAAAhU,QAUA,IAPA9uI,KAAAo3I,WAAAiM,cAAAllJ,WAAA,WACAytC,KAAA03G,YAAA3rJ,OAAA+mJ,eAAA0E,UAAAtU,QAAAsU,UAAA5J,YAAAO;A3Gl2CA,E2Gm2CAjrF,eAAA+wF,eAEA7/I,KAAAk5I,eAAA,EAGAl5I,KAAA41I,cAAA57H,QAAAha,KAAAsS,OAAApN,SAEA,KAAAmzB,UAAAq6D,UAAA,CAGA,GAAAA,UAAA1yF,KAAA0yF,SAEA2pD,eAAAr8I,KAAAsS,OAAAs9B,UAAAk/F,QAAAj3I,MAAAmI,KAAAA,KAAA0yF,SAAA1yF,KAAAsS,QAAAzF,OAAA7M,KAAA40I,SAAA/nI,KAOA,MAJAuzI,aAAApgJ,KAAA41I,cAAAv5I,GACA2D,KAAA41I,cAAA57H,QAAA,MAEAha,MAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA,OAGA9mD,SAAA4/C,cAAA5/C,SAKA,GAAA1yF,KAAA8mG,cAEA,WADA9mG,MAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA,OAuBA,KAHAx5I,KAAA2uI,WAAA3uI,KAAAs3I,WAAAxI,UACA9uI,KAAAy3I,UAAA5/I,MAEAwgC,UAAAq6D,WAAA1jD,QACAhvC,KAAAgT,WACAhT,KAAA21I,iBAEAmH,cAAAmG,gBAAAE;A3Gx5CA,A2G05CAn0G,OAAAhvC,KAAAkjJ,iBAAApU,QAAAj3I,MAAAmI,KAAAgT,QAAAhT,KAAA21I,eACAjjD,QAAA4/C,cAAA5/C,QAGA,OAAA1jD,SACAhvC,KAAA40I,SAAA/nI,KAAAmiC,OAAAniC,KACA7M,KAAA40I,SAAArmC,KAAAv/D,OAAAu/D,KACAvuG,KAAA40I,SAAAc,MAAA1mG,OAAA0mG,MAEA11I,KAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA,QAEAx5I,KAAAq9I,YAAAvO,QAAAj3I,MAAA2hJ,YAAAO,eAAA/qG,UAIAhvC,KAAAm3I,UAAAkM,eAAA,GAAAn7I,OAAAC,UACAnI,KAAAk3I,YAAAmM,cAAA7J,YACApL,cAAApuI,KAAA03I,YAAA5I,SAEAN,WAAAxuI,KAAAq3I,WAAAr3I,KAAAs3I,WACAt3I,KAAAm5I,iBAAA,MAGAn5I,MAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA,UAKA6D,YAAA,SAAAvO,QAAAj3I,MAAA2hJ,YAAAO,eAAAyJ;A3Gr7CA,A2Gs7CA,IAAAA,cAAAxjJ,KAAA41I,cAAA57H,QAAAha,KAAAm5I,iBAAAn5I,KAAA40I,SAAA/nI,KAGA,WAFA7M,MAAAy+I,uBAAA5mJ,MAAAmI,KAAAsS,OAAAtS,KAAA0yF,QAKA1yF,MAAAk5I,eAAA,EACAl5I,KAAAy3I,UAAA5/I,KAEA,IACAm3C,QADAq0G,aAAArjJ,KAAA8iJ,WAAAhU,QAMA,IAAA9uI,KAAAi3I,WAAAjgJ,OAAA,GAAAgJ,KAAAsS,OAAA0qI,WAAAh9I,KAAA0yF,QAAA,CACA,GAAA+wD,WAAApH,eAAAmH,aAAAxjJ,KAAAsS,OAAAs9B,UAAAk/F,QAAAj3I,MAAAmI,KAAAA,KAAA0yF,SAAA1yF,KAAAsS,OAEA8hI,wBAAAp0I,KAAAsS,OAAAtS,KAAA0yF,QAAA+wD,aACAz0G,OAAAy0G,WAGAzjJ,KAAA40I,SAAA/nI,KAAA,SAGA,KAAA7M,KAAA40I,SAAA/nI,KAAA,CACA,GAAAwlI,cAAAyK,cAAAv3I,IAAAw0I,eAEA1H,gBACAmB,WAAAnB,aAAA0H,eAAAP,cACA5F,UAAAvB,aAAA0H,eAAAP,eACAxqG,OAAAqtG,eAAAmH,aAAAnR,aAAAziG,UAAAk/F,QAAAj3I,MAAAmI,KAAA+5I,gBAAA1H,aAAAmH,eACApF,uBAAA/B,aAAA0H,eAAA/qG,UACAhvC,KAAAsS,OAAA+/H;A3Gt9CA,A2Gu9CAryI,KAAA0yF,QAAAqnD,gBAIA,GAAAznI,QAAAtS,KAAAsS,OACAxD,QAAAwD,QAAAA,OAAAxD,OAEA,KAAAwD,SAAAkxI,aAAAxjJ,KAAA40I,SAAA/nI,KAkCA7M,KAAA41I,cAAA57H,QACA+/H,iBAAA/5I,KAAA0yF,SACA2pD,eAAA/pI,OAAAs9B,UAAAk/F,QAAAj3I,MAAAmI,KAAAA,KAAA0yF,SAAApgF,QAAAzF,OAAA7M,KAAA40I,SAAA/nI,OAEAuzI,YAAApgJ,KAAA41I,cAAAv5I,GACA2D,KAAA41I,cAAA57H,QAAA,EAEAha,KAAAy+I,uBAAA5mJ,MAAAya,OAAAtS,KAAA0yF,cAzCA,CAKA,GAJA1jD,OAAAA,QAAAqtG,eAAAmH,aAAAlxI,OAAAs9B,UAAAk/F,QAAAj3I,MAAAmI,KAAA+5I,gBAAAznI,OAAAtS,KAAA0yF,SAEA1yF,KAAA2uI,WAAA3uI,KAAAu3I,YAAAv3I,KAAA6uI,WAEA7/F,OAAA,MAEAlgC,SAAAqwI,cACA7sI,OAAAirI,KAAA71I,gBAAA1N,MAAAghE,OAAAygF,gBAAAzsG;A3Gr+CA,A2Gw+CAhvC,KAAAq5I,WAAA,WAAArqG,OAAAniC,KAAAmiC,OAAAu/D,KAAA,KAEA,YAAAv/D,QAAAhvC,KAAAi3I,WAAAjgJ,OAAA,IACAg4C,OAAA,MAGAhvC,KAAA40I,SAAA/nI,KAAAmiC,OAAAniC,KACA7M,KAAA40I,SAAArmC,KAAAv/D,OAAAu/D,KACAvuG,KAAA40I,SAAAc,MAAA1mG,OAAA0mG,MAEA11I,KAAAu4I,WAAAG,SAAA14I,KAAAu4I,WAAAI,SACA34I,KAAA84I,eAAAC,YAAA/4I,KAAA84I,eAAAE,YAAA12E,IAEAtiE,KAAAm3I,UAAAkM,eAAA,GAAAn7I,OAAAC,UACAnI,KAAAk3I,YAAAmM,cAAA7J,YACApL,cAAApuI,KAAA03I,YAAA5I,SAEAN,WAAAxuI,KAAAq3I,WAAAr3I,KAAAu3I,aACAv3I,KAAAm5I,iBAAA,EAEAn5I,KAAAy+I,uBAAA5mJ,MAAAya,OAAAtS,KAAA0yF,WAcAgxD,iBAAA,SAAAtzI,OAAAuzI,QACA,GAAArxI,QAAAtS,KAAAsS,OACAsxI,YAAA,EACAC,WAAA7P,UAAA1hI,OAAAtS,KAAA40I,SAAA/nI,SAAAyF,OAAAxD,QAAA9O,KAAA40I,SAAA/nI,MAAAsiG,KAAAqwC,SAAAmE,QACAG,eAAA7P,cAAA3hI,OAAAtS,KAAA40I,SAAA/nI,SAAAyF,OAAAxD,QAAA9O,KAAA40I,SAAA/nI,MAAAqnI,SAAAsL,SAAAmE;A3G7gDA,A2GyhDA,MAVAE,YAAA7jJ,KAAA+jJ,YAAA3zI,QAAApQ,KAAAu4I,WAAAvvI,QAAA,EACA86I,eAAA9jJ,KAAAgkJ,eAAA5zI,QAAApQ,KAAA84I,eAAAG,YAAA,EAEA4K,YAAA7jJ,KAAAu4I,WAAAvvI,SAAAhJ,KAAAu4I,WAAAM,QACA+K,WAAAE,gBAAA9jJ,KAAA84I,eAAAG,YAAAj5I,KAAA84I,eAAAD,QAEAiL,gBAAA9jJ,KAAA84I,eAAAG,aAAAj5I,KAAA84I,eAAAD,UACA+K,YAAA,GAGAA,YAGAK,gBAAA,SAAAj1G,OAAAqjG,aAAA3/C,SACA,GAIAl3F,OAAAC,OAJAqgJ,KAAAzJ,aAAAE,QAAA7/C,SACA0hC,OAAAge,YAAAC,aAAA3/C,SACAyc,KAAAkjC,aAAAvjI,QAAA9O,KAAA40I,SAAA/nI,MAAAsiG,KACA+kC,SAAA7B,aAAAvjI,QAAA9O,KAAA40I,SAAA/nI,MAAAqnI,QAGA4H,OACA97I,KAAAg4I,YAAA92H,KAAAlhB,KAAAu3I,YAAA9I,KAAA7qI,EAAAk4I,KAAA56H;A3GniDA,A2GoiDAlhB,KAAAg4I,YAAAjsI,IAAA/L,KAAAu3I,YAAA9I,KAAA5qI,EAAAi4I,KAAA/vI,IAEA/L,KAAAg4I,YAAAxvG,MAAAszG,KAAAtzG,MAAAxoC,KAAAu3I,YAAA9I,KAAA7qI,EACA5D,KAAAg4I,YAAAhnC,OAAA8qC,KAAA9qC,OAAAhxG,KAAAu3I,YAAA9I,KAAA5qI,EAEArI,MAAA,SAAAsgJ,MAAAA,KAAAtgJ,MACAsgJ,KAAAtzG,MAAAszG,KAAA56H,KACAzlB,OAAA,UAAAqgJ,MAAAA,KAAArgJ,OACAqgJ,KAAA9qC,OAAA8qC,KAAA/vI,KAGA/L,KAAAg4I,YAAA92H,KAAAlhB,KAAAg4I,YAAAjsI,IAAA/L,KAAAg4I,YAAAxvG,MAAAxoC,KAAAg4I,YAAAhnC,OAAA,EAGAhxG,KAAAk4I,YAAAv6I,OAAA,EAEA,IAAAumJ,YAAA/0C,MAAA,gBAAAA,KAAArmF,QAEAllB,EAAA5D,KAAAu3I,YAAA9I,KAAA7qI,EAAAwwH,OAAAxwH,EACAC,EAAA7D,KAAAu3I,YAAA9I,KAAA5qI,EAAAuwH,OAAAvwH,GAEAsrG,MAAAA,KAAArmF,SAAAllB,EAAA,EAAAC,EAAA,EAEA,IAAAi4I,MAAA3sC,MAAAA,KAAAmrC,gBAAAnrC,KAAAmrC,eAAAtjJ,OACA,IAAA,GAAAqF,GAAA,EAAAA,EAAA8yG,KAAAmrC,eAAAtjJ,OAAAqF,IACA2D,KAAAk4I,YAAAr4I;A3G5jDA,A2G6jDA+D,EAAA5D,KAAAg4I,YAAA92H,KAAA1lB,MAAA2zG,KAAAmrC,eAAAj+I,GAAAuH,EAAAsgJ,WAAAtgJ,EACAC,EAAA7D,KAAAg4I,YAAAjsI,IAAAtQ,OAAA0zG,KAAAmrC,eAAAj+I,GAAAwH,EAAAqgJ,WAAArgJ,QAKA7D,MAAAk4I,YAAAr4I,KAAAqkJ,WAGApI,OAAA5H,SAAAqG,aACAv6I,KAAAi4I,eAAA/2H,KAAAlhB,KAAAg4I,YAAA92H,KAAA1lB,MAAA04I,SAAAqG,YAAAr5H,KACAlhB,KAAAi4I,eAAAlsI,IAAA/L,KAAAg4I,YAAAjsI,IAAAtQ,OAAAy4I,SAAAqG,YAAAxuI,IAEA/L,KAAAi4I,eAAAzvG,MAAAxoC,KAAAg4I,YAAAxvG,MAAAhtC,OAAA,EAAA04I,SAAAqG,YAAA/xG,OACAxoC,KAAAi4I,eAAAjnC,OAAAhxG,KAAAg4I,YAAAhnC,OAAAv1G,QAAA,EAAAy4I,SAAAqG,YAAAvpC,SAGAhxG,KAAAi4I,eAAA/2H,KAAAlhB,KAAAi4I,eAAAlsI,IAAA/L,KAAAi4I,eAAAzvG,MAAAxoC,KAAAi4I,eAAAjnC,OAAA,GAoCA9wG,MAAA,SAAA8uC,OAAAqjG,aAAA3/C;A3GjnDA,A2GknDA1yF,KAAA8mG,gBACA9mG,KAAAk5I,eACAl5I,KAAAi3I,WAAAjgJ,QAAA,YAAAg4C,OAAAniC,KAAA,EAAA,KAMA,KAAA7J,QAAA0xI,aAAA10I,OACA00I,aAAA70I,KAAAG,MAIAA,KAAA40I,SAAA/nI,MACA7M,KAAA2uI,WAAA3uI,KAAAu3I,aAGAv3I,KAAA40I,SAAA/nI,KAAAmiC,OAAAniC,KACA7M,KAAA40I,SAAArmC,KAAAv/D,OAAAu/D,KACAvuG,KAAA40I,SAAAc,MAAA1mG,OAAA0mG,MACA11I,KAAAsS,OAAA+/H,aACAryI,KAAA0yF,QAAAA,QAEA1yF,KAAAikJ,gBAAAj1G,OAAAniC,KAAAwlI,aAAA3/C,SACA1yF,KAAA0jJ,iBAAA1jJ,KAAAu3I,YAAA9I,MAEAzuI,KAAA63I,UAAA73I,KAAAA,KAAA40I,SAAA/nI,KAAA,SAAA7M,KAAAy3I,aAGAwG,YAAA,SAAAnP,QAAAj3I,MAAA2hJ,YAAAO,eAAA4J,QACA,GAAA3jJ,KAAA41I,cAAA57H,OAAA,CACA,GAAAmqI,QAAAnkJ,KAAA41I,cAAAI,SAAAvH,KACA2V,SAAApkJ,KAAA41I,cAAAI,SAAAtH,OAEA2V;A3GnpDA,A2GopDAxwI,MAAAswI,OAAAvgJ,EAAA5D,KAAA41I,cAAAK,GACAhiI,MAAAkwI,OAAAtgJ,EAAA7D,KAAA41I,cAAAM,GACApiI,QAAAswI,SAAAxgJ,EAAA5D,KAAA41I,cAAAK,GACA/hI,QAAAkwI,SAAAvgJ,EAAA7D,KAAA41I,cAAAM,GAGAl2I,MAAA2uI,WAAA3uI,KAAAs3I,WAAA+M,sBAGArkJ,MAAAskJ,cAAAxV,SACA9uI,KAAA2uI,WAAA3uI,KAAAs3I,UAAAt3I,KAAA6uI,SAGA,IAKA+C,IAAAC,GALA0S,cAAAvkJ,KAAAs3I,UAAA7I,KAAA7qI,IAAA5D,KAAAq3I,WAAA5I,KAAA7qI,GACA5D,KAAAs3I,UAAA7I,KAAA5qI,IAAA7D,KAAAq3I,WAAA5I,KAAA5qI,GACA7D,KAAAs3I,UAAA5I,OAAA9qI,IAAA5D,KAAAq3I,WAAA3I,OAAA9qI,GACA5D,KAAAs3I,UAAA5I,OAAA7qI,IAAA7D,KAAAq3I,WAAA3I,OAAA7qI,EAGAw/I,aAAArjJ,KAAAquG,MAAA,EAAArrG,QAAAhD,KAAAi3I,WAAAhH,aAAAnB,SAkBA,IAfA9uI,KAAAk5I,gBAAAl5I,KAAAm5I,kBACAvH,GAAA5xI,KAAAs3I,UAAA5I,OAAA9qI,EAAA5D,KAAAu3I,YAAA7I,OAAA9qI;A3G1qDA,A2G2qDAiuI,GAAA7xI,KAAAs3I,UAAA5I,OAAA7qI,EAAA7D,KAAAu3I,YAAA7I,OAAA7qI,EAEA7D,KAAAm5I,gBAAA/J,MAAAwC,GAAAC,IAAA0O,sBAGAgE,eAAAvkJ,KAAAk5I,gBAAAl5I,KAAAm5I,kBACAn5I,KAAAk5I,eACA/rI,aAAAnN,KAAAo3I,WAAAiM,eAGArjJ,KAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA,SAGAx5I,KAAAk5I,cAAA,CAEA,GAAAqL,eAAAvkJ,KAAAm5I,kBAAAwK,OAEA,WADA3jJ,MAAAy+I,uBAAA5mJ,MAAAmI,KAAAsS,OAAAtS,KAAA0yF,QAOA,IAFAy8C,eAAAnvI,KAAAw3I,aAAAx3I,KAAAq3I,WAAAr3I,KAAAs3I,WAEAt3I,KAAA40I,SAAA/nI,KAAA,CAEA,GAAA7M,KAAAm5I,mBAEAn5I,KAAA41I,cAAA57H,QAAA80H,kBAAAoL,gBAAA,eAAAxkJ,KAAAo5I,QAAAp2I,OAAA,CAGA,IAAAsH,KAAA8mG,gBACAqoC,eAAAnvI,KAAAw3I,aAAAx3I,KAAAq3I,WAAAr3I,KAAAs3I;A3GzsDA,A2G4sDA,SAAAt3I,KAAA40I,SAAA/nI,MAAA,CACA,GAAA23I,MAAAjqJ,KAAA6uC,IAAAwoG,IACA6S,KAAAlqJ,KAAA6uC,IAAAyoG,IACA6S,WAAA1kJ,KAAAsS,OAAAxD,QAAA8hG,KAAArC,KACAA,KAAAi2C,KAAAC,KAAA,IAAAA,KAAAD,KAAA,IAAA,IAGA,IAAA,OAAAj2C,MAAA,OAAAm2C,YAAAA,aAAAn2C,KAAA,CAEAvuG,KAAA40I,SAAA/nI,KAAA,IAOA,KAHA,GAAA6lF,SAAA8mD,YAGAnhH,UAAAq6D,UAAA,CACA,GAAAqwD,qBAAAjG,cAAAv3I,IAAAmtF,QAEA,IAAAqwD,qBACAA,sBAAA/iJ,KAAAsS,SACAywI,oBAAAj0I,QAAA8hG,KAAAyuC,aACA,SAAA0D,oBAAAnzG,UAAA5vC,KAAA03I,YAAA13I,KAAAy3I,UAAAz3I,KAAA0yF,SAAA7lF,MACAinI,UAAAvlC,KAAAw0C,qBAAA,CAEA/iJ,KAAA40I,SAAA/nI,KAAA,OACA7M,KAAAsS,OAAAywI,oBACA/iJ,KAAA0yF,QAAAA,OACA,OAGAA,QAAA4/C,cAAA5/C;A3G1uDA,C2G+uDA,IAAA1yF,KAAA40I,SAAA/nI,KAAA,CACA,GAAA83I,iBAAA3kJ,KAEA4kJ,aAAA,SAAAvS,aAAAntI,SAAAR,SACA,GAAAwd,UAAA48H,mBACAp6I,QAAArL,iBAAA6L,UACA6kB,MAEA,IAAAsoH,eAAAsS,gBAAAryI,OAEA,MAAAghI,WAAAjB,aAAAmH,eACAnH,aAAAvjI,QAAA8hG,KAAAyuC,cACA7L,WAAAnB,aAAA3/C,QAAA8mD,cACA5F,UAAAvB,aAAA3/C,QAAA8mD,cACA1+H,gBAAA43E,QAAAxtF,SAAAgd,WACA,SAAAmwH,aAAAziG,UAAA+0G,gBAAAjN,YAAAiN,gBAAAlN,UAAAkN,gBAAAjyD,SAAA7lF,MACAinI,UAAAvlC,KAAA8jC,eACA+B,uBAAA/B,aAAA3/C,QAAA,QAEA2/C,aATA,OAeA,KAFA3/C,QAAA8mD,YAEAnhH,UAAAq6D,UAAA;A3GvwDA,A2GwwDA,GAAAmyD,sBAAA/H,cAAAmG,gBAAA2B,aAEA,IAAAC,qBAAA,CACA7kJ,KAAA40I,SAAA/nI,KAAA,OACA7M,KAAAsS,OAAAuyI,qBACA7kJ,KAAA0yF,QAAAA,OACA,OAGAA,QAAA4/C,cAAA5/C,YAOA,GAAA2nD,YAAAr6I,KAAA40I,SAAA/nI,OAAA7M,KAAA8mG,aAEA,IAAAuzC,WACAr6I,KAAAsS,OAAAxD,QAAA9O,KAAA40I,SAAA/nI,MAAAwyI,cACAjL,uBAAAp0I,KAAAsS,OAAAtS,KAAA0yF,QAAA1yF,KAAA40I,WAEA,WADA50I,MAAAF,KAAAjI,MAIA,IAAAmI,KAAA40I,SAAA/nI,MAAA7M,KAAAsS,OAAA,CACA+nI,UACAr6I,KAAAE,MAAAF,KAAA40I,SAAA50I,KAAAsS,OAAAtS,KAAA0yF,QAGA,IAAAkxD,YAAA5jJ,KAAA0jJ,iBAAA1jJ,KAAAs3I,UAAA7I,KAAAkV,SAGAC,YAAAvJ,YACAr6I,KAAA63I,UAAA73I,KAAAA,KAAA40I,SAAA/nI,KAAA,QAAAhV;A3GzyDA,A2G4yDAmI,KAAAy+I,uBAAA5mJ,MAAAmI,KAAAsS,OAAAtS,KAAA0yF,UAIA87C,WAAAxuI,KAAAq3I,WAAAr3I,KAAAs3I,YAEAt3I,KAAAg4G,UAAAh4G,KAAA80G,WACA90G,KAAAs+I,eAAAxP,YAIAr+B,UAAA,SAAA54G,OACA,GAAAitJ,WAAA,GAAA5K,eAAAl6I,KAAAnI,MAAA,OAAA,QAAAmI,KAAA0yF,QAEA1yF,MAAAg4G,UAAA,EACAh4G,KAAAsS,OAAAhR,KAAAwjJ,WAGA9kJ,KAAA82I,YAAAC,aACA/2I,KAAA82I,YAAA50H,YACAliB,KAAA82I,YAAAE,SAEAh3I,KAAAi/I,aACAj/I,KAAA+kJ,eAAA/kJ,KAAA0yF,QAGA,IAAAsyD,YAAAhlJ,KAAAilJ,cAAAptJ,MAAAitJ,UAMA,OAJAE,YAAA3qC,UACAr6G,KAAAklJ,gBAAAF,WAAA3qC,UAGAyqC,WAGAK,SAAA,SAAAttJ,OACA,GAAAya,QAAAtS,KAAAsS,OACAwyI,UAAA,GAAA5K,eAAAl6I,KAAAnI,MAAA,OAAA,OAAAmI,KAAA0yF,SACA0yD,iBAAAplJ,KAAA0yF,QACAr7D,KAAAr3B,KAAAqlJ,QAAAP,UAAAjtJ,MAAAutJ;A3Gl1DA,A2Go1DAplJ,KAAAs1I,WAAAj+G,KAAA09G,SACA/0I,KAAAu1I,YAAAl+G,KAAAq7D,OAEA,IAAAsyD,YAAAhlJ,KAAAilJ,cAAAptJ,MAAAitJ,UAWA,OATAxyI,QAAAhR,KAAAwjJ,WAEAE,WAAAM,OAAAtlJ,KAAAw1I,eAAAl0I,KAAA0jJ,WAAAM,OACAN,WAAAO,OAAAvlJ,KAAAs1I,WAAAh0I,KAAA0jJ,WAAAO,OACAP,WAAA3nC,MAAAr9G,KAAAs1I,WAAAh0I,KAAA0jJ,WAAA3nC,MAEAr9G,KAAAw1I,eAAAx1I,KAAAs1I,WACAt1I,KAAAy1I,gBAAAz1I,KAAAu1I,YAEAuP,WAGAU,YAAA,SAAA3tJ,OACA,GAAA4tJ,aAAA,GAAAvL,eAAAl6I,KAAAnI,MAAA,SAAA,QAAAmI,KAAA0yF,QAEA,IAAA1yF,KAAA40I,SAAAc,MAAA,CACA,GAAAgQ,WAAA1lJ,KAAAsS,OAAAigI,QAAAvyI,KAAA0yF,QAQA,IAAA1yF,KAAAsS,OAAAxD,QAAAinG,OAAA8kC,QAAA76I,KAAAsS,OAAAxD,QAAAinG,OAAAupC,oBAAA,CACA,GAAAqG,aAAA5tJ,UAAAiI,KAAA40I,SAAAc;A3Gj3DA,A2Gm3DAiQ,YAAA55I,IAAA45I,YAAA55I,KAAA45I,YAAAzkI,OAAAykI,YAAA30C,OACA20C,YAAAzkI,KAAAykI,YAAAzkI,MAAAykI,YAAA55I,MAAA45I,YAAAn9G,MACAm9G,YAAA30C,OAAA20C,YAAA30C,QAAA20C,YAAAn9G,QAAAm9G,YAAA55I,IACA45I,YAAAn9G,MAAAm9G,YAAAn9G,OAAAm9G,YAAA30C,SAAA20C,YAAAzkI,KAEAlhB,KAAA40I,SAAAgR,aAAAD,gBAGA3lJ,MAAA40I,SAAAgR,aAAA,IAIA5lJ,MAAAsS,OAAAxD,QAAAinG,OAAAupC,sBACAt/I,KAAA6lJ,uBAAAH,UAAAlqJ,MAAAkqJ,UAAAjqJ,QAGAuE,KAAA8lJ,aACA5lJ,MAAAwlJ,UACA18F,QAAAjxD,UAAA2tJ,WACAzM,WAAAlhJ,UAAA2tJ,WACA/1F,SAAA53D,UAAA2tJ,WACAK,OACA7kI,KAAA,EAAAsnB,MAAA,EAAAhtC,MAAA,EACAuQ,IAAA,EAAAilG,OAAA,EAAAv1G,OAAA,IAIAgqJ,YAAA3J,KAAA97I,KAAA8lJ,YAAA7M;A3G74DA,A2G84DAwM,YAAAO,UAAAhmJ,KAAA8lJ,YAAAC,MAOA,MAJA/lJ,MAAAsS,OAAAhR,KAAAmkJ,aAEAzlJ,KAAA80G,UAAA,EAEA2wC,aAGAQ,WAAA,SAAApuJ,OACA,GAAA4tJ,aAAA,GAAAvL,eAAAl6I,KAAAnI,MAAA,SAAA,OAAAmI,KAAA0yF,SAEAgjD,MAAA11I,KAAA40I,SAAAc,MACAjgH,OAAAz1B,KAAAsS,OAAAxD,QAAAinG,OAAAtgF,OACAywH,WAAA,eAAAzwH,QAAA,WAAAA,MAEA,IAAAigH,MAAA,CACA,GAAA9D,IAAA6T,YAAA7T,GACAC,GAAA4T,YAAA5T,GAEA3xI,MAAAF,KAAA8lJ,YAAA5lJ,MACA8oD,QAAAhpD,KAAA8lJ,YAAA98F,QACAiwF,WAAAj5I,KAAA8lJ,YAAA7M,WACA8M,MAAA/lJ,KAAA8lJ,YAAAC,MACAp2F,SAAA53D,OAAAiI,KAAA8lJ,YAAAn2F,SAAAspF,YAEAkN,cAAAzQ,KAGA,IAAA11I,KAAAsS,OAAAxD,QAAAinG,OAAAupC,oBAAA,CACA,GAAAuG,wBAAA7lJ,KAAA6lJ;A3G56DA,A2G86DAnQ,MAAA11I,KAAA40I,SAAAgR,aAEAO,cAAAjlI,MAAAilI,cAAAn1C,QACAm1C,cAAA39G,OAAA29G,cAAAp6I,IACA8lI,IAAAD,GAAAiU,uBAEAM,cAAAjlI,MAAAilI,cAAA39G,MAAAqpG,GAAAD,GAAAiU,wBACAM,cAAAp6I,KAAAo6I,cAAAn1C,UAAA4gC,GAAAC,GAAAgU,4BAEA7lJ,MAAAsS,OAAAxD,QAAAinG,OAAA8kC,SACAnF,MAAA11I,KAAA40I,SAAAgR,aAEAO,cAAAjlI,MAAAilI,cAAAn1C,QACAm1C,cAAA39G,OAAA29G,cAAAp6I,IACA8lI,IAAAD,GAEAuU,cAAAjlI,MAAAilI,cAAA39G,MAAAqpG,GAAAD,IACAuU,cAAAp6I,KAAAo6I,cAAAn1C,UAAA4gC,GAAAC,IASA,IALA6D,MAAA3pI,MAAAi9C,QAAAj9C,KAAA8lI,IACA6D,MAAA1kC,SAAAhoD,QAAAgoD,QAAA6gC,IACA6D,MAAAx0H,OAAA8nC,QAAA9nC,MAAA0wH,IACA8D,MAAAltG,QAAAwgB,QAAAxgB,OAAAopG;A3Gr8DA,A2Gu8DAsU,YAIA,GAFAnuJ,OAAAkhJ,WAAAjwF,SAEA,eAAAvzB,OAAA,CAEA,GAAA3U,KAEAm4H,YAAAltI,IAAAktI,WAAAjoC,SACAlwF,KAAAm4H,WAAAltI,IAEAktI,WAAAltI,IAAAktI,WAAAjoC,OACAioC,WAAAjoC,OAAAlwF,MAEAm4H,WAAA/3H,KAAA+3H,WAAAzwG,QACA1nB,KAAAm4H,WAAA/3H,KAEA+3H,WAAA/3H,KAAA+3H,WAAAzwG,MACAywG,WAAAzwG,MAAA1nB,WAMAm4H,YAAAltI,IAAAxR,KAAA+3B,IAAA02B,QAAAj9C,IAAA7L,MAAA8wG,QACAioC,WAAAjoC,OAAAz2G,KAAAC,IAAAwuD,QAAAgoD,OAAA9wG,MAAA6L,KACAktI,WAAA/3H,KAAA3mB,KAAA+3B,IAAA02B,QAAA9nC,KAAAhhB,MAAAsoC,OACAywG,WAAAzwG,MAAAjuC,KAAAC,IAAAwuD,QAAAxgB,MAAAtoC,MAAAghB,KAGA+3H,YAAAz9I,MAAAy9I,WAAAzwG,MAAAywG,WAAA/3H,KACA+3H,WAAAx9I,OAAAw9I,WAAAjoC,OAAAioC,WAAAltI,GAEA,KAAA,GAAAqwI,QAAAnD,YACA8M,MAAA3J,MAAAnD,WAAAmD,MAAAzsF,SAAAysF;A3Gx+DA,A2G2+DAqJ,YAAA/P,MAAA11I,KAAA40I,SAAAc,MACA+P,YAAA3J,KAAA7C,WACAwM,YAAAO,UAAAD,MAKA,MAFA/lJ,MAAAsS,OAAAhR,KAAAmkJ,aAEAA,aAGAW,aAAA,SAAAvuJ,OACA,GAAAwuJ,cAAA,GAAAnM,eAAAl6I,KAAAnI,MAAA,UAAA,QAAAmI,KAAA0yF,QAYA,OAVA2zD,cAAAv7G,GAAA,EAEA9qC,KAAAm4I,QAAAC,cAAAp4I,KAAAm4I,QAAAE,aAAAgO,aAAAj6C,SACApsG,KAAAm4I,QAAAG,WAAAt4I,KAAAm4I,QAAApG,UAAAsU,aAAArU,MACAhyI,KAAAm4I,QAAAhkB,MAAA,EAEAn0H,KAAAo5I,WAAA,EAEAp5I,KAAAsS,OAAAhR,KAAA+kJ,cAEAA,cAGAC,YAAA,SAAAzuJ,OACA,IAAAmI,KAAAi3I,WAAAjgJ,OACA,MAAAgJ,MAAA63I,SAGA,IAAAwO,aAkBA,OAhBAA,cAAA,GAAAnM,eAAAl6I,KAAAnI,MAAA,UAAA,OAAAmI,KAAA0yF;A3G3gEA,A2G4gEA2zD,aAAAv7G,GAAAu7G,aAAAlyB,MAAAn0H,KAAAm4I,QAAAhkB,MAEAn0H,KAAAsS,OAAAhR,KAAA+kJ,cAEArmJ,KAAAm4I,QAAApG,UAAAsU,aAAArU,MACAhyI,KAAAm4I,QAAAE,aAAAgO,aAAAj6C,SAEAi6C,aAAAlyB,QAAAt4D,EAAAA,GACA,OAAAwqF,aAAAlyB,OACApqG,SAAAs8H,aAAAlyB,OACAztH,MAAA2/I,aAAAlyB,SAEAn0H,KAAAm4I,QAAAhkB,MAAAkyB,aAAAlyB,OAGAkyB,cAGA/C,YAAA,SAAAxU,QAAAj3I,MAAA2hJ,aACAx5I,KAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA,SAGA4E,UAAA,SAAAtP,QAAAj3I,MAAA2hJ,YAAAO,gBACA,GAAAsJ,cAAArjJ,KAAAquG,MAAA,EAAArrG,QAAAhD,KAAAi3I,WAAAhH,aAAAnB,SAEA3hI,cAAAnN,KAAAo3I,WAAAiM,eAEArjJ,KAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA;A3GtiEA,A2GuiEAx5I,KAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA,OAEAx5I,KAAA69I,WAAA/O,QAAAj3I,MAAA2hJ,YAAAO,gBAEA/5I,KAAAumJ,cAAAzX,UAGAuP,cAAA,SAAAvP,QAAAj3I,MAAA2hJ,YAAAO,gBACA,GAAAsJ,cAAArjJ,KAAAquG,MAAA,EAAArrG,QAAAhD,KAAAi3I,WAAAhH,aAAAnB,SAEA3hI,cAAAnN,KAAAo3I,WAAAiM,eAEArjJ,KAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA,UACAx5I,KAAA69I,WAAA/O,QAAAj3I,MAAA2hJ,YAAAO,gBAEA/5I,KAAAumJ,cAAAzX,UAQA0X,YAAA,SAAA1X,QAAAj3I,MAAA2hJ,aACAx5I,KAAA+3I,SACAlgJ,MAAAic,UAAA9T,KAAA+3I,QAAAjkI,SACAjc,MAAAqc,UAAAlU,KAAA+3I,QAAA7jI,SACAslI,cAAAx5I,KAAA+3I,QAAAzlI,SAEAtS,KAAAk3I,YAAA,GAAAsC;A3GnkEA,A2GokEAx5I,KAAAm3I,UAAA,IAAA,GAAAjvI,OAAAC,UACAnI,KAAAujJ,oBAAAzU,QAAAj3I,MAAA2hJ,YAAA,SAKAqE,WAAA,SAAA/O,QAAAj3I,MAAA2hJ,YAAAO,gBACA,GAAA0M,UACAn0I,OAAAtS,KAAAsS,OACAxD,QAAAwD,QAAAA,OAAAxD,QACA43I,eAAA53I,SAAA9O,KAAA40I,SAAA/nI,MAAAiC,QAAA9O,KAAA40I,SAAA/nI,MAAA8sI,QACA/D,cAAA51I,KAAA41I,aAEA,IAAA51I,KAAA8mG,cAAA,CAEA,GAAA8uC,cAAA57H,SAAA47H,cAAAE,OAAA,MAEA,IAAA6Q,cASA5Q,WARA13I,KAAA,GAAA6J,OAAAC,UACAy+I,iBAAA,EACAjN,SAAA,EACA9D,WAAA,EACAgR,QAAA7S,UAAA1hI,OAAAtS,KAAA40I,SAAA/nI,OAAAiC,QAAA9O,KAAA40I,SAAA/nI,MAAAsiG,KAAAqwC,QACAsH,YAAA7S,cAAA3hI,OAAAtS,KAAA40I,SAAA/nI,OAAAiC,QAAA9O,KAAA40I,SAAA/nI,MAAAqnI,SAAAsL,QACA5N,GAAA,EACAC,GAAA;A3G5lEA,A2GknEA,GAlBA8U,aADA3mJ,KAAAg4G,SACA,MAAAlpG,QAAA8hG,KAAArC,KAAAh0G,KAAA6uC,IAAAppC,KAAAw3I,aAAA9I,OAAAW,IACA,MAAAvgI,QAAA8hG,KAAArC,KAAAh0G,KAAA6uC,IAAAppC,KAAAw3I,aAAA9I,OAAAY,IACAtvI,KAAAw3I,aAAA9I,OAAAjnH,MAGAznB,KAAAw3I,aAAA9I,OAAAjnH,MAIAm/H,gBAAAF,gBAAAA,eAAAztI,SACA,YAAAjZ,KAAA40I,SAAA/nI,MACAhV,QAAA+9I,cAAAG,WAEA4D,QAAAiN,iBACAvoJ,IAAA2B,KAAAs3I,UAAAjiI,UAAA,IACAsxI,aAAAD,eAAAhH,UACAiH,aAAAD,eAAA/G,SAEAiH,kBAAAjN,UAAAkN,SAAAC,aAAA,CAEA,GAAAC,gBAEAA,cAAA53C,KAAA43C,aAAA7S,SAAA6S,aAEAF,UACA7mJ,KAAA+jJ,YAAA/jJ,KAAAs3I,UAAA7I,KAAAsY,cACAA,aAAA/9I,SACA4oI,IAAAmV,aAAAnV;A3G1nEA,A2G2nEAC,IAAAkV,aAAAlV,KAIAiV,cACA9mJ,KAAAgkJ,eAAAhkJ,KAAAs3I,UAAA7I,KAAAsY,cACAA,aAAA9N,aACArH,IAAAmV,aAAAnV,GACAC,IAAAkV,aAAAlV,MAIAD,IAAAC,MACAgE,WAAA,GAIA,GAAA8D,SAAA9D,UAAA,CAUA,GATArH,WAAAoH,cAAAI,SAAAh2I,KAAAs3I,WAEAt3I,KAAA6uI,SAAA,GAAA+G,cAAAG,WAAAA,WACA,GAAAmE,eAAAl6I,KAAAnI,MAAAmI,KAAA40I,SAAA/nI,KAAA,eAAA7M,KAAA0yF,SAEAkjD,cAAAO,GAAA93I,IAEAiU,OAAAhR,KAAAs0I,cAAAG,YAEA4D,QAAA,CACA/D,cAAAQ,IAAAp2I,KAAAw3I,aAAA9I,OAAAW,GACAuG,cAAAoR,IAAAhnJ,KAAAw3I,aAAA9I,OAAAY,GACAsG,cAAAqR,GAAAN,aAEA3mJ,KAAAknJ,YAAAtR,cAEA,IAEAuR,cAFA1Y,KAAA12I,UAAAiI,KAAAs3I,UAAA7I,MACAra,OAAAge,YAAA9/H,OAAAtS,KAAA0yF;A3G7pEA,A2GgrEA,GAhBA+7C,KAAA7qI,EAAA6qI,KAAA7qI,EAAAgyI,cAAAjkH,GAAAyiG,OAAAxwH,EACA6qI,KAAA5qI,EAAA4qI,KAAA5qI,EAAA+xI,cAAAtkH,GAAA8iG,OAAAvwH,EAEAsjJ,cACAC,aAAA,EACAxjJ,EAAA6qI,KAAA7qI,EACAC,EAAA4qI,KAAA5qI,EACA+tI,GAAA,EACAC,GAAA,EACA1iC,KAAA,MAGAg4C,aAAAh4C,KAAAg4C,aAEAvV,GAAAC,GAAA,EAEAgV,QAAA,CACA,GAAA13C,MAAAnvG,KAAA+jJ,YAAA/jJ,KAAAs3I,UAAA7I,KAAA0Y,aAEAh4C,MAAAnmG,SACA4oI,IAAAziC,KAAAyiC,GACAC,IAAA1iC,KAAA0iC,IAIA,GAAAiV,YAAA,CACA,GAAA5S,UAAAl0I,KAAAgkJ,eAAAhkJ,KAAAs3I,UAAA7I,KAAA0Y,aAEAjT,UAAA+E,aACArH,IAAAsC,SAAAtC,GACAC,IAAAqC,SAAArC,IAIA+D,cAAAyR,YAAAzV,GACAgE,cAAA0R,YAAAzV,GAEA+D,cAAAv5I,EAAAgkJ,SAAArgJ,KAAA02I,uBAGAd,eAAAC,WAAA,EACAD,cAAAjkH,GAAAigH,GACAgE,cAAAtkH,GAAAugH,GAEA+D,cAAAK,GAAAL,cAAAM,GAAA,EAEAN,cAAAv5I,EAAAgkJ,SAAArgJ,KAAA42I;A3G7sEA,A2GitEA,YADAhB,cAAA57H,QAAA,IAIA6sI,SAAAC,cAEA9mJ,KAAAi+I,YAAAnP,QAAAj3I,MAAA2hJ,YAAAO,gBAAA,GAIA,GAAA/5I,KAAAg4G,SAAA,CACAyuC,SAAA,GAAAvM,eAAAl6I,KAAAnI,MAAA,OAAA,MAAAmI,KAAA0yF,QAEA,IAAA0yD,kBAAAplJ,KAAA0yF,QACAr7D,KAAAr3B,KAAAqlJ,QAAAoB,SAAA5uJ,MAAAutJ,iBAEAplJ,MAAAs1I,WAAAj+G,KAAA09G,SACA/0I,KAAAu1I,YAAAl+G,KAAAq7D,OAEA,IAAAsyD,YAAAhlJ,KAAAilJ,cAAAptJ,MAAA4uJ,SAEAzB,YAAAM,OAAAtlJ,KAAAw1I,eAAAl0I,KAAA0jJ,WAAAM,OACAN,WAAAO,OAAAvlJ,KAAAs1I,WAAAh0I,KAAA0jJ,WAAAO,OACAP,WAAA3tH,MAAAr3B,KAAAs1I,WAAAh0I,KAAA0jJ,WAAA3tH,MACA2tH,WAAAjoC,YACA/8G,KAAAklJ,gBAAAF,WAAAjoC,YAGAzqG,OAAAhR,KAAAmlJ,cAEAzmJ,MAAA80G,UACA2xC,SAAA,GAAAvM,eAAAl6I,KAAAnI,MAAA,SAAA,MAAAmI,KAAA0yF;A3G9uEA,A2G+uEApgF,OAAAhR,KAAAmlJ,WAEAzmJ,KAAAo5I,YACAqN,SAAA,GAAAvM,eAAAl6I,KAAAnI,MAAA,UAAA,MAAAmI,KAAA0yF,SACApgF,OAAAhR,KAAAmlJ,UAGAzmJ,MAAAF,KAAAjI,QAGA0vJ,aAAA,SAAA70D,SACA,GAEAr2F,GAFAmrJ,SACAtlI,WAMA,KAHAwwE,QAAAA,SAAA1yF,KAAA0yF,QAGAr2F,EAAA,EAAAA,EAAAygJ,cAAA9lJ,OAAAqF,IACA,GAAAygJ,cAAAzgJ,GAAAyS,QAAAuoB,KAAApe,QAAA,CAEA,GAAA+vC,SAAA8zF,cAAAzgJ,GACAwpD,OAAAmD,QAAAl6C,QAAAuoB,KAAAwuB,MAGA,MAAAxtB,UAAAwtB,SAAAA,SAAA6sC,SACA95D,SAAAitB,UACA/qC,gBAAA43E,QAAA7sC,SAQA,IAAA,GAFA4hG,cAAAz+F,QAAA9jD,SAAA8jD,QAAAuqF,SAAAl6I,iBAAA2vD,QAAA9jD,WAAA8jD,QAAAg0F,UAEAvgJ,EAAA,EAAA4vC,IAAAo7G,aAAAzwJ,OAAAq1C,IAAA5vC,EAAAA,IAAA,CACA,GAAAirJ,gBAAAD,aAAAhrJ,EAEAirJ,kBAAAh1D,UAIA80D,MAAA3nJ,KAAAmpD;A3GxxEA,A2GyxEA9mC,SAAAriB,KAAA6nJ,kBAIA,OACA3Q,UAAAyQ,MACAtlI,SAAAA,WAIAgjI,gBAAA,SAAArtJ,OACA,GAAAwE,GACA2sD,QACA0+F,eACAC,WAGA,KAAAtrJ,EAAA,EAAAA,EAAA2D,KAAA82I,YAAAC,UAAA//I,OAAAqF,IACA2sD,QAAAhpD,KAAA82I,YAAAC,UAAA16I,GACAqrJ,eAAA1nJ,KAAA82I,YAAA50H,SAAA7lB,GAGAqrJ,iBAAAC,cAEA9vJ,MAAAya,OAAAo1I,eACA1+F,QAAA1nD,KAAAzJ,QAEA8vJ,YAAAD,gBAOA3C,eAAA,SAAA6C,aAEA,GAAAC,eAAA7nJ,KAAAunJ,aAAAK,aAAA,EAEA5nJ,MAAA82I,YAAAC,UAAA8Q,cAAA9Q,UACA/2I,KAAA82I,YAAA50H,SAAA2lI,cAAA3lI,SACAliB,KAAA82I,YAAAE,QAEA,KAAA,GAAA36I,GAAA,EAAAA,EAAA2D,KAAA82I,YAAAC,UAAA//I,OAAAqF,IACA2D,KAAA82I,YAAAE,MAAA36I,GAAA2D,KAAA82I,YAAAC,UAAA16I,GAAAk2I,QAAAvyI,KAAA82I,YAAA50H,SAAA7lB;A3Gn0EA,E2Gu0EAgpJ,QAAA,SAAAP,UAAAjtJ,MAAA+vJ,aACA,GAAAE,cAEA7I,cACAj/I,KAAA+kJ,eAAA6C,YAIA,KAAA,GAAAnrJ,GAAA,EAAAA,EAAAuD,KAAA82I,YAAAC,UAAA//I,OAAAyF,IAAA,CACA,GAAAusD,SAAAhpD,KAAA82I,YAAAC,UAAAt6I,GACAirJ,eAAA1nJ,KAAA82I,YAAA50H,SAAAzlB,GACAq/I,KAAA97I,KAAA82I,YAAAE,MAAAv6I,EAEAqrJ,YAAAjoJ,KAAAmpD,QAAA++F,UAAAjD,UAAAjtJ,MAAAmI,KAAAsS,OAAAs1I,YAAAF,eAAA5L,MACA4L,eACA,MAIA,GAAAM,WAAAlT,sBAAAgT,YACA/S,SAAA/0I,KAAA82I,YAAAC,UAAAiR,YAAA,KACAt1D,QAAA1yF,KAAA82I,YAAA50H,SAAA8lI,YAAA,IAEA,QACAjT,SAAAA,SACAriD,QAAAA,UAIAuyD,cAAA,SAAAgD,aAAAnD,WACA,GAAAE,aACAO,MAAA;A3Gr2EA,A2Gs2EAD,MAAA,KACAjrC,SAAA,KACA0C,WAAA,KACAM,KAAA,KACAhmF,KAAA,KA2FA,OAxFAr3B,MAAAu1I,cAAAv1I,KAAAy1I,kBAEAz1I,KAAAw1I,iBACAwP,WAAAM,OACAhzI,OAAAtS,KAAAy1I,gBACAV,SAAA/0I,KAAAw1I,eACAnhI,cAAAywI,UAAAxyI,OACAg/F,UAAAwzC,UAAAzS,aACAyS,UAAAA,UACAtpD,YAAAx7F,KACAqV,UAAAyvI,UAAAzvI,UACA3c,KAAA,aAGAosJ,UAAAoD,UAAAloJ,KAAAy1I,gBACAqP,UAAAqD,aAAAnoJ,KAAAw1I,gBAGAx1I,KAAAs1I,aACA0P,WAAAO,OACAjzI,OAAAtS,KAAAu1I,YACAR,SAAA/0I,KAAAs1I,WACAjhI,cAAAywI,UAAAxyI,OACAg/F,UAAAwzC,UAAAzS,aACAyS,UAAAA,UACAtpD,YAAAx7F,KACAqV,UAAAyvI,UAAAzvI,UACA3c,KAAA;A3Gv4EA,E2G04EAosJ,UAAAsD,UAAApoJ,KAAAu1I,YACAuP,UAAA/P,SAAA/0I,KAAAs1I,aAIA,YAAAwP,UAAApsJ,MAAAsH,KAAAs1I,aACA0P,WAAA3tH,MACA/kB,OAAAtS,KAAAu1I,YACAR,SAAA/0I,KAAAs1I,WACAjhI,cAAAywI,UAAAxyI,OACAg/F,UAAAwzC,UAAAzS,aACAyS,UAAAA,UACAtpD,YAAAx7F,KACAqV,UAAAyvI,UAAAzvI,UACA3c,KAAA,QAGAosJ,UAAA/P,SAAA/0I,KAAAs1I,YAEA,cAAAwP,UAAApsJ,OACAssJ,WAAA3qC,UACA/nG,OAAA,KACAyiI,SAAA,KACA1gI,cAAAywI,UAAAxyI,OACAg/F,UAAAwzC,UAAAzS,aACAyS,UAAAA,UACAtpD,YAAAx7F,KACAqV,UAAAyvI,UAAAzvI,UACA3c,KAAA,iBAGA,YAAAosJ,UAAApsJ,OACAssJ,WAAAjoC,YACAzqG,OAAA,KACAyiI,SAAA;A3G36EA,A2G46EA1gI,cAAAywI,UAAAxyI,OACAg/F,UAAAwzC,UAAAzS,aACAyS,UAAAA,UACAtpD,YAAAx7F,KACAqV,UAAAyvI,UAAAzvI,UACA3c,KAAA,mBAGA,aAAAosJ,UAAApsJ,MAAAsH,KAAAs1I,aACA0P,WAAA3nC,MACA/qG,OAAAtS,KAAAu1I,YACAR,SAAA/0I,KAAAs1I,WACAjhI,cAAAywI,UAAAxyI,OACAg/F,UAAAwzC,UAAAzS,aACAyS,UAAAA,UACAtpD,YAAAx7F,KACAqoJ,SAAAvD,UACAzvI,UAAAyvI,UAAAzvI,UACA3c,KAAA,YAEAosJ,UAAA/P,SAAA/0I,KAAAs1I,YAGA0P,YAGArG,cAAA,WACA,MAAA3+I,MAAAg4G,UAAA,QAAAh4G,KAAA80G,UAAA,UAAA90G,KAAAo5I,WAAA,WAAA,MAGAtyC,YAAA,WACA,MAAA9mG,MAAAg4G,UAAAh4G,KAAA80G,UAAA90G,KAAAo5I;A3G18EA,E2G68EAkP,aAAA,WACAtoJ,KAAAsS,OAAAtS,KAAA0yF,QAAA,KAEA1yF,KAAAs1I,WAAAt1I,KAAAu1I,YAAAv1I,KAAAw1I,eAAAx1I,KAAAy1I,gBAAA,MAGA31I,KAAA,SAAAjI,OACA,GAAAmI,KAAA8mG,cAAA,CACA2gC,WAAA3nI,OACAE,KAAAgT,WACAhT,KAAA21I,gBAEA,IAAArjI,QAAAtS,KAAAsS,MAEAA,QAAAxD,QAAAqwI,cACA7sI,OAAAirI,KAAA71I,gBAAA1N,MAAAghE,OAAA,IAIAnjE,OAAAvB,WAAAuB,MAAA4a,iBACAzS,KAAAy+I,uBAAA5mJ,MAAAya,OAAAtS,KAAA0yF,SAGA1yF,KAAAg4G,WACAh4G,KAAA82I,YAAAC,UAAA/2I,KAAA82I,YAAA50H,SAAAliB,KAAA82I,YAAAE,MAAA,MAIAh3I,KAAAsoJ,eAEAtoJ,KAAAk5I,cAAAl5I,KAAAu4I,WAAAvvI,OAAAhJ,KAAAg4G,SAAAh4G,KAAA80G,SAAA90G,KAAAo5I,WAAA,EACAp5I,KAAA40I,SAAA/nI,KAAA7M,KAAA63I,UAAA;A3G3+EA,A2G4+EA73I,KAAA41I,cAAAU,SAAAt2I,KAAA41I,cAAAW,SAAA,CAGA,KAAA,GAAAl6I,GAAA,EAAAA,EAAA2D,KAAA6uI,SAAA73I,OAAAqF,IACA,KAAA2G,QAAAhD,KAAAi3I,WAAAhH,aAAAjwI,KAAA6uI,SAAAxyI,MACA2D,KAAA6uI,SAAAlxI,OAAAtB,EAAA,IAKAs6I,aAAA,WACA,GAAAf,eAAA51I,KAAA41I,cACA9mI,QAAA9O,KAAAsS,OAAAxD,QAAA9O,KAAA40I,SAAA/nI,MAAA8sI,QACA4O,OAAAz5I,QAAA2wI,WACAj8I,GAAA,GAAA0E,OAAAC,UAAA,IAAAytI,cAAAO,EAEA,IAAA3yI,EAAAoyI,cAAA9kH,GAAA,CAEA,GAAAvwB,UAAA,GAAAhG,KAAA+gE,KAAAitF,OAAA/kJ,GAAAoyI,cAAAY,WAAAZ,cAAAa,SAEA,IAAAb,cAAAyR,aAAAzR,cAAAjkH,IAAAikH,cAAA0R,aAAA1R,cAAAtkH,GACAskH,cAAAK,GAAAL,cAAAjkH,GAAApxB,SACAq1I,cAAAM,GAAAN,cAAAtkH,GAAA/wB,aAEA,CACA,GAAAioJ,WAAA3V,uBACA,EAAA,EACA+C,cAAAjkH,GAAAikH,cAAAtkH,GACAskH,cAAAyR,WAAAzR,cAAA0R,WACA/mJ;A3GxgFA,A2G0gFAq1I,cAAAK,GAAAuS,UAAA5kJ,EACAgyI,cAAAM,GAAAsS,UAAA3kJ,EAGA7D,KAAAi+I,YAAArI,cAAAG,WAAAH,cAAAG,YAEAH,cAAAv5I,EAAAgkJ,SAAArgJ,KAAA02I,uBAGAd,eAAAE,QAAA,EAEAF,cAAAK,GAAAL,cAAAyR,WACAzR,cAAAM,GAAAN,cAAA0R,WAEAtnJ,KAAAi+I,YAAArI,cAAAG,WAAAH,cAAAG,YACA/1I,KAAA69I,WAAAjI,cAAAG,WAAAH,cAAAG,YAEAH,cAAA57H,OAAA47H,cAAAE,QAAA,GAIAe,eAAA,WACA,GAAAjB,eAAA51I,KAAA41I,cACApyI,GAAA,GAAA0E,OAAAC,UAAAytI,cAAAO,GACAp3I,SAAAiB,KAAAsS,OAAAxD,QAAA9O,KAAA40I,SAAA/nI,MAAA8sI,QAAAiG,iBAEA7gJ,UAAAyE,GACAoyI,cAAAK,GAAA7C,YAAA5vI,EAAA,EAAAoyI,cAAAjkH,GAAA5yB;A3GpiFA,A2GqiFA62I,cAAAM,GAAA9C,YAAA5vI,EAAA,EAAAoyI,cAAAtkH,GAAAvyB,UAEAiB,KAAAi+I,YAAArI,cAAAG,WAAAH,cAAAG,YAEAH,cAAAv5I,EAAAgkJ,SAAArgJ,KAAA42I,uBAGAhB,cAAAE,QAAA,EAEAF,cAAAK,GAAAL,cAAAjkH,GACAikH,cAAAM,GAAAN,cAAAtkH,GAEAtxB,KAAAi+I,YAAArI,cAAAG,WAAAH,cAAAG,YACA/1I,KAAA69I,WAAAjI,cAAAG,WAAAH,cAAAG,YAEAH,cAAAC,UACAD,cAAA57H,OAAA47H,cAAAE,QAAA,IAIAgN,WAAA,SAAAhU,SACA,GAAA9pI,IAAAirI,aAAAnB,SACAj4H,MAAA7W,KAAAquG,MAAA,EAAArrG,QAAAhD,KAAAi3I,WAAAjyI,GASA,OAPA,KAAA6R,QACAA,MAAA7W,KAAAi3I,WAAAjgJ,QAGAgJ,KAAAi3I,WAAApgI,OAAA7R,GACAhF,KAAA6uI,SAAAh4H,OAAAi4H;A3GjkFA,A2GmkFAj4H,OAGA0vI,cAAA,SAAAzX,SACA,GAAA9pI,IAAAirI,aAAAnB,SACAj4H,MAAA7W,KAAAquG,MAAA,EAAArrG,QAAAhD,KAAAi3I,WAAAjyI,GAEA,MAAA6R,QAEA7W,KAAA6uI,SAAAlxI,OAAAkZ,MAAA,GACA7W,KAAAi3I,WAAAt5I,OAAAkZ,MAAA,GACA7W,KAAAk3I,YAAAv5I,OAAAkZ,MAAA,GACA7W,KAAAm3I,UAAAx5I,OAAAkZ,MAAA,GACA7W,KAAAo3I,WAAAz5I,OAAAkZ,MAAA,KAGAytI,cAAA,SAAAxV,SACA,GAAAj4H,OAAA7W,KAAAquG,MAAA,EAAArrG,QAAAhD,KAAAi3I,WAAAhH,aAAAnB,SAEA,MAAAj4H,QAEA7W,KAAA6uI,SAAAh4H,OAAAi4H,UAGAyU,oBAAA,SAAAzU,QAAAj3I,MAAA2hJ,YAAAD,WAcA,QAAAkP,kBAAApW,aAAAntI,SAAAR,SACA,GAAAgkJ,KAAA5J,mBACAp6I,QAAArL,iBAAA6L,UACA6kB,MAEAsoH,cAAA4K,SAAA1D,YACAlhH,UAAAq6D,UACA4gD,UAAAjB,aAAA3/C,WACA8gD,WAAAnB,aAAA3/C,QAAA8mD,cACA5F,UAAAvB,aAAA3/C,QAAA8mD,cACA1+H,gBAAA43E,QAAAxtF,SAAAwjJ,OAEA9P,QAAA/4I,KAAAwyI;A3GpnFA,A2GqnFAnwH,SAAAriB,KAAA6yF,UA1BA,GAAA2wD,cAAArjJ,KAAAquG,MAAA,EAAArrG,QAAAhD,KAAAi3I,WAAAhH,aAAAnB,SAGA,IAAA,QAAAyK,YAAAv5I,KAAAm5I,iBAEAn5I,KAAAk3I,YAAAmM,eAAArjJ,KAAAk3I,YAAAmM,gBAAA7J,YAFA,CA2BA,IArBA,GAAAZ,YACA12H,YACAwwE,QAAA8mD,YAmBA9mD,SACAmqD,SAAA8L,MAAAj2D,UAAAmqD,SAAAnqD,SAAAuqD,SAAA1D,aACAX,QAAA/4I,KAAAg9I,SAAAnqD,UACAxwE,SAAAriB,KAAA6yF,UAGAoqD,cAAAmG,gBAAAwF,kBAEA/1D,QAAA4/C,cAAA5/C,UAKAkmD,QAAA5hJ,QAAA,QAAAuiJ,YACAv5I,KAAA4oJ,aAAA9Z,QAAAj3I,MAAA2hJ,YAAAZ,QAAA12H,SAAAq3H,aAIAqP,aAAA,SAAA9Z,QAAAj3I,MAAA2hJ,YAAAZ,QAAA12H,SAAAq3H;A3G1oFA,A2G2oFA,GAEAl9I,GAEAmsB,SAAAqgI,mBAJAxF,aAAArjJ,KAAAquG,MAAA,EAAArrG,QAAAhD,KAAAi3I,WAAAhH,aAAAnB,UACAmZ,eA6CA,KAtCA,cAAA1O,UACA0O,aAAAnZ,SAGAV,cAAA6Z,aAAApwJ,OACAA,QAAAi3I,SACAV,cAAA6Z,aAAAnZ,SAGAmZ,aAAAx1I,eAAA+oI,uBACAyM,aAAA70I,gBAAA8mI,cAAA/3I,UAAAiR,gBACA60I,aAAA1yI,yBAAA2kI,cAAA/3I,UAAAoT,yBACA0yI,aAAAzsD,YAAAx7F,KAEAioJ,aAAA5yI,WAAA,GAAAnN,OAAAC,UACA8/I,aAAAhzI,cAAApd,MACAowJ,aAAAa,gBAAAha,QACAmZ,aAAAvvJ,KAAA6gJ,UACA0O,aAAA/X,UAAAD,aAAAnB;A3GpqFA,A2GqqFAmZ,aAAAvO,YAAA15I,KAAAquG,MAAA,QAAAwrC,qBACAjhH,SAAAk2G,QAAA4K,aACA5K,QAAA4K,aACA,CAAA,CAAA,QAAA,MAAA,SAAA5K,QAAA4K,aAHA,SAMA,QAAAH,YACA0O,aAAAn8H,GAAAm8H,aAAA5yI,UAAArV,KAAAm3I,UAAAkM,cAEA76H,SAAAy/H,aAAA5yI,UAAArV,KAAA83I,QACA+Q,sBAAA7oJ,KAAA+3I,SAAA,cAAA/3I,KAAA+3I,QAAAr/I,MACAsH,KAAA+3I,QAAAzlI,SAAA21I,aAAA31I,QACA,IAAAkW,UAEAy/H,aAAAA,UAAAY,mBAEA7oJ,KAAA83I,QAAAmQ,aAAA5yI,WAGAhZ,EAAA,EAAAA,EAAAu8I,QAAA5hJ,SACAixJ,aAAAh1I,cAAAiP,SAAA7lB,GACA4rJ,aAAA5V,aAAAuG,QAAAv8I,GACAu8I,QAAAv8I,GAAAiF,KAAA2mJ,gBAEAA,aAAAhG,6BACAgG,aAAAc,oBAAA7mI,SAAA7lB,EAAA,KAAA4rJ,aAAAh1I,gBANA5W;A3GvrFA,A2GksFA,GAAAwsJ,mBAAA,CACA,GAAAG,aAEAjxJ,QAAAixJ,UAAAf,cAEAe,UAAAl9H,GAAAtD,SACAwgI,UAAAtwJ,KAAA,YAEAsH,KAAAujJ,oBAAAyF,UAAAnxJ,MAAA2hJ,YAAA,aAEAx5I,KAAA+3I,QAAAiR,cAEA,QAAAzP,YACAv5I,KAAA+3I,QAAAkQ,eAIA/E,iBAAA,SAAApU,QAAAj3I,MAAAmb,QAAA2iI,eACA,IAAA,GAAAt5I,GAAA,EAAAgwC,IAAAr5B,QAAAhc,OAAAq1C,IAAAhwC,EAAAA,IAAA,CACA,GAAA2a,OAAAhE,QAAA3W,GACA4sJ,aAAAtT,cAAAt5I,GACA2yC,OAAAqtG,eAAArlI,MAAA44B,UAAAk/F,QAAAj3I,MAAAmI,KAAAipJ,cAAAjyI,MAEA,IAAAg4B,QAAAolG,uBAAAp9H,MAAAiyI,aAAAj6G,QAIA,MAHAhvC,MAAAsS,OAAA0E,MACAhX,KAAA0yF,QAAAu2D,aAEAj6G,SAKA+0G,YAAA,SAAAmF,WAAAzkI,QACA,GAEAnS,QACAm8H,KACApyI,EAJA8yG,KAAAnvG,KAAAsS,OAAAxD,QAAA9O,KAAA40I,SAAA/nI,MAAAsiG,KACAypC;A3GnuFA,A2G0uFA,GAFAn0H,OAAAA,QAAAzkB,KAAAu4I,WAEA9zH,OAAA2iI,YACA3Y,MAAA7qI,EAAA6gB,OAAA7gB,EAAAC,EAAA4gB,OAAA5gB,OAEA,CACA,GAAAuwH,QAAAge,YAAApyI,KAAAsS,OAAAtS,KAAA0yF,QAEA+7C,MAAA12I,UAAAmxJ,YAEAza,KAAA7qI,GAAAwwH,OAAAxwH,EACA6qI,KAAA5qI,GAAAuwH,OAAAvwH,EAGA4gB,OAAA+zH,MAAA/J,KAAA7qI,EACA6gB,OAAAg0H,MAAAhK,KAAA5qI,EAEA4qI,KAAA7qI,EAAA6qI,KAAA7qI,EAAA5D,KAAA41I,cAAAU,SACA7H,KAAA5qI,EAAA4qI,KAAA5qI,EAAA7D,KAAA41I,cAAAW,QAIA,KAAA,GAFAlqG,KAAA8iE,KAAAypC,QAAAzpC,KAAAypC,QAAA5hJ,OAAA,EAEAmyJ,SAAA,EAAAA,SAAAnpJ,KAAAk4I,YAAAlhJ,OAAAmyJ,WAAA,CACA,GAAA7xI,WACA1T,EAAA6qI,KAAA7qI,EAAA5D,KAAAk4I,YAAAiR,UAAAvlJ,EACAC,EAAA4qI,KAAA5qI,EAAA7D,KAAAk4I,YAAAiR,UAAAtlJ,EAGA,KAAAxH,EAAA,EAAAgwC,IAAAhwC,EAAAA,IAEAiW,OADAhc,WAAA64G,KAAAypC,QAAAv8I,IACA8yG,KAAAypC,QAAAv8I,GAAAib,SAAA1T,EAAA0T,SAAAzT,EAAA7D,MAGAmvG,KAAAypC,QAAAv8I,GAGAiW,QAEAsmI,QAAA/4I,MACA+D,EAAA60B,SAAAnmB,OAAA1O,GAAA0O,OAAA1O,EAAA5D,KAAAk4I,YAAAiR,UAAAvlJ,EAAA0T,SAAA1T;A3G9wFA,A2G+wFAC,EAAA40B,SAAAnmB,OAAAzO,GAAAyO,OAAAzO,EAAA7D,KAAAk4I,YAAAiR,UAAAtlJ,EAAAyT,SAAAzT,EAEAuyB,MAAAqC,SAAAnmB,OAAA8jB,OAAA9jB,OAAA8jB,MAAA+4E,KAAA/4E,QAKA,GAAA7a,UACAjJ,OAAA,KACA82I,SAAA,EACAh9C,SAAA,EACAh2E,MAAA,EACAw7G,GAAA,EACAC,GAAA,EAGA,KAAAx1I,EAAA,EAAAgwC,IAAAusG,QAAA5hJ,OAAAq1C,IAAAhwC,EAAAA,IAAA,CACAiW,OAAAsmI,QAAAv8I,EAEA,IAAA+5B,OAAA9jB,OAAA8jB,MACAw7G,GAAAt/H,OAAA1O,EAAA6qI,KAAA7qI,EACAiuI,GAAAv/H,OAAAzO,EAAA4qI,KAAA5qI,EACAuoG,SAAAgjC,MAAAwC,GAAAC,IACAuX,QAAAhzH,OAAAg2E,QAIAh2E,SAAAylC,EAAAA,GAAAtgD,QAAA6tI,SAAA7tI,QAAA6a,QAAAylC,EAAAA,IACAutF,SAAA,KAGA7tI,QAAAjJ,SAAA82I,QAEA7tI,QAAA6tI,SAAAhzH,QAAAylC,EAAAA,EAEAuwC,SAAAh2E,MAAA7a,QAAA6wF,SAAA7wF,QAAA6a,MAEAA,QAAAylC,EAAAA,GAAAtgD,QAAA6a,QAAAylC,EAAAA,GAEAuwC,SAAA7wF,QAAA6wF,UAEA7wF,QAAA6tI,SAAAh9C,SAAA7wF,QAAA6wF,aAEAh2E,QAAAylC,EAAAA,IACAutF,SAAA,GAGA7tI,QAAAjJ,OAAAA;A3G7zFA,A2G8zFAiJ,QAAA6wF,SAAAA,SACA7wF,QAAA6a,MAAAA,MACA7a,QAAA6tI,QAAAA,QACA7tI,QAAAq2H,GAAAA,GACAr2H,QAAAs2H,GAAAA,GAEAptH,OAAA2R,MAAAA,OAIA,GAAAizH,YAqBA,OAnBA9tI,SAAAjJ,QACA+2I,YAAA5kI,OAAAi0H,WAAAn9H,QAAAjJ,OAAA1O,GAAA6gB,OAAAk0H,WAAAp9H,QAAAjJ,OAAAzO,EAEA4gB,OAAAi0H,SAAAn9H,QAAAjJ,OAAA1O,EACA6gB,OAAAk0H,SAAAp9H,QAAAjJ,OAAAzO,IAGAwlJ,aAAA,EAEA5kI,OAAAi0H,SAAAp2E,IACA79C,OAAAk0H,SAAAr2E,KAGA79C,OAAAmtH,GAAAr2H,QAAAq2H,GACAntH,OAAAotH,GAAAt2H,QAAAs2H,GAEAptH,OAAAo0H,QAAAwQ,aAAA9tI,QAAA6tI,UAAA3kI,OAAAzb,OACAyb,OAAAzb,OAAAuS,QAAA6tI,QAEA3kI,QAGAu/H,eAAA,SAAAkF,WAAAzkI,QACA,GAGAgqH,MAHAn8H,OAAAtS,KAAAsS,OACA4hI,SAAA5hI,QAAAA,OAAAxD,QAAA9O,KAAA40I,SAAA/nI,MAAAqnI,SACAoV,YAAApV,UAAAA,SAAAoV;A3Gl2FA,A2Gq2FA,IAAAA,YACA,MAAA7kI,OAGAA,QAAAA,QAAAzkB,KAAA84I,eAEArK,KACAA,KADAhqH,OAAA2iI,aACAxjJ,EAAA6gB,OAAA7gB,EAAAC,EAAA4gB,OAAA5gB,GACA9L,UAAAmxJ,YAEAzkI,OAAA0qF,MAAA1qF,OAAA0qF,KAAAnmG,SACAylI,KAAA7qI,GAAA6gB,OAAA0qF,KAAAyiC,IAAA,EACAnD,KAAA5qI,GAAA4gB,OAAA0qF,KAAA0iC,IAAA,GAGApD,KAAA7qI,GAAA5D,KAAA41I,cAAAU,SACA7H,KAAA5qI,GAAA7D,KAAA41I,cAAAW,SAEA9xH,OAAAmtH,GAAA,EACAntH,OAAAotH,GAAA,EACAptH,OAAAw0H,YAAA,CAEA,IAAA6C,MAAA/C,YAAAC,WAEA,OAAApgH,UAAA0wH,eAEAA,YADA,WAAAA,YACAhX,cAAAtyI,KAAA0yF,SAEA,SAAA42D,YACAh3I,OAAAigI,QAAAvyI,KAAA0yF,SAGAn3E,QAAAvb,KAAA0yF,QAAA42D,cAGAA,aAAA7kI,QAGAnuB,WAAAgzJ,eACAA,YAAAA,YAAA7a,KAAA7qI,EAAA6qI,KAAA5qI,EAAA7D,KAAA0yF,UAGAr6D,UAAAixH,eACAA,YAAA3Y,eAAA2Y;A3G/4FA,A2Gk5FAxN,KAAAwN,YAEAA,YAOA,KAAAA,cAAA,KAAAA,cACAvQ,YAAAx+I,KAAAC,IAAAD,KAAA+3B,IAAAwpH,KAAAl4I,EAAAk4I,KAAAtgJ,MAAAwE,KAAAi4I,eAAAzvG,MAAAimG,KAAA7qI,GAAAk4I,KAAAl4I,EAAA5D,KAAAi4I,eAAA/2H,MACA83H,YAAAz+I,KAAAC,IAAAD,KAAA+3B,IAAAwpH,KAAAj4I,EAAAi4I,KAAArgJ,OAAAuE,KAAAi4I,eAAAjnC,OAAAy9B,KAAA5qI,GAAAi4I,KAAAj4I,EAAA7D,KAAAi4I,eAAAlsI,OAGAgtI,YAAAx+I,KAAAC,IAAAD,KAAA+3B,IAAAwpH,KAAAtzG,MAAAxoC,KAAAi4I,eAAAzvG,MAAAimG,KAAA7qI,GAAAk4I,KAAA56H,KAAAlhB,KAAAi4I,eAAA/2H,MACA83H,YAAAz+I,KAAAC,IAAAD,KAAA+3B,IAAAwpH,KAAA9qC,OAAAhxG,KAAAi4I,eAAAjnC,OAAAy9B,KAAA5qI,GAAAi4I,KAAA/vI,IAAA/L,KAAAi4I,eAAAlsI,OAZAgtI,YAAAtK,KAAA7qI,EACAo1I,YAAAvK,KAAA5qI,GAcA4gB,OAAAmtH,GAAAmH,YAAAtK,KAAA7qI,EACA6gB,OAAAotH,GAAAmH,YAAAvK,KAAA5qI,EAEA4gB,OAAAo0H,QAAAp0H,OAAAs0H,cAAAA,aAAAt0H,OAAAu0H,cAAAA;A3Gt6FA,A2Gu6FAv0H,OAAAw0H,cAAAx0H,OAAAmtH,KAAAntH,OAAAotH,IAEAptH,OAAAs0H,YAAAA,YACAt0H,OAAAu0H,YAAAA,YAEAv0H,SAGAg6H,uBAAA,SAAA5mJ,MAAAw6I,aAAA3/C,SACA,GAAA2/C,aAAAA,cAAAryI,KAAAsS,OAAA,CAEA,GAAAxD,SAAAujI,aAAAvjI,QACA69B,QAAA79B,QAAA2D,cAEA,IAAA,SAAAk6B,SAAA+lD,UAAA,6BAAAh9F,KAAAmC,MAAAya,OAAAna,UAAA,CAIA,GAAA,cAAAzC,KAAAmC,MAAAa,OACA,SAAAsH,KAAA40I,SAAA/nI,MAAA,OAAAiC,QAAA8hG,KAAArC,KAEA,MAIA,IAAAz/F,QAAA9O,KAAA40I,SAAA/nI,OAAAiC,QAAA9O,KAAA40I,SAAA/nI,MAAAwyI,cACAr/I,KAAA8mG,cACA,MAIA,YADAjvG,OAAA4a,iBAIA,MAAA,WAAAk6B,YACA90C,OAAA4a,iBADA,SAMAy0I,YAAA,SAAAziI;A3G98FA,A2G+8FA,GAAAiiI,gBAAA1mJ,KAAAsS,OAAAxD,QAAA9O,KAAA40I,SAAA/nI,MAAA8sI,QACA4O,OAAA7B,eAAAjH,WACA8J,YAAAhvJ,KAAA0wC,IAAAy7G,eAAA/G,SAAAl7H,OAAAwiI,IAAAsB,MAEA9jI,QAAA+1H,GAAAx6I,KAAA63I,UAAAhkI,MACA4Q,OAAAg2H,GAAAz6I,KAAA63I,UAAA5jI,MACAwQ,OAAA0xH,GAAA1xH,OAAAsxH,WAAA1gI,UAAA,IACAoP,OAAAwxH,GAAAxxH,OAAAyxH,GAAA,EAEAzxH,OAAA4iI,WAAA5iI,OAAAkN,IAAAlN,OAAA2xH,IAAAmT,YAAAhB,OACA9jI,OAAA6iI,WAAA7iI,OAAA6M,IAAA7M,OAAAuiI,IAAAuC,YAAAhB,OACA9jI,OAAAqM,GAAAy4H,WAEA9kI,OAAA+xH,UAAA+R,OAAA9jI,OAAAwiI,GACAxiI,OAAAgyH,UAAA,EAAAiQ,eAAA/G,SAAAl7H,OAAAwiI,IAGA3I,eAAA,SAAAxP,SACA,GAAA9uI,KAAA8mG,eACAqtC,gBAAAn0I,KAAAsS,OAAAtS,KAAA40I,SAAA/nI,MADA,CAKA,GAAA7M,KAAA41I,cAAA57H,OAEA,YADAytH,WAAA7jI,EAAA6jI,WAAA5jI,EAAA;A1GtmGA,ADgIA,A2G0+FA,GAAAkI,KACAy8B,MACAwoE,OACA9vF,KACApS,QAAA9O,KAAAsS,OAAAxD,QAAA9O,KAAA40I,SAAA/nI,MAAA46H,WACAvwF,UAAApoC,QAAAooC,WAAAy2F,UAAA3tI,KAAA0yF,QAEA,IAAAlwF,SAAA00C,WACAh2B,KAAA4tH,QAAAh7H,QAAA2zH,WAAAjmH,OACAzV,IAAA+iI,QAAA56H,QAAAuzH,WAAAjmH,OACAgnB,MAAAsmG,QAAAh7H,QAAAojC,UAAA4zD,WAAA28B,WAAAjmH,OACAwvF,OAAA89B,QAAA56H,QAAAgjC,UAAA6zD,YAAA08B,WAAAjmH,WAEA,CACA,GAAAs6H,MAAAvL,qBAAAr5F,UAEAh2B,MAAA4tH,QAAAh7H,QAAAgoI,KAAA56H,KAAAumH,WAAAjmH,OACAzV,IAAA+iI,QAAA56H,QAAA4nI,KAAA/vI,IAAA07H,WAAAjmH,OACAgnB,MAAAsmG,QAAAh7H,QAAAgoI,KAAAtzG,MAAAi/F,WAAAjmH,OACAwvF,OAAA89B,QAAA56H,QAAA4nI,KAAA9qC,OAAAy2B,WAAAjmH,OAGAimH,WAAA7jI,EAAA4kC,MAAA,EAAAtnB,KAAA,GAAA,EACAumH,WAAA5jI,EAAAmtG,OAAA,EAAAjlG,IAAA,GAAA;A1GhoGA,A0GkoGA07H,WAAA0Y,cAEA1Y,WAAAjmH,OAAA1S,QAAA0S,OACAimH,WAAAhgH,MAAA3Y,QAAA2Y,MAEAggH,WAAAvnI,MAAAF,SAIAi6I,oBAAA,SAAA3nI,OAAAW,eACAjT,KAAA23I,aAAArlI,OACAtS,KAAA43I,gBAAA3kI,gBAwYAinI,cAAA/3I,WACAsQ,eAAAg7H,MACAl4H,yBAAA,WACAvV,KAAAiiJ,4BAAAjiJ,KAAA+oJ,oBAAA,GAEA31I,gBAAA,WACApT,KAAA+oJ,oBAAA,GAwKA,KAAA,GARApgH,cACA6gH,sBACA,YAAA,WAAA,cAAA,aAAA,eAAA,cACA,cAAA,aAAA,eAAA,eACA,cAAA,cAAA,YAAA,gBAAA,aACA,aAAA,gBAAA,gBAAA,kBAGAntJ,EAAA,EAAAgwC,IAAAm9G,qBAAAxyJ,OAAAq1C,IAAAhwC,EAAAA,IAAA;A1GlsHA,A0GmsHA,GAAAwQ,MAAA28I,qBAAAntJ,EAEAssC,WAAA97B,MAAAitI,iBAAAjtI,MAqDAiwI,cAAA2M,eAAA,SAAA/2D,QAAAhuF,SACAA,QAAAA,SAAA7I,QAEA,KAAA,GAAAQ,GAAA,EAAAA,EAAA2D,KAAAhJ,OAAAqF,IAAA,CACA,GAAAg2I,cAAAryI,KAAA3D,EAEA,IAAAg2I,aAAAntI,WAAAwtF,SACA2/C,aAAAkB,WAAA7uI,UACA2tI,aAAAntI,UAAAmtI,aAAA2K,WAAAtqD,QAEA,MAAAr2F,GAGA,MAAA,IAGAygJ,cAAAv3I,IAAA,SAAAmtF,QAAA5jF,SACA,MAAA9O,MAAAA,KAAAypJ,eAAA/2D,QAAA5jF,SAAAA,QAAApK,WAGAo4I,cAAAmG,gBAAA,SAAAplH,UACA,IAAA,GAAAxhC,GAAA,EAAAA,EAAA2D,KAAAhJ,OAAAqF,IAAA,CACA,GAAAg2I,cAAAryI,KAAA3D,EAEA,IAAAg2I,aAAAntI,SAAA,CAIA,GAAA+vC,KAAApX,SAAAw0G,aAAAA,aAAAntI,SAAAmtI,aAAAkB,SAAAl3I,EAAA2D;A1GrxHA,A0GuxHA,GAAA+pB,SAAAkrB,IACA,MAAAA,QAyFA8nG,aAAA56I,WACAunJ,YAAA,SAAA16G,OAAA26G,QAkBA,MAjBA,SAAA36G,QACA14C,WAAAqzJ,OAAAC,UAAA5pJ,KAAA4pJ,OAAAD,OAAAC,QACAtzJ,WAAAqzJ,OAAAE,kBAAA7pJ,KAAA6pJ,eAAAF,OAAAE,gBACAvzJ,WAAAqzJ,OAAAG,oBAAA9pJ,KAAA8pJ,iBAAAH,OAAAG,kBACAxzJ,WAAAqzJ,OAAAI,eAAA/pJ,KAAA+pJ,YAAAJ,OAAAI,aACAzzJ,WAAAqzJ,OAAAK,eAAAhqJ,KAAAgqJ,YAAAL,OAAAK,aACA1zJ,WAAAqzJ,OAAAM,cAAAjqJ,KAAAiqJ,WAAAN,OAAAM,cAGAj7G,OAAA,KAAAA,OAEA14C,WAAAqzJ,OAAAO,WAAAlqJ,KAAAgvC,OAAA,SAAA26G,OAAAO,SACA5zJ,WAAAqzJ,OAAAQ,UAAAnqJ,KAAAgvC,OAAA,QAAA26G,OAAAQ;A1G93HA,A0G+3HA7zJ,WAAAqzJ,OAAAS,SAAApqJ,KAAAgvC,OAAA,OAAA26G,OAAAS,OACA9zJ,WAAAqzJ,OAAAU,kBAAArqJ,KAAAgvC,OAAA,gBAAA26G,OAAAU,iBAGArqJ,MAkCAsxG,UAAA,SAAAxiG,SACA,MAAA4pB,UAAA5pB,UACA9O,KAAA8O,QAAA8hG,KAAA33F,QAAAnK,QAAAmK,WAAA,GAAA,GAAA,EACAjZ,KAAAsqJ,aAAA,OAAAx7I,SACA9O,KAAA0pJ,YAAA,OAAA56I,SAEA,eAAApZ,KAAAoZ,QAAAy/F,MACAvuG,KAAA8O,QAAA8hG,KAAArC,KAAAz/F,QAAAy/F,KAEA,OAAAz/F,QAAAy/F,YACAvuG,MAAA8O,QAAA8hG,KAAArC,KAGAvuG,MAGAguI,OAAAl/H,UACA9O,KAAA8O,QAAA8hG,KAAA33F,QAAAnK,QAEA9O,MAGAA,KAAA8O,QAAA8hG,MAGA05C,aAAA,SAAAt7G,OAAAlgC,SAEA,IAAA,GAAAJ,UAAAI,SAEAJ,SAAAogD,gBAAA9f,UAEAtW,SAAA5pB,QAAAJ,UAEA1O,KAAA8O,QAAAkgC,QAAAtgC,QAAA3W,OAAAiI,KAAA8O,QAAAkgC,QAAAtgC,YAAAI,QAAAJ;A1Gr8HA,A0Gu8HAgqB,SAAAo2B,eAAAywF,UAAA7wI,UAAA,WAAAogD,gBAAAywF,UAAA7wI,UACA1O,KAAA8O,QAAAkgC,QAAAtgC,QAAAuK,QAAAnK,QAAAJ,QAAAuK,WAAA,GAAA,GAAA,IAGA+0H,OAAAl/H,QAAAJ,UAAAgqB,SAAAo2B,eAAAywF,UAAA7wI,SACA1O,KAAA8O,QAAAkgC,QAAAtgC,QAAAuK,QAAAnK,QAAAJ,QAEAqb,SAAAjb,QAAAJ,UAEA1O,KAAA8O,QAAAkgC,QAAAtgC,QAAAI,QAAAJ,WAmCAqmI,SAAA,SAAAjmI,SACA,MAAA4pB,UAAA5pB,UACA9O,KAAA8O,QAAAuoB,KAAApe,QAAAnK,QAAAmK,WAAA,GAAA,GAAA,EACAjZ,KAAA0pJ,YAAA,OAAA56I,SAEA,qBAAApZ,KAAAoZ,QAAAssI,SACAp7I,KAAA8O,QAAAuoB,KAAA+jH,QAAAtsI,QAAAssI,QAEA3iH,SAAA3pB,QAAAssI,WACAp7I,KAAA8O,QAAAuoB,KAAA+jH,QAAA7gJ,KAAAC,IAAAD,KAAA+3B,IAAA,EAAAxjB,QAAAssI,SAAA;A1G3/HA,A0G6/HA,UAAAtsI,WACA9O,KAAA8O,QAAAuoB,KAAAwuB,OAAA/2C,QAAA+2C,QAEA,WAAA/2C,WACA9O,KAAA8O,QAAAuoB,KAAAkzH,QAAAz7I,QAAAy7I,SAGAvqJ,MAGAguI,OAAAl/H,UACA9O,KAAA8O,QAAAuoB,KAAApe,QAAAnK,QAEA9O,MAGAA,KAAA8O,QAAAuoB,MAGA0wH,UAAA,SAAAjD,UAAAjtJ,MAAAy5G,UAAA8zC,iBAAA7P,YAAAuG,MACA,GAAAjrC,UAAA,CAIA,MAAAirC,KAAAA,MAAA97I,KAAAuyI,QAAAgD,cACA,MAAAv1I,MAAA8O,QAAAuoB,KAAAkzH,QACAvqJ,KAAA8O,QAAAuoB,KAAAkzH,QAAAzF,UAAAjtJ,MAAAg5G,QAAA7wG,KAAAu1I,YAAAjkC,UAAA8zC,mBACA,CAGA,IAAAoF,aAAAxqJ,KAAA8O,QAAAuoB,KAAA+jH,OAEA,IAAA,YAAAoP,YAAA,CACA,GAEAC,YACAC,SAHAjc,KAAAO,UAAA8V,WACA1wB,OAAAge,YAAA9gC,UAAA8zC,iBAIA3W,MAAA7qI,GAAAwwH,OAAAxwH,EACA6qI,KAAA5qI,GAAAuwH,OAAAvwH;A1GniIA,A0GqiIA4mJ,WAAAhc,KAAA7qI,EAAAk4I,KAAA56H,MAAAutH,KAAA7qI,EAAAk4I,KAAAtzG,MACAkiH,SAAAjc,KAAA5qI,EAAAi4I,KAAA/vI,KAAA0iI,KAAA5qI,EAAAi4I,KAAA9qC,OAEAH,QAAA45C,YAAAC,SAGA,GAAAC,UAAAr5C,UAAAihC,QAAA6S,iBAEA,IAAA,WAAAoF,YAAA,CACA,GAAArnI,IAAAwnI,SAAAzpI,KAAAypI,SAAAnvJ,MAAA,EACAY,GAAAuuJ,SAAA5+I,IAAA4+I,SAAAlvJ,OAAA,CAEAo1G,SAAA1tF,IAAA24H,KAAA56H,MAAAiC,IAAA24H,KAAAtzG,OAAApsC,IAAA0/I,KAAA/vI,KAAA3P,IAAA0/I,KAAA9qC,OAGA,GAAAv4E,SAAA+xH,aAAA,CACA,GAAAI,aAAArwJ,KAAAC,IAAA,EAAAD,KAAA+3B,IAAAwpH,KAAAtzG,MAAAmiH,SAAAniH,OAAAjuC,KAAAC,IAAAshJ,KAAA56H,KAAAypI,SAAAzpI,OACA3mB,KAAAC,IAAA,EAAAD,KAAA+3B,IAAAwpH,KAAA9qC,OAAA25C,SAAA35C,QAAAz2G,KAAAC,IAAAshJ,KAAA/vI,IAAA4+I,SAAA5+I,MACA8+I,aAAAD,aAAAD,SAAAnvJ,MAAAmvJ,SAAAlvJ,OAEAo1G,SAAAg6C,cAAAL,YAOA,MAJAxqJ,MAAA8O,QAAAuoB,KAAAkzH,UACA15C,QAAA7wG,KAAA8O,QAAAuoB,KAAAkzH,QAAAzF,UAAAjtJ,MAAAg5G,QAAA7wG,KAAAu1I,YAAAjkC,UAAA8zC;A1G5jIA,A0G+jIAv0C,SAsCAuuC,YAAA,SAAAmL,SACA,MAAAj0J,YAAAi0J,UACAvqJ,KAAA8O,QAAAuoB,KAAAkzH,QAAAA,QAEAvqJ,MAEA,OAAAuqJ,eACAvqJ,MAAA8O,QAAAyjI,QAEAvyI,MAGAA,KAAA8O,QAAAuoB,KAAAkzH,SAoBA1kG,OAAA,SAAAilG,UACA,MAAAzyH,WAAAyyH,WACA9qJ,KAAA8O,QAAAuoB,KAAAwuB,OAAAilG,SAEA9qJ,MAIAiuI,YAAA6c,WACA9qJ,KAAA8O,QAAAuoB,KAAAwuB,OAAAilG,SAEA9qJ,MAGA,OAAA8qJ,gBACA9qJ,MAAA8O,QAAAuoB,KAAAwuB,OAEA7lD,MAGAA,KAAA8O,QAAAuoB,KAAAwuB,QA+CAiwD,UAAA,SAAAhnG,SACA,MAAA4pB,UAAA5pB,UACA9O,KAAA8O,QAAAinG,OAAA98F,QAAAnK,QAAAmK,WAAA,GAAA,GAAA,EACAjZ,KAAAsqJ,aAAA,SAAAx7I,SACA9O,KAAA0pJ,YAAA,SAAA56I,SAEA,eAAApZ,KAAAoZ,QAAAy/F,MACAvuG,KAAA8O,QAAAinG,OAAAxH,KAAAz/F,QAAAy/F,KAEA,OAAAz/F,QAAAy/F,OACAvuG,KAAA8O,QAAAinG,OAAAxH,KAAAz/C,eAAAinD,OAAAxH;A1GjtIA,A0GotIAy/B,OAAAl/H,QAAAwwI,qBACAt/I,KAAA8O,QAAAinG,OAAAupC,oBAAAxwI,QAAAwwI,oBAEAtR,OAAAl/H,QAAA+rI,UACA76I,KAAA8O,QAAAinG,OAAA8kC,OAAA/rI,QAAA+rI,QAGA76I,MAEAguI,OAAAl/H,UACA9O,KAAA8O,QAAAinG,OAAA98F,QAAAnK,QAEA9O,MAEAA,KAAA8O,QAAAinG,QAkBAg1C,aAAA,SAAAD,UACA,MAAA9c,QAAA8c,WACA9qJ,KAAA8O,QAAAinG,OAAA8kC,OAAAiQ,SAEA9qJ,MAGA,OAAA8qJ,gBACA9qJ,MAAA8O,QAAAinG,OAAA8kC,OAEA76I,MAGAA,KAAA8O,QAAAinG,OAAA8kC,QA0BAmQ,WAAA,SAAAl8I,SACA,MAAA4pB,UAAA5pB,UACA9O,KAAA8O,QAAAqpI,QAAAl/H,QAAAnK,QAAAmK,WAAA,GAAA,GAAA,EACAjZ,KAAAsqJ,aAAA,UAAAx7I,SACA9O,KAAA0pJ,YAAA,UAAA56I,SAEA9O,MAGAguI,OAAAl/H,UACA9O,KAAA8O,QAAAqpI,QAAAl/H,QAAAnK;A1GpyIA,A0GsyIA9O,MAGAA,KAAA8O,QAAAqpI,SAuBA1Q,WAAA,SAAA34H,SAQA,MAPA4pB,UAAA5pB,SACAA,QAAA/W,QAAAkzJ,SAAA,OAAA,WAAAn8I,SAEAk/H,OAAAl/H,WACAA,SAAAm8I,SAAA,OAAA,UAAAhyI,QAAAnK,UAGA9O,KAAAu/F,WAAA,aAAAzwF,UA8DAqgG,KAAA,SAAArgG,SACA,GAAAmmC,KAAAj1C,KAAAu/F,WAAA,OAAAzwF,QAEA,OAAAmmC,OAAAj1C,KAAAA,KAEAi1C,IAAA27D,MAGArR,WAAA,SAAA7wF,OAAAI,SACA,GAIAzS,GAJA4uJ,QAAAn8I,SAAA5S,QAAA4S,QAAAm8I,SACAn8I,QAAAm8I,SACA,OAIA,IAAAvyH,SAAA5pB,UAAAk/H,OAAAl/H,SAAA,CACA,IAAAzS,EAAA,EAAAA,EAAA4uJ,QAAAj0J,OAAAqF,IAAA,CACA,GAAA2yC,QAAA,SAAAt5C,KAAAu1J,QAAA5uJ,IAAA,SAAA4uJ,QAAA5uJ,EAEA,IAAAq8B,SAAA14B,KAAA8O,QAAAkgC,SAAA,CAEA,GAAAk8G,YAAAlrJ,KAAA8O,QAAAkgC,QAAAtgC,OAEAgqB,UAAA5pB,UACA/W,OAAAmzJ,WAAAp8I;A1G75IA,A0G85IAo8I,WAAAjyI,QAAAnK,QAAAmK,WAAA,GAAA,GAAA,EAEA,SAAAvK,SACA,SAAAw8I,WAAAz4B,KACAy4B,WAAAtS,SACAiE,SAAAsO,eAAApzJ,QACA+wB,OAAAoiI,WAAAE,aAAAxnJ,EAAA,EAAAC,EAAA,IACAqnJ,WAAAv8C,YAGA,WAAAu8C,WAAAz4B,KACAy4B,WAAAtS,QAAAsS,WAAAppC,QAEA,SAAAopC,WAAAz4B,OACAy4B,WAAAtS,QAAAsS,WAAAG,OAGA,iBAAAv8I,WACAo8I,WAAA5Q,gBAAAxrI,QAAAw8I,kBAIAtd,OAAAl/H,WACAo8I,WAAAjyI,QAAAnK,UAIA,MAAA9O,MAGA,GAAAi1C,QACAs2G,YAAA,OAAA,SAAA,UAEA,KAAAlvJ,EAAA,EAAAA,EAAAkvJ,WAAAv0J,OAAAqF,IACAqS,SAAAogD,gBAAAy8F,WAAAlvJ,MACA44C,IAAAs2G,WAAAlvJ,IAAA2D,KAAA8O,QAAAy8I,WAAAlvJ,IAAAqS,QAIA,OAAAumC,MAqDA0kG,QAAA,SAAA7qI;A1Gz/IA,A0G0/IA,GAAAmmC,KAAAj1C,KAAAu/F,WAAA,UAAAzwF,QAEA,OAAAmmC,OAAAj1C,KAAAA,KAEAi1C,IAAA27D,MAGAhhE,UAAA,SAAAk/F,QAAAj3I,MAAA2jG,YAAA9I,SACA,GAAA1jD,QAAAhvC,KAAA+7I,qBAAAjN,QAAAtzC,YAAA9I,QAEA,OAAA1yF,MAAA8O,QAAAowI,cACAl/I,KAAA8O,QAAAowI,cAAApQ,QAAAj3I,MAAAm3C,OAAAhvC,KAAA0yF,QAAA8I,aAGAxsD,QAGA+sG,qBAAAA,qBA8BAmD,cAAA,SAAAqL,SACA,MAAAj0J,YAAAi0J,UACAvqJ,KAAA8O,QAAAowI,cAAAqL,QAEAvqJ,MAGA,OAAAuqJ,eACAvqJ,MAAA8O,QAAAowI,cAEAl/I,MAGAA,KAAA8O,QAAAowI,eAqBA3M,QAAA,SAAA7/C,SAOA,MANAA,SAAAA,SAAA1yF,KAAAg9I,SAEAh9I,KAAAkF,WAAAmzB,UAAAq6D,WACAA,QAAA1yF,KAAAuzI,SAAArF,cAAAluI,KAAAkF;A1G9kJA,A0GilJAyrI,eAAAj+C,UAaA84D,YAAA,SAAAjB,SACA,MAAAj0J,YAAAi0J,UACAvqJ,KAAAuyI,QAAAgY,QAEAvqJ,MAGA,OAAAuqJ,eACAvqJ,MAAA8O,QAAAyjI,QAEAvyI,MAGAA,KAAAuyI,SAcA4M,YAAA,SAAA2L,UACA,MAAA9c,QAAA8c,WACA9qJ,KAAA8O,QAAAqwI,YAAA2L,SAEA9qJ,MAGA,OAAA8qJ,gBACA9qJ,MAAA8O,QAAAqwI,YAEAn/I,MAGAA,KAAA8O,QAAAqwI,aAgBA1sI,eAAA,SAAAq4I,UACA,MAAA,wBAAAp1J,KAAAo1J,WACA9qJ,KAAA8O,QAAA2D,eAAAq4I,SACA9qJ,MAGAguI,OAAA8c,WACA9qJ,KAAA8O,QAAA2D,eAAAq4I,SAAA,SAAA,QACA9qJ,MAGAA,KAAA8O,QAAA2D,gBAgBA2hH,OAAA,SAAA02B,UACA,MAAA7c,aAAA6c,WACA9qJ,KAAA8O,QAAAslH,OAAA02B,SACA9qJ,MAEA04B,SAAAoyH,WACA9qJ,KAAA8O,QAAAslH,OAAA02B;A1GtrJA,A0GurJA9qJ,MAGAA,KAAA8O,QAAAslH,QAaAqd,YAAA,SAAAqZ,UACA,MAAA,SAAAA,UAAA,WAAAA,UACA9qJ,KAAA8O,QAAA2iI,YAAAqZ,SAEA9qJ,MAGAA,KAAA8O,QAAA2iI,aAwCAyC,SAAA,SAAAplI,SACA,IAAA4pB,SAAA5pB,SACA,MAAA9O,MAAAu/F,WAAA,WAAAzwF,QAMA,KAAA,GAFAmmC,KADAg2G,SAAA,OAAA,SAAA,WAGA5uJ,EAAA,EAAAA,EAAA4uJ,QAAAj0J,OAAAqF,IAAA,CACA,GAAA2yC,QAAAi8G,QAAA5uJ,EAEA,IAAA2yC,SAAAlgC,SAAA,CACA,GAAAywI,WAAAxnJ,QACAkzJ,SAAAj8G,QACAs6G,YAAAx6I,QAAAkgC,SACAlgC,QAEAmmC,KAAAj1C,KAAAu/F,WAAA,WAAAggD,YAIA,MAAAtqG,MAYAvwC,QAAA,WACA,MAAA1E,MAAAuzI,UAGAA,SAAA13I,SAiBA63I,WAAA,SAAAoX,UACA,MAAA7c,aAAA6c,WACA9qJ,KAAA8O,QAAA4kI,WAAAoX,SACA9qJ,MAGAq4B,UAAAyyH,WACA9qJ,KAAA8O,QAAA4kI,WAAAoX;A1GlzJA,A0GmzJA9qJ,MAGAA,KAAA8O,QAAA4kI,YAkBAG,UAAA,SAAAiX,UACA,MAAA7c,aAAA6c,WACA9qJ,KAAA8O,QAAA+kI,UAAAiX,SACA9qJ,MAGAq4B,UAAAyyH,WACA9qJ,KAAA8O,QAAA+kI,UAAAiX,SACA9qJ,MAGAA,KAAA8O,QAAA+kI,WAYAnhD,QAAA,WACA,MAAA1yF,MAAAg9I,UAaA17I,KAAA,SAAAmqJ,QACA,IAAAA,SAAAA,OAAA/yJ,OAAAoB,SAAAunJ,WAAAoK,OAAA/yJ,MACA,MAAAsH,KAGA,IAAA2oC,WACAtsC,EACAgwC,IACAq/G,QAAA,KAAAD,OAAA/yJ,KACAizJ,SAAA,EAGA,IAAAF,OAAA/yJ,OAAAsH,MAAAi9I,SAGA,IAFAt0G,UAAA3oC,KAAAi9I,SAAAwO,OAAA/yJ,MAEA2D,EAAA,EAAAgwC,IAAA1D,UAAA3xC,OAAAq1C,IAAAhwC,IAAAovJ,OAAAxJ,4BAAA5lJ,IACAsvJ,SAAAhjH,UAAAtsC,GAAAwQ,KACA87B,UAAAtsC,GAAAovJ,OAWA,IANAn1J,WAAA0J,KAAA0rJ,YACAC,SAAA3rJ,KAAA0rJ,SAAA7+I,KACA7M,KAAA0rJ,SAAAD;A1Gp4JA,A0Gw4JAA,OAAA/yJ,OAAA4oJ,gBAAA34G,UAAA24G,aAAAmK,OAAA/yJ,OAEA,IAAA2D,EAAA,EAAAgwC,IAAA1D,UAAA3xC,OAAAq1C,IAAAhwC,IAAAovJ,OAAAxJ,4BAAA5lJ,IACAsvJ,SAAAhjH,UAAAtsC,GAAAwQ,KACA87B,UAAAtsC,GAAAovJ,OAIA,OAAAzrJ,OAcA8V,GAAA,SAAAyjI,UAAAlwG,SAAAmzG,YACA,GAAAngJ,EAMA,IAJAu8B,SAAA2gH,YAAA,KAAAA,UAAAn9B,OAAA,OACAm9B,UAAAA,UAAA/gJ,OAAA1D,MAAA,OAGAoH,QAAAq9I,WAAA,CACA,IAAAl9I,EAAA,EAAAA,EAAAk9I,UAAAviJ,OAAAqF,IACA2D,KAAA8V,GAAAyjI,UAAAl9I,GAAAgtC,SAAAmzG,WAGA,OAAAx8I,MAGA,GAAA04B,SAAA6gH,WAAA,CACA,IAAA,GAAAvrI,QAAAurI,WACAv5I,KAAA8V,GAAA9H,KAAAurI,UAAAvrI,MAAAq7B,SAGA,OAAArpC,MAUA,GAPA,UAAAu5I,YACAA,UAAA6H,YAIA5E,WAAAA,YAAA,GAAA,EAEA1iJ,SAAAunJ,WAAA9H,WAEAA,YAAAv5I,MAAAi9I,SAIAj9I,KAAAi9I,SAAA1D,WAAA15I,KAAAwpC,UAHArpC,KAAAi9I,SAAA1D,YAAAlwG,cAOA,IAAArpC,KAAAkF,SAAA;A1Gr8JA,A0Gs8JA,IAAAy3I,gBAAApD,WAQA,IAPAoD,gBAAApD,YACAnhI,aACAiyC,YACA1hB,cAIAtsC,EAAA,EAAAA,EAAAmhJ,UAAAxmJ,OAAAqF,IACA1E,OAAAG,IAAA0lJ,UAAAnhJ,GAAAk9I,UAAAgD,kBACA5kJ,OAAAG,IAAA0lJ,UAAAnhJ,GAAAk9I,UAAAqD,oBAAA,EAIA,IACA/lI,OADA6lI,UAAAC,gBAAApD,UAGA,KAAA1iI,MAAA6lI,UAAAtkI,UAAAphB,OAAA,EAAA6f,OAAA,IACA6lI,UAAAtkI,UAAAvB,SAAA7W,KAAAkF,UACAw3I,UAAAryF,SAAAxzC,SAAA7W,KAAAuzI,UAFA18H,SAOA,KAAAA,QACAA,MAAA6lI,UAAAtkI,UAAAphB,OAEA0lJ,UAAAtkI,UAAAvY,KAAAG,KAAAkF,UACAw3I,UAAAryF,SAAAxqD,KAAAG,KAAAuzI,UACAmJ,UAAA/zG,UAAA9oC,UAIA68I,UAAA/zG,UAAA9xB,OAAAhX,MAAAwpC,SAAAmzG,iBAGA7kJ,QAAAG,IAAAkI,KAAAg9I,SAAAzD,UAAAlwG,SAAAmzG;A1Gz+JA,A0G4+JA,MAAAx8I,OAcAuG,IAAA,SAAAgzI,UAAAlwG,SAAAmzG,YACA,GAAAngJ,EAMA,IAJAu8B,SAAA2gH,YAAA,KAAAA,UAAAn9B,OAAA,OACAm9B,UAAAA,UAAA/gJ,OAAA1D,MAAA,OAGAoH,QAAAq9I,WAAA,CACA,IAAAl9I,EAAA,EAAAA,EAAAk9I,UAAAviJ,OAAAqF,IACA2D,KAAAuG,IAAAgzI,UAAAl9I,GAAAgtC,SAAAmzG,WAGA,OAAAx8I,MAGA,GAAA04B,SAAA6gH,WAAA,CACA,IAAA,GAAAvrI,QAAAurI,WACAv5I,KAAAuG,IAAAyH,KAAAurI,UAAAvrI,MAAAq7B,SAGA,OAAArpC,MAGA,GAAA4rJ,WACA/0I,MAAA,EAUA,IAPA2lI,WAAAA,YAAA,GAAA,EAEA,UAAAjD,YACAA,UAAA6H,YAIAtnJ,SAAAunJ,WAAA9H,WACAqS,UAAA5rJ,KAAAi9I,SAAA1D,WAEAqS,WAAA,MAAA/0I,MAAA7T,QAAA4oJ,UAAAviH,YACArpC,KAAAi9I,SAAA1D,WAAA57I,OAAAkZ,MAAA,OAIA,IAAA7W,KAAAkF,SAAA,CACA,GAAAw3I,WAAAC,gBAAApD,WACAsS,YAAA;A1GriKA,A0GuiKA,IAAAnP,UAAA,MAAA18I,KAGA,KAAA6W,MAAA6lI,UAAAtkI,UAAAphB,OAAA,EAAA6f,OAAA,EAAAA,QAEA,GAAA6lI,UAAAtkI,UAAAvB,SAAA7W,KAAAkF,UACAw3I,UAAAryF,SAAAxzC,SAAA7W,KAAAuzI,SAAA,CAEA,GAAA5qG,WAAA+zG,UAAA/zG,UAAA9xB,MAGA,KAAAxa,EAAAssC,UAAA3xC,OAAA,EAAAqF,GAAA,EAAAA,IAAA,CACA,GAAAgH,IAAAslC,UAAAtsC,GAAA,GACAyvJ,OAAAnjH,UAAAtsC,GAAA,EAGA,IAAAgH,KAAAgmC,UAAAyiH,SAAAtP,WAAA,CAEA7zG,UAAAhrC,OAAAtB,EAAA,GAIAssC,UAAA3xC,SACA0lJ,UAAAtkI,UAAAza,OAAAkZ,MAAA,GACA6lI,UAAAryF,SAAA1sD,OAAAkZ,MAAA,GACA6lI,UAAA/zG,UAAAhrC,OAAAkZ,MAAA,GAGAlf,OAAA0D,OAAA2E,KAAAuzI,SAAAgG,UAAAgD,kBACA5kJ,OAAA0D,OAAA2E,KAAAuzI,SAAAgG,UAAAqD,oBAAA,GAGAF,UAAAtkI,UAAAphB,SACA2lJ,gBAAApD,WAAA,OAKAsS,YAAA;A1G5kKA,A0G6kKA,OAIA,GAAAA,WAAA,WAMAl0J,QAAA0D,OAAA2E,KAAAg9I,SAAAzD,UAAAlwG,SAAAmzG,WAGA,OAAAx8I,OAWAyO,IAAA,SAAAK,SACA4pB,SAAA5pB,WACAA,YAGA9O,KAAA8O,QAAA/W,UAAA+2D,eAAAjX,KAEA,IAAAx7C,GACA4uJ,SAAA,OAAA,OAAA,SAAA,WACA1zH,SAAA,YAAA,WAAA,YAAA,cACAw0H,WAAAh0J,OAAAA,UAAA+2D,eAAAywF,WAAAzwI,QAAAkgC,YAEA,KAAA3yC,EAAA,EAAAA,EAAA4uJ,QAAAj0J,OAAAqF,IAAA,CACA,GAAA2yC,QAAAi8G,QAAA5uJ,EAEA2D,MAAA8O,QAAAkgC,QAAAj3C,UAAA+2D,eAAA9f,SAEAhvC,KAAAsqJ,aAAAt7G,OAAA+8G,YAEA/rJ,KAAAu3B,QAAAl7B,IAAAyS,QAAAkgC,SAGA,GAAAs4E,WACA,SAAA,gBAAA,YAAA,cACA,cAAA,aAAA,SAAA,iBACA,cAAA;A1G7nKA,A0GgoKA,IAAAjrH,EAAA,EAAAgwC,IAAAi7E,SAAAtwH,OAAAq1C,IAAAhwC,EAAAA,IAAA,CACA,GAAA2vJ,SAAA1kC,SAAAjrH,EAEA2D,MAAA8O,QAAAk9I,SAAAl9F,eAAAjX,KAAAm0G,SAEAA,UAAAl9I,UACA9O,KAAAgsJ,SAAAl9I,QAAAk9I,UAIA,MAAAhsJ,OAYAs2F,MAAA,WAGA,GAFA3+F,OAAA0D,OAAA2E,KAAAg9I,SAAA,OAEApkH,SAAA54B,KAAAkF,UAQA,IAAA,GAAAxM,QAAAikJ,iBAGA,IAAA,GAFAD,WAAAC,gBAAAjkJ,MAEA2D,EAAA,EAAAA,EAAAqgJ,UAAAtkI,UAAAphB,OAAAqF,IAAA,CACAqgJ,UAAAtkI,UAAA/b,KAAA2D,KAAAkF,UACAw3I,UAAAryF,SAAAhuD,KAAA2D,KAAAuzI,WAEAmJ,UAAAtkI,UAAAza,OAAAtB,EAAA,GACAqgJ,UAAAryF,SAAA1sD,OAAAtB,EAAA,GACAqgJ,UAAA/zG,UAAAhrC,OAAAtB,EAAA,GAGAqgJ,UAAAtkI,UAAAphB,SACA2lJ,gBAAAjkJ,MAAA,OAIAf,OAAA0D,OAAA2E,KAAAuzI,SAAA76I,KAAA6jJ,kBACA5kJ,OAAA0D,OAAA2E,KAAAuzI,SAAA76I,KAAAkkJ,oBAAA;A1GlrKA,A0GorKA,UA3BAjlJ,QAAA0D,OAAA2E,KAAA,OACAA,KAAA8O,QAAAqwI,cACAn/I,KAAAg9I,SAAAhjJ,MAAAghE,OAAA,GAkCA,OAJAh7D,MAAA+0I,UAAA,GAEA+H,cAAAn/I,OAAAqF,QAAA85I,cAAA98I,MAAA,GAEA68I,WAiBAE,aAAA56I,UAAAgtG,KAAAuuC,SAAAX,aAAA56I,UAAAgtG,KACA,iHACA4tC,aAAA56I,UAAA+xI,SAAAwJ,SAAAX,aAAA56I,UAAA+xI,SACA,0HACA6I,aAAA56I,UAAAw3I,QAAA+D,SAAAX,aAAA56I,UAAAw3I,QACA;A1GltKA,A0GmtKAoD,aAAA56I,UAAAslI,WAAAiW,SAAAX,aAAA56I,UAAAslI,WACA,4HACAsV,aAAA56I,UAAA4oJ,aAAArN,SAAAX,aAAA56I,UAAA4oJ,aACA,yFAEAhO,aAAA56I,UAAA0jD,OAAA63F,SAAAX,aAAA56I,UAAA0jD,OACA,4FACAk3F,aAAA56I,UAAAi9I,YAAA1B,SAAAX,aAAA56I,UAAAi9I,YACA;A1G1tKA,A0G2tKArC,aAAA56I,UAAAuC,QAAAg5I,SAAAX,aAAA56I,UAAAuC,QACA,sFAUAm4I,SAAA8L,MAAA,SAAAj2D,QAAA5jF,SACA,MAAA,KAAAguI,cAAA2M,eAAA/2D,QAAA5jF,SAAAA,QAAApK,UAeAm4I,SAAA/mI,GAAA,SAAApd,KAAA2wC,SAAAmzG,YAKA,GAJA5jH,SAAAlgC,OAAA,KAAAA,KAAA0jH,OAAA,OACA1jH,KAAAA,KAAAF,OAAA1D,MAAA,OAGAoH,QAAAxD,MAAA,CACA,IAAA,GAAA2D,GAAA,EAAAA,EAAA3D,KAAA1B,OAAAqF,IACAwgJ,SAAA/mI,GAAApd,KAAA2D,GAAAgtC,SAAAmzG,WAGA,OAAAK,UAGA,GAAAnkH,SAAAhgC,MAAA,CACA,IAAA,GAAAsV,QAAAtV,MACAmkJ,SAAA/mI,GAAA9H,KAAAtV,KAAAsV,MAAAq7B,SAGA,OAAAwzG,UAkBA,MAdA/iJ,UAAAunJ,WAAA3oJ,MAEA4oJ,aAAA5oJ,MAIA4oJ,aAAA5oJ,MAAAmH,KAAAwpC,UAHAi4G,aAAA5oJ,OAAA2wC,UAQA1xC,OAAAG,IAAA+D,SAAAnD,KAAA2wC,SAAAmzG;A1GtxKA,A0GyxKAK,UAcAA,SAAAt2I,IAAA,SAAA7N,KAAA2wC,SAAAmzG,YAKA,GAJA5jH,SAAAlgC,OAAA,KAAAA,KAAA0jH,OAAA,OACA1jH,KAAAA,KAAAF,OAAA1D,MAAA,OAGAoH,QAAAxD,MAAA,CACA,IAAA,GAAA2D,GAAA,EAAAA,EAAA3D,KAAA1B,OAAAqF,IACAwgJ,SAAAt2I,IAAA7N,KAAA2D,GAAAgtC,SAAAmzG,WAGA,OAAAK,UAGA,GAAAnkH,SAAAhgC,MAAA,CACA,IAAA,GAAAsV,QAAAtV,MACAmkJ,SAAAt2I,IAAAyH,KAAAtV,KAAAsV,MAAAq7B,SAGA,OAAAwzG,UAGA,GAAA/iJ,SAAAunJ,WAAA3oJ,MAGA,CACA,GAAAme,MAEAne,QAAA4oJ,eACA,MAAAzqI,MAAA7T,QAAAs+I,aAAA5oJ,MAAA2wC,YACAi4G,aAAA5oJ,MAAAiF,OAAAkZ,MAAA,OAPAlf,QAAA0D,OAAAQ,SAAAnD,KAAA2wC,SAAAmzG,WAWA,OAAAK,WAcAA,SAAAoP,eAAAvO,SAAA,SAAAoN,UACA,MAAA,QAAAA,UAAA/gI,SAAA+gI,UACA5O,gBAAAtrC,KAAAk6C;A1Gv1KA,A0Gy1KAjO,UAEAX,gBAAAtrC,MACA,mEAaAisC,SAAAqP,eAAAxO,SAAA,SAAAoN,UACA,MAAA,QAAAA,UAAA/gI,SAAA+gI,UACA5O,gBAAAnmC,OAAA+0C,SAEAjO,UAEAX,gBAAAnmC,QACA,mEAaA8mC,SAAAsP,gBAAAzO,SAAA,SAAAoN,UACA,MAAA,QAAAA,UAAA/gI,SAAA+gI,UACA5O,gBAAA/D,QAAA2S,SAEAjO,UAEAX,gBAAA/D,SACA,oEAEA0E,SAAAwE,WAAAA,WASAxE,SAAAzuG,MAAA,WACA,GAAAotD,aAAAk5C,aAAA,IAAA,GAAAW,YAEA;A1Gj5KA,A0Gk5KAX,aAAAA,aACApiI,OAAAkpF,YAAAlpF,OACA0lG,SAAAxc,YAAAwc,SACAlD,SAAAtZ,YAAAsZ,SACAskC,UAAA59C,YAAA49C,UACAxE,SAAAp5C,YAAAo5C,SACA5hI,QAAAwoF,YAAAxoF,QACA2iI,cAAAn6C,YAAAm6C,cAEA0B,WAAA77C,YAAA67C,WACAE,YAAA/7C,YAAA+7C,YAEAN,WAAAz7C,YAAAy7C,WACApI,SAAArzC,YAAAqzC,SACAiU,WAAAn6G,UAAAm6G,WACAyD,cAAA59G,UAAA49G,cACAjC,cAAA37G,UAAA27G,cAEAn1C,KAAA3T,YAAA+8C,WACArE,SAAA14C,YAAAs9C,eACAa,QAAAn+C,YAAAo6C,cAEAwW,SAAA5wD,YAAA27C,UAAA,GACAM,UAAAj8C,YAAAi8C,UACAC,YAAAl8C,YAAAk8C;A1Gz6KA,A0G06KAG,UAAAr8C,YAAAq8C,UAEAkF,aAAAA,aACAD,cAAAA,cACA5D,cAAA19C,YAAA09C,cACApqF,eAAAA,eACAitF,qBAAAA,qBAEAL,cAAAA,cACAyJ,SAAAx8G,UAAAw8G,SACAc,WAAAt9G,UAAAs9G,WACAK,YAAA39G,UAAA29G,YACAlI,UAAAz1G,UAAAy1G,UACAf,YAAA10G,UAAA00G,YACAY,YAAAt1G,UAAAs1G,YACAX,aAAA30G,UAAA20G,aAEA+D,WAAAA,WAEA1pJ,OAAAA,OACA2pJ,aAAAA,aACA3E,gBAAAA,gBAEApO,gBAAAA,kBAKAsO,SAAAwP,kBAAAtd,eACA8N,SAAAyP,aAAAnb,UACA0L,SAAA0P,iBAAA/a;A1Gv8KA,A0Gw8KAqL,SAAA2P,cAAA1a,WAEA+K,SAAAlM,eAAAA,eACAkM,SAAAtM,qBAAAA,qBACAsM,SAAA/hI,gBAAAA,gBACA+hI,SAAAthI,QAAAA,QAcAshI,SAAAr7H,OAAAk8H,SAAA,SAAA+O,UACA,MAAAh0H,UAAAg0H,WACAjrI,OAAAirI,SAEA5P,UAEAr7H,QAEA,+FAQAq7H,SAAArN,cAAA,WACA,MAAAA,gBASAqN,SAAAhD,qBAAA,WACA,MAAAA,uBAYAgD,SAAA/8I,KAAA,SAAAjI,OACA,IAAA,GAAAwE,GAAAq4I,aAAA19I,OAAA,EAAAqF,GAAA,EAAAA,IACAq4I,aAAAr4I,GAAAyD,KAAAjI,MAGA,OAAAglJ,WAcAA,SAAAoC,YAAA,SAAA6L;A1GphLA,A0GqhLA,MAAA9c,QAAA8c,WAKA7L,YAAA6L,SAEAjO,UAEAoC,aAYApC,SAAA0D,qBAAA,SAAAuK,UACA,MAAAryH,UAAAqyH,WACAvK,qBAAAuK,SAEA9qJ,MAGAugJ,sBAeA1D,SAAAhI,gBAAA,SAAAiW,UACA,MAAAryH,UAAAqyH,WACAjW,gBAAAiW,SAEA9qJ,MAGA60I,iBAGAgI,SAAAsO,eAAA,SAAAx8C,MACA,MAAA,UAAA/qG,EAAAC,GACA,GAAA6oJ,SAAA,EACAC,QAAA,CAEAj0H,UAAAi2E,KAAA7lF,UACA4jI,QAAA/9C,KAAA7lF,OAAAllB,EACA+oJ,QAAAh+C,KAAA7lF,OAAAjlB,EAGA,IAAA+oJ,OAAAryJ,KAAA6vE,OAAAxmE,EAAA8oJ,SAAA/9C,KAAA/qG,GACAipJ,MAAAtyJ,KAAA6vE,OAAAvmE,EAAA8oJ,SAAAh+C,KAAA9qG,GAEAipJ,KAAAF,MAAAj+C,KAAA/qG,EAAA8oJ,QACAK,KAAAF,MAAAl+C,KAAA9qG,EAAA8oJ,OAEA,QACA/oJ,EAAAkpJ,KACAjpJ,EAAAkpJ,KACA32H,MAAAu4E,KAAAv4E,SAgHAqnH,iBAAA5hJ;A1G5sLA,A0G2vLAkjJ,0BAAA/qD,SAAA7xF,WAAA7L,WAAA09F,QAAA7xF,UAAA48I,4BACAD,mBAAA,SAAApsD,QAAAxtF,SAAA8nJ,OACAA,MAAAA,OAAAt6D,QAAAv8F,WAAAkD,iBAAA6L,SAEA,KAAA,GAAA7I,GAAA,EAAAgwC,IAAA2gH,MAAAh2J,OAAAq1C,IAAAhwC,EAAAA,IACA,GAAA2wJ,MAAA3wJ,KAAAq2F,QACA,OAAA,CAIA,QAAA,IAKA,WAIA,IAAA,GAHAu6D,UAAA,EACAC,SAAA,KAAA,MAAA,SAAA,KAEAtpJ,EAAA,EAAAA,EAAAspJ,QAAAl2J,SAAAw2I,WAAAtM,wBAAAt9H,EACAy8I,SAAA7S,WAAA0f,QAAAtpJ,GAAA,yBACAw8I,YAAA5S,WAAA0f,QAAAtpJ,GAAA,yBAAA4pI,WAAA0f,QAAAtpJ,GAAA,8BAGAy8I,YACAA,SAAA,SAAAxiH,UACA,GAAAsvH,WAAA,GAAAjlJ,OAAAC,UACAilJ,WAAA7yJ,KAAAC,IAAA,EAAA,IAAA2yJ,SAAAF,WACAjoJ,GAAA7G,WAAA;A1GtxLA,A0GsxLA0/B,SAAAsvH,SAAAC,aACAA,WAEA,OADAH,UAAAE,SAAAC,WACApoJ,KAIAo7I,cACAA,YAAA,SAAAp7I,IACAmI,aAAAnI,SAQA,mBAAA81B,UACA,mBAAAC,SAAAA,OAAAD,UACAA,QAAAC,OAAAD,QAAA+hH,UAEA/hH,QAAA+hH,SAAAA,UAGA,kBAAAjzH,SAAAA,OAAAC,IACAD,OAAA,YAAA,YAAA,WACA,MAAAizH,YAIArP,WAAAqP,SAAAA,WAGA,mBAAAr2I,QAAAujB,OAAAvjB,QCt1LAojB,OAAA,kCAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAGA,MAAA;A3GuBA,C2G9BAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAA6R,cAAA7Q,QAAA6Q,cAAA/iB,KAAAziC,IAkBA,OAVA4oD,SAAA,0GACAiC,OAAAlW,QAAA0pE,OAAAvwD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAwwD,MAAAvwD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,4BACAna,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB;A3GgBA,A2GhBAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,QAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,QAAA/+C,WACA,oGACAg/C,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAw/F,oBAAAj4G,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,2BCFAh/B,OAAA,uBACA,SACA,SACA,WACA,eACA,kCACA,SAAA9mB,EAAA+N,EAAAgsI,SAAA5X,UAAAp/B,WACA,YAEA,IAAAxlC,YACAg+C,MAAA,GACAvI,WAAA,EACAxE,WAAA,EACA91G,MAAA,IACAC,OAAA,IACAslB,SAAA;A5GAA,A4GCAC,SAAA,IACAssI,oBAAA,IACAC,oBAAA,IACAF,mBAAA,SACAthJ,IAAA,EACAmV,KAAA,GAOAssI,kBACA5zI,MAAA,WAIA,MAHA5Z,MAAAytJ,gBACAztJ,KAAA0tJ,YACA1tJ,KAAAsG,QAAA,SACAtG,MAEAytJ,cAAA,WAMA,MALAztJ,MAAAwlI,aAAA3rI,KACAkS,IAAA/L,KAAAg7B,OAAAjvB,IACAmV,KAAAlhB,KAAAg7B,OAAA9Z,KACAyV,UAAA,SAEA32B,MAEA0tJ,UAAA,WACA,GAAA77G,UAAA7xC,KAAAwlI,aACAmoB,SAAA97G,SAAA5sC,KAAA,6BASA,OARA4sC,UAAAh4C,KACA2B,MAAA,OACAC,OAAA,SAEAkyJ,SAAA9zJ,KACA2B,MAAAwE,KAAAg7B,OAAAx/B,MACAC,OAAAuE,KAAAg7B,OAAAv/B,SAEAuE,OAuBA4tJ,oBAAA,SAAA1oB,MAAAx0G,UAKA,MAHAA,UAAA7f,EAAA6f,SAAAA,aAAA2vC,WACA6kE,MAAAr0H,EAAA6f,SAAAw0G,UAAAsoB;A5GhEA,A4GkEAvoB,UAAAC,MAAAx0G,UACAg1G,YAAA7/B,WACA/vF,GAAA,SAAA,WAqFA,QAAA+3I,WAAAz4J,GAEA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,QACA1O,GAAAjJ,WAAAygI,QAAAv2H,KAAA,YAAA,GAAAzP,EAAAw8I,GACA/tI,GAAAlJ,WAAAygI,QAAAv2H,KAAA,YAAA,GAAAzP,EAAAy8I,GACAl7G,UAAA,aAAA/yB,EAAA,OAAAC,EAAA,mBAEAu3H,SAAAvhI,KACAi0J,gBAAAn3H,UACAA,UAAAA,YAGAykG,QAAAv2H,KAAA,SAAAjB,GACAw3H,QAAAv2H,KAAA,SAAAhB,GAOA,QAAAkqJ,aAAA34J,GAEA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,QACA07I,OAAA5yB,QAAAn2H,KAAA,gCACA0oJ,SAAAvyB,QAAAn2H,KAAA,8BACArB,GAAAjJ,WAAAygI,QAAAv2H,KAAA,YAAA,GAAAzP,EAAA4wJ,UAAA9kI,KACArd,GAAAlJ,WAAAygI,QAAAv2H,KAAA,YAAA,GAAAzP,EAAA4wJ,UAAAj6I,IACA4qB,UAAA,aAAA/yB,EAAA,OAAAC,EAAA;A5GnLA,A4GqLAzO,EAAA0mJ,KAAAtgJ,OAAAw/B,OAAAja,UAAA3rB,EAAA0mJ,KAAAtgJ,OAAAw/B,OAAAha,WAEA5rB,EAAA0mJ,KAAAtgJ,OAAAw/B,OAAAuyH,oBACAnyB,QAAAjtH,SAAA,SAAAC,YAAA,SACAhZ,EAAA0mJ,KAAAtgJ,OAAAw/B,OAAAsyH,oBACAlyB,QAAAjtH,SAAA,SAAAC,YAAA,SAEAgtH,QAAAhtH,YAAA,SAAAA,YAAA,SAGAgtH,QAAAvhI,KACA2B,MAAApG,EAAA0mJ,KAAAtgJ,MACAC,OAAArG,EAAA0mJ,KAAArgJ,OACAqyJ,gBAAAn3H,UACAA,UAAAA,YAGAg3H,SAAA9zJ,KACA2B,MAAAwyJ,OAAAxyJ,QACAC,OAAA2/H,QAAArwB,cAAAijD,OAAAvyJ,SAAAwU,SAAAmrH,QAAAvhI,IAAA,gBAAAoW,SAAAmrH,QAAAvhI,IAAA,qBAGAuhI,QAAAv2H,KAAA,SAAAjB,GACAw3H,QAAAv2H,KAAA,SAAAhB,IAvIA,GAGAoqJ,iBAEAZ,mBACAa,eANAzrH,KAAAziC,KACA6xC,SAAA7xC,KAAAwlI,aACAmoB,SAAA97G,SAAA5sC,KAAA,8BAEA+1B,OAAAh7B,KAAAg7B;A5GxEA,A4G6EAh7B,KAAAytJ,gBACAztJ,KAAA0tJ,YAGA7Q,SAAAhrG,SAAA5sC,KAAA,wCAAAC,UAAA4Q,GAAA,MAAA,WACA2sB,KAAA1gC,SAIA/B,KAAAsG,QAAA,gBAAAqnJ,UAGAM,gBAAApR,SAAAhrG,SAAA,IACA7W,OAAAs2E,YACA+7C,mBAAAryH,OAAAqyH,mBACAA,6BAAAvqJ,IAAAuqJ,mBAAAr2J,SACAq2J,mBAAAA,mBAAA,IAEAx8I,EAAAwnB,UAAAg1H,qBAAAx8I,EAAA+nB,SAAAy0H,qBAEAa,eAAAP,SAAA1oJ,KAAA,4BAEAgpJ,gBAAA38C,WACAqoC,SAAA,EACAlS,YAAA,EACA4X,aAAA,EACAnL,UACAoV,YAAA+D,mBACA7N,SAAA,EACAjF,aAAAxuI,IAAA,EAAAmV,KAAA,EAAA8vF,OAAA,EAAAxoE,MAAA;A5GzGA,G4G2GA2hH,OAAA0D,UACA3D,QAAA,WACAgE,eAAA//I,SAAA,oBAEAi8I,MAAA,WACA8D,eAAA9/I,YAAA,sBAKAyuI,SAAAhrG,SAAA5sC,KAAA,gCAAA,IAAA6Q,GAAA,OAAA,SAAAje,OAEA,GAAA2jG,aAAA3jG,MAAA2jG,YACA5jG,OAAAC,MAAAob,aAEAuoF,aAAAt7F,OACA2M,KAAA,OACA6oI,OACA3pI,IAAAnU,OAAAu2J,QAAApiJ,IACAmV,KAAAtpB,OAAAu2J,QAAAjtI,KACA8vF,OAAAp5G,OAAAu2J,QAAAn9C,OACAxoE,MAAA5wC,OAAAu2J,QAAA3lH,QAGAylH,gBACAp8G,SAAA,OAGApP,KAAAn8B,QAAA,QAAA,GAAAM,OAAA,qCAGAo0B,OAAA86E,WACAm4C,gBAAAn4C,WACAwpC,qBAAA,EACA5J,OAAAx0H,MAAA,EAAAsnB,OAAA,EAAAwoE,QAAA,EAAAjlG,KAAA,GACAo+I,OAAA4D;A5G7IA,K4G8MA,OAAAH,uBCrPAhkI,OAAA,+BAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAMA,MALAmK,MAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,SAIA;A7GiCA,K8G5BA+zB,OAAA,wBAAA,SAAA,8BAAA,QAAA,SAAA9mB,EAAAsrJ,YAAA1yH,IAEA,YAmBA,SAAA2yH,YAAAC,SAyBA,QAAAC,WAAAhgJ,KAIA,SAHAy8E,OAAAtkF,MAAAskF,UACAA,MAAA,GAEAlxB,WACA,IAAA,IACAkxB,OAAAz8E,GACA,MACA,KAAA,IACAy8E,OAAAz8E,GACA,MACA,KAAA,IACAy8E,OAAAz8E,GACA,MACA,KAAA,IACAy8E,OAAAz8E,GACA,MACA,KAAA,MACAy8E,MAAAzwF,KAAAipE,IAAAwnB,MAAAz8E,KAGAtU,QAAApB,MAAA21J,YAAAxjE,OAYA,QAAAyjE,aAAAr5J,GACAA,EAAAA,GAAAoR,OAAA3O,KAEA,IAAAwzC,KACAoG,KACAljC,IACA+D,OACAo8I,aAAA,CAGA,QAAAt5J,EAAAsD,MACA,IAAA,UAGA,OAFAi2J,YAAAl9G,KAAAr8C,EAAAse,QAEA+9B,MACA,IAAA,IAEApG,IAAA,GACA,MACA,KAAA,GAEAA,IAAA,KACA,MACA,KAAA,IAEAA,IAAA,IACA,MACA,SAEA,OAAA,EAEA,KACA,KAAA,WAYA,GATAoG,KAAAr8C,EAAAqe,UAAAre,EAAAse;A9GrFA,A8G8FA,KAAA+9B,MAAA,IAAAA,MAAA,KAAAk9G,aAAA,KAAAA,YACA,OAAA,CAIA,IAAA,KAAAl9G,MAAA,IAAAA,MAAA,KAAAk9G,YACA,OAAA,CAKAtjH,KADA,MAAAsjH,YACA,IAEAvrJ,OAAAynH,aAAAp5E,MAAAl8C,aAEA,MACA,KAAA,QAEA,GADA+c,OAAAld,EAAAkd,QAAAld,EAAAmf,WACA,UAAAjC,OAAA2+F,SAAA,WAAA3+F,OAAA2+F,SAAA,WAAA3+F,OAAA5Z,KAGA,OAAA,CAFA2yC,KAAA/4B,OAAAzZ,KAIA,MACA,KAAA,wBAEAwyC,IAAAj2C,EAAAw5J,OACA,MACA,SAGA,OAAA,EAKA,OAFArgJ,IAAA5T,WAAAV,QAAApB,OAEAwyC,KACA,IAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA,IAEAwjH,WACA50J,QAAApB,MAAAwyC,IACAwjH,WAAA,GACA,MAAAxjH,KAAAyjH,IAAAp5J,KAAAuE,QAAApB,SACAoB,QAAApB,OAAAwyC,IAEA,MACA,KAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA;A9GxJA,A8GyJA,IAAA,MAGA0jH,mBACA,IAAA/jE,OAAA,OAAAgkE,QACAhkE,MAAAz8E,IAEAggJ,UAAAhgJ,KAEAygJ,QAAA,KACAC,YAAA,EACAJ,WAAA,GAEA/0F,UAAAzuB,IACAqjH,aAAA,CACA,MACA,KAAA,IACAz0J,QAAA2a,OACAo2E,MAAA,EACAlxB,UAAA,GACA+0F,WAAA,EACAG,QAAA,KACAC,YAAA,EACAh1J,QAAApB,MAAA,GACA,MACA,KAAA,KACAoB,QAAApB,MAAA,IACAg2J,WAAA,CACA,MACA,KAAA,MACA50J,QAAApB,MAAAoB,QAAApB,MAAAa,MAAA,EAAAO,QAAApB,MAAA7B,OAAA,EACA,MACA,KAAA,MACAiD,QAAApB,MAAA,GAAA0V,GACA,MACA,KAAA,IACAA,MACAtU,QAAApB,MAAAmyF,MAAAz8E,IAAA,IAEA,MACA,KAAA,OACAA,KAAA,EACAtU,QAAApB,MAAA0B,KAAAw4H,KAAAxkH,KAEAtU,QAAApB,MAAA6iC,GAAA,6BAEA,MACA,KAAA,IACA,IAAA,IACA,IAAA,IACA,IAAA,IAEA,GAAAtmC,EAAAyhH,QACA,OAAA,CAEA,MACA,KAAA,MACA,IAAA,IACAtoG,IACAtU,QAAApB,MAAA,EAAA0V,IAEAtU,QAAApB,MAAA6iC,GAAA;A9GrNA,A8GuNA,KACA,KAAA,IACAhmB,KAAAw5I,WAMA,MAHAH,kBAAAL,YACAz0J,QAAA0a,QACAw6I,qBAAAz5I,KAAA21B,IAAAyuB,YACA,EAxOA,GACAs1F,OACA15I,KACAzb,QAEA6/D,UAKA60F,YAVAU,aAAAjB,cAIApjE,MAAA,EAEA6jE,WAAA,EACAC,IAAA,KACAE,QAAA,KACAC,YAAA,EAEAF,kBAAA,EACAO,WACAtqJ,GAAAuqJ,MA0UA,OA3GAA,SAAA,EAGAjB,QAAA/1J,WAAA82J,aAGAD,MAAAd,QAAAn3J,qBAAA,QACAue,KAAA05I,MAAAA,MAAAp4J,OAAA,GACAiD,QAAAyb,KAAAve,qBAAA,SAAA,GACA8C,QAAAwP,aAAA,eAAA,OACAxP,QAAApB,MAAA,IACAoB,QAAAu1J,UAAAv1J,QAAAw1J,WAAA/5I,KAAAg6I,QAAAjB,YAEAkB,kBAAAj6I,MASAA,KAAAw5I,SAAA,WASA,MARAD,cACAD,QAAAr0J,WAAAV,QAAApB,QAAA;A9G1PA,A8G2PAo2J,YAAA,GAEAV,UAAAS,SACAH,WAAA,EACA50J,QAAA0a,QACAw6I,qBAAAz5I,KAAA,MACA,GAUA45I,QAAA36I,MAAA,WACA1a,QAAA0a,SAeA26I,QAAAM,MAAA,SAAAv/I,QACA,GAAA0tG,SACA8xC,IACAxzJ,CAGA,IAAA,gBAAAgU,QACA0tG,QAAA1tG,OAAAnN,WAAApO,MAAA,QACA,CAAA,GAAA,gBAAAub,UAAAA,OAIA,MAAArQ,KAHA+9G,UAAA1tG,QAOA,IADAw/I,IAAA9xC,QAAA/mH,OACAqF,EAAA,EAAAwzJ,IAAAxzJ,EAAAA,GAAA,EACAoyJ,aACA/1J,KAAA,wBACAk2J,QAAA7wC,QAAA1hH,IAIA,OAAA2D,OAUAsvJ,QAAAj0J,OAAA,WACApB,QAAAu1J,UAAAv1J,QAAAw1J,WAAA/5I,KAAAg6I,QAAA,KACApB,QAAAtyJ,YAAA0Z,KAAAvf,kBACA25J,aAAA9qJ,IACAsqJ,QAAA,MASAA,QAAAp4G,UAAAo3G,QAEAwB,YAAA9qJ,IAAAsqJ,QAEAA,QAkJA,QAAAK,mBAAAj6I;A9G9dA,A8G+dA,GAAA03H,OAAAtqI,EAAA4S,MACAurH,SAAAmM,MAAAnoI,KAAA,eACAmoI,OAAAt3H,GAAA,QAAA,gBAAA,WACA,GAAAi6I,WAAA9uB,SAAA1yH,MAAAvX,OAAA,CACAiqI,UAAAtsH,QACAssH,SAAA,GAAA+uB,kBAAAD,UAAAA,aAUA,QAAAvB,aAAAqB,KACA,OAAA,EAAAA,IAAA7uC,QAAA,KAAA99G,WAUA,QAAAisJ,sBAAAz5I,KAAA21B,IAAA0jH,kBACA,GAAAr/F,MAAA5sD,EAAA4S,MAAAzQ,KAAA,cAAAomC,IAAA,KACAqkB,MAAAvhD,SAAA,aACAhQ,WAAA,WACAuxD,KAAAthD,YAAA,cACA,KAthBA,GAAA6hJ,WACAH,eACAP,OAAA,CAuhBA,OA3KAU,QAAA1qJ,IAAA,SAAA2xC,WAEA,IAAAA,WAAA,IAAAA,UAAA/hD,SACA,MAAA,KAGA,IAAA6P,IAEAkrJ,KADAC,MAAAL,WAGA,KAAA9qJ,KAAAmrJ,OACA,GAAAA,MAAAhtJ,eAAA6B,KACAkyC,YAAAi5G,MAAAnrJ,IAAAkyC,UAAA;A9GjWA,A8GkWAg5G,KAAAC,MAAAnrJ,GACA,OAKA,MAAAkrJ,OAAA,MAQAD,OAAAG,SAAA,WACA,GAAAprJ,IACAqrJ,aACAF,MAAAL,WAIA,KAAA9qJ,KAAAmrJ,OACAA,MAAAhtJ,eAAA6B,MACAqrJ,UAAAA,UAAAr5J,QAAAm5J,MAAAnrJ,IAIA,OAAAqrJ,YAaAJ,OAAA7tJ,KAAA,SAAAvD,MACA,GAEAyvJ,SACAjiH,IACAhwC,EAJAi0J,YACAjrH,MAAA,EAIAkrH,WAsCA,IAnCA,gBAAA1xJ,QACAA,KAAAhD,SAAAkJ,eAAAlG,OAIA,gBAAAA,OAAA,IAAAA,KAAA1J,UAEA0J,KAAAuL,UACA,KAAAvL,KAAAuL,UAAApH,QAAA,UACAnE,KAAAuL,WAAA,SAGAvL,KAAAuL,UAAA,OAIAkmJ,SAAA,GAAAzxJ,KACAwmC,MAAA,GACAxmC,eAAAiE,GACAjE,KAAAhK,KAAA,WACAy7J,SAAAzwJ,KAAAG,MACAqlC,MAAA,IAKAviC,EAAA,SAAAjO,KAAA,WACAy7J,SAAAzwJ,KAAAG,MACAqlC,MAAA,IAIAgH,IAAAikH,SAAAt5J,OAKA,IAAAqF,EAAA,EAAAgwC,IAAAhwC,EAAAA,GAAA,EACAiyJ,QAAAgC,SAAAj0J;A9GxbA,A8G4bA4zJ,OAAA1qJ,IAAA+oJ,WACAiC,SAAAA,SAAAv5J,QAAAq3J,WAAAC,SAQA,OAAAjpH,MAAAkrH,SAAA,IAAA,KAAAA,UAMAN,OAAAO,UAAA,WACA,GAAAxrJ,IACAmrJ,MAAAL,WAGA,KAAA9qJ,KAAAmrJ,OACAA,MAAAhtJ,eAAA6B,KACAmrJ,MAAAnrJ,IAAA3J,UA6CA40J,SC3hBArmI,OAAA,iBACA,SACA,OACA,sBACA,wBACA,SAAA/Y,EAAA6qB,GAAA8xH,iBAAAiD,iBACA,YAEA,IAAApwF,YACAg+C,MAAA3iF,GAAA,eAGAg1H,YACAd,MAAA,SAAAvkH,KAEA,MADArrC,MAAAkwJ,KAAAN,MAAAvkH,KACArrC,OAuBA2wJ,kBAAA,SAAA31H,QAIA,MAFAA,QAAAnqB,EAAA6f,SAAAsK,WAAAqlC,WAEAmtF,iBAAAkD,YACA56I,GAAA,gBAAA,SAAA63I,UAEA3tJ,KAAAkwJ,KAAAO,gBAAAruJ,KAAAurJ;A/GhBA,G+GkBApvI,MAAA,OAAA,WACA,GAAAkkB,MAAAziC,IACA6Q,GAAA8jB,MAAA,WAEA,GAAAssG,UAAAx+F,KAAA+iG,aAAAvgI,KAAA,gBACA8qJ,UAAA9uB,SAAA1yH,MAAAvX,OAAA,CACAiqI,UAAAtsH,QACAssH,SAAA,GAAA+uB,kBAAAD,UAAAA,eAGAj6I,GAAA,QAAA,WAEA9V,KAAAkwJ,KAAAN,MAAA,OAEA95I,GAAA,UAAA,WACA9V,KAAAkwJ,MACAlwJ,KAAAkwJ,KAAA70J,WAEA+G,KAAA44B,QAGA,OAAA21H,qBCjEA/mI,OAAA,8CACA,SACA,OACA,WACA,gBACA,yBACA,mDACA,SAAA9mB,EAAA44B,GAAA29F,MAAAs3B,kBAAAz+F,cAAAg5E,WACA,YAEA,IAAAv4H,WACAlX,OAAA,IACAD,MAAA,IAMA,OAAA02D,gBACArlD,KAAA;AAIAzK,AhHIA,KgHJA,WAQA,QAAA8qI,gBACA,GAAAxoI,SAAA80H,WAAA9lE,gBAEAhvD,SAAAoK,QAAA4hJ,WACAjuH,KAAA3gC,OAEA2gC,KAAA1gC,OAbA,GAAA0gC,MAAAziC,KACAw5H,WAAAx5H,KAAAy5H,gBACAhoE,WAAAzxD,KAAAmyD,eAgBAnyD,MAAAyrI,QAAA3oI,EAAAooI,WACA/kC,QAAA,aACAkY,MAAA3iF,GAAA,mBACAw+F,KAAA,QACAjhI,KAAAyiC,GAAA,iBAEA17B,KAAA4wJ,qBAAA9tJ,EAAA,mCAGA9C,KAAA0wJ,WAAA,KAGA1wJ,KAAAyrI,QAAA31H,GAAA,QAAA,SAAA1gB,GAGA,GAAA0zB,QAAAhmB,EAAA9C,MAAA8oB,QAGAhmB,GAAA1N,EAAAkd,QAAAiJ,QAAA,qBAAAvkB,SAIA5B,EAAAqd,iBAEAgwB,KAAA+L,SAAA,cAAA,IACA/L,KAAAiuH,WAEAjuH,KAAAiuH,WAAA39I,GAAA,UACA0vB,KAAAiuH,WAAA5uJ,OAEA2gC,KAAAiuH,WAAA3uJ,QAIA0gC,KAAAiuH,WAAAC;AACA5oD,AhHjDA,SgHiDAtlE,KAAAmuH,qBACAv7J,SAAA,EACAg4J,mBAAA57F,WAAA2N,eAAAn6D,KAAA,yBAAA,GACAzJ,MAAAmX,SAAAnX,MACAC,OAAAkX,SAAAlX,SACAqa,GAAA,OAAA,WACA2sB,KAAAn8B,QAAA,UACAwP,GAAA,OAAA,WACA2sB,KAAAn8B,QAAA,WAIAm8B,KAAAiuH,WAAA5uJ,OAAA0jI,aAAA3rI,KACAqnB,KAAA4H,OAAA5H,KACAnV,IAAA,OACAilG,OAAA,UAOAk8B,eACAltI,KAAA2I,UAGA6wH,WACA1jH,GAAA,WAAAo3H,cACAp3H,GAAA,aAAA,WACA2sB,KAAAm7D,WAEA9nF,GAAA,aAAA,WACA2sB,KAAA95B,UACA85B,KAAAiuH,aAEAjuH,KAAAiuH,WAAAhiH,UACAjM,KAAAiuH,WAAA,SAOA3+F,OAAA,WACA,GAAAN,YAAAzxD,KAAAmyD,eACAV,YAAA66E,iBAAA1uH,OAAA5d,KAAAyrI;AACAh6E,AhH9FA,WgH8FA2N,eAAAxhD,OAAA5d,KAAA4wJ,uBAKAliH,QAAA,WACA1uC,KAAAyrI,QAAApwI,SACA2E,KAAA4wJ,qBAAAv1J,SACA2E,KAAA0wJ,YACA1wJ,KAAA0wJ,WAAAhiH,WAMAkvD,OAAA,WACA59F,KAAAyrI,QAAAx9H,WAAA,YACAG,YAAA,aAKAzF,QAAA,WACA3I,KAAAyrI,QAAAz9H,KAAA,YAAA,GACAG,SAAA,YACAnO,KAAA0wJ,YACA1wJ,KAAA0wJ,WAAA3uJ,QAMAD,KAAA,WACAu3H,MAAAv3H,KAAA9B,KAAAyrI,UAKA1pI,KAAA,WACAs3H,MAAAt3H,KAAA/B,KAAAyrI,SACAzrI,KAAA0wJ,YACA1wJ,KAAA0wJ,WAAA3uJ,YC1KA6nB,OAAA,oCACA,oBACA,4DACA,oDACA,kDACA,wDACA,oDACA,sDACA,+DACA,yDACA,uDACA,iDACA,iDACA,6DACA,mDACA,4CACA,gDACA,mDACA,4CACA,kDACA,8CACA,SAAAinI,aACAjhE,YACAyvB,QACAd,OACAuyC,aACAv7B,QACAh9B,SACAw4D,aACAC,UACAjyJ,SACAs/G,MACAj+G,MACA2kI,YACAmH,OACA7wH,KACAs0C,SACAm9E,YACA94E,KACA7Y,QACAu1G;AACA,AjHLA,YiHUA,OAAAG,eACAnnI,SAAAkmE,YAAAyvB,QAAAd,OAAAhmB,SAAAu4D,aAAAv7B,SACAiS,UAAAnpB,MAAAj+G,MAAA2kI,YAAAhmI,SAAAgyJ,aAAAC,WACA9qD,YAAAgmC,OAAAv8E,SAAAt0C,KAAAyxH,YAAA94E,MACAi9F,OAAA91G,QAAAu1G,gBClCA9mI,OAAA,eAAA,WAYA,QAAAsnI,gBAAAnwF,IAAAowF,SAAAC,QACA,GAAArwF,IAAA/pD,MAAAq6I,cAAAtwF,IAAA/pD,MAAAs6I,eACA,MAAAvwF,IACAA,KAAAwwF,oBAAAxwF,IAGA,IAAAywF,gBAAAJ,OAAAp6I,MAAAs6I,eACAG,iBAAAN,SAAAn6I,MAAAs6I,cACA,QAAAG,kBAAAD,gBAAAA,eAAA,IAAAC,iBAAA,IAAAD,eAAA,IAAAC,iBAAA,GAIAC,YAAAC,YAAA5wF,IAAAowF,UAAAC,QAHAO,YAAA5wF,IAAAowF;AlHAA,CkHQA,QAAAQ,aAAA5wF,IAAAlpB,MAKA,GAJA,MAAAkpB,IAAAzkE,OAAA,EAAA,KACAykE,IAAAA,IAAAzkE,OAAA,IAGAykE,IAAA/pD,MAAAq6I,cAAAtwF,IAAA/pD,MAAAs6I,eACA,MAAAvwF,IAEA,IAAA6wF,WAAA/5G,KAAA/iD,MAAA,KACA+8J,SAAA9wF,IAAAjsE,MAAA,IAIA,KAFA88J,UAAA36J,MAEA66J,QAAAD,SAAAz0J,SACA,MAAA00J,QACAF,UAAA36J,MAEA26J,UAAA/xJ,KAAAiyJ,QAEA,OAAAF,WAAA7rJ,KAAA,KAKA,QAAA2rJ,aAAA3wF,IAAAlpB,MAGA,GAAA+5G,WAAA/5G,KAAA/iD,MAAA,IAIA,KAHA88J,UAAA36J,MACA4gD,KAAA+5G,UAAA7rJ,KAAA,KAAA,IACA1J,EAAA,EACAw7C,KAAAv7C,OAAAD,EAAA,IAAA0kE,IAAAzkE,OAAAD,EAAA,IACAA,GACA,MAAA,KAAAw7C,KAAAv7C,OAAAD,EAAA,IACAA,GACAw7C,MAAAA,KAAAv7C,OAAAD,EAAA,GACA0kE,IAAAA,IAAAzkE,OAAAD,EAAA,GAGAu1J,UAAA/5G,KAAA/iD,MAAA,IACA,IAAA+8J,UAAA9wF,IAAAjsE,MAAA,IAEA,KADAmwD,IAAA,GACA2sG,UAAAx0J,SACA6nD,KAAA,KAGA,MAAA6sG,QAAAD,SAAAz0J,SACA6nD,KAAA6sG,QAAA;AlHtDA,AkHwDA,MAAA7sG,KAAA3oD,OAAA,EAAA2oD,IAAAjuD,OAAA,GA1EA,GAAA+6J,SAAA,aACAR,oBAAA,SAAAxwF,KACA,MAAAA,KAAA1rE,QAAA08J,QAAA,QAIAT,cAAA,wBACAD,YAAA,cAsEAW,aAAA,SAAA1uJ,OAAA6tJ,SAAAC,QAEAD,SAAAI,oBAAAJ,UACAC,OAAAG,oBAAAH,OACA,IACA9tJ,OAYA,OAAAA,QAOA,OAJA0uJ,cAAAd,eAAAA,eACAc,aAAAL,YAAAA,YACAK,aAAAN,YAAAA,YAEAM,eC1GApoI,OAAA,SAAA,WAEA,GAAA,mBAAApjB,QACA,OAAAkO,KAAA,SAAA1T,EAAAuC,EAAAmR,MAAAA,QAEA,IAAAoR,MAAAjqB,SAAA1E,qBAAA,QAAA,GAEA86J,OAAAzrJ,OAAA5D,UAAAyc,UAAArI,MAAA,oIAAA,EAGAk7I,eAAA,EAGAC,WAAA;AnHWA,AmHRAF,OAAA,IAAAA,OAAA,GACAC,cAAAjiJ,SAAAgiJ,OAAA,IAAA,GAAAhiJ,SAAAgiJ,OAAA,KAAA,EAEAA,OAAA,IAAAA,OAAA,GACAE,WAAA,EAEAF,OAAA,KACAC,cAAAjiJ,SAAAgiJ,OAAA,IAAA,GAIA,IAAAG,UAGAA,QAAAC,cAAA,eAGA,IAAAC,UAAAC,SAQAC,cAPAC,YAAA,WACAH,SAAAz2J,SAAA9E,cAAA,SACA+uB,KAAA1uB,YAAAk7J,UACAC,SAAAD,SAAAI,YAAAJ,SAAAK,OAEAC,MAAA,EACAC,WAGAC,aAAA,SAAAl0I,KACAg0I,QACA,IAAAA,QACAH,cACAG,MAAA,GAEAL,SAAAQ,UAAAn0I,KACA0zI,SAAArsI,OAAA,WAAA+sI,kBAEAA,cAAA,WACAR,eAEA,IAAAS,UAAAJ,QAAAz1J,OAEA,OAAA61J,WAKAT,cAAAS,SAAA,OACAH,cAAAG,SAAA,UALAT,cAAA;AnHjCA,EmHwCAU,WAAA,SAAAt0I,IAAAif,UAIA,GAHA00H,UAAAA,SAAAQ,WACAN,cAEAF,UAAAA,SAAAQ,UAEAP,cACAK,QAAAhzJ,MAAA+e,IAAAif,YAGAi1H,aAAAl0I,KACA4zI,cAAA30H,cAGA,CAEAy0H,SAAAn5I,YAAA,YAAAyF,IAAA,IAEA,IAAAu0I,cAAA5qI,YAAA,WACA,IACA+pI,SAAAK,MAAAS,SACA3qI,cAAA0qI,cACAt1H,WACA,MAAAzoC,MACA,MAKAi+J,SAAA,SAAAz0I,IAAAif,UACA,GAAA0qD,MAAA1sF,SAAA9E,cAAA,OAGA,IAFAwxF,KAAA7vF,KAAA,WACA6vF,KAAA+U,IAAA,aACA60D,UACA5pE,KAAAtiE,OAAA,WACAsiE,KAAAtiE,OAAA,aAEA9nB,WAAA0/B,SAAA,QAGA,IAAAs1H,cAAA5qI,YAAA,WACA,IAAA,GAAAlsB,GAAA,EAAAA,EAAAR,SAAAy3J,YAAAt8J,OAAAqF,IAAA,CACA,GAAAs2J,OAAA92J,SAAAy3J,YAAAj3J;AnHjFA,AmHkFA,GAAAs2J,MAAAziJ,MAAAq4E,KAAAr4E,KAEA,MADAuY,eAAA0qI,cACAt1H,aAGA,GACA0qD,MAAAr4E,KAAA0O,IACAkH,KAAA1uB,YAAAmxF,MAmBA,OAfA6pE,QAAAmB,UAAA,SAAA1mJ,KAAA0mJ,WAIA,MAHA,QAAA1mJ,KAAAvQ,OAAAuQ,KAAA7V,OAAA,EAAA,KACA6V,KAAAA,KAAAvQ,OAAA,EAAAuQ,KAAA7V,OAAA,IAEAu8J,UAAA1mJ,OAIAulJ,OAAA19I,KAAA,SAAA8+I,MAAAnmG,IAAA34C,KAAAsmB,SAEAk3H,cAAAgB,WAAAG,UAAAhmG,IAAAI,MAAA+lG,MAAA,QAAA9+I,OAKA09I,SCrKAxoI,OAAA,uCAAA,cCqBAA,OAAA,uCACA,SACA,SACA,OACA,SACA,eACA,oBACA,yBACA,qBACA,cACA,yBACA,iCACA,wBACA,0CACA,mCACA,qCACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAX,OAAA2H,QAAA4L,aAAAqC,aAAA4jF,WAAAh8B,SACApnC,OAAA40C,YAAA/9F,MAAA8vH,gBAAA+4B;AACA,ArHmBA,YqHJA,SAAAr7F,SAAA7uB,KACA4tF,WAAAz0H,OAEAy4F,WAAA16F,MAAA8oC,IAAAzL,SAGA10B,OAAAwkC,QAAAntC,MAAA8oC,KAOA,QAAA8sH,YAAAz4H,QACA,GAAA82B,SAAA++F,aAAAv/F,YAEAt2B,QAAAnqB,EAAA6f,SAAAsK,QACA+sE,SAAAjlG,EAAA,aAIAquD,OAAA,MAAAW,QAAA92B,QACAllB,GAAA,QAAA0/C,SACA1/C,GAAA,QAAA,WACAjF,EAAA8jB,MAAA,WACA7xB,EAAA,WAAAsL,YAAA,cAGAmQ,MAAA,UAAA,WAEA/X,OAAA7D,SAAAq4B,OAAA04H,UAEAtxJ,OAxCA+uD,OAAAzsB,iBAAA,MAAAqhE,aACA/9F,MAAA08B,iBAAA,kBAAAozF,iBACAxpF,aAAA5J,iBAAA,OAAAiM,aA6CA,IAAAgjH,kBACA,iBACA,kBACA,gBACA,WAMAC;AAYA1zJ,ArHxDA,MqHwDA,SAAA4O,SACA,GAAA+kJ,cAAA/kJ,YACAksB,OAAAD,OAAAC,SACA84H,eAAA,CAGAjjJ,GAAAikB,QAAA6+H,gBAAA,SAAA9mJ,MACA,MAAAgnJ,cAAAhnJ,MAAA,QACA2oD,SACAnyC,SAAA,EACAouB,KAAA,EACA/4C,KAAA,QACAwiC,QAAAQ,GAAA,6BAAA7uB,QAEAinJ,eAAA,GACA,KAIAA,gBACAv/B,WAAAr0H,QAEA86B,QACAnqB,EAAAikB,QAAAkG,OAAA82B,QAAA,SAAAP,QACAs/F,aAAA/4J,IAAAy5D,OAAAx2B,OAAAw2B,OAAAlC,SAAAkC,OAAAvxC,YAIA6wI,aAAAn8I,OACAvL,KAAA,WACAsqJ,WAAA5iJ,EAAAglB,KAAAg+H,aAAA,cAFAhD,SAIA,WACAr7F,SACAnyC,SAAA,EACAouB,KAAA,EACA/4C,KAAA,QACAwiC,QAAAQ,GAAA,kCAOA,OAAAk4H,oBC/IAhqI,OAAA,qCACA,SACA,SACA,kCACA,4CACA,SAAA9mB,EAAA+N,EAAAmjF,QAAAF;AACA,AtHsCA,YsHpCA,IAAAigE,WAAA//D,QAAAj8F,QACAy6F,SAAA,aACApwF,KAAA,SAAAhH,MAEA,GADA4E,KAAAkvF,SACA9zF,MAAA,gBAAAA,MACA,KAAA,0CAEA4E,MAAAk7F,IAAA9/F,MAAA,GACA4E,KAAAkiB,aAEA9mB,KAAA,SAAAA,MACA,GAAA,mBAAAA,MACA,MAAA4E,MAAAk7F,GAEA,IAAA,gBAAA9/F,MAOA,KAAA,uBANA4E,MAAAk7F,IAAA9/F,KACA0H,EAAAjH,UAAAyK,QAAA,uBACAlL,KAAAA,KACA87C,UAAAl3C,QAOAg0J,YAAA,SAAA9xI,SAAA9mB,MACA,GAAA+Z,cAAA,CAEA,KAAA,GAAA9Y,KAAA6lB,UAAA,CACA,GAAAwsE,KAAAxsE,SAAA7lB,EACA,MAAAqyF,cAAAsF,UAiBA,KADA7+E,cAAA,EACA,wBAfA/Z,MAAAA,MAAA4E,KAAAk7F,IACA,KAAA9/F,KAAA4H,QAAA0rF,IAAAgF,iBACAt4F,MAAAszF,IAAAgF;AAGAhF,AtHAA,IsHAAwG,eAAAl1F,KAAAi1F,kBAAA,MACAj1F,KAAAkiB,SAAAwsE,IAAA4F,aAAA5F,IACA5rF,EAAAjH,UAAAyK,QAAA,yBACAosF,QAAAhE,IACAx3C,UAAAl3C,OAGAmV,aAAA,EASA,MAFAnV,MAAA5E,KAAAA,MAEA+Z,aAEA8lF,WAAA,SAAAvI,QAAAt3F,MACA,MAAA4E,MAAAg0J,aAAAthE,SAAAt3F,OAEA64J,cAAA,SAAAvhE,SACA,GAAAxkD,QAAA,EAQA,OAPA,gBAAA,SACAA,OAAAwkD,QACAA,kBAAAsB,WACA9lD,OAAAwkD,QAAA4B,mBAEAt0F,MAAAkiB,SAAAgsB,QACAluC,KAAA5E,KAAA4E,KAAA5E,OAAA/F,QAAA,KAAA64C,OAAA,KAAA,KACAluC,MAEA6jG,YAAA,SAAArR,UACA,GAAA+B,QACA,IAAA,gBAAA,UACA,IAAA,GAAArmD,UAAAluC,MAAAkiB,SACA8xE,QAAAc,IAAA90F,KAAAkiB,SAAAgsB,QAAAskD,YACA+B,KAAArmD,QAAAluC,KAAAkiB,SAAAgsB,aAIAqmD,MAAA1jF,EAAA9J,MAAA/G,KAAAkiB;AAEA,AtH1CA,MsH0CAqyE,OAEAixC,WAAA,SAAAt3F,QACA,MAAAluC,MAAAkiB,SAAAgsB,QAAAluC,KAAAkiB,SAAAgsB,QAAA,MAEAsmD,qBAAA,WACA,GAAAtyE,UAAAliB,KAAA6jG,cACAtP,OACA,KAAA,GAAArmD,UAAAhsB,UACAqyE,KAAArmD,QAAAhsB,SAAAgsB,QACAqmD,KAAA1jF,EAAA9Y,OAAAw8F,KAAAryE,SAAAgsB,QAAAsmD,uBAEA,OAAAD,OAEAxiC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACA6+D,gBACAlmG,IAAAhuD,KAAA5E,MAEA,KAAA,GAAA8yC,UAAAluC,MAAAkiB,SAAA,CACA,GAAAwsE,KAAA1uF,KAAAkiB,SAAAgsB,OACA,IAAA,kBAAAwgD,KAAA38B,OASA,KAAA,gDAAA7jB,MARA,gBAAAwgD,IAAA8D,SAEAxkC,IAAAA,IAAA34D,QAAAq5F,IAAAgF,cAAAhF,IAAA38B,OAAA6hC,YAEA5lC,IAAAA,IAAA34D,QAAAq5F,IAAAgF,cAAA,MAAAxlD,OAAA;AACAgmH,AtHtEA,asHsEAhmH,QAAAwgD,IAAA38B,OAAA6hC,WAOA,GAAAA,SAAAC,WACA,MAAA7zF,MAAAkvF,QACA9zF,KAAAw4F,SAAAkM,aAAA9xC,IAAAkmG,cACAC,aAAAn0J,KAAAm0J,cAAA,QACAvgE,SAAAvuD,KAAAquD,YAEA,MAAA,0CAGAmC,WAAA,SAAAhgG,KAAAigG,aAAAlC,UACAA,SAAAA,UAAA5zF,KAAAq1F,aAEA,IAAAuK,KAAA/uF,EAAA7Q,KAAAkiB,UACAxrB,OAAA,SAAAg4F,KACA,MAAA,kBAAAA,KAAAmH,aAEA7vF,IAAA,SAAA0oF,KACA,MAAAA,KAAAmH,WAAAhgG,KAAA,GAAA+9F,YAEA/+D,SAAA,GACAh8B,QACA2F,OAAAwB,KAAAkvF,OAAAr5F,KAAAigG,aAAAlC,UACA,OAAAgM,MAEAt6F,QAAA,WACA,GAAA4gC,MACAgI,OAAAluC,KAAAkuC,OACA9yC,KAAA4E,KAAAk7F,IACAh5E,YAGA,KAAA,GAAAgsB,UAAAluC,MAAAkiB,SACAgkB,IAAAhkB,SAAAgsB,QAAAluC,KAAAkiB,SAAAgsB,QAAA5oC;AAGA,AtH/GA,MsH+GA4gC,MAEAjhC,KAAA,SAAAipC,OAAAh1B,QAEA,GAAA25E,OAAA,IAiBA,OAfA7yF,MAAAkiB,SAAAgsB,QAEA2kD,OAAA35E,OAAAA,QAAAlZ,KAAA0yF,QAAA1yF,KAAAkiB,SAAAgsB,QAAAvrC,SAAA,QAIAkO,EAAAhc,KAAAmL,KAAAkiB,SAAA,SAAAwsE,KAGA,MADAmE,OAAAnE,IAAAzpF,KAAAipC,QACA2kD,OACA,EADA,SAMAA,OAEAv6D,QAAA,WACA,OAAAt4B,KAAAk7F,MAIA,OAAA64D,aCpLAnqI,OAAA,6CACA,kCACA,kCACA,SAAAoqE,QAAAlC,MACA,YAKA,IAAAsiE,mBAAApgE,QAAAj8F,QAQAs6F,gBAAA,SAAAtmC,OAAAumC,WACA,GAAAhoD,MAAAtqC,KAAAi1F,iBACAjwF,GAAA8sF,KAAAO,gBAAA/nD,KAAAyhB,OAAAumC,UAIA,OAHAttF,KACAhF,KAAA6E,KAAA,aAAAG,IAEAhF,MAQAgF,GAAA,SAAAnM;AAIA,AvHOA,MuHVAA,QAAAmH,KAAA6E,KAAA,eACA7E,KAAAqyF,gBAAAryF,KAAAwyF,UAAA,GAEAxyF,KAAA6E,KAAA,aAAAhM,SAOA,OAAAu7J,qBAIAxqI,OAAA,+BCrEA,kCACA,SACA,4CACA,SAAAoqE,QAAAnjF,EAAAijF,gBAEA,GAAAugE,KAAArgE,QAAAj8F,QACAy6F,SAAA,MACAzgC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,cAMA,OAJAA,aAAA5oF,YACA8R,IAAAk1E,SAAA8B,WAAA11F,KAAA6E,KAAA,SAGA7E,KAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,WAEAt7D,QAAA,WACA,OAAAt4B,KAAA6E,KAAA;AxH8CA,GwH1CA,OAAAwvJ,OAGAzqI,OAAA,oCAAA,WCzBA,OACA0qI,QAAA,SAAAC,YAAAh9H,QAAAzoB,SACA,GAAA,kBAAA,cAAA,gBAAA,SACA,IAAA,GAAAo/C,cAAA32B,SACA,GAAAt0B,OAAAE,eAAAoxJ,YAAApyJ,UAAA+rD,aAGA,GAAAp/C,SAAAA,QAAA8O,OAAA,CACA,GAAA42I,SAAAD,YAAApyJ,UAAA+rD,WACAqmG,aAAApyJ,UAAA+rD,YAAA,WAEA,MADA32B,SAAA22B,YAAAroD,MAAA7F,KAAA8F,WACA0uJ,QAAA3uJ,MAAA7F,KAAA8F,iBANAyuJ,aAAApyJ,UAAA+rD,YAAA32B,QAAA22B,gBAeAtkC,OAAA,sCAAA,iCAAA,qCAAA,SAAA6qI,MAAAV;ACrBA,A1HkEA,G0HlEAx8H,UACA68D,cAAA,SAAAh5F,MACA4E,KAAAk7F,IAAA,GAAA64D,WAAA34J,MAAA,IACA4E,KAAAk7F,IAAAhG,eAAAl1F,KAAAi1F,kBAAA,MACAj1F,KAAAk7F,IAAAi5D,aAAA,eAEAv/D,QAAA,WACA,MAAA50F,MAAAk7F,KAEA9/F,KAAA,SAAAA,MACA,GAAA65C,KAAAj1C,KAAAk7F,IAAA9/F,KAAAA,KACA,OAAA,MAAA4E,KAAAi1C,KAEAgmD,WAAA,SAAAvI,QAAAt3F,MAEA,MADA4E,MAAAk7F,IAAAD,WAAAvI,QAAAt3F,MACA4E,MAEAi0J,cAAA,SAAAvhE,SACA,MAAA1yF,MAAAk7F,IAAA+4D,cAAAvhE,UAEAmR,YAAA,SAAArR,UACA,MAAAxyF,MAAAk7F,IAAA2I,YAAArR,WAEAgzC,WAAA,SAAAt3F,QACA,MAAAluC,MAAAk7F,IAAAsqC,WAAAt3F,SAIA,QACAomH,QAAA,SAAAC,aACAE,MAAAH,QAAAC,YAAAh9H,UAEAA,QAAAA,WAGA3N,OAAA,4CAAA,iCAAA,qCAAA,UAAA,SAAA6qI,MAAAV,UAAAljJ;ACnCA,A3HmEA,G2HnEA0mB,WASA,OARA1mB,GAAA9Y,OAAAw/B,QAAAw8H,UAAAx8H,SACA1mB,EAAA9Y,OAAAw/B,SACA68D,cAAA,SAAAh5F,MACA24J,UAAAx8H,QAAA68D,cAAA59F,KAAAwJ,KAAA5E,MACA4E,KAAAk7F,IAAAi5D,aAAA,mBAKAG,QAAA,SAAAC,aACAE,MAAAH,QAAAC,YAAAh9H,UAEAA,QAAAA,WAGA3N,OAAA,8CAAA,iCAAA,UAAA,SAAA6qI,MAAA5jJ,GChBA,GAAA0mB,UACA8V,aAAA,WAEA,GAAArtC,KAAA6tC,IAAA7tC,KAAA6tC,GAAAhhC,MAAA7M,KAAA6tC,GAAAkzB,IACA,MAAAlwD,GAAA9J,MAAA/G,KAAA6tC,GAGA,IAAAomD,aAAAj0F,KAAAi1F,gBACA,IAAAhB,YAAA,CACA,GAAAX,YAAAW,YAAAygE,eACA,KAAA,GAAA7mH,MAAAylD,YACA,GAAAA,WAAAzlD,IAAA7qC,QAAAhD,KAAA20J,eAAA,EACA;AACA9nJ,A5HuDA,K4HvDAghC,GACAkzB,IAAAuyB,WAAAzlD,IAMA,OADAomD,aAAAX,WAAAtzF,KAAA40J,eAAA50J,KAAA60J,cAEAhoJ,KAAA7M,KAAA40J,cACA7zF,IAAA/gE,KAAA60J,cAKA,UAEAC,aAAA,SAAAjoJ,KAAAk0D,KACA/gE,KAAA6tC,IACAhhC,KAAAA,KACAk0D,IAAAA,MAKA,QACAuzF,QAAA,SAAAC,aACAE,MAAAH,QAAAC,YAAAh9H,UAEAA,QAAAA,WAGA3N,OAAA,mCC7CA,kCACA,2CACA,8CACA,SAAAoqE,QAAA+/D,UAAAgB,mBAEA,GAAAC,SAAAhhE,QAAAj8F,QACAy6F,SAAA,UACAoiE,cAAA,KACAC,aAAA,kCACAF,cAAA,WACAr8H,QAAA;AACA,A7H2DA,O6H3DAt4B,KAAA6E,KAAA,SAAA7E,KAAA40F,UAAAt8D,YAKA,OAFAy7H,WAAAO,QAAAU,SACAD,kBAAAT,QAAAU,SACAA,UAGAprI,OAAA,8CAAA,iCAAA,qCAAA,UAAA,SAAA6qI,MAAAV,UAAAljJ,GClBA,GAAA0mB,WASA,OARA1mB,GAAA9Y,OAAAw/B,QAAAw8H,UAAAx8H,SACA1mB,EAAA9Y,OAAAw/B,SACA68D,cAAA,SAAAh5F,MACA24J,UAAAx8H,QAAA68D,cAAA59F,KAAAwJ,KAAA5E,MACA4E,KAAAk7F,IAAAi5D,aAAA,eAKAG,QAAA,SAAAC,aACAE,MAAAH,QAAAC,YAAAh9H,UAEAA,QAAAA,WCUA3N,OAAA,gCACA,kCACA,4CACA,6CACA,SACA,SACA,kCACA,SAAAoqE,QAAAogE,kBAAAL,UAAAljJ,EAAA/N,EAAAgvF;AACA,A/HuCA,Y+HrCA,IAAAmjE,MAAAb,kBAAAr8J,QACAy6F,SAAA,iBACApwF,KAAA,SAAA8rC,OAAAthC,YACA5M,KAAAkvF,OAAAhhD,OAAAthC,YACA5M,KAAAi0F,YAAAj0F,KACAA,KAAA04F,eACA14F,KAAAmxC,aACAnxC,KAAAk4F,YACAl4F,KAAAy6F,kBACAz6F,KAAAszF,cACAtzF,KAAAq5F,mBACAr5F,KAAAqvF,mBAAA,KACArvF,KAAAu5F,kBAAA,MAEAgM,gBAAA,WACA,GAAAmvC,iBACAngD,KAAAv0F,KAAAw0F,sBACA,KAAA,GAAAtmD,UAAAqmD,MACAP,QAAAc,IAAAP,KAAArmD,QAAA,gBACAwmG,aAAA70I,KAAA00F,KAAArmD,QAGA,OAAAwmG,eAEA77C,uBAAA,SAAAzzD,UACA,IAAA4uD,QAAAc,IAAA1vD,SAAA,uBAIA,KAAA,mCAEA,OALAA,UAAA8vD,eAAAl1F;AACAA,A/HWA,K+HXAmxC,UAAA/L,SAAAkvD,aAAAlvD,SAIAplC,MAEAk1J,uBAAA,SAAAtpE,YACA,IAAA,GAAAvvF,KAAA2D,MAAAmxC,UACA,GAAAnxC,KAAAmxC,UAAA90C,GAAAwI,KAAA,gBAAA+mF,WACA,MAAA5rF,MAAAmxC,UAAA90C,EAGA,OAAA,OAEAg8F,sBAAA,SAAAF,SACA,IAAAnE,QAAAc,IAAAqD,QAAA,sBAIA,KAAA,kCAEA,OALAA,SAAAjD,eAAAl1F,MACAA,KAAAk4F,SAAAC,QAAA7D,aAAA6D,QAIAn4F,MAEAy4F,iBAAA,SAAAF,UACA,IAAAvE,QAAAc,IAAAyD,SAAA,iBAIA,KAAA,6BAEA,OALAA,UAAArD,eAAAl1F,MACAA,KAAAy6F,eAAAlC,SAAAjE,aAAAiE,SAIAv4F,MAEAw0F,qBAAA,WACA,GAAAD,MAAAv0F,KAAAkvF,SAAA0I,MAAA53F;AAWA,A/HhCA,M+HsBA6Q,GAAAhc,MAAA,YAAA,WAAA,iBAAA,eAAA,SAAAsgK,mBACA,IAAA,GAAA94J,KAAAu7F,OAAAu9D,mBAAA,CACA,GAAAzmE,KAAAkJ,MAAAu9D,mBAAA94J,EACAk4F,MAAAl4F,GAAAqyF,IACA6F,KAAA1jF,EAAA9Y,OAAAw8F,KAAA7F,IAAA8F,2BAGAx0F,KAAAqvF,6BAAA2E,WACAO,KAAAv0F,KAAAqvF,mBAAAiF,aAAAt0F,KAAAqvF,oBAEAkF,MAEAtvF,KAAA,SAAAipC,QAEA,GAAA2kD,OAAA7yF,KAAAkvF,OAAAhhD,OAMA,OAJA2kD,SACAA,MAAAf,KAAAW,iBAAAzyF,MAAA,YAAA,WAAA,iBAAA,eAAAkuC,SAGA2kD,OAEAhE,aAAA,WACA,MAAAh+E,GAAA9J,MAAA/G,KAAAmxC,YAEA8jD,eAAA,WACA,MAAAj1F,OAEAo1J,aAAA,SAAAvoJ,KAAAk0D,KACA/gE,KAAAszF,WAAAzmF,MAAAk0D;A/HlDA,E+HoDAo4B,cAAA,SAAA7F,YACAtzF,KAAAszF,WAAAA,YAEAohE,cAAA,WACA,MAAA7jJ,GAAA9J,MAAA/G,KAAAszF,aAEA8F,mBAAA,SAAA6I,WACAjiG,KAAAq5F,gBAAA4I,WAEAozD,mBAAA,WACA,MAAAxkJ,GAAA9J,MAAA/G,KAAAq5F,kBAEAC,qBAAA,SAAAg8D,MACAt1J,KAAAu5F,kBAAA+7D,MAAA,MAEAC,qBAAA,WACA,MAAAv1J,MAAAu5F,mBAEAZ,cAAA,SAAApJ,YACA,IAAAyE,QAAAc,IAAAvF,WAAA,cAIA,KAAA,qCAEA,OALAA,YAAA2F,eAAAl1F,MACAA,KAAA04F,YAAAnJ,WAAA+E,aAAA/E,WAIAvvF,MAEAw1J,iBAAA,SAAAjmE,YAEA,aADAvvF,MAAA04F,YAAAnJ,WAAA+E;AACAt0F,A/HhFA,M+HkFAy1J,iBAAA,SAAAvlJ,MACA,GAAAiiF,SAAA,CAOA,OANAthF,GAAAhc,KAAAmL,KAAA04F,YAAA,SAAAnJ,YACA,MAAAA,YAAA1qF,KAAA,UAAAqL,MACAiiF,QAAA,GACA,GAFA,SAKAA,QAEA8G,sBAAA,SAAA2B,IACA,IAAA5G,QAAAc,IAAA8F,GAAA,sBAIA,KAAA,8BAEA,OALAA,IAAA1F,eAAAl1F,MACAA,KAAAqvF,mBAAAuL,GAIA56F,MAEAsF,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,SACA5pF,QAAA,SAAAopF,KACA,MAAAA,KAAAppF,UASA,OAPA4gC,KAAAotD,WAAAtzF,KAAAszF,WACAptD,IAAAmzD,gBAAAr5F,KAAAq5F,gBACAnzD,IAAAgyD,SAAArnF,EAAA7K,IAAAhG,KAAAk4F,SAAA5yF,SACA4gC,IAAAiL,UAAAtgC,EAAA7K,IAAAhG,KAAAmxC,UAAA7rC,SACA4gC,IAAAwyD,YAAA7nF,EAAA7K,IAAAhG,KAAA04F,YAAApzF,SACA4gC,IAAAu0D,eAAA5pF,EAAA7K,IAAAhG,KAAAy6F,eAAAn1F;AACA4gC,A/H/GA,I+H+GAmpD,mBAAArvF,KAAAqvF,mBAAA/pF,UACA4gC,KAEA5N,QAAA,WAEA,GAAAl9B,MAAA4E,KAAA5E,OAAA5C,MAEA,IAAA4C,KAAA,CAGA,GAAAs6J,QAAA5yJ,EAAA,SAAA0b,KAAApjB,MACAu6J,UAAAD,OAAAt6I,UAEA,OAAA,KAAAu6I,UAAA3+J,QAAA2+J,UAAArnJ,SAAA,UACA,GAEA,EAGA,OAAA,GAQAwmD,MAAA,WACA,GAAA8+B,UAAA5zF,KAAAq1F,aACAzB,WACA/iF,EAAAva,WAAAs9F,SAAAllD,UACAklD,SAAAllD,QAAA1uC,QAQA,OAFA+zJ,WAAAO,QAAAW,MAEAA,OAGArrI,OAAA,gCCrOA,SACA,SACA,kCACA,2CACA,8CACA,SAAA9mB,EAAA+N,EAAAmjF,QAAAF,eAAAihE,mBACA,YASA,SAAAa,gBAAAz5D,OAAA05D;AACA,AhI6DA,GgI7DA1/D,OAAA,GAAAzkF,QAAA,SAAAmkJ,OAAAA,OAAA,IAAA,IAAA,aAAA,IACA,OAAA15D,QAAA9mG,QAAA8gG,MAAA,IACA9gG,QAAA,eAAA,IACAA,QAAA,eAAA,IAUA,QAAAygK,iBAAA35D,OAAA05D,QACA,GAAA1/D,OAAA,GAAAzkF,QAAA,SAAAmkJ,OAAAA,OAAA,IAAA,IAAA,IACA,OAAA15D,QAAA9mG,QAAA8gG,MAAA,OASA,QAAA4/D,gBAAAC,SAEA,GAAA/wI,aAAA,CAEA,IAAA+wI,SAAAA,QAAAx9J,OAAA,CACA,GAAAy9J,OAAAnzJ,EAAAA,EAAA6B,UAAAqxJ,SACA/wI,cAAAgxI,MAAAh9J,OAGA,OAAAgsB,WAGA,GAAA1qB,MAAAy5F,QAAAj8F,QACAy6F,SAAA,OACAoiE,cAAA,IACAC,aAAA,qCACAF,cAAA,SACAvyJ,KAAA,SAAA8rC,OAAAthC,YACA5M,KAAAkvF,OAAAhhD,OAAAthC,YACA5M,KAAA6tC,GAAA,KACA7tC,KAAAm8F,OAAA;AACAn8F,AhIiBA,KgIjBAo8F,gBAEAE,cAAA,SAAAD,SAAAxjG,OACAmH,KAAAo8F,YAAAC,UAAAxrF,EAAAyoB,SAAAzgC,QAEAq9J,cAAA,SAAA75D,UACA,MAAAr8F,MAAAo8F,YAAAC,WAEA85D,iBAAA,SAAA95D,gBACAr8F,MAAAo8F,YAAAC,WAEAH,UAAA,SAAAC,QACA,GAAAtuD,IAAA7tC,KAAAqtC,eACAwoH,OAAAhoH,GAAAhhC,MAAAghC,GAAAkzB,IAAAlzB,GAAAhhC,KAAA,EAEAsvF,QAAAy5D,eAAAz5D,OAAA05D,QACAhoH,KACAsuD,OAAA25D,gBAAA35D,OAAA05D,SAEA71J,KAAAm8F,OAAAA,QAEAi6D,UAAA,WACA,MAAAp2J,MAAAm8F,QAEApqC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAI,IAAAz1F,KAAAwyF,SACA9kC,IAAA1tD,KAAAm8F,OACA/gG,KAAAsyD,IACA7f,GAAA7tC,KAAAqtC,eACA+uD,YAAA;AAEA,AhIhBA,IgIgBA,GAAAC,YAAAr8F,MAAAo8F,YACAA,aAAA,yBAAAC,SAAA,KAAAxrF,EAAAiiB,OAAA9yB,KAAAo8F,YAAAC,WAAA,eAGAD,eAEA1uC,IADAA,IAAA1qD,QAAA,gBAAA,EACA0qD,IAAAr4D,QAAA,eAAA+mG,YAAA,gBAEA,cAAA1uC,IAAA0uC,YAAA,gBAIAvuD,IAAAA,GAAAhhC,OACAzR,KAAAsyD,IAAAr4D,QAAA,iBAAA,MAAAw4C,GAAAhhC,KAAA,OACA4oF,IAAA5nD,GAAAhhC,KAAA,IAAA4oF,KAGAr6F,KAAAA,KAAA/F,QAAA,cAAA,IACA+F,KAAAA,KAAA/F,QAAA,oBAAA,GAEA,IAAAmgG,cACAvvC,MAAA,UAAAjmD,KAAA6E,KAAA,YAAA,GAAA,EACAzJ,KAAAA,KACAsyD,IAAAA,IACA+nC,IAAAA,IACA5nD,GAAAA,GAGA,OAAA7tC,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,WAEAt7D,QAAA,WACA,MAAAy9H,gBAAA/1J,KAAAm8F,WAAAn8F,KAAAo8F,YAAAi6D,QAAAr2J,KAAAo8F,YAAAi6D,MAAA79J;AhI9CA,GgIoDA,OAFAu8J,mBAAAT,QAAA/5J,MAEAA,OAGAqvB,OAAA,kCCvIA,kCACA,SACA,2CACA,kCACA,SAAAoqE,QAAAnjF,EAAAijF,eAAAhC,MAEA,GAAAwkE,WAAAtiE,QAAAj8F,QACAy6F,SAAA,SACA+jE,aAAA,WACA,GAAA79J,MAAA,YACA89J,SAAAx2J,KAAA6E,KAAA,OAcA,OAbA2xJ,YAEA99J,KADA,IAAA89J,SAAAxzJ,QAAA,SACA,QACA,IAAAwzJ,SAAAxzJ,QAAA,SACA,QACA,IAAAwzJ,SAAAxzJ,QAAA,SACA,QACA,IAAAwzJ,SAAAxzJ,QAAA,aACA,OAEA,UAGAtK,MAEAq5D,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG;AAEA,AjIiDA,OiIjDAx1F,KAAAu2J,gBACA,IAAA,QACA/gE,YAAAihE,OAAA,CACA,MACA,KAAA,QACAjhE,YAAAkhE,OAAA,CACA,MACA,KAAA,OACAlhE,YAAAh3E,MAAA,CACA,MACA,KAAA,QACA,QACAg3E,YAAAjpF,QAAA,EAMA,MAHAipF,aAAA5oF,YAAA/W,KAAA+9F,SAAA8B,WAAA11F,KAAA6E,KAAA,UACA2wF,YAAAp6F,KAAA4E,KAAAi8F,KAEAj8F,KAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,WAEAt7D,QAAA,WACA,OAAAt4B,KAAA6E,KAAA,UAIA,OAAAyxJ,aAGA1sI,OAAA,0CC5DA,iCACA,UACA,SAAA6qI,MAAA5jJ,GAEA,GAAA0mB,UACAvpB,KAAA,SAAAnB,KAAAhU,OACA,GAAAgU,KACA,GAAAkd,SAAAlxB,MACAmH,KAAAi3F,WAAApqF,MAAAhU,UAEA,IAAA,gBAAA,MACA,IAAA,GAAAmV,QAAAnB,MACA7M,KAAAgO,KAAAA,KAAAnB,KAAAmB,WAEA,IAAA,gBAAA,MACA,MAAA+b,UAAA/pB,KAAAi3F,WAAApqF,MACA,OAEA7M,KAAAi3F,WAAApqF;AAKA,AlI2DA,MkI3DA7M,OAEAiO,WAAA,SAAA0oJ,WACA,GAAA/+D,OAAA53F,IAOA,OANA,gBAAA,aACA22J,WAAAA,YAEA9lJ,EAAAhc,KAAA8hK,UAAA,SAAAC,gBACAh/D,OAAAhrF,WAAAgqJ,YAEA52J,MAEA62J,cAAA,WACA,MAAAhmJ,GAAA9J,MAAA/G,KAAAi3F,aAEA6/D,mBAAA,WAEA,GAAA92J,KAAA+2J,UAAA/2J,KAAA+2J,SAAAlqJ,MAAA7M,KAAA+2J,SAAAh2F,IACA,MAAAlwD,GAAA9J,MAAA/G,KAAA+2J,SAEA,IAAA9iE,aAAAj0F,KAAAi1F,gBACA,OAAAhB,cAEAA,YAAAX,WAAAtzF,KAAAg3J,qBAAAh3J,KAAAi3J,oBAEApqJ,KAAA7M,KAAAg3J,oBACAj2F,IAAA/gE,KAAAi3J,yBAOAC,mBAAA,SAAArqJ,KAAAk0D,KACA/gE,KAAA+2J,UACAlqJ,KAAAA,KACAk0D,IAAAA,MAKA,QACAuzF,QAAA,SAAAC;AACAE,AlIiBA,MkIjBAH,QAAAC,YAAAh9H,UAEAA,QAAAA,WAIA3N,OAAA,+CCxEA,SACA,kCACA,yCACA,6CACA,4CACA,SAAA/Y,EAAAmjF,QAAAmjE,cAAApC,kBAAAjhE,gBACA,YAEA,IAAAsjE,qBAAApjE,QAAAj8F,QACAy6F,SAAA,cACAoiE,cAAA,MACAC,aAAA,mDACAF,cAAA,sBACAqC,oBAAA,QACAC,mBAAA,QAEA70J,KAAA,SAAA8rC,OAAAthC,YAEA5M,KAAAkvF,OAAAhhD,OAAAthC,YAEA5M,KAAA+2F,eAAA;AACA/2F,AnI+DA,KmI/DAizF,OAAA,GACAjzF,KAAAi3F,cACAj3F,KAAAk3F,aACAl3F,KAAAg3F,WAAA,GAIAh3F,KAAA+2J,YAGA/2J,KAAAq3J,eAGAtkJ,GAAA,SAAAy/E,UACA,MAAA,gBAAAA,UAAAxyF,KAAAkvF,OAAAsD,WAGAzgC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,aACAuB,eAAA/2F,KAAA+2F,eACA9D,OAAAjzF,KAAAizF,OACAgE,WAAAj3F,KAAAi3F,WACAC,UAAAl3F,KAAAk3F,UACAF,WAAAh3F,KAAAg3F,WACAnpD,IACA2uD,IAAAx8F,KAAAqtC,eAAAxgC,KAAA,KAIA,OAAA7M,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,WASAplD,SAAA,WACA,GAAAyG,KAAA,KACA2+C,SAAA5zF,KAAAq1F,aAIA,OAHAzB,WAAA/iF,EAAAva,WAAAs9F,SAAAplD,YACAyG,IAAA2+C,SAAAplD,SAAAxuC;AAEAi1C,AnIiBA,KmIRAxG,SAAA,SAAA7wC,OACA,GAAAg2F,UAAA5zF,KAAAq1F,aACAzB,WAAA/iF,EAAAva,WAAAs9F,SAAAplD,WACAolD,SAAAnlD,SAAAzuC,KAAApC,QAIA0H,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,QAGA,OAFAhpD,KAAA+sD,OAAAjzF,KAAAizF,OACA/sD,IAAA+wD,WAAAj3F,KAAAi3F,WACA/wD,KAQAoxH,QAAA,SAAAp9J,IAEA8F,KAAAq3J,WAAAx3J,KAAA3F,IAGA8F,KAAAnK,KAAA,WAAAmK,KAAAnK,KAAA,QACAmK,KAAAu3J,gBAOAA,aAAA,WACA,GAAA90H,MAAAziC,IACA6Q,GAAAikB,QAAA90B,KAAAq3J,WAAA,SAAAn9J,IACAA,GAAA1D,KAAAisC,KAAAA,KAAA5sC,KAAA,UAIAmK,KAAAq3J,cAGAr3J,KAAAnK,KAAA,UAAA,KAQA,OAHAshK,eAAA7C,QAAA8C,qBACArC,kBAAAT,QAAA8C,qBAEAA,sBAGAxtI,OAAA,8CAAA,kCAAA,UAAA,SAAAoqE,QAAAnjF;ACjIA,ApIqFA,GoIrFA2mJ,oBAAAxjE,QAAAj8F,QACAy6F,SAAA,qBACAqI,eAAA,GACAh3E,IAAA,GACAve,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,QAGA,OAFAhpD,KAAA20D,eAAA76F,KAAA66F,eACA30D,IAAAriB,IAAA7jB,KAAA6jB,IACAqiB,MAIA,OAAAsxH,sBAEA5tI,OAAA,uCAAA,kCAAA,sCAAA,SAAAoqE,QAAA+/D,WCdA,GAAA0D,aAAAzjE,QAAAj8F,QACAy6F,SAAA,eAKA,OAFAuhE,WAAAO,QAAAmD,aAEAA,cAEA7tI,OAAA,sCAAA,kCAAA,SAAA,4CAAA,SAAAoqE,QAAAnjF,EAAAijF,gBCRA,GAAA4jE,YAAA1jE,QAAAj8F;AACAy6F,AtIqFA,SsIrFA,aACAzgC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,cAIA,OAFAA,aAAA5oF,YAAAsD,KAAA0jF,SAAA8B,WAAA11F,KAAA6E,KAAA,UAEA7E,KAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,YAIA,OAAA8jE,cAGA9tI,OAAA,0CAAA,6CAAA,SAAAwqI,mBCjBA,GAAAuD,QAAAvD,kBAAAr8J,QACAqK,KAAA,SAAA8rC,OAAAthC,YACA5M,KAAAkvF,OAAAhhD,OAAAthC,aAEAmG,GAAA,SAAAy/E,UACA,MAAA,WAAAA,UAAAxyF,KAAAkvF,OAAAsD,WAEAolE,eAAA,WACA,GAAA/kE,OAAA59C,IAAA,KAAA3K,KAAAtqC,KAAAi1F;AAOA,AvIwEA,MuI9EA3qD,QACAuoD,MAAAvoD,KAAArlC,KAAAjF,KAAAkuC,QACA2kD,QACA59C,IAAA49C,MAAA35E,SAGA+7B,MAIA,OAAA0iH,UAEA/tI,OAAA,2CAAA,0CAAA,SAAAiuI,WCtBA,GAAAC,YAAAD,UAAA9/J,UACA,OAAA+/J,cAKAluI,OAAA,qDAAA,2CAAA,SAAAkuI,YCNA,GAAAC,sBAAAD,WAAA//J,QACAy6F,SAAA,qBAEA,OAAAulE,wBAKAnuI,OAAA,mDAAA,yCAAA,sCAAA,SAAA+tI,OAAA5D,WCPA,GAAAiE,iBAAAL,OAAA5/J;AACAqK,A1IuFA,K0IvFA,SAAA8rC,OAAAthC,YACA5M,KAAAkvF,OAAAhhD,OAAAthC,aAEAmG,GAAA,SAAAy/E,UACA,MAAA,oBAAAA,UAAAxyF,KAAAkvF,OAAAsD,YAMA,OAFAuhE,WAAAO,QAAA0D,iBAEAA,kBAKApuI,OAAA,uCAAA,0CAAA,SAAAiuI,WCjBA,GAAAI,QAAAJ,UAAA9/J,QACAy6F,SAAA,OAEA,OAAAylE,UAKAruI,OAAA,0CAAA,yCAAA,kCAAA,SAAAiuI,UAAAvB,WCRA,GAAA4B,WAAAL,UAAA9/J,QACAy6F,SAAA,SAEA6B,WAAA,SAAA9nF,QACAvM,KAAAuM,OAAAA,QAAA,GAAA+pJ,YAEAzhE,UAAA,WACA,MAAA70F,MAAAuM;A5ImFA,G4I/EA,OAAA2rJ,aAKAtuI,OAAA,sDChBA,SACA,SACA,yCACA,4CACA,SAAA9mB,EAAA+N,EAAAgnJ,UAAA/jE,gBAEA,GAAAqkE,uBAAAN,UAAA9/J,QACAqK,KAAA,SAAA8rC,OAAAthC,WAAA3T,MACA+G,KAAAkvF,OAAAhhD,OAAAthC,YACA5M,KAAAuO,IAAAtV,MAAA,KAEA8Z,GAAA,SAAAy/E,UACA,MAAA,uBAAAA,UAAAxyF,KAAAkvF,OAAAsD,WAEAjkF,IAAA,SAAAtV,MACA,GAAA,mBAAAA,MACA,MAAA+G,MAAA/G,IAEA,IAAA,gBAAAA,MAOA,KAAA,uBAGA,OATA+G,MAAA/G,KAAAA,KACA6J,EAAAjH,UAAAyK,QAAA,oBACAu1F,OAAA77F,KACA/G,KAAAA,OAMA+G,MAEA+xD,OAAA;AACA,A7I4DA,G6I5DA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,aACAp6F,KAAA4E,KAAA/G,KAGA,OAAA+G,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,YAIA,OAAAukE,yBAKAvuI,OAAA,2CAAA,sDAAA,SAAAuuI,uBC9CA,GAAAC,YAAAD,sBAAApgK,QACAy6F,SAAA,WAEA,OAAA4lE,cAKAxuI,OAAA,iDAAA,2CAAA,SAAAkuI,YCRA,GAAAO,kBAAAP,WAAA//J,QACAy6F,SAAA,iBAEA,OAAA6lE;A/IyFA,G+IpFAzuI,OAAA,2CAAA,yCAAA,4CAAA,SAAA+tI,OAAA5D,WCPA,GAAAuE,SAAAX,OAAA5/J,QACAy6F,SAAA,WAKA,OAFAuhE,WAAAO,QAAAgE,SAEAA,UAKA1uI,OAAA,gDAAA,sDAAA,SAAAuuI,uBCZA,GAAAI,iBAAAJ,sBAAApgK,QACAy6F,SAAA,gBAEA,OAAA+lE,mBAKA3uI,OAAA,0DAAA,mDAAA,SAAA4uI,oBCPA,GAAAC,2BAAAD,mBAAAzgK;AACAy6F,AlJ2FA,SkJ3FA,0BAGA,OAAAimE,6BAKA7uI,OAAA,gDAAA,mDAAA,SAAA4uI,oBCTA,GAAAE,iBAAAF,mBAAAzgK,QACAy6F,SAAA,gBAGA,OAAAkmE,mBAMA9uI,OAAA,6CAAA,sDAAA,SAAAuuI,uBCXA,GAAAQ,cAAAR,sBAAApgK,QACAy6F,SAAA,aAEA,OAAAmmE,gBAKA/uI,OAAA,8CAAA,6CAAA,SAAAwqI,mBCRA,GAAAwE,UAAAxE,kBAAAr8J;AACAgb,ArJ6FA,GqJ7FA,SAAAy/E,UACA,MAAA,aAAAA,UAAAxyF,KAAAkvF,OAAAsD,YAGA,OAAAomE,YAEAhvI,OAAA,mDAAA,8CAAA,SAAAgvI,UCPA,GAAAC,eAAAD,SAAA7gK,UACA,OAAA8gK,iBAEAjvI,OAAA,oDAAA,8CAAA,SAAAgvI,UCHA,GAAAE,gBAAAF,SAAA7gK,UACA,OAAA+gK,kBAEAlvI,OAAA,mDAAA,4CAAA,sCAAA,SAAAwqI,kBAAAL,WCFA,GAAAgF,eAAA3E,kBAAAr8J;AACAy6F,AxJ6FA,SwJ7FA,gBACAz/E,GAAA,SAAAy/E,UACA,MAAA,aAAAA,UAAAxyF,KAAAkvF,OAAAsD,YAMA,OAFAuhE,WAAAO,QAAAyE,eAEAA,gBAEAnvI,OAAA,oDCZA,kCACA,SACA,2CACA,kCACA,SAAAoqE,QAAAnjF,EAAAijF,eAAAhC,MACA,YAEA,IAAAknE,gBAAAhlE,QAAAj8F,QACAqK,KAAA,SAAA8rC,OAAAthC,YACA5M,KAAAkvF,OAAAhhD,OAAAthC,YACA5M,KAAA27F,YAEA5oF,GAAA,SAAAy/E,UACA,MAAA,gBAAAA,UAAAxyF,KAAAkvF,OAAAsD,WAEAsJ,UAAA,SAAAD,QAGA,MAFAA,QAAA3G,eAAAl1F,KAAAi1F,kBAAA;AACAj1F,AzJ+EA,KyJ/EA27F,QAAAE,OAAAvH,aAAAuH,OACA77F,MAEA6gG,WAAA,WACA,GAAAlF,WACA,KAAA,GAAAt/F,KAAA2D,MAAA27F,QACAA,QAAAt/F,GAAA2D,KAAA27F,QAAAt/F,EAEA,OAAAs/F,UAEAkB,UAAA,SAAA3uD,QACA,GAAA+G,KAAA,IAIA,OAHAj1C,MAAA27F,QAAAztD,UACA+G,IAAAj1C,KAAA27F,QAAAztD,SAEA+G,KAEA6nD,sBAAA,SAAAlR,YACA,IAAA,GAAAvvF,KAAA2D,MAAA27F,QACA,GAAA37F,KAAA27F,QAAAt/F,GAAA2I,OAAA4mF,WACA,MAAA5rF,MAAA27F,QAAAt/F,EAGA,OAAA,OAEAm4F,qBAAA,WACA,GAAAD,MAAAv0F,KAAAkvF,QAEA,KAAA,GAAAhhD,UAAAluC,MAAA27F,QACA3H,QAAAc,IAAA90F,KAAA27F,QAAAztD,QAAA,YACAqmD,KAAArmD,QAAAluC,KAAA27F,QAAAztD,QACAqmD,KAAA1jF,EAAA9Y,OAAAw8F,KAAAv0F,KAAA27F,QAAAztD,QAAAsmD,wBAGA,OAAAD,OAEAtvF,KAAA,SAAAipC,QACA,GAAA2kD,OAAA7yF,KAAAkvF,OAAAhhD;AAIA,AzJuCA,MyJ1CA2kD,SACAA,MAAAf,KAAAW,iBAAAzyF,KAAA,UAAAkuC,SAEA2kD,OAEAqiE,uBAAA,WACA,GAAA9vH,UAAA,KACA6zH,WAAAj5J,KAAA6E,KAAA,qBACA,IAAAo0J,WAAA,CACA,GAAA3uH,MAAAtqC,KAAAi1F,gBACA,KAAA3qD,KAGA,KAAA,+DAFAlF,UAAAkF,KAAA4qH,uBAAA+D,YAKA,MAAA7zH,WAMA2sB,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,aACA0jE,MAAAl5J,KAAAwyF,SAAAn9F,QAAA,WAAA,SAAAgsB,IACA,MAAA,IAAAA,GAAA9rB,gBAEAomG,WACAw9D,eAAA,EAGA,KAAAvlE,SACA,KAAA,yCAAA5zF,KAAAwyF;AAGA,AzJKA,GyJLAmJ,SAAA37F,KAAA6E,KAAA,YAAA+uF,SAAA4L,UAAA,kBAAA5L,SAAA8M,mBAAA1gG,MAAAA,KAAA6gG,aACAu4D,iBAAA59D,aAAAttD,OAAAluC,KAAAkuC,OAAAthC,WAAA5M,KAAA4M,aACAgrF,MAAA53F,IACA6Q,GAAAhc,KAAA8mG,QAAA,SAAAE,QACA,GAAA7H,QAAAc,IAAA+G,OAAA,UACA,IACA,GAAAw9D,gBAAAx9D,OAAA9pC,OAAAlhD,EAAA9J,MAAAqyJ,iBAAA,GAAA,KAAAv9D,OAAArJ,SAAA,IAAAoF,MAAApF,SAAAoB,SACA4B,aAAAmG,QAAA97F,KAAAw5J,gBACA,MAAAjkK,MAMA,IAAAkkK,SAAAj0H,KAAAsuD,SAAA3zF,KAAAwyF,SAAA,IAAAntD,KAAAsuD,SAAA3zF,KAAAwyF,QAEA,OAAAxyF,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAA4lE,QAAA1lE,WAEAiC,WAAA,SAAAhgG,KAAAigG,aAAAlC,UACA,GAAAnxD,MAAAziC,IAGA,OAFA4zF,UAAAA,UAAA5zF,KAAAq1F;AAEAxkF,AzJhBA,EyJgBA7Q,KAAA6gG,cACAnqG,OAAA,SAAAg4F,KACA,MAAAsF,SAAAc,IAAApG,IAAA,YAEA1oF,IAAA,SAAA61F,QACA,MAAAA,QAAAhG,cAAAgG,OAAArJ,SAAA,IAAA/vD,KAAA+vD,SAAAoB,YAEA/6F,QACA2F,OAAAwB,KAAAkvF,OAAAr5F,KAAAigG,aAAAlC,YAEAmM,YAAA,SAAAjpE,QACA,GAAAme,KAAA,KACA2+C,SAAA5zF,KAAAq1F,aACA,KAAAzB,SAGA,KAAA,yCAAA5zF,KAAAwyF,QAEA,OAJAv9C,KAAA2+C,SAAAmM,YAAA//F,KAAA82B,SAMAmpE,YAAA,WACA,GAAAhrD,KAAA,KACA2+C,SAAA5zF,KAAAq1F,aACA,KAAAzB,SAGA,KAAA,yCAAA5zF,KAAAwyF,QAEA,OAJAv9C,KAAA2+C,SAAAqM,YAAAjgG,OAMAkgG,cAAA,WACA,GAAAjrD,KAAA,KACA2+C,SAAA5zF,KAAAq1F,aACA,KAAAzB,SAGA,KAAA,yCAAA5zF,KAAAwyF;AAEA,AzJrDA,MyJiDAv9C,KAAA2+C,SAAAsM,cAAAlgG,OAcAwuC,SAAA,WACA,GAAAyG,KAAA,KACA2+C,SAAA5zF,KAAAq1F,aACA,KAAAzB,SAKA,KAAA,yCAAA5zF,KAAAwyF,QAEA,OANA3hF,GAAAva,WAAAs9F,SAAAplD,YACAyG,IAAA2+C,SAAAplD,SAAAxuC,OAKAi1C,KAUAxG,SAAA,SAAA7wC,OACA,GAAAg2F,UAAA5zF,KAAAq1F,aACA,KAAAzB,SAKA,KAAA,yCAAA5zF,KAAAwyF,QAJA3hF,GAAAva,WAAAs9F,SAAAnlD,WACAmlD,SAAAnlD,SAAAzuC,KAAApC,QAaAk3D,MAAA,WACA,GAAA8+B,UAAA5zF,KAAAq1F,aACA,KAAAzB,SAKA,KAAA,yCAAA5zF,KAAAwyF,QAJA3hF,GAAAva,WAAAs9F,SAAAllD,UACAklD,SAAAllD,QAAA1uC,OAOAsF,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,QACAhpD,KAAAy1D;AACA,AzJjHA,IyJiHA,GAAAztD,UAAAluC,MAAA27F,QACA3H,QAAAc,IAAA90F,KAAA27F,QAAAztD,QAAA,YACAhI,IAAAy1D,QAAAztD,QAAAluC,KAAA27F,QAAAztD,QAAA5oC,UAGA,OAAA4gC,OAGA,OAAA8yH,kBAGApvI,OAAA,+CAAA,kCAAA,4CAAA,SAAAoqE,QAAA+/D,WCjOA,GAAAwF,QAAAvlE,QAAAj8F,QAAAy6F,SAAA,UAEA,OADAuhE,WAAAO,QAAAiF,QACAA,SAEA3vI,OAAA,yDCJA,mDACA,8CACA,SACA,4CACA,SAAAyrH,YAAAkkB,OAAA1oJ,EAAAijF;AACA,A3JiGA,ACvGA,Y0JQA,IAAA0lE,kBAAAnkB,YAAAt9I,QACAqK,KAAA,SAAA8rC,OAAAthC,YACA5M,KAAAkvF,OAAAhhD,OAAAthC,YACA5M,KAAAoxF,OAAA,GAAAmoE,QAAA,KAEAxmJ,GAAA,SAAAy/E,UACA,MAAA,qBAAAA,UAAAxyF,KAAAkvF,OAAAsD,WAEAgC,qBAAA,WACA,GAAAD,MAAAv0F,KAAAkvF,QAGA,OAFAqF,MAAA1jF,EAAA9Y,OAAAw8F,KAAAv0F,KAAAoxF,OAAAoD,wBACAD,KAAAv0F,KAAAoxF,OAAAkD,aAAAt0F,KAAAoxF,OACAmD,MAEAtvF,KAAA,SAAAipC,QACA,MAAAluC,MAAAkvF,OAAAhhD,SAAAluC,KAAAoxF,OAAAnsF,KAAAipC,SAEA6jB,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,aACApE,OAAApxF,KAAAoxF,OAAAr/B,OAAA6hC,UAGA,OAAA5zF,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC;A1JhCA,E0JkCAiC,WAAA,SAAAhgG,KAAAigG,aAAAlC,UAEA,MADAA,UAAAA,UAAA5zF,KAAAq1F,iBAEA72F,OAAAwB,KAAAoxF,OAAAyE,cAAA,GAAAjC,WACAp1F,OAAAwB,KAAAkvF,OAAAr5F,KAAAigG,aAAAlC,YAEAtuF,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,QAEA,OADAhpD,KAAAkrD,OAAApxF,KAAAoxF,OAAA9rF,UACA4gC,MAGA,OAAAszH,oBAIA5vI,OAAA,6DAAA,yDAAA,SAAA4vI,kBClDA,GAAAC,sBAAAD,iBAAAzhK,QACAy6F,SAAA,wBAEA,OAAAinE,wBAKA7vI,OAAA,0DAAA,yDAAA,SAAA4vI;ACRA,A5JCA,G4JDAE,mBAAAF,iBAAAzhK,QACAy6F,SAAA,qBAEA,OAAAknE,qBAKA9vI,OAAA,6DAAA,wDAAA,sCAAA,SAAA4vI,iBAAAzF,WCRA,GAAA4F,sBAAAH,iBAAAzhK,UAEA,OADAg8J,WAAAO,QAAAqF,sBACAA,uBAEA/vI,OAAA,0DCJA,SACA,mDACA,yCACA,6CACA,4CACA,SAAA/Y,EAAAwkI,YAAA8hB,cAAApC,kBAAAjhE;AAEA,A9JLA,G8JKA8lE,mBAAAvkB,YAAAt9I,QACAy6F,SAAA,oBACAoiE,cAAA,MACAC,aAAA,yDACAF,cAAA,4BACAqC,oBAAA,QACAC,mBAAA,QACA70J,KAAA,SAAA8rC,OAAAthC,YAEA5M,KAAAkvF,OAAAhhD,OAAAthC,YAEA5M,KAAA+2F,eAAA,GACA/2F,KAAAizF,OAAA,GACAjzF,KAAAi3F,cACAj3F,KAAAk3F,aACAl3F,KAAAg3F,WAAA,GAIAh3F,KAAA+2J,YAEA/2J,KAAA65J,sBAEA9mJ,GAAA,SAAAy/E,UACA,MAAA,sBAAAA,UAAAxyF,KAAAkvF,OAAAsD,WAEAzgC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG;AACAuB,A9JnCA,e8JmCA/2F,KAAA+2F,eACA9D,OAAAjzF,KAAAizF,OACAgE,WAAAj3F,KAAAi3F,WACAC,UAAAl3F,KAAAk3F,UACAF,WAAAh3F,KAAAg3F,WACAnpD,IACA0uD,IAAAv8F,KAAAqtC,eAAAxgC,KAAA,KAIA,OAAA7M,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,WAEAtuF,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,QAGA,OAFAhpD,KAAA+sD,OAAAjzF,KAAAizF,OACA/sD,IAAA+wD,WAAAj3F,KAAAi3F,WACA/wD,KAEA4wH,mBAAA,WAEA,GAAA92J,KAAA+2J,UAAA/2J,KAAA+2J,SAAAlqJ,MAAA7M,KAAA+2J,SAAAh2F,IACA,MAAAlwD,GAAA9J,MAAA/G,KAAA+2J,SAEA,IAAA9iE,aAAAj0F,KAAAi1F,gBACA,OAAAhB,cAEAA,YAAAX,WAAAtzF,KAAAg3J,qBAAAh3J,KAAAi3J,oBAEApqJ,KAAA7M,KAAAg3J,oBACAj2F,IAAA/gE,KAAAi3J;A9J/DA,O8JsEAC,mBAAA,SAAArqJ,KAAAk0D,KACA/gE,KAAA+2J,UACAlqJ,KAAAA,KACAk0D,IAAAA,MAGA+4F,WAAA,SAAAj8H,UAEA79B,KAAA65J,kBAAAh6J,KAAAg+B,UAEA79B,KAAAnK,KAAA,QAEAmK,KAAA+5J,mBAGAA,gBAAA,WAEA,GAAAniE,OAAA53F,KACAu8F,IAAAv8F,KAAAnK,KAAA,MAEA,KAAA0mG,IAYA,KAAA,8EAXA1rF,GAAAhc,KAAAmL,KAAA65J,kBAAA,SAAAx2J,IACAA,GAAA7M,KAAAohG,MAAA2E,OAIAv8F,KAAA65J,qBAGA75J,KAAAnK,KAAA,YAAA,IAOAmkK,MAAA,SAAAniK,MAAAgmC,UAQA,MAPA79B,MAAA85J,WAAA,SAAAv9D,KACA,IAAA1rF,EAAAva,WAAAimG,IAAAzmF,IAGA,KAAA,0CAFAymF,KAAAzmF,GAAAje,MAAAgmC,YAKA79B,MAEAi6J,OAAA,SAAApiK,OAQA,MAPAmI,MAAA85J,WAAA,SAAAv9D;AACA,A9JrHA,I8JqHA1rF,EAAAva,WAAAimG,IAAAh2F,KAGA,KAAA,2CAFAg2F,KAAAh2F,IAAA1O,SAKAmI,MAEAk6J,WAAA,SAAAriK,MAAAwtC,MAQA,MAPArlC,MAAA85J,WAAA,SAAAv9D,KACA,IAAA1rF,EAAAva,WAAAimG,IAAAh2F,KAGA,KAAA,2CAFAg2F,KAAAj2F,QAAAzO,MAAAwtC,QAKArlC,OAQA,OAHAm3J,eAAA7C,QAAAsF,mBACA7E,kBAAAT,QAAAsF,mBAEAA,oBCjIAhwI,OAAA,0DAAA,oDAAA,SAAAyrH,aACA,YACA,OAAAA,aAAAt9I,QACAgb,GAAA,SAAAy/E,UACA,MAAA,sBAAAA,UAAAxyF,KAAAkvF,OAAAsD,eAIA5oE,OAAA,8DAAA,0DAAA,SAAAuwI;ACzBA,AhKMA,MgKNAA,mBAAApiK,QACAy6F,SAAA,4BAKA5oE,OAAA,gEAAA,wDAAA,SAAA,4CAAA,SAAA4vI,iBAAA3oJ,EAAAijF,gBCLA,GAAAsmE,yBAAAZ,iBAAAzhK,QACAy6F,SAAA,0BACAzgC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,aACA6kE,UAAA,EACAC,kBAEAl1H,SAAAplC,KAAAk1J,wBAEA,IAAAl1J,KAAA6E,KAAA,gBAAA,aAAAugC,SAAAvgC,KAAA,gBAAA,YAAAugC,SAAAvgC,KAAA,gBAAA;AACA2wF,AjKPA,YiKOA6kE,UAAA,CACA,KAAA,GAAAh+J,GAAA,EAAAA,EAAA2D,KAAA6E,KAAA,cAAAxI,IACAm5F,YAAA8kE,cAAAz6J,KAAAxD,EAAA,IAIA,MAAA2D,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,YAIA,OAAAwmE,2BAKAxwI,OAAA,4DAAA,6DAAA,SAAA+vI,sBC7BA,GAAAY,qBAAAZ,qBAAA5hK,QACAy6F,SAAA,sBACAgoE,QAAA,WACA,MAAAx6J,MAAA40F,UAAAiP,YAAA,SAGA,OAAA02D,uBAGA3wI,OAAA,0DAAA,wDAAA,kCAAA,SAAA6wI,oBAAAnE;ACTA,AnKQA,GmKRAoE,sBAAAD,oBAAA1iK,QAEAs8F,WAAA,SAAA9nF,QACAvM,KAAAuM,OAAAA,QAAA,GAAA+pJ,YAEAzhE,UAAA,WACA,MAAA70F,MAAAuM,SAKA,OAAAmuJ,wBAIA9wI,OAAA,2DAAA,yDAAA,SAAA,4CAAA,SAAA8wI,qBAAA7pJ,EAAAijF,gBCfA,GAAA6mE,uBAAAD,qBAAA3iK,QACAg6D,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,aACAs+B,gBAAA9zH,KAAAuM,OAAAmoF,gBACAnoF,OAAAvM,KAAAuM,OAAAwlD,OAAA6hC;ApKEA,CoKCA,OAAA5zF,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,YAIA,OAAA+mE,yBAIA/wI,OAAA,oEAAA,2DAAA,SAAAgxI,oBClBA,GAAAC,6BAAAD,mBAAA7iK,QACAy6F,SAAA,+BAEA,OAAAqoE,+BAIAjxI,OAAA,mEAAA,0DAAA,kCAAA,SAAA,4CAAA,SAAAgxI,mBAAA5mE,QAAAnjF,EAAAijF;ACNA,AtKSA,GsKTAgnE,4BAAAF,mBAAA7iK,QACAy6F,SAAA,6BACApwF,KAAA,SAAA8rC,OAAAthC,YACA5M,KAAAkvF,OAAAhhD,OAAAthC,YACA5M,KAAA+7F,YAEAC,UAAA,SAAAjM,QACAiE,QAAAc,IAAA/E,OAAA,YACAA,OAAAmF,eAAAl1F,KAAAi1F,kBAAA,MACAj1F,KAAA+7F,QAAAhM,OAAAuE,aAAAvE,SAGAgrE,aAAA,SAAAhrE,QACA,GAAA7hD,QAAA,EAOA,OANA,gBAAA,QACAA,OAAA6hD,OACAiE,QAAAc,IAAA/E,OAAA,YACA7hD,OAAA6hD,OAAAuE,mBAEAt0F,MAAA+7F,QAAA7tD,QACAluC,MAEAg7J,WAAA,WACA,MAAAnqJ,GAAA9J,MAAA/G,KAAA+7F,UAEAk/D,UAAA,SAAA/sH,QACA,MAAAluC,MAAA+7F,QAAA7tD,SAEAsmD,qBAAA,WACA,GAAAD,MAAAv0F,KAAAkvF;AAEA,AtKrBA,IsKqBA,GAAAhhD,UAAAluC,MAAA+7F,QACAxH,KAAArmD,QAAAluC,KAAA+7F,QAAA7tD,QACAqmD,KAAA1jF,EAAA9Y,OAAAw8F,KAAAv0F,KAAA+7F,QAAA7tD,QAAAsmD,uBAEA,OAAAD,OAEAtvF,KAAA,SAAAipC,QACA,GAAA2kD,OAAA7yF,KAAAkvF,OAAAhhD,OAMA,OALA2kD,QACA7yF,KAAA+7F,QAAA7tD,UACA2kD,OAAA35E,OAAAlZ,KAAA0yF,QAAA1yF,KAAA+7F,QAAA7tD,UAGA2kD,OAEA9gC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,aACAuG,YAIAA,QAAA/7F,KAAAg7J,YACA,KAAA,GAAA9sH,UAAA6tD,SACA/H,QAAAc,IAAAiH,QAAA7tD,QAAA,WACAsnD,YAAAuG,QAAAl8F,KAAAk8F,QAAA7tD,QAAA6jB,UAAA,KAAA,GAAA6hC,UAIA,OAAA5zF,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC;AtKnDA,EsKqDAtuF,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,QACAhpD,KAAA61D,UACA,IAAAA,SAAA/7F,KAAAg7J,YACA,KAAA,GAAA9sH,UAAA6tD,SACA71D,IAAA61D,QAAA7tD,QAAA6tD,QAAA7tD,QAAA5oC,SAEA,OAAA4gC,OAIA,OAAA40H,8BAGAlxI,OAAA,gEAAA,2DAAA,SAAAgxI,oBC/EA,GAAAM,yBAAAN,mBAAA7iK,QACAy6F,SAAA,2BAEA,OAAA0oE,2BAIAtxI,OAAA,2DAAA,2DAAA,SAAAgxI,oBCPA,GAAAO,oBAAAP,mBAAA7iK;AACAy6F,AxKYA,SwKZA,sBAEA,OAAA2oE,sBAIAvxI,OAAA,2DAAA,4DAAA,mCAAA,SAAA+vI,qBAAA3lE,SCPA,GAAAonE,oBAAAzB,qBAAA5hK,QACAy6F,SAAA,qBACAqO,WAAA,WACA,MAAA7gG,MAAA40F,UAAAiP,YAAA,YAEAhH,UAAA,SAAA3uD,QACA,GAAAwkD,SAAA1yF,KAAA40F,UAAA4wC,WAAAt3F,OACA,OAAA8lD,SAAAc,IAAApC,QAAA,UAAAA,QAAA,OAGA,OAAA0oE,sBAKAxxI,OAAA,gEAAA,0DAAA,SAAAuwI;ACfA,A1KcA,G0KdAkB,yBAAAlB,kBAAApiK,QACAy6F,SAAA,2BAEA,OAAA6oE,2BAIAzxI,OAAA,yDCPA,wDACA,yDACA,SACA,2CACA,kCACA,SAAA4vI,iBAAA8B,uBAAAzqJ,EAAAijF,eAAAhC,MACA,YAEA,IAAAypE,kBAAA/B,iBAAAzhK,QACAy6F,SAAA,mBACApwF,KAAA,SAAA8rC,OAAAthC,YACA5M,KAAAkvF,OAAAhhD,OAAAthC,YACA5M,KAAA27F,iBAEAG,UAAA,SAAAD,OAAAD;AACAA,A3KAA,S2KAA3rF,SAAA2rF,UACA57F,KAAA27F,QAAAC,YACAC,OAAA3G,eAAAl1F,KAAAi1F,kBAAA,MACAj1F,KAAA27F,QAAAC,UAAAC,OAAAvH,aAAAuH,SAGAgF,WAAA,SAAAjF,UAEA,MADAA,UAAA3rF,SAAA2rF,UACA57F,KAAA27F,QAAAC,UACA/qF,EAAA9J,MAAA/G,KAAA27F,QAAAC,WAEA/qF,EAAA9J,MAAA/G,KAAA27F,UAGAkB,UAAA,SAAA3uD,QACA,MAAAluC,MAAA27F,QAAA,GAAAztD,SAAAluC,KAAA27F,QAAA,GAAAztD,SAAA,MAEAsmD,qBAAA,WAIA,IAAA,GAFAD,MAAAv0F,KAAAkvF,SAEA7yF,EAAA,EAAA,EAAAA,EAAAA,IAAA,CACA,GAAAu/F,UAAA57F,KAAA6gG,WAAAxkG,EACA,KAAA,GAAA6xC,UAAA0tD,UACAA,SAAA1tD,iBAAAotH,0BACA/mE,KAAArmD,QAAA0tD,SAAA1tD,QACAqmD,KAAA1jF,EAAA9Y,OAAAw8F,KAAAqH,SAAA1tD,QAAAsmD,yBAKA,MAAAD;A3K9BA,E2KgCAtvF,KAAA,SAAAipC,QACA,GAAA2kD,OAAA7yF,KAAAkvF,OAAAhhD,OAIA,OAHA2kD,SACAA,MAAAf,KAAAW,iBAAAzyF,MAAA,YAAA,aAAAkuC,SAEA2kD,OAEA9gC,OAAA,WAEA,GAEA4pC,SAFAt2D,KAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cAEAG,aACAgmE,aACAC,cAGArC,iBAAA59D,aAAAttD,OAAAluC,KAAAkuC,OAAAthC,WAAA5M,KAAA4M,YAEA,KAAAgnF,SACA,KAAA,yCAAA5zF,KAAAwyF,QAIAmJ,SADA37F,KAAA6E,KAAA,YAAA+uF,SAAA4L,UAAA,kBACA5L,SAAA8M,mBAAA1gG,MAEAA,KAAA6gG,YAGA,KAAA,GAAAxkG,GAAA,EAAA,EAAAA,EAAAA,IAAA,CACA,GAAAu/F,UAAAD,QAAAt/F,EACA,KAAA,GAAA6xC,UAAA0tD,UACAA,SAAA1tD,iBAAAotH,yBACA9lE,YAAA,YAAAn5F,EAAA,IAAAwD,KAAA+7F,SAAA1tD,QAAA6jB,OAAAlhD,EAAA9J,MAAAqyJ,iBAAA,GAAA,KAAA,0CAAAxlE;A3KhEA,C2KqEA,MAAA5zF,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,WAEAiC,WAAA,SAAAhgG,KAAAigG,aAAAlC,UAEA,MADAA,UAAAA,UAAA5zF,KAAAq1F,cACAxkF,EAAA7Q,KAAA6gG,cACA76F,IAAA,SAAA21F,SACA,MAAA9qF,GAAA8qF,SACAjlG,OAAA,SAAAmlG,QACA,MAAAA,kBAAAy/D,0BAEAt1J,IAAA,SAAA61F,QACA,MAAAA,QAAAhG,cAAA,0CAAAjC,YAEA/6F,UAEAg8B,SAAA,GACAh8B,QACA2F,OAAAwB,KAAAkvF,OAAAr5F,KAAAigG,aAAAlC,YAEAtuF,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,QACAhpD,KAAAy1D,SAAAjpE,KAAAgjB,KACA,KAAA,GAAAr5C,GAAA,EAAA,EAAAA,EAAAA,IAAA,CACA,GAAAu/F,UAAA57F,KAAA6gG,WAAAxkG,EACA,KAAA,GAAA6xC,UAAA0tD,UACAA,SAAA1tD,iBAAAotH,0BACAp1H,IAAAy1D,QAAAt/F,GAAA6xC,QAAA0tD,SAAA1tD,QAAA5oC;A3K9FA,C2KkGA,MAAA4gC,OAIA,OAAAq1H,oBAKA3xI,OAAA,yDC7HA,SACA,yDACA,4CACA,SAAA/Y,EAAA6qJ,kBAAA5nE,gBACA,GAAA6nE,kBAAAD,kBAAA3jK,QACAy6F,SAAA,mBACAzgC,OAAA,WAEA,GAAA1sB,MAAAyuD,eAAAL,wBAAA3tF,WACA8tF,SAAAvuD,KAAAuuD,UAAA5zF,KAAAq1F,cACAG,aACAomE,MAAA57J,KAAAuM,OAAAwlD,UAAA,KAAA,GAAA6hC,UAGA,OAAA5zF,MAAAkvF,OAAAr+E,EAAA/L,MAAA0wF,YAAAnwD,KAAAxvC,MAAAwvC,KAAAquD,YAAAruD,KAAAsuD,SAAAC,YAIA,OAAA+nE,oBAGA/xI,OAAA,yDAAA,yDAAA,SAAA4vI;ACrBA,A7KmBA,G6KnBAqC,kBAAArC,iBAAAzhK,QACAy6F,SAAA,oBAEA,OAAAqpE,oBAEAjyI,OAAA,+DAAA,2DAAA,SAAAgxI,oBCLA,GAAAkB,wBAAAlB,mBAAA7iK,QACAy6F,SAAA,0BAEA,OAAAspE,0BAIAlyI,OAAA,0DAAA,yDAAA,SAAA4vI,kBCPA,GAAAuC,mBAAAvC,iBAAAzhK,QACAy6F,SAAA,qBAEA,OAAAupE,qBAKAnyI,OAAA,6DAAA,0DAAA,SAAAuwI;ACRA,AhLoBA,GgLpBA6B,sBAAA7B,kBAAApiK,QACAy6F,SAAA,wBAEA,OAAAwpE,wBAEApyI,OAAA,0DAAA,yDAAA,SAAAuwI,mBCLA,GAAA8B,mBAAA9B,kBAAApiK,QACAy6F,SAAA,qBAEA,OAAAypE,qBCcAryI,OAAA,uDAAA,kCAAA,UAAA,SAAAoqE,QAAAnjF,GACA,YAEA,IAAAqrJ,oBAAAloE,QAAAj8F,QACAy6F,SAAA,sBACAtkD,OAAA,GACA+lD,YAAA,KACA7xF,KAAA,SAAA8rC,OAAAqsD,gBAAAC,aAAAE;AAEA16F,AlLLA,KkLKAkvF,OAAAhhD,WAEAluC,KAAAujD,UAAA,UACAvjD,KAAA26F,gBAAA,KACA36F,KAAAs6F,cAAA,EAEAt6F,KAAAu6F,gBAAAA,gBACAvG,QAAAc,IAAA0F,aAAA,YACAx6F,KAAAw6F,aAAAA,aAEAx6F,KAAAw6F,aAAA,KAEAxG,QAAAc,IAAA4F,aAAA,YACA16F,KAAA06F,aAAAF,aAEAx6F,KAAA06F,aAAA,MAIAL,aAAA,SAAAM,gBAAAp3C,UAAA+2C,eACA,GAAA6hE,mBACA,KAAAnoE,QAAAc,IAAA6F,gBAAA,uBAmDA,KAAA,qDAlDA,QAAAp3C,WACA,IAAA,UACA,IAAA,YACA,IAAAywC,QAAAc,IAAA6F,gBAAA,uBAIA,KAAA;AAHA36F,AlL9BA,KkL8BA26F,gBAAAA,gBACA36F,KAAAujD,UAAAA,SAIA,MACA,KAAA,KACA,IAAA,MACA,IAAA,QACA,IAAA,MACA,IAAA,KACA,GAAA,OAAA+2C,eAAAvwE,SAAAuwE,cAKA,KAAA,iCAJAt6F,MAAA26F,gBAAAA,gBACA36F,KAAAujD,UAAAA,UACAvjD,KAAAs6F,cAAAA,aAIA,MACA,KAAA,UACA,IAAAtG,QAAAc,IAAA6F,gBAAA,wBAAA,OAAAL,gBAAAzpF,EAAA3U,QAAAo+F,eAmBA,KAAA,iCAlBA,IAAAqB,SAAA9qF,EAAAimB,OAAA6jE,gBAAAi9D,iBAAA/2D,aACA7gG,MAAA26F,gBAAAA,gBACA36F,KAAAujD,UAAAA,UACA1yC,EAAAhc,KAAAylG,cAAA,SAAA52F,GACAA,YAAAswF,SACAmoE,gBAAAt8J,KAAA6D,GACAmN,EAAA+nB,SAAAl1B,IACAmN,EAAAhc,KAAA8mG,QAAA,SAAA3mG;AACA,AlL1DA,MkL0DAA,GAAA6P,KAAA,gBAAAnB,GACAy4J,gBAAAt8J,KAAA7K,IACA,GAFA,WAQAgL,KAAAs6F,cAAA6hE,eAIA,MACA,SACA,KAAA,4BAAA54G,UAMA,MAAAvjD,OAEAo8J,gBAAA,SAAA7jE,UACAvE,QAAAc,IAAAyD,SAAA,cACAv4F,KAAA06F,aAAAnC,WAGAjzF,QAAA,WACA,GAAAiJ,KAAAvO,KAAAs6F,cACA+hE,UAAA,SAAA34J,GACA,MAAA6K,eAAAylF,SACAzlF,IAAA1J,KAAA,cAEA0J,IAAA,GAQA,OAJAA,KADAsC,EAAA3U,QAAAqS,KACAsC,EAAA7K,IAAAuI,IAAA8tJ,WAEAA,UAAA9tJ,MAGAg1C,UAAAvjD,KAAAujD,UACAo3C,gBAAA36F,KAAA26F,gBAAA31F,KACAs1F,cAAA/rF,OAKA,OAAA2tJ,sBAEAtyI,OAAA,yDAAA,6CAAA,SAAAwqI;AC/HA,AnLmBA,GmLnBAkI,qBAAAlI,kBAAAr8J,QACAqK,KAAA,SAAA8rC,OAAAthC,YACA5M,KAAAkvF,OAAAhhD,OAAAthC,YACA5M,KAAAhH,aAAA,MAEA+Z,GAAA,SAAAy/E,UACA,MAAA,wBAAAA,UAAAxyF,KAAAkvF,OAAAsD,WAEAltF,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,QAEA,OADAhpD,KAAAltC,aAAAgH,KAAAhH,aACAktC,MAIA,OAAAo2H,uBAEA1yI,OAAA,wDAAA,yDAAA,SAAA0yI,qBCtBA,MAAAA,qBAAAvkK,QACAy6F,SAAA,yBCgBA5oE,OAAA,yDAAA,wDAAA,UAAA,SAAA0yI,oBAAAzrJ;AACA,ArLOA,YqLLA,IAAA0rJ,qBAAAD,oBAAAvkK,QACAy6F,SAAA,sBACApwF,KAAA,SAAA8rC,OAAAthC,YAEA5M,KAAAkvF,OAAAhhD,OAAAthC,YAGA5M,KAAAq5B,SAAA,GAGAr5B,KAAAm6F,qBACAn6F,KAAAi6F,cAGAj6F,KAAA+5F,gBAAA,KAGA/5F,KAAA84F,kBAEA0jE,iBAAA,WACA,MAAA3rJ,GAAAimB,OAAA92B,KAAA84F,gBAEAtE,qBAAA,WACA,GAAAD,MAAAv0F,KAAAkvF,QAEA,OADAqF,MAAA1jF,EAAA9Y,OAAAw8F,KAAAv0F,KAAA84F,gBAGAxzF,QAAA,WACA,GAAA4gC,KAAAlmC,KAAAkvF,QAQA,OAPAhpD,KAAA4zD,SAAA95F,KAAAq5B,SACA6M,IAAA8zD,iBAAAh6F,KAAA+5F,gBACA7zD,IAAA64B,QAAA/+D,KAAAi6F,WACA/zD,IAAAi0D,kBAAAn6F,KAAAm6F,kBACAj0D,IAAA4yD,cAAAjoF,EAAA7K,IAAAhG,KAAA84F,cAAA,SAAA2jE;AACA,ArL5BA,MqL4BAA,MAAAn3J,YAEA4gC,KAEA0xH,eAAA,WACA,GAAAp8D,aAAA,KACAy9D,WAAAj5J,KAAAgF,KACAslC,KAAAtqC,KAAAi1F,iBACAy/C,aAAApqG,KAAAi7D,iBAOA,OANA10F,GAAAhc,KAAA6/I,aAAA,SAAAr4I,GACA,MAAAA,GAAAuQ,WAAAy4F,qBAAA4zD,YACAz9D,YAAAn/F,GACA,GAFA,SAKAm/F,aAEAkhE,cAAA,SAAAC,eACA,GAAAC,WACA,IAAA/rJ,EAAA3U,QAAAygK,eACAC,WAAAD,kBACA,CAAA,IAAA9rJ,EAAA+nB,SAAA+jI,eAGA,OAAA,CAFAA,gBAAAA,eAIA,MAAA9rJ,GAAA7N,QAAA45J,WAAA58J,KAAA6E,KAAA,iBAAA,IAIA,OAAA03J,uBCpFA3yI,OAAA,kDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C;AAKA,AtLqBA,QsLrBAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAMA,OALAA,SAAA,2BACAiC,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,SAIA,QAAAi0G,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAIA,QAHAiC,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,OArBA5oD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB;AAAA9+C,AtLyBA,KsLzBAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA+6C,aAAA,WAAApnB,KAAAziC,KAAAwlD,cAAA7Q,QAAA6Q,aAuBA,OADAqF,QAAAlW,QAAAmoH,OAAAjvG,QAAAA,OAAAivG,MAAAhuJ,SAAAsmC,QAAAJ,QAAAvS,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAwN,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,MAAAi4D,OAAAjD,OAAAA,OAAAr0D,KAAAq3D,OAAAA,QAAAA,OAAAsmG,aAAA,cAAArlJ,SAAA02C,cAAAhvD,KAAAq3D,OAAA,QAAAA,QAAAA,OAAAsmG,aAAA,cAAArlJ,SACAg/C,QAAA,IAAAA,OAAAA,OACA,OCXAlkC,OAAA,oDAAA,kDAAA,SAAAokC,KACA,YAEA,QACAwkC,SAAA,aACAn5D,SAAA20B,OCHApkC,OAAA,mBAAA,UAAA,SAAA9mB;AxLUA,AwLRA,GAAAi6J,KAAA,OAUAj6J,GAAAO,GAAA25J,aAAA,SAAAC,mBAQA,QAAAC,WAAAjtG,YACAA,WAAA3pD,QAAA,aAAAy2J,KACA,kBAAAE,oBACAA,kBAAAzmK,KAAAy5D,WAAA,IAIA,MAAAjwD,MAAAnL,KAAA,WAEA,GAAAo7D,YAAAntD,EAAA9C,MACAm9J,KAAAltG,WAAAhrD,KAAA,OACAumC,MAAA2xH,KAAAnmK,OACAu8D,OAAA,EAIA6pG,YAAA,WACAt6J,EAAA9C,MACAsG,QAAA,SAAAy2J,KACAx2J,IAAA,OAAAw2J,KACAx2J,IAAA,QAAAw2J,KAEAxpG,SACAA,SAAA/nB,OACA0xH,UAAAjtG,YAIA,OAAA,KAAAzkB,UACA0xH,WAAAjtG,gBAIAktG,MAAAtoK,KAAA,WACAmL,KAAAS,SAEA28J,YAAA5mK,KAAAwJ,MAGA8C,EAAA9C,MAAA8V,GAAA,OAAAinJ,IAAA,SAAAA,IAAAK,oBC9EAxzI,OAAA,4CAAA,cAAA,SAAAmuB;AACA,AzL6BA,MyL7BAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,UACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,WACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,AzLGA,OyLHA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAryD,aAAAqyD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,KAIA,QAAAwvG,UAAAzvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,UACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyD,YAAAsyD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,KApCA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IA2DA,OArBA4oD,SAAA,4BACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA;AzLXA,IyLYAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,2CACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAApvC,UAAAovC,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,gBACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA86D,UAAA96D,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,WACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B;AAAAtE,AzLlBA,GyLkBAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,SACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,SACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAryD,SAAA25C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,SACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyD;AAAA45C,AzL1BA,QyL0BAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAkmH,SAAAznK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,eC9CAh/B,OAAA,kDACA,SACA,SACA,mCACA,SAAA/Y,EAAA/N,EAAAkxF,SACA,YAGA,IAAAupE,gBACAC,mBAAA16J,IAQA26J,aAAA,SAAA/qE,SAEA,GAAAxkD,QAAAwkD,QAAA4B,YACApvF,SAAA,gBAAAgpC,OAAA,GAQA,OANA8lD,SAAAc,IAAApC,QAAA,UACAxtF,SAAA,cAAAA,SACA8uF,QAAAc,IAAApC,QAAA,iBACAxtF,SAAA,mBAAAA,UAGAA,UAOAw4J,iBAMA7tH,WAAA,SAAAmmD,QACAwnE,mBAAAxnE,QASAzwF,IAAA,SAAAmtF,QAAAsD;AAEA,A1LlCA,G0LkCA9nD,QAAAwkD,QAAA4B,WACA,OAAA0B,kBAAAlzF,IAAAkzF,OAAAh/F,OAGAg/F,OAAA/wF,KAAAw4J,aAAA/qE,UAEA8qE,6BAAA16J,IAAA06J,mBAAAxmK,OAGAwmK,mBAAAv4J,KAAAw4J,aAAA/qE,WAEA6qE,YAAArvH,SAAAqvH,YAAArvH,QAAAl3C,SAGAumK,YAAArvH,QAAAprC,EAAA26J,aAAA/qE,WAGA6qE,YAAArvH,UAOAt0B,MAAA,SAAA84E,SACAA,kBAAAsB,UAAAupE,YAAA7qE,QAAA4B,eACAipE,YAAA1sJ,EAAAglB,KAAA0nI,YAAA7qE,QAAA4B,eAOAx/B,MAAA,WACAyoG,eACAC,mBAAA16J,KASAwD,QAAA,SAAAizI,UAAA7mD,QAAA78F,MACA0jJ,YACA1jJ,OAAAgb,EAAA3U,QAAArG,QACAA,MAAAA,OAEAmK,KAAAuF,IAAAmtF,SAAApsF,QAAAizI,UAAA1jJ,QAUA8nK,2BAAA,SAAAniE,YAAAoiE;AACA59J,A1L7FA,K0L6FAsG,QAAA,iBAAAk1F,cACAA,YAAAA,YACAp2D,SAAAo2D,YAAAyE,eAEA29D,aAQAC,YAAA,SAAA5tG,YAEAA,WAAAn6C,GAAA,QAAA,IAAA,SAAA1gB,GACAA,EAAAqd,gBACA,IAAAvC,MAAApN,EAAA9C,MAAA6E,KAAA,OACAqL,OAAAA,KAAA8G,MAAA,WACAxQ,OAAAigB,KAAAvW,KAAA,aAMA,OAAAwtJ,mBCzIA9zI,OAAA,8CACA,eACA,kBACA,2CACA,kDACA,SAAA8Y,QAAAs6H,aAAAhvG,IAAA0vG,iBACA,YAEA,QACAlrE,SAAA,MACAn5D,SAAA20B,IACAoR,aAAAs+F,gBAAAn4J,IACAwsD,OAAA,SAAA09B,IAAA55F,MACA,MAAA,IAAA6sC,SAAA,SAAAt5B,QAAAC;AACAq0J,A3LOA,gB2LPAn4J,IAAAkqF,KAAAutE,aAAA5zJ,eC9BAwgB,OAAA,gDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAhB,aAAA,UAKA,QAFAgB,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,OCMAlkC,OAAA,kDAAA,gDAAA,SAAAokC;AACA,A7LqBA,Y6LnBA,QACAwkC,SAAA,UACAn5D,SAAA20B,OCrBApkC,OAAA,6CAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,QACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC;A9LoBA,C8LrCA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IAoCA,OAjBA4oD,SAAA,yDACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,sBACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA;AACAA,A9LUA,O8LVAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,wBACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,MACAiC,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D;A9LIA,C8LHAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,4DCnBAh/B,OAAA,8DACA,SACA,UACA,SAAA9mB,EAAA+N,GACA,YAGA,IAAAitJ,cAAAjtJ,EAAA4lB,SAAA,WACA3zB,EAAAjH,UAAAyK,QAAA,gCACA,IAAAwpB,SAAA,IAQAiuI,OAAA,SAAArlE,aACA,GAAAslE,OAAAl7J,EAAA,OAGAk7J,OAAAhnK,SACAgnK,MAAAl7J,EAAA,SAIA+N,EAAA6nF,aAAA5jE,QAAA,SAAAy6D,YACA,GAAA0uE,KACA7/D,MACAluF,IAGAq/E,YAAA1qF,KAAA,UACAu5F,MAAAt7F,EAAAysF,WAAAx9B,UAEA7hD,KAAAkuF,MAAAv5F,KAAA,QAGA,UAAAnP,KAAAwa,QACA+tJ,IAAA/tJ,KAAAlN,QAAA,KAAA,GAAA,IAAA,IACA,IAAAkN,KAAAlN,QAAA,OACAkN,KAAAA,KAAAxW,MAAA,IAGAwW,MAAA+tJ,KAAA,GAAA/1J,OAAAC,UAAAjF;AAIAk7F,A/L1BA,M+L0BArwF,WAAA,QACA5S,SAAA6iK,OACAn5J,KAAA,OAAAqL,MAGAW,EAAA5D,MAAA6wJ,aAAA,QAUAr/I,OAAA,SAAAi6E,aACA7nF,EAAA6nF,aAAA5jE,QAAA,SAAAy6D,YACAA,WAAArhD,QACAprC,EAAA,qBAAAysF,WAAArhD,OAAA,MAAA7yC,WAUA,QACA0iK,OAAAA,OACAt/I,OAAAA,UC9EAmL,OAAA,+CACA,4CACA,iDACA,8DACA,SAAAokC,IAAA0vG,gBAAAQ,uBACA,YAEA,QACA1rE,SAAA,iBACAn5D,SAAA20B,IACAoR,aAAAs+F,gBAAAn4J,IAMAwsD,OAAA,SAAAznB,MAEAozH,gBAAAG,YAAAH,gBAAAn4J,IAAA+kC;AAGA4zH,AhMEA,sBgMFAH,OAAAzzH,KAAAouD,cAOAhqD,QAAA,SAAApE,MAGAozH,gBAAA5oG,QAGAxqB,KAAAouD,aACAwlE,sBAAAz/I,OAAA6rB,KAAAouD,iBCvDA9uE,OAAA,6CAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAUA,OATAA,SAAA,yBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA;AjM+BA,CiM9BAjD,OAAAlW,QAAA+Y,KAAAI,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAH,IAAAI,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,qBAIA,QAAAi0G,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAUA,OATAA,SAAA,yBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,wCACAjD,OAAAlW,QAAA+Y,KAAAI,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA;AjMgBA,IiMfAg1D,OAAAgD,QAAAA,OAAAH,IAAAI,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,wBA9BA5oD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjE,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IAiCA,OADA8tD,QAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA5H,OAAA7Q,QAAAJ,QAAAvS,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAwN,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,OACAi4D,QAAA,IAAAA,OAAAA,OACA,OCdAlkC,OAAA,+CACA,SACA,eACA,4CACA,iDACA,WACA,SAAA/Y,EAAA6xB,QAAAsrB,IAAA0vG,gBAAAS;AACA,AlMeA,YkMbA,QACA3rE,SAAA,OACAn5D,SAAA20B,IACAoR,aAAAs+F,gBAAAn4J,IACAwsD,OAAA,SAAAy9B,KAAA35F,MACA,MAAA,IAAA6sC,SAAA,SAAAt5B,QAAAC,QACA,mBAAA,UAAA80J,SAEA33J,OAAA23J,UACA33J,OAAA23J,QAAAA,SAGAttJ,EAAA8jB,MAAA,WACAwpI,QAAAC,IAAAC,OAAA,UAAAF,QAAAC,IAAAV,gBAAAn4J,IAAAiqF,MAAAt2E,SAAA,KAGAilJ,QAAAC,IAAAC,MAAAj1J,YAIAA,gBCrDAwgB,OAAA,sDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAGA,MAAA,SAGA,QAAAgnK,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,qCACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,AnM+BA,OmM/BA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAuwD,YAAAvwD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,QAfA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IA0CA,OAzBA4oD,SAAA,aACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,mBACAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f;AAAA4f,AnMqBA,amMrBAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,sBACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,YACAA,OAAAnZ,QAAAgR,OAAAnvD,KAAAq3D,OAAAA,QAAAA,OAAA7B,QAAA5W,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,sBACAiC,OAAAlW,QAAA2pH,eAAAxwG,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAywG,cAAAxwG,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D;AAAAzY,AnMaA,QmMbAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,WACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAuwD,QAAAjpE,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,kCACAiC,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,qBC7BAh/B,OAAA,uCAAA,SAAA,UAAA,SAAA/Y,EAAA/N,GACA;AAeA,ApMkBA,QoMlBAy7J,qBAAA7rE,SACA,GAAA7hF,EAAAva,WAAAo8F,QAAA0B,gBAAAvjF,EAAAva,WAAAo8F,QAAAt3F,MACA,OAAA,CAEA,MAAA,yCAWA,QAAAojK,aAAA9rE,SACA,MAAA6rE,qBAAA7rE,SACA5vF,EAAA,SAAA0b,KAAAk0E,QAAAt3F,QAAA6J,KAAA,kBADA,OAaA,QAAAw5J,kBAAA/rE,QAAAgsE,SAAAC,UAEA,GAAAJ,oBAAA7rE,WAAAisE,UAAAD,UAAA,CACA,GAAAE,UAAA97J,EAAA,SAAA0b,KAAAk0E,QAAAt3F,OAEAyjK,cAAAD,SAAAF,SAAAC,UAEAjsE,QAAAt3F,KAAAwjK,SAAApgJ,SAYA,QAAAqgJ,cAAAD,SAAAF,SAAAC,UACA,GAAAG,UAAAF,SAAA35J,KAAA,iBACA65J,UAAA9nK,SAEA4nK,SAAA7gJ,UAAA;AACA+gJ,ApMlCA,SoMkCAF,SAAA35J,KAAA,mBAEA05J,UACAG,SAAA1wJ,YAAAuwJ,UAEAD,UACAI,SAAA3wJ,SAAAuwJ,UAaA,QAAAK,qBAAAH,SAAA7hH,SAAA+tG,SAAAkU,UACAH,aAAAD,SAAAK,sBAAAliH,SAAA+tG,UAAAmU,sBAAAliH,SAAAiiH,WAUA,QAAAC,uBAAAliH,SAAAlkD,OACA,MAAAkkD,WAAAlkD,MACAqmK,QAAAniH,SAAA,IAAAlkD,MAEA,GAWA,QAAAsmK,gBAAAzsE,QAAA31C,SAAA+tG,UACA,GAAAkU,UAAAI,eAAA1sE,QAAA31C,SACA,OAAA0hH,kBAAA/rE,QAAAusE,sBAAAliH,SAAA+tG,UAAAmU,sBAAAliH,SAAAiiH,WAUA,QAAAK,mBAAA3sE,QAAA31C,UACA,GAAAiiH,UAAAI,eAAA1sE,QAAA31C;AACAA,ApM5FA,UoM4FAiiH,UACAP,iBAAA/rE,QAAA,GAAAusE,sBAAAliH,SAAAiiH,WAYA,QAAAM,gBAAA5sE,QAAA31C,SAAAlkD,OACA,GAAA0mK,OAAAf,YAAA9rE,QACA,OAAA6sE,QAAAA,MAAAvoK,QAAA+lD,UAAAlkD,MACA0mK,MAAAjxJ,SAAA2wJ,sBAAAliH,SAAAlkD,SAEA,EAUA,QAAAumK,gBAAA1sE,QAAA31C,UACA,GAAAo5C,OAAAnjF,QACAusJ,MAAAf,YAAA9rE,QACA,OAAA31C,WAAAwiH,OAAAA,MAAAvoK,QAAAuoK,MAAA16J,KAAA,WACAsxF,MAAA,GAAAzkF,QAAAwtJ,QAAAniH,SAAA,sBACA/pC,QAAAusJ,MAAA16J,KAAA,SAAAmS,MAAAm/E,QAEAnjF,QAAA,GAJA,OAxJA,GAAAksJ,SAAA,QAoKA,QACAC,eAAAA,eACAG,eAAAA,eACAF,eAAAA,eACAC,kBAAAA;AACAN,ApM3IA,oBoM2IAA,uBC/KAn1I,OAAA,wDACA,SACA,qDACA,iDACA,sCACA,kBACA,YACA,SAAA/Y,EAAAm9C,IAAA0vG,gBAAA8B,qBACA,YAEA,IAAAC,wBACAjtE,SAAA,gBACAn5D,SAAA20B,IACAoR,aAAAs+F,gBAAAn4J,IACA2lG,UAAA,IACA1vG,MAAA,IACAsW,QAAA,SAAAo+C,GAAAr6D,MACA,GAAAyoK,eAAAkB,oBAAAJ,eAAAlvG,GAAA,gBAEA,OADAr6D,MAAAyoK,cAAAA,cACAzoK,MAEAk8D,OAAA,SAAA4/B,cAAA97F,MAEAA,KAAAA,QAEA,IAAAqmI,QAAAwhC,gBAAAn4J,IAAAosF;AAEAuqC,ArMUA,OqMVA8gC,aAAA,WAGA9gC,OAAApmH,GAAA,eAAA,WAGA,GAAA4pJ,WAAAhC,gBAAAn4J,IAAAosF,cAAAsD,kBAAA75E,SAAA,iBACAukJ,eAAAzjC,OAAAnqF,cAAA9hC,SAAAisH,OAAAriI,IAAA,OACA8lK,gBAAAD,UAAAjkK,UACAikK,UAAAjkK,OAAAkkK,kBAGA7pJ,GAAA,eAAA,WACAjF,EAAAva,WAAAT,KAAAgoC,WACAhoC,KAAAgoC,SAAArnC,KAAAwJ,QAEAo+G,OACAyd,aAAA,EACA3wB,UAAAu0D,sBAAAv0D,UACA1vG,MAAAikK,sBAAAjkK,WAOA,OAAAikK,yBCtEA71I,OAAA,+CAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA;AACA7B,AtMoDA,QsMpDA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,gBAQA,OALAiV,SAAA,mDACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,oBCXAlkC,OAAA,2BAAA,WAAA,OACA6sI,OACApnG,SAAA,QACAuwG,OAAA,kBAAA,WACAC,YAAA,MAAA,MAAA,MAAA,OAAA,QAEAnJ,OACArnG,SAAA,QACAuwG,OAAA,WACAC,YAAA,MAAA,MAAA;AvM+CA,EuM7CAlmJ,OACA01C,SAAA,QACAuwG,OAAA,UAAA,sBACAC,YAAA,MAAA,MAAA,OAAA,MAAA,MAAA,OAAA,QAEAC,OACAzwG,SAAA,QACAuwG,OAAA,iCACAC,YAAA,MAAA,QAEAE,UACA1wG,SAAA,QACAuwG,OAAA,gCAAA,iCACAC,YAAA,MAAA,QAEAG,KACA3wG,SAAA,UACAuwG,OAAA,uBACAC,YAAA,QAEAh8I,KACAwrC,SAAA,UACAuwG,OAAA,kBAAA,sBAAA,YACAC,YAAA,MAAA,MAAA,QAEArhJ,MACA6wC,SAAA,UACAuwG,OAAA,YAAA,aAAA,wBAAA,uBACAC,YAAA,OAAA,MAAA,QAAA;AvMkBA,EuMhBAI,MACA5wG,SAAA,UACAuwG,OAAA,yBACAC,YAAA,OAAA,MAAA,QAEAK,IACA7wG,SAAA,UACAuwG,OAAA,yBAAA,mBAAA,mBACAC,YAAA,KAAA,SAEAhmK,KACAw1D,SAAA,UACAuwG,OAAA,YACAC,YAAA,MAAA,OAAA,OAAA,SAEAM,OACA9wG,SAAA,UACAuwG,OAAA,oBACAC,YAAA,OAEAO,QACA/wG,SAAA,UACAuwG,OAAA,0BACAC,YAAA,WAEAQ,KACAhxG,SAAA,WACAuwG,OAAA,mBACAC,YAAA,QAEAS,QACAjxG,SAAA,WACAuwG,OAAA,0CAAA,iDAAA,kDAAA,0EAAA,oEAAA,4EAAA,gCAAA,2BAAA;AACAC,AvMhBA,YuMgBA,MAAA,MAAA,OAAA,MAAA,OAAA,MAAA,MAAA,OAAA,QAEA5mK,MACAo2D,UAAA,YACAuwG,OAAA,UACAC,YAAA,MAAA,QAEAU,SACAlxG,SAAA,UACAuwG,OAAA,kBAAA,mBAAA,kBAAA,8BAAA,qBAAA,uBACAC,YAAA,MAAA,KAAA,KAAA,MAAA,MAAA,MAAA,UClFAj2I,OAAA,iBAAA,SAAA,SAAA,4BAAA,SAAA9mB,EAAA+N,EAAA2vJ,WACA,YAMA,QAYAC,gBAAA,SAAA7hJ,IAAAif,UAmBA,MAlBA/6B,GAAA6b,MACAjmB,KAAA,OACA8O,OAAA,EACAoX,IAAAA,IACAyE,QAAA,SAAA6X,QAAAjiC,KAAAo4C,OACA,GAAAqvH,MAAArvH,MAAA/zC,kBAAA,eACAugC,WACAA,SAAA,KAAA6iI;AxM8BA,EwM1BA7iK,MAAA,SAAAwzC,OACA,GAAAxzC,OAAAwzC,MAAA5sB,QAAA,GACAoZ,WACAA,SAAAhgC,UAIAmC,MAUA2gK,YAAA,SAAAlnJ,MACA,GAAA/gB,MAEAkoK,SAAAC,IADAH,KAAAjnJ,KAAAinJ,IAuBA,OApBAA,QAEAhoK,KAAAmY,EAAAgnB,QAAA2oI,WAAAZ,OAAAc,QAGAhoK,OACAA,KAAAmY,EAAAgnB,QAAA2oI,WAAAZ,OAAAc,KAAArrK,QAAA,QAAA,WAKAqD,OACAkoK,SAAAnnJ,KAAA5M,KAAAmK,MAAA,6BACA4pJ,UAAAA,SAAA5pK,OAAA,IACA6pK,IAAAD,SAAA,GAEAloK,KAAAmY,EAAAgnB,QAAA2oI,WAAAX,YAAAgB,SAIAnoK,MAQAooK,YAAA,SAAApoK,MACA,MAAA8nK,WAAA9nK,MACA8nK,UAAA9nK,MAAA22D,SADA,WCtDAzlC,OAAA,aAAA,UAAA,SAAA/Y,GAUA,QAAAkwJ,WAAAniJ,KACA5e,KAAA4e,IAAAA,GAIA,IAAAoiJ,gBAAAnlK,SAAA9E,cAAA,IACAiqK,gBAAA9wJ,KAAA0O;AzMcA,AyMbA5e,KAAAnK,KAAAgb,EAAA8f,KAAAqwI,eAAAC,UACAjhK,KAAAw5C,OAAAunH,UAAAG,cAAAlhK,KAAAnK,KAAAumH,QAhBA,GAAA6kD,WAAA,OAAA,OAAA,WAAA,WAAA,OAAA,WAAA,SA8JA,OArIAF,WAAAG,cAAA,SAAA9kD,QACA,GAAA5iE,UAIA,OAHA4iE,QAAA/mH,QAAA,MAAA,IAAAA,QAAA,oBAAA,SAAA0L,EAAAsqC,IAAAxyC,OACA2gD,OAAA2nH,mBAAA91H,MAAA81H,mBAAAtoK,SAEA2gD,QASAunH,UAAA5+J,UAAAoD,IAAA,SAAAg8F,MACA,MAAA1wF,GAAA/W,SAAAmnK,SAAA1/D,MAAAvhG,KAAAnK,KAAA0rG,OAAA,GAQAw/D,UAAA5+J,UAAAs9D,UAAA,SAAA28C,QACA,MAAAp8G,MAAAw5C,QAQAunH,UAAA5+J,UAAAi/J,UAAA,SAAA5nH,QACA3oC,EAAA6nB,SAAA8gB,UACAx5C,KAAAw5C,OAAAA,SAUAunH,UAAA5+J,UAAAk/J,SAAA,SAAAh2H,IAAAxyC;AzMxCA,AyMyCAwyC,MACArrC,KAAAw5C,OAAAnO,KAAAxyC,QAUAkoK,UAAA5+J,UAAAm/J,SAAA,WACA,MAAAthK,MAAAnK,KAAA6oG,SAAArpG,QAAA,WAAA,IAAAP,MAAA,MAQAisK,UAAA5+J,UAAAo/J,OAAA,SAAAC,SACA,GAAA5iJ,KAAA,EA4BA,OA3BA4iJ,SAAAA,YACAxhK,KAAAnK,OACAmK,KAAAnK,KAAA4rK,WAAA5wJ,EAAA/W,SAAA0nK,QAAA,UACA5iJ,MAAA5e,KAAAnK,KAAA2oG,SAAAx+F,KAAAnK,KAAA2oG,SAAA,SAAA,KAAAx+F,KAAAnK,KAAA4rK,SAAApsK,QAAA,MAAA,IAGA2K,KAAAnK,KAAA6rK,MAAA,KAAA1hK,KAAAnK,KAAA6rK,MAAA,OAAA1hK,KAAAnK,KAAA6rK,MAAA,MAAA1hK,KAAAnK,KAAA6rK,OACA9iJ,KAAA,IAAA5e,KAAAnK,KAAA6rK,OAGA,MAAAhsK,KAAAkpB,MAAA,MAAAlpB,KAAAsK,KAAAnK,KAAA6oG,YACA9/E,KAAA,KAEAA,KAAA5e,KAAAnK,KAAA6oG,SAEA1+F,KAAAw5C,SAAA3oC,EAAA/W,SAAA0nK,QAAA,YACA5iJ,KAAA,IACA/N,EAAAikB,QAAA90B,KAAAw5C,OAAA,SAAA3gD,MAAAwyC,KACAzsB,KAAAuD,mBAAAkpB,KAAA,IAAAlpB,mBAAAtpB,OAAA;AzMhFA,GyMkFA+lB,IAAAA,IAAA9R,UAAA,EAAA8R,IAAA5nB,OAAA,IAGAgJ,KAAAnK,KAAAu/C,OAAAvkC,EAAA/W,SAAA0nK,QAAA,UACA5iJ,KAAA5e,KAAAnK,KAAAu/C,OAGAx2B,KAOAmiJ,UAAA5+J,UAAAw/J,WAAA,WAEA,GAAAtgE,SAAArhG,KAAAuhK,QAAA,SAAA,SACAlW,MAAArrJ,KAAAshK,WACAM,SAAAvW,MAAAA,MAAAr0J,OAAA,EAOA,OAJAq0J,OAAAr0J,OAAA,GAAA,YAAAtB,KAAAksK,YACAvgE,QAAAA,QAAAhsG,QAAAusK,SAAA,IAAAvsK,QAAA,QAAA,MAGAgsG,SASA0/D,UAAA5+J,UAAA0/J,UAAA,SAAAC,WAEA,GADAA,UAAAA,WAAA,GAAAf,WAAAv6J,OAAA7D,UACAm/J,oBAAAf,WACA,MAAA/gK,MAAAuF,IAAA,cAAAu8J,UAAAv8J,IAAA,aACAvF,KAAAuF,IAAA,cAAAu8J,UAAAv8J,IAAA,aACAvF,KAAAuF,IAAA,UAAAu8J,UAAAv8J,IAAA,OAEA,MAAA,IAAAqB,OAAA;AzM1HA,EyM+HAm6J,YC9LAn3I,OAAA,iCAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAKA,OAJAA,SAAA,aACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAA96C,GAAA,MAAA+6C,QAAAA,UAAA,EAAAA,OAAAA,OAAAi0G,UAAA3sH,QAAAJ,QAAAvS,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAwN,GAAAo/B,KAAA2U,QAAA,EAAA+iF,SAAAtkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,SAGA,QAAAuxE,UAAAtsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAKA,OAJAA,SAAA,iBACAkF,OAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAAm0G,SAAA5sH,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK;A1M6CA,A0M7CAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,aAGA,QAAAi0G,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAUA,OATAA,SAAA,+DACAiC,OAAAlW,QAAAj2B,KAAAovC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAnvC,IAAAovC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,qBACAjD,OAAAlW,QAAA3vC,IAAA8oD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA7oD,GAAA8oD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA;A1M8BA,C0M1BA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAiBA,OAhBAA,SAAA,iDACAiC,OAAAlW,QAAAstH,QAAAn0G,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAo0G,OAAAn0G,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,cACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAA96C,GAAA,MAAA+6C,QAAAA,UAAA,EAAAA,OAAAA,OAAAvnC,OAAA6uB,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA8uF,SAAArwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,kBACAkF,OAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAAm0G,SAAA5sH;A1MgBA,A0MhBAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6uF,SAAApwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,iDAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,iDAAA/+C,WACA,iBACAg/C,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA06B,MAAAnzC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAgvF,UAAAvwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,+BAGA,QAAAs9E,UAAAr4E,OAAAh4D,MAGA,MAAA,cAGA,QAAAowI,UAAAp4E,OAAAh4D;A1MCA,A0MCA,GAAAi4D,QAAAjD,OAAAjC,OAAA,EAUA,OATAA,SAAA,+BACAiC,OAAAlW,QAAAj2B,KAAAovC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAnvC,IAAAovC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,YACAjD,OAAAlW,QAAAj8C,MAAAo1D,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAn1D,KAAAo1D,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,mBAIA,QAAAs4E,WAAAv4E,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAQA,OAPAA,SAAA,2BACAiC,OAAAlW,QAAA4zC,MAAAz6B,OAAAjD,OAAAr0D,KAAAq3D;A1MjBA,A0MiBAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA06B,KAAAz6B,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,KACAna,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,8CAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,8CAAA/+C,WACA,qBAIA,QAAAozJ,WAAAr0G,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAaA,OAZAA,SAAA,iDACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAA96C,GAAA,MAAA+6C,QAAAA,UAAA,EAAAA,OAAAA,OAAAvnC;A1M7BA,A0M6BA6uB,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA8uF,SAAArwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,kBACAkF,OAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAAm0G,SAAA5sH,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6uF,SAAApwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,iDAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,iDAAA/+C,WACA,iBACAg/C,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA06B,MAAAnzC,QAAAJ,QAAAvS,KAAA96B;A1MpCA,A0MoCAtE,GAAAo/B,KAAA2U,QAAA,GAAAkvF,UAAAzwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,2BAGA,QAAA09E,WAAAz4E,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAQA,OAPAA,SAAA,2BACAiC,OAAAlW,QAAA4zC,MAAAz6B,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA06B,KAAAz6B,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,KACAna,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,gDAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,gDAAA/+C,WACA;A1MjDA,C0MrEA9O,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,KAAAwlD,cAAA7Q,QAAA6Q,aAkJA,OA1BAoD,SAAA,4BACAiC,OAAAlW,QAAAj8C,MAAAo1D,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAn1D,KAAAo1D,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,qCACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAA96C,GAAA,MAAA+6C,QAAAA,UAAA,EAAAA,OAAAA,OAAA2oG,QAAArhH,QAAAJ,QAAAvS,KAAA2U,QAAA,GAAA8qH,UAAArsK;A1MzDA,A0MyDAwN,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,+HACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,OAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,OAAA/+C,WACA,+GACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,QAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,QAAA/+C,WACA,2NACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;A1M/DA,A0M+DA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,OAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,OAAA/+C,WACA,kHACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,QAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,QAAA/+C,WACA,kQACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;A1MlEA,A0MkEA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,4BAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,4BAAA/+C,WACA,0FACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,iBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,iBAAA/+C,WACA,gOACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;A1MrEA,A0MqEA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,OAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,OAAA/+C,WACA,oHACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,gBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,gBAAA/+C,WACA,qJACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,+BAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,+BAAA/+C,WACA;A1MzEA,K2M5EA8a,OAAA,mCAAA,cCcAA,OAAA,cAAA,UAAA,SAAA9mB,GAEA,YAuEA,SAAAq/J,YAAAjnI,SACA,KAAA,IAAAknI,YAAA,eAAAlnI,SAIA,QAAAmnI,iBAAA1tK,EAAAH,EAAAC,IACAE,EAAAH,IAAAG,EAAAF,KAAAE,EAAAH,KAAAG,EAAAF,IACA0tK,WAAA,WAAA3tK,EAAA,kBAAAC,EAAA,OAQA,QAAAuyC,OAAAxyC,GACA,MAAA+F,MAAAC,IAAAD,KAAA+3B,IAAA99B,EAAA,KAAA,GAIA,QAAA+mB,SAAA1iB,MAAA6yE,IACA,MAAAnxE,MAAA6vE,MAAAvxE,MAAA6yE,IAAAA,GAIA,QAAA42F,eAAAz7F,GAAAiG,IACA,MAAA,MAAAA,GAAAjG,IAMA,QAAA07F,WAAA/tK,EAAAC,GACA,aAAAD,UAAAC,GAIA,QAAA+tK,YAAAhuK,GACA,MAAAA,aAAAsO,IAAAA,EAAA,OAAAA,EAAA,MAAA,IAAAtO,GAIA,QAAAiS,WAAAjS,GACA,MAAA,gBAAAA,KAAAkS,MAAAlS,IAAAmS,SAAAnS,GAIA,QAAAiuK,SAAAjuK;A5MzDA,A4M0DA,MAAAsO,GAAA5G,QAAA1H,GAAAA,GAAAA,GAOA,QAAAkuK,aAAAhwE,QAAAtoF,UAAArL,UACA2zF,QAAAvkF,SAAA/D,WACAjM,WAAA,WACAu0F,QAAAtkF,YAAAhE,YACArL,UAmBA,QAAA4jK,gBAAAvsI,MAAAv9B,OACA,MAAA,KAAAA,OAAAu9B,MAAA,GAAAA,MAAA,IAIA,QAAAwsI,cAAAxsI,MAAAv9B,OACA,MAAA8pK,gBAAAvsI,MAAAA,MAAA,GAAA,EACAv9B,MAAA0B,KAAA6uC,IAAAhT,MAAA,IACAv9B,MAAAu9B,MAAA,IAIA,QAAAysI,cAAAzsI,MAAAv9B,OACA,MAAAA,QAAAu9B,MAAA,GAAAA,MAAA,IAAA,IAAAA,MAAA,GAIA,QAAA0sI,YAAAh0J,QAAAjW,OAEA,GAAAA,OAAAiW,QAAAi0J,KAAArpK,MAAA,IAAA,GACA,MAAA,IAIA,KADA,GAAA+tE,IAAA8F,GAAA1G,GAAAiG,GAAArwE,EAAA,EACA5D,OAAAiW,QAAAi0J,KAAAtmK,IACAA,GAQA,OALAgrE,IAAA34D,QAAAi0J,KAAAtmK,EAAA,GACA8wE,GAAAz+D,QAAAi0J,KAAAtmK,GACAoqE,GAAA/3D,QAAAk0J,KAAAvmK,EAAA,GACAqwE,GAAAh+D,QAAAk0J,KAAAvmK,GAEAoqE,GAAA+7F,cAAAn7F,GAAA8F,IAAA10E,OAAAypK,cAAAz7F,GAAAiG;A5MxHA,C4M4HA,QAAAm2F,cAAAn0J,QAAAjW,OAGA,GAAAA,OAAA,IACA,MAAAiW,SAAAi0J,KAAArpK,MAAA,IAAA,EAIA,KADA,GAAA+tE,IAAA8F,GAAA1G,GAAAiG,GAAArwE,EAAA,EACA5D,OAAAiW,QAAAk0J,KAAAvmK,IACAA,GAQA,OALAgrE,IAAA34D,QAAAi0J,KAAAtmK,EAAA,GACA8wE,GAAAz+D,QAAAi0J,KAAAtmK,GACAoqE,GAAA/3D,QAAAk0J,KAAAvmK,EAAA,GACAqwE,GAAAh+D,QAAAk0J,KAAAvmK,GAEAomK,cAAAp7F,GAAA8F,KAAA10E,MAAAguE,IAAAy7F,cAAAz7F,GAAAiG,KAIA,QAAAo2F,SAAAp0J,QAAAjW,OAGA,IADA,GAAArE,GAAAC,EAAAgI,EAAA,EACA5D,OAAAiW,QAAAk0J,KAAAvmK,IACAA,GAGA,OAAAqS,SAAAqgG,MAEA36G,EAAAsa,QAAAk0J,KAAAvmK,EAAA,GACAhI,EAAAqa,QAAAk0J,KAAAvmK,GAEA5D,MAAArE,GAAAC,EAAAD,GAAA,EACAC,EAGAD,GAGAsa,QAAAq0J,OAAA1mK,EAAA,GAIAqS,QAAAk0J,KAAAvmK,EAAA,GAAA8e,QACA1iB,MAAAiW,QAAAk0J,KAAAvmK,EAAA,GACAqS,QAAAq0J,OAAA1mK,EAAA,IALA5D,MAaA,QAAAuqK,UAAAhuK,GAIAA,EAAAqd,gBAKA,IAGA7O,GAAAC,EAHAw/J,MAAA,IAAAjuK,EAAAsD,KAAAsK,QAAA,SACAqrG,MAAA,IAAAj5G,EAAAsD,KAAAsK,QAAA,SACA8rI,QAAA,IAAA15I,EAAAsD,KAAAsK,QAAA,WACAnL,MAAAzC;A5M7LA,A4MiOA,MAjCA,KAAAA,EAAAsD,KAAAsK,QAAA,eACA8rI,SAAA,GAKA15I,EAAA6f,gBACA7f,EAAAA,EAAA6f,eAGAouJ,QAGAz/J,EAAAxO,EAAA27I,eAAA,GAAAl9H,MACAhQ,EAAAzO,EAAA27I,eAAA,GAAA98H,QAGAo6F,OAAAygC,WAIAA,SAAA/kH,SAAAvjB,OAAA2iB,cACA3iB,OAAA2iB,YAAAttB,SAAA6L,gBAAAqM,WACAvN,OAAA0iB,YAAArtB,SAAA6L,gBAAAyM,WAGAvQ,EAAAxO,EAAA0e,QAAAtN,OAAA2iB,YACAtlB,EAAAzO,EAAA8e,QAAA1N,OAAA0iB,aAGArxB,MAAAyrK,QAAA1/J,EAAAC,GACAhM,MAAAmjE,OAAAqzC,MAEAx2G,MAOA,QAAA0rK,QAAAz0J,SAGAib,SAAAjb,UACAA,YAGA,gBAAAA,UACAqzJ,WAAA,8CAGA,IAAA76C,YAGAxkH,GAAA0gK,YAAA3uK,KAAA,SAAAwH,EAAAkS,KAEAwb,SAAAjb,QAAAP,KAEA+4G,SAAA/4G,KAAAk1J,eAAApnK,GAGAkmK,UAAAzzJ,QAAAP,KAAAk1J,eAAApnK,KAIA,aAAAkS,MACAO,QAAAP,KAAA,GAAAO,QAAAP,KAAA,IACA4zJ,WAAA;A5MlQA,A4MsQA76C,SAAA/4G,KAAAO,QAAAP,MAIA4zJ,WAAA,oBAAA5zJ,IAAA,qBAAAk1J,gBAAApnK,GAAA,OAMAgmK,gBAAA/6C,SAAA,OAAA,YACA+6C,gBAAA/6C,SAAA,SAAA,YACA+6C,gBAAA/6C,SAAA,SAAA,kBAEAtnH,KAAAsnH,SAAAA,SAwHA,QAAAo8C,MAAAlgI,MAAA21E,QAIA,KAAAn5G,eAAA0jK,OACA,KAAA,IAAA98J,OAAA,6DAKA,KAAA48B,MACA,KAAA,IAAA4+H,YAAA,4BAMApiK,MAAA2jK,WAAAngI,MAAA,WAGAxjC,KAAAm5G,QAAAA,MAGA,IAAAvtE,MAAA5rC,KAGAsS,OAAAkxB,MAAA,QAAA,aACA2K,OAAA3K,MAAA,OAGAogI,UAAA,gBAAAtxJ,SAAA,IAAAA,OAAAtP,QAAA,aACA21H,SAAA,gBAAArmH,SAAA,IAAAA,OAAAtP,QAAA,KACA6gK,SAAA,kBAAAvxJ,QACAwxJ,IAAAtB,WAAAlwJ,QACAyxJ,QAAAD,KAAAxxJ,OAAAS,GAAA,2BACAixJ,iBAAAF,KAAA,kBAAA31H,QACA81H,aAAAH,KAAA,gBAAA31H,SAAA77B,OAAA67B;A5M/aA,A4MkbA,GAAAy1H,UAQA,MALA5jK,MAAAmuC,OAAAA,QAAA,YAGAnuC,KAAAg/I,GAAAl8I,EAAAwP,OAAAjd,QAAA,YAAA,KAAA,UAAA,GAMA,IAAAsjI,SAQA,MANA34H,MAAAmuC,OAAA,MAEAnuC,KAAAg/I,GAAAnjJ,SAAA9E,cAAA,SACAiJ,KAAAg/I,GAAAnyI,KAAAyF,YACAtS,KAAAg/I,GAAAtmJ,KAAA,SAMA,IAAAmrK,SAGA,MAFA7jK,MAAAsS,QAAA,OACAtS,KAAAmuC,OAAA77B,OAKA,IAAAwxJ,IAAA,CAGA,GAAA31H,SAAA61H,kBAAAC,cAGA,MAFAjkK,MAAAsS,OAAAA,YACAtS,KAAAmuC,OAAAA,OAMA,KAAAA,QAAA41H,QAmBA,MAhBA/jK,MAAAmuC,OAAA,MACAnuC,KAAAsS,OAAAA,WAGAtS,MAAAsS,OAAAwD,GAAA,SAAA,SAAA1gB,GAGA,QAAA22B,IAAAv3B,EAAAC,EAAAO,GACA,OAAAA,EAAAR,EAAAC,EAAAO,EAAAP,EAAAD,GAGA,GAAA0vK,QAAAn4I,GAAA,KAAAjpB,EAAA1N,EAAAkd,QAAA/D,MAAAq9B,KAAAr+B,EAEAq+B,MAAAnF,IAAAl4B,IAAA21J,QAAA37E,KAAA38C,QAOA,KAAAuC,SAAA41H,QAMA,MAHA/jK,MAAAmuC,OAAA,YACAnuC,KAAAsS,OAAAA;A5MtfA,C4M4fA,KAAA,IAAA8vJ,YAAA,uBA4CA,QAAA+B,UAAAr3E,OAAAtpD,OAEA/8B,UAAA+8B,QACA2+H,WAAA,0BAKAr1E,OAAAq2E,OAAA,GAAA3/H,MAGA,QAAA4gI,WAAAt3E,OAAAtpD,QAGA,gBAAAA,QAAA1gC,EAAA5G,QAAAsnC,SACA2+H,WAAA,6BAIAr/J,EAAAjO,KAAA2uC,MAAA,SAAA3sB,MAAAhe,OAEA,GAAAqrI,WAGA,iBAAArrI,SACAA,OAAAA,QAIAiK,EAAA5G,QAAArD,QACAspK,WAAA,mCAKAj+B,WADA,QAAArtH,MACA,EACA,QAAAA,MACA,IAEAlc,WAAAkc,OAIApQ,UAAAy9H,aAAAz9H,UAAA5N,MAAA,KACAspK,WAAA,gCAIAr1E,OAAAk2E,KAAAnjK,KAAAqkI,YACAp3C,OAAAi2E,KAAAljK,KAAAhH,MAAA,IAKAqrI,WAKAp3C,OAAAq2E,OAAAtjK,KAAA6G,MAAA7N,MAAA,KAAA,EAAAA,MAAA,IAJA6N,MAAA7N,MAAA,MACAi0F,OAAAq2E,OAAA,GAAAtqK,MAAA;A5M/lBA,G4MsmBAiK,EAAAjO,KAAAi4F,OAAAq2E,OAAA,SAAA9mK,EAAA2E,GAGA,MAAAA,QAQA8rF,OAAAq2E,OAAA9mK,GAAAsmK,gBACA71E,OAAAi2E,KAAA1mK,GACAywF,OAAAi2E,KAAA1mK,EAAA,IACA2E,GAAAshK,cACAx1E,OAAAk2E,KAAA3mK,GACAywF,OAAAk2E,KAAA3mK,EAAA,MAZA,IAgBA,QAAAgoK,WAAAv3E,OAAAtpD,OAEA,gBAAAA,SACAA,OAAAA,UAKA1gC,EAAA5G,QAAAsnC,SAAAA,MAAAxsC,QAAAwsC,MAAAxsC,OAAA,IACAmrK,WAAA,gCAIAr1E,OAAAgnB,QAAAtwE,MAAAxsC,OAIA81F,OAAA5sF,MAAAsjC,MAGA,QAAA8gI,UAAAx3E,OAAAtpD,OAGAspD,OAAAqiB,KAAA3rE,MAEA,iBAAAA,QACA2+H,WAAA,oCAIA,QAAAoC,aAAAz3E,OAAAtpD,OAEA,UAAAA,OAAA,IAAAspD,OAAAgnB,QACAhnB,OAAA03E,QAAA,EACA,UAAAhhI,OAAA,IAAAspD,OAAAgnB,QACAhnB,OAAA03E,QAAA,EACAhhI,SAAA,GAAA,IAAAspD,OAAAgnB,QACAhnB,OAAA03E,QAAA,EACAhhI,SAAA,EACAspD,OAAA03E,QAAA,EAEArC,WAAA;A5MlqBA,C4MsqBA,QAAAsC,iBAAA33E,OAAAtpD,OAIA,OAAAA,OACA,IAAA,aACAspD,OAAA43E,IAAA,CACA,MACA,KAAA,WACA53E,OAAA43E,IAAA,CACA,MACA,SACAvC,WAAA,qCAIA,QAAAwC,YAAA73E,OAAAtpD,OAEAspD,OAAAk2E,KAAAhsK,OAAA,GACAmrK,WAAA,wDAKAr1E,OAAAtrE,OAAAmhJ,eAAA71E,OAAAi2E,KAAAv/H,OAEA/8B,UAAA+8B,QACA2+H,WAAA,oCAIA,QAAAyC,eAAA93E,OAAAtpD,OAKA,OAAAA,OACA,IAAA,MACAspD,OAAA11E,IAAA,CACA,MACA,KAAA,MACA01E,OAAA11E,IAAA,EACA01E,OAAA03E,SAAA,EAAA,EAAA,EAAA,GAAA13E,OAAA03E,QACA,MACA,SACArC,WAAA,2CAIA,QAAA0C,eAAA/3E,OAAAtpD,OAGA,gBAAAA,QACA2+H,WAAA;A5M1tBA,A4M+tBA,GAAA3rI,KAAAgN,MAAAxgC,QAAA,QAAA,EACAjL,OAAAyrC,MAAAxgC,QAAA,WAAA,EACA4tG,KAAAptE,MAAAxgC,QAAA,SAAA,EACA8hK,MAAAthI,MAAAxgC,QAAA,UAAA,EACAmsG,KAAA3rE,MAAAxgC,QAAA,SAAA,CAEA8pF,QAAAn1F,QACA6+B,IAAAA,KAAA24E,KACAp3G,OAAAA,OACA64G,KAAAA,KACAk0D,MAAAA,MACA31D,KAAAA,MAIA,QAAA41D,mBAAAj4E,OAAAtpD,MAAAwhI,SAEAl4E,OAAAm4E,KAAAzhI,MAAA,MAAAA,MAAA,OACAspD,OAAA62E,WAAA,GAAAJ,QAAA//H,MAAA,QAEA1gC,EAAAjO,KAAAi4F,OAAAm4E,IAAA,SAAA5oK,EAAA7H,GAGAsO,EAAA5G,QAAA1H,IACA2tK,WAAA,mBAAA9lK,EAAA,QAAA,SAAA,uBAGAyG,EAAAjO,KAAAL,EAAA,WAGAwL,eAAA0jK,OACAvB,WAAA,mBAAA9lK,EAAA,QAAA,SAAA,sCAIA2D,KAAAuN,EAAAlR,EACA2D,KAAAymC,IAAAu+H,QACAhlK,KAAA8zD,MAAA9zD,KAAA8zD,OAAAkxG;A5MnwBA,A4MswBAhlK,KAAA2jK,WAAA,GAAAJ,QAAAzgK,EAAA/K,UACAyrC,MAAA,OACAxjC,KAAA2jK,iBAQA72E,OAAA11E,KAAA01E,OAAAgnB,QAAA,GACAhnB,OAAAm4E,IAAA/oJ,UAKA,QAAAxmB,MAAAoZ,QAAAk2J,SAeA,GAKAE,OALAp4E,QACAk2E,QACAD,QACAI,SAAA,GACA3hJ,OAAA,EAkDA,OA/CA0jJ,QACA59I,MAAA/jB,GAAA,EAAAC,EAAA2gK,UACA/tI,OAAA7yB,GAAA,EAAAC,EAAA4gK,WACAlkK,OAAAqD,GAAA,EAAAC,EAAA6gK,WACAl1D,MAAA5rG,GAAA,EAAAC,EAAA8gK,UACAE,SAAAjhK,GAAA,EAAAC,EAAA+gK,aACAzkD,aAAAv8G,GAAA,EAAAC,EAAAihK,iBACAjjJ,QAAAje,GAAA,EAAAC,EAAAmhK,YACAn9D,WAAAjkG,GAAA,EAAAC,EAAAohK,eACAO,WAAA5hK,GAAA,EAAAC,EAAAqhK,eACAO,eAAA7hK,GAAA,EAAAC,EAAAuhK,oBAIAj2J,QAAAhM,EAAA/K,QACAysK,SAAA,EACAh9D,UAAA,MACA29D,UAAA,MACArlD,YAAA,cACAhxG,SAGAA,QAAA,cAAAhM,EAAA/K,QACA4kE,SACAE;A5Mn0BA,A4Mo0BArhC,WACA1sB,QAAA,eAKAhM,EAAAjO,KAAAqwK,MAAA,SAAAr4J,KAAAnX,MAEA,GAAAq0B,SAAAjb,QAAAjC,MAAA,CACA,IAAAnX,KAAA6N,EAGA,OAAA,CAFA4+J,YAAA,IAAAt1J,KAAA,kBAMAnX,KAAA8N,EAAAspF,OAAAh+E,QAAAjC,MAAAm4J,WAIAl4E,OAAA9yF,MAAA8yF,OAAA43E,IAAA,MAAA,OAEA53E,OAOA,QAAAu4E,WAAAv2J,QAAA+H,OAEA,GAAAjf,QAAAkL,EAAA,qBAAAqL,SAAAm3J,QAAA,IACAC,WAAA,SAAA,SAUA,OARAz2J,SAAAsI,KACAmuJ,UAAArpJ,UAGAtkB,OAAAwjB,WAAAjN,SACAm3J,QAAA,GAAA,IAAAA,QAAA,GAAAC,UAAA1uJ,QAGAjf,OAIA,QAAA4tK,YAAA5tK,OAAA2wF,MAaA,MATAA,MAAAy2D,KACAz2D,KAAA,GAAAm7E,OACApxJ,OAAAxP,EAAAylF,KAAAy2D,IAAAj4I,QAAA5L,SAAAvD,QACAu2C,OAAAo6C,KAAAp6C,OACA3S,OAAA+sD,KAAAo7E,aACA,IAIAp7E,KAIA,QAAAk9E,aAAAvjJ,SAAAtqB,OAAA+rK;A5Ml4BA,A4Mo4BA,GAAA9sJ,OAAAyuC,OAWA,KAPAA,KAAAzlD,KACA,GAAA6jK,OACAloI,OAAAmoI,aACA,IAIA9sJ,MAAA,EAAAA,MAAAqL,SAAAlrB,OAAA6f,QACAyuC,KAAAzlD,KAAA2lK,WAAA5tK,OAAAsqB,SAAArL,QAGA,OAAAyuC,MAIA,QAAAogH,UAAA52J,QAAAglG,SAEA,GAAAj9F,OAAA+wE,QAKA,KAAA/wE,MAAA,EAAAA,MAAA/H,QAAAglG,QAAAj9F,QAGA+wE,MAAA/wE,OAAA4uJ,YACA32J,QAAAm2J,IAAApuJ,OACAi9F,QAAAj9F,OAAAuE,WACAtM,QAAA60J,WAIA,OAAA/7E,OAIA,QAAA+9E,eAAAnB,QAAAlyJ,OAAAwhG,SAMA,OAAA0wD,SACA,IAAA,GAAAlyJ,OAAAnE,SAAAm3J,QAAA,IACAxxD,QAAA,GAAA3lG,SAAAm3J,QAAA,GACA,MACA,KAAA,GAAAxxD,QAAA,GAAA3lG,SAAAm3J,QAAA,GAEA,KAAA,GAAAxxD,QAAA,GAAA3lG,SAAAm3J,QAAA,GAEA,KAAA,GAAAhzJ,OAAAnE,SAAAm3J,QAAA,KAMA,QAAAM,YAAA92J,QAAA+oC,MAEA,GAAAhhC,OAAAi9F,UAGA,KAAAj9F,MAAA,EAAAA,MAAA/H,QAAAglG,QAAAj9F,QAGAi9F,QAAAj0G,KAAAwlK,UAAAv2J,QAAA+H,OAAA1b,SAAA08C;A5Mv8BA,A4M08BA,MAAAi8D,SAIA,QAAA+xD,WAAA/2J,QAAAwD,QASA,MANAA,QAAAnE,UACAm3J,QAAA,GACAA,QAAA,EAAAx2J,QAAAsI,KACAkuJ,QAAA,EAAAx2J,QAAA41J,MACA3+J,KAAA,MAEAjD,EAAA,UAAA3H,SAAAmX,QAAAnE,SAAAm3J,QAAA,IAMA,QAAAQ,SAAAxzJ,OAAAxD,QAAArP,iBAYA,QAAAsmK,YACA,MAAAC,QAAA,QAAA,UAAAl3J,QAAA41J,QAMA,QAAAuB,YAAAtuK,QAKA,GAAAkf,OAAAigB,QAAAovI,QAAA33J,MAEA,KAAAsI,MAAA,EAAAA,MAAAlf,OAAAX,OAAA6f,QACAqvJ,QAAA5/J,QAAA3O,OAAAkf,OAAAigB,QAQA,QAAAqvI,WAAAvuK,OAAA8zE,GAAA06F,SAEA,GAAAplK,GAAApJ,OAAA,KAAAyuK,SAAA,GAAA,GAAA,EAAA,EACA1pG,MAAA2pG,WAAA,GAAAx3J,QAAA0S,OACAq7C,MAAAypG,WAAA,GAAAx3J,QAAA0S,MAkBA,OAfA4kJ,UAAAC,SAAArvK,OAAA,IACA00E,GAAA1qE,EAAAzG,KAAAC,IAAAkxE,GAAA/O,OAAApiE,KAAA+3B,IAAAo5C,GAAA7O;A5MvgCA,A4M2gCA,IAAA6O,KACAA,GAAAw3F,QAAAp0J,QAAA48D,KAKAA,GAAA1kC,MAAArsC,WAAA+wE,GAAAs1C,QAAA,KAIAt1C,KAAA46F,WAAAtlK,GACA,IAAAqlK,SAAArvK,QACA,EAEA00E,KAAA/O,OAAA+O,KAAA7O,MAAA,GAAA,GAIAjlE,OAAAiC,IAAAiV,QAAA9U,MAAA0xE,GAAA,KAGA9zE,OAAAmb,GAAA,iBACAnb,OAAAyW,YAAAi3J,QAAA,IAAA55F,GAAA,IAIA46F,WAAAtlK,GAAA0qE,GAGA58D,QAAAsI,MACAs0D,GAAA,IAAAA,IAKA5oE,EAAAyjK,eAAAvlK,IAAAnM,KAAA,WACAmL,KAAAlE,MAAAgT,QAAA48D,GAAA9zE,OAAAwjB,WAAA8qJ,YAGA,GAIA,QAAAM,cAAAhyK,EAAAC,EAAA2xK,SAGA,GAAApxK,GAAAR,EAAAC,EAAA,GAAAS,EAAAV,EAAAC,EAAA,EAIA,OAAA2xK,UACA,EAAApxK,IACAE,GAAAqF,KAAA6uC,IAAAp0C,IAEAE,EAAA,MACAF,GAAAE,EAAA,MAIA8xC,MAAAhyC,GAAAgyC,MAAA9xC,MAGAF,EAAAE,GAIA,QAAA6+D,MAAAn8D,OAAA8zE,GAAA+6F,SAEAA,SAGA/D,YAAAwD,QAAAZ,QAAA,IAAA,KAIAa,UAAAvuK,OAAA8zE,IAAA,GAEAu6F,YAAA,QAAA,MAAA,WAOA,QAAAlI,QAAApmK,OAAA+6F,QAAA70D,SAAAhoC;A5M9lCA,A4MomCA,MAHA8B,QAAAA,OAAAtC,QAAA,MAAAic,UAAA,KAAAA,UAGAohF,QAAA58E,GAAAne,OAAA,SAAAvC,GAGA,GAAA0T,UAAAo9J,QAAArhK,KAAA,WAMA,OALAiE,YAAAihB,SAAAjhB,UAAA,OAAAA,UAKAo9J,QAAA53J,SAAAg3J,QAAA,MAAAx8J,UACA,GAGA1T,EAAAguK,SAAAhuK,GACAA,EAAAsxK,UAAAtxK,EAAAkuK,OAAAx0J,QAAA41J,SAGA7mI,UAAAzoC,EAAAS,SAKA,QAAAwnH,MAAAxlH,MAAAhC,MAEA,GAAA8wK,WAAA7yD,QAAAj+G,KAAAi+G,SAAAuyD,SAAAzoK,OAAA,EACAgpK,SAAA,KAAA/uK,MAAA6uK,UAAA7wK,KAAAqK,OAAA6lK,WACAruK,EAAAo8G,QAAA,GAAA,KAAAuyD,SAAA,GAAA,GAAA,EAAA,CAGAM,WAAAH,aAAAI,SAAA/wK,KAAA8wK,UAAA7yD,QAAA98G,OAAA,GAEA4G,MAAAuoK,UAAAryD,QAAA,GAAA6yD,UAAAjvK,GAAA,IAAAo8G,QAAA98G,QAEA88G,QAAA98G,OAAA,IACA4G,MAAAuoK,UAAAryD,QAAA,GAAA6yD,UAAAjvK,EAAA,EAAA,IAAA,IAAAkG;A5MroCA,A4MyoCAA,OACAqoK,YAAA,UAKA,QAAAhkK,KAAApK,OAGAiL,EAAA,IAAAwiK,QAAA,KAAAl3J,YAAAk3J,QAAA,KAGAztK,MAAAmjE,QACAl4D,EAAA,QAAAjJ,IAAA,SAAA,IAAA0M,IAAA+K,WAIAwsI,IAAAv3I,IAAA+K,WAGA40J,QAAA93J,YAAAk3J,QAAA,KAGAW,YAAA,MAAA,WAIA,QAAA/lK,OAAArI,MAAAhC,MAGA,IAAAA,KAAAi+G,QAAA98G,QACAnB,KAAAi+G,QAAA,GAAA14F,WAAAjN,SAAAm3J,QAAA,KAIAztK,MAAAub,kBAGA2qJ,OAAA9S,QAAA5tC,KAAAygC,IAAAzgC,MACAn9G,MAAArI,MAAA6uK,UACA5yD,QAAAj+G,KAAAi+G,QACA6yD,WACAL,WAAA,GACAA,WAAAD,SAAArvK,OAAA,MAKA+mK,OAAA9S,QAAAhpJ,IAAA67I,IAAA77I,IAAA,MAIApK,MAAAmjE,SAGAl4D,EAAA,QAAAjJ,IAAA,SAAAiJ,EAAAjL,MAAAya,QAAAzY,IAAA,WAGAwsK,SAAArvK,OAAA,GACAkvK,QAAA/3J,SAAAm3J,QAAA,KAIAxiK,EAAA,QAAAgT,GAAA,cAAAxE,WAAA;A5MvsCA,C4M4sCA,QAAAklB,KAAA3+B,OAEA,GAAA6zE,IAAA/oE,SAAA9K,MAAA6uK,UAAA17E,MAAA,CAGAnzF,OAAAub,kBAGAtQ,EAAAjO,KAAAwxK,SAAA,WACAr7E,OAAAhrF,KAAA8oB,SAAAha,QAAA9U,SAIAgxF,MAAAA,MAAA,EAAAroF,UAAA,IAAA0jK,SAAArvK,OAAA,EAAA,EAEA2L,UAAAqjK,MAAAl9I,SAAAha,QAAA9U,OAGA0xE,GAAA,IAAA/oE,SAAAojK,WAIAhyG,KAAAsyG,SAAAr7E,OAAAtf,GAAA58D,QAAAnX,OAAAw3G,MAEArgG,QAAAnX,OAAAw3G,MACAjvG,MAAArI,OAAAi8G,SAAAuyD,SAAAr7E,UAKA,QAAAoxD,MAAAvkJ,OAEA,GAAAwE,GAAAxE,MAAA6uK,UAAAV,MAAAl9I,SAAAha,QAAA9U,OACA0xE,GAAArvE,EAAA,EAAA,GAEAA,GAAAA,EAAA,EAAAgqK,SAAArvK,OAAA,EAEA+8D,KAAAsyG,SAAAhqK,GAAAqvE,IAAA,GAIA,QAAA/zE,QAAAwtK,WAEA,GAAA9oK,GAAAu0G,IAGA,KAAAu0D,UAAAL,MAEA,IAAAzoK,EAAA,EAAAA,EAAAgqK,SAAArvK,OAAAqF,IAIA0hK,OAAA9S,QAAA/qJ,MAAAmmK,SAAAhqK,GAAA+e,WAAAlb,OACA4zG,SAAAuyD,SAAAhqK,KAMA8oK,WAAA3uI,KACAunI,OAAA9S,QAAA/qJ,MAAA8lK,MAAAxvI;A5MvwCA,A4MwwCAs9E,QAAAuyD,WAKAlB,UAAAptK,SAEAmuK,QAAA/3J,SAAAm3J,QAAA,KAEAH,UAAA3uI,KACAunI,OAAA9S,QAAA/qJ,MAAAgmK,QAAA9pB,MACAtoC,QAAAuyD,YAMAlB,UAAAv0D,OAEAA,KAAAo1D,MAAA/gK,KAAA,IAAAqgK,QAAA,IAAAn3J,SAAAm3J,QAAA,KAMAH,UAAAL,QACAl0D,KAAAA,KAAA94G,IAAAkuK,MAAA5qJ,WAAApC,IAAA43F,MAAAx1F,aAGA2iJ,OAAA9S,QAAA/qJ,MAAA0wG,KAAA1wG,OACA4zG,QAAAuyD,YAzUA,GAEAL,OACAO,eACAF,SAJAH,QAAApjK,EAAAwP,QACAg0J,YAAA,GAAA,GAiVA,KAAAJ,QAAAnzJ,GAAA,UACA,KAAA,IAAAnM,OAAA,kCAKAo/J,OAAAH,UAAA/2J,QAAAo3J,SACAG,SAAAT,WAAA92J,QAAAk3J,OACAO,eAAAb,SAAA52J,QAAAu3J,UAGAV,cAAA72J,QAAA01J,QAAA0B,QAAAG,UAGA1uK,OAAAmX,QAAAnX,QAMA2a,OAAAu0J,KAAA,SAAA/vI,OAAA+G,SAAA0qD,KAAA4wB,OAAA5xF;A5Ml0CA,A4Mo0CA,GAAAlrB,GAAAqvE,EAgBA,KAZA58D,QAAAsI,KAAAtI,QAAAglG,QAAA,GACAh9E,OAAA5a,UAIAqL,SACAm7I,YAAAwD,QAAAZ,QAAA,IAAA,KAMAjpK,EAAA,EAAAA,GAAAgqK,SAAArvK,OAAA,EAAA,EAAA,GAAAqF,IAEAqvE,GAAA6c,MAAAg+E,eAAAlqK,EAAA,GAAA,GACAqvE,GAAAA,GAAAj5C,QAAAqE,OAAAz6B,EAAA,IAEAqvE,MAAA,IAKAA,GAAAo3F,WAAAh0J,QAAA48D,IAGA58D,QAAAsI,MACAs0D,GAAA,IAAAA,IAIAy6F,UAAAE,SAAAhqK,EAAA,GAAAqvE,IAAA,MAAA,GAKA5oE,EAAAyjK,eAAAlqK,EAAA,IAAAxH,KAAA,WACAmL,KAAAlE,MACAgT,QACAw3J,WAAAjqK,EAAA,GACAgqK,SAAAhqK,EAAA,GAAA+e,WACA8qJ,QACA/sD,UAUA,OAJAt7E,aAAA,GACAooI,YAAA,QAGAjmK,MAIAsS,OAAAw0J,KAAA,WAEA,GAAAzqK,GAAA0qK,SAGA,KAAA1qK,EAAA,EAAAA,EAAAyS,QAAAglG,QAAAz3G,IACA0qK,OAAA1qK,GAAAkqK,eAAAlqK,GAAA,GAAA2qK,KAIA,OAAA,KAAAD,OAAA/vK,OACA+vK,OAAA,GAGAj4J,QAAAsI,KAAAtI,QAAAglG,QAAA,EACAizD,OAAA7qJ,UAGA6qJ,QAIAz0J,OAAAo8B,QAAA;A5Mp5CA,A4Mu6CA,MAfA5rC,GAAAjO,KAAA0xK,eAAA,WACAzjK,EAAAjO,KAAAmL,KAAA,WAEAA,KAAAsS,QACAtS,KAAAsS,OAAA/L,IAAA+K,eAMAxO,EAAA9C,MAAAuG,IAAA+K,WACAlD,YAAAk3J,QAAAv/J,KAAA,MACA1E,QAGA5B,iBAOAymK,QAAA33J,IAAAO,QAAA5O,OAOA,QAAA+mK,YAAAxnK,iBAEA,GAAAO,KAAAhJ,OAAA,CAMA,GAAA8X,SAAApZ,KAAA+J,gBAAAO,KAGA,OAAAA,MAAAnL,KAAA,WACAixK,QAAA9lK,KAAA8O,QAAArP,oBAKA,QAAAynK,SAAAp4J,SAEA,MAAA9O,MAAAnL,KAAA,WAIA,GAAAiiC,QAAAh0B,EAAA9C,MAAAuO,MACA9O,gBAAAO,KAAA0uC,UAGAy4H,WAAArkK,EAAA/K,UAAA0H,gBAAAqP,QAGAhM,GAAA9C,MAAAonK,WAAAD,YAIA1nK,gBAAAS,QAAAinK,WAAAjnK,OACA4C,EAAA9C,MAAAuO,IAAAuoB,UAtiDA,GAEAgnH,KAAAh7I,EAAAjH,UAEAyV,UAAA,OAEA+1J,KAAAvkK,EAAAO,GAAAkL,IAGA08I,QAAAzkJ,OAAA5D,UAAA0kK;A5MsEA,A4MrEApnK,MAAA,cACAm9G,KAAA,cACAp7G,IAAA,aACAuE,OAAA5D,UAAA2kK,kBACArnK,MAAA,gBACAm9G,KAAA,gBACAp7G,IAAA,gBAEA/B,MAAA,uBACAm9G,KAAA,sBACAp7G,IAAA,oBAGAqjK,SACA,cACA,YACA,cACA,cACA,kBACA,gBACA,kBACA,eACA,WACA,WACA,gBACA,GACA,kBACA,GACA,iBACA,cACA,gBACA,iBAEA9B,YACA,WACA,OACA,WACA,SACA,UACA,UACA,UACA,WACA,kBAEAC,gBACA,EACA,IACA,GACA,GACA,GACA,SAAAjvK,GAAA,MAAAA,IACA,SAAAA,GAAA,MAAAA;A5MmBA,E4MlBA,IACA,GAuRA+uK,QAAAphK,UAAAuB,EAAA,SAAAlP,GACA,MAAAwL,MAAAsnH,SAAA9yH,IAGA+uK,OAAAphK,UAAAupE,GAAA,SAAAxhD,QAEA,QAAAhO,SAAA1nB,GACA,MAAAA,GAAAM,MAAA,IAAAonB,UAAAnW,KAAA,IAGAmkB,OAAAlqB,KAAA0D,EAAA,WAAAwmB,OAEA,IAAAs9I,UAAA,GAAAC,YAAA,GAAA5vH,KAAA,GAAA6vH,KAAA,EA+BA,OA7BA,GAAAx9I,SACAs9I,SAAAxnK,KAAA0D,EAAA,YACA+jK,YAAAznK,KAAA0D,EAAA,mBAIAwmB,OAAA3vB,KAAA6uC,IAAAlf,QAAA82F,QAAAhhH,KAAA0D,EAAA,aAAAR,WACAgnB,OAAAA,OAAAp1B,MAAA,KAIA,IAAA6F,WAAAuvB,UACAA,OAAA,GAAA,KAIAlqB,KAAA0D,EAAA,aACAm0C,KAAA37B,QAAAgO,OAAA,IAAAlT,MAAA,WACA6gC,KAAA37B,QAAA27B,KAAA9xC,KAAAmW,QAAAlc,KAAA0D,EAAA,gBAEAm0C,KAAA3tB,OAAA,GAIAlqB,KAAA0D,EAAA,SAAAwmB,OAAAlzB,OAAA,IACA0wK,KAAA1nK,KAAA0D,EAAA,QAAAwmB,OAAA,IAIAu9I,YACAznK,KAAA0D,EAAA,UACA8jK,SACA3vH,KACA6vH,KACA1nK,KAAA0D,EAAA;A5MrTA,E4MwTA6/J,OAAAphK,UAAAspE,KAAA,SAAA5xD,OAEA,QAAA8tJ,KAAA5yK,GACA,MAAAA,GAAAM,QAAA,4BAAA,QAGA,GAAAuyK,MAIA,OAAA,QAAA/tJ,OAAAkQ,SAAAlQ,OACA,GAIAA,MAAAA,MAAA3W,WAGA0kK,MAAA/tJ,MAAAxkB,QAAA,GAAAqc,QAAA,IAAAi2J,IAAA3nK,KAAA0D,EAAA,oBAAA,IAGAmW,QAAA+tJ,OACA/tJ,MAAA+tJ,MACAA,MAAA,KAEAA,MAAA,GAIA/tJ,MAAAA,MAAAxkB,QAAA,GAAAqc,QAAA,IAAAi2J,IAAA3nK,KAAA0D,EAAA,YAAA,IAGA1D,KAAA0D,EAAA,WAGAkkK,MAAA,GAGA/tJ,MAAAA,MAAAxkB,QAAA,GAAAqc,QAAA,IAAAi2J,IAAA3nK,KAAA0D,EAAA,cAAA,MAIAmW,MAAAA,MAEAxkB,QAAA,GAAAqc,QAAAi2J,IAAA3nK,KAAA0D,EAAA,YAAA,KAAA,IAEArO,QAAA,GAAAqc,QAAAi2J,IAAA3nK,KAAA0D,EAAA,aAAA,KAAA,IAEArO,QAAA2K,KAAA0D,EAAA,QAAA,KAGAmW,MAAA7Z,KAAA0D,EAAA,WAAA/I,WAAAitK,MAAA/tJ,QAGAnT,MAAAmT,QACA,EAGAA;A5MjXA,E4M8eA6pJ,KAAAvhK,UAAArG,MAAA,SAAAgT,QAAAjW,MAAAjB,OAAAqpH,OAAA9H,QAGAn5G,KAAAm5G,QAAAA,UAAA,IAKAtgH,MAAAoqK,aAAAn0J,QAAAjW,OAGAA,MAAAmH,KAAAw7B,OAAA3iC,OAGAmH,KAAAgnK,MAAAnuK,MAGA,kBAAAmH,MAAAmuC,OAIAnuC,KAAAmuC,OAAA33C,KAAAwJ,KAAAsS,OAAA,IAAA2uG,OAAA,GAAApoH,MAAAjB,OAAAqpH,QAEAjhH,KAAAsS,OAAAtS,KAAAmuC,QAAAt1C,MAAAjB,OAAAqpH,UAKAyiD,KAAAvhK,UAAAq5B,OAAA,SAAAhnC,GACA,MAAAwL,MAAA2jK,WAAAj4F,GAAAl3E,IAIAkvK,KAAAvhK,UAAAswB,QAAA,SAAAj+B,GACA,MAAAwL,MAAA2jK,WAAAl4F,KAAAj3E,IA48BAsO,EAAAskK,YAAA1D,KAAAA,MAIA5gK,EAAAO,GAAA+jK,WAAA,SAAAt4J,QAAAiiB,IACA,OAAAA,GAAAm2I,QAAAD,YAAAzwK,KAAAwJ,KAAA8O,UAGAhM,EAAAO,GAAAkL,IAAA,WAGA,GACAE,KAAA85E,KAAA4wB,OAAA5xF,QADA8d,KAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EAIA,OAAAu/B,MAAAruC,QAWA,gBAAAquC,MAAA,IACA52B,IAAA42B,KAAA,GAAA;A5Mt/CA,A4Mu/CAkjD,KAAAljD,KAAA,GAAA,KACA8zE,OAAA9zE,KAAA,GAAA,OACA9d,QAAA8d,KAAA,GAAA,SAGAA,KAAA,MAAA,IACA52B,KAAA,GAIAzO,KAAAnL,KAAA,WAEAiO,EAAA9C,MAAAsO,SAAAg3J,QAAA,IACAtlK,KAAA6mK,KAAApE,QAAAp9H,KAAA,IAAA52B,IAAA85E,KAAA4wB,OAAA5xF,SAEA8/I,KAAAxhK,MAAA/C,EAAA9C,MAAAqlC,SAzBArlC,KAAAsO,SAAAg3J,QAAA,IACAtlK,KAAA,GAAA8mK,OAGAO,KAAAxhK,MAAA7F,SCnkDA4pB,OAAA,kBACA,SACA,SACA,OACA,QACA,YACA,kBACA,gBACA,gCACA,gCACA,cACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAl0B,MAAAu5J,UAAAt7H,WAAA+wH,SAAAqR,WACA,YAOA,IAAAC,aAAA,EAOA/K,IAAA,eAOAgL,WAAA,iCAOAC,gBAAA,eAcAziI,UAAA7rC,MAOAuuK,WAAA,EAOAC,WAAA,IAOAC,aAAAD,WAAAD,WAOA5nG;A7MCA,A6MAA3nE,KAAA,YACA+9J,OACAj7J,MAAA,IACAC,OAAA,IACAslB,SAAA,IACAmqF,UAAA,KAEAwrD,OACAl7J,MAAA,IACAC,OAAA,GACAslB,SAAA,IACAmqF,UAAA,IAEAp8F,SACAs5J,OAAA7tK,KAAAi3B,MAAA,GAAA22I,cACAE,YAAA,EACAC,SAAA,EACAC,UAAA,EACAC,MAAA,EACAv5H,WAAA,IASAw5H,YAEAC,aAAA,mCACAC,YAAA,6CACAC,YAAA,qCAEAC,aAAA,cACAC,YAAA,gCACAC,YAAA,6BACAC,YAAA,yBASAC,kBAAA,SAAArqJ,KACA,GAAAghF,KAAAmoE,WAAAztK,KAAAskB,IACA,OAAAghF,MAAAA,IAAA,IAAAhhF,KASAsqJ,cAAA,SAAArwK,OAEA,MADAA,OAAA8B,WAAA9B;A7MzDA,A6M0DA8N,SAAA9N,OAAAA,MAAA,GAUAswK,aAAA,SAAAnoK,EAAAqrC,KAEA,IADA,GAAAxzC,OAAAmI,EAAAkC,WACArK,MAAA7B,OAAAq1C,KACAxzC,MAAA,IAAAA,KAEA,OAAAA,QASAuwK,aAAA,SAAA54G,MACA,GAAAmd,SAAApzE,KAAAi3B,MAAAg/B,KAAA,IACAkd,QAAAnzE,KAAAi3B,MAAAg/B,KAAA,IAAA,GACAid,MAAAlzE,KAAAi3B,MAAAg/B,KAAA,MACAlW,QAQA,OANAmzB,QACAnzB,MAAAz6C,KAAA4tE,OAEAnzB,MAAAz6C,KAAAspK,aAAAz7F,QAAA,IACApzB,MAAAz6C,KAAAspK,aAAAx7F,QAAA,IAEArzB,MAAAv0C,KAAA,MASAsjK,gBAAA,SAAA3wK,MACA,MAAA,gBAAAA,OAAA,IAAAA,KAAAsK,QAAA,gBASAsmK,iBAAA,SAAAhmK,QACA,GAAA5K,MAAA,YACAkmB,IAAAtb,QAAAA,OAAAob,KAAApb,OACAu9J,IAAAjiJ,KAAAA,IAAAtiB,OAAA,GAIA,QAHA,SAAAukK,KAAA,SAAAA,OACAnoK,KAAA,aAEAA,MASA6wK,iBAAA,SAAAvuI;A7MhIA,A6MiIA,GAAAgnI,SAAAhnI,OAAAgnI,YACApjJ,IAAAoc,OAAApc,GAaA,OAXA/N,GAAA3U,QAAA8lK,WACAA,SAAAA,UAGApjJ,MACA/N,EAAA3U,QAAA8+B,OAAApc,OACAA,KAAAA,MAEAojJ,QAAAA,QAAAxjK,OAAAogB,MAGAojJ,SAUAwH,cAAA,SAAA5N,MAAAv+J,UACA,GAAAhF,WAAAujK,MAAA6N,WAIA,OAHApsK,WAAAhF,UACAA,UAAAujK,MAAA6N,YAAAhB,WAAAprK,WAAAA,UAAAhI,QAAA,KAAA,KAEAgD,SAQAqxK,UAOAC,QAAA,SAAAjxK,KAAAgoK,MACA,GAAAhoK,KACA,OAAAA,KAAAnD,eACA,IAAA,QAAA,MAAAyK,MAAA4pK,aAAAlJ,KACA,KAAA,UACA,IAAA,QAAA,MAAA1gK,MAAA6pK,aAAAnJ,KACA,SAAA,OAAA,EAGA,MAAA1gK,MAAA4pK,gBAAA5pK,KAAA6pK,gBAQAD,aAAA,SAAAlJ,MAKA,MAJA1gK,MAAA8pK,cACA9pK,KAAA8pK,YAAAjuK,SAAA9E,cAAA;A7M/LA,A6MkMAyyK,cAAAxpK,KAAA8pK,YAAApJ,OAQAmJ,aAAA,SAAAnJ,MAKA,MAJA1gK,MAAA+pK,cACA/pK,KAAA+pK,YAAAluK,SAAA9E,cAAA,UAGAyyK,cAAAxpK,KAAA+pK,YAAArJ,OAOAsJ,WAAA,WACA,OAAAhC,gBAAAtyK,KAAAkN,UAAAyc,aAUA4qJ,iBAKAC,UAAA,EAMA7lK,OAAA,EAMAgrC,WASAv3C,IAAA,SAAA+G,KAAAsrK,OAAAr7J,SACA9O,KAAAqE,MACArE,KAAAgyB,OAAAnzB,KAAAsrK,OAAAr7J,UAEA9O,KAAAqvC,QAAAxvC,MAAAhB,KAAAsrK,OAAAr7J,UAEA9O,KAAAkqK,UACAlqK,KAAAoqK,cAUA/uK,OAAA,SAAAwD,KAAAsrK,QACA,GAAA96H,SAAArvC,KAAAqvC,OACAx+B,GAAAikB,QAAAua,QAAA,SAAAhK,KAAA6L,KACA7L,MAAAxmC,OAAAwmC,KAAA,IAAA8kI,SAAA9kI,KAAA,KACAgK,QAAA6B,KAAA,SAYAlf,OAAA,SAAAnzB,KAAAsrK,OAAAr7J,SACA,GAAAu7J,MAEA,OAAArqK,MAAAqE,OAIAyK,UACAA;A7MnSA,A6MsSAu7J,MAAAvnK,EAAAjE,UAEA,IAAAyrK,IAAAC,OAAAF,MAAA9kK,IAAA,IACA9J,OAAA4uK,MAAA7uK,QACAA,MAAA6uK,MAAA5uK,SACA+uK,QAAAH,MAAAx0K,KAAA,WACA40K,YAEAC,SAAA,EACAljC,SAAA14H,QAAA04H,SAAA,EAAA,EACAlqC,IAAA,EACAqtE,SAAA,EACAC,MAAA,cACAC,eAAA,EACAC,UAAA,EACAC,YAAA,EACAC,YAAA,EACA52C,OAAAzxH,SAAA8+J,UAEA9pK,QACA2/J,QAAA6S,OAAA7S,QAAAthJ,KAAAm0J,QACAc,cAAAd,OAAAc,cAAAj1J,KAAAm0J,YA5BAnqK,KAAAlI,IAAA+G,KAAAsrK,OAAAr7J,UAoCAo8J,SAAA,WACA,GAAAzoI,MAAAziC,KACAqvC,QAAArvC,KAAAqvC,OAEArvC,MAAAqvC,WACArvC,KAAAqE,OAAA,EAEAwM,EAAAikB,QAAAua,QAAA,SAAAhK,MACAA,MACA5C,KAAAzQ,OAAAnsB,MAAA48B,KAAA4C,SASA8lI,WAAA,WACA,GAAAD,UAAAnhJ,SAAAvjB,OAAA8jK,IAAAvgJ,SAAAvjB,OAAA8jK,GAAAC,MAIA,OAHAW,YAAAlrK,KAAAqE,OACA4lK,gBAAAiB;A7MvVA,A6MyVAA,UAMAd,UAAA,WACA,GAAA3nI,MAAAziC,IACAyiC,MAAA0oI,cACAltI,SAAA,sCAAA,WACA,GAAAmtI,OAAA,WACA3oI,KAAA0oI,cACAhtK,WAAAitK,MAAA,KAGAA,WAIAprK,KAAAkqK,UAAA,IASAmB,eAAA,SAAAC,aAOA,QAAAC,YAAA1tI,UACAhtB,EAAAikB,SAAA,gBAAA,0BAAA,uBAAA,UAAA,eAAA+I,UAPA,GAAA2tI,QACA5P,MACAuO,OACA3hJ,SACAqqC,SAwNA,OAlNAy4G,eACAnB,QACA/nK,KAAA,WAWA,MAVAopK,QAAAF,YAAAE,OACA5P,MAAA,KACA/oG,WAAA,EAEA24G,QACAvB,gBAAAnyK,IAAA0zK,OAAAxrK,MACAwnI,SAAA8jC,YAAAv4J,GAAA,aAIAy4J,QAGAlU,QAAA,SAAAz/J,OACA,GAAA4zK,WAAAzrK,KAAA0rK;A7MhZA,A6MkZA9P,MAAA/jK,MAAAya,OACAk5J,OAAA1oK,EAAA84J,MAAA+P,aACA3rK,KAAA0rK,WAAA,KAEA74G,UAkBA7yD,KAAA0uC,WAjBAo5H,YAEAyD,WAAA,SAAAK,IACAhQ,MAAAz3J,iBAAAynK,GAAA,SAAAx2K,GACA41C,QAAAC,IAAA2gI,GAAAx2K,OAKAk2K,YAAAO,WAEAJ,WACA56J,EAAAikB,QAAA22I,UAAA,SAAAvxK,IACAA,SAQA+wK,cAAA,SAAApzK,OAGA,GAFAmI,KAAA8rK,eAEAj5G,UACA,OAAAh7D,MAAAhC,MAEA,IAAA,GACAy1K,YAAAS,QACA,MAGA,KAAA,GACAT,YAAAU,UACAhsK,KAAAisK,cACA,MAGA,KAAA,GACAX,YAAAY,aAMAJ,YAAA,WACAtjJ,WACAC,cAAAD,UACAA,SAAA,OAIAyjJ,aAAA,WACAzjJ,SAAAD,YAAA,WACA+iJ,YAAAa,iBACAC,mBAAAC,iBAGA39H,QAAA;A7MhdA,A6MidAmkB,WAAA,EAEA+oG,OACA2P,WAAA,SAAAK,IACAhQ,MAAAx3J,oBAAAwnK,MAEAhQ,MAAAltH,WAEAu7H,gBAAA5uK,OAAAmwK,OAAAxrK,MAGAA,KAAA8rK,cAEAN,OAAA,KACA5P,MAAA,MAGA0Q,YAAA,WACA,MAAA1Q,OACAA,MAAA2Q,iBAEA,GAGA9sC,YAAA,WACA,MAAAm8B,OACAA,MAAAn8B,cAEA,GAGA+sC,UAAA,WACA,GAAA3zK,OAAA,CAIA,OAHA+iK,SACA/iK,MAAA+iK,MAAA4Q,YAAArE,aAAA,IAAAF,YAEApvK,OAGA4zK,UAAA,SAAA5zK,OACA+iK,OACAA,MAAA6Q,WAAA9xK,WAAA9B,OAAAovK,YAAAE,aAAA,MAIAuE,QAAA,SAAAlxK,MAAAC,QACA+vK,QACAA,OAAAhwK,MAAAA,OAAAC,OAAAA,QAEAmgK,OACAA,MAAA8Q,QAAAlxK,MAAAC,SAIAkxK,KAAA,SAAA9zK,OACA+iK,OACAA,MAAAgR,OAAAjyK,WAAA9B,QAAA;A7MxgBA,E6M4gBAg0K,KAAA,WACAjR,OACAA,MAAAkR,aAIA34G,MAAA,WACAynG,OACAA,MAAAmR,cAIAjtK,KAAA,WACA87J,QACAA,MAAAoR,YACA1B,YAAAS,WAIAkB,KAAA,SAAArvK,OACAg+J,OACAA,MAAAh+J,MAAA,OAAA,aAIAsvK,QAAA,WACA,MAAAtR,OACAA,MAAAsR,WAEA,GAGAC,SAAA,SAAAvuJ,KACA,GAAA5Z,IAAAikK,kBAAArqJ,KACA1kB,GAAA8K,IAAA,WACA42J,MAAAwR,aAAApoK,IAEA,OAAA9K,KACA0hK,MACA1hK,MAEA8F,KAAA0rK,WAAA1rK,KAAA0rK,eACA1rK,KAAA0rK,WAAA7rK,KAAA3F,MAEA,IAEA,GAGAmzK,SAAA,SAAAzuJ,KACA,GAAA5Z,IAAAikK,kBAAArqJ,KACA1kB,GAAA8K,IAAA,WACA42J,MAAA0R,cAAAtoK,IAEA,OAAA9K,KACA0hK,MACA1hK,KAEA8F,KAAA0rK,YAAAxxK,KAEA,IAEA,KAKAiwK,QAQAoD,cAAA,SAAAjC,aACA,GAAAE,QACA5P,MACAuO,OACAqD;A7M1lBA,A6MoxBA,MAxLAlC,eACAnB,QACA/nK,KAAA,WACA,GACAqrK,WADAp7J,QAAA,CAmEA,OAhEAm5J,QAAAF,YAAAE,OACA5P,MAAA,KACA4R,QAAA,EAEAhC,SACAiC,UAAAjC,OAAAjmK,IAAA,GACAkoK,WAAAA,UAAAhE,cACA7N,MAAA6R,UACAp7J,QAAA,GAGAi5J,YAAAv4J,GAAA,UACAy4J,OAAAz9J,WAAA,YAGAy9J,OACA11J,GAAA,OAAAinJ,IAAA,WACAyQ,QAAA,EACAlC,YAAAU,YAEAl2J,GAAA,QAAAinJ,IAAA,WACAuO,YAAAY,aAEAp2J,GAAA,QAAAinJ,IAAA,WACAyQ,QAAA,EACAlC,YAAAS,WAEAj2J,GAAA,aAAAinJ,IAAA,WACAuO,YAAAa,kBAEAr2J,GAAA,YAAA,WACA8lJ,MAAA8R,eAAAC,iBAAAC,mBACAtC,YAAAuC,aAGA/3J,GAAA,QAAAinJ,IAAA,WACAnB,MAAA8R,eAAAC,iBAAAC,kBACAtC,YAAAuC,YAEAvC,YAAAwC;A7MxoBA,A6M2oBAlS,MAAA8R,eAAAC,iBAAAI,iBAAAzC,YAAAv4J,GAAA,YACAu4J,YAAAv5G,YAIAj8C,GAAA,iBAAAinJ,IAAA,WACAuO,YAAAv4J,GAAA,UACAu4J,YAAAwC,kBAEAxC,YAAAO,aAGA/D,YAEAj3J,EAAAikB,SAAA,QAAA,UAAA,iBAAA,sBAAA,kBAAA,iBAAA,UAAA,QAAA,QAAA,QAAA,mBAAA,iBAAA,YAAA,QAAA,OAAA,WAAA,aAAA,SAAA,UAAA,UAAA,aAAA,eAAA,WAAA,SAAA82I,IACAJ,OAAA11J,GAAA81J,GAAA7O,IAAA,SAAA3nK,GACA41C,QAAAC,IAAA71C,EAAAsD,KAAA8yK,QAAAA,OAAAvmK,KAAA,UAAAJ,KAAA,OAAA+2J,OAAAA,MAAA8R,mBAMAr7J;A7MhqBA,A6MmqBAq8B,QAAA,WACA88H,QACAA,OAAAjlK,IAAAw2J,KAAAl4J,KAAA,WAAA,IAGA7E,KAAAF,OAEA0rK,OAAA,KACA5P,MAAA,KACA4R,QAAA,GAGAlB,YAAA,WACA,MAAA1Q,OACAA,MAAAoS,YAEA,GAGAvuC,YAAA,WACA,MAAAm8B,OACAA,MAAA78J,SAEA,GAGAytK,UAAA,WACA,GAAA3zK,OAAA,CAIA,OAHA+iK,SACA/iK,MAAA8B,WAAAihK,MAAAwM,QAAAD,aAAAF,YAEApvK,OAGA4zK,UAAA,SAAA5zK,OACA+iK,QACAA,MAAAwM,QAAAztK,WAAA9B,OAAAovK,YAAAE,eAIAuE,QAAA,SAAAlxK,MAAAC,QACA+vK,QACAA,OAAAhwK,MAAAA,OAAAC,OAAAA,SAIAkxK,KAAA,SAAA9zK,OACA+iK,QACAA,MAAAoS,YAAArzK,WAAA9B,OACA20K,QACAxtK,KAAA6sK,SAKAA,KAAA,WACAjR,OACAA,MAAAiR,QAIA14G,MAAA,WACAynG,OACAA,MAAAznG,SAIAr0D,KAAA;A7MruBA,A6MsuBA87J,OAAA4R,SACA5R,MAAAoS,YAAApS,MAAA78J,WAIAkuK,KAAA,SAAArvK,OACAg+J,QACAA,MAAAqS,QAAArwK,QAIAsvK,QAAA,WACA,MAAAtR,SACAA,MAAAqS,OAEA,GAGAd,SAAA,SAAAvuJ,IAAAlmB,MAEA,MADAA,MAAAA,MAAA2nE,UAAA3nE,KACAkjK,QACA4N,cAAA5N,MAAAljK,OACA,EAIAkmB,KAAA4sJ,QACAA,OAAA5tJ,OAAA,gBAAAgB,IAAA,YAAA6pJ,WAAA/vK,OAAAA,MAAA,SACA,IAEA,GAGA20K,SAAA,SAAAzuJ,IAAAlmB,MACA,MAAA8yK,SACAA,OAAAnqK,QACArB,KAAAmtK,SAAAvuJ,IAAAlmB,QAEA,KAKAyxK,QAQA+D,UACAxX,MAAA6W,cACA9W,MAAA8W,cACAxL,QAAAsJ,gBAOAC,aAkBAlpK,KAAA,SAAA44B,QACA,GAAAyH,MAAAziC,IA4BA,OAzBAA,MAAAg7B,OAAAnqB,EAAAglB,KAAAmF,WAAA,SAAAniC,OACA,MAAAkxB,UAAAlxB,OAAA,OAAAA,QAEAgY,EAAA6f,SAAA1wB,KAAAg7B,OAAAqlC,UAAAvxD;A7M3zBA,A6M4zBA9O,KAAAmuK,SAAAnuK,KAAAg7B,OAAAtiC,MAAA2nE,UAAA3nE,MAEAsH,KAAAouK,SACApuK,KAAAquK,cACAruK,KAAAsuK,aAAA,WACA7rI,KAAA1vB,GAAA,YACAlC,EAAAhc,KAAA4tC,KAAAzH,OAAAgnI,QAAA,SAAA1+J,QACA,MAAA,KAAAA,OAAA5K,KAAAsK,QAAA,UACAy/B,KAAA0rI,SAAA7qK,OAAA5K,MACA+pC,KAAA8rI,aACA,GAHA,SAOA9rI,KAAAzH,OAAA+sE,UACAl3F,EAAA8jB,MAAA,WACA8N,KAAAsvB,aAKA/xD,MAOA0uC,QAAA,WAqBA,MAhBA1uC,MAAAsG,QAAA,WAEAtG,KAAAmqK,QACAnqK,KAAAmqK,OAAAz7H,UAGA1uC,KAAAslI,aACAtlI,KAAAwuK,gBACAxuK,KAAAyuK,eAAAzuK,KAAA0uK,aACA1uK,KAAAyuK,eAAAzuK,KAAA2uK,eAEA3uK,KAAAslI,WAAAjqI,UAGA2E,KAAAouK,SAEApuK,MAQA+xD,OAAA,SAAA2Z,IACA,GAAAq8B,UAAAr8B,IAAA1rE,KAAAg7B,OAAA+sE,UAAA/nG,KAAAiwD,UA4BA,OA1BAjwD,MAAAslI,YACAtlI,KAAA0uC;A7Mx3BA,A6M23BA1uC,KAAA4uK,aACA5uK,KAAA6uK,YACA7uK,KAAA8uK,gBAAA,GACA9uK,KAAA+uK,gBAAA,GACA/uK,KAAAu8H,cACAv8H,KAAAgvK,eAAA,GAAA,GACAhvK,KAAAivK,cACAjvK,KAAAkvK,YACAlvK,KAAA+1G,OAAA/1G,KAAAg7B,OAAAx/B,MAAAwE,KAAAg7B,OAAAv/B,QACAuE,KAAAg7B,OAAAjoB,GAAA8qH,UAAA,EAEA91B,WACA/nG,KAAAiwD,WAAAntD,EAAAilG,UAAAnqF,OAAA5d,KAAAslI,aAQAtlI,KAAAsG,QAAA,SAAAtG,KAAAslI,YAEAtlI,MASA2sK,KAAA,SAAAn8G,KAAA2+G,UAYA,MAXAnvK,MAAAovK,aACApvK,KAAA+uK,gBAAAv+G,KAAA2+G,UAEAnvK,KAAAikG,QAAA,OAAAjkG,KAAAggB,UAEAhgB,KAAA+S,GAAA,WACA/S,KAAAqvK,YAAArvK,KAAAggB,UAEAhgB,KAAAwoK,OAAAxoK,KAAAg7B,OAAAwtI,MAGAxoK,MAQA6sK,KAAA,SAAAr8G,MAeA,MAdAxwD,MAAAovK,aACArlJ,SAAAymC,MACAxwD,KAAA2sK,KAAAn8G,MAGAxwD,KAAAikG,QAAA,QAEAjkG,KAAA+S,GAAA,WACA/S,KAAAivC,WAAA;A7Mt7BA,A6My7BAjvC,KAAAwoK,OAAAxoK,KAAAg7B,OAAAwtI,MAGAxoK,MAQAm0D,MAAA,SAAA3D,MAaA,MAZAxwD,MAAAsvK,cACAvlJ,SAAAymC,MACAxwD,KAAA2sK,KAAAn8G,MAGAxwD,KAAAikG,QAAA,SAEAjkG,KAAA+S,GAAA,WACA/S,KAAAivC,WAAA,IAIAjvC,MAOAo0D,OAAA,WAKA,MAJAp0D,MAAAuvK,cACAvvK,KAAA6sK,OAGA7sK,MAOAF,KAAA,WAQA,MAPAE,MAAAwoK,MAAA,EACAxoK,KAAAikG,QAAA,QAEAjkG,KAAA+S,GAAA,WACA/S,KAAAivC,WAAA,GAGAjvC,MAOAwvK,QAAA,WAGA,MAFAxvK,MAAA6sK,KAAA,GAEA7sK,MAOAyvK,OAAA,WAGA,MAFAzvK,MAAA2sK,KAAA,GAEA3sK,MAQAitK,KAAA,SAAArvK,OAWA,MAVAmsB,UAAAnsB,QACAA,OAAA,GAEAoC,KAAAikG,QAAA,OAAArmG,OACAoC,KAAA0vK,UAAA,QAAA9xK,OAEAoC,KAAA+S,GAAA,WACA/S,KAAAqoK,WAAAzqK,OAGAoC,MAOA2vK,OAAA,WAGA,MAFA3vK,MAAAitK,MAAA,GAEAjtK,MASAysK,UAAA,SAAA5zK,MAAAs2K;A7MriCA,A6M0iCA,MAJAnvK,MAAA4vK,cAAA/2K,MAAAs2K,UAEAnvK,KAAAikG,QAAA,YAAAjkG,KAAAooK,QAEApoK,MAOAwsK,UAAA,WACA,MAAAxsK,MAAAooK,QAOAkE,YAAA,WACA,MAAAtsK,MAAAggB,UAOAy/G,YAAA,WACA,MAAAz/H,MAAAjB,UAOA8wK,eAAA,WACA,MAAA7vK,MAAA8vK,aAOAC,QAAA,WACA,MAAA/vK,MAAAtH,MAOA0mE,aAAA,WACA,GAAAnP,WAOA,QANAjwD,KAAAiwD,YAAAjwD,KAAAslI,aACAr1E,WAAAjwD,KAAAslI,WAAApsH,SACA+2C,WAAAj5D,SACAgJ,KAAAiwD,WAAAA,aAGAjwD,KAAAiwD,YAOAu1E,WAAA,WACA,MAAAxlI,MAAAslI,YAOA0qC,WAAA,WACA,MAAAhwK,MAAAg7B,OAAAgnI,QAAAtoK,SASAu2K,UAAA,SAAAvxJ,IAAAmf,UAcA,MAbA79B,MAAAkwK,WAAAxxJ,IAAA,SAAApb;A7M1nCA,A6M2nCAtD,KAAAg7B,OAAAgnI,SAAA1+J,QAEAtD,KAAA+S,GAAA,aACA/S,KAAAmqK,OAAAkD,SAAA/pK,OAAAob,IAAApb,OAAA5K,MAGAmlC,UACAA,SAAArnC,KAAAwJ,KAAAsD,UAKAtD,MASAmwK,UAAA,SAAAzxJ,IAAAmf,UAaA,MAZA79B,MAAAkwK,WAAAxxJ,IAAA,SAAApb,QACAtD,KAAAg7B,OAAAgnI,QAAAniK,KAAAyD,QAEAtD,KAAA+S,GAAA,aACA/S,KAAAmqK,OAAAgD,SAAA7pK,OAAAob,IAAApb,OAAA5K,MAGAmlC,UACAA,SAAArnC,KAAAwJ,KAAAsD,UAIAtD,MAQA+S,GAAA,SAAAnV,OACA,QAAAoC,KAAAg7B,OAAAjoB,GAAAnV,QASAm4G,OAAA,SAAAv6G,MAAAC,QACA,GAAA/C,MAAAsH,KAAA+S,GAAA,SAAA,QAAA,QACA2d,SAAA2vC,UAAA3nE,OAAA2nE,UAAAo2F,KAoBA,OAlBAj7J,OAAAjB,KAAAC,IAAAk2B,SAAA3P,SAAAvlB,OACAC,OAAAlB,KAAAC,IAAAk2B,SAAAw6E,UAAAzvG,QAEAuE,KAAAg7B,OAAAx/B,MAAAA,MACAwE,KAAAg7B,OAAAv/B,OAAAA,OAEAuE,KAAAslI,aACA7pI,QAAAuE,KAAAslI,WAAAvzF,cAAA/xC,KAAAslI,WAAA7pI;A7MzrCA,A6M0rCAD,OAAAwE,KAAAslI,WAAA9hC,aAAAxjG,KAAAslI,WAAA9pI,QACAwE,KAAAslI,WAAA9pI,MAAAA,OAAAC,OAAAA,QAEAuE,KAAA+S,GAAA,WACAtX,QAAAuE,KAAAowK,UAAAr+H,gBAIA/xC,KAAAikG,QAAA,UAAAzoG,MAAAC,QAEAuE,MAOA49F,OAAA,WAGA,MAFA59F,MAAAqwK,WAAA,YAEArwK,MAOA2I,QAAA,WAGA,MAFA3I,MAAAswK,SAAA,YAEAtwK,MAOA8B,KAAA,WAGA,MAFA9B,MAAAqwK,WAAA,UAEArwK,MAOA+B,KAAA,WAGA,MAFA/B,MAAAswK,SAAA,UAEAtwK,MAQAmuK,SAAA,SAAAz1K,MACA,KAAAA,KAAAsK,QAAA,WACAhD,KAAAtH,KAAA,UACA,IAAAA,KAAAsK,QAAA,SACAhD,KAAAtH,KAAA,QAEAsH,KAAAtH,KAAA,SAQA61K,UAAA,WACA,GAAAx7J,IAAA/S,KAAAg7B,OAAAjoB,EACAA,IAAAgvJ,QAAA,YAAA/hK,KAAAtH,KACAqa,GAAA0jJ,MAAA,UAAAz2J,KAAAtH,MAAA,YAAAsH,KAAAtH;A7MpwCA,A6MqwCAqa,GAAA2jJ,MAAA,UAAA12J,KAAAtH,MAQAw3K,WAAA,SAAAxxJ,IAAAmf,UA4BA,QAAAr9B,QACA6oK,gBAAA/lK,OAAA5K,QACA4K,OAAA5K,KAAA4wK,iBAAAhmK,SAGAm/B,KAAA1vB,GAAA,aACAzP,OAAA0B,GAAAikK,kBAAA3lK,OAAAob,MAGAmf,SAAArnC,KAAAisC,KAAAn/B,QApCA,GACAA,QADAm/B,KAAAziC,IAIAsD,QADAuN,EAAA+nB,SAAAla,MAEAA,IAAAA,KAGA7N,EAAA9J,MAAA2X,KAGA1e,KAAA+S,GAAA,aAAAzP,OAAA5K,OACA4K,OAAA5K,KAAA2nE,UAAA3nE,MAGA4K,OAAA5K,KASA8H,OARAg2J,SAAAiK,gBAAAn9J,OAAAob,IAAA,SAAAioB,IAAAjuC,MACAiuC,MACAjuC,KAAA2nE,UAAA3nE,MAEA4K,OAAA5K,KAAAA,KACA8H,UAwBA8tK,aAAA,SAAAzwI,UACA,GAAA4E,MAAAziC,KACAgiK,QAAAuH,iBAAAvpK,KAAAg7B,OAEAh7B,MAAAg7B,OAAAgnI,WAEAx6J,MAAA3S,KAAAmtK,QAAA,SAAA1+J,OAAAu6B,UACA4E,KAAA0tI,UAAA7sK,OAAA,SAAAA;A7Mj0CA,A6Mk0CAu6B,SAAA,KAAAv6B,WAEAu6B,WAOAwwI,YAAA,WACA,GAAArgI,aAEAvI,YAAAzlC,MAEAguC,aAAAhuC,KAAAsG,QACAtG,KAAAsG,QAAA,SAAA8mC,WAIA,MAHAptC,MAAAslI,YACAtlI,KAAAslI,WAAAh/H,QAAA8mC,UAAA2vH,IAAAx3H,OAAA/uC,KAAAsP,UAAA,IAEAkoC,aAAAnoC,MAAA7F,KAAA8F,aAQAopK,UAAA,WACA,GAAAx2K,MAAAsH,KAAA+S,GAAA,SAAA,QAAA,QACA2d,SAAA2vC,UAAA3nE,OAAA2nE,UAAAo2F,KAEAz2J,MAAAg7B,OAAAx/B,MAAAqV,EAAAZ,SAAAjQ,KAAAg7B,OAAAx/B,QAAAk1B,SAAAl1B,MACAwE,KAAAg7B,OAAAv/B,OAAAoV,EAAAZ,SAAAjQ,KAAAg7B,OAAAv/B,SAAAi1B,SAAAj1B,QAOAwzK,YAAA,WACA,GACApxK,OADAssK,OAAA+D,SAAAluK,KAAAtH,KAGAgxK,UAAAC,QAAA3pK,KAAAtH,OACAmY,EAAAva,WAAA6zK,UACAnqK,KAAAmqK,OAAAA,OAAAnqK,OAIAnC,MADAmC,KAAAmqK,QACAnqK,KAAAmqK,OAAA/nK,QAEA,GAGAvE,OAAA;A7Mv3CA,A6M03CAmC,KAAA0vK,UAAA,QAAA7xK,OACAmC,KAAA0vK,UAAA,SAAAhG,SAAAM,eAOA4E,WAAA,WACA,GACAngC,MADA8hC,QAAA,CAGAvwK,MAAA+S,GAAA,aACA07H,KAAA,GAAAsyB,WAAAv6J,OAAA7D,UACAkO,EAAAikB,QAAA90B,KAAAg7B,OAAAgnI,QAAA,SAAA1+J,QACA,GAAAsb,KAAA,GAAAmiJ,WAAAz9J,OAAAob,IACA,OAAAE,KAAAijJ,UAAApzB,MAAA,QACA8hC,QAAA,GACA,MAKAvwK,KAAA0vK,UAAA,OAAAa,QACAvwK,KAAA0vK,UAAA,SAAA,IAOAtB,OAAA,WACApuK,KAAAg7B,OAAAjoB,MACA/S,KAAAuuK,YAEAvuK,KAAAslI,WAAA,KACAtlI,KAAAiwD,WAAA,KACAjwD,KAAAwwK,QAAA,KACAxwK,KAAAwrK,OAAA,KACAxrK,KAAAowK,UAAA,KACApwK,KAAAywK,MAAA,KACAzwK,KAAA0uK,YAAA,KACA1uK,KAAA0wK,QAAA,KACA1wK,KAAA2uK,cAAA,KACA3uK,KAAA2wK,UAAA,KACA3wK,KAAA4wK,UAAA,KACA5wK,KAAAmqK,OAAA,KAEAnqK,KAAAjB,SAAA;A7Mz6CA,A6M06CAiB,KAAAggB,SAAA,EACAhgB,KAAA8vK,YAAA,EAEA9vK,KAAAooK,OAAApoK,KAAAg7B,OAAAotI,OACApoK,KAAAivC,UAAAjvC,KAAAg7B,OAAAiU,UACAjvC,KAAAqvK,YAAArvK,KAAAg7B,OAAAq0I,YACArvK,KAAAqoK,WAAAroK,KAAAg7B,OAAAqtI,YAOAwG,UAAA,WACA7uK,KAAAslI,WAAAxiI,EAAA+kK,UAAA7nK,KAAAg7B,SACAh7B,KAAAwwK,QAAAxwK,KAAAslI,WAAArgI,KAAA,WACAjF,KAAAwrK,OAAAxrK,KAAAslI,WAAArgI,KAAA,UACAjF,KAAAowK,UAAApwK,KAAAslI,WAAArgI,KAAA,aAEAjF,KAAAywK,MAAAzwK,KAAAowK,UAAAnrK,KAAA,iBACAjF,KAAA0wK,QAAA1wK,KAAAowK,UAAAnrK,KAAA,mBACAjF,KAAA2wK,UAAA3wK,KAAAowK,UAAAnrK,KAAA,6BACAjF,KAAA4wK,UAAA5wK,KAAAowK,UAAAnrK,KAAA,6BAEAjF,KAAA2uK,cAAA3uK,KAAA6wK,cAAA7wK,KAAA0wK,QAAA1wK,KAAAooK,OAAAH,WAAAC,WAAAloK,KAAA+S,GAAA;A7Mj8CA,E6M88CA89J,cAAA,SAAAh4C,KAAAhgI,MAAAy5B,IAAA93B,IAAAkwJ,UACA,GAAA5qC,aAAAtY,SAUA,OARAkjD,WACA5qC,YAAA,WACAtY,UAAA,QAEAsY,YAAA,aACAtY,UAAA,OAGAqxB,KAAAuuC,YACAlnK,MAAAgpK,cAAArwK,QAAA,EACAyuB,KAAA,EACAk9I,QAAA,QACA1kD,YAAAA,YACAtY,UAAAA,UACAjgF,SAAA,EACA6O,OACA9D,IAAA42I,cAAA52I,MAAA,EACA93B,IAAA0uK,cAAA1uK,MAAA,MAUAi0K,eAAA,SAAA51C,MACAA,MACAA,KAAAtzH,IAAA,GAAAmpC,WAQA6tF,YAAA,WACA,GAAA95F,MAAAziC,IAEAA,MAAAslI,WAAAxvH,GAAA,cAAAinJ,IAAA,SAAAllK,OACAA,MAAA4a,mBAGAzS,KAAAowK,UAAAt6J,GAAA,QAAAinJ,IAAA,UAAA,SAAAllK,OACA,GAAAujI,SAAAt4H,EAAAjL,MAAAya,QACAw+J,QAAA11C,QAAA7/G,QAAA,WACAvW,GAAA8rK,QAAAj7K,KAAA;A7M//CA,A6MigDAgb,EAAAva,WAAAmsC,KAAAz9B,MACAy9B,KAAAz9B,QAIAhF,KAAAwwK,QAAA16J,GAAA,QAAAinJ,IAAA,WACAt6H,KAAA1vB,GAAA,WACA0vB,KAAA0xB,QAEA1xB,KAAAoqI,SAIA7sK,KAAAywK,MAAA36J,GAAA,SAAAinJ,IAAA,SAAAllK,MAAAgB,OACA4pC,KAAAkqI,KAAA9zK,OAAA,KAGAmH,KAAA0wK,QAAA56J,GAAA,SAAAinJ,IAAA,SAAAllK,MAAAgB,OACA4pC,KAAAktI,SACAltI,KAAAgqI,UAAA5zK,OAAA,MAQA21K,cAAA,WACAxuK,KAAAslI,WAAA/+H,IAAAw2J,KACA/8J,KAAAwwK,QAAAjqK,IAAAw2J,KACA/8J,KAAAowK,UAAA7pK,IAAAw2J,KACA/8J,KAAAywK,MAAAlqK,IAAAw2J,KACA/8J,KAAA0wK,QAAAnqK,IAAAw2J,MAQAgU,oBAAA,SAAAl4K,OACAmH,KAAA2uK,eACA3uK,KAAA2uK,cAAApgK,IAAA1V,QAUA+2K,cAAA,SAAA/2K,MAAAs2K,UACAnvK,KAAAooK,OAAA7tK,KAAAC,IAAAytK,WAAA1tK,KAAA+3B,IAAA41I,WAAAvtK,WAAA9B,SAEAs2K,UACAnvK,KAAA+wK,oBAAAl4K,QASAm4K,sBAAA,SAAAn4K;A7MjkDA,A6MkkDAmH,KAAA0uK,aACA1uK,KAAA0uK,YAAAngK,IAAA1V,QASAo4K,qBAAA,SAAAp4K,OACAmH,KAAA2wK,WACA3wK,KAAA2wK,UAAA13K,KAAAmwK,aAAAvwK,SAUAk2K,gBAAA,SAAAl2K,MAAAs2K,UACAnvK,KAAAggB,SAAAzlB,KAAAC,IAAA,EAAAD,KAAA+3B,IAAAtyB,KAAAjB,SAAApE,WAAA9B,SAEAs2K,UACAnvK,KAAAgxK,sBAAAhxK,KAAAggB,UAEAhgB,KAAAixK,qBAAAjxK,KAAAggB,WAQAkxJ,sBAAA,SAAAr4K,OACAmH,KAAA0uK,cACA1uK,KAAAyuK,eAAAzuK,KAAA0uK,aACA1uK,KAAA0uK,YAAA,MAGA71K,OAAA8N,SAAA9N,SACAmH,KAAA0uK,YAAA1uK,KAAA6wK,cAAA7wK,KAAAywK,MAAA,EAAA,EAAA53K,SASAs4K,qBAAA,SAAAt4K,OACAmH,KAAA4wK,YACA/3K,OAAA8N,SAAA9N,OACAmH,KAAA4wK,UAAA33K,KAAAmwK,aAAAvwK,QAAAiJ,OAEA9B,KAAA4wK,UAAA7uK;A7M1nDA,E6MooDA+sK,gBAAA,SAAAj2K,OACAmH,KAAAjB,SAAAxE,KAAA6uC,IAAAzuC,WAAA9B,QACAmH,KAAAkxK,sBAAAlxK,KAAAjB,UACAiB,KAAAmxK,qBAAAnxK,KAAAjB,WAOA8sK,SAAA,WACA7rK,KAAA8uK,gBAAA9uK,KAAAmqK,OAAA1qC,eACAz/H,KAAA0vK,UAAA,SAAA,GACA1vK,KAAA0vK,UAAA,WAAA,GACA1vK,KAAA0vK,UAAA,WAAA1vK,KAAAg7B,OAAAutI,UAMAvoK,KAAAsG,QAAA,SAGAtG,KAAAysK,UAAAzsK,KAAAooK,QACApoK,KAAAitK,OAAAjtK,KAAAqoK,YACAroK,KAAAqvK,YACArvK,KAAA2sK,KAAA3sK,KAAAqvK,aACArvK,KAAAivC,WACAjvC,KAAA6sK,QAQAgB,SAAA,WACA7tK,KAAA0vK,UAAA,SAAA,GAMA1vK,KAAAsG,QAAA,UAOAwnK,gBAAA,WACA9tK,KAAA0vK,UAAA,SAAA,GAMA1vK,KAAAsG,QAAA,iBAOA0lK,QAAA,WACAhsK,KAAAgvK,eAAA;A7MpsDA,A6M0sDAhvK,KAAAsG,QAAA,SAOA4lK,SAAA,WACAlsK,KAAAgvK,eAAA,GAMAhvK,KAAAsG,QAAA,UAOAylK,OAAA,WACA/rK,KAAA8vK,cACA9vK,KAAAgvK,eAAA,GAAA,GACAhvK,KAAA+uK,gBAAA,GAMA/uK,KAAAsG,QAAA,SAGAtG,KAAAoxK,qBACApxK,KAAA0vK,UAAA,SAAA,GACA1vK,KAAA0vK,UAAA,WAAA,GAMA1vK,KAAAsG,QAAA,iBAEAtG,KAAAwoK,MACAxoK,KAAAwvK,WASArD,cAAA,WACAnsK,KAAA+uK,gBAAA/uK,KAAAmqK,OAAAmC,eAMAtsK,KAAAsG,QAAA,WAQA8qK,kBAAA,WACA,MAAApxK,MAAAg7B,OAAAstI,UAAAtoK,KAAA8vK,aAAA9vK,KAAAg7B,OAAAstI,UAQA8G,SAAA,WACA,MAAApvK,MAAA+S,GAAA,WAAA/S,KAAA+S,GAAA,cAAA/S,KAAA+S,GAAA,YAAA/S,KAAAoxK,qBAQA9B,UAAA,WACA,QAAAtvK,KAAAg7B,OAAAutI;A7MhyDA,E6MwyDAgH,WAAA,WACA,MAAAvvK,MAAA+S,GAAA,WAAA/S,KAAAovK,YASAM,UAAA,SAAA7iK,KAAAhU,OASA,MARAA,SAAAA,MAEAmH,KAAAg7B,OAAAjoB,GAAAlG,MAAAhU,MAEAmH,KAAAslI,YACAtlI,KAAAslI,WAAAj3H,YAAAxB,KAAAhU,OAGAmH,MASAqwK,WAAA,SAAAlgI,WAIA,MAHAnwC,MAAA0vK,UAAAv/H,WAAA,GACAnwC,KAAAo0D,SAEAp0D,MASAswK,SAAA,SAAAngI,WAIA,MAHAnwC,MAAAm0D,QACAn0D,KAAA0vK,UAAAv/H,WAAA,GAEAnwC,MAUAgvK,cAAA,SAAApxK,MAAAyzK,OAKA,MAJArxK,MAAA0vK,UAAA,YAAA9xK,OACAoC,KAAA0vK,UAAA,UAAA9xK,OACAoC,KAAA0vK,UAAA,UAAA2B,OAEArxK,MASAikG,QAAA,SAAAlkC,SACA,GAAAjwB,KAAA9vC,KAAAmqK,OACAh8H,OAAA2B,KAAAA,IAAAiwB,QAEA,OAAAlvD,GAAAva,WAAA63C,QACAA,OAAAtoC,MAAAiqC,IAAAvK,OAAA/uC,KAAAsP,UAAA,IADA;A7Mh3DA,G6Mi5DAsmK,mBAAA,SAAApxI,QACA,GAAAmvI,QAAAt5J,EAAA9J,MAAAukK,YACA,OAAAnB,QAAA/nK,KAAA44B,QA8CA,OArCAoxI,oBAAAzC,QAAA,SAAAjxK,KAAAgoK,MACA,MAAAgJ,UAAAC,QAAAjxK,KAAAgoK,OAQA0L,mBAAAxC,aAAA,SAAAlJ,MACA,MAAAgJ,UAAAE,aAAAlJ,OAQA0L,mBAAAvC,aAAA,SAAAnJ,MACA,MAAAgJ,UAAAG,aAAAnJ,OAOA0L,mBAAApC,WAAA,WACA,MAAAN,UAAAM,cAQAoC,mBAAAC,eAAA,IAEAD,qBCljEAxiJ,OAAA,kBAAA,SAAA,UAAA,SAAA9mB,EAAA+N,GAGA,QAAAygK,WAAAC,WAEA,SAAA/qK,OAAAgrK,kBAAAD,WAAAA,YAAA/qK,QAUA,GAAAirK,gBAQAv4J,OAAA,SAAAk0B,UAAA/H;AACAx0B,A9M0FA,E8M1FA8jB,MAAA,WACA,GAAA28I,UAAA9qK,OAAA0S,SAAA1S,OAAA0S,OAAApW,EAAA,CACA,GAAA28C,IAAAj5C,OAAA0S,OAAApW,CACA28C,IAAAj5C,OAAA0S,OAAArd,UAAAyK,QAAA8mC,UAAA/H,cAUAt5B,IAAA,SAAAqhC,UAAA/H,MACAx0B,EAAA8jB,MAAA,WACA,GAAA28I,UAAA9qK,OAAAuF,MAAAvF,OAAAuF,IAAAjJ,EAAA,CACA,GAAA28C,IAAAj5C,OAAAuF,IAAAjJ,CACA28C,IAAAj5C,OAAAuF,IAAAlQ,UAAAyK,QAAA8mC,UAAA/H,cAMA,OAAAosI,iBC/DA7nJ,OAAA,gBACA,SACA,SACA,OACA,gBACA,mBACA,iBACA,kBAEA,SAAA9mB,EAAA+N,EAAA6qB,GAAAr+B,SAAAm9H,YAAA8wC,YAAAoG,gBACA,YAEA,IAAA7jI,IAAA,YACAwsF,OAAA,MAAAxsF,GAGAnd,UACAihJ,eAAA,aAQAC,aACAnb,OACAj7J,MAAA,IACAC,OAAA,KAEAi7J,OACAl7J,MAAA,IACAC,OAAA;A/MmGA,G+M/FAo2K,kBACAC,YAAAjhK,EAAAwoB,SAAA,wDACA04I,gBAAAlhK,EAAAwoB,SAAA,6DACA24I,cAAAnhK,EAAAwoB,SAAA,uDACA44I,cAAAphK,EAAAwoB,SAAA,uDACA64I,cAAArhK,EAAAwoB,SAAA,wCACA84I,YAAAthK,EAAAwoB,SAAA,0GACA+4I,cAAAvhK,EAAAwoB,SAAA;A/MyFA,A+MxFAg5I,eAAAxhK,EAAAwoB,SAAA,oCACAi5I,YAAAzhK,EAAAwoB,SAAA,qBACAk5I,aAAA1hK,EAAAwoB,SAAA,oCAQAm5I,SAAA,SAAA95K,KAAA7C,MACA,GAAA48K,MAAAzyK,KAAAtH,KAAA,WAEA,OADA7C,MAAA68K,QAAAxrK,KAAAo0B,UAAAzlC,KAAA+oB,KACA/N,EAAAva,WAAAm8K,MACAA,KAAA58K,MADA,SASA88K,WAYAvwK,KAAA,SAAA0M,SACA,GAAA2zB,MAAAkwI,SAMA,OAFA7jK,SAAA+B,EAAA6f,SAAA5hB,YAAA4hB,UAEA1wB,KAAAnL,KAAA,WACA,GAAAgkI,MAAA/1H,EAAA9C,KACA64H,MAAAhjI,KAAAwkI,QAeAxB,KAAA85C,UAAA,SAAA7jK,UAbA+pH,KAAAvqH,SAAAQ,QAAA6iK,iBACA94C,KAAA1qH,SAAAW,QAAA6iK,gBAGA94C,KAAAhjI,KAAAwkI,OAAAvrH,SACA2zB,KAAAmhG,QAAA/K,MAMAA,KAAAvyH,QAAA,UAAAunC,QAaAsrE,OAAA,SAAAtjH;A/MoBA,A+MnBA,MAAAmK,MAAAnL,KAAA,WACA,GAAAgkI,MAAA/1H,EAAA9C,MACA8O,QAAA+pH,KAAAhjI,KAAAwkI,OACAxB,MAAAhjI,KAAAwkI,OAAAxpH,EAAA/L,MAAAgK,QAAAjZ,OACA88K,UAAA/uC,QAAA/K,SAOA+5C,aAAA,WACAD,UAAAxI,SACAwI,UAAAxI,OAAAz7H,UACAikI,UAAAxI,OAAA,OAQAvmC,QAAA,SAAA/K,MACA,GACA80B,UAAAyiB,UAEA1mJ,QAAAhxB,KAHA+pC,KAAAkwI,UAEA7jK,QAAA+pH,KAAAhjI,KAAAwkI,OAGA53F,MAAAmwI,eAEA9jK,UACApW,KAAAoW,QAAApW,MAAA2E,SAAAsjK,aAAAD,KAAA5xJ,QAAA4xJ,KAAA7zJ,KAAAiC,QAAA8P,MAEA9P,QAAA8P,MACA9P,QAAAjC,OACAiC,QAAAjC,KAAAiC,QAAA8P,IAAA9R,UAAAgC,QAAA8P,IAAAka,YAAA,KAAA,EAAAhqB,QAAA8P,IAAAka,YAAA,OAEApP,QAAAmoJ,iBAAAW,SAAA95K,KAAAoW,UAGA4a,UACAA,QAAAmoJ,iBAAAC,YAAAjhK,EAAA/L;A/MrBA,A+MqBA+tK,KAAAn3I,GAAA,yBAAA5sB,WAEA6+I,SAAA7qJ,EAAA4mB,SAEAikI,SAAA73I,GAAA,OAAA,WACA47J,eAAAx4J,OAAA,iBAGApK,QAAAtT,OACAmyJ,SAAA9oJ,KAAA,QAAAiK,QAAAtT,OAEAsT,QAAArT,QACAkyJ,SAAA9oJ,KAAA,SAAAiK,QAAArT,QAGAo9H,KAAAx3H,QAAAmd,KAAAmvI,WACA,UAAAj1J,MAAA,UAAAA,OACAoW,QAAA8P,MACA6jB,KAAA0nI,OAAAmB,aACA1sJ,IAAA9P,QAAA8P,IACAlmB,KAAAoW,QAAA4xJ,KACA34D,SAAA4lD,WAEA73I,GAAA,QAAA,WACA,GAAAg9J,SAAAlB,YAAA5xK,KAAA+vK,YAAA6B,YAAAnb,MACAj7J,MAAAsT,QAAAtT,OAAAs3K,QAAAt3K,MACAC,OAAAqT,QAAArT,QAAAq3K,QAAAr3K,MACAuE,MAAA+1G,OAAAv6G,MAAAC,UAIAqH,EAAA,QACAyD,IAAA,wBACAuP,GAAA,uBAAA,SAAAje,OACA,KAAAA,MAAA6b,SACA+uB,KAAAmwI;A/MvDA,G+M8DAxC,UAAAttK,EAAA,kHAAA,iBACAstK,UAAA7pK,IAAA,0BAAAuP,GAAA,yBAAA,SAAAje,OACAA,MAAAub,kBACAtQ,EAAA9C,MAAAub,QAAA,gBAAAvkB,SACAo5K,UAAA7pK,IAAA,0BACAk8B,KAAAmwI,mBAUA/5C,KAAAvyH,QAAA,UAAAunC,MAGAs8H,OAAA,KAQAz7H,QAAA,WACAikI,UAAAC,eAEA5yK,KAAAnL,KAAA,WACA,GAAAgkI,MAAA/1H,EAAA9C,KAMA64H,MAAAvyH,QAAA,WAAAunC,OAeA,OATA2sF,aAAA7uE,SAAA9d,GAAA8kI,WASA,SAAA1iH,YAEAA,WAAAhrD,KAAA,kBAAApQ,KAAA,WACA,GAAAgkI,MAAA/1H,EAAA9C,KACA64H,MAAA85C,WACA/zJ,IAAAi6G,KAAAhjI,KAAA;A/MrHA,A+MsHA6C,KAAAmgI,KAAAhjI,KAAA,gBACA6qK,KAAA7nC,KAAAhjI,KAAA,gBACA2F,MAAAq9H,KAAAr9H,QACAC,OAAAo9H,KAAAp9H,gBClPAmuB,OAAA,iDACA,8CACA,iDACA,gBACA,SAAAokC,IAAA0vG,gBAAAiV,WACA,YAEA,QACAngF,SAAA,SACAn5D,SAAA20B,IACAoR,aAAAs+F,gBAAAn4J,IACAwsD,OAAA,SAAAtrB,KACA,GAAAwpB,YAAAytG,gBAAAn4J,IAAAkhC,KACAssI,gBACAn0J,IAAA6nB,IAAAmtD,SAAA8B,WAAAjvD,IAAA5hC,KAAA,SACA67J,KAAAj6H,IAAA5hC,KAAA,QACArJ,MAAAirC,IAAA5hC,KAAA,UAAA,OAEA4hC,KAAA5hC,KAAA,YACAkuK,eAAAt3K,OAAAgrC,IAAA5hC,KAAA,WAEAorD,WAAA0iH,UAAAI;AhNqGA,KiN3IAnpJ,OAAA,oDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SARA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IAsBA,OAZA4oD,SAAA,8BACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD;AAAA,AjN6HA,MiN7HAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,YACAjD,OAAAlW,QAAAs+C,QAAAnlC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAolC,OAAAnlC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,eCJAh/B,OAAA,wDAAA,UAAA,SAAA9mB;AACA,AlNuHA,YkN3GA,SAAAkwK,uBAAAx0J,KAAAo1E,UAGA,MAFAp1E,MAAAA,MAAA,GAEAA,KAAAnpB,QAAA49K,cAAA,SAAA32K,OAAA+kB,GAAA2rE,GAAAkG,IACA,GAAAlF,UAAA4F,SAAA8B,WAAA1I,KAAAA,EACA,OAAA3rE,IAAA2sE,SAAAkF,KAfA,GAAA+/E,eAAA,qCAsBA,QACAD,sBAAAA,yBAIAppJ,OAAA,2BAAA,WCjDApjB,OAAA0sK,UAAA1sK,OAAA0sK,aAOA,IAAAC,2BAQAxnH,SAAA,SAAAynH,SAEA5sK,OAAA0sK,UAAAE,QAAAlwE,qBAAAkwE,SAQAC,YAAA,SAAAC,eASAC,kBAAA,SAAAx8E,gBAEA,GAAAvwF,OAAA0sK,UAAAn8E,gBAAA,CAEA,GAAAjiD,aACAiiB,MAAAvwD,OAAA0sK,UAAAn8E;AAEA,AnNmGA,ImNnGA,GAAAlqF,QAAAkqD,OACA,kBAAAA,OAAAlqD,MAEAioC,SAAAjoC,MAAAkqD,MAAAlqD,MACA,OAAAkqD,MAAAlqD,OAAA,gBAAAkqD,OAAAlqD,MAEAioC,SAAAjoC,MAAAkqD,MAAAlqD,MAAApI,cAGAqwC,SAAAjoC,MAAAkqD,MAAAlqD,KAIA,OAAAioC,UAGA,KAAA,mDAAAiiD,gBAMA,OAAAo8E,4BC5CAvpJ,OAAA,8DACA,eACA,mDACA,iDACA,uDACA,wBACA,kCACA,SAAA8Y,QAAAsrB,IAAA0vG,gBAAA8V,gBAAAC,sBAAA3hF;AACA,ApNkHA,YoNzGA,IAAA4hF,SAAA,SAAA7hF,aAEA,GAAAkF,gBACAyF,IAAA3K,YAAAh8F,KAAA,QAAAk0B,MAEA,KAAAyyE,IAAA,CAKA,GAHAzF,eAAAlF,YAAAkF,eACAyF,IAAAi3E,sBAAAF,kBAAAx8E,iBAEAyF,IAOA,KAAA,iDAAAzF,cAJAlF,aAAAh8F,KAAA,MAAA2mG,KACAA,IAAAm3E,gBAAA9hF,YAOA,MAAA2K,MAkBAzqC,OAAA,SAAA8/B,YAAA/iF,SACA,GAAA2zB,MAAAziC,IAGA,OAFA8O,SAAAA,YAEA,GAAA4zB,SAAA,SAAAt5B,QAAAC,QAEA,GAAA+3F,iBACAxjG,SACAg2K,oBAAAvoB,UACArmJ,GAAA6sF,YAAAhtF,KAAA,MACAkyF,eAAAlF,YAAAkF,eACAoK,iBAAAryF,QAAAqyF,iBAAAryF,QAAAqyF,iBAAA1+D,KAAA+8D,UAAA,oBACAxkE,OAAA62D,YAAAoF,WACA48E,KAAAnW,gBAAAn4J,IAAAssF,aAAAz2E,WACA47E,WAAAnF,YAAAmF,WAAA3hG,QAAA,QAAA;AAIA+rG,ApNiDA,gBoNlDAD,kBAAAA,iBAAApK,gBACAoK,iBAAApK,gBAGAt0D,KAAAg9D,kBAAAvR,UAAA,0BAAA6I,gBAEAqK,kBACAwyE,mBAAAvoB,MAAAt0D,gBAAAqK,gBACAnjE,QAAAjD,OAAA44I,qBAIA31I,SAAA+4D,YAAA,WAEA,GAAAwF,KAAAk3E,QAAA7hF,YACA,OAAA2K,MAAAq3E,KAAA78K,QAEAwlG,IAAAyqE,WAAAjiK,GAAA6uK,KAAA,GAAA74I,QAEAwhE,IAAAs3E,mBAAAl2K,OACAwL,WAEAC,OAAA,sCAAArE,KACAqE,WAWAqlC,QAAA,SAAAmjD,aACA6hF,QAAA7hF,aAAAnjD,WASAD,SAAA,SAAAojD,YAAAj0F,OACA81K,QAAA7hF,aAAAiiF,mBAAAl2K,QAUA4wC,SAAA,SAAAqjD;AACA,ApNLA,MoNKA6hF,SAAA7hF,aAAAkiF,qBAGA,QACAvhF,SAAA,cACAn5D,SAAA20B,IACAl8C,QAAA,SAAA+/E,YAAAh8F,MAGA,GAAAo9F,QAAAp9F,KAAAo9F,MAIA,OAHAA,QAAAnB,KAAAsB,uBAAAH,QACAA,OAAAugF,gBAAAR,sBAAA//E,OAAAjzF,MACAnK,KAAAo9F,OAAAA,OACAp9F,MAEAk8D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAmpC,QAAAA,QACAF,SAAAA,SACAC,SAAAA,YCzKA7kB,OAAA,oDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC;AAcA,ArNgIA,MqN3IAiV,SAAA,mDACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAwS,UAAAxS,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,mBACAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,yGACAjD,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D;AAAAzY,ArNoIA,QqNpIAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,iCCDAh/B,OAAA,sDACA,mDACA,kDACA,SAAAokC,IAAA0vG,iBACA,YAEA,QACAlrE,SAAA,cACApzB,aAAAs+F,gBAAAn4J,IACA8zB,SAAA20B,OCzBApkC,OAAA,mDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,UACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,AvN0IA,OuN1IA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA8tG,YAAA9tG,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IATA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IAuBA,OAZA4oD,SAAA,qBACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA59C,WAAA49C,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,iBACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAp1D,WAAAo1D,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA;AvNkIA,CuNjIAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,WACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA8tG,QAAAxmH,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,eCVAh/B,OAAA,qDACA,kDACA,kDACA,SAAAokC,IAAA0vG;AACA,AxNkIA,YwNhIA,QACAlrE,SAAA,aACAn5D,SAAA20B,IACAoR,aAAAs+F,gBAAAn4J,OCzBAqkB,OAAA,oDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,gBAYA,OATAiV,SAAA,qDACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA;AzN8IA,CyN7IAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,oCACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,0DCOAlkC,OAAA,sDACA,mDACA,kDACA,SAAAokC,IAAA0vG;AACA,A1N8HA,Y0N5HA,QACAlrE,SAAA,MACApzB,aAAAs+F,gBAAAn4J,IACA8zB,SAAA20B,OC/BApkC,OAAA,uDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,QACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAkmH,iBAAAlmH,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,KATA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC;AA2BA,A3N0HA,M2N1IA4oD,SAAA,iEACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,mBACAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,qBACAna,kBAAAma,OAAAD,QAAAA,OAAAthD,OAAAuhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAlhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAj4D,WAAAi4D,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,uBACAna,kBAAAma,OAAAD,QAAAA,OAAAthD;AAAAuhD,A3NkIA,O2NlIA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAlhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyD,YAAAsyD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,uBACAna,kBAAAma,OAAAD,QAAAA,OAAAthD,OAAAuhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAlhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAryD,aAAAqyD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,eACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAmmH,cAAA7+H,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;A3N6HA,K4NrIAh/B,OAAA,yDACA,sDACA,kDACA,SAAAokC,IAAA0vG,iBACA,YAEA,QACAlrE,SAAA,SACApzB,aAAAs+F,gBAAAn4J,IACA8zB,SAAA20B,OC/BApkC,OAAA,uDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,gBAcA,OAXAiV,SAAA,2CACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,A7NoJA,O6NpJA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,mBACAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,MACAjD,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,YCKAh/B,OAAA,0DACA,sDACA,kDACA,SAAAokC,IAAA0vG;AACA,A9NmIA,Y8NjIA,QACAlrE,SAAA,UACApzB,aAAAs+F,gBAAAn4J,IACA8zB,SAAA20B,OC/BApkC,OAAA,wDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,gBAgBA,OAbAiV,SAAA,iEACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA;A/NqJA,C+NpJAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,wFACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,iHACAjD,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD;AAAA0yD,A/N8IA,a+N9IAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,yBCGAh/B,OAAA,0DACA,uDACA,kDACA,SAAAokC,IAAA0vG,iBACA,YAEA,QACAlrE,SAAA,UACApzB,aAAAs+F,gBAAAn4J,IACA8zB,SAAA20B,OC/BApkC,OAAA,6DAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB;AAAA9+C,AjO6JA,KiO7JAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,gBAgBA,OAbAiV,SAAA,4BACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,mBACAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,YACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B;AjOmJA,MiOnJA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,MACAjD,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,gBCGAlkC,OAAA,+DACA,SACA,4DACA,kDACA,SAAA/Y,EAAAm9C,IAAA0vG,iBACA,YAEA,QACAlrE,SAAA,eACApzB,aAAAs+F,gBAAAn4J,IACA8zB,SAAA20B,IACAl8C,QAAA,SAAA+pF,OAAAhmG,MAEA,MADAA,MAAAuF,KAAAyV,EAAAyoB,SAAAzjC,KAAAuF;AACAvF,AlO+HA,SmO5IA+zB,OAAA,8FACA,sDACA,kDACA,SAAAokC,IAAA0vG,iBACA,YAEA,QACAlrE,SAAA,8CACApzB,aAAAs+F,gBAAAn4J,IACA8zB,SAAA20B,OC/BApkC,OAAA,wFAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC;AAcA,ApOiJA,MoO5JAiV,SAAA,2FACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,mBACAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,MACAjD,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D;AAAAzY,ApOqJA,QoOrJAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,YCKAh/B,OAAA,0FACA,uFACA,kDACA,SAAAokC,IAAA0vG,iBACA,YACA,QACAlrE,SAAA,0CACApzB,aAAAs+F,gBAAAn4J,IACA8zB,SAAA20B,OC9BApkC,OAAA,+EAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D;AAEA,AtO6JA,GsO7JAi4D,QAAAlF,OAAA,EAMA,OALAA,SAAA,oDACAjV,kBAAAma,OAAAD,QAAAA,OAAA2tC,YAAA1tC,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA5f,aAAA4f,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,YACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,8EAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAMA,OALAA,SAAA,uDACAjV,kBAAAma,OAAAD,QAAAA,OAAA2tC;AAAA1tC,AtOiJA,OsOjJA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA5f,aAAA4f,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,YACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,iFAtBA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IAsCA,OAdA4oD,SAAA,4DACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,AtO0IA,OsO1IA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,mBACAjD,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,2FACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAjlD,QAAAwsC,QAAAJ,QAAAvS,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAwN,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;AtOmIA,CsOlIAiC,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,gECpBAh/B,OAAA,iFACA,8EACA,kDACA,SAAAokC,IAAA0vG,iBACA,YAEA,QACAlrE,SAAA,iCACApzB,aAAAs+F,gBAAAn4J,IACAuM,QAAA,SAAA+pF,OAAAhmG,MAEA,MADAA,MAAA+S,OAAA,IAAAqH,SAAApa,KAAA2lG,YAAA5uF,WAAAsnK;AACAr+K,AvOyIA,MuOvIAwjC,SAAA20B,OCZApkC,OAAA,gFACA,sDACA,kDACA,SAAAokC,IAAA0vG,iBACA,YAEA,QACAlrE,SAAA,gCACApzB,aAAAs+F,gBAAAn4J,IACA8zB,SAAA20B,OC/BApkC,OAAA,0EAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD;AzOgKA,MyOhKA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,MAGA,QAFAA,OAAAlW,QAAAy8C,QAAAtjC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAujC,OAAAtjC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GAGA,QAAAwvG,UAAAzvG,OAAAh4D,MAEA,GAAAi4D,OAEA,OADAA,cAAAD,UAAAhE,aAAAgE,OAAAhoD,MAAAgoD,QAAAA;AACAC,AzOuIA,QyOvIA,IAAAA,OAAAA,OACA,GAnCA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,KAAAylD,mBAAA9Q,QAAA8Q,kBAwDA,OApBAmD,SAAA,QACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,wEACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD;AAAA,AzOgIA,MyOhIAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,iDACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAujC,QAAAh8C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;AACA95C,AzOuHA,SyOvHAsmC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAkmH,SAAAznK,MAAAA,KAAAA,OACAg1D,OAAAlW,QAAAgnD,SAAA7tC,OAAAjD,OAAAr0D,KAAAq3D,OAAA/+C,UACA+7C,OAAAgD,QAAAA,OAAA8tC,QAAA7tC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,OAAA/+C,SAAA+7C,QACAlW,QAAAgnD,UAAA7tC,OAAArI,mBAAAjvD,KAAAq3D,OAAAC,QAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAkmH,SAAAznK,MAAAA,KAAAA,SACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,0IC3DAh/B,OAAA,+EAAA,cAAA,SAAAmuB;AACA,A1O6KA,M0O7KAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAGA,MAAA,kBAPAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAlF,OAAA,GAAAnmB,KAAAziC,IAYA,OAJA4oD,SAAA,cACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAxsD,OAAA+zC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,0FCfAh/B,OAAA,oDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C;AACAmK,A3O6KA,K2O7KAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,gBAYA,OATAiV,SAAA,aACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,+HACAjD,OAAAlW,QAAAzZ,SAAA4yB,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3yB,QAAA4yB,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D;AAAAzY,A3OmKA,Q2OnKAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,sBAKAlkC,OAAA,iECpBA,SACA,iCACA,oDACA,SAAA/Y,EAAAihF,KAAAqiF,gBAEA,GAAAC,sBAAA,OAAA,UAAA,QAAA,WAEAC,YAAA,SAAA74E,YAAAtgE,QAAA2C,UACA79B,KAAAw7F,YAAAA,YACAx7F,KAAAs0K,eAAAp5I,SAAA,GACAl7B,KAAAu0K,eAAA,GACAv0K,KAAAu1C,MAAA,OACAv1C,KAAAkuC,OAAA4jD,KAAAC,YAAA,gBACA/xF,KAAA69B,SAAAA,SACA79B,KAAA6zK,KAAA,KACA7zK,KAAApC,OAAA,EAiGA,OA9FAy2K,aAAAG,aAAA,SAAAj/H,OACA,MAAA1kC,GAAA7N,QAAAoxK,oBAAA7+H,QAAA;A5O8JA,E4O3JA8+H,YAAAlyK,UAAAssC,SAAA,SAAA7wC,OACAoC,KAAApC,MAAAA,OAGAy2K,YAAAlyK,UAAAsyK,WAAA,SAAA72K,OACA,MAAAoC,MAAApC,QAAAA,OAGAy2K,YAAAlyK,UAAAuyK,MAAA,WACA,MAAA10K,MAAAkuC,QAGAmmI,YAAAlyK,UAAA6vB,OAAA,SAAAi+B,YAEAA,WAAAryC,OAAAu2J,gBACAj5I,QAAAl7B,KAAAs0K,eACApmI,OAAAluC,KAAAkuC,UAGAluC,KAAA6zK,KAAA5jH,WAAAhrD,KAAA,IAAAjF,KAAAkuC,SAGAmmI,YAAAlyK,UAAAg3G,OAAA,SAAArqG,SAEA,GAAAymC,OAAAzmC,SAAAA,QAAAymC,MAAAzmC,QAAAymC,MAAA,GACAra,QAAApsB,SAAAA,QAAAosB,QAAApsB,QAAAosB,QAAA,GACA9V,QAAAtW,SAAAA,QAAAsW,QAAAtW,QAAAsW,QAAA,EACAllB,MAAA4O,SAAA,kBAAAA,SAAA,MAAAA,QAAA5O,MAAA,KACAJ,KAAAgP,SAAA,kBAAAA,SAAA,KAAAA,QAAAhP,KAAA;AAaA,A5OmHA,G4O9HAy1C,OAAA8+H,YAAAG,aAAAj/H,SACAv1C,KAAA6zK,KAAAzlK,YAAA,YAAApO,KAAAu1C,OAAApnC,SAAA,YAAAonC,OACAv1C,KAAA6zK,KAAA5uK,KAAA,SAAAmJ,YAAA,QAAApO,KAAAu1C,OAAApnC,SAAA,QAAAonC,OACAv1C,KAAAu1C,MAAAA,OAGAra,UACAl7B,KAAA6zK,KAAA5uK,KAAA,wBAAAuZ,KAAA0c,SACAl7B,KAAAu0K,eAAAr5I,SAGA9V,QAAA,CACA,GAAAwyE,OAAA53F,IACAE,QACAA,MAAA1J,KAAAohG,OAEAA,MAAAx3F,MAAAjC,WAAA,WACA2B,MACAA,KAAAtJ,KAAAohG,OAEAA,MAAAx3F,MAAA,MACAglB,WAKAivJ,YAAAlyK,UAAAwyK,SAAA,SAAAp/H,MAAAnwB,SACA,GAAAtW,UACAymC,MAAAA,MAGAnwB,WACAtW,QAAAsW,QAAAnV,SAAAmV,SACAtW,QAAAhP,KAAA,WACAE,KAAA20K,SAAA,UAIA30K,KAAAm5G,OAAArqG,UAGAulK,YAAAlyK,UAAAyyK,SAAA;AACA,A5OqFA,M4OrFA50K,MAAAu1C,OAGA8+H,YAAAlyK,UAAA0yK,WAAA,SAAA35I,QAAA9V,SACAplB,KAAAm5G,QAAAj+E,QAAAA,QAAA9V,QAAAA,WAGAivJ,YAAAlyK,UAAAyX,MAAA,WACA5Z,KAAAm5G,QAAA5jE,MAAA,OAAAra,QAAAl7B,KAAAs0K,iBACAt0K,KAAApC,OAAA,GAGAy2K,YAAAlyK,UAAA2yK,SAAA,SAAAj/K,MACA,kBAAAmK,MAAA,UACAA,KAAA69B,SAAArnC,KAAAwJ,KAAAnK,OAIAw+K,cChHAzqJ,OAAA,qDAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAA6R,cAAA7Q,QAAA6Q;AAkBA,A7O8JA,M6O7KAoD,SAAA,+BACAiC,OAAAlW,QAAAY,OAAAuY,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAtY,MAAAuY,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,gDACAjD,OAAAlW,QAAAY,OAAAuY,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAtY,MAAAuY,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,4CACAjD,OAAAlW,QAAAzZ,SAAA4yB,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3yB;AAAA4yB,A7OoKA,a6OpKAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,6BACAna,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,iBAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,iBAAA/+C,WACA,2DCCA8a,OAAA,wEACA,SACA,SACA,OACA,iDACA,gEACA,qDACA,SAAA/Y,EAAA/N,EAAA44B,GAAAgiI,gBAAA2W,YAAAU;AACA,A9OwJA,Y8OrJA,IAAAC,kBAQAC,oBAOAC,qBAAA,SAAAxiF,QAAA78F,MACA,GAAAq4C,QAAAwkD,QAAA4B,WACA0gF,eAAA9mI,SACAr9B,EAAAhc,KAAAmgL,cAAA9mI,QAAA,SAAAinI,aACAA,YAAAL,SAAAj/K,aAYAu/K,kBAAA,SAAA1iF,QAAAx3D,QAAAm6I,kBACA,GAAAnnI,QAAAwkD,QAAA4B,YACA6gF,YAAA,GAAAd,aAAA3hF,QAAAx3D,QAAAm6I,iBASA,OAPAL,eAAA9mI,UACA8mI,cAAA9mI,YAEA8mI,cAAA9mI,QAAAinI,YAAAT,SAAAS,YAEAA,YAAAnjJ,OAAAlvB,EAAA,yBAAA46J,gBAAAn4J,IAAAmtF,WAEAyiF,aAOAG,mBAAA,SAAA5iF,SACAsiF,cAAAtiF,QAAA4B;AACAopE,A9OmGA,gB8OnGAn4J,IAAAmtF,SAAAztF,KAAA,0BAAA5D,SAOAk0K,kBAAA,SAAA7iF,SACA,GAAAxkD,QAAAwkD,QAAA4B,WACA0gF,eAAA9mI,SACAr9B,EAAAhc,KAAAmgL,cAAA9mI,QAAA,SAAAinI,aACAA,YAAAv7J,WAeA47J,yBAAA,SAAAh6E,YAAA1sF,SAEA,GAOAmiC,KAPAxO,KAAAziC,KACAsyB,IAAAxjB,QAAAwjB,KAAA,EACA93B,IAAAsU,QAAAtU,KAAA,EACAylG,YAAAnxF,QAAAmxF,YACAzqC,QAAA1mD,QAAA0mD,SAAA3kD,EAAAlJ,OACA8tK,YAAA3mK,QAAA2mK,eAAA,GAAA,EAAA5kK,EAAAxL,KAAAm2F,YAAAqF,cACA60E,mBAAA,CAGA,KAAA7kK,EAAAva,WAAA2pG,aACA,KAAA,+BAIAzlG,KAAA,IAAAi7K,eAAA,GAAAA,YAAAj7K,OACAA,MAAA83B,KACAojJ,mBAAA,EACAzkI,IAAA,GAAAz2C,IAAAkhC,GAAA,oCAAAlhC,KAAAkhC,GAAA,qCAAAlhC;AAEAioC,A9OqDA,K8OrDA2yI,kBAAA55E,YAAAvqD,IAAA,SAAAp7C,MAEAoqG,YAAAzE,aAAAxkG,QAAAwD,KACAwF,KAAA20K,SAAA,WACA30K,KAAAy0K,WAAA,cACAz0K,KAAAm5G,QACA5jE,MAAA,UACAra,QAAAQ,GAAA,2BACAtW,QAAA,IACAllB,MAAA,WACAs1D,QAAA3/D,OAEAiK,KAAA,WACAE,KAAAm5G,QAAA5jE,MAAA,UAAAra,QAAA+V,SAIAjxC,KAAAyuC,SAAA,cAEAzuC,KAAA4Z,WAGApf,IAAA83B,MACA2e,IAAA,GAAAz2C,IAAAkhC,GAAA,mCAAAlhC,KAAAkhC,GAAA,oCAAAlhC,KACAioC,KAAA2yI,kBAAA55E,YAAAvqD,IAAA,SAAAp7C,MAEAoqG,YAAAzE,aAAAxkG,QAAAwD,KAEAwF,KAAA20K,SAAA,WACA30K,KAAA60K,WAAAn5I,GAAA,4BACA17B,KAAAy0K,WAAA,cACAz0K,KAAAm5G;AACA5jE,A9OsBA,M8OtBA,UACAnwB,QAAA,IACAllB,MAAA,WACAs1D,QAAA3/D,OAEAiK,KAAA,WACAE,KAAA20K,SAAA,WAKA30K,KAAAyuC,SAAA,cAEAzuC,KAAA4Z,aAMA87J,mBAAApjJ,IAAA,IAAAmjJ,eAAA,GAAAA,YAAAnjJ,OACA2e,IAAA,GAAA3e,IAAAoJ,GAAA,8BAAApJ,KAAAoJ,GAAA,sCAAAlhC,KACAioC,KAAA2yI,kBAAA55E,YAAAvqD,IAAA,WACAgvD,YAAAzE,aAAAxkG,QAAAs7B,IACAtyB,KAAA20K,SAAA,WAEA30K,KAAA4Z,YAaA+7J,mBAAA,SAAAjjF,QAAAx3D,QAAAqa,OAIA,GAFAA,MAAAA,OAAA,OAEA8+H,YAAAG,aAAAj/H,OAAA,CAEA,GAAA0a,YAAAytG,gBAAAn4J,IAAAmtF,QAEAziC,YAAAhrD,KAAA,2BAAAmZ,QAAA22J,UACAx/H,MAAAA,MACAra,QAAAA;A9OzBA,G8O4BA,IAAA06I,QAAA3lH,WAAAhrD,KAAA,4BACA4wK,QAAA,WACAD,OAAA7tJ,UAMA,OAHA6tJ,QAAA3wK,KAAA,kBAAA6Q,GAAA,QAAA+/J,SACA13K,WAAA03K,QAAA,KAEAD,SAQAE,oBAAA,SAAApjF,SACAgrE,gBAAAn4J,IAAAmtF,SAAAztF,KAAA,sBAAA5J,UAGA,OAAA45K,sBC1NArrJ,OAAA,uDAAA,UAAA,SAAA/Y,GAEA,YAgDA,SAAAklK,WAAAl9K,MAAAm9K,UAEA,GAAAC,OAAA,GACAp+H,KAAAh/C,MAAAg/C,IAIA,OAFAm+H,UAAA,mBAAAA,UAAAA,UAAA,EAEAn+H,MAEAhnC,EAAAmkB,MAAAkhJ,YAAA,SAAAC,UAAAC,UACA,MAAArsJ,UAAA8tB,KAAAu+H,WAEAH,OAAA,SAAA,IAAAG,SAAA,KAAA,GACAH,OAAAE,UAAAt+H,KAAAu+H;A/O4GA,C+O1GA,GALA,SASAH,OAZA,OAwBA,QAAAI,WAAAx9K,MAAAm9K,UAEA,GAAAC,OAAA,GACA3wH,KAAAzsD,MAAAysD,IAIA,OAFA0wH,UAAA,mBAAAA,UAAAA,UAAA,EAEA1wH,MAEAz0C,EAAAmkB,MAAAkhJ,YAAA,SAAAC,UAAAC,UACA,MAAArsJ,UAAAu7B,KAAA8wH,WAEAH,OAAA,SAAA,IAAAG,SAAA,KAAA,GAEAH,OAAA,IAEAplK,EAAAhc,KAAAywD,KAAA8wH,UAAA,SAAAv9K,OACAo9K,OAAAE,UAAAt9K,OAAA,OAGAgY,EAAAxL,KAAAigD,KAAA8wH,aACAH,MAAAA,MAAAnpK,UAAA,EAAAmpK,MAAAj/K,OAAA,IAGAi/K,OAAA,KAEA,GAhBA,SAoBAA,OAvBA,OAiCA,QAAAK,aAAAz9K,OACA,MAAAA,QAAAA,MAAAuhE,OACA,YAAAlzD,KAAAo0B,UAAAziC,MAAAuhE,QAEA,GAzHA,GAAA87G,cACA57I,UAAA,SAAAzhC,OACA,MAAAA,OAAA,OAAA,SAEAkiD,QAAA,SAAAliD,OACA,MAAAA,QAEAgoB,QAAA,SAAAhoB;AACA,A/OgKA,M+OhKAA,QAEAsxB,OAAA,SAAAtxB,OACA,MAAA,KAAAA,MAAA,OAAA,IAAAA,MAAA,KAEAuoI,MAAA,SAAAvoI,OACA,MAAA,IAAAA,MAAA,GAAA,KAAAA,MAAA,GAAA,KAEAytD,KAAA,SAAAztD,OACA,MAAA,IAAAA,MAAA,GAAA,KAAAA,MAAA,GAAA,KAEA09K,aAAA,SAAA19K,OACA,MAAA,IAAAA,MAAA,GAAA,KAAAA,MAAA,GAAA,KAEAkG,SAAA,SAAAlG,OACA,MAAAA,QAEA4gB,KAAA,SAAA5gB,OACA,MAAA,eAEAkoE,IAAA,SAAAloE,OACA,MAAAA,QAEA29K,gBAAA,SAAA39K,OACA,MAAAA,QAEA+yF,WAAA,SAAA/yF,OACA,MAAAA,QAyFA,QACAk9K,UAAAA,UACAM,UAAAA,UACAC,YAAAA,eCnIA1sJ,OAAA,oDAAA,SAAA,uDAAA,SAAA/Y,EAAA4lK;AACA,AhP4KA,YgP1KA,IAAAC,oCACAC,OAAA,OACAtc,SAAA,OACAuc,QAAA,OACAx8G,OAAA,SAGA,QAUAy8G,YAAA,SAAAzxI,SAAAo2D,aAEA,GAIAs7E,mBAJA7hI,OACA06C,oBAAA6L,YAAA05D,yBACAkhB,SAAAzmF,oBAAA9qF,KAAA,YACAkyK,YAAApnF,oBAAA9qF,KAAA,cAGA,KAAA6xK,kCAAAK,aAiBA,KAAA,mEAhBAD,mBAAAJ,kCAAAK,YACA,IAAAC,gBAAA5xI,SAAA0xI,kBAEA,IAAA,OAAAE,eACA/hI,WACA,CAAA,IAAApkC,EAAA6nB,SAAAs+I,gBAQA,KAAA,0CAAAD,YAAA,KAAAD,kBAAA;AAPA,AhP2IA,GgP3IA/sJ,SAAAitJ,eAAAZ,UAIA,KAAA,2BAHAnhI,KAAA+hI,eAAAZ,UACAnhI,IAAApkC,EAAA3U,QAAA+4C,KAAAA,KAAAA,KAWA,MAAAA,MAYAlzB,UAAA,SAAAi1J,eAAAx7E,aAEA,IAAA3qF,EAAA3U,QAAA86K,gBACA,KAAA,oDAGA,IAIAF,mBAJA1xI,YACAuqD,oBAAA6L,YAAA05D,yBACAkhB,SAAAzmF,oBAAA9qF,KAAA,YACAkyK,YAAApnF,oBAAA9qF,KAAA,cAGA,KAAA6xK,kCAAAK,aAeA,KAAA,mEAGA,OAjBAD,mBAAAJ,kCAAAK,aACA,SAAAD,kBACA,IAAAE,eAAAhgL,OAEAouC,SAAAyS,KAAA,MAEAzS,SAAAyS;AACAzS,AhP+FA,SgP/FAyS,KAAAu+H,UAAAY,eAAA,KAGA5xI,SAAA0xI,sBACA1xI,SAAA0xI,mBAAAV,UAAAY,gBAMA5xI,UAEA9M,QAAA,SAAA8M,UACA,MACA,QAAAA,UACAv0B,EAAAynB,QAAA8M,WACA,OAAAA,SAAAyS,MACAhnC,EAAA3U,QAAAkpC,SAAAkgB,OAAAz0C,EAAAynB,QAAA8M,SAAAkgB,OACAz0C,EAAA3U,QAAAkpC,SAAAg1B,SAAAvpD,EAAAynB,QAAA8M,SAAAg1B,SAUA68G,YAAA,SAAA7xI,UACA,GAAA6wI,OAAA,EAEA,IAAA,mBAAA7wI,UAAAyS,KAEAo+H,OAAAQ,eAAAV,UAAA3wI,UAAA,OAEA,IAAA,mBAAAA,UAAAkgB,KAEA2wH,OAAAQ,eAAAJ,UAAAjxI,UAAA,OAEA,CAAA,GAAA,mBAAAA,UAAAg1B,OAKA,KAAA,+BAHA67G,QAAAQ,eAAAH,YAAAlxI,UAAA;AhPuDA,CgPjDA,MAAA6wI,WCzHArsJ,OAAA,mBACA,UACA,SAAA/Y,GACA,YAUA,IAAAqmK,YAAA,SAAAr9J,MAAAs9J,UACA,GAAAC,SAAA,SAAA3kI,KACA,MAAAA,KAAAj5C,OAAA,GAAAC,cAAAg5C,IAAAn2C,OAAA,GAIA,OAAAuU,GAAA+nB,SAAA/e,OAIAs9J,YAAA,GAAAt9J,MAAA7W,QAAA,KAAA,GACA6N,EAAA7K,IAAA6T,MAAA/kB,MAAA,KAAAsiL,SAAArxK,KAAA,KAEAqxK,QAAAv9J,OANAA,MAaA,OAAAq9J,cCtCAttJ,OAAA,kBACA,SACA,mBACA,SAAA9mB,EAAAo0K,YACA,YAKA,IAAAG,WAAA,WAUA,GAAA76C,SAAA,SAAA86C,UAAAC,YAKAD,UAAAziL,KAAA,WACA,IAAA,GAAA2iL,aAAAD,YACAA,WAAAp0K,eAAAq0K,YACA10K,EAAA9C,MAAAw3K,WAAA,UAKAF,UAAAziL,KAAA,WACA,IAAA,GAAA2iL,aAAAD,YACAA,WAAAp0K,eAAAq0K,aACAD,WAAAC,WAAAj9K,KAAAC,IAAAD,KAAAi3B,MAAA+lJ,WAAAC,YAAA,GAAA10K,EAAA9C,MAAA,QAAAk3K,WAAAM;AlP6IA,GkPxIAF,UAAAz9K,IAAA09K,YAGA,QAOA/7K,MAAA,SAAA87K,UAAAv2J,UACAy7G,QAAA86C,WAAA97K,MAAAulB,YASAtlB,OAAA,SAAA67K,UAAApsE,WACAsxB,QAAA86C,WAAA77K,OAAAyvG,aAUAusE,KAAA,SAAAH,UAAAv2J,SAAAmqF,WACAsxB,QAAA86C,WAAA77K,OAAAyvG,UAAA1vG,MAAAulB,eAMA,OAAAs2J,aC9EAztJ,OAAA,oDACA,SACA,SACA,iBACA,mBACA,SAAA9mB,EAAA+N,EAAAwmK,UAAAra,cAEA,YAEA,QAOAqa,UAAA,SAAA/kK,QAEA,GAAAglK,WACArnH,UAEA,SAAA,GAEA,IAAA,mBAAA39C,QAAA29C,WACAqnH,UAAAhlK,OAAA29C,WAAAhrD,KAAA;AACAgrD,AnPwJA,WmPxJA39C,OAAA29C,UACA,MAGA,SACAqnH,UAAAhlK,OACA29C,WAAAntD,EAAAw0K,WAAA3xK,QAAAuT,SAGA+2C,WAAA+sG,aAAA,WACAqa,UAAA57K,OAAA67K,iBCpBA1tJ,OAAA,qBAAA,WACA,YAEA,IAAA8tJ,eACAC,eACA,QACA,cACA,WACA,YACA,aACA,aACA,YACA,WACA,YACA,UACA,QASAC,YAAA,SAAAxqI,UAAAyqI,cACA,GAAAhgL,MACA,KACAA,MAAA,GAAAigL,YAAA1qI,UAAAyqI,cACA,MAAAziL,GACAyC,MAAAgE,SAAA+7K,YAAA,eACA//K,MAAAkgL,eACA3qI,UACAyqI,aAAAG,UAAA,EACAH,aAAAI,aAAA,EACAJ,aAAAK,MAAA,KACAL,aAAAt3I,QAAA,EACAs3I,aAAA5mC,SAAA,EACA4mC,aAAA3mC,SAAA,EACA2mC,aAAA/jK,SAAA,EACA+jK,aAAA3jK,SAAA,EACA2jK,aAAAhhE,UAAA,EACAghE,aAAAv9D,SAAA,EACAu9D,aAAAtiE,WAAA,EACAsiE,aAAArjK,UAAA,EACAqjK,aAAAxnK,QAAA,EACAwnK,aAAAxjK,eAAA;ApPsHA,CoPnHA,MAAAxc,OAwCA,OA7BA6/K,eADA77K,SAAA67K,cACA,SAAAhlF,QAAAtlD,UAAAv1C,OACA,MAAA66F,UACAA,QAAAglF,cAAA7/K,QACA,IAEA,GAEAgE,SAAAqP,UACA,SAAAwnF,QAAAtlD,UAAAv1C,OACA,MAAA66F,UACAA,QAAAxnF,UAAA,KAAAkiC,UAAAv1C,QACA,IAEA,GAGA,WACA,OAAA,GAYA,SAAA66F,QAAAtlD,UAAAyqI,cACA,GAAAhgL,MAEA,OAAA,KAAA8/K,cAAA30K,QAAAoqC,YACA,GAEAv1C,MAAA+/K,YAAAxqI,UAAAyqI,cACAH,cAAAhlF,QAAAtlD,UAAAv1C,WC1GA+xB,OAAA,oBACA,SACA,SACA,WACA,mBACA,SAAA9mB,EAAA+N,EAAAgsI,SAAAs7B,mBACA,YAIA,SAAAC,mBACAC,eACAx7B,SAAA/8I,OAJA,GAAAu4K,cAAA,KAOAC;ArPgKA,AqPpJAC,gBAAA,SAAAC,gBACAH,aAAAG,eACA38K,SAAAT,KAAA+I,iBAAA,aAAAi0K,kBAEAK,iBAAA,WACA58K,SAAAT,KAAAgJ,oBAAA,aAAAg0K,kBASAM,MAAA,SAAAhmF,QAAAx4F,GAAA+S,OACA,GAAA0rK,YACAd,cACAG,SAAA,EAEAtlF,WACAimF,WAAAjmF,kBAAA5vF,GAAA4vF,QAAAntF,IAAA,GAAAmtF,QAEAylF,kBAAAQ,WAAA,YAAAd,cACAM,kBAAAQ,WAAA,UAAAd,cAEA39K,IACA2W,EAAA5D,MAAA/S,GAAA+S,OAAA,KAWA2rK,YAAA,SAAAlmF,QAAAk/C,GAAAC,IACA,GAAA8mC,YAAAjmF,kBAAA5vF,GAAA4vF,QAAAntF,IAAA,GAAAmtF,QACA9uF,GAAAjJ,WAAAg+K,WAAAnjL,aAAA,YAAA,GAAAo8I,GACA/tI,GAAAlJ,WAAAg+K,WAAAnjL,aAAA,YAAA,GAAAq8I,GACAl7G,UAAA,aAAA/yB,EAAA,OAAAC,EAAA;ArP4GA,AqP1GA80K,WAAA3+K,MAAA8zJ,gBAAAn3H,UACAgiJ,WAAA3+K,MAAA28B,UAAAA,UAEAgiJ,WAAAlvK,aAAA,SAAA7F,GACA+0K,WAAAlvK,aAAA,SAAA5F,IAOAg1K,wBAAA,SAAAnmF,SACA,GAAAimF,YAAAjmF,kBAAA5vF,GAAA4vF,QAAAntF,IAAA,GAAAmtF,OAEAimF,YAAA3+K,MAAA8zJ,gBAAA,sCACA6qB,WAAA3+K,MAAA28B,UAAA,sCAEAgiJ,WAAAlvK,aAAA,SAAA,GACAkvK,WAAAlvK,aAAA,SAAA,IAIA,OAAA6uK,kBC3FA1uJ,OAAA,4EACA,SACA,SACA,OACA,eACA,yEACA,8EACA,iDACA,uEACA,mDACA,mDACA,WACA,oBACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAgH,QAAAsrB,IAAA8qH,QAAApb,gBAAAqb,eAAAC,YAAAC,YAAAp8B,SAAAq8B;AAEA,AtPiKA,YsP/JA,IAAAC,WAAA,SAAA39E,YAAA49E,QAAAh+C,SAEA,GAAAnrE,YAAAytG,gBAAAn4J,IAAAi2F,aACAyB,aAAAm8E,QAAAvjL,KAAA,UACAwjL,MAAAD,QAAAvjL,KAAA,UAAA,EACAgmG,OAAAL,YAAAqB,UAAAI,aAEA,KAAAA,aACA,KAAA,qBAIAo8E,SACAD,QAAAvjL,KAAA,QAAAwjL,MAEA,IAAAC,YAAA,WAEAl+C,QACAvlI,KAAA,SAAAonG,cACAz+E,KAAA46J,QAAA56J,QACArQ,SAAA,WAEAqtF,YAAA+9E,qBACA19E,OAAAh3F,KAAA,aACAw0K,OAAAx9E,OAAAh3F,KAAA,aAEAu0K,QAAAjrK,SAAA,eAIA,IAAAitH,QAAAp/G,SAAA,OAAA1N,SAAA,UAAA,CAEA,GAAAkrK,aAAA12K,EAAA,eAAAmtD,YACAwpH,MAAAr+C,QAAAliH,SACAwgK,gBAAAt+C,QAAAp/G,SAAA,OAAAnmB,KAAA,UAAAonG,cACA08E,mBAAA72K;AAGA02K,AtP0HA,YsP1HAp+J,WAAApC,IAAAygK,OAAA5kL,KAAA,WACA,GAAA+kL,YAAA92K,EAAA9C,MAAAob,SAAA,UACA,IAAA,IAAAw+J,WAAA5iL,OAAA,CACA,GAAA6iL,kBAAA/2K,EAAA82K,WAAA,IAAA/jL,KAAA,UAAAiN,EAAA82K,WAAA,IAAA/jL,KAAA,UACA,IAAA,IAAAgb,EAAA2kB,aAAAkkJ,eAAAG,iBAAA7iL,OAEA,MADA2iL,oBAAAC,YACA,KAKA,IAAAD,mBAAA3iL,QAEAsiL,aAGA5b,gBAAAC,2BAAAniE,aACA9iG,KAAA,QACA+gL,MAAAA,MACA99E,QAAA+9E,iBAGAX,eAAA7D,qBAAA15E,aAAAK,OAAAu9E,QAAA9mK,OAAA8oH,WAEA5/B,YAAA+9E,qBAAA,IAAAtpK,SAAAurF,YAAA32F,KAAA,uBAEA40K,MAAArrK,YAAA,mBAGAorK,YAAAp+J,SAAA,oBAAApkB,SACAwiL,YAAA57J,OAAAk7J;AAAAz3K,AtP6FA,OsP7FA,KACAm4K,YAAAp+J,SAAA,oBAAA0M,OAAA,IAAA,WACAhlB,EAAA9C,MAAA8B,aAQA63K,mBAAA9/K,IAAA,SAAA,oBACAuhI,QAAA58G,KAAAkd,GAAA,kCAAA7hC,KACAk6H,MAAA,SACAryG,OAAA,qBAEAvjB,WAAA,WACAw7K,mBAAA5rK,WAAA,SACAqtH,QAAA/5H,QAAAxH,KAAAk6H,MAAA,GAAAryG,OAAA,MACA,UAIA43J,eAIAQ,YAAA,SAAAt+E,YAAAu+E,cAAAxyJ,QAAAyyJ,eAEA,GAAA/pH,YAAAytG,gBAAAn4J,IAAAi2F,aACAyB,aAAA88E,cAAAlkL,KAAA,UACAujL,QAAAnpH,WAAAhrD,KAAA,6BAAAg4F,aAAA,KACAo8E,MAAAD,QAAAvjL,KAAA,UAAA,EACAokL,QAAAF,cAAA7gK;AAGAmgK,AtP2DA,QsPzDAD,QACAvjL,KAAA,QAAAwjL,OACAjrK,YAAA,eAGA2rK,cACA3rK,YAAA,UACApM,WAAA,UACAX,QAEAm6F,YAAA0+E,WAEAF,iBAAA,IAEAtc,gBAAAC,2BAAAniE,aACA9iG,KAAA,UACA+gL,MAAAM,cAAA7gK,WAEA6/J,eAAA7D,qBAAA15E,aAAAK,OAAAu9E,WAGAA,QAAAp9J,SAAA,OAAA1N,SAAA,WAAA,IAAA2B,SAAAurF,YAAA32F,KAAA,sBAAA22F,YAAA+9E,qBAEAU,QAAA3rK,SAAA,qBACAiZ,QACA0yJ,QAAA9rK,SAAA,YAAA4Z,QAAA,IAAA,WACAjlB,EAAA9C,MAAA3E,WAGA4+K,QAAA5+K,YAOAwhG,UAAA,SAAArB,YAAA5P,YACA,GAAA37B,YAAAytG,gBAAAn4J,IAAAi2F,aAGAK,OAAAL,YAAAsB,sBAAAlR;AACA,AtPiBA,IsPjBAiQ,OACA,KAAA,IAAAj1F,OAAA,8CAAAglF,WAEA,OAAA9oF,GAAA,6BAAA+4F,OAAAvH,YAAA,IAAArkC,aAGAkqH,iBAAA,SAAA3+E,aAEA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,aACAhhG,IAAAyV,SAAAurF,YAAA32F,KAAA,oBACA20K,YAAA12K,EAAA,eAAAmtD,WAEA,IAAAurC,YAAA+9E,qBAAA,IAAA/+K,IACAg/K,YAAA57J,OAAAk7J,SAAAz3K,OAAA,KACAm4K,YAAAp+J,SAAA,oBAAAtZ,WAEA,KAAA,GAAAzF,GAAA,EAAA7B,IAAA6B,EAAAA,IACAm9K,YAAA57J,OAAAk7J,YAaA/mH,OAAA,SAAAypC,aAEA,GAAA/4D,MAAAziC,IAEA,OAAA,IAAA0iC,SAAA,SAAAt5B,QAAAC,QAiMA,QAAA+wK,gBAAAC,kBAAA/nK,QACA4mK,cAAAX,gBAAA;AACA,AtPnNA,GsPmNA+B,aAAAx3K,EAAAy3K,eAAA,YACAD,aAAAtjL,QACA6lJ,SAAA09B,gBAAAj5K,MACA5I,KAAA,OACA4Z,OAAAgoK,YAAA50K,GAAA,GACA2O,cAAA/B,SAGAgoK,YAAAx3K,EAAA03K,eAAA,aACAF,YAAAtjL,QACA6lJ,SAAA29B,eAAA,UAAAl5K,MACA5I,KAAA,OACA4Z,OAAAgoK,YAAA50K,GAAA,GACA2O,cAAA/B,SAGAuqI,SAAAw9B,mBAAA/4K,MACA5I,KAAA,UACA4Z,OAAAA,WAnNA,GAMAmoK,sBACAC,YACAC,YARA1qH,WAAAytG,gBAAAn4J,IAAAi2F,aACAo/E,YAAA3qH,WAAAhrD,KAAA,gBACAu0K,YAAAvpH,WAAAhrD,KAAA,gBAEA41K,cAAA,KAMAC,KAAAh4K,EAAA,UAAAuM,QAAA,0BAAAgvG,MAAA3iF,GAAA,YAEA8+I,eAAAI,YAAA11K,SAAA,OACAq1K,eAAAf,YAAAt0K,SAAA,WACA61K,YAAA9qH,WAAA/qD,SAAA,kBAEA81K,WAAA,SAAA9sI;AACA,AtPlCA,MsPkCA0sI,aAAA31K,KAAA,gBAAAipC,OAAA,MASAorI,WAAA,SAAAF,QAAAh+C,SACA+9C,UAAA39E,YAAA49E,QAAAh+C,SACA69C,YAAA5B,UAAAv0K,EAAA,iDAAA46J,gBAAAn4J,IAAAi2F,gBAGAy/E,gBAAA,WACAJ,gBACArB,YAAAv0K,KAAA,kBAAA5J,SACAw/K,cAAAzsK,YAAA,UACA6hD,WAAAhrD,KAAA,UAAAmJ,YAAA,SACAysK,cAAA,OAIAK,aAAA,SAAA9B,SACAU,YAAAt+E,YAAA49E,SAAA,GACAH,YAAA5B,UAAAv0K,EAAA,iDAAA46J,gBAAAn4J,IAAAi2F,gBAGA2/E,iBAAA,WACA,MAAAN,gBAAAA,cAAAhlL,KAAA;AtP9DA,EsPiEAulL,eAAA,WACA,MAAAP,iBAAAA,cAAAhlL,KAAA,eAGAwlL,sBAAA,SAAAjgD,SACAA,QAAA9sH,SAAA,iBAIA8sK,kBAEA5/E,YAAA0+E,UAAA,EACAgB,aAAAL,eACAvB,WAAAl+C,QAAAy/C,eACAI,kBACAz/E,YAAA0+E,UAAA,GAEA9+C,QAAA9sH,SAAA,UACA2sK,kBAGAK,gBAAAlgD,WAKAkgD,gBAAA,SAAAlC,SACA6B,kBACAJ,cAAAzB,QACAA,QAAAjrK,SAAA,UACAqrK,YAAAv0K,KAAA,eAAAkJ,SAAA,UAGAotK,sBAAA,SAAAngD,SACA,GAAAn+B,cACAu+E,aAAApgD,QAAAvlI,KAAA,SAEAslL,qBAEAl+E,aAAA49E,cAAAhlL,KAAA;AAEA2lL,AtPzGA,esPyGAv+E,eAEAm+B,QAAA9sH,SAAA,YACAktF,YAAA0+E,UAAA,GAGAsB,cACAN,aAAA9/C,SAEAk+C,WAAAuB,cAAAz/C,SAGA5/B,YAAA0+E,UAAA,GAGAe,mBAEAG,kBAEAn+E,aAAA49E,cAAAhlL,KAAA,UAEA2lL,eAAAv+E,gBAEAm+B,QAAA9sH,SAAA,WAAAusK,cAAA7+J,SAAA,OAAA,KAAAo/G,QAAA,MACA5/B,YAAA0+E,UAAA,GAGAgB,aAAAL,eACAW,eAEAN,aAAA9/C,SACAk+C,WAAA0B,WAAAQ,cAAAX,gBAEAvB,WAAA0B,WAAA/9E,cAAAm+B,SAGA5/B,YAAA0+E,UAAA,GAGAe,mBAEAO,eACAC,gBAAArgD,SACAA,QAAAx9G,OAAAk9J,QAIAW,gBAAA,SAAArgD;AACA,AtPxJA,GsPwJAogD,cAAApgD,QAAAvlI,KAAA,SAEAglL,eAAAz/C,QACAy/C,cAAA1sK,SAAA,UAEAqrK,YAAAv0K,KAAA,eAAAvO,OAAA,WACA,MAAAoM,GAAA9C,MAAAnK,KAAA,YAAA2lL,eACArtK,SAAA,SAEAysK,YAAA31K,KAAA,yBAAAvO,OAAA,WACA,MAAAoM,GAAA9C,MAAAnK,KAAA,YAAA2lL,eACArtK,SAAA,SAMA0uI,UAAA5sF,WAAA/qD,UAAA4Q,GAAA,MAAA,WACAmlK,oBAGAp+B,SAAA+9B,YAAA11K,SAAA,QAAA4Q,GAAA,MAAA,SAAA1gB,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAA6d,cACA7d,GAAAge,kBACAioK,sBAAAjgD,SACAhmI,EAAAqd,mBAGAoqI,SAAA28B,YAAAt0K,SAAA,YAAA4Q,GAAA,MAAA,SAAA1gB,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAA6d,cACA7d,GAAAge;AACAmoK,AtPtLA,sBsPsLAngD,SACAhmI,EAAAqd,mBAGAoqI,SAAAk+B,aAAAjlK,GAAA,MAAA,SAAA1gB,GACAA,EAAAge,kBACA8nK,aAAAL,eACAI,kBACA7lL,EAAAqd,mBAGA+oF,YAAA+9E,qBACAmC,iBAAAlgF,aAMA/4D,KAAA+8D,WAAA/8D,KAAA+8D,UAAA,sBAAA/8D,KAAA+8D,UAAA,qBAAA+C,YACAk4E,qBAAAh4I,KAAA+8D,UAAA,qBAAA+C,WA4BAk4E,uBACAC,aACA/gC,SAAA,EACAlS,YAAA,EACAyM,UACAoV,YAAA,mBACA9J,SAAA,EACAjF,aAAAxuI,IAAA,EAAAmV,KAAA,EAAA8vF,OAAA,EAAAxoE,MAAA,KAKAq0G,SAAA29B,eAAA,sBAAAlpE,UAAAzgG,EAAA6f,UACAw5H,QAAA,SAAA90J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd;AACA8oH,AtPnPA,QsPmPAjtH,SAAA,WACAmtK,gBAAAlgD,SACAg/C,eAAAI,eAAA,qBAAAplL,EAAAkd,SAEA63I,OAAA,SAAA/0J,GACA8jL,cAAAN,YAAAxjL,EAAAkd,OAAAld,EAAAw8I,GAAAx8I,EAAAy8I,KAEAuY,MAAA,SAAAh1J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,OACA8oH,SAAAhtH,YAAA,WACA6sK,kBAEA/B,cAAAL,wBAAAz9C,SACA89C,cAAAT,qBAEAiC,cAAAv7B,aAAA,GAGAtC,SAAA09B,eAAA,WAAAjpE,UAAAzgG,EAAA6f,UACAw5H,QAAA,SAAA90J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,OACA8oH,SAAAjtH,SAAA,WACA8sK,kBACAQ,gBAAArgD,SACAg/C,eAAAG,eAAA,UAAAnlL,EAAAkd,SAEA63I,OAAA,SAAA/0J,GACA8jL,cAAAN,YAAAxjL,EAAAkd,OAAAld,EAAAw8I,GAAAx8I,EAAAy8I;AtP7QA,EsP+QAuY,MAAA,SAAAh1J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,OACA8oH,SAAAhtH,YAAA,WAEA8qK,cAAAL,wBAAAz9C,SAEAy/C,eACAK,aAAAL,eAEAI,kBAEA/B,cAAAT,qBAEAiC,cAAAv7B,aAAA,GAGAw7B,aACAv/B,QAAA,IACA2O,YAAA,SAAA30J,GACA0N,EAAA1N,EAAAkd,QAAAnE,SAAA,YACArL,EAAA1N,EAAAif,eAAAlG,SAAA,cAEA67I,YAAA,SAAA50J,GACA0N,EAAA1N,EAAAkd,QAAAlE,YAAA,YACAtL,EAAA1N,EAAAif,eAAAjG,YAAA,eAKAyuI,SAAA09B,gBAAAxlC,SAAAlkI,EAAA6f,UACAk5H,OAAA,SAAAx0J,GACA4K,KAAAgqJ,YAAA50J,GACAmmL,sBAAAz4K,EAAA1N,EAAAkd,WAEAqoK,cAGA99B,SAAA29B,eAAA,UAAAzlC,SAAAlkI,EAAA6f;AACAk5H,AtPpTA,OsPoTA,SAAAx0J,GACA4K,KAAAgqJ,YAAA50J,GACAimL,sBAAAv4K,EAAA1N,EAAAkd,WAEAqoK,eAMAR,iBAAA3+E,aAEAy9E,YAAA5B,UAAAv0K,EAAA,iDAAAmtD,aAEA7mD,aAKAsyK,iBAAA,SAAAlgF,aAEA,GAAAlpE,KAAAriB,SAAAurF,YAAA32F,KAAA,mBAAA,IACArK,IAAAyV,SAAAurF,YAAA32F,KAAA,mBAAA,GAGA,IAAA,IAAAytB,IACA,IAAA93B,KACAu+K,eAAA3D,kBAAA55E,YAAA9/D,GAAA,4DAEA,CACA,IAAAlhC,KACAu+K,eAAA3D,kBAAA55E,YAAA9/D,GAAA,mDAGA,IAAAuV,KAAAvV,GAAA,oBAAA,GACAuV,MAAA3e,IAAA,EAAAoJ,GAAA,YAAA,IAAApJ,IAAA,IAAAoJ,GAAA,qBAAAA,GAAA;AACAq9I,AtPvVA,esPuVA3D,kBAAA55E,YAAAvqD,IAAA,WACA0qI,gBAAAngF,aAAAxkG,QAAAs7B,IACAtyB,KAAA20K,SAAA,WAEA30K,KAAA4Z,YAMAsmF,cAAA,SAAA1E,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,YAGAvrC,YAAAhrD,KAAA,wBAAApQ,KAAA,WACAqkL,cAAAR,MAAA14K,QAGA8C,EAAA,sBAAAmtD,YAAAp7D,KAAA,WACAilL,YAAAt+E,YAAA14F,EAAA9C,OAAA,GAAA,KAGA09J,gBAAAC,2BAAAniE,aACAu9E,eAAA7D,qBAAA15E,cAGAogF,UAAA,SAAApgF,YAAA1lE,OAEA,GAAAm6B,YAAAytG,gBAAAn4J,IAAAi2F,aACAqgF,WAAA,EACAC,WAAAh5K,EAAA,wBAAAmtD,WAiBA,OAhBAn6B,QAAA,WAAA0lE,YAAA05D,yBAAArwJ,KAAA,gBAAAixB,MAAA9+B,SACA8+B,OAAAA;AAEAjlB,AtPxXA,EsPwXAhc,KAAAihC,MAAA,SAAAwwB,MACA,IAAAw1H,WAAA9kL,OAQA,OAAA,CAPA,IAAA+kL,OAAAD,WAAA1gK,SAAA,MACA+9J,WAAA39E,YAAAqB,UAAArB,YAAAl1C,KAAA,IAAAxjD,EAAAi5K,MAAA,KACA5C,UAAA39E,YAAAqB,UAAArB,YAAAl1C,KAAA,IAAAxjD,EAAAi5K,MAAA,KACAF,aACAC,WAAAA,WAAAzgK,KAAA,QAOAwgK,YAeA97E,YAAA,SAAAvE,YAAAp2D,UAEAw2I,UAAApgF,YAAAw9E,YAAAnC,YAAAzxI,SAAAo2D,eAGAmgF,gBAAA,SAAAngF,aACA,GAAAp2D,aACA6qB,WAAAytG,gBAAAn4J,IAAAi2F,YAaA,OAZA14F,GAAA,kBAAAmtD,YAAAp7D,KAAA,WACA,GAAAyxD,QACAxjD,GAAA9C,MAAAiF,KAAA,OAAApQ,KAAA,WACA,GAAAq5C,QAAAprC,EAAA9C,MAAAnK,KAAA,SACAq4C,SACAoY,KAAAzmD,KAAA27F,YAAAqB,UAAA3uD,QAAAlpC;AtPhaA,GsPmaA,IAAAshD,KAAAtvD,QACAouC,SAAAvlC,KAAAymD,QAGAlhB,UAeA66D,YAAA,SAAAzE,aACA,MAAAw9E,aAAAj3J,UAAA45J,gBAAAngF,aAAAA,cAOA9sD,QAAA,SAAA8sD,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,YAGAqhD,UAAA5sF,WAAA/qD,UAAAoxF,QACAumD,SAAA5sF,WAAAhrD,KAAA,gBAAAC,SAAA,QAAAoxF,QACAumD,SAAA5sF,WAAAhrD,KAAA,gBAAAC,SAAA,YAAAoxF,QACAumD,SAAA5sF,WAAAhrD,KAAA,kBAAAC,UAAAoxF,QAGAyiF,eAAAzD,mBAAA95E,aAEA14F,EAAA,eAAAmtD,YAAA5uD,QAGAq8J,gBAAA9jJ,MAAA4hF,cASA/sD,SAAA,SAAA+sD,YAAA59F,OACA,GAAAqyD,WAEAp/C,GAAA6nB,SAAA96B,SACAA,MAAAwnC,WACAo2D,YAAA0E;AACA1E,AtP3dA,YsP2dAuE,YAAAniG,MAAAwnC,WAIAv0B,EAAA3U,QAAA0B,MAAA0a,QAAA1a,MAAA0a,MAAAthB,SAAA6Z,EAAAxL,KAAAm2F,YAAAqF,gBAEA5wC,WAAAytG,gBAAAn4J,IAAAi2F,aAEA14F,EAAA,2BAAAmtD,YACAhqD,KAAA,SAAAzR,EAAAC,GACA,GAAAunL,QAAAnrK,EAAA7N,QAAApF,MAAA0a,MAAAxV,EAAAtO,GAAAqB,KAAA,eACAomL,OAAAprK,EAAA7N,QAAApF,MAAA0a,MAAAxV,EAAArO,GAAAoB,KAAA,cACA,OAAAmmL,QAAAC,OACA,EAEAA,OAAAD,OACA,GAEA,IAEAv9J,SACAtjB,SAAA2H,EAAA,eAAAmtD,gBAWAzhB,SAAA,SAAAgtD,aACA,GAAAvrC,YACAryD,SACAwnC,SAAAo2D,YAAAyE,aAeA,OAbA76D,YACAxnC,MAAAwnC,SAAAA,UAIAo2D,YAAA32F,KAAA,cAAA,IACAorD,WAAAytG,gBAAAn4J,IAAAi2F,aAEA59F,MAAA0a,SACAxV,EAAA,2BAAAmtD,YAAAp7D,KAAA;AACA+I,AtPzgBA,MsPygBA0a,MAAAzY,KAAAiD,EAAA9C,MAAAnK,KAAA,kBAGA+H,MAOA,QACA40F,SAAA,uBACAn5D,SAAA20B,IACA+D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA,cACAxxD,QAAAA,QACAD,SAAAA,SACAD,SAAAA,SAEA2rI,iBAAAA,oBCvvBAvwJ,OAAA,uEAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD;AvP+MA,MuP/MA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,MAGA,QAFAA,OAAAlW,QAAAy8C,QAAAtjC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAujC,OAAAtjC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GAGA,QAAAwvG,UAAAzvG,OAAAh4D,MAGA,MAAA,cAGA,QAAAswI,UAAAt4E,OAAAh4D,MAEA,GAAAi4D,QAAAjD;AAGA,AvP+KA,OuPjLAA,OAAAlW,QAAAunI,WAAApuH,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAquH,UAAApuH,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GAGA,QAAAu4E,WAAAx4E,OAAAh4D,MAEA,GAAAi4D,OAEA,OADAA,cAAAD,UAAAhE,aAAAgE,OAAAhoD,MAAAgoD,QAAAA,OACAC,QAAA,IAAAA,OAAAA,OACA,GAlDA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,KAAAylD,mBAAA9Q,QAAA8Q,kBA6EA,OA1BAmD,SAAA,QACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD;AAAA,AvPmKA,MuPnKAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,qEACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D;AACAjC,AvP4JA,QuP5JAjV,iBAAAma,QACA,4CACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAujC,QAAAh8C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,oGACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA48F,YAAAr1G,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAkmH,SAAAznK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,IACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAquH,WAAA9mI,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA+uF,SAAAtwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF;AACAlF,AvPmJA,QuPnJA,aACA95C,SAAAsmC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAivF,UAAAxwI,MAAAA,KAAAA,OACAg1D,OAAAlW,QAAAgnD,SAAA7tC,OAAAjD,OAAAr0D,KAAAq3D,OAAA/+C,UACA+7C,OAAAgD,QAAAA,OAAA8tC,QAAA7tC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,OAAA/+C,SAAA+7C,QACAlW,QAAAgnD,UAAA7tC,OAAArI,mBAAAjvD,KAAAq3D,OAAAC,QAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAivF,UAAAxwI,MAAAA,KAAAA,SACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,wEC1DAh/B,OAAA,yEACA,SACA,SACA,OACA,sEACA,iDACA,uEACA,mDACA,oDACA,SAAA/Y,EAAA/N,EAAA44B,GAAAsyB,IAAA0vG,gBAAAqb,eAAAC,YAAAC;AAEA,AxP6LA,YwP3LA,IAAAkD,gBAAA,GACAC,eAAA,GACAC,YAAA,GACAC,cAAA,GACAC,aAAA,EAUAC,aAAA,SAAAhhF,YAAAvrC,YAEAA,WAAA1pD,IAAA,kBAEA,IAAAk2K,eAAAxsH,WAAAhrD,KAAA,eAAAA,KAAA,8BAAA+T,IAAA,cAAAA,IAAA,YAEAyjK,eAAA3mK,GAAA,yBAAA,SAAA1gB,GACA,GAAAse,SAAAte,EAAAse,QAAAte,EAAAse,QAAAte,EAAAqe,QACAC,WAAA6oK,cACAnnL,EAAAqd,kBAGAiB,UAAAyoK,gBAAAzoK,UAAA0oK,iBACAM,cAAA55K,EAAA9C,MAAAub,QAAA,eAGA,IAAAohK,YAAA75K,EAAA9C,MAAAub,QAAA,eAAAF,KAAA,eAAApW,KAAA,8BAAA+T,IAAA,cAAAA,IAAA,aACA4jK,WAAA95K,EAAA9C,MAAAub,QAAA,eAAAD,KAAA,eAAArW,KAAA,8BAAA+T,IAAA,cAAAA,IAAA;AAEAtF,AxP2JA,UwP3JA2oK,YACAO,WAAAjoK,QACAjB,UAAA4oK,eACAK,WAAAhoK,UAIAs7C,WAAAn6C,GAAA,uBAAA,cAAA,SAAA1gB,GACA,GAAAynL,YAAA/5K,EAAA9C,KAEA5K,GAAAqd,iBACArd,EAAAge,kBAEAspK,cAAAG,YAEA9D,eAAA7D,qBAAA15E,aAAAK,OAAAghF,aACAnf,gBAAAC,2BAAAniE,gBAIAkhF,cAAA,SAAAG,YACA,GAAAxvC,QAAAwvC,WAAA53K,KAAA,8BAAA+T,IAAA,cAAAA,IAAA,YAEAq0H,QAAAr2I,SACAq2I,OAAAr/H,KAAA,WAAAq/H,OAAAr/H,KAAA,YACAq/H,OAAA/mI,QAAA,YAWAyrD,OAAA,SAAAypC,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,YAEAghF,cAAAhhF,YAAAvrC;AAEAyrH,AxPmHA,iBwPnHAlgF,aAEA,eAAAA,YAAA32F,KAAA,gBACAo0K,YAAA5B,UAAAv0K,EAAA,8DAAAmtD,cASAyrH,iBAAA,SAAAlgF,aAEA,GAEAvqD,KAFA3e,IAAAkpE,YAAA32F,KAAA,cACArK,IAAAghG,YAAA32F,KAAA,cAEA4wK,YAAA5kK,EAAAxL,KAAAm2F,YAAAqF,cACA60E,mBAAA,CAIA,IAAAl7K,IAAA,GAAAi7K,YAAAj7K,IAAA,CAEA,GAAAsiL,uBAAA,SAAA1D,SACA,GAAA/rC,QAAA+rC,QAAAn0K,KAAA,uBACA83K,IAAA3D,QAAAv/K,IAAA,QAAA,WACAmjL,MAAA5D,QAAAn0K,KAAA,sBAAApL,IAAA,QAAA,WAAAsU,SAAA,eACAiX,QAAAo2E,YAAA3lG,KAAA,uBAEAuvB,UACAjY,aAAAiY;AAEAA,AxPmFA,QwPnFAjnB,WAAA,WACAkvI,OAAAr/H,KAAA,WAAA,GACA+uK,IAAAhvK,WAAA,SACAivK,MAAAjvK,WAAA,SAAAK,YAAA,SACAsvJ,gBAAAC,2BAAAniE,cACA,KACAA,YAAA3lG,KAAA,uBAAAuvB,SAGA5qB,OAAA83B,KACAojJ,mBAAA,EACAzkI,IAAAvV,GAAA,qCAAAlhC,KACAu+K,eAAA3D,kBAAA55E,YAAAvqD,IAAA,SAAAp7C,MACA8lL,gBAAAngF,aAAAxkG,QAAAwD,KACAwF,KAAA20K,SAAA,WACA30K,KAAAy0K,WAAA,cACAz0K,KAAAm5G,QACA5jE,MAAA,UACAra,QAAAQ,GAAA,2BACAtW,QAAA,IACAllB,MAAA,WACArK,MAAAA,KAAAgmG,QACAihF,sBAAAjnL,KAAAgmG,SAGA/7F,KAAA,WACAE,KAAAm5G,QAAA5jE,MAAA;AAAAra,AxP0DA,QwP1DA+V,SAIAjxC,KAAAyuC,SAAA,cAEAzuC,KAAA4Z,WAGApf,IAAA83B,MACA2e,IAAA,IAAAz2C,IAAAkhC,GAAA,sCAAAA,GAAA,uCAAAlhC,KACAu+K,eAAA3D,kBAAA55E,YAAAvqD,IAAA,SAAAp7C,MACA8lL,gBAAAngF,aAAAxkG,QAAAwD,KACAwF,KAAA60K,WAAAn5I,GAAA,4BACA17B,KAAAy0K,WAAA,cACAz0K,KAAAm5G,QACA5jE,MAAA,UACAnwB,QAAA,IACAllB,MAAA,WACArK,MAAAA,KAAAgmG,QACAihF,sBAAAjnL,KAAAgmG,SAGA/7F,KAAA,WACAE,KAAA20K,SAAA,WAIA30K,KAAAyuC,SAAA,cAEAzuC,KAAA4Z,YAMA87J,mBAAApjJ,IAAA,GAAAmjJ,YAAAnjJ,MACA2e,IAAA,IAAA3e,IAAAoJ,GAAA,qCAAAA,GAAA,sCAAApJ;AACAymJ,AxPqBA,ewPrBA3D,kBAAA55E,YAAAvqD,IAAA,WACA0qI,gBAAAngF,aAAAxkG,QAAAs7B,IACAtyB,KAAA20K,SAAA,WAEA30K,KAAA4Z,YAWAsmF,cAAA,SAAA1E,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,YAEA14F,GAAA,sBAAAmtD,YAAAjiD,KAAA,WAAA,IAgBA+xF,YAAA,SAAAvE,YAAAp2D,UACA,GAAA6qB,YAAAytG,gBAAAn4J,IAAAi2F,YAEA,KACA3qF,EAAAhc,KAAAmkL,YAAAnC,YAAAzxI,SAAAo2D,aAAA,SAAA5P,YACA37B,WAAAhrD,KAAA,6BAAA2mF,WAAA,KAAA59E,KAAA,WAAA,KAEA+qK,eAAA7D,qBAAA15E,aACA,MAAApmG,GACA,KAAA,IAAAwR,OAAA,uCAAAxR,KAUAumL,gBAAA,SAAAngF;AACA,AxPhCA,GwPgCA1kE,WACAm5B,WAAAytG,gBAAAn4J,IAAAi2F,YAIA,OAHA14F,GAAA,qCAAA04F,YAAAlH,YAAA,YAAArkC,YAAAp7D,KAAA,WACAiiC,OAAAj3B,KAAAiD,EAAA9C,MAAAuO,SAEAuoB,QAeAmpE,YAAA,SAAAzE,aACA,MAAAw9E,aAAAj3J,UAAA45J,gBAAAngF,aAAAA,cASAyhF,cAAA,SAAAzhF,YAAA3lG,MACA,GAAAqnL,aAAA1hF,YAAA32F,KAAA,UAAA,IAAAmS,MAAA,0BACA,OAAAnG,GAAA/L,MAAAjP,UACA40J,WAAA,eAAAjvD,YAAA32F,KAAA,eACAq3K,UAAAgB,WAAAjmL,SASAy3C,QAAA,SAAA8sD,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,aAEAp2E,QAAAo2E,YAAA3lG,KAAA;AAEAuvB,AxP/EA,SwPgFAjY,aAAAiY,SAIA6qC,WAAA1pD,IAAA,mBACAzD,EAAAjH,UAAA0K,IAAA,mBAGAwyK,eAAAzD,mBAAA95E,aAGAkiE,gBAAA9jJ,MAAA4hF,cASA/sD,SAAA,SAAA+sD,YAAA59F,OACA,GAAAqyD,WAEAp/C,GAAA6nB,SAAA96B,SACAA,MAAAwnC,WACAo2D,YAAA0E,gBACA1E,YAAAuE,YAAAniG,MAAAwnC,WAIAv0B,EAAA3U,QAAA0B,MAAA0a,QAAA1a,MAAA0a,MAAAthB,SAAA6Z,EAAAxL,KAAAm2F,YAAAqF,gBAEA5wC,WAAAytG,gBAAAn4J,IAAAi2F,aAEA14F,EAAA,oBAAAmtD,YACAhqD,KAAA,SAAAzR,EAAAC,GACA,GAAAunL,QAAAnrK,EAAA7N,QAAApF,MAAA0a,MAAAxV,EAAAtO,GAAAqB,KAAA,eACAomL,OAAAprK,EAAA7N,QAAApF,MAAA0a,MAAAxV,EAAArO,GAAAoB,KAAA,cACA,OAAAmmL,QAAAC,OACA,EAEAA,OAAAD,OACA,GAEA;AxP3HA,GwP6HAv9J,SACAtjB,SAAA2H,EAAA,eAAAmtD,gBAWAzhB,SAAA,SAAAgtD,aACA,GAAAvrC,YACAryD,SACAwnC,SAAAo2D,YAAAyE,aAeA,OAbA76D,YACAxnC,MAAAwnC,SAAAA,UAIAo2D,YAAA32F,KAAA,cAAA,IACAorD,WAAAytG,gBAAAn4J,IAAAi2F,aAEA59F,MAAA0a,SACAxV,EAAA,oBAAAmtD,YAAAp7D,KAAA,WACA+I,MAAA0a,MAAAzY,KAAAiD,EAAA9C,MAAAnK,KAAA,kBAGA+H,MAOA,QACA40F,SAAA,oBACAn5D,SAAA20B,IACAl8C,QAAAmrK,cACAlrH,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA,cACAxxD,QAAAA,QACAD,SAAAA,SACAD,SAAAA,YCnZA5kB,OAAA,2EAAA,cAAA,SAAAmuB;AACA,AzPsOA,MyPtOAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MACAmK,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,gBAUA,OAPAiV,SAAA,wHACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,6GACAna,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,AzP4NA,OyP5NA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAuwD,YAAAvwD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,eCWAlkC,OAAA,6EACA,SACA,0EACA,iDACA,mDACA,QACA,SAAA/Y,EAAAm9C,IAAA0vG,gBAAAsb,YAAAt9I,IACA,YAUA,IAAAq2B,QAAA,SAAAypC,YAAA1sF,SAEA,GAAAmhD,YAAAytG,gBAAAn4J,IAAAi2F,YAGAvrC,YAAAn6C,GAAA,uBAAA,WACAm6C,WAAA1hD,KAAA,GAEAmvJ,gBAAAC,2BAAAniE;AAEAvrC,A1PsLA,W0PtLA3pD,QAAA,cAAAk1F,YAAA32F,KAAA,2BAgBAk7F,YAAA,SAAAvE,YAAAp2D,UAEA+3I,QAAA3hF,YAAAw9E,YAAAnC,YAAAzxI,SAAAo2D,aAAA,KAgBAyE,YAAA,SAAAzE,aACA,GAAAjtF,KAAAmvJ,gBAAAn4J,IAAAi2F,aAAAjtF,KAEA,OADAA,KAAAA,KAAA,UAAAA,KAAA,MAAAA,IACAyqK,YAAAj3J,WAAAxT,KAAAitF,cAQA0E,cAAA,SAAA1E,aACA2hF,QAAA3hF,aAAA,IAQA2hF,QAAA,SAAA3hF,YAAAjtF,KAEAmvJ,gBAAAn4J,IAAAi2F,aACAjtF,IAAAA,KACA/C,UASAkjC,QAAA,SAAA8sD,aAEAkiE,gBAAAn4J,IAAAi2F,aAAAj1F,IAAA,oBAUA02K,cAAA,SAAAzhF,YAAA3lG,MAIA,MAHAA,MAAA+W,WAAAyxG,QACAxoH,KAAA+W,WAAAyxG,MAAA3iF,GAAA;AAEA7lC,A1PoGA,K0PjGA,QACA28F,SAAA,wBACAn5D,SAAA20B,IACAl8C,QAAAmrK,cACAlrH,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA,cACAxxD,QAAAA,WClJA9kB,OAAA,6EAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D;AAEA,A3P0NA,G2P1NAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,MAGA,QAFAA,OAAAlW,QAAAy8C,QAAAtjC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAujC,OAAAtjC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GAGA,QAAAwvG,UAAAzvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAcA,OAbAA,SAAA,aACAiC,OAAAlW,QAAAmoH,OAAAjvG,QAAAA,OAAAivG,MAAAhuJ,SAAAsmC,QAAAJ,QAAAvS,KAAA2U,QAAA,GAAA8qH,UAAArsK;AAAAwN,A3PwMA,G2PxMAo/B,KAAA2U,QAAA,EAAA6uF,SAAApwI,MAAAA,KAAAA,MAAAi4D,OAAAjD,OAAAA,OAAAr0D,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyB,QAAA,QAAA1sB,SAAA02C,cAAAhvD,KAAAq3D,OAAA,SAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyB,QAAA,QAAA1sB,UACAg/C,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,8EACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAsvH,iBAAAhoI,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAimI,UAAAxnL,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF;AACAlF,A3PoMA,Q2PpMA,aACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA+nE,WAAAxgF,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAkmI,UAAAznL,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,uBACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA0vH,UAAAnoI,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAomI,UAAA3nL,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,SAGA,QAAAq9E,UAAAp4E,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAKA,OAJAA,SAAA,iBACAkF,OAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAAysG,eAAAllH,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA+uF,SAAAtwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;A3PsLA,C2PnLA,QAAAu9E,UAAAt4E,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAWA,OAVAA,SAAA,qDACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyB,aAAAsyB,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,SACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAgvF,UAAAvwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,WACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IACAna,uBAAAka,UAAAhE,aAAAgE,OAAAhoD,MAAAgoD,QAAAA,QACA;A3PwKA,C2PrKA,QAAAu4E,WAAAv4E,OAAAh4D,MAGA,MAAA,oBAGA,QAAAqsK,WAAAr0G,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAKA,OAJAA,SAAA,iBACAkF,OAAAnZ,QAAA9/C,KAAA2B,KAAAq3D,OAAAA,QAAAA,OAAAysG,eAAAllH,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAkvF,UAAAzwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,aAGA,QAAA09E,WAAAz4E,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAcA,OAbAA,SAAA,0DACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyB,aAAAsyB,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,SACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD;AAAA,A3PiJA,M2PjJAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAgvF,UAAAvwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,WACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA89B,iBAAA99B,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IACAna,uBAAAka,UAAAhE,aAAAgE,OAAAhoD,MAAAgoD,QAAAA,QACA,KACAC,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA2vH,cAAAroI,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAsmI,UAAA7nL,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF;AACAlF,A3PyIA,Q2PzIA,6BAGA,QAAA80H,WAAA7vH,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,YACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA2vH,kBAAA3vH,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAAuvH,WAAAxvH,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAUA,OATAA,SAAA,gGACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,KAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,KAAA/+C,WACA,IACA6kC,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,A3PwHA,O2PxHA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAsvH,qBAAAtvH,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IACAna,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,QAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,QAAA/+C,WACA,IACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,cAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,cAAA/+C,WACA,kCAIA,QAAAwuK,WAAAzvH,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAYA,OAXAA,SAAA,gGACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,A3P4GA,S2P5GAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,KAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,KAAA/+C,WACA,KACA+7C,OAAAlW,QAAAihF,WAAA9nE,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA+nE,UAAA9nE,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,IACAna,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,QAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,QAAA/+C,WACA,IACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,UAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,UAAA/+C,WACA;A3PoGA,C2PhGA,QAAA0uK,WAAA3vH,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAYA,OAXAA,SAAA,gGACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,KAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,KAAA/+C,WACA,KACA+7C,OAAAlW,QAAA4oI,UAAAzvH,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA0vH,SAAAzvH,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,IACAna,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,QAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,QAAA/+C,WACA,IACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,A3PqFA,S2PrFAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,UAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,UAAA/+C,WACA,kCAIA,QAAA6uK,WAAA9vH,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,EAcA,OAbAA,SAAA,aACAiC,OAAAlW,QAAAmoH,OAAAjvG,QAAAA,OAAAivG,MAAAhuJ,SAAAsmC,QAAAJ,QAAAvS,KAAA2U,QAAA,GAAAwmI,UAAA/nL,MAAAwN,GAAAo/B,KAAA2U,QAAA,GAAAsvF,UAAA7wI,MAAAA,KAAAA,MAAAi4D,OAAAjD,OAAAA,OAAAr0D,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyB,QAAAqyB,QAAAA,OAAAgwH,MAAA/uK,SAAA02C,cAAAhvD,KAAAq3D,OAAA,SAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyB,QAAAqyB,QAAAA,OAAAgwH,MAAA/uK;A3P6EA,C2P5EAg/C,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,uBACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAAsvH,iBAAAhoI,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAA2vF,UAAAlxI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,aACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA+nE,WAAAxgF,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAkmI,UAAAznL,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,uBACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAA0vH,UAAAnoI,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAomI,UAAA3nL,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF;AACAlF,A3PmEA,Q2PnEA,SAGA,QAAA89E,WAAA74E,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAOA,OANAA,SAAA,iDACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyB,aAAAsyB,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,SACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAgvF,UAAAvwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,qCAIA,QAAAg1H,WAAA/vH,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAUA,OATAA,SAAA,sDACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,A3PiDA,O2PjDA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAtyB,aAAAsyB,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,SACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAgvF,UAAAvwI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,KACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA2vH,cAAAroI,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,GAAAsmI,UAAA7nL,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,yBAIA,QAAAm+E,WAAAl5E,OAAAh4D,MAEA,GAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA;AAUA,A3P2BA,M2PpCAA,SAAA,gGACAjV,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,KAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,KAAA/+C,WACA,IACA6kC,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAAsvH,qBAAAtvH,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IACAna,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB,GAAA5sB,SAAAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,QAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,QAAA/+C,WACA,IACA6kC,kBAAAkX,OAAAlW,QAAAjZ,IAAAmyB,QAAAA,OAAAnyB;AAAA5sB,A3P8BA,S2P9BAsmC,QAAAv/C,KAAAA,MAAAg1D,OAAAA,OAAAr0D,KAAAq3D,OAAA,cAAA/+C,SAAA02C,cAAAhvD,KAAAq3D,OAAA,KAAA,cAAA/+C,WACA,kCA3NA9O,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,KAAAwlD,cAAA7Q,QAAA6Q,aA8OA,OAjBAoD,SAAA,QACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;AACAkF,A3PsBA,O2PtBAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,oDACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAujC,QAAAh8C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF;AACAlF,A3PcA,Q2PdA,wDACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAwsG,UAAAjlH,QAAAJ,QAAAvS,KAAA2U,QAAA,GAAAumI,UAAA9nL,MAAAwN,GAAAo/B,KAAA2U,QAAA,EAAAkmH,SAAAznK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,iBCjOAh/B,OAAA,0BACA,UACA,SAAA/Y,GACA,YAMA,IAAAitK,YAAA,WAEA,GAAAC,SAAA,OACAC,QAMA9rD,QAAA,SAAAO,MAKA,GAHA,UAAAA,KAAAl9H,gBACAk9H,KAAA,SAEA5hH,EAAA/W,UAAA,OAAA,OAAA24H,MACA,KAAA,IAAA7rH,OAAA,gBAAA6rH,KAGA,OADAsrD,SAAAtrD,KACAzyH,MAOAi+K,WACA,UAAA,QAAA,MAAA,UAAA,WAAA,UAAA,SACA,aAAA,SAAA,SAAA,SAAA,SAAA,OAAA,OACA,QAAA,MAAA,SAAA,WAAA,KAAA,KAAA,OAAA,UACA,UAAA,OAAA,MAAA,UAUAC,aAAA,SAAAh+I;A5P6LA,A4P5LA,GACAwyD,SADA/2E,UAGAukB,OAAAi+I,kBAAAj+I,MAEA,KAAAwyD,UAAAsrF,MAAAD,SACAC,KAAAD,SAAA56K,eAAAuvF,UAGA,IAAAA,QAAA1vF,QAAA,MAGAk9B,QAAA89I,MAAAD,SAAArrF,UACA/2E,QAAA9b,KAAA6yF,QAGA,OAAA/2E,UAUAyiK,cAAA,SAAAllK,QAIA,MAFAA,QAAAilK,kBAAAjlK,QAEAA,SAAA8kK,MAAAD,SACAltK,EAAAwhB,KAAA2rJ,KAAAD,SAAA7kK,aAcAmlK,UAAA,SAAAn+I,MAAA87C,IACA,MAAAnrE,GAAA/W,SAAAskL,cAAApiG,IAAAmiG,kBAAAj+I,SAWAo+I,WAAA,SAAAplK,OAAA8iE,IACA,MAAAnrE,GAAA/W,SAAAokL,aAAAliG,IAAAmiG,kBAAAjlK,UASAqlK,OAAA,WACA,MAAAP,MAAAD,UASAS,QAAA,WACA,MAAAT,UAUAI,kBAAA,SAAAzrF,SAGA,GAAA7hF,EAAA6nB,SAAAg6D,WAAA7hF,EAAA3U,QAAAw2F,SAAA;A5PkGA,A4PhGA,GAAA,YAAAA,SACA,MAAAA,SAAAv6F,SAAA5C,aAGA,IAAA,IAAAm9F,UAAA,YAAAA,SAAA,GACA,MAAAA,SAAA,GAAAv6F,SAAA5C,kBAIA,IAAAsb,EAAA+nB,SAAA85D,SACA,MAAAA,SAAAn9F,aAGA,MAAA,IAAAqR,OAAA,mBAAA8rF,SA4wBA,OAlwBAsrF,MAAAx/J,KAAA,WAGA,GAAA9N,GAAAG,EAAA9Y,OACA4Y,EAAA,SAAArN,OAAAm7K,SAEA,IAAA,GADAC,aAAA7tK,EAAA6mB,UAAAp0B,QACAjH,EAAA,EAAAA,EAAAyJ,UAAA9O,OAAAqF,IAAA,CACAoiL,QAAA34K,UAAAzJ,EACA,KAAA,GAAAwQ,QAAA4xK,eACAC,aAAA7xK,MAEA,MAAA6xK,cAwBAjxK,KAAA9Y,KAEAgqL,IACAnqL,EAAA,EACA6uE,KAAA,EACAjmD,KAAA,EACAs5I,MAAA,EACAjiK,EAAA,EACAmqL,IAAA,EACAC,IAAA,EACAtiK,GAAA,EACAlM,OAAA,EACAyuK,OAAA,EACAC,KAAA,EACAttI,KAAA,EACAsuB,QAAA,EACAi/G,SAAA,EACAC,IAAA,EACAC,IAAA,EACAC,GAAA,EACA7yK,MAAA,EACAjQ,EAAA,EACA+iL,OAAA,EACA3vF,IAAA,EACA51E,MAAA,EACAwlK,IAAA,EACAC,IAAA,EACAC,OAAA,EACA13E,MAAA;A5PWA,A4PVA7hG,IAAA,EACA0hK,KAAA,EACA8X,MAAA,EACAC,SAAA,EACAlzK,OAAA,EACA23J,OAAA,EACA3jK,SAAA,EACAW,EAAA,EACAw+K,KAAA,EACA3qL,EAAA,EACA4qL,KAAA,EACA/5J,OAAA,EACAhX,OAAA,EACAgxK,MAAA,EACAC,KAAA,EACAC,OAAA,EACAtgK,IAAA,EACAugK,IAAA,EACAC,SAAA,EACAxvH,KAAA,EACA/sD,EAAA,EACAw8K,MAAA,EACAxpB,MAAA,EACAypB,IAAA,GAGAC,IACAC,QAAA,EACAC,QAAA,EACAC,MAAA,EACAC,WAAA,EACAC,QAAA,EACAC,IAAA,EACAC,GAAA,EACAC,SAAA,EACAC,OAAA,EACAC,OAAA,EACAnrK,KAAA,EACAorK,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACA7nK,OAAA,EACA8nK,OAAA,EACAC,GAAA,EACArlE,KAAA,EACAslE,IAAA,EACAC,GAAA,EACA3sL,EAAA,EACAquD,IAAA,EACAwoC,QAAA,EACA9rC,MAAA,EACA6hI,GAAA,GAGAl0K,GACAyyD,QAAA,EACAwoB,KAAA,EACAk5F,KAAA,EACAhC,SAAA,EACA75J,OAAA,EACA5rB,MAAA,GAGAwK,KAEAqJ,GACA6zK,IAAA,GAIAC,IACAC,QAAA,EACAp1K,OAAA,EACAq1K,SAAA,EACAC,IAAA,EACA7hB,KAAA,EACA8hB,QAAA,EACAC,OAAA,EACAhoL,MAAA,EACAoxB,GAAA,GAGA62J,KACAC,OAAA,EACA9qK,IAAA,EACA+qK,SAAA,EAIAzxK,GAAAjD,EAAAkxK,GAAA9wK,EAAA8zK,IAEAjxK,EAAA/b,EAAAwrL,GAAA1yK,EAAAw0K,IAEA,IAAAG,MACA5tL,EAAAmc,EAAAlD,GACAjZ,EAAA,EACA6b,OAAA,IAEAgzD,KAAA51D,EACA2yK,QAAAzrL,EACAyoB,KAAA5Y,EACA67K,QAAA3vK,GACA1W,MAAA;A5P9FA,E4P+FArF,GACA2rL,MAAA5vK,GACA1W,MAAA,GACArF,GACA+hK,MAAAhmJ,GACApN,OAAA,EACA++K,MAAA,GACA1tL,GACAF,EAAAgZ,EACAoqC,KAAArzC,EACAo6K,IAAAnxK,EACAoxK,IAAApxK,EACA8yK,WAAA5rL,EACAyG,KAAAzG,EACA4nB,GAAA/X,EACA6L,OAAAM,EAAAlD,GACAjZ,EAAA,EACA6b,OAAA,IAEAyuK,OAAArxK,EACAiQ,QAAA/oB,EACAoqL,KAAAtxK,EACAgkC,KAAAhkC,EACA0P,IAAA3Y,EACAiZ,UACAN,IAAA,GAEA4iD,QAAAv7D,EACAw6K,SAAAtuK,GACAhC,OAAA,GACAjB,GACAwnE,GAAAtgF,EACAsqL,IAAAxxK,EACA+yK,QAAA9vK,GACA4xK,QAAA,GACA3tL,GACAuqL,IAAAzxK,EACAgzK,IAAA/vK,GACA1W,MAAA,GACArF,GACA+rL,IACA50J,GAAA,EACAmpD,GAAA,GAEAnpD,GAAAn3B,EACAwqL,GAAA1xK,EACAnB,MAAA9H,EACAm8K,SAAAjwK,GACAqM,OAAA,GACApoB,GACA4tL,WAAA5tL,EACAisL,OAAAlwK,GACA6xK,WAAA,GACA5tL,GACAksL,OAAAlsL,EACA+gB,KAAA/gB,EACAmsL,GAAArzK,EACAszK,GAAAtzK,EACAuzK,GAAAvzK,EACAwzK,GAAAxzK,EACAyzK,GAAAzzK,EACA0zK,GAAA1zK,EACAqY,KAAApV,GACA2tG,MAAA,EACAxmE,KAAA,GACAvqC,GACAgM,OAAA3kB,EACAysL,QACAN,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,GAEAE,GAAA78K,EACAga,KAAA9N,GACAoV,KAAA,EACA1qB,KAAA,GACAzG,EAAA2Y,GACAjR,EAAAoR,EACA2xK,OAAAvxK,EACA4hF,IAAAjrF,EACAqV,MAAArV,EACA66K,IAAA5xK,EACA6xK,IAAA7xK,EACA8xK,OAAA/6K,EACAqjG,MAAAp6F,EACAsP,OAAAtP,EACA+0K,GAAA7tL,EACA4zF,KAAA/jF,EACAwB,IAAArR,EACA+yK,KAAAj6J,EACAuuG,KAAAtrG,GACA8xK,GAAA,GACA7tL,GACA8sL,KAAAj9K,EACAg7K,MAAA7uK,EAAAlD,GACA+xK,MAAA;A5PhMA,G4PkMA8B,IAAA3sL,EACA8qL,SAAA/uK,GACA63E,KAAA,EACAk5F,KAAA,EACAznL,MAAA,GACAyT,GACAlB,OAAAmE,GACAsR,MAAA,GACAvU,GACA8zK,IACAiB,GAAA,GAEAjlK,UACA7O,OAAA,GAEAA,OAAAb,EACAq2J,OAAAz2J,EACA7Y,EAAA6Y,EACAuU,MAAAxd,EACAy+C,IAAAx1C,EACAlN,SAAAoQ,EAAAlD,GACAlN,SAAA,IAEAW,EAAAuM,EACAmtF,GAAAntF,EACAke,GAAAle,EACAiyK,KAAAhvK,GACAkqF,GAAA,EACAjvE,GAAA,GACAle,GACA1Y,EAAA0Y,EACAkyK,KAAAlyK,EACAmY,OAAA/X,EACA49E,QAAA/6E,GACA1W,MAAA,GACArF,GACAia,QACA2O,SAAA,EACA7O,OAAA,GAEAkxK,MAAAnyK,EACAnK,OAAAkB,EACAq7K,KAAApyK,EACAqyK,OAAAryK,EACAzT,MAAA6T,EACA2R,IAAA/R,EACA60K,QAAA70K,EACAsyK,IAAAtyK,EACAkyC,OACAjiC,QAAA,EACAD,SAAA,EACAT,MAAA,EACAQ,MAAA,EACA3T,MAAA,EACAoT,GAAA,GAEApT,OACAoT,GAAA,GAEAC,GAAAvoB,EACAqrL,SAAAnyK,EACA2P,OACAP,GAAA,GAEAU,GAAAhpB,EACAqoB,OACAC,GAAA,GAEAuzC,KAAA7/C,EAAAlD,GACA+iD,KAAA,IAEA6tD,MAAAxwG,EACAoP,IACAU,GAAA,EACAT,GAAA,GAEAmlK,MAAA79K,EACAf,EAAAgK,EACA+zK,IACAgB,GAAA,GAEAvC,MAAAxyK,EACAgpJ,MAAA/lJ,GACApN,OAAA,EACA++K,MAAA,GACA1tL,GACAurL,IAAA17K,EAGAo9K,QAAAn0K,EACAjB,OAAAkE,GACAsR,MAAA,GACArtB,GACAktL,SAAAr9K,EACAs9K,IAAAr0K,EACAy0K,OAAAvtL,EACA4pH,OAAA/5G,EACA4S,KACAorK,GAAA,GAEAviB,KAAAxyJ,EACAs0K,QAAAv9K,EACA29K,SAAAxtL,EACAqtL,OAAAv0K;A5PxSA,A4PySA2d,GAAA3d,EAsSA,OAnSAiD,GAAA0xK,KAIAK,OAAA/xK,GACAgmJ,MAAA,EACAzhF,GAAA,EACAnpD,GAAA,EACAy2J,WAAA,EACAC,GAAA,EACA/rB,MAAA,GACA0pB,GAAA8B,KAcAS,aACArC,QAAA,EACAC,MAAA,EACA5pB,MAAA,EACAt7J,KAAA,EACAsiB,QAAA,EACA8iK,QAAA,EACAppK,IAAA,EACAqpK,IAAA,EACAC,GAAA,EACAC,SAAA,EACA4B,WAAA,EACA3B,OAAA,EACAC,OAAA,EACAnrK,KAAA,EACA4D,OAAA,EACA8nK,OAAA,EACAplE,KAAA,EACAslE,IAAA,EACAC,GAAA,EACA91F,QAAA,EACA9rC,MAAA,EACAziC,GAAA,EACAS,GAAA,EACAV,GAAA,EACAukK,GAAA,EACA/qB,MAAA,GAMAksB,QACA/8J,OAAA,EACA5rB,MAAA,GAMA4oL,WACAxC,QAAA,EACAC,QAAA,EACAC,MAAA,EACAC,WAAA,EACAnlL,KAAA,EACAolL,QAAA,EACAC,IAAA,EACAE,SAAA,EACA4B,WAAA,EACA1B,OAAA,EACAnrK,KAAA,EACAorK,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACA7nK,OAAA,EACA8nK,OAAA,EACAE,IAAA,EACA1sL,EAAA,EACAquD,IAAA,EACAwoC,QAAA,GAMAo3F,QACAzlK,KAAA,EACAy6B,KAAA,EACAgqI,SAAA,EACAtlK,GAAA,EACAY,IAAA,EACA4iD,QAAA,EACAw+C,OAAA,EACAjyG,MAAA,EACA+0K,GAAA,EACA5xF,IAAA,EACA51E,MAAA,EACAkoK,QAAA,EACAxC,OAAA,EACAh3F,KAAA,EACAk5F,KAAA,EACAz/J,MAAA,EACA1e,OAAA,EACA++K,MAAA,EACAnC,IAAA;A5P5ZA,E4PkaA4C,QAAAr1K,EAKAs1K,OACArC,GAAA,EACAa,GAAA,EACAC,GAAA,GAMAwB,WACA/tG,GAAA,EACAnpD,GAAA,EACA02J,GAAA,GAMAS,gBAAAvyK,GACAtV,KAAA,EACA0qB,KAAA,EACAtH,KAAA,GACA4jK,IAAAt8J,MAKAo9J,cACA12K,OAAA,EACAkqJ,MAAA,EACArmJ,OAAA,EACA/D,MAAA,EACA8yK,OAAA,EACAp5K,IAAA,EACAuG,OAAA,EACAmC,OAAA,EACAsT,MAAA,EACA4D,OAAA,EACAo6J,SAAA,EACAvpB,MAAA,GAMA0sB,SACA32K,OAAA,EACAkqJ,MAAA,EACArmJ,OAAA,EACAgxK,GAAA,EACAjC,OAAA,EACA3vF,IAAA,EACA51E,MAAA,EACAtN,OAAA,EACAqC,OAAA,EACA+wC,MAAA,EACAqgI,SAAA,EACAvpB,MAAA,GAMA2sB,cACA//G,KAAA,EACAu+G,QAAA,EACAntL,EAAA,EACAmqL,IAAA,EACAC,IAAA,EACAiD,IAAA,EACA/C,KAAA,EACAttI,KAAA,EACAwtI,IAAA,EACAC,IAAA,EACAC,GAAA,EACAlf,KAAA,EACA5jK,EAAA,EACAgjL,IAAA,EACAx3E,MAAA,EACAy3E,IAAA,EACA5X,KAAA,EACA8X,MAAA,EACAtb,OAAA,EACAhjK,EAAA,EACAw+K,KAAA,EACA3qL,EAAA,EACA4qL,KAAA,EACAC,MAAA,EACAC,KAAA,EACAmC,OAAA,EACAlC,OAAA,EACAtgK,IAAA,EACAugK,IAAA,EACAvvH,KAAA,EACAplC,GAAA,EACA3nB,EAAA,EACAw8K,MAAA,GAMAoD,WACA7uL,EAAA,EACA4oB,KAAA,EACA/M,OAAA,EACAwJ,MAAA,EACAtN,OAAA,EACAqC,OAAA,EACAoxK,SAAA,GAMAsD,eACA5lK,QAAA,EACAP,IAAA;A5P3hBA,A4P4hBAM,SAAA,EACA5T,MAAA,EACAqT,GAAA,EACAM,MAAA,EACAG,GAAA,EACAX,MAAA,EACAC,GAAA,GAMAsmK,cACA/uL,EAAA,EACAkiK,MAAA,EACAooB,OAAA,EACAG,IAAA,EACAI,IAAA,EACAr5K,IAAA,EACAy5K,SAAA,EACAlzK,OAAA,EACAkqJ,MAAA,GAMA+sB,eACA9lK,QAAA,EACAD,SAAA,EACAw3D,GAAA,EACAnpD,GAAA,EACAy2J,WAAA,EACAxlK,OAAA,EACAylK,GAAA,EACAjlK,SAAA,EACA7O,OAAA,EACAksF,GAAA,EACAjvE,GAAA,EACA22J,QAAA,EACAz4K,MAAA,EACAqT,GAAA,EACAM,MAAA,EACAG,GAAA,EACAX,MAAA,EACAC,GAAA,KAIAmlK,OASApE,KAAA3mF,IAAA,WAuBA,IAtBA,GAAA3E,SACA+wF,QACAvjJ,MAEAwjJ,OAEA10I,OAWAoF,IAEA5e,aAhBAy1H,SAAA,SAAA,OAEA04B,OAAA14B,QAAAj0J,OAEA4sL,WACA3gI,KACAnrD,OACAuD,QAAA,MAAA,SAAA,MAAA,QAAA,MAAA,QAEAskD,OACAtkD,QAAA,SAGAwoL,OAAAhzK,EAAA6mB,UAAAsmJ,KAAAx/J,MAEAslK,MAAA7F,UAAAjnL,OAIA8sL,eACAD,QAAA5F,UAAA6F,OAIA,KAAApxF,UAAAmxF,QACAA,OAAA1gL,eAAAuvF,WAGAl9D,aAAA3kB,EAAA2kB,aAAA3kB,EAAAwhB,KAAAwxJ,OAAAnxF,UAAAurF;A5PrnBA,A4PsnBAzoJ,aAAAx+B,SAGA4sL,UAAAlxF,WACAkxF,UAAAlxF,UACAr3F,YAGAuoL,UAAAlxF,SAAAr3F,OAAAuoL,UAAAlxF,SAAAr3F,OAAAmD,OAAAg3B,eAIA,KAAAk9D,UAAAkxF,WACA,GAAAA,UAAAzgL,eAAAuvF,UAIAmxF,OAAA1gL,eAAAuvF,SAKA,IAAAgxF,OAAA,EAAAC,OAAAD,OAAAA,SAEA,GADA10I,OAAAi8G,QAAAy4B,QACA10I,SAAA40I,WAAAlxF,SAOA,GAJA+wF,QAAAG,UAAAlxF,SAAA1jD,QAAAh4C,OAIA,WAAAg4C,QAAA,QAAA40I,UAAAlxF,SAAA1jD,QAOA,KAAAy0I,WACAvjJ,MAAA0jJ,UAAAlxF,SAAA1jD,QAAAy0I,SAIArvI,IAAAvjC,EAAA6mB,UAAAmsJ,OAAAnxF,UACA,WAAA1jD,cACAoF,KAAAlU,OACA2jJ,OAAAnxF,SAAAt+C,KAGA,QAAApF,QAAA,mBAAA60I,QAAA3jJ,SACAkU,IAAAlU,OAAA,EACA2jJ,OAAAnxF,SAAAt+C,IAAAlU,YAnBA2jJ,QAAAnxF;A5PrpBA,A4P8qBA,MAAAmxF,YAIAtF,OAAAA,OACAH,cAAAA,cACAF,aAAAA,aACAG,UAAAA,UACAC,WAAAA,WACAE,QAAAA,QACAtsD,QAAAA,WAIA,OAAA4rD,cCl7BAl0J,OAAA,8BACA,SACA,SACA,WACA,0BACA,SAAA9mB,EAAA+N,EAAAkzK,SAAAjG,YACA,YAIA,IAAAkG,gBAAAnzK,EAAA6mB,UAAAlxB,OAAAy9K,SAAAjpJ,QAEAkpJ,eAAA,WAMA,GAAAC,iBACAn4H,SACAn/C,KAAA,cACAw/E,OAAA,OAAA,SAAA,YAAA,iBAEAx/E,KAAA,SACAw/E,OAAA,iBAEAx/E,KAAA,QACAw/E,OAAA,UAEAgC,OACAxhF,KAAA,cACAw/E,OAAA,OAAA,SAAA,YAAA,iBAEAx/E,KAAA,SACAw/E,OAAA;A7PqNA,G6PnNAx/E,KAAA,QACAw/E,OAAA,UAEApmC,QACAp5C,KAAA,cACAw/E,OAAA,OAAA,SAAA,YAAA,iBAEAx/E,KAAA,SACAw/E,OAAA,QAAA,iBAGAx/E,KAAA,QACAw/E,OAAA,SAEA,KAEAx/E,KAAA,SACAw/E,OAAA,YAEAx/E,KAAA,YACAw/E,OAAA,eAAA,eAAA,IAAA,aAAA,cAAA,gBAAA,eAAA,kBAEA+3F,eACAv3K,KAAA,cACAw/E,OAAA,OAAA,SAAA,YAAA,YAAA,iBAEAx/E,KAAA,SACAw/E,OAAA,iBAEAx/E,KAAA,YACAw/E,OAAA,eAAA,kBAEAx/E,KAAA,YACAw/E,OAAA,MAAA,OAAA,WAEAx/E,KAAA,UACAw/E,OAAA,OAAA,UAEAx/E,KAAA,aACAw/E,OAAA,YAAA,OAAA;A7P6KA,I6PtKAg4F,UACAC,mBAAA,EACAC,UAAA,EACAC,2BAAA,EACAC,eAAA,EACAC,aAAA,eACAC,wBAAA,EACAC,uBAAA,EACAC,KAAA,MACAC,SAAA,KACAC,cAAA,GACAC,qBAAA,EACAC,gBAAA,UAAA,UAAA,UAAA,WACAC,mBAAA,EACAC,sBACAzyF,QAAA,OACA9lF,YAAAyC,QAAA,kBAEA+1K,cAAA,IAAA,SAAA,IAAA,IAAA,IAAA,QAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,KAAA,OAAA,cACA,OAAA,yBAAA,UAAA,IAAA,QAAA,OAAA,6BAAA,OAAA,gBAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,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,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,SAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UACA,SAAA,UAAA,WAAA,QAAA,WAAA,SAAA,QAAA,SAAA,SAAA,UAAA,QAAA,QAAA,SAAA,QAAA,SAAA,SAAA,UACA,UAAA,SAAA,WAAA,UAAA,SAAA,SAAA,UAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,UAAA,WACA,SAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,SAAA,WAAA,WAAA,UAAA,SAAA,QAAA,WAAA,WAAA,WACA,UAAA,WAAA,SAAA,UAAA,WAAA,WAAA,WAAA,UAAA,SAAA,WAAA,UAAA,UAAA,WAAA,WAAA,UACA,WAAA,SAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,SAAA,WAAA,WAAA,UAAA,SAAA,QAAA,WACA,WAAA,WAAA,UAAA,WAAA,SAAA,WAAA,WAAA,WAAA,WAAA,UAAA,SAAA,WAAA,UAAA,SAAA,UACA,UAAA,SAAA,QAAA,QAAA,SAAA,UAAA,UAAA,UAAA,WAAA,UAAA,UAAA,SAAA,SAAA,SAAA,SAAA,UAAA;A7P2IA,E6PlIAC,eAAA,SAAAhB,SAAAiB,mBAEAA,kBAAAA,qBAEA,IAAAC,OAEAC,MACAr3I,OACAojB,OACA16C,MACA2jC,UACAirI,QACAC,aACAC,UAEAtpL,EAVAupL,MAAAvB,SAAAwB,QAAA7uL,OASA8uL,aAmBA,KAfAzB,SAAAK,aAAA,SAAAqB,oBAAArB,cAIA,IAHA,GAAAroL,GAAA0pL,oBAAA/uL,OACAgvL,eAAAtB,aAAA5vL,MAAA,KAEAuH,KACA0pL,oBAAA1pL,GAAA0pL,oBAAA1pL,GAAA9G,aAIA,OADAywL,gBAAAn1K,EAAAwjB,QAAAxjB,EAAA+lB,MAAAovJ,eAAAD,sBACAC,eAAAjgL,KAAA,MAEA8K,EAAAwhB,KAAAizJ,mBAAAjB,SAAAK,cAIAroL,EAAA,EAAAupL,MAAAvpL,EAAAA,IACAwU,EAAA+nB,SAAAyrJ,SAAAwB,QAAAxpL,MACAypL,WAAAzpL,GAAAgoL,SAAAwB,QAAAxpL,GACAgoL,SAAAwB,QAAAxpL;A7P+FA,A6P9FAgwF,UAMA,KAAA96B,SAAA+zH,mBAAA,CAqBA,IAnBAn3I,OAAA,SAAA83I,aAEA,IADA,GAAA5pL,GAAA4pL,YAAAjvL,OACAqF,KACA,GAAA,IAAA4pL,YAAA5pL,GAAA2G,QAAA,WAAA,YAAAijL,YAAA5pL,GACA,MAAA4pL,aAAA5pL,EAIA,MAAA,yEAEAwU,EAAAwhB,KAAAizJ,kBAAA/zH,UAIAk0H,QAAAH,kBAAA/zH,QAAApjB,QAAA54C,cACAilD,UAAA8qI,kBAAA/zH,QAAA/W,YAAA,EACA3jC,MAAA,GAGA+uK,SAAA,CAIA,IAHAJ,MAAAnB,SAAAwB,QAAAD,OAAAv5F,MAAAr1F,OAGAuuL,MAAA,EAAAC,MAAAD,MAAAA,QACA,GAAAlB,SAAAwB,QAAAD,OAAAv5F,MAAAk5F,OAAAhwL,gBAAAkwL,QAAA,CACA5uK,MAAA0uK,KACA,OAIA,GAAA1uK,MAAA,GAAA,CAEA6uK,gBAAA,YAAAv3I,QACA,gBAAAA,QACAt3B;A7PqDA,A6PnDA2jC,YACA6pI,SAAAwB,QAAAD,OAAAv5F,MAAA1uF,OAAAkZ,MAAA6uK,aAAA,KACA7uK,SAEAwtK,SAAAwB,QAAAD,OAAAv5F,MAAA1uF,OAAAkZ,MAAA6uK,aAAAn0H,OACA,QAIAq0H,MAAAvB,SAAAwB,QAAA7uL,OAKA,IAAA2uL,YAAAG,YACAzB,SAAAwB,QAAAF,WAAAG,WAAAH,YAsBA/2I,UAAA,SAAAs3I,OAAAC,YAAAr3K,SAEA,GAAA,UAAAq3K,YACA,MAAAnC,eAGAl1K,SAAAA,YAEAA,QAAAs3K,YAAAt3K,QAAAs3K,eAEA,IAAAP,SAEA7qJ,OADAqrJ,SAAAx1K,EAAA9J,MAAAo9K,gBAAA,GAEApG,QAAAjvK,QAAAivK,SAAA,OAKAuH,sBAGA,QAAAvH,SAAA,IAAAoI,YAAAnjL,QAAA,UACAmjL,YAAAA,YAAAzsL,MAAA,GAAAnE,cACA8uL,SAAAiC,gBAAA,EACAjC,SAAAI,eAAA;A7PTA,A6PUA1G,QAAA,OAKA,QAAAA,UACAjvK,QAAAy3K,WACAjB,kBAAAkB,aAAAxnK,YAAA,gBAEAlQ,QAAA23K,aACAnB,kBAAAoB,eAAA1nK,YAAA,gBAEAlQ,QAAA63K,YACArB,kBAAAsB,cAAA5nK,YAAA,WAEAlQ,QAAA+3K,UACAvB,kBAAAwB,aAAA9nK,YAAA,iBAMAlQ,QAAA+2K,UACAQ,SAAAF,aAAAt1K,EAAA9J,MAAA+H,QAAA+2K,SAIA,KAAAA,UAAAQ,UACAA,SAAAljL,eAAA0iL,WACAxB,SAAA,WAAAwB,SAAAQ,SAAAR,SAiEA,OA5DA,mBAAAQ,UAAAF,eACA9B,SAAAwB,QAAAQ,SAAAF,cAIA,mBAAAr3K,SAAAw2K,oBACAx2K,QAAAw2K;A7PjDA,C6PqDA,IAAAx2K,QAAAw2K,oBAEAA,kBAAAz0K,EAAAqjB,OAAAoxJ,kBAAAz0K,EAAA9J,MAAA+H,QAAAw2K,oBACAD,eAAAhB,SAAAiB,oBAIAtqJ,OAAAnqB,EAAAqjB,UAAArjB,EAAA6mB,UAAAssJ,gBAAAK,SAAAxzK,EAAAglB,KAAA/mB,SACA,WAAA,aAAA,YAAA,UAAA,UAAA,uBAQAo3K,OAAApwK,GAAA,QAAA,SAAA1gB,GACA0oL,WAAA5rD,QAAA6rD,SACAv3K,OAAAy9K,SAAA7B,IAAAtE,WAAAS,WAOA2H,OAAApwK,GAAA,gBAAA,SAAA1gB,GACA0N,EAAA1N,EAAA8wL,OAAAxzF,QAAA5vF,GAAAiL,WAAA,WAIAvH,OAAAy9K,SAAAnuK,GAAA,mBAAA,SAAA1gB,GACA,GAAA,SAAAA,EAAAS,KAAAgX,KAAA,CAOA,IAJA,GAEAk6K,QAFAC,UAAA5xL,EAAAS,KAAAm/D,WAAAiyH,YAAA,QAAA1hL,IAAA,YAAA,MACAlJ,EAAA2qL,UAAAhwL,OAGAqF,KACA,WAAA2qL,UAAA3qL,GAAA,KACA0qL,OAAA1qL;A7P5FA,A6PiGA2qL,UAAArpL,OAAAopL,OAAA,EAAA,MAKA/rJ,OAGA,QACA4T,UAAAA,aAKA,OAAAs1I,kBC1WAt6J,OAAA,uDAAA,8BAAA,SAAAs6J,gBACA,YAmBA,IAAAt1I,WAAA,SAAAs3I,OAAAC,YAAAr3K,SAKA,MAJAA,SAAAA,YAEAA,QAAA63K,WAAA,EAEAzC,eAAAt1I,UAAAs3I,OAAAC,YAAAr3K,SAGA,QACA8/B,UAAAA,aC/BA,SAAAn9B,QAEA,YAGA,SAAAtN,kBAAAtF,KAAAhH,MAAAwL,IACA,MAAAxE,MAAAsF,iBACAtF,KAAAsF,iBAAAtM,MAAAwL,IAAA,GAEAxE,KAAAuJ,YACAvJ,KAAAuJ,YAAA,KAAAvQ,MAAAwL,IADA,OAMA,QAAA1M,SAAAuvC,IAAAoE,MACA,GAAAjuC,GAAAgwC,GACA,KAAAhwC,EAAA,EAAAgwC,IAAAnG,IAAAlvC,OAAAq1C,IAAAhwC,EAAAA,IACA,GAAA6pC,IAAA7pC,KAAAiuC,KACA,OAAA;A/P2OA,A+PxOA,OAAA,EAIA,QAAA48I,WAAAroL,KAAAgY,OACA,GAAAuf,MACAv3B,MAAAsoL,iBACA/wJ,MAAAv3B,KAAAsoL,kBACA/wJ,MAAAinF,KAAA,YAAAxmG,OACAuf,MAAAxnB,UACA/P,KAAAuoL,iBACAvoL,KAAA8V,QACA9V,KAAAmxJ,kBAAAn5I,MAAAA,QAKA,QAAAwwK,YAAAxoL,KAAAnG,MACA,IAEA,MADAmG,MAAAnG,KAAAA,MACA,EACA,MAAAtD,GAEA,OAAA,GAKAqc,OAAA61K,cACAhyI,OACAnxC,iBAAAA,iBACAxN,QAAAA,QACAuwL,UAAAA,UACAG,WAAAA,cAIArnL,MAEA,SAAAyR,QAEA,YA6DA,SAAA9J,SAMA,QAAA4/K,qBACA,IACA,MAAA1rL,UAAAie,cACA,MAAA6sB,OAIA,QAAA6gJ,iBAAA3oL,KAAA4oL,cACA,GAAA/uL,MACAk9H,UACA8xD,eAAAD,cAAA5oL,KAAAhG,QAAA4uL,aACAE,mBAAA9oL,KAAAhG,QAAAgG,KAAArJ,aAAAoyL;A/PkHA,A+PhHA,OAAAF,cAAAC,qBAAA,SAAA9oL,KAAArJ,aAAAqyL,cACAhpL,KAAA3F,gBAAA2uL,aACAhpL,KAAAhG,MAAAgG,KAAAhG,MAAAxD,QAAAwJ,KAAArJ,aAAAoyL,kBAAA,IACA/oL,KAAAuL,UAAAvL,KAAAuL,UAAA/U,QAAAyyL,gBAAA,IAGAlyD,UAAA/2H,KAAArJ,aAAAuyL,gBACA93K,SAAA2lH,UAAA,KAAA,IACA/2H,KAAA4K,aAAA,YAAAmsH,WACA/2H,KAAA3F,gBAAA6uL,iBAIArvL,KAAAmG,KAAArJ,aAAAwyL,iBACAtvL,OACAmG,KAAAnG,KAAAA,OAEA,IAEA,EAIA,QAAAuvL,iBAAAppL,MACA,GAAAnG,MACAk9H,UACArnH,IAAA1P,KAAArJ,aAAAoyL,iBACA,OAAA,KAAA/oL,KAAAhG,OAAA0V,KACA1P,KAAA4K,aAAAo+K,YAAA,QACAhpL,KAAAhG,MAAA0V,IACA1P,KAAAuL,WAAA,IAAA89K;A/PmFA,A+PhFAtyD,UAAA/2H,KAAArJ,aAAAuyL,gBACAnyD,YACA/2H,KAAA4K,aAAAs+K,eAAAlpL,KAAA+2H,WACA/2H,KAAA3F,gBAAA,cAIAR,KAAAmG,KAAArJ,aAAAwyL,iBACAtvL,KACAmG,KAAAnG,KAAA,OACA,aAAAmG,KAAAnG,MACA48C,MAAA+xI,WAAAxoL,KAAA,SACAA,KAAA4K,aAAAu+K,gBAAA,aAGA,IAEA,EAGA,QAAAG,YAAA1rJ,KAAAoB,UAEA,GAAAuqJ,oBAAAC,sBAAAC,aAAAC,gBAAA1pL,KAAAwtC,IAAAhwC,CAGA,IAAAogC,MAAAA,KAAAjnC,aAAAoyL,kBACA/pJ,SAAApB,UAWA,KAPA6rJ,aAAA7rJ,KAAAA,KAAAtlC,qBAAA,SAAAqxL,OACAD,gBAAA9rJ,KAAAA,KAAAtlC,qBAAA,YAAAsxL,UAEAL,mBAAAE,aAAAA,aAAAtxL,OAAA;A/PgDA,A+P/CAqxL,sBAAAE,gBAAAA,gBAAAvxL,OAAA,EAGAqF,EAAA,EAAAgwC,IAAA+7I,mBAAAC,sBAAAh8I,IAAAhwC,EAAAA,IACAwC,KAAAupL,mBAAA/rL,EAAAisL,aAAAjsL,GAAAksL,gBAAAlsL,EAAA+rL,oBACAvqJ,SAAAh/B,MAMA,QAAA6pL,qBAAAjsJ,MACA0rJ,WAAA1rJ,KAAA+qJ,iBAIA,QAAAmB,oBAAAlsJ,MACA0rJ,WAAA1rJ,KAAAwrJ,iBAIA,QAAAW,kBAAA/pL,MACA,MAAA,YAGAgqL,aAAAhqL,KAAAhG,QAAAgG,KAAArJ,aAAAoyL,mBAAA,SAAA/oL,KAAArJ,aAAAqyL,aAGAvyI,MAAA4xI,UAAAroL,KAAA,GAKA2oL,gBAAA3oL,OAMA,QAAAiqL,iBAAAjqL,MACA,MAAA,YACAopL,gBAAAppL,OAKA,QAAAkqL,oBAAAlqL,MACA,MAAA,UAAAzJ;A/PCA,A+PGA,MAHA4zL,YAAAnqL,KAAAhG,MAGA,SAAAgG,KAAArJ,aAAAqyL,cACAmB,aAAAnqL,KAAArJ,aAAAoyL,mBAAAtyI,MAAA3+C,QAAAsyL,QAAA7zL,EAAAse,UACAte,EAAAqd,gBACArd,EAAAqd,kBAEA,GALA,QAUA,QAAAy2K,kBAAArqL,MACA,MAAA,YACA2oL,gBAAA3oL,KAAAmqL,YAGA,KAAAnqL,KAAAhG,QACAgG,KAAA+V,OACA0gC,MAAA4xI,UAAAroL,KAAA,KAIA,QAAAsqL,kBAAAtqL,MACA,MAAA,YACAA,OAAA0oL,qBAAA1oL,KAAAhG,QAAAgG,KAAArJ,aAAAoyL,mBAAA,SAAA/oL,KAAArJ,aAAAqyL,cACAvyI,MAAA4xI,UAAAroL,KAAA,IAMA,QAAAuqL,mBAAA1zK,MACA,MAAA,YAGAgzK,oBAAAhzK,OAKA,QAAA2zK,YAAAxqL,MAGAA,KAAA6W,OACAA,KAAA7W,KAAA6W;A/P7CA,A+PgDA,gBAAAA,QACAA,KAAA7Z,SAAAkJ,eAAA2Q,OAIAA,KAAAlgB,aAAA8zL,qBACAh0I,MAAAnxC,iBAAAuR,KAAA,SAAA0zK,kBAAA1zK,OACAA,KAAAjM,aAAA6/K,kBAAA,UAKAh0I,MAAAnxC,iBAAAtF,KAAA,QAAA+pL,iBAAA/pL,OACAy2C,MAAAnxC,iBAAAtF,KAAA,OAAAiqL,gBAAAjqL,OAGAgqL,cACAvzI,MAAAnxC,iBAAAtF,KAAA,UAAAkqL,mBAAAlqL,OACAy2C,MAAAnxC,iBAAAtF,KAAA,QAAAqqL,iBAAArqL,OACAy2C,MAAAnxC,iBAAAtF,KAAA,QAAAsqL,iBAAAtqL,QAIAA,KAAA4K,aAAA8/K,kBAAA,QACA1qL,KAAA4K,aAAAm+K,iBAAAl0F,cAGAm1F,aAAAhqL,OAAA0oL,sBACAU,gBAAAppL;A/P3EA,C+PnMA,GAsCA2pL,QAAAC,UAkBAI,YAAAW,YAAAR,WAAAS,UAAAC,WAAAh2F,YAAAtzF,MAAAsV,KAAA7W,KAAAwtC,IAAAhwC,EAxDAstL,YACA,OACA,SACA,MACA,MACA,QACA,WACA,SACA,YAIAV,SAGA,GACA,GACA,GACA,GACA,GAGA,GACA,GACA,GACA,GAGA,EACA,IAIAW,sBAAA,OACA1B,qBAAA,iBACAJ,gBAAA,GAAAp2K,QAAA,YAAAw2K,qBAAA,WAMAN,iBAAA,yBACAC,YAAA,0BACAG,gBAAA,wBACAsB,kBAAA,0BACAC,kBAAA,yBACAM,kBAAA,yBACAC,iBAAA,wBACA/B,eAAA,6BAGAryL,KAAAmG,SAAA9E,cAAA,SACA+uB,KAAAjqB,SAAA1E,qBAAA,QAAA,GACA4uC,KAAAlqC,SAAA6L,gBACA4/K,aAAA71K,OAAA61K,aACAhyI,MAAAgyI,aAAAhyI;A/P6IA,A+PgFA,GAFAgyI,aAAAyC,cAAA,SAAAr0L,KAAAg+F,aAEA4zF,aAAAyC,cAAA,CA4BA,IAzBAvB,OAAA3sL,SAAA1E,qBAAA,SACAsxL,UAAA5sL,SAAA1E,qBAAA,YAGA0xL,YAAA,UAAA9iJ,KAAAvwC,aAAAq0L,mBACAL,YAAA,UAAAzjJ,KAAAvwC,aAAAs0L,kBAGAL,UAAA5tL,SAAA9E,cAAA,SACA0yL,UAAA/wL,KAAA,WAGAgxL,WAAA7tL,SAAAgiB,eAAA,IAAAqqK,qBAAA,YAAA0B,sBAAA,OAGAH,UAAA/2B,WACA+2B,UAAA/2B,WAAAhpJ,QAAAggL,WAAAv5K,UAEAs5K,UAAAryL,YAAAsyL,YAIA5jK,KAAApa,aAAA+9K,UAAA3jK,KAAAlc,YAGAvN,EAAA,EAAAgwC,IAAAm8I,OAAAxxL,OAAAyxL,UAAAzxL,OAAAq1C,IAAAhwC,EAAAA,IACAwC,KAAAxC,EAAAmsL,OAAAxxL,OAAAwxL,OAAAnsL,GAAAosL,UAAApsL,EAAAmsL,OAAAxxL;A/P5GA,A+P+GA08F,YAAA70F,KAAA+N,WAAA8mF,YACAA,cAGAA,YAAAA,YAAAvjF,UAGAujF,aAAAp+C,MAAA3+C,QAAAgzL,WAAA9qL,KAAAnG,OACA2wL,WAAAxqL,MAMAuB,OAAAmoB,YAAA,WACA,IAAAlsB,EAAA,EAAAgwC,IAAAm8I,OAAAxxL,OAAAyxL,UAAAzxL,OAAAq1C,IAAAhwC,EAAAA,IACAwC,KAAAxC,EAAAmsL,OAAAxxL,OAAAwxL,OAAAnsL,GAAAosL,UAAApsL,EAAAmsL,OAAAxxL,QAGA08F,YAAA70F,KAAA+N,WAAA8mF,YACAA,aACAA,YAAAA,YAAAvjF,UACAujF,aAAAp+C,MAAA3+C,QAAAgzL,WAAA9qL,KAAAnG,QAGAmG,KAAArJ,aAAA+zL,oBACAF,WAAAxqL,OAIA60F,cAAA70F,KAAArJ,aAAAoyL,mBAAA,aAAA/oL,KAAAnG,OAAAmG,KAAArJ,aAAAwyL,oBAGA,aAAAnpL,KAAAnG,OAAAmG,KAAArJ,aAAAwyL,kBAAA1yI,MAAA+xI,WAAAxoL,KAAA,SACAA,KAAA4K,aAAAu+K,gBAAA;A/PhJA,A+PoJAnpL,KAAAhG,QAAAgG,KAAArJ,aAAAoyL,oBACA/oL,KAAAhG,MAAA66F,aAIA70F,KAAA4K,aAAAm+K,iBAAAl0F,gBAGA70F,KAAArJ,aAAAqyL,eACAL,gBAAA3oL,MACAA,KAAA3F,gBAAA0uL,kBAKA4B,cACA/gK,cAAAroB,QAEA,KAGAk1C,MAAAnxC,iBAAAsN,OAAA,eAAA,WACA61K,aAAA3+K,YAIA2+K,aAAA3+K,QAAA2+K,aAAAyC,cAAApiL,KAAA+gL,oBACApB,aAAA1pF,OAAA0pF,aAAAyC,cAAApiL,KAAAghL,oBAEA3oL,MAEA4pB,OAAA,wBAAA,cCrbAA,OAAA,+EACA,SACA,SACA,OACA,eACA,4EACA,iDACA,uEACA,WACA,sDACA,yBACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAgH,QAAAsrB,IAAA0vG,gBAAAqb,eAAAiR,SAAA9F;AACA,AhQuPA,YgQ5OA,IAAAnyH,QAAA,SAAAypC,aACA,MAAA,IAAA94D,SAAA,SAAAt5B,QAAAC,QAEA,GAAAm2G,KAAA49D,eAAA6M,WAAAxM,YAAAyM,gBAAAhE,OACAj2H,WAAAytG,gBAAAn4J,IAAAi2F,aAGA6+D,UADA7+D,YAAA05D,yBACAi1B,YAAA3uF,cACA4uF,QAAAC,aAAA7uF,aAEA8uF,gBAAA9uF,YAAA32F,KAAA,mBAEAshL,YAAA,eACAoE,WACA7F,aAAA,WACAI,SAAA,KACA0F,gBAAA,KACAC,gBAAA,EACAC,OAAA,UAAA/nL,SAAA67F,SACAmsF,mBAAA,EAGA,IAAAtwB,SA8CA,CAQA,GANA76C,IAAAvvD,WAAAhrD,KAAA,SACAglL,WAAAzuF,YAAA32F,KAAA,cACAu4K,eAAA5hF,YAAA32F,KAAA;AACA44K,AhQoKA,YgQpKAjiF,YAAA32F,KAAA,eAGAolL,WAAA,CAGA,GAAAW,gBAAA,SAAA/4I,UACA,GAAAg+G,KAAA,CAOA,OANAh+G,UAAAh9C,KAAA,WACA,KAAAiO,EAAA9C,MAAAuO,OACAshJ,QAIAA,IAGAo6B,YAAAh6K,SAAAg6K,WAAA,IACAA,WAAA,GAEAzqE,IAAA1pG,GAAA,sBAAA,WACA3X,WAAA,YAKAqhH,IAAAzsG,GAAA,WAAA63K,eAAAprE,KAAAyqE,YACAlR,eAAApD,mBAAAn6E,YAAA9/D,GAAA,qCAAA,MAAAuuJ,WAAA,YAEA,OAMA7M,iBACAA,eAAAntK,SAAAmtK,eAAA,IAEAA,eAAA,GACA59D,IAAA3qH,KAAA,WACAiO,EAAA9C,MAAAnG,IAAA,QAAAujL,eAAA,SAMAK,aACAj+D,IAAA3qH,KAAA,WACAg2L,YAAA/nL,EAAA9C,MAAAy9K,eAKA6M,kBAOAJ,gBAAA;AAEA,AhQuGA,agQvGAA,gBACA1qE,IAAA3qH,KAAA,WACAiO,EAAA9C,MAAA6E,KAAA,cAAAylL,mBAGA,UAAAJ,iBACA1qE,IAAA75G,QAAAd,KAAA,cAAAylL,kBAGAlhL,cAxHAo2G,KAAAvvD,WAAAhrD,KAAA,YACAqlL,iBACA9qE,IAAA36G,KAAA,cAAAylL,iBAEA,UAAAQ,WAAAtvF,cAGA0qF,OAAA6E,eAAAvvF,YAAA+uF,WACArE,QACA78K,OAAA,kCAGA68K,OAAApwK,GAAA,gBAAA,WAEAjF,EAAA5D,MAAA7D,QAAA,QAEA,UAAA88K,OAAAzhK,QAAA,WAAAyhK,OAAAzhK,SACA5T,EAAA8jB,MAAAvrB,SAEA88K,OAAApwK,GAAA,eAAA,SAAA1gB,GACA8wL,OAAAlrJ,OAAAkpJ,eAAAt1I,UAAAs3I,OAAAC,YAAAoE,WAEAH,QAAAnxK,SACAmxK,QAAAY;AhQgMA,GgQ7LA9E,OAAApwK,GAAA,SAAA,SAAA1gB,GACAsoK,gBAAAC,2BAAAniE,oBAKAgkB,IAAA1pG,GAAA,6CAAA,SAAA1gB,GACAsoK,gBAAAC,2BAAAniE,kBAGA4uF,QAAAnxK,SACAmxK,QAAAY,iBAGA5hL,cAyFA82F,cAAA,SAAA1E,aACA,UAAAsvF,WAAAtvF,aACAyvF,aAAAzvF,aAAAzpF,QAAA,IAEA2rJ,gBAAAn4J,IAAAi2F,aAAAv2F,KAAA,mBAAAsJ,IAAA,KAgBAwxF,YAAA,SAAAvE,YAAAp2D,UAEA,GAAA8lJ,iBAAA,SAAAt/F,WAAA/yF,OACA2iG,YAAAp8B,eAAAn6D,KAAA,IAAA2mF,YAAAr9E,IAAA1V,QAGAu9K,SAAA56E,YAAA05D,yBAAArwJ,KAAA,WAEA,IAAAugC,SAAAyS,MAAA9tB,SAAAqb,SAAAyS,KAAAu+H,UACA+U,QAAA3vF,YAAAp2D,SAAAyS,KAAAu+H,eAEA;AAAA,AhQwDA,IgQxDAhxI,SAAAkgB,OAAAlgB,SAAAkgB,KAAA8wH,UAQA,KAAA,IAAAxvK,OAAA,qCANA,KAAA,GAAAvK,KAAA+oC,UAAAkgB,KAAA8wH,UAAA,CACA,GAAAloI,QAAAnkB,SAAAqb,SAAAkgB,KAAApX,OAAA,GAAA9I,SAAAkgB,KAAApX,OAAA7xC,EACA6uL,iBAAAh9I,OAAA,IAAA7xC,EAAA+oC,SAAAkgB,KAAA8wH,UAAA/5K,OAoBA4jG,YAAA,SAAAzE,aAEA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,aACA5uF,WAAA4uF,YAAA9G,gBACA/E,oBAAA6L,YAAA05D,yBACAkhB,SAAAzmF,oBAAA9qF,KAAA,YACAumL,YAAAx+K,WAAAirC,MAAA,GACAwiH,YAAAztJ,WAAAy+K,YAAA,aAAA17F,oBAAA9qF,KAAA,gBAAA,YAAA8qF,oBAAA9qF,KAAA,gBACAowC,IAAAolH;AAAA/0G,AhQyBA,UgQzBAzN,QAEA,IAAAwiH,SAAA,CAEA,GAAAvjI,UAEAm5B,YAAAhrD,KAAA,SAAApQ,KAAA,SAAAwH,GAEA,GAAAmjH,KAAA18G,EAAA9C,KAEA4M,YAAA09K,iBAAA9qE,IAAAjxG,QAAA3B,WAAA09K,gBACAxzJ,OAAAz6B,GAAA,GAGA,YAAA+5K,UACAt/I,OAAAz6B,GAAA4T,SAAAuvG,IAAAjxG,MAAA68K,aACAt0J,OAAAz6B,GAAAqK,MAAAowB,OAAAz6B,IAAA,GAAAy6B,OAAAz6B,IAEA,UAAA+5K,UACAt/I,OAAAz6B,GAAA1B,WAAA6kH,IAAAjxG,OACAuoB,OAAAz6B,GAAAqK,MAAAowB,OAAAz6B,IAAA,GAAAy6B,OAAAz6B,IAEA,WAAA+5K,WACAt/I,OAAAz6B,GAAAmjH,IAAAjxG,SAKA0mC,IAAAqQ,KAAA8wH,UAAAt/I,WAEA,CAEA,GAAAj+B,OAAA,EAEA+T,YAAA09K,iBAAAgB,kBAAA9vF,eAAA5uF,WAAA09K,gBACAzxL,MAAA,GAIA,YAAAu9K,SACAv9K,MAAAoX,SAAAq7K,kBAAA9vF,aAAA4vF,aAEA,UAAAhV,SACAv9K,MAAA8B,WAAA2wL,kBAAA9vF,cAEA,WAAA46E,WACAv9K,MAAAyyL,kBAAA9vF,aAAA;AAIAvmD,AhQxBA,IgQwBA4C,KAAAu+H,UAAA1vK,MAAA7N,QAAA,gBAAAA,OAAA,GAAAA,MAGA,MAAAo8C,MAQAo1I,aAAA,SAAA7uF,aAEA,GAIA+vF,WACAC,cACAC,cACAlO,SACA3nD,UARA3lE,WAAAytG,gBAAAn4J,IAAAi2F,aACA4hF,eAAA5hF,YAAA32F,KAAA,kBACA6mL,cAAAlwF,YAAA32F,KAAA,iBACA44K,YAAAjiF,YAAA32F,KAAA,eAMAoU,SAAA,GAIAmkK,gBAAAsO,eAAAjO,eAEAxkK,SAAA,EAEAsyK,UAAAzoL,EAAA,kBAAAmtD,YACAu7H,cAAA1oL,EAAA,eAAAmtD,YACAw7H,cAAA3oL,EAAA,eAAAmtD,YAEA,KAAAwtH,cACAF,SAAAoO,cAAAlO,YAAA,SACA7nD,UAAA+1D,cAAAlO,YAAA,SACAF,SAAA1sK,EAAAnK,MAAA62K,UAAAxzJ,OAAAwzJ;AACA3nD,AhQ7DA,UgQ6DA/kH,EAAAnK,MAAAkvH,WAAA7rG,OAAA6rG,WAOA,IAAAw0D,UAKAnxK,QAAAA,QAKA+xK,eAAA,WACA,GAAAvoJ,MAAAziC,KAEA4rL,gBACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GAGA,QACA,QACA,QACA,QAEA,QACA,QACA,QACA,QACA,QACA,QACA,QAEA,QACA,QACA,QACA,SAEAC,iBACA,GACA,GACA,SAIAC,aAAA,SAAA12L,GACA,GAAAse,SAAAte,GAAAA,EAAAS,KAAAT,EAAAS,KAAA6d,QAAAte,EAAAoe,KACA,QAAA3C,EAAA/W,SAAA8xL,eAAAl4K,WACA6pK,UAAA96I,KAAAspJ,iBAAAxO,UAAA1sK,EAAA/W,SAAA+xL,gBAAAn4K,UACAkiH,WAAAnzF,KAAAupJ,iBAAAp2D,YACAxgI,EAAA+2G,OACA/2G,EAAA+2G,UAEA/2G,EAAAqd,iBACArd,EAAAmgB,6BAEA,OAEA1E,GAAA8jB,MAAA,WACA8N,KAAAwpJ;AhQpIA,GgQwIA,WAAAnB,WAAAtvF,aACAyvF,aAAAzvF,aAAA1lF,GAAA,MAAAg2K,cAEAP,UAAAz1K,GAAA,yBAAAg2K,eAQAC,cAAA,WACA,GAAAlzL,OAAAyyL,kBAAA9vF,cAAA,EACA,OAAA3qF,GAAAynB,QAAAz/B,OACA,EAEAA,MAAAxD,QAAA,QAAA,KAAAP,MAAA,KAAAkC,QAOAg1L,cAAA,WACA,GAAAnzL,OAAAyyL,kBAAA9vF,cAAA,EACA,OAAA3iG,OAAA7B,QAOAi1L,cAAA,WACAT,cAAAvyL,KAAA+G,KAAAgsL,iBACAP,cAAAxyL,KAAA+G,KAAA+rL,kBAKA,OAAA3B,UAUAkB,kBAAA,SAAA9vF,YAAA9tC,KACA,MAAA,UAAAo9H,WAAAtvF,aACA0wF,cAAA1wF,YAAA9tC,KAGAgwG,gBAAAn4J,IAAAi2F,aAAAv2F,KAAA,YAAAsJ;AhQ7LA,EgQuMAs8K,YAAA,SAAAh5I,SAAA5W,SACA,GAAAkxJ,MAAA,GAAAz6K,QAAA,IAAAupB,QAAA,IAIA4W,UAAA/7B,GAAA,uBAAA,WACA+7B,SAAAzjC,YAAA,eACA+9K,KAAAz2L,KAAAm8C,SAAAtjC,QACAsjC,SAAA1jC,SAAA,kBAYAg8K,YAAA,SAAA3uF,aACA,GAAA5uF,YAAA4uF,YAAA9G,gBACAtvD,SAAAo2D,YAAA05D,wBACA,UAAAtoJ,WAAAy+K,YAAA,aAAAjmJ,SAAAvgC,KAAA,gBAAA,YAAAugC,SAAAvgC,KAAA,iBAUAkmL,eAAA,SAAAvvF,YAAA1sF,SACA,GAAAmhD,YAAAytG,gBAAAn4J,IAAAi2F,aACA0qF,OAAA8D,SAAA30L,QAAA46D,WAAAhrD,KAAA,mBAAA,GAAA6J,YACA,OAAAo3K,SACAj2H,WAAAp6D,KAAA,SAAAqwL,OAAAr5K;AACAq5K,AhQ5OA,QgQ0OA,QAYAkG,iBAAA,SAAA5wF,aACA,GAEA0qF,QAFAj2H,WAAAytG,gBAAAn4J,IAAAi2F,aACA3uF,KAAAojD,WAAAp6D,KAAA,SAEAgX,QACAq5K,OAAA8D,SAAApqE,UAAA/yG,OAEAq5K,SACAA,OAAAx3I,UACAuhB,WAAAjuD,WAAA,YASAipL,aAAA,SAAAzvF,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,aACA3uF,KAAAojD,WAAAp6D,KAAA,SAEA,OAAAm0L,UAAApqE,UAAA/yG,OASAq/K,cAAA,SAAA1wF,YAAA9tC,KACA,GAAAw4H,QAAA+E,aAAAzvF,aACA3lG,KAAAqwL,QAAAA,OAAAp0K,WAAA,EAMA,OAJA47C,OACA73D,KAAAw2L,WAAAx2L,OAGAA,MAQAw2L,WAAA,SAAA55I,KACA,GAAA65I,UAAAzwL,SAAA9E,cAAA,MAEA,OADAu1L,UAAA/zL,UAAAk6C,IACA65I,SAAAnzK,aAQA2xK,WAAA,SAAAtvF;AACA,AhQhTA,GgQgTAhgE,QAAAggE,YAAA32F,KAAA,SACA,OAAAgM,GAAA/W,UAAA,QAAA,QAAA,gBAAA0hC,QACAA,OAEA,SASAmwJ,cAAA,SAAA1wJ,QAAAviC,MACA,GAAAqxB,SAAAkR,QAAA,MAAA,KAEA,IAEA5oB,QAFAk6K,UAAA,+BACAC,WAAA,mGAGA,OAAA,UAAA9zL,MACA2Z,OAAA4oB,QAAAjkB,MAAAw1K,YACA,OAAAn6K,QAAAA,OAAArb,OAAA,EACAiZ,SAAAoC,OAAA,GAAA,IAEA,MAEA,UAAA3Z,MACA2Z,OAAA4oB,QAAAjkB,MAAAu1K,WAEA,OAAAl6K,QAAAA,OAAArb,OAAA,EACAiZ,SAAAoC,OAAA,GAAA,IAEA,MAGA,MAIAurF,OAAA,SAAApC,aACA,GACA0qF,QADAj2H,WAAAytG,gBAAAn4J,IAAAi2F,YAGAvrC,YAAAhrD,KAAA,mBAAA8I,WAAA;AAEA,AhQ7VA,UgQ6VA+8K,WAAAtvF,eACA0qF,OAAA+E,aAAAzvF,aACA0qF,SACA,UAAAA,OAAAzhK,OACAyhK,OAAAuG,aAAA,GAEAvG,OAAAwG,UAAA,KAMA/jL,QAAA,SAAA6yF,aACA,GACA0qF,QADAj2H,WAAAytG,gBAAAn4J,IAAAi2F,YAGAvrC,YAAAhrD,KAAA,mBAAAJ,KAAA,WAAA,YAEA,UAAAimL,WAAAtvF,eACA0qF,OAAA+E,aAAAzvF,aACA0qF,SACA,UAAAA,OAAAzhK,OACAyhK,OAAAuG,aAAA,GAEAvG,OAAAwG,UAAA,KAMAC,UAAA,SAAAnxF,aACA2vF,QAAA3vF,YAAA,KAGA2vF,QAAA,SAAA3vF,YAAAviG,MACA,GAAAmxL,SAAAC,aAAA7uF,YACA,IAAA,UAAAsvF,WAAAtvF,aACA,IACAyvF,aAAAzvF,aAAAzpF,QAAA9Y,KAAA,WACAmxL,QAAAnxK,SACAmxK,QAAA6B;AhQpYA,GgQuYA,MAAA72L,GACA41C,QAAAntC,MAAA,gBAAAzI,OAGAsoK,iBAAAn4J,IAAAi2F,aAAAv2F,KAAA,YAAAsJ,IAAAtV,MACAmxL,QAAAnxK,SACAmxK,QAAA6B,iBASAv9I,QAAA,SAAA8sD,aAEA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,aACAgkB,IAAAvvD,WAAAhrD,KAAA,kBAEA,WAAA6lL,WAAAtvF,cACA4wF,iBAAA5wF,aAIAgkB,IAAAj5G,IAAA,mBACAzD,EAAAjH,UAAA0K,IAAA,mBAGAwyK,eAAAzD,mBAAA95E,aAGAkiE,gBAAA9jJ,MAAA4hF,cASA/sD,SAAA,SAAA+sD,YAAA59F,OACA,GAAAiT,EAAA6nB,SAAA96B,QACAA,MAAAwnC,SACA,IACAo2D,YAAAuE,YAAAniG,MAAAwnC,UACA,MAAAhwC,GAEA,KADAomG,aAAA0E,gBACA9qG,IAYAo5C,SAAA,SAAAgtD;AACA,AhQncA,GgQmcA59F,UACAwnC,SAAAo2D,YAAAyE,aAKA,OAHA76D,YACAxnC,MAAAwnC,SAAAA,UAEAxnC,OAGAq/K,cAAA,SAAAzhF,YAAA3lG,MACA,GAAAolC,SAAAugE,YAAA32F,KAAA,eACA04K,SAAAttK,SAAA07K,cAAA1wJ,QAAA,UACA26F,UAAA3lH,SAAA07K,cAAA1wJ,QAAA,UACAmiJ,eAAAntK,SAAAurF,YAAA32F,KAAA,iBAAA,GACA,OAAAgM,GAAA/L,MAAAjP,UACA0nL,SAAA72K,MAAA62K,UAAAxzJ,OAAAwzJ,SACA3nD,UAAAlvH,MAAAkvH,WAAA7rG,OAAA6rG,UACAhpH,WAAAlG,MAAA02K,gBAAArzJ,QAAAqzJ,eAAA,GAAAA,kBASA,QACA5qF,SAAA,0BACAn5D,SAAA20B,IACA+D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA;AACAnuF,AhQneA,QgQmeAmrK,cACA/8E,cAAAA,cACAxxD,QAAAA,QACAF,SAAAA,SACAC,SAAAA,SAEAmvD,OAAAA,OACAj1F,QAAAA,QACAgkL,UAAAA,UACAxB,QAAAA,WCpxBAvhK,OAAA,yEAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,AjQsRA,OiQtRA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,MAGA,QAFAA,OAAAlW,QAAAy8C,QAAAtjC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAujC,OAAAtjC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GAGA,QAAAwvG,UAAAzvG,OAAAh4D,MAEA,GAAAi4D,OAEA,OADAA,cAAAD,UAAAhE,aAAAgE,OAAAhoD,MAAAgoD,QAAAA,OACAC,QAAA,IAAAA,OAAAA,OACA,GAnCA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,KAAAylD,mBAAA9Q,QAAA8Q;AA4DA,AjQ0OA,MiQlQAmD,SAAA,QACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,uEACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f;AAAA4f,AjQ2PA,aiQ3PAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,gDACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAujC,QAAAh8C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,4GACA95C,SAAAsmC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAkmH,SAAAznK,MAAAA,KAAAA,OACAg1D,OAAAlW,QAAAgnD,SAAA7tC,OAAAjD,OAAAr0D,KAAAq3D,OAAA/+C,UACA+7C,OAAAgD,QAAAA,OAAA8tC,QAAA7tC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,OAAA/+C,SAAA+7C;AACAlW,AjQmPA,QiQnPAgnD,UAAA7tC,OAAArI,mBAAAjvD,KAAAq3D,OAAAC,QAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAkmH,SAAAznK,MAAAA,KAAAA,SACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,oGACAiC,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,uBCzCAh/B,OAAA,2EACA,SACA,OACA,SACA,wEACA,iDACA,uEACA,mDACA,WACA,oBACA,SAAA/Y,EAAA6qB,GAAA54B,EAAAkrD,IAAA0vG,gBAAAqb,eAAAC,YAAAn8B,SAAAq8B;AACA,AlQ4QA,YkQtQA,IAAA0T,kBAEAzT,UAAA,SAAA39E,YAAA49E,QAAAh+C,SAEA,GAAAn+B,cAAAm8E,QAAAvjL,KAAA,UACAgmG,OAAAL,YAAAqB,UAAAI,aAEA2vF,eAAA3vF,gBACA2vF,cAAA3vF,cAAA,GAEA2vF,cAAA3vF,gBAEAm+B,QACAvlI,KAAA,SAAAonG,cACAz+E,KAAA46J,QAAA56J,QACArQ,SAAA,WAEAqtF,YAAA+9E,qBACA19E,OAAAh3F,KAAA,aACA+nL,cAAA3vF,eAAApB,OAAAh3F,KAAA,aAEAu0K,QAAAv0K,KAAA,QAAA,eAGA64J,gBAAAC,2BAAAniE,cAGAs+E,YAAA,SAAAt+E,YAAA49E,SAEA,GAAAlrI,QAAAkrI,QAAAvjL,KAAA,UACAo6D,WAAAytG,gBAAAn4J,IAAAi2F,YAEAvrC,YAAAhrD,KAAA,6BAAAipC,OAAA,KAAA9/B,cAAAD,SAAA;AAEAy+K,AlQqOA,ckQrOA1+I,UAEAkrI,QACAhrK,YAAA,UACApM,WAAA,UACAX,QAEAm6F,YAAA0+E,UAEAxc,gBAAAC,2BAAAniE,cAIAqB,UAAA,SAAArB,YAAA5P,YACA,GAAA37B,YAAAytG,gBAAAn4J,IAAAi2F,YACA,OAAA14F,GAAA,iCAAA8oF,WAAA,IAAA37B,aAGA48H,OAAA,SAAArxF,YAAA5P,YACA,GAAA37B,YAAAytG,gBAAAn4J,IAAAi2F,YACA,OAAA14F,GAAA,wCAAA8oF,WAAA,IAAA37B,aAUA8B,OAAA,SAAAypC,aAuDA,QAAA4+E,gBAAAC,kBAAA/nK,QACA4mK,cAAAX,gBAAA,WACA+B,aACAz9B,SAAAiwC,aAAAxrL,MACA5I,KAAA,OACA4Z,OAAAgoK,YAAA50K,GAAA;AACA2O,AlQ2IA,ckQ3IA/B,SAGAuqI,SAAAw9B,mBAAA/4K,MACA5I,KAAA,UACA4Z,OAAAA,WAyHA,QAAAy6K,qBAAA3xD,SACAy/C,eAAAz/C,QAAA9sH,SAAA,WAAA8sH,QAAA9sH,SAAA,iBAGA2sK,kBAEAJ,cAAAz/C,QAAAjtH,SAAA,UACArL,EAAAgqL,aAAA3+K,SAAA,UAGA,QAAA6+K,wBAAA5xD,SACAy/C,cAAAz/C,QACAt4H,EAAAgqL,aAAA3+K,SAAA,UAGA,QAAA8+K,kBAAA7xD,SACA,GAAAn+B,cAAAu+E,YAEAL,qBACAl+E,aAAA49E,cAAAhlL,KAAA,UACA2lL,aAAApgD,QAAAvlI,KAAA,UAEA2lL,eAAAv+E,eAGAu+E,cACAN,aAAA9/C,SAGAk+C,WAAAuB,cAAAz/C,UAGAy/C,cAAAzsK,YAAA;AACA6hD,AlQnBA,WkQmBAhrD,KAAA,UAAAmJ,YAAA,SACAysK,cAAA,MAEAO,kBACAn+E,aAAA49E,cAAAhlL,KAAA,UACA2lL,aAAApgD,QAAAvlI,KAAA,UAEA2lL,eAAAv+E,eACAi+E,aAAAL,eACAW,eAEAN,aAAA9/C,SACAk+C,WAAA0B,WAAAQ,cAAAX,gBAEAvB,WAAA0B,WAAA/9E,cAAAm+B,UAGA6/C,mBAEA7/C,QAAAvlI,KAAA,WAAAulI,QAAA9sH,SAAA,YACAktK,aAAApgD,QAAAvlI,KAAA,UAEAglL,cAAAz/C,QACAy/C,cAAA1sK,SAAA,UAEA++K,eAAAjoL,KAAA,WAAAvO,OAAA,WACA,MAAA0kI,SAAAvlI,KAAA,YAAA2lL,eACArtK,SAAA,SAEAysK,YAAA31K,KAAA,yBAAAvO,OAAA;AACA,AlQhDA,MkQgDA0kI,SAAAvlI,KAAA,YAAA2lL,eACArtK,SAAA,SAGAitH,QAAAx9G,OAAAk9J,OA5PA,GAOAL,sBACAC,YARAzqH,WAAAytG,gBAAAn4J,IAAAi2F,aACAo/E,YAAA3qH,WAAAhrD,KAAA,gBACAioL,eAAAj9H,WAAAhrD,KAAA,uBAEA41K,cAAA,KACAP,YAAA,KAKAQ,KAAAh4K,EAAA,UAAAuM,QAAA,0BAAAgvG,MAAA3iF,GAAA,YAEA8+I,eAAAI,YAAA11K,SAAA,eACA4nL,YAAAI,eAAAhoL,SAAA,qBACAioL,kBAAAL,YAAA,UACA/R,YAAA9qH,WAAA/qD,SAAA,kBAEA81K,WAAA,SAAA9sI,QACA,MAAA0sI,aAAA31K,KAAA,gBAAAipC,OAAA,MAGAorI,WAAA,SAAAF,QAAAh+C;AACA,AlQmLA,MkQnLA+9C,WAAA39E,YAAA49E,QAAAh+C,UAGA6/C,gBAAA,WACAJ,gBACAqS,eAAAjoL,KAAA,kBAAA5J,SACAw/K,cAAAzsK,YAAA,sBACA6hD,WAAAhrD,KAAA,UAAAmJ,YAAA,SACAysK,cAAA,OAIAK,aAAA,SAAA9B,SACA,MAAAU,aAAAt+E,YAAA49E,UAGA+B,iBAAA,WACA,MAAAN,iBAAAA,cAAAvsK,SAAA,WAGA8sK,eAAA,WACA,MAAAP,gBAAAA,cAAAvsK,SAAA,UAMAtO,MAAAw/F,WAAAx/F,KAAAw/F,UAAA,sBAAAx/F,KAAAw/F,UAAA,qBAAAiD,WACAg4E,qBAAAz6K,KAAAw/F,UAAA,qBAAAiD,UAmBAg4E,uBACAC;AACA/gC,AlQmIA,SkQnIA,EACAlS,YAAA,EACAyM,UACAoV,YAAA,mBACA9J,SAAA,EACAjF,aAAAxuI,IAAA,EAAAmV,KAAA,EAAA8vF,OAAA,EAAAxoE,MAAA,KAKAq0G,SAAA29B,gBAAAlpE,UAAAzgG,EAAAqjB,UAAAwmJ,aACAxwB,QAAA,SAAA90J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,OACA8oH,SAAAjtH,SAAA,WACA4+K,oBAAA3xD,SAEAg/C,eAAAI,eAAAplL,EAAAkd,SAEA63I,OAAA,SAAA/0J,GACA8jL,cAAAN,YAAAxjL,EAAAkd,OAAAld,EAAAw8I,GAAAx8I,EAAAy8I,KAEAuY,MAAA,SAAAh1J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,OACA8oH,SAAAhtH,YAAA,WAEA8qK,cAAAL,wBAAAz9C,SACA89C,cAAAT,uBAEAt5B,aAAA,GAGAtC,SAAAswC,mBAAA77E,UAAAzgG,EAAAqjB,UAAAwmJ,aACAxwB,QAAA,SAAA90J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd;AACA8oH,AlQkGA,QkQlGAjtH,SAAA,WACA6+K,uBAAA5xD,SAEAg/C,eAAA+S,kBAAA/3L,EAAAkd,SAEA63I,OAAA,SAAA/0J,GACA8jL,cAAAN,YAAAxjL,EAAAkd,OAAAld,EAAAw8I,GAAAx8I,EAAAy8I,KAEAuY,MAAA,SAAAh1J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,OACA8oH,SAAAhtH,YAAA,WAEA8qK,cAAAL,wBAAAz9C,SAEAy/C,gBACAK,aAAAL,eACAI,mBAEA/B,cAAAT,uBAEAt5B,aAAA,GAGAtC,SAAAiwC,aAAA/3C,UACAqG,QAAA,IACA2O,YAAA,SAAA30J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,QACA86K,SAAAtqL,EAAA1N,EAAAif,cAEAimK,aAAAl/C,QACAA,QAAAjtH,SAAA,YACAi/K,SAAAj/K,SAAA,cAEAy7I,OAAA,SAAAx0J,GACA63L,iBAAAnqL,EAAA1N,EAAAkd,SAEAtS,KAAAgqJ,YAAA50J;AlQ+DA,EkQ7DA40J,YAAA,SAAA50J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,QACA86K,SAAAtqL,EAAA1N,EAAAif,cAEA+mH,SAAAhtH,YAAA,YACAg/K,SAAAh/K,YAAA,aAEAksK,YAAA,SAQAz9B,SAAA5sF,WAAA/qD,UAAA4Q,GAAA,MAAA,SAAA1gB,GACAA,EAAAge,kBACA6nK,oBAGAp+B,SAAA29B,gBAAA1kK,GAAA,MAAA,SAAA1gB,GACAA,EAAAge,kBACA25K,oBAAAjqL,EAAA1N,EAAA6d,gBACA7d,EAAAqd,mBAGAoqI,SAAAiwC,aAAAh3K,GAAA,MAAA,SAAA1gB,GACAA,EAAAge,kBACA65K,iBAAAnqL,EAAA1N,EAAA6d,gBACA7d,EAAAqd,mBAGAoqI,SAAAk+B,aAAAjlK,GAAA,MAAA,SAAA1gB,GACAA,EAAAge,kBACA8nK,aAAAL,eACAI,kBACA7lL,EAAAqd,oBA8EAytF,cAAA,SAAA1E;AACA,AlQrDA,GkQqDAvrC,YAAAytG,gBAAAn4J,IAAAi2F,YAEA14F,GAAA,2BAAAmtD,YAAA7hD,YAAA,UACAtL,EAAA,oBAAAmtD,YAAAp7D,KAAA,WACAilL,YAAAt+E,YAAA14F,EAAA9C,UAIA47K,UAAA,SAAApgF,YAAA1lE,OAEAjlB,EAAAhc,KAAAihC,MAAA,SAAAwwB,MACAA,MACA6yH,UAAA39E,YAAAqB,UAAArB,YAAAl1C,KAAA,IAAAumI,OAAArxF,YAAAl1C,KAAA,IAAArhD,KAAA,yBAiBA86F,YAAA,SAAAvE,YAAAp2D,UACA86D,cAAA1E,aACAogF,UAAApgF,YAAAw9E,YAAAnC,YAAAzxI,SAAAo2D,eAGAmgF,gBAAA,SAAAngF,aAEA,GAAAp2D,aACA6qB,WAAAytG,gBAAAn4J,IAAAi2F,YAcA,OAbA14F,GAAA,oBAAAmtD,YAAAp7D,KAAA;AACA,AlQ3FA,GkQ2FAooG,cAAAn6F,EAAA9C,MAAAnK,KAAA,UACAywD,OAEA22C,eACA32C,KAAAzmD,KAAA27F,YAAAqB,UAAAI,cAAAp4F,KAAA,eAEAyhD,KAAAzmD,KAAAiD,EAAA9C,MAAAnK,KAAA,eAEA,IAAAywD,KAAAtvD,QACAouC,SAAAvlC,KAAAymD,QAGAlhB,UAeA66D,YAAA,SAAAzE,aAEA,MAAAw9E,aAAAj3J,UAAA45J,gBAAAngF,aAAAA,cAGA9sD,QAAA,SAAA8sD,aAEA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,YAGAqhD,UAAA5sF,WAAA/qD,UAAAoxF,QACAumD,SAAA5sF,WAAAhrD,KAAA,gBAAAC,SAAA,gBAAAoxF,QACAumD,SAAA5sF,WAAAhrD,KAAA,uBAAAC,SAAA,sBAAAoxF,QACAumD,SAAA5sF,WAAAhrD,KAAA,kBAAAC,UAAAoxF,QAGArmC,WAAAhrD,KAAA,qBAAA5D;AACA4uD,AlQtIA,WkQsIAhrD,KAAA,WAAAmJ,YAAA,UACA6hD,WAAAhrD,KAAA,kBAAA5J,SACA40D,WAAAhrD,KAAA,UAAAmJ,YAAA,SAGAsvJ,gBAAA9jJ,MAAA4hF,cASA/sD,SAAA,SAAA+sD,YAAA59F,OACA,GAAAqyD,WAEAp/C,GAAA6nB,SAAA96B,SACAA,MAAAwnC,WACAo2D,YAAA0E,gBACA1E,YAAAuE,YAAAniG,MAAAwnC,WAIAv0B,EAAA3U,QAAA0B,MAAA0a,QAAA1a,MAAA0a,MAAAthB,SAAA6Z,EAAAxL,KAAAm2F,YAAAqF,gBAEA5wC,WAAAytG,gBAAAn4J,IAAAi2F,aAEA14F,EAAA,2BAAAmtD,YACAhqD,KAAA,SAAAzR,EAAAC,GACA,GAAAunL,QAAAnrK,EAAA7N,QAAApF,MAAA0a,MAAAxV,EAAAtO,GAAAqB,KAAA,eACAomL,OAAAprK,EAAA7N,QAAApF,MAAA0a,MAAAxV,EAAArO,GAAAoB,KAAA,cACA,OAAAmmL,QAAAC,OACA,EAEAA,OAAAD,OACA,GAEA;AlQ3KA,GkQ6KAv9J,SACAtjB,SAAA2H,EAAA,eAAAmtD,gBAWAzhB,SAAA,SAAAgtD,aACA,GAAAvrC,YACAryD,SACAwnC,SAAAo2D,YAAAyE,aAeA,OAbA76D,YACAxnC,MAAAwnC,SAAAA,UAIAo2D,YAAA32F,KAAA,cAAA,IACAorD,WAAAytG,gBAAAn4J,IAAAi2F,aAEA59F,MAAA0a,SACAxV,EAAA,2BAAAmtD,YAAAp7D,KAAA,WACA+I,MAAA0a,MAAAzY,KAAAiD,EAAA9C,MAAAnK,KAAA,kBAGA+H,MAOA,QACA40F,SAAA,sBACAn5D,SAAA20B,IACA+D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA,cACAxxD,QAAAA,QACAD,SAAAA,SACAD,SAAAA,YCrhBA5kB,OAAA,iFAAA,cAAA,SAAAmuB;AACA,AnQyTA,MmQzTAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,MAGA,QAFAA,OAAAlW,QAAAy8C,QAAAtjC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA;AnQiSA,ImQhSAg1D,OAAAgD,QAAAA,OAAAujC,OAAAtjC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GA3BA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IA8CA,OAlBA4oD,SAAA,QACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;AACAkF,AnQwRA,OmQxRAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,WACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAujC,QAAAh8C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;AnQgRA,CmQ/QAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,6DCvBA,SAAAu/H,MACA,GAQAC,eACAxtL,KATAsf,QAAA,QACAvW,IAAA,iBACA2xC,UAAA,SACA+yI,SAAA,IACAC,IAAA,aACAC,QAAA,SAAAj5L,EAAAC,GACA,MAAAD,GAAAC,GAIAkD,QAAAqJ,MAeA0sL,IAAA,SAAA7gL,KAAAinD,OACAjnD,KAAAzJ,OAAAyJ,KACA,IAMAlQ,GALAgxL,QAAA7tL,KACAulC,KAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,GACA6iC,UAAA+kJ,IAAA/kJ,UAAA97B,MACA/I,EAAA,EAGA8pL,WACAttL,SACA2kD,OACArjC,GAAA0rK,aAEAA,eAAAzgL,KACA/M,KAAA,CACA,KAAA,GAAAzD,GAAA,EAAAwxL,GAAAllJ,UAAA3xC,OAAA62L,GAAAxxL,EAAAA,IAAA,UAAAssC,WAAAtsC,KACAuxL,QAAA/tL,KAAA8oC,UAAAtsC,GAAAskB;ApQyPA,AoQxPAgoB,UAAAtsC,GAAAskB,OAAA,IACArgB,MAAAqoC,UAAAtsC,GAAAskB,QAAAgoB,UAAAtsC,IAIA,KADAuxL,QAAA3nL,KAAAwnL,SACAG,QAAA9pL,GAAA,GAGA,GAFAnH,EAAA2D,MAAAstL,QAAA9pL,MACAmhD,IAAAplD,KAAAlD,EAAAkJ,MAAAiuD,MAAAzuB,OACAvlC,KAEA,MADAA,MAAA6tL,QACA1oI,GAGA,KAAA5oD,EAAA,EAAAwxL,GAAAxxL,EAAAA,IAEA,GADAM,EAAAgsC,UAAAtsC,GACA,UAAAM,GACA,GAAAA,EAAAgkB,QAAAitK,QAAA9pL,GAAA,CAEA,GADAmhD,IAAAplD,KAAAlD,EAAAkJ,MAAAiuD,MAAAzuB,OACAvlC,KACA,KAEA,GAIA,IAHAgE,IACAnH,EAAA2D,MAAAstL,QAAA9pL,IACAnH,GAAAsoD,IAAAplD,KAAAlD,EAAAkJ,MAAAiuD,MAAAzuB,OACAvlC,KACA,YAEAnD,OAEA2D,OAAA3D,EAAAgkB,QAAAhkB,MAIA,IADAsoD,IAAAplD,KAAAlD,EAAAkJ,MAAAiuD,MAAAzuB,OACAvlC,KACA,KAMA,OAFAA,MAAA6tL,QACAL,cAAA1rK,GACAqjC,IAAAjuD,OAAAiuD,IAAA,KAGAyoI,KAAAI,QAAAn2L,OAaA+1L,IAAA/kJ,UAAA,SAAA97B,MACA,GAEAy9B,MACA+hD,MACA3vF,EACAL,EACAwxL,GACApxL,EACAsxL,GACAC,IATAtlG,MAAA77E,KAAA/X,MAAA0lD,WACAplD,EAAAuC,OASAs2L,IAAA74L,GACA6vD,MACA,KAAA5oD,EAAA,EAAAwxL,GAAAnlG,MAAA1xF,OAAA62L,GAAAxxL,EAAAA,IAAA;ApQmLA,AoQjLA,IADA2xL,OACAvxL,EAAA,EAAAsxL,GAAAE,GAAAj3L,OAAA+2L,GAAAtxL,EAAAA,IAIA,IAHArH,EAAA64L,GAAAxxL,GAAAuE,EACAqrF,OAAAj3F,EAAAszF,MAAArsF,IAAAjH,EAAAm4L,WACA7wL,EAAA,EACAA,KACA4tC,KAAA+hD,MAAA3vF,GACA4tC,OACA0jJ,IAAAnuL,KAAAyqC,MACA2a,IAAAA,IAAAzmD,OAAA8rC,KAAA10C,OAIAq4L,IAAAD,IAEA,MAAA/oI,MA2BAyoI,IAAA53K,GAAA,SAAAjJ,KAAAjX,GAEA,GADAiX,KAAAzJ,OAAAyJ,MACA,kBAAAjX,GACA,MAAA,aAIA,KAAA,GAFA8yF,OAAA77E,KAAA/X,MAAA0lD,WACAplD,EAAAuC,OACA0E,EAAA,EAAAwxL,GAAAnlG,MAAA1xF,OAAA62L,GAAAxxL,EAAAA,IACAjH,EAAAA,EAAA4L,EACA5L,EAAAA,EAAA+N,eAAAulF,MAAArsF,KAAAjH,EAAAszF,MAAArsF,MAAAjH,EAAAszF,MAAArsF,KAAA2E,MAGA,KADA5L,EAAAQ,EAAAR,EAAAQ,MACAyG,EAAA,EAAAwxL,GAAAz4L,EAAAQ,EAAAoB,OAAA62L,GAAAxxL,EAAAA,IAAA,GAAAjH,EAAAQ,EAAAyG,IAAAzG,EACA,MAAA43L,IAGA,OADAp4L,GAAAQ,EAAAiK,KAAAjK,GACA,SAAA+qB,SACAA,SAAAA,SACA/qB,EAAA+qB,QAAAA,UAoBA+sK,IAAA93L,EAAA,SAAAiC,OACA,GAAAq2L,UAAAx0L,MAAAlD,KAAAsP,UAAA,EACA,OAAA,YACA4nL,IAAA7nL,MAAA,MAAAhO,MAAA,MAAA2G,OAAA0vL,OAAA1vL,UAAA9E,MAAAlD,KAAAsP,UAAA;ApQgGA,GoQvFA4nL,IAAA5tL,KAAA,WACAA,KAAA,GAgBA4tL,IAAAhjK,GAAA,SAAAyjK,SACA,MAAAA,SACA,GAAAz8K,QAAA,gBAAAy8K,QAAA,iBAAAz4L,KAAA43L,eAEAA,eAWAI,IAAAU,IAAA,WACA,MAAAd,eAAAx4L,MAAA0lD,YAoBAkzI,IAAAnnL,IAAAmnL,IAAAz3K,OAAA,SAAApJ,KAAAjX,GACA,IAAAiX,KAEA,YADA6gL,IAAAI,QAAAn2L,QAAAqJ,MAGA,IACA5L,GACAi2C,IACA1tC,OACAtB,EAAAwxL,GAAApxL,EAAAsxL,GAJArlG,MAAA77E,KAAA/X,MAAA0lD,WAKAxzB,KAAArvB,OACA,KAAA0E,EAAA,EAAAwxL,GAAAnlG,MAAA1xF,OAAA62L,GAAAxxL,EAAAA,IACA,IAAAI,EAAA,EAAAA,EAAAuqB,IAAAhwB,OAAAyF,GAAAkB,OAAA3G,OAAA,EAAA,CAGA,GAFA2G,QAAAlB,EAAA,GACArH,EAAA4xB,IAAAvqB,GAAAuE,EACA0nF,MAAArsF,IAAAkxL,SACAn4L,EAAAszF,MAAArsF,KACAsB,OAAAkC,KAAAzK,EAAAszF,MAAArsF,SAGA,KAAAgvC,MAAAj2C,GAAAA,EAAAyT,KAAAwiC,MACA1tC,OAAAkC,KAAAzK,EAAAi2C,KAGArkB,KAAArpB,OAAAkI,MAAAmhB,IAAArpB,QAGA,IAAAtB,EAAA,EAAAwxL,GAAA7mK,IAAAhwB,OAAA62L,GAAAxxL,EAAAA,IAEA,IADAjH,EAAA4xB,IAAA3qB,GACAjH,EAAA4L,GAAA,CACA,GAAApL,EAAA,CACA,GAAAR,EAAAQ,EAAA;ApQIA,AoQHA,IAAA6G,EAAA,EAAAsxL,GAAA34L,EAAAQ,EAAAoB,OAAA+2L,GAAAtxL,EAAAA,IAAA,GAAArH,EAAAQ,EAAA6G,IAAA7G,EAAA,CACAR,EAAAQ,EAAA+H,OAAAlB,EAAA,EACA,QAEArH,EAAAQ,EAAAoB,cAAA5B,GAAAQ,EAEA,IAAAy1C,MAAAj2C,GAAA4L,EAAA,GAAA5L,EAAA4L,EAAA6H,KAAAwiC,MAAAj2C,EAAA4L,EAAAqqC,KAAAz1C,EAAA,CACA,GAAAy4L,OAAAj5L,EAAA4L,EAAAqqC,KAAAz1C,CACA,KAAA6G,EAAA,EAAAsxL,GAAAM,MAAAr3L,OAAA+2L,GAAAtxL,EAAAA,IAAA,GAAA4xL,MAAA5xL,IAAA7G,EAAA,CACAy4L,MAAA1wL,OAAAlB,EAAA,EACA,QAEA4xL,MAAAr3L,cAAA5B,GAAA4L,EAAAqqC,KAAAz1C,OAEA,OACAR,GAAAQ,CACA,KAAAy1C,MAAAj2C,GAAA4L,EAAA5L,EAAA4L,EAAA6H,KAAAwiC,MAAAj2C,EAAA4L,EAAAqqC,KAAAz1C,SACAR,GAAA4L,EAAAqqC,KAAAz1C,EAGAR,EAAAA,EAAA4L,IAqBA0sL,IAAAllL,KAAA,SAAAqE,KAAAjX,GACA,GAAA04L,IAAA,WAEA,MADAZ,KAAAz3K,OAAApJ,KAAAyhL,IACA14L,EAAAiQ,MAAA7F,KAAA8F,WAEA,OAAA4nL,KAAA53K,GAAAjJ,KAAAyhL,KAQAZ,IAAAtuK,QAAAA,QACAsuK,IAAAxqL,SAAA,WACA,MAAA,uBAAAkc,SAEA,mBAAA2b,SAAAA,OAAAD,QAAAC,OAAAD,QAAA4yJ,IAAA,mBAAA9jK,QAAAA,OAAA,SAAA,WAAA,MAAA8jK;ApQtDA,GoQsDAL,KAAAK,IAAAA,KACAlnL,QAAAxG,MASA,SAAAqtL,KAAAkB,SAEA,kBAAA3kK,SAAAA,OAAAC,IAEAD,OAAA,WAAA,OAAA,SAAA8jK,KACA,MAAAa,SAAAlB,KAAAK,OAKAa,QAAAlB,KAAAA,KAAAK,KAAA,kBAAAzvJ,UAAAA,QAAA,SAEAj+B,KAAA,SAAAwG,OAAAknL,KAmDA,QAAA//K,GAAAhI,OACA,GAAAgI,EAAAoF,GAAApN,MAAA,YACA,MAAA4tD,QAAA5tD,QAAA+nL,IAAA53K,GAAA,kBAAAnQ,MACA,IAAAgI,EAAAoF,GAAApN,MAAAi5I,OACA,MAAAjxI,GAAA6gL,QAAAx8J,OAAAnsB,OAAA8H,EAAAhI,MAAAhI,OAAA,EAAA,EAAAgQ,EAAAoF,GAAApN,MAAA,GAAA8oL,MAAA32L,IAAA6N,MAEA,IAAA0/B,MAAAtiC,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,EACA,IAAA6H,EAAAoF,GAAAsyB,KAAAA,KAAAruC,OAAA,GAAA,YAAA,CACA,GAAApB,GAAAyvC,KAAApuC,KACA,OAAAs8D,QAAA39D,EAAAY,KAAAmX,EAAA6gL,QAAAx8J,OAAAnsB,OAAA8H,EAAA03B,OAAAqoJ,IAAA53K,GAAA,kBAAA,WACAlgB,EAAAY,KAAAmX,EAAA6gL,QAAAx8J,OAAAnsB,OAAA8H,EAAA03B;ApQxIA,GoQ2IA,MAAA13B,GAAA6gL,QAAAx8J,OAAAnsB,OAAA8H,EAAA7H,WA2UA,QAAAiB,OAAA0/B,KACA,GAAA,kBAAAA,MAAAxjC,OAAAwjC,OAAAA,IACA,MAAAA,IAEA,IAAAm5D,KAAA,GAAAn5D,KAAAhiC,WACA,KAAA,GAAA4mC,OAAA5E,KAAAA,IAAA59B,KAAAwiC,OACAu0D,IAAAv0D,KAAAtkC,MAAA0/B,IAAA4E,MAEA,OAAAu0D,KAmZA,QAAA8uF,QAAA9vC,MAAAt0G,MACA,IAAA,GAAAjuC,GAAA,EAAAwxL,GAAAjvC,MAAA5nJ,OAAA62L,GAAAxxL,EAAAA,IAAA,GAAAuiJ,MAAAviJ,KAAAiuC,KACA,MAAAs0G,OAAA/+I,KAAA++I,MAAAjhJ,OAAAtB,EAAA,GAAA,IAGA,QAAAsyL,QAAA/4L,EAAAk+D,MAAA86H,eACA,QAAAC,QACA,GAAA9wJ,KAAAh7B,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,GACAu/B,KAAAtH,IAAAh4B,KAAA,KACAkG,MAAA4iL,KAAA5iL,MAAA4iL,KAAA5iL,UACAu/B,MAAAqjJ,KAAArjJ,MAAAqjJ,KAAArjJ,SACA,OAAAv/B,OAAApD,KAAAw8B,OACAqpJ,OAAAljJ,MAAAnG,MACAupJ,cAAAA,cAAA3iL,MAAAo5B,OAAAp5B,MAAAo5B,QAEAmG,MAAAx0C,QAAA,WAAAiV,OAAAu/B,MAAApuC;ApQ/3BA,AoQg4BAouC,MAAA3rC,KAAAwlC,MACAp5B,MAAAo5B,MAAAzvC,EAAAiQ,OAAAiuD,MAAA/1B,KACA6wJ,cAAAA,cAAA3iL,MAAAo5B,OAAAp5B,MAAAo5B,OAEA,MAAAwpJ,MAkBA,QAAAC,eACA,MAAA9uL,MAAA+uL,IA8KA,QAAAC,mBAAAC,IAAAnrL,GAEA,IAAA,GADA5O,MACAmH,EAAA,EAAA6yL,KAAAD,IAAAj4L,OAAAk4L,KAAA,GAAAprL,EAAAzH,EAAAA,GAAA,EAAA,CACA,GAAAzH,KACAgP,GAAAqrL,IAAA5yL,EAAA,GAAAwH,GAAAorL,IAAA5yL,EAAA,KACAuH,GAAAqrL,IAAA5yL,GAAAwH,GAAAorL,IAAA5yL,EAAA,KACAuH,GAAAqrL,IAAA5yL,EAAA,GAAAwH,GAAAorL,IAAA5yL,EAAA,KACAuH,GAAAqrL,IAAA5yL,EAAA,GAAAwH,GAAAorL,IAAA5yL,EAAA,IAEAyH,GACAzH,EAEA6yL,KAAA,GAAA7yL,EACAzH,EAAA,IAAAgP,GAAAqrL,IAAA,GAAAprL,GAAAorL,IAAA,IACAC,KAAA,GAAA7yL,IACAzH,EAAA,IAAAgP,GAAAqrL,IAAA,GAAAprL,GAAAorL,IAAA,IACAr6L,EAAA,IAAAgP,GAAAqrL,IAAA,GAAAprL,GAAAorL,IAAA,KALAr6L,EAAA,IAAAgP,GAAAqrL,IAAAC,KAAA,GAAArrL,GAAAorL,IAAAC,KAAA,IAQAA,KAAA,GAAA7yL,EACAzH,EAAA,GAAAA,EAAA,GACAyH,IACAzH,EAAA,IAAAgP,GAAAqrL,IAAA5yL,GAAAwH,GAAAorL,IAAA5yL,EAAA,KAGAnH,EAAA2K,MAAA,MACAjL,EAAA,GAAAgP,EAAA,EAAAhP,EAAA,GAAAgP,EAAAhP,EAAA,GAAAgP,GAAA,IACAhP,EAAA,GAAAiP,EAAA,EAAAjP,EAAA,GAAAiP,EAAAjP,EAAA,GAAAiP,GAAA,GACAjP,EAAA,GAAAgP,EAAA,EAAAhP,EAAA,GAAAgP,EAAAhP,EAAA,GAAAgP,GAAA,GACAhP,EAAA,GAAAiP,EAAA,EAAAjP,EAAA,GAAAiP,EAAAjP,EAAA,GAAAiP,GAAA,EACAjP,EAAA,GAAAgP,EACAhP,EAAA,GAAAiP;ApQnmCA,CoQumCA,MAAA3O,GAiQA,QAAAi6L,OAAA3rL,EAAAivI,GAAAC,GAAAC,GAAAy8C,IACA,GAAAC,IAAA,GAAA58C,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAy8C,GACAE,GAAA9rL,EAAA6rL,GAAA,EAAA58C,GAAA,GAAAC,GAAA,EAAAC,EACA,OAAAnvI,GAAA8rL,GAAA,EAAA78C,GAAA,EAAAC,GAEA,QAAA68C,QAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAjsL,GACA,MAAAA,IACAA,EAAA,GAEAA,EAAAA,EAAA,EAAA,EAAA,EAAAA,EAAA,EAAAA,CAMA,KAAA,GALAksL,IAAAlsL,EAAA,EACA9C,EAAA,GACAivL,UAAA,MAAA,OAAA,MAAA,OAAA,MAAA,OAAA,MAAA,OAAA,MAAA,OAAA,MAAA,OACAC,SAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,OACAC,IAAA,EACA9zL,EAAA,EAAA2E,EAAA3E,EAAAA,IAAA,CACA,GAAA2mB,IAAAgtK,GAAAC,QAAA5zL,GAAA2zL,GACAI,MAAAjB,MAAAnsK,GAAAwsK,GAAAE,GAAAE,GAAAE,IACAO,MAAAlB,MAAAnsK,GAAAysK,GAAAE,GAAAE,GAAAE,IACAO,KAAAF,MAAAA,MAAAC,MAAAA,KACAF,MAAAD,QAAA7zL,GAAAmzF,KAAAujC,KAAAu9D,MAEA,MAAAN,IAAAG,IAEA,QAAAI,WAAAf,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA3tG,IACA,KAAA,EAAAA,IAAAmtG,OAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,IAAA3tG,IAAA,CAGA,GAGAzlF,GAHA6G,EAAA,EACA8jB,KAAA9jB,EAAA,EACA8rL,GAAA9rL,EAAA8jB,KAEAlyB,EAAA;ApQv4CA,AoQy4CA,IADAuH,EAAA4yL,OAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAT,IACAlmJ,IAAAzsC,EAAAylF,IAAAhtF,GACAkyB,MAAA,EACAgoK,KAAAltG,GAAAzlF,EAAA,EAAA,IAAA2qB,KACA3qB,EAAA4yL,OAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAT,GAEA,OAAAA,KAEA,QAAAn8E,WAAAq8E,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,IACA,KACAS,KAAAhB,GAAAE,IAAAe,KAAAb,GAAAE,KACAW,KAAAjB,GAAAE,IAAAc,KAAAZ,GAAAE,KACAU,KAAAf,GAAAE,IAAAc,KAAAZ,GAAAE,KACAU,KAAAhB,GAAAE,IAAAa,KAAAX,GAAAE,KAJA,CAQA,GAAAW,KAAAlB,GAAAG,GAAAF,GAAAC,KAAAE,GAAAE,KAAAN,GAAAE,KAAAE,GAAAG,GAAAF,GAAAC,IACAa,IAAAnB,GAAAG,GAAAF,GAAAC,KAAAG,GAAAE,KAAAN,GAAAE,KAAAC,GAAAG,GAAAF,GAAAC,IACAc,aAAApB,GAAAE,KAAAG,GAAAE,KAAAN,GAAAE,KAAAC,GAAAE,GAEA,IAAAc,YAAA,CAGA,GAAAC,IAAAH,GAAAE,YACAE,GAAAH,GAAAC,YACAG,KAAAF,GAAA7vE,QAAA,GACAgwE,KAAAF,GAAA9vE,QAAA,EACA,MACA+vE,KAAAN,KAAAjB,GAAAE,IAAA1uE,QAAA,IACA+vE,KAAAP,KAAAhB,GAAAE,IAAA1uE,QAAA,IACA+vE,KAAAN,KAAAb,GAAAE,IAAA9uE,QAAA,IACA+vE,KAAAP,KAAAZ,GAAAE,IAAA9uE,QAAA,IACAgwE,KAAAP,KAAAhB,GAAAE,IAAA3uE,QAAA,IACAgwE,KAAAR,KAAAf,GAAAE,IAAA3uE,QAAA,IACAgwE,KAAAP,KAAAZ,GAAAE,IAAA/uE,QAAA,IACAgwE,KAAAR,KAAAX,GAAAE,IAAA/uE,QAAA,IAIA;ApQ/6CA,AoQ+6CAp9G,EAAAitL,GAAAhtL,EAAAitL,MAQA,QAAAG,aAAAC,KAAAC,KAAAC,WACA,GAAAC,OAAA1jL,EAAA2jL,WAAAJ,MACAK,MAAA5jL,EAAA2jL,WAAAH,KACA,KAAAxjL,EAAA6jL,gBAAAH,MAAAE,OACA,MAAAH,WAAA,IAUA,KAAA,GARAK,IAAAlC,OAAA1pL,MAAA,EAAAqrL,MACAQ,GAAAnC,OAAA1pL,MAAA,EAAAsrL,MACAQ,GAAAnB,QAAAiB,GAAA,GAAA,GACAG,GAAApB,QAAAkB,GAAA,GAAA,GACAG,SACAC,SACAniD,MACA/vC,IAAAwxF,UAAA,KACA/0L,EAAA,EAAAs1L,GAAA,EAAAt1L,EAAAA,IAAA,CACA,GAAAzH,GAAA+Y,EAAAokL,kBAAAlsL,MAAA8H,EAAAujL,KAAA1yL,OAAAnC,EAAAs1L,IACAE,OAAAhyL,MAAA+D,EAAAhP,EAAAgP,EAAAC,EAAAjP,EAAAiP,EAAAL,EAAAnH,EAAAs1L,KAEA,IAAAt1L,EAAA,EAAAu1L,GAAA,EAAAv1L,EAAAA,IACAzH,EAAA+Y,EAAAokL,kBAAAlsL,MAAA8H,EAAAwjL,KAAA3yL,OAAAnC,EAAAu1L,KACAE,MAAAjyL,MAAA+D,EAAAhP,EAAAgP,EAAAC,EAAAjP,EAAAiP,EAAAL,EAAAnH,EAAAu1L,IAEA,KAAAv1L,EAAA,EAAAs1L,GAAAt1L,EAAAA,IACA,IAAA,GAAAI,GAAA,EAAAm1L,GAAAn1L,EAAAA,IAAA,CACA,GAAAu1L,IAAAH,MAAAx1L,GACA41L,IAAAJ,MAAAx1L,EAAA,GACA61L,GAAAJ,MAAAr1L,GACA01L,IAAAL,MAAAr1L,EAAA,GACA4lB,GAAA+mB,IAAA6oJ,IAAAruL,EAAAouL,GAAApuL,GAAA,KAAA,IAAA,IACA0e,GAAA8mB,IAAA+oJ,IAAAvuL,EAAAsuL,GAAAtuL,GAAA,KAAA,IAAA,IACAmP,GAAAogG,UAAA6+E,GAAApuL,EAAAouL,GAAAnuL,EAAAouL,IAAAruL,EAAAquL,IAAApuL,EAAAquL,GAAAtuL,EAAAsuL,GAAAruL,EAAAsuL,IAAAvuL,EAAAuuL,IAAAtuL;ApQp9CA,AoQq9CA,GAAAkP,GAAA,CACA,GAAA48H,GAAA58H,GAAAnP,EAAAo9G,QAAA,KAAAjuG,GAAAlP,EAAAm9G,QAAA,GACA,QAEA2uB,IAAA58H,GAAAnP,EAAAo9G,QAAA,IAAAjuG,GAAAlP,EAAAm9G,QAAA,EACA,IAAAquE,IAAA2C,GAAAxuL,EAAA4lC,KAAAr2B,GAAAsP,IAAA2vK,GAAA3vK,MAAA4vK,IAAA5vK,IAAA2vK,GAAA3vK,OAAA4vK,IAAAzuL,EAAAwuL,GAAAxuL,GACA8rL,GAAA4C,GAAA1uL,EAAA4lC,KAAAr2B,GAAAuP,IAAA4vK,GAAA5vK,MAAA6vK,IAAA7vK,IAAA4vK,GAAA5vK,OAAA6vK,IAAA3uL,EAAA0uL,GAAA1uL,EACA6rL,KAAA,GAAA,OAAAA,IAAAC,IAAA,GAAA,OAAAA,KACA8B,UACAxxF,MAEAA,IAAA//F,MACA+D,EAAAmP,GAAAnP,EACAC,EAAAkP,GAAAlP,EACAwrL,GAAAoB,KAAApB,GAAA,GACAC,GAAAmB,KAAAnB,GAAA,OAOA,MAAA1vF,KAgCA,QAAAwyF,iBAAAC,MAAAC,MAAAlB,WACAiB,MAAA1kL,EAAA4kL,YAAAF,OACAC,MAAA3kL,EAAA4kL,YAAAD,MAGA,KAAA,GAFA9C,IAAAC,GAAAC,GAAAC,GAAA6C,IAAAC,IAAAC,IAAAC,IAAAzB,KAAAC,KACAvxF,IAAAwxF,UAAA,KACA/0L,EAAA,EAAAwxL,GAAAwE,MAAAr7L,OAAA62L,GAAAxxL,EAAAA,IAAA,CACA,GAAAu2L,IAAAP,MAAAh2L,EACA,IAAA,KAAAu2L,GAAA,GACApD,GAAAgD,IAAAI,GAAA,GACAnD,GAAAgD,IAAAG,GAAA,OACA,CACA,KAAAA,GAAA,IACA1B,MAAA1B,GAAAC,IAAAjxL,OAAAo0L,GAAAl5L,MAAA,IACA81L,GAAA0B,KAAA,GACAzB,GAAAyB,KAAA,KAEAA,MAAA1B,GAAAC,GAAAD,GAAAC,GAAA+C,IAAAC,IAAAD,IAAAC;ApQ1hDA,AoQ2hDAjD,GAAAgD,IACA/C,GAAAgD,IAEA,KAAA,GAAAh2L,GAAA,EAAAsxL,GAAAuE,MAAAt7L,OAAA+2L,GAAAtxL,EAAAA,IAAA,CACA,GAAAo2L,IAAAP,MAAA71L,EACA,IAAA,KAAAo2L,GAAA,GACAnD,GAAAgD,IAAAG,GAAA,GACAlD,GAAAgD,IAAAE,GAAA,OACA,CACA,KAAAA,GAAA,IACA1B,MAAAzB,GAAAC,IAAAnxL,OAAAq0L,GAAAn5L,MAAA,IACAg2L,GAAAyB,KAAA,GACAxB,GAAAwB,KAAA,KAEAA,MAAAzB,GAAAC,GAAAD,GAAAC,GAAA+C,IAAAC,IAAAD,IAAAC,KACAjD,GAAAgD,IACA/C,GAAAgD,IAEA,IAAAG,MAAA7B,YAAAC,KAAAC,KAAAC,UACA,IAAAA,UACAxxF,KAAAkzF,SACA,CACA,IAAA,GAAAp2L,GAAA,EAAAq2L,GAAAD,KAAA97L,OAAA+7L,GAAAr2L,EAAAA,IACAo2L,KAAAp2L,GAAAs2L,SAAA32L,EACAy2L,KAAAp2L,GAAAu2L,SAAAx2L,EACAq2L,KAAAp2L,GAAAw0L,KAAAA,KACA4B,KAAAp2L,GAAAy0L,KAAAA,IAEAvxF,KAAAA,IAAAphG,OAAAs0L,UAMA,MAAAlzF,KA82BA,QAAAszF,QAAA1+L,EAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,GACA,MAAApB,GACAwL,KAAAxL,GAAAA,EACAwL,KAAAvL,GAAAA,EACAuL,KAAAhL,GAAAA,EACAgL,KAAA9K,GAAAA,EACA8K,KAAA5K,GAAAA,EACA4K,KAAApK,GAAAA,IAEAoK,KAAAxL,EAAA,EACAwL,KAAAvL,EAAA,EACAuL,KAAAhL,EAAA,EACAgL,KAAA9K,EAAA,EACA8K,KAAA5K,EAAA,EACA4K,KAAApK,EAAA,GAgtCA,QAAAu9L,WACA,MAAAnzL,MAAA4D,EAAAgK,EAAA5N,KAAA6D,EAAA+J,EAAA5N,KAAAxE,MAAA,MAAAwE,KAAAvE;ApQzoHA,CoQgtIA,QAAA23L,mBAAA5vL,EAAA6vL,IAAAC,IAAAC,IAAAC,IAAAz0L,UAOA,QAAA00L,cAAAjwL,GACA,QAAAkwL,GAAAlwL,EAAAoZ,IAAApZ,EAAA2f,IAAA3f,EAEA,QAAAmwL,OAAA/vL,EAAAgwL,SACA,GAAApwL,GAAAqwL,YAAAjwL,EAAAgwL,QACA,SAAAE,GAAAtwL,EAAAqZ,IAAArZ,EAAApH,IAAAoH,EAEA,QAAAqwL,aAAAjwL,EAAAgwL,SACA,GAAAz9C,IAAAk5C,GAAAC,GAAAI,GAAAqE,GAAA13L,CACA,KAAAizL,GAAA1rL,EAAAvH,EAAA,EAAA,EAAAA,EAAAA,IAAA,CAEA,GADAqzL,GAAA+D,aAAAnE,IAAA1rL,EACAwlC,IAAAsmJ,IAAAkE,QACA,MAAAtE,GAGA,IADAyE,IAAA,EAAAL,GAAApE,GAAA,EAAA1yK,IAAA0yK,GAAAnsK,GACAimB,IAAA2qJ,IAAA,KACA,KAEAzE,KAAAI,GAAAqE,GAKA,GAHA59C,GAAA,EACAk5C,GAAA,EACAC,GAAA1rL,EACAuyI,GAAAm5C,GACA,MAAAn5C,GAEA,IAAAm5C,GAAAD,GACA,MAAAA,GAEA,MAAAA,GAAAl5C,IAAA,CAEA,GADAu5C,GAAA+D,aAAAnE,IACAlmJ,IAAAsmJ,GAAA9rL,GAAAgwL,QACA,MAAAtE,GAEA1rL,GAAA8rL,GACAv5C,GAAAm5C,GAEAD,GAAAC,GAEAA,IAAAD,GAAAl5C,IAAA,EAAAA,GAEA,MAAAm5C,IA/CA,GAAAnsK,IAAA,EAAAkwK,IACAz2K,GAAA,GAAA22K,IAAAF,KAAAlwK,GACAuwK,GAAA,EAAAvwK,GAAAvG,GACAxgB,GAAA,EAAAk3L,IACAz2K,GAAA,GAAA22K,IAAAF,KAAAl3L,GACA03L,GAAA,EAAA13L,GAAAygB,EA4CA,OAAA82K,OAAAnwL,EAAA,GAAA,IAAAzE,WAMA,QAAAmoB,WAAA7mB,KAAAgrE;ApQvwIA,AoQwwIA,GAAA2oH,aACAC,UAGA,IAFAj0L,KAAAqrE,GAAAA,GACArrE,KAAA02B,MAAA,EACAr2B,KAAA,CACA,IAAA,GAAAwE,QAAAxE,MAAAA,KAAAwI,KAAAhE,QACAovL,QAAAC,QAAArvL,OAAAxE,KAAAwE,MACAmvL,SAAAn0L,KAAAq0L,QAAArvL,OAEAmvL,UAAA/tL,KAAAkuL,cAEAn0L,KAAAK,KAAA4zL,QACAj0L,KAAA+L,IAAAioL,SAAAA,SAAAh9L,OAAA,GACAgJ,KAAAg0L,SAAAA,SAyCA,QAAAI,cAAA/zL,KAAAqyF,QAAAwhC,QAAAzvG,OAAA4vK,YAAA39J,OACAw9F,QAAAggE,QAAAhgE,QACA,IAAA16E,QACA86I,SACAC,YAEAl5K,KACAC,KACAouE,UACAre,GAAAhrE,KAAAgrE,GACAI,QACAC,MACAI,OACA,IAAArnD,OACA,IAAApoB,EAAA,EAAAwxL,GAAA2G,kBAAAx9L,OAAA62L,GAAAxxL,EAAAA,IAAA,CACA,GAAAjH,GAAAo/L,kBAAAn4L,EACA,IAAAjH,EAAA4pJ,GAAAh6I,IAAA0tF,QAAA1tF,IAAA5P,EAAAiL,MAAAA,KAAA,CACAjL,EAAA8+H,SAAAA,SACAsgE,kBAAA72L,OAAAtB,EAAA,GACAk4L,YAAA,GAEAD,SAAAl/L,EAEAs9F,QAAA7tF,KAAAzP,EAAAi/L;ApQp1IA,AoQq1IA,WAIA5vK,SAAAinD,EAEA,KAAA,GAAArvE,GAAA,EAAAwxL,GAAAxtL,KAAA2zL,SAAAh9L,OAAA62L,GAAAxxL,EAAAA,IAAA,CACA,GAAAgE,KAAA2zL,SAAA33L,IAAA63H,SAAA7zH,KAAA2zL,SAAA33L,GAAAooB,OAAApkB,KAAA0L,IAAA,CACAmoH,QAAA7zH,KAAA2zL,SAAA33L,GACAif,KAAAjb,KAAA2zL,SAAA33L,EAAA,IAAA,EACAgvE,GAAAA,GAAAhrE,KAAA0L,KAAAmoH,QAAA54G,MACAD,KAAAhb,KAAA2zL,SAAA33L,EAAA,GACAm9C,OAAAn5C,KAAAA,KAAA6zH,QACA,OACAzvG,QACAiuE,QAAA7tF,KAAAxE,KAAAA,KAAAA,KAAA2zL,SAAA33L,KAGA,GAAAm9C,OAAA,CAGA,GAAA86I,SA4JAA,SAAAG,WAAAhwK,OACA6vK,SAAAp0L,MAAA,GAAAgI,MAAAosL,SAAAjpH,GAAA5mD,WA7JA,CACA,IAAA,GAAA5f,QAAA20C,QAAA,GAAAA,OAAA3wC,KAAAhE,QACA6vL,mBAAA7rL,KAAAhE,OAAA6tF,QAAAiiG,MAAAC,iBAAA/rL,KAAAhE,OAIA,OAHA4mE,KAAA5mE,MAAA6tF,QAAA7tF,KAAAA,MACA,MAAA4mE,KAAA5mE,QAAA4mE,KAAA5mE,MAAAgwL,eAAAhwL,OACA6mE,GAAA7mE,MAAA20C,OAAA30C,MACA6vL,mBAAA7vL;ApQ/2IA,AoQg3IA,IAAA4pL,IACA3iH,KAAAjnE,OAAA6mE,GAAA7mE,MAAA4mE,KAAA5mE,OAAAwmE,EACA,MACA,KAAA,SACAI,KAAA5mE,MAAA8I,EAAAmnL,OAAArpH,KAAA5mE,MACA,IAAAkwL,UAAApnL,EAAAmnL,OAAAppH,GAAA7mE,MACAinE,MAAAjnE,OACAtB,GAAAwxL,SAAAxxL,EAAAkoE,KAAA5mE,MAAAtB,GAAA8nE,GACA5zE,GAAAs9L,SAAAt9L,EAAAg0E,KAAA5mE,MAAApN,GAAA4zE,GACA52E,GAAAsgM,SAAAtgM,EAAAg3E,KAAA5mE,MAAApQ,GAAA42E,GAEA,MACA,KAAA,OACA,GAAA2pH,QAAAC,WAAAxpH,KAAA5mE,MAAA6mE,GAAA7mE,OACAqwL,OAAAF,OAAA,EAGA,KAFAvpH,KAAA5mE,MAAAmwL,OAAA,GACAlpH,KAAAjnE,SACAxI,EAAA,EAAAwxL,GAAApiH,KAAA5mE,MAAA7N,OAAA62L,GAAAxxL,EAAAA,IAAA,CACAyvE,KAAAjnE,MAAAxI,IAAA,EACA,KAAA,GAAAI,GAAA,EAAAsxL,GAAAtiH,KAAA5mE,MAAAxI,GAAArF,OAAA+2L,GAAAtxL,EAAAA,IACAqvE,KAAAjnE,MAAAxI,GAAAI,IAAAy4L,OAAA74L,GAAAI,GAAAgvE,KAAA5mE,MAAAxI,GAAAI,IAAA4uE,GAGA,KACA,KAAA,YACA,GAAAx6D,GAAA6hF,QAAA7hF,EACAnL,GAAAyvL,kBAAAtkL,EAAAhM,MAAA6mE,GAAA7mE,MACA,IAAAa,GAKA,IAJA+lE,KAAA5mE,MAAAa,GAAA+lE,KACAC,GAAA7mE,MAAAa,GAAAgmE,GACAI,KAAAjnE,SACAinE,KAAAjnE,MAAA+zH,MAAA,EACAv8H,EAAA,EAAAwxL,GAAApiH,KAAA5mE,MAAA7N,OAAA62L,GAAAxxL,EAAAA,IAEA,IADAyvE,KAAAjnE,MAAAxI,IAAAovE,KAAA5mE,MAAAxI,GAAA;ApQh5IA,AoQi5IAI,EAAA,EAAAsxL,GAAAtiH,KAAA5mE,MAAAxI,GAAArF,OAAA+2L,GAAAtxL,EAAAA,IACAqvE,KAAAjnE,MAAAxI,GAAAI,IAAAivE,GAAA7mE,MAAAxI,GAAAI,GAAAgvE,KAAA5mE,MAAAxI,GAAAI,IAAA4uE,OAGA,CACA,GAAAtqE,GAAA2xF,QAAA0iG,QAAA,GAAAlC,QACAmC,KACAxkL,GAAA8lB,UAAA9lB,EAAA8lB,WACA2+J,QAAA,WACA,MAAA5iG,SAAA4iG,QAAA,IAGA7pH,MAAA5mE,OACA9D,EAAAvM,EACAuM,EAAAtM,EACAsM,EAAA/L,EACA+L,EAAA7L,EACA6L,EAAA3L,EACA2L,EAAAnL,GAEA2/L,iBAAAF,IAAA3pH,GAAA7mE,OACA6mE,GAAA7mE,MAAAwwL,IAAAxkL,EAAA8lB,UACAm1C,KAAAjnE,QACAwwL,IAAAD,OAAA5gM,EAAAuM,EAAAvM,GAAA62E,IACAgqH,IAAAD,OAAA3gM,EAAAsM,EAAAtM,GAAA42E,IACAgqH,IAAAD,OAAApgM,EAAA+L,EAAA/L,GAAAq2E,IACAgqH,IAAAD,OAAAlgM,EAAA6L,EAAA7L,GAAAm2E,IACAgqH,IAAAD,OAAAhgM,EAAA2L,EAAA3L,GAAAi2E,IACAgqH,IAAAD,OAAAx/L,EAAAmL,EAAAnL,GAAAy1E,IAaA,KACA,KAAA,MACA,GAAAv0C,QAAA0+J,IAAAh8I,OAAA30C,OAAA/P,OAAA0lD,WACAi7I,MAAAD,IAAA/pH,KAAA5mE,OAAA/P,OAAA0lD,UACA,IAAA,aAAA31C,KAIA,IAHA4mE,KAAA5mE,MAAA4wL,MACA3pH,KAAAjnE,SACAxI,EAAAo5L,MAAAz+L,OACAqF,KACAyvE,KAAAjnE,MAAAxI,IAAAy6B,OAAAz6B,GAAAovE,KAAA5mE,MAAAxI,IAAAgvE,EAGAK,IAAA7mE,MAAAiyB;ApQr8IA,AoQs8IA,KACA,SAKA,IAJAA,UAAAt4B,QAAAg7C,OAAA30C,OACA4wL,SAAAj3L,QAAAitE,KAAA5mE,OACAinE,KAAAjnE,SACAxI,EAAAq2F,QAAAiiG,MAAAC,iBAAA/vL,MAAA7N,OACAqF,KACAyvE,KAAAjnE,MAAAxI,KAAAy6B,OAAAz6B,IAAA,IAAAo5L,MAAAp5L,IAAA,IAAAgvE,GAMA,GAAAzrE,QAAA45C,OAAA55C,OACA81L,SAAA/nL,EAAAgoL,gBAAA/1L,OACA,KAAA81L,SAEA,GADAA,SAAAF,IAAA51L,QAAAoX,MAAA4+K,UACAF,UAAA,GAAAA,SAAA1+L,OAAA,CACA,GAAA6+L,OAAAH,QACAA,UAAA,SAAAlyL,GACA,MAAA4vL,mBAAA5vL,GAAAqyL,MAAA,IAAAA,MAAA,IAAAA,MAAA,IAAAA,MAAA,GAAAxqH,SAGAqqH,UAAAnsL,IA0BA,IAvBAmgF,UAAAlwC,OAAAt5C,OAAAG,KAAAH,QAAA,GAAAgI,MACA9S,GACAiL,KAAAA,KACA6zH,QAAAA,QACAxqC,UAAAA,UACAxpF,MAAAwpF,WAAArpF,KAAA4+K,KAAA,GACAx6J,OAAA,EACAgwK,WAAAhwK,QAAA,EACA3kB,MAAA,EACAurE,GAAAA,GACAzrE,OAAA81L,SACAjqH,KAAAA,KACAK,KAAAA;ApQ3+IA,AoQ4+IAJ,GAAAA,GACAszE,GAAAtsD,QACA70D,SAAA2b,OAAA3b,SACAviB,KAAAA,KACAD,KAAAA,KACAy6K,OAAAp/J,OAAAr2B,KAAAq2B,MACA09F,OAAA1hC,QAAA7tF,OACAwvL,YAAAA,aAEAG,kBAAA30L,KAAAzK,GACAqvB,SAAA6vK,WAAAC,cACAn/L,EAAA0K,MAAA,EACA1K,EAAA8K,MAAA,GAAAgI,MAAAmjE,GAAA5mD,OACA,GAAA+vK,kBAAAx9L,QACA,MAAA++L,YAGAxB,eACAn/L,EAAA8K,MAAA,GAAAgI,MAAA9S,EAAAi2E,GAAA5mD,QAEA,GAAA+vK,kBAAAx9L,QAAAg/L,iBAAAD,WAKArI,IAAA,sBAAAh7F,QAAA1tF,GAAA0tF,QAAAryF,OA2MA,QAAA41L,eAAAtB,OACA,IAAA,GAAAt4L,GAAA,EAAAA,EAAAm4L,kBAAAx9L,OAAAqF,IAAAm4L,kBAAAn4L,GAAA2iJ,GAAA21C,OAAAA,OACAH,kBAAA72L,OAAAtB,IAAA,GAhlJAsR,EAAAyR,QAAA,QACAzR,EAAA+/K,IAAAA,GACA,IAAAn6H,QAiDA2iI,WAhDA17I,UAAA,QACAt4B,UAAAi0K,OAAA,EAAAr6C,KAAA;ApQrIA,AoQqIA7hG,KAAA,EAAAm8I,QAAA,EAAAn9L,KAAA,EAAA0gB,MAAA,GACA08K,SAAA,aAEAxtL,IAAA,iBACApR,GACAqmJ,IAAAjiJ,SACAm0I,IAAAxpI,QAEA8vL,YACAC,IAAAtzL,OAAAd,UAAA0G,KAAArS,KAAAiB,EAAAu4I,IAAA,WACAj9H,GAAAtb,EAAAu4I,IAAAwmD,SAEAC,MAAA,WAiCAz2L,KAAApF,GAAAoF,KAAA40L,qBAIA/uL,MAAA,QACArH,OAAA,SACAgxI,cAAA,gBAAA/3I,GAAAu4I,KAAAv4I,EAAAu4I,IAAAsQ,eAAA7oJ,EAAAqmJ,cAAAwC,eACA97I,EAAA,GACAoJ,EAAA,IACA4nL,IAAApyL,OACAtO,MAAA,QACA6C,OAAA,0GAAA7C,OAAA8Y,GACA8oL,UACAn6E,UAAA,aACAo6E,UAAA,YACAzqF,QAAA,YAEA0qF,UAAApB,IAAArzL,UAAA5M,YACAi6F,KAAAj1F,KACAi2L,KAAAhhG,KAAAh1F,IACAi2L,KAAAjhG,KAAAl9D,IACA8W,IAAAomD,KAAApmD,IACAo6B,IAAAgsB,KAAAhsB,IACAn7C,GAAAmnE,KAAAnnE,GACAomK,GAAA,SACAtkK,OAAA,SACAy0H,MAAA,QAGAi4C,eAAA5zL,OAAAd,UAAAe,SAIA4zL,cADAnpL,EAAAopL,OAAA;ApQjNA,AoQkNA,oTACAC,OAAA10H,IAAA,EAAAzG,SAAA,EAAAo7H,YAAA,GACArB,SAAA,yDACAxrH,MAAAolB,KAAAplB,MAEA8pH,QAAAv5L,WACAu8L,MAAAjnL,SACAknL,UAAA3B,IAAArzL,UAAA1I,YACAo7L,eAAAlnL,EAAAypL,iBACAC,YAAA,OACAC,cAAA,OACA1iL,KAAA,EACA2iL,YAAA,cACAv8H,OAAA,UACA73C,GAAA,EACA/mB,GAAA,EACAo7L,KAAA,OACAC,eAAA,EACAx3B,KAAA;ApQnOA,AoQoOAy3B,cAAA,UACAC,YAAA,KACAC,aAAA,SACAC,cAAA,IACAC,SAAA,EACAr8L,OAAA,EACAyU,KAAA,wBACA6nL,iBAAA,EACAz1L,QAAA,EACA23C,KAAA,OACA12C,EAAA,EACAy0L,GAAA,EACAC,GAAA,EACAv5K,IAAA,GACAw5K,OAAA,OACAC,mBAAA,GACAC,iBAAA,OACAC,kBAAA,OACAC,oBAAA,EACAC,iBAAA,EACAC,eAAA,EACAlmL,OAAA,SACAmmL,cAAA,SACAp6E,MAAA,UACA1nF,UAAA,GACAn7B,MAAA,EACAoI,EAAA,EACAC,EAAA,GAEA6wL,mBAAA/mL,EAAA+qL,qBACA9jL,KAAA65K,GACA8I,YAAA,MACAp0K,GAAAsrK,GACAryL,GAAAqyL,GACA+I,KAAA,SACAC,eAAAhJ,GACAkJ,YAAAlJ,GACAhzL,OAAAgzL,GACAnsL,QAAAmsL,GACAx0I,KAAA,OACA12C,EAAAkrL,GACAuJ,GAAAvJ,GACAwJ,GAAAxJ,GACAyJ,OAAA,SACAK,iBAAA9J,GACA+J,eAAA/J,GACA93J,UAAA;ApQjRA,AoQkRAn7B,MAAAizL,GACA7qL,EAAA6qL,GACA5qL,EAAA4qL,IAGAkK,YAAA,0RACAC,MAAAC,GAAA,EAAAliH,GAAA,GACAmiH,IAAA,yBACAC,YAAA,udACAC,SAAA,gdACAC,WAAA,yTAEAC,QADAvrL,EAAAwrL,iBAAA;ApQ5RA,IoQiSAhF,aAAA,SAAA3/L,EAAAC,GACA,MAAAy/L,SAAA1/L,GAAA0/L,QAAAz/L,IAEA+4L,IAAA,aACAjkL,KAAA,SAAA3F,GACA,MAAAA,IAEAw1L,SAAAzrL,EAAA0rL,UAAA,SAAAz1L,EAAAC,EAAAF,EAAAjM,EAAA6L,GACA,MAAAA,KACA,IAAAK,EAAAL,EAAAM,IAAA,IAAAF,EAAA,EAAAJ,EAAA,IAAA,IAAAA,EAAAA,EAAA,EAAA,EAAA,EAAAA,EAAAA,IAAA,IAAA,EAAA7L,EAAA,EAAA6L,IAAA,IAAAA,EAAAA,EAAA,EAAA,EAAA,GAAAA,EAAAA,IAAA,IAAA,EAAAA,EAAAI,EAAA,IAAA,IAAAJ,EAAAA,EAAA,EAAA,EAAA,GAAAA,GAAAA,IAAA,IAAA,EAAA,EAAAA,EAAA7L,IAAA,IAAA6L,EAAAA,EAAA,EAAA,EAAA,EAAAA,GAAAA,IAAA,QAEA,IAAAK,EAAAC,IAAA,IAAAF,EAAA,IAAA,IAAA,EAAAjM,IAAA,KAAAiM,EAAA,IAAA,OAEA21L,YAAA,SAAA11L,EAAAC,EAAAm0L,GAAAC,IAIA,MAHA,OAAAA,KACAA,GAAAD,MAEA,IAAAp0L,EAAAC,IAAA,IAAA,GAAAo0L,KAAA,IAAAD,GAAAC,GAAA,EAAA,EAAA,EAAA,EAAA,EAAAA,KAAA,IAAAD,GAAAC,GAAA,EAAA,EAAA,EAAA,EAAA,GAAAA,KAAA,OAEAsB,QAAA5rL,EAAA6rL,UACAv/I,KAAA,SAAA+kG,IACA,MAAAA,IAAAn6I,KAAA,SAEAsxL,OAAA,SAAAn3C,IACA,GAAAxqJ,GAAAwqJ,GAAAkvC,KACA,OAAAoL,aAAA9kM,EAAA2uB,GAAA3uB,EAAA4H,GAAA5H,EAAA+O,IAEA6yL,QAAA,SAAAp3C,IACA,GAAAxqJ,GAAAwqJ,GAAAkvC;ApQ5TA,AoQ6TA,MAAAoL,aAAA9kM,EAAA2uB,GAAA3uB,EAAA4H,GAAA5H,EAAAwjM,GAAAxjM,EAAAyjM,KAEAn8C,KAAA,SAAAkD,IACA,GAAAxqJ,GAAAwqJ,GAAAkvC,KACA,OAAAkL,UAAA5kM,EAAAoP,EAAApP,EAAAqP,EAAArP,EAAAgH,MAAAhH,EAAAiH,OAAAjH,EAAA+O,IAEAoW,MAAA,SAAAqlI,IACA,GAAAxqJ,GAAAwqJ,GAAAkvC,KACA,OAAAkL,UAAA5kM,EAAAoP,EAAApP,EAAAqP,EAAArP,EAAAgH,MAAAhH,EAAAiH,SAEAxC,KAAA,SAAA+lJ,IACA,GAAAy6C,MAAAz6C,GAAA06C,UACA,OAAAN,UAAAK,KAAA71L,EAAA61L,KAAA51L,EAAA41L,KAAAj+L,MAAAi+L,KAAAh+L,SAEAgT,IAAA,SAAAuwI,IACA,GAAAy6C,MAAAz6C,GAAA06C,UACA,OAAAN,UAAAK,KAAA71L,EAAA61L,KAAA51L,EAAA41L,KAAAj+L,MAAAi+L,KAAAh+L,UAaAk+L,QAAAhsL,EAAAgsL,QAAA,SAAA1/I,KAAAm7I,QACA,IAAAA,OACA,MAAAn7I,KAEA,IAAAr2C,GAAAC,EAAAxH,EAAAI,EAAAoxL,GAAAE,GAAA6L,KAEA,KADA3/I,KAAAg7I,WAAAh7I,MACA59C,EAAA,EAAAwxL,GAAA5zI,KAAAjjD,OAAA62L,GAAAxxL,EAAAA,IAEA,IADAu9L,MAAA3/I,KAAA59C,GACAI,EAAA,EAAAsxL,GAAA6L,MAAA5iM,OAAA+2L,GAAAtxL,EAAAA,GAAA,EACAmH,EAAAwxL,OAAAxxL,EAAAg2L,MAAAn9L,GAAAm9L,MAAAn9L,EAAA,IACAoH,EAAAuxL,OAAAvxL,EAAA+1L,MAAAn9L,GAAAm9L,MAAAn9L,EAAA,IACAm9L,MAAAn9L,GAAAmH,EACAg2L,MAAAn9L,EAAA,GAAAoH,CAGA,OAAAo2C;ApQxWA,CoQmXA,IARAtsC,EAAAksL,GAAApiM,EAOAkW,EAAAjV,KAAAjB,EAAAu4I,IAAA8pD,UAAAriM,EAAAqmJ,IAAA9nF,eAAA+jI,WAAA,oDAAA,OAAA,MAAA,MACA,OAAApsL,EAAAjV,KAAA,CACA,GACAjE,GADAS,EAAAuC,EAAAqmJ,IAAA/mJ,cAAA,MAKA,IAHA7B,EAAAqD,UAAA,qBACA9D,EAAAS,EAAA0U,WACAnV,EAAAuF,MAAAggM,SAAA,qBACAvlM,GAAA,gBAAAA,GAAAwlM,IACA,MAAAtsL,GAAAjV,KAAA8L,CAEAtP,GAAA,KAcAyY,EAAAusL,MAAAvsL,EAAAwsL,IAAA,OAAAxsL,EAAAjV,MACAiV,EAAAysL,OAAA3D,MA2BA9oL,EAAAtK,GAAA6yL,WAAAO,MAAAt0L,UAAAwL,EAAAxL,UACAwL,EAAA00B,IAAA,EACA10B,EAAA0sL,KAAA,EAWA1sL,EAAAoF,GAAA,SAAA9R,EAAAvI,MAEA,MADAA,MAAAk+L,UAAApgM,KAAAkC,MACA,UAAAA,MACAs+L,MAAAnuL,MAAA5H,GAEA,SAAAvI,KACAuI,YAAA8B,OAEA,QAAArK,MAAA,OAAAuI,GACAvI,YAAAuI,IAAA,OAAAA,GACA,UAAAvI,MAAAuI,IAAAgC,OAAAhC,IACA,SAAAvI,MAAAqK,MAAA7G,SAAA6G,MAAA7G,QAAA+E,IACA41L,eAAArgM,KAAAyK,GAAAvH,MAAA,EAAA,IAAAnE,eAAAmD;ApQ9bA,EoQ0dAiV,EAAAqkI,MAAA,SAAAw9C,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,IACA,GAAA,MAAAD,GAAA,CACA,GAAAhsL,GAAA4rL,GAAAE,GACA7rL,EAAA4rL,GAAAE,EACA,OAAA/rL,IAAAC,GAGA,IAAA,IAAA2rF,KAAA2rD,OAAAt3I,GAAAD,GAAAykB,GAAA,KAAA,IAFA,EAIA,MAAA1a,GAAAqkI,MAAAw9C,GAAAC,GAAAG,GAAAC,IAAAliL,EAAAqkI,MAAA09C,GAAAC,GAAAC,GAAAC,KAYAliL,EAAA2sL,IAAA,SAAAC,KACA,MAAAA,KAAA,IAAAlyK,GAAA,KAWA1a,EAAA4sL,IAAA,SAAAD,KACA,MAAA,KAAAA,IAAAjyK,GAAA,KAaA1a,EAAA6sL,OAAA,SAAA1jK,OAAAj+B,MAAA45G,WAEA,GADAA,UAAA9kG,EAAAoF,GAAA0/F,UAAA,UAAAA,UAAA,GACA9kG,EAAAoF,GAAA+jB,OAAA8nH,QAEA,IADA,GAAAviJ,GAAAy6B,OAAA9/B,OACAqF,KAAA,GAAA+sC,IAAAtS,OAAAz6B,GAAAxD,QAAA45G,UACA,MAAA37E,QAAAz6B,OAEA,CACAy6B,QAAAA,MACA,IAAA2jK,KAAA5hM,MAAAi+B,MACA,IAAA27E,UAAAgoF,IACA,MAAA5hM,OAAA4hM,GAEA,IAAAA,IAAA3jK,OAAA27E,UACA,MAAA55G,OAAA4hM,IAAA3jK,OAGA,MAAAj+B,OASA8U,GAAA+sL,WAAA,SAAAC,UAAAC,cACA,MAAA,YACA,MAAA,uCAAAvlM,QAAAslM,UAAAC,cAAAnhM;ApQpiBA,GoQsiBA,QAAA,SAAAzE,GACA,GAAAuO,GAAA,GAAAisF,KAAApjF,SAAA,EACA1I,EAAA,KAAA1O,EAAAuO,EAAA,EAAAA,EAAA,CACA,OAAAG,GAAAR,SAAA,KAWAyK,GAAAktL,UAAA,SAAAC,QACApN,IAAA,oBAAA//K,EAAAlW,EAAAu4I,IAAA8qD,QACArjM,EAAAu4I,IAAA8qD,OACArjM,EAAAqmJ,IAAArmJ,EAAAu4I,IAAAn0I,SACA8R,EAAA6gL,QAAAuM,SACAptL,EAAA6gL,QAAAuM,QAAAtjM,EAAAu4I,KAGA,IAAAgrD,OAAA,SAAAjnE,OACA,GAAApmH,EAAAwsL,IAAA,CAEA,GACAc,KADAziM,KAAA,YAEA,KACA,GAAA0iM,OAAA,GAAAj9L,eAAA,WACAi9L,OAAAp/L,MAAA,UACAo/L,MAAAn/L,QACAk/L,IAAAC,MAAA9/L,KACA,MAAAhG,GACA6lM,IAAAE,cAAAt/L,SAAAT,KAEA,GAAAg7B,OAAA6kK,IAAA9T,iBACA6T,OAAArM,OAAA,SAAA56D,OACA,IACAknE,IAAAjhM,MAAA+5H,MAAAyhE,IAAAzhE,OAAA1+H,QAAAmD,KAAAgM,EACA,IAAA3L,OAAAu9B,MAAAglK,kBAAA,YAEA,OADAviM,QAAA,IAAAA,QAAA,GAAA,MAAAA,OAAA,SAAAA,SAAA,GACA,KAAA,SAAAA,MAAAqK,SAAA,KAAAxJ,MAAA;ApQ9kBA,CoQ+kBA,MAAAtE,GACA,MAAA,cAGA,CACA,GAAAiH,GAAA5E,EAAAqmJ,IAAA/mJ,cAAA,IACAsF,GAAAgiH,MAAA,wBACAhiH,EAAArC,MAAAC,QAAA,OACAxC,EAAAqmJ,IAAA1iJ,KAAAhE,YAAAiF,GACA2+L,MAAArM,OAAA,SAAA56D,OACA,GAAAsnE,cAGA,OAFAh/L,GAAArC,MAAA+5H,MAAAA,MACAsnE,cAAA5jM,EAAAqmJ,IAAAr7I,YAAAqJ,iBAAAzP,EAAAmI,GACA62L,cAAAA,cAAAC,iBAAA,SAAAvnE,QAGA,MAAAinE,OAAAjnE,QAEAwnE,YAAA,WACA,MAAA,QAAAv7L,KAAAtI,EAAAsI,KAAAjL,EAAAiL,KAAAvL,GAAA,KAEA+mM,YAAA,WACA,MAAA,QAAAx7L,KAAAtI,EAAAsI,KAAAjL,EAAAiL,KAAArD,GAAA,KAEA8+L,YAAA,WACA,MAAAz7L,MAAA+uL,KAEA2M,WAAA,SAAAn4L,EAAA9L,EAAAhD,GAMA,GALA,MAAAgD,GAAAkW,EAAAoF,GAAAxP,EAAA,WAAA,KAAAA,IAAA,KAAAA,IAAA,KAAAA,KACA9O,EAAA8O,EAAA9O,EACAgD,EAAA8L,EAAA9L,EACA8L,EAAAA,EAAAA,GAEA,MAAA9L,GAAAkW,EAAAoF,GAAAxP,EAAA4mB,QAAA,CACA,GAAAwxK,KAAAhuL,EAAAmnL,OAAAvxL;ApQhnBA,AoQinBAA,EAAAo4L,IAAAp4L,EACA9L,EAAAkkM,IAAAlkM,EACAhD,EAAAknM,IAAAlnM,EAQA,OANA8O,EAAA,GAAA9L,EAAA,GAAAhD,EAAA,KACA8O,GAAA,IACA9L,GAAA,IACAhD,GAAA,MAGA8O,EAAA9L,EAAAhD,IAEAmnM,WAAA,SAAAr4L,EAAA9L,EAAAhD,EAAAwM,GACAsC,GAAA,IACA9L,GAAA,IACAhD,GAAA,GACA,IAAAonM,MACAt4L,EAAAA,EACA9L,EAAAA,EACAhD,EAAAA,EACAs6L,IAAAphL,EAAAkuL,IAAAt4L,EAAA9L,EAAAhD,GACAyO,SAAAu4L,YAGA,OADA9tL,GAAAoF,GAAA9R,EAAA,YAAA46L,IAAAv5L,QAAArB,GACA46L,IAuBAluL,GAAAomH,MAAA,SAAA4nE,KACA,GAAAE,IA8BA,OA7BAluL,GAAAoF,GAAA4oL,IAAA,WAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MACAE,IAAAluL,EAAAmuL,QAAAH,KACAA,IAAAp4L,EAAAs4L,IAAAt4L,EACAo4L,IAAAlkM,EAAAokM,IAAApkM,EACAkkM,IAAAlnM,EAAAonM,IAAApnM,EACAknM,IAAA5M,IAAA8M,IAAA9M,KACAphL,EAAAoF,GAAA4oL,IAAA,WAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MACAE,IAAAluL,EAAAouL,QAAAJ,KACAA,IAAAp4L,EAAAs4L,IAAAt4L,EACAo4L,IAAAlkM,EAAAokM,IAAApkM,EACAkkM,IAAAlnM,EAAAonM,IAAApnM,EACAknM,IAAA5M,IAAA8M,IAAA9M,MAEAphL,EAAAoF,GAAA4oL,IAAA,YACAA,IAAAhuL,EAAAmnL,OAAA6G,MAEAhuL,EAAAoF,GAAA4oL,IAAA,WAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MACAE,IAAAluL,EAAAquL,QAAAL,KACAA,IAAAjkM,EAAAmkM,IAAAnkM,EACAikM,IAAA5mM,EAAA8mM,IAAA9mM,EACA4mM,IAAAh/L,EAAAk/L,IAAAl/L;ApQrrBA,AoQsrBAk/L,IAAAluL,EAAAsuL,QAAAN,KACAA,IAAAj4L,EAAAm4L,IAAApnM,IAEAknM,KAAA5M,IAAA,QACA4M,IAAAp4L,EAAAo4L,IAAAlkM,EAAAkkM,IAAAlnM,EAAAknM,IAAAjkM,EAAAikM,IAAA5mM,EAAA4mM,IAAAj4L,EAAAi4L,IAAAh/L,EAAA,KAGAg/L,IAAAz4L,SAAAu4L,YACAE,KAmBAhuL,EAAAmuL,QAAA,SAAApkM,EAAA3C,EAAA2O,EAAAzC,GACAjB,KAAA+S,GAAArb,EAAA,WAAA,KAAAA,IAAA,KAAAA,IAAA,KAAAA,KACAgM,EAAAhM,EAAAjD,EACAM,EAAA2C,EAAA3C,EACA2C,EAAAA,EAAAA,EACAuJ,EAAAvJ,EAAAuJ,GAEAvJ,GAAA,GACA,IAAAiW,GAAAjZ,EAAAsP,EAAA0M,EAAAzM,CAUA,OATAvM,GAAAA,EAAA,IAAA,GACAuM,EAAAP,EAAA3O,EACA2b,EAAAzM,GAAA,EAAAmlC,IAAA1xC,EAAA,EAAA,IACAiW,EAAAjZ,EAAAsP,EAAAN,EAAAO,EAEAvM,IAAAA,EACAiW,IAAA1J,EAAAyM,EAAA,EAAA,EAAAA,EAAAzM,GAAAvM,GACAhD,IAAAgc,EAAAzM,EAAAA,EAAAyM,EAAA,EAAA,GAAAhZ,GACAsM,IAAA,EAAA,EAAA0M,EAAAzM,EAAAA,EAAAyM,GAAAhZ,GACAkkM,WAAAjuL,EAAAjZ,EAAAsP,EAAA/C,IAmBA0M,EAAAouL,QAAA,SAAArkM,EAAA3C,EAAA4H,EAAAsE,GACAjB,KAAA+S,GAAArb,EAAA,WAAA,KAAAA,IAAA,KAAAA,IAAA,KAAAA,KACAiF,EAAAjF,EAAAiF,EACA5H,EAAA2C,EAAA3C,EACA2C,EAAAA,EAAAA,IAEAA,EAAA,GAAA3C,EAAA,GAAA4H,EAAA,KACAjF,GAAA,IACA3C,GAAA,IACA4H,GAAA,KAEAjF,GAAA,GACA,IAAAiW,GAAAjZ,EAAAsP,EAAA0M,EAAAzM,CAUA,OATAvM,GAAAA,EAAA,IAAA,GACAuM,EAAA,EAAAlP,GAAA,GAAA4H,EAAAA,EAAA,EAAAA,GACA+T,EAAAzM,GAAA,EAAAmlC,IAAA1xC,EAAA,EAAA,IACAiW,EAAAjZ,EAAAsP,EAAArH,EAAAsH,EAAA,EAEAvM,IAAAA,EACAiW,IAAA1J,EAAAyM,EAAA,EAAA,EAAAA,EAAAzM,GAAAvM,GACAhD,IAAAgc,EAAAzM,EAAAA,EAAAyM,EAAA,EAAA,GAAAhZ,GACAsM,IAAA,EAAA,EAAA0M,EAAAzM,EAAAA,EAAAyM,GAAAhZ;ApQ1wBA,AoQ2wBAkkM,WAAAjuL,EAAAjZ,EAAAsP,EAAA/C,IAkBA0M,EAAAsuL,QAAA,SAAA14L,EAAA9L,EAAAhD,GACAA,EAAAinM,WAAAn4L,EAAA9L,EAAAhD,GACA8O,EAAA9O,EAAA,GACAgD,EAAAhD,EAAA,GACAA,EAAAA,EAAA,EAEA,IAAAgB,GAAAmY,EAAA4C,EAAAvM,CAUA,OATAuM,GAAAggL,KAAAjtL,EAAA9L,EAAAhD,GACAwP,EAAAuM,EAAAigL,KAAAltL,EAAA9L,EAAAhD,GACAgB,EAAA,GAAAwO,EAAA,KACAuM,GAAAjN,GAAA9L,EAAAhD,GAAAwP,EACAuM,GAAA/Y,GAAAhD,EAAA8O,GAAAU,EAAA,GACAV,EAAA9L,GAAAwM,EAAA,EAEAxO,GAAAA,EAAA,KAAA,EAAA,GAAA,IACAmY,EAAA,GAAA3J,EAAA,EAAAA,EAAAuM,GACA9Y,EAAAjC,EAAAV,EAAA6Y,EAAAnZ,EAAA+b,EAAAtN,SAAAq4L,cAkBA5tL,EAAAquL,QAAA,SAAAz4L,EAAA9L,EAAAhD,GACAA,EAAAinM,WAAAn4L,EAAA9L,EAAAhD,GACA8O,EAAA9O,EAAA,GACAgD,EAAAhD,EAAA,GACAA,EAAAA,EAAA,EAEA,IAAAgB,GAAAmY,EAAAP,EAAAC,EAAAvM,EAAAkD,CAaA,OAZAqJ,GAAAkjL,KAAAjtL,EAAA9L,EAAAhD,GACAsM,EAAA0vL,KAAAltL,EAAA9L,EAAAhD,GACAwP,EAAAqJ,EAAAvM,EACAtL,EAAA,GAAAwO,EAAA,KACAqJ,GAAA/J,GAAA9L,EAAAhD,GAAAwP,EACAqJ,GAAA7V,GAAAhD,EAAA8O,GAAAU,EAAA,GACAV,EAAA9L,GAAAwM,EAAA,EACAxO,GAAAA,EAAA,KAAA,EAAA,GAAA,IACA4X,GAAAC,EAAAvM,GAAA,EACA6M,EAAA,GAAA3J,EAAA,EACA,GAAAoJ,EAAApJ,GAAA,EAAAoJ,GACApJ,GAAA,EAAA,EAAAoJ,IACA3V,EAAAjC,EAAAV,EAAA6Y,EAAAjR,EAAA0Q,EAAAnK,SAAAs4L,cAEA7tL,EAAAuuL,aAAA,WACA,MAAAl8L,MAAA+F,KAAA,KAAA1Q,QAAAyjM,IAAA,MAyBAnrL,GAAAwuL,SAAA,SAAAz9K,IAAA9oB,GACA,GAAA65F,KAAAh4F,EAAAqmJ,IAAA/mJ,cAAA,MACA04F,KAAAz1F,MAAA0P,QAAA;ApQ/2BA,AoQg3BA+lF,IAAAxpE,OAAA,WACArwB,EAAAY,KAAAwJ,MACAA,KAAAimB,OAAA,KACAxuB,EAAAqmJ,IAAA1iJ,KAAAY,YAAAgE,OAEAyvF,IAAAp4B,QAAA,WACA5/D,EAAAqmJ,IAAA1iJ,KAAAY,YAAAgE,OAEAvI,EAAAqmJ,IAAA1iJ,KAAAhE,YAAAq4F,KACAA,IAAA/wE,IAAAA,IAkCA/Q,GAAAmnL,OAAAnG,OAAA,SAAAyN,QACA,IAAAA,SAAAA,OAAA5G,IAAA4G,SAAAp5L,QAAA,KAAA,EACA,OAAAO,EAAA,GAAA9L,EAAA,GAAAhD,EAAA,GAAAs6L,IAAA,OAAAlxL,MAAA,EAAAqF,SAAA4rL,YAEA,IAAA,QAAAsN,OACA,OAAA74L,EAAA,GAAA9L,EAAA,GAAAhD,EAAA,GAAAs6L,IAAA,OAAA7rL,SAAA4rL,eAEA8J,KAAA/vL,KAAAuzL,OAAA7mM,cAAAuX,UAAA,EAAA,KAAA,KAAAsvL,OAAA5iM,YAAA4iM,OAAApB,MAAAoB,QACA,IACAlrE,KACAlB,MACAjB,KACAzsH,QACAkB,EACAszB,OACA+kK,IAAAO,OAAAplL,MAAA8/K,aACA,OAAA+E,MACAA,IAAA,KACA9sE,KAAAmoE,MAAA2E,IAAA,GAAA/uL,UAAA,GAAA,IACAkjH,MAAAknE,MAAA2E,IAAA,GAAA/uL,UAAA,EAAA,GAAA,IACAokH,IAAAgmE,MAAA2E,IAAA,GAAA/uL,UAAA,EAAA,GAAA;ApQ96BA,AoQg7BA+uL,IAAA,KACA9sE,KAAAmoE,OAAA1zL,EAAAq4L,IAAA,GAAAriM,OAAA,IAAAgK,EAAA,IACAwsH,MAAAknE,OAAA1zL,EAAAq4L,IAAA,GAAAriM,OAAA,IAAAgK,EAAA,IACA0tH,IAAAgmE,OAAA1zL,EAAAq4L,IAAA,GAAAriM,OAAA,IAAAgK,EAAA,KAEAq4L,IAAA,KACA/kK,OAAA+kK,IAAA,GAAA/mM,OAAA6jM,aACAznE,IAAAgjE,QAAAp9J,OAAA,IACA,KAAAA,OAAA,GAAAp9B,MAAA,MAAAw3H,KAAA,MACAlB,MAAAkkE,QAAAp9J,OAAA,IACA,KAAAA,OAAA,GAAAp9B,MAAA,MAAAs2H,OAAA,MACAjB,KAAAmlE,QAAAp9J,OAAA,IACA,KAAAA,OAAA,GAAAp9B,MAAA,MAAAq1H,MAAA,MACA,QAAA8sE,IAAA,GAAAtmM,cAAAmE,MAAA,EAAA,KAAA4I,QAAA4xL,QAAAp9J,OAAA,KACAA,OAAA,IAAA,KAAAA,OAAA,GAAAp9B,MAAA,MAAA4I,SAAA,MAEAu5L,IAAA,IACA/kK,OAAA+kK,IAAA,GAAA/mM,OAAA6jM,aACAznE,IAAAgjE,QAAAp9J,OAAA,IACA,KAAAA,OAAA,GAAAp9B,MAAA,MAAAw3H,KAAA,MACAlB,MAAAkkE,QAAAp9J,OAAA,IACA,KAAAA,OAAA,GAAAp9B,MAAA,MAAAs2H,OAAA,MACAjB,KAAAmlE,QAAAp9J,OAAA;ApQr8BA,AoQs8BA,KAAAA,OAAA,GAAAp9B,MAAA,MAAAq1H,MAAA,OACA,OAAAj4F,OAAA,GAAAp9B,MAAA,KAAA,KAAAo9B,OAAA,GAAAp9B,MAAA,OAAAw3H,KAAA,KACA,QAAA2qE,IAAA,GAAAtmM,cAAAmE,MAAA,EAAA,KAAA4I,QAAA4xL,QAAAp9J,OAAA,KACAA,OAAA,IAAA,KAAAA,OAAA,GAAAp9B,MAAA,MAAA4I,SAAA,KACAqL,EAAAmuL,QAAA5qE,IAAAlB,MAAAjB,KAAAzsH,UAEAu5L,IAAA,IACA/kK,OAAA+kK,IAAA,GAAA/mM,OAAA6jM,aACAznE,IAAAgjE,QAAAp9J,OAAA,IACA,KAAAA,OAAA,GAAAp9B,MAAA,MAAAw3H,KAAA,MACAlB,MAAAkkE,QAAAp9J,OAAA,IACA,KAAAA,OAAA,GAAAp9B,MAAA,MAAAs2H,OAAA,MACAjB,KAAAmlE,QAAAp9J,OAAA,IACA,KAAAA,OAAA,GAAAp9B,MAAA,MAAAq1H,MAAA,OACA,OAAAj4F,OAAA,GAAAp9B,MAAA,KAAA,KAAAo9B,OAAA,GAAAp9B,MAAA,OAAAw3H,KAAA,KACA,QAAA2qE,IAAA,GAAAtmM,cAAAmE,MAAA,EAAA,KAAA4I,QAAA4xL,QAAAp9J,OAAA,KACAA,OAAA,IAAA,KAAAA,OAAA,GAAAp9B,MAAA,MAAA4I,SAAA;ApQr9BA,AoQs9BAqL,EAAAouL,QAAA7qE,IAAAlB,MAAAjB,KAAAzsH,WAEAu5L,KAAAt4L,EAAA2tH,IAAAz5H,EAAAu4H,MAAAv7H,EAAAs6H,KAAA7rH,SAAA4rL,aACA+M,IAAA9M,IAAA,KAAA,SAAAhgE,KAAAiB,OAAA,EAAAkB,KAAA,IAAAhuH,SAAA,IAAAxJ,MAAA,GACAiU,EAAAoF,GAAAzQ,QAAA,YAAAu5L,IAAAv5L,QAAAA,SACAu5L,OAEAt4L,EAAA,GAAA9L,EAAA,GAAAhD,EAAA,GAAAs6L,IAAA,OAAAlxL,MAAA,EAAAqF,SAAA4rL,cACAnhL,GAYAA,EAAA0uL,IAAA1N,OAAA,SAAAj3L,EAAA3C,EAAAN,GACA,MAAAkZ,GAAAmuL,QAAApkM,EAAA3C,EAAAN,GAAAs6L,MAaAphL,EAAA2uL,IAAA3N,OAAA,SAAAj3L,EAAA3C,EAAA4H,GACA,MAAAgR,GAAAouL,QAAArkM,EAAA3C,EAAA4H,GAAAoyL,MAaAphL,EAAAkuL,IAAAlN,OAAA,SAAAprL,EAAA9L,EAAAhD,GACA,MAAA,KAAA,SAAAA,EAAAgD,GAAA,EAAA8L,GAAA,IAAAL,SAAA,IAAAxJ,MAAA,KAWAiU,EAAA4uL,SAAA,SAAA1jM,OACA,GAAAqH,OAAAF,KAAAu8L,SAAAr8L,MAAAF,KAAAu8L,SAAAr8L,QAAAxI,EAAA,EAAA3C,EAAA,EAAAN,EAAAoE,OAAA,KACAgjM,IAAA77L,KAAA87L,QAAA57L,MAAAxI,EAAAwI,MAAAnL,EAAAmL,MAAAzL,EAOA,OANAyL,OAAAxI,GAAA,KACAwI,MAAAxI,EAAA,IACAwI,MAAAxI,EAAA,EACAwI,MAAAnL,GAAA;ApQvhCA,AoQwhCAmL,MAAAnL,GAAA,IAAAiL,KAAAu8L,SAAAr8L,OAAAxI,EAAA,EAAA3C,EAAA,EAAAN,EAAAyL,MAAAzL,KAEAonM,IAAA9M,KAQAphL,EAAA4uL,SAAA3iL,MAAA,iBACA5Z,MAAAE,OAoDAyN,EAAA6uL,gBAAA,SAAAC,YACA,IAAAA,WACA,MAAA,KAEA,IAAAC,KAAArxC,MAAAoxC,WACA,IAAAC,IAAAx2J,IACA,MAAAy2J,WAAAD,IAAAx2J,IAGA,IAAA02J,cAAApoM,EAAA,EAAAQ,EAAA,EAAA0C,EAAA,EAAAiF,EAAA,EAAAoE,EAAA,EAAAwC,EAAA,EAAArC,EAAA,EAAAnM,EAAA,EAAAyO,EAAA,EAAAE,EAAA,EAAAI,EAAA,GACAjO,OA4BA,OA3BA8X,GAAAoF,GAAA0pL,WAAA79C,QAAAjxI,EAAAoF,GAAA0pL,WAAA,GAAA79C,SACA/oJ,KAAA8mM,UAAAF,aAEA5mM,KAAAmB,QACAw+L,IAAAiH,YAAApnM,QAAA0jM,YAAA,SAAAvkM,EAAAC,EAAAO,GACA,GAAAwkD,WACA3sC,KAAApY,EAAAc,aASA,IARAP,EAAAK,QAAA4jM,WAAA,SAAAzkM,EAAAC,GACAA,GAAA+kD,OAAA35C,MAAApL,KAEA,KAAAoY,MAAA2sC,OAAAxiD,OAAA,IACAnB,KAAAgK,MAAApL,GAAA+J,QAAAg7C,OAAA77C,OAAA,EAAA,KACAkP,KAAA,IACApY,EAAA,KAAAA,EAAA,IAAA,KAEA,KAAAoY,KACAhX,KAAAgK,MAAApL,GAAA+J,QAAAg7C,aACA,MAAAA,OAAAxiD,QAAA4lM,YAAA/vL,QACAhX,KAAAgK,MAAApL,GAAA+J,QAAAg7C,OAAA77C,OAAA,EAAAi/L,YAAA/vL;ApQnnCA,AoQonCA+vL,YAAA/vL,YAMAhX,KAAAqN,SAAAyK,EAAAuuL,aACAQ,IAAAx2J,IAAAy2J,UAAA9mM,MACAA,MAaA8X,EAAAkvL,qBAAAlO,OAAA,SAAAmO,SACA,IAAAA,QACA,MAAA,KAEA,IACAjnM,QAeA,OAdA8X,GAAAoF,GAAA+pL,QAAAl+C,QAAAjxI,EAAAoF,GAAA+pL,QAAA,GAAAl+C,SACA/oJ,KAAA8mM,UAAAG,UAEAjnM,KAAAmB,QACAw+L,IAAAsH,SAAAznM,QAAA2jM,SAAA,SAAAxkM,EAAAC,EAAAO,GACA,GAAAwkD,UACAo9I,WAAApgM,KAAA/B,EACAO,GAAAK,QAAA4jM,WAAA,SAAAzkM,EAAAC,GACAA,GAAA+kD,OAAA35C,MAAApL,KAEAoB,KAAAgK,MAAApL,GAAA+J,QAAAg7C,WAGA3jD,KAAAqN,SAAAyK,EAAAuuL,aACArmM,MAGA,IAAAw1J,OAAA,SAAA0xC,IACA,GAAAnoM,GAAAy2J,MAAA0xC,GAAA1xC,MAAA0xC,MAcA,OAbAnoM,GAAAmoM,IACAnoM,EAAAmoM,IAAAC,MAAA,IAEApoM,EAAAmoM,KACAC,MAAA,KAGA7+L,WAAA,WACA,IAAA,GAAAktC,OAAAz2C,GAAAA,EAAAiU,KAAAwiC,MAAAA,KAAA0xJ,KACAnoM,EAAAy2C,KAAA2xJ,SACApoM,EAAAy2C,KAAA2xJ,aAAApoM,GAAAy2C;ApQ3qCA,AoQ8qCAz2C,EAAAmoM,IA0CApvL,GAAAokL,kBAAA,SAAAsB,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,IAAAhwL,GACA,GAAA6rL,IAAA,EAAA7rL,EACA65L,IAAA75H,IAAA6rH,GAAA,GACAiO,IAAA95H,IAAA6rH,GAAA,GACAC,GAAA9rL,EAAAA,EACA+5L,GAAAjO,GAAA9rL,EACAI,EAAAy5L,IAAAhK,IAAA,EAAAiK,IAAA95L,EAAAy5L,IAAA,EAAA5N,GAAA7rL,EAAAA,EAAA25L,IAAAI,GAAAhK,IACA1vL,EAAAw5L,IAAA/J,IAAA,EAAAgK,IAAA95L,EAAA05L,IAAA,EAAA7N,GAAA7rL,EAAAA,EAAA45L,IAAAG,GAAA/J,IACAgK,GAAAnK,IAAA,EAAA7vL,GAAAy5L,IAAA5J,KAAA/D,IAAA6N,IAAA,EAAAF,IAAA5J,KACA7lF,GAAA8lF,IAAA,EAAA9vL,GAAA05L,IAAA5J,KAAAhE,IAAA8N,IAAA,EAAAF,IAAA5J,KACA5C,GAAAuM,IAAA,EAAAz5L,GAAA25L,IAAAF,KAAA3N,IAAAiE,IAAA,EAAA4J,IAAAF,KACAtM,GAAAuM,IAAA,EAAA15L,GAAA45L,IAAAF,KAAA5N,IAAAkE,IAAA,EAAA4J,IAAAF,KACAxJ,GAAArE,GAAAgE,IAAA7vL,EAAAy5L,IACAnJ,GAAAzE,GAAAiE,IAAA9vL,EAAA05L,IACA/5K,GAAAksK,GAAA8N,IAAA35L,EAAA+vL,IACAn3L,GAAAizL,GAAA+N,IAAA55L,EAAAgwL,IACAiK,MAAA,GAAA,IAAAjuG,KAAA2rD,MAAAqiD,GAAA9M,GAAAljF,GAAAmjF,IAAAtoK,EAEA,QADAm1K,GAAA9M,IAAAC,GAAAnjF,MAAAiwF,OAAA,MAEA75L,EAAAA,EACAC,EAAAA,EACA9C,GAAA6C,EAAA45L,GAAA35L,EAAA2pG,IACAxsG,GAAA4C,EAAA8sL,GAAA7sL,EAAA8sL,IACAzwL,OAAA0D,EAAA8vL,GAAA7vL,EAAAiwL,IACA7xL,KAAA2B,EAAAuf,GAAAtf,EAAAzH,IACAqhM,MAAAA,QAiCA9vL,EAAA2jL,WAAA,SAAA+B,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,KACA7lL,EAAAoF,GAAAsgL,IAAA,WACAA,KAAAA,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC;ApQnxCA,AoQqxCA,GAAAiG,MAAAiE,SAAA73L,MAAA,KAAAwtL,IACA,QACAzvL,EAAA61L,KAAAnnK,IAAA1uB,EACAC,EAAA41L,KAAAnnK,IAAAzuB,EACA6rL,GAAA+J,KAAAj/L,IAAAoJ,EACA+rL,GAAA8J,KAAAj/L,IAAAqJ,EACArI,MAAAi+L,KAAAj/L,IAAAoJ,EAAA61L,KAAAnnK,IAAA1uB,EACAnI,OAAAg+L,KAAAj/L,IAAAqJ,EAAA41L,KAAAnnK,IAAAzuB,IAgBA8J,EAAAgwL,kBAAA,SAAAlE,KAAA71L,EAAAC,GACA,MAAAD,IAAA61L,KAAA71L,GAAAA,GAAA61L,KAAA/J,IAAA7rL,GAAA41L,KAAA51L,GAAAA,GAAA41L,KAAA9J,IAcAhiL,EAAA6jL,gBAAA,SAAAH,MAAAE,OACA,GAAAl1L,GAAAsR,EAAAgwL,iBACA,OAAAthM,GAAAk1L,MAAAF,MAAAztL,EAAAytL,MAAAxtL,IACAxH,EAAAk1L,MAAAF,MAAA3B,GAAA2B,MAAAxtL,IACAxH,EAAAk1L,MAAAF,MAAAztL,EAAAytL,MAAA1B,KACAtzL,EAAAk1L,MAAAF,MAAA3B,GAAA2B,MAAA1B,KACAtzL,EAAAg1L,MAAAE,MAAA3tL,EAAA2tL,MAAA1tL,IACAxH,EAAAg1L,MAAAE,MAAA7B,GAAA6B,MAAA1tL,IACAxH,EAAAg1L,MAAAE,MAAA3tL,EAAA2tL,MAAA5B,KACAtzL,EAAAg1L,MAAAE,MAAA7B,GAAA6B,MAAA5B,MACA0B,MAAAztL,EAAA2tL,MAAA7B,IAAA2B,MAAAztL,EAAA2tL,MAAA3tL,GAAA2tL,MAAA3tL,EAAAytL,MAAA3B,IAAA6B,MAAA3tL,EAAAytL,MAAAztL,KACAytL,MAAAxtL,EAAA0tL,MAAA5B,IAAA0B,MAAAxtL,EAAA0tL,MAAA1tL,GAAA0tL,MAAA1tL,EAAAwtL,MAAA1B,IAAA4B,MAAA1tL,EAAAwtL,MAAAxtL;ApQr0CA,EoQu+CA8J,EAAAiwL,iBAAA,SAAAvL,MAAAC,OACA,MAAAF,iBAAAC,MAAAC,QAEA3kL,EAAAkwL,uBAAA,SAAAxL,MAAAC,OACA,MAAAF,iBAAAC,MAAAC,MAAA,IAoEA3kL,EAAAmwL,kBAAA,SAAA7jJ,KAAAr2C,EAAAC,GACA,GAAA41L,MAAA9rL,EAAAowL,SAAA9jJ,KACA,OAAAtsC,GAAAgwL,kBAAAlE,KAAA71L,EAAAC,IACAuuL,gBAAAn4I,OAAA,IAAAr2C,EAAAC,IAAA,IAAA41L,KAAA/J,GAAA,KAAA,GAAA,GAAA,GAEA/hL,EAAAqwL,gBAAA,SAAAC,YACA,MAAA,YACAvQ,IAAA,cAAA,KAAA,uCAAAuQ,WAAA,sBAAAA,aAwBA,IAAAC,gBAAAvwL,EAAAowL,SAAA,SAAA9jJ,MACA,GAAAyiJ,KAAArxC,MAAApxG,KACA,IAAAyiJ,IAAAjD,KACA,MAAA1yL,OAAA21L,IAAAjD,KAEA,KAAAx/I,KACA,OAAAr2C,EAAA,EAAAC,EAAA,EAAArI,MAAA,EAAAC,OAAA,EAAAi0L,GAAA,EAAAC,GAAA,EAEA11I,MAAAg7I,WAAAh7I;ApQrlDA,AoQ2lDA,IAAA,GADArlD,GAJAgP,EAAA,EACAC,EAAA,EACA6M,KACAC,KAEAtU,EAAA,EAAAwxL,GAAA5zI,KAAAjjD,OAAA62L,GAAAxxL,EAAAA,IAEA,GADAzH,EAAAqlD,KAAA59C,GACA,KAAAzH,EAAA,GACAgP,EAAAhP,EAAA,GACAiP,EAAAjP,EAAA,GACA8b,EAAA7Q,KAAA+D,GACA+M,EAAA9Q,KAAAgE,OACA,CACA,GAAAs6L,KAAAT,SAAA95L,EAAAC,EAAAjP,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GACA8b,GAAAA,EAAAlS,QAAA2/L,IAAA7rK,IAAA1uB,EAAAu6L,IAAA3jM,IAAAoJ,GACA+M,EAAAA,EAAAnS,QAAA2/L,IAAA7rK,IAAAzuB,EAAAs6L,IAAA3jM,IAAAqJ,GACAD,EAAAhP,EAAA,GACAiP,EAAAjP,EAAA,GAGA,GAAAwpM,MAAA3N,KAAA5qL,OAAA,EAAA6K,GACA2tL,KAAA5N,KAAA5qL,OAAA,EAAA8K,GACA2tL,KAAA9N,KAAA3qL,OAAA,EAAA6K,GACA6tL,KAAA/N,KAAA3qL,OAAA,EAAA8K,GACAnV,MAAA8iM,KAAAF,KACA3iM,OAAA8iM,KAAAF,KACApoM,IACA2N,EAAAw6L,KACAv6L,EAAAw6L,KACA3O,GAAA4O,KACA3O,GAAA4O,KACA/iM,MAAAA,MACAC,OAAAA,OACA0nB,GAAAi7K,KAAA5iM,MAAA,EACAY,GAAAiiM,KAAA5iM,OAAA,EAGA,OADAihM,KAAAjD,KAAA1yL,MAAA9Q,IACAA,IAEA0mM,UAAA,SAAA6B,WACA,GAAA5+F,KAAA74F,MAAAy3L,UAEA,OADA5+F,KAAA18F,SAAAyK,EAAAuuL,aACAt8F,KAEA6+F,eAAA9wL,EAAA+wL,gBAAA,SAAAF,WACA,GAAA9B,KAAArxC,MAAAmzC;ApQloDA,AoQmoDA,GAAA9B,IAAAp/F,IACA,MAAAq/F,WAAAD,IAAAp/F,IAEA3vF,GAAAoF,GAAAyrL,UAAA5/C,QAAAjxI,EAAAoF,GAAAyrL,WAAAA,UAAA,GAAA5/C,SACA4/C,UAAA7wL,EAAA6uL,gBAAAgC,WAEA,IAAA5+F,QACAh8F,EAAA,EACAC,EAAA,EACA25L,GAAA,EACAhwF,GAAA,EACAttG,MAAA,CACA,MAAAs+L,UAAA,GAAA,KACA56L,EAAA46L,UAAA,GAAA,GACA36L,EAAA26L,UAAA,GAAA,GACAhB,GAAA55L,EACA4pG,GAAA3pG,EACA3D,QACA0/F,IAAA//F,MAAA,IAAA+D,EAAAC,IAEA,KAAA,GAAAxH,GAAA6D,MAAA2tL,GAAA2Q,UAAAxnM,OAAA62L,GAAAxxL,EAAAA,IAAA,CACA,GAAAkH,GAAAq8F,IAAAvjG,MACAwqE,GAAA23H,UAAAniM,EACA,IAAAwqE,GAAA,IAAA+vH,UAAApgM,KAAAqwE,GAAA,IAEA,OADAtjE,EAAA,GAAAqzL,UAAApgM,KAAAqwE,GAAA,IACAtjE,EAAA,IACA,IAAA,IACAA,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,KAAAsjE,GAAA,GAAAjjE,GAAAo9G,QAAA,GACAz9G,EAAA,KAAAsjE,GAAA,GAAAhjE,GAAAm9G,QAAA,EACA,MACA,KAAA,IACAz9G,EAAA,KAAAsjE,GAAA,GAAAhjE,GAAAm9G,QAAA,EACA,MACA,KAAA,IACAw8E,GAAA32H,GAAA,GACA2mC,GAAA3mC,GAAA,EACA,SACA,IAAA,GAAApqE,GAAA,EAAAsxL,GAAAlnH,GAAA7vE,OAAA+2L,GAAAtxL,EAAAA,IACA8G,EAAA9G,KAAAoqE,GAAApqE,IAAAA,EAAA,EAAAmH,EAAAC,IAAAm9G,QAAA;ApQ7qDA,KoQgrDA,CACAz9G,EAAAq8F,IAAAvjG,MACA,KAAAwqE,GAAA,KACA22H,GAAA32H,GAAA,GAAAjjE,EACA4pG,GAAA3mC,GAAA,GAAAhjE,EAEA,KAAA,GAAAnH,GAAA,EAAAq2L,GAAAlsH,GAAA7vE,OAAA+7L,GAAAr2L,EAAAA,IACAkjG,IAAAvjG,GAAAK,GAAAmqE,GAAAnqE,GAGA,GAAA2vC,KAAAuzD,IAAAvjG,GAAArF,MACA,QAAA4oG,IAAAvjG,GAAA,IACA,IAAA,IACAuH,EAAA45L,GACA35L,EAAA2pG,EACA,MACA,KAAA,IACA5pG,IAAAg8F,IAAAvjG,GAAAgwC,IAAA,EACA,MACA,KAAA,IACAxoC,IAAA+7F,IAAAvjG,GAAAgwC,IAAA,EACA,MACA,SACAzoC,IAAAg8F,IAAAvjG,GAAAgwC,IAAA,GACAxoC,IAAA+7F,IAAAvjG,GAAAgwC,IAAA,IAKA,MAFAuzD,KAAA18F,SAAAyK,EAAAuuL,aACAQ,IAAAp/F,IAAAq/F,UAAA/8F,KACAA,KAEA++F,eAAAhxL,EAAAixL,gBAAA,SAAAJ,WACA,GAAA9B,KAAArxC,MAAAmzC,UACA,IAAA9B,IAAAtzJ,IACA,MAAAuzJ,WAAAD,IAAAtzJ,IAKA,IAHAz7B,EAAAoF,GAAAyrL,UAAA5/C,QAAAjxI,EAAAoF,GAAAyrL,WAAAA,UAAA,GAAA5/C,SACA4/C,UAAA7wL,EAAA6uL,gBAAAgC,aAEAA,YAAAA,UAAAxnM,OACA,QAAA,IAAA,EAAA,GAEA,IAAA4oG,QACAh8F,EAAA,EACAC,EAAA,EACA25L,GAAA,EACAhwF,GAAA,EACAttG,MAAA,CACA,MAAAs+L,UAAA,GAAA,KACA56L,GAAA46L,UAAA,GAAA;ApQhuDA,AoQiuDA36L,GAAA26L,UAAA,GAAA,GACAhB,GAAA55L,EACA4pG,GAAA3pG,EACA3D,QACA0/F,IAAA,IAAA,IAAAh8F,EAAAC,GAGA,KAAA,GAAAN,GAAAsjE,GADAg4H,IAAA,GAAAL,UAAAxnM,QAAA,KAAAwnM,UAAA,GAAA,IAAA,KAAAA,UAAA,GAAA,GAAA/kM,eAAA,KAAA+kM,UAAA,GAAA,GAAA/kM,cACA4C,EAAA6D,MAAA2tL,GAAA2Q,UAAAxnM,OAAA62L,GAAAxxL,EAAAA,IAAA,CAGA,GAFAujG,IAAA//F,KAAA0D,MACAsjE,GAAA23H,UAAAniM,GACAwqE,GAAA,IAAAswH,UAAA3gM,KAAAqwE,GAAA,IAEA,OADAtjE,EAAA,GAAA4zL,UAAA3gM,KAAAqwE,GAAA,IACAtjE,EAAA,IACA,IAAA,IACAA,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,GAAAsjE,GAAA,GACAtjE,EAAA,KAAAsjE,GAAA,GAAAjjE,GACAL,EAAA,KAAAsjE,GAAA,GAAAhjE,EACA,MACA,KAAA,IACAN,EAAA,IAAAsjE,GAAA,GAAAhjE,CACA,MACA,KAAA,IACAN,EAAA,IAAAsjE,GAAA,GAAAjjE,CACA,MACA,KAAA,IAEA,IAAA,GADAk7L,OAAAl7L,EAAAC,GAAArF,QAAAqoE,GAAAntE,MAAA,IACA+C,EAAA,EAAAsxL,GAAA+Q,KAAA9nM,OAAA+2L,GAAAtxL,EAAAA,IACAqiM,KAAAriM,IAAAqiM,KAAAriM,GAAAmH,EACAk7L,OAAAriM,IAAAqiM,KAAAriM,GAAAoH,CAEA+7F,KAAA3oG,MACA2oG,IAAAA,IAAAphG,QAAAwwL,kBAAA8P,KAAAD,KACA,MACA,KAAA;ApQrwDA,AoQswDArB,IAAA32H,GAAA,GAAAjjE,EACA4pG,IAAA3mC,GAAA,GAAAhjE,CACA,SACA,IAAApH,EAAA,EAAAsxL,GAAAlnH,GAAA7vE,OAAA+2L,GAAAtxL,EAAAA,IACA8G,EAAA9G,IAAAoqE,GAAApqE,IAAAA,EAAA,EAAAmH,EAAAC,OAGA,IAAA,KAAAgjE,GAAA,GACAi4H,MAAAl7L,EAAAC,GAAArF,QAAAqoE,GAAAntE,MAAA,IACAkmG,IAAA3oG,MACA2oG,IAAAA,IAAAphG,QAAAwwL,kBAAA8P,KAAAD,MACAt7L,GAAA,KAAA/E,QAAAqoE,GAAAntE,MAAA,SAEA,KAAA,GAAAgD,GAAA,EAAAq2L,GAAAlsH,GAAA7vE,OAAA+7L,GAAAr2L,EAAAA,IACA6G,EAAA7G,GAAAmqE,GAAAnqE,EAGA,QAAA6G,EAAA,IACA,IAAA,IACAK,EAAA45L,GACA35L,EAAA2pG,EACA,MACA,KAAA,IACA5pG,EAAAL,EAAA,EACA,MACA,KAAA,IACAM,EAAAN,EAAA,EACA,MACA,KAAA,IACAi6L,GAAAj6L,EAAAA,EAAAvM,OAAA,GACAw2G,GAAAjqG,EAAAA,EAAAvM,OAAA,EACA,SACA4M,EAAAL,EAAAA,EAAAvM,OAAA,GACA6M,EAAAN,EAAAA,EAAAvM,OAAA,IAKA,MAFA4oG,KAAA18F,SAAAyK,EAAAuuL,aACAQ,IAAAtzJ,IAAAuzJ,UAAA/8F,KACAA,KAEAm/F,IAAA,SAAAvP,GAAAC,GAAAC,GAAAC,IACA,OAAAH,GAAAC,GAAAC,GAAAC,GAAAD,GAAAC,KAEAqP,IAAA,SAAAxP,GAAAC,GAAAiE,GAAAI,GAAApE,GAAAC,IACA,GAAAsP,KAAA,EAAA,EACAC,IAAA,EAAA,CACA,QACAD,IAAAzP,GAAA0P,IAAAxL,GACAuL,IAAAxP,GAAAyP,IAAApL,GACAmL,IAAAvP,GAAAwP,IAAAxL,GACAuL,IAAAtP,GAAAuP,IAAApL,GACApE,GACAC;ApQzzDA,EoQ4zDAwP,IAAA,SAAA3P,GAAAC,GAAAuI,GAAAC,GAAAjmD,MAAAotD,eAAAC,WAAA3P,GAAAC,GAAAx6F,WAGA,GAGAw6C,IAHA2vD,KAAA,IAAAj3K,GAAA,IACAiyK,IAAAjyK,GAAA,MAAA2pH,OAAA,GACApyC,OAEAyiB,OAAAssE,OAAA,SAAA/qL,EAAAC,EAAAy2L,KACA,GAAA5pL,GAAA9M,EAAA4rF,KAAApnE,IAAAkyK,KAAAz2L,EAAA2rF,KAAAyjC,IAAAqnE,KACA3pL,EAAA/M,EAAA4rF,KAAAyjC,IAAAqnE,KAAAz2L,EAAA2rF,KAAApnE,IAAAkyK,IACA,QAAA12L,EAAA8M,EAAA7M,EAAA8M,IAEA,IAAAwkF,UAqCAoqG,GAAApqG,UAAA,GACAm5F,GAAAn5F,UAAA,GACAhyE,GAAAgyE,UAAA,GACA/4F,GAAA+4F,UAAA,OAxCA,CACAw6C,GAAAttB,OAAAmtE,GAAAC,IAAA6K,KACA9K,GAAA7/C,GAAA/rI,EACA6rL,GAAA9/C,GAAA9rI,EACA8rI,GAAAttB,OAAAqtE,GAAAC,IAAA2K,KACA5K,GAAA//C,GAAA/rI,EACA+rL,GAAAhgD,GAAA9rI,CACA,IAEAD,IAFA4rF,KAAApnE,IAAAC,GAAA,IAAA2pH,OACAxiD,KAAAyjC,IAAA5qG,GAAA,IAAA2pH,QACAw9C,GAAAE,IAAA,GACA7rL,GAAA4rL,GAAAE,IAAA,EACAj4L,EAAAkM,EAAAA,GAAAo0L,GAAAA,IAAAn0L,EAAAA,GAAAo0L,GAAAA,GACAvgM,GAAA,IACAA,EAAA83F,KAAAujC,KAAAr7H,GACAsgM,GAAAtgM,EAAAsgM,GACAC,GAAAvgM,EAAAugM,GAEA,IAAAuH,KAAAxH,GAAAA,GACAyH,IAAAxH,GAAAA,GACAv7L,GAAA0iM,gBAAAC,WAAA,GAAA,GACA7vG,KAAAujC,KAAA3pF,KAAAo2J,IAAAC,IAAAD,IAAA37L,EAAAA,EAAA47L,IAAA77L,EAAAA,IAAA47L,IAAA37L,EAAAA,EAAA47L,IAAA77L,EAAAA,KACAuf,GAAAzmB,EAAAs7L,GAAAn0L,EAAAo0L,IAAAzI,GAAAE,IAAA,EACAtzL,GAAAM,GAAAu7L,GAAAr0L,EAAAo0L,IAAAvI,GAAAE,IAAA,EACA4P,GAAA/vG,KAAAkwG,OAAAjQ,GAAArzL,IAAA67L,IAAAj3E,QAAA,IACAstE,GAAA9+F,KAAAkwG,OAAA/P,GAAAvzL,IAAA67L,IAAAj3E,QAAA;ApQ/1DA,AoQi2DAu+E,GAAAp8K,GAAAqsK,GAAAnnK,GAAAk3K,GAAAA,GACAjR,GAAAnrK,GAAAusK,GAAArnK,GAAAimK,GAAAA,GACA,EAAAiR,KAAAA,GAAA,EAAAl3K,GAAAk3K,IACA,EAAAjR,KAAAA,GAAA,EAAAjmK,GAAAimK,IACA+Q,YAAAE,GAAAjR,KACAiR,IAAA,EAAAl3K,KAEAg3K,YAAA/Q,GAAAiR,KACAjR,IAAA,EAAAjmK,IAQA,GAAA2wD,IAAAs1G,GAAAiR,EACA,IAAAn2J,IAAA4vC,IAAAsmH,KAAA,CACA,GAAAK,OAAArR,GACAsR,MAAAlQ,GACAmQ,MAAAlQ,EACArB,IAAAiR,GAAAD,MAAAD,YAAA/Q,GAAAiR,GAAA,EAAA,IACA7P,GAAAvsK,GAAA60K,GAAAxoG,KAAApnE,IAAAkmK,IACAqB,GAAAvzL,GAAA67L,GAAAzoG,KAAAyjC,IAAAq7D,IACA1uF,IAAAu/F,IAAAzP,GAAAC,GAAAqI,GAAAC,GAAAjmD,MAAA,EAAAqtD,WAAAO,MAAAC,OAAAvR,GAAAqR,MAAAx8K,GAAA/mB,KAEA48E,GAAAs1G,GAAAiR,EACA,IAAAO,IAAAtwG,KAAApnE,IAAAm3K,IACAQ,GAAAvwG,KAAAyjC,IAAAssE,IACAS,GAAAxwG,KAAApnE,IAAAkmK,IACA2R,GAAAzwG,KAAAyjC,IAAAq7D,IACA9qL,EAAAgsF,KAAA0wG,IAAAlnH,GAAA,GACAmnH,GAAA,EAAA,EAAAnI,GAAAx0L,EACA48L,GAAA,EAAA,EAAAnI,GAAAz0L,EACA68L,IAAA7Q,GAAAC,IACA6Q,IAAA9Q,GAAA2Q,GAAAJ,GAAAtQ,GAAA2Q,GAAAN,IACAS,IAAA7Q,GAAAyQ,GAAAF,GAAAtQ,GAAAyQ,GAAAJ,IACAQ,IAAA9Q,GAAAC,GAGA,IAFA2Q,GAAA,GAAA,EAAAD,GAAA,GAAAC,GAAA,GACAA,GAAA,GAAA,EAAAD,GAAA,GAAAC,GAAA,GACAnrG,UACA,OAAAmrG,GAAAC,GAAAC,IAAAhiM,QAAAohG,IAEAA,MAAA0gG,GAAAC,GAAAC,IAAAhiM,QAAAohG,KAAA75F,OAAAjR,OAAA,IAEA,KAAA,GADA2rM,WACApkM,EAAA,EAAAwxL,GAAAjuF,IAAA5oG,OAAA62L,GAAAxxL,EAAAA,IACAokM,OAAApkM,GAAAA,EAAA,EAAAgmH,OAAAziB,IAAAvjG,EAAA,GAAAujG,IAAAvjG,GAAAi+L,KAAAz2L,EAAAw+G,OAAAziB,IAAAvjG,GAAAujG,IAAAvjG,EAAA,GAAAi+L,KAAA12L;ApQ94DA,AoQg5DA,MAAA68L,SAGAC,iBAAA,SAAArN,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,IAAAhwL,GACA,GAAA6rL,IAAA,EAAA7rL,CACA,QACAI,EAAA4/D,IAAA6rH,GAAA,GAAAgE,IAAA,EAAA7vH,IAAA6rH,GAAA,GAAA7rL,EAAAy5L,IAAA,EAAA5N,GAAA7rL,EAAAA,EAAA25L,IAAA35H,IAAAhgE,EAAA,GAAA+vL,IACA1vL,EAAA2/D,IAAA6rH,GAAA,GAAAiE,IAAA,EAAA9vH,IAAA6rH,GAAA,GAAA7rL,EAAA05L,IAAA,EAAA7N,GAAA7rL,EAAAA,EAAA45L,IAAA55H,IAAAhgE,EAAA,GAAAgwL,MAGAkK,SAAA/O,OAAA,SAAA0E,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,KACA,GAOA1kC,KAPAt6J,EAAA2oM,IAAA,EAAAF,IAAA5J,KAAAE,IAAA,EAAA4J,IAAAF,KACAxoM,EAAA,GAAAwoM,IAAA5J,KAAA,GAAA8J,IAAAF,KACAjoM,EAAAq+L,IAAA4J,IACA5N,KAAA56L,EAAA+6F,KAAAujC,KAAAt+H,EAAAA,EAAA,EAAAD,EAAAQ,IAAA,EAAAR,EACA86L,KAAA76L,EAAA+6F,KAAAujC,KAAAt+H,EAAAA,EAAA,EAAAD,EAAAQ,IAAA,EAAAR,EACAqP,GAAAyvL,IAAAE,KACA5vL,GAAAyvL,IAAAE,IA+BA,OA7BAnqJ,KAAAimJ,IAAA,SAAAA,GAAA,IACAjmJ,IAAAkmJ,IAAA,SAAAA,GAAA,IACAD,GAAA,GAAA,EAAAA,KACAvgC,IAAA4xC,iBAAArN,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,IAAAnE,IACAzrL,EAAA/D,KAAAivJ,IAAAlrJ,GACAC,EAAAhE,KAAAivJ,IAAAjrJ,IAEAyrL,GAAA,GAAA,EAAAA,KACAxgC,IAAA4xC,iBAAArN,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,IAAAlE,IACA1rL,EAAA/D,KAAAivJ,IAAAlrJ;ApQ36DA,AoQ46DAC,EAAAhE,KAAAivJ,IAAAjrJ,IAEArP,EAAA4oM,IAAA,EAAAF,IAAA5J,KAAAE,IAAA,EAAA4J,IAAAF,KACAzoM,EAAA,GAAAyoM,IAAA5J,KAAA,GAAA8J,IAAAF,KACAloM,EAAAs+L,IAAA4J,IACA7N,KAAA56L,EAAA+6F,KAAAujC,KAAAt+H,EAAAA,EAAA,EAAAD,EAAAQ,IAAA,EAAAR,EACA86L,KAAA76L,EAAA+6F,KAAAujC,KAAAt+H,EAAAA,EAAA,EAAAD,EAAAQ,IAAA,EAAAR,EACA40C,IAAAimJ,IAAA,SAAAA,GAAA,IACAjmJ,IAAAkmJ,IAAA,SAAAA,GAAA,IACAD,GAAA,GAAA,EAAAA,KACAvgC,IAAA4xC,iBAAArN,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,IAAAnE,IACAzrL,EAAA/D,KAAAivJ,IAAAlrJ,GACAC,EAAAhE,KAAAivJ,IAAAjrJ,IAEAyrL,GAAA,GAAA,EAAAA,KACAxgC,IAAA4xC,iBAAArN,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,IAAAlE,IACA1rL,EAAA/D,KAAAivJ,IAAAlrJ,GACAC,EAAAhE,KAAAivJ,IAAAjrJ,KAGAyuB,KAAA1uB,EAAA6sL,KAAA5qL,OAAA,EAAAjC,GAAAC,EAAA4sL,KAAA5qL,OAAA,EAAAhC,IACArJ,KAAAoJ,EAAA4sL,KAAA3qL,OAAA,EAAAjC,GAAAC,EAAA2sL,KAAA3qL,OAAA,EAAAhC,OAGAoxL,WAAAtnL,EAAA4kL,YAAA5D,OAAA,SAAA10I,KAAAq4I,OACA,GAAAoK,MAAApK,OAAAjnC,MAAApxG,KACA,KAAAq4I,OAAAoK,IAAA7G,MACA,MAAA8G,WAAAD,IAAA7G,MAmFA,KAAA,GAjFAjhM,GAAA+pM,eAAA1kJ,MACAy4F,GAAA4/C,OAAAqM,eAAArM,OACApE;ApQ18DA,AoQ08DAtqL,EAAA,EAAAC,EAAA,EAAA+Y,GAAA,EAAAC,GAAA,EAAAnM,EAAA,EAAAC,EAAA,EAAAgwL,GAAA,KAAAC,GAAA,MACAC,QAAAj9L,EAAA,EAAAC,EAAA,EAAA+Y,GAAA,EAAAC,GAAA,EAAAnM,EAAA,EAAAC,EAAA,EAAAgwL,GAAA,KAAAC,GAAA,MACAE,aAAA,SAAA7mJ,KAAA/kD,EAAA6rM,MACA,GAAArQ,IAAAC,GAAAqQ,IAAAnzL,EAAA,EAAAH,EAAA,EACA,KAAAusC,KACA,OAAA,IAAA/kD,EAAA0O,EAAA1O,EAAA2O,EAAA3O,EAAA0O,EAAA1O,EAAA2O,EAAA3O,EAAA0O,EAAA1O,EAAA2O,EAGA,UADAo2C,KAAA,IAAA+mJ,OAAA9rM,EAAAyrM,GAAAzrM,EAAA0rM,GAAA,MACA3mJ,KAAA,IACA,IAAA,IACA/kD,EAAAwb,EAAAupC,KAAA,GACA/kD,EAAAyb,EAAAspC,KAAA,EACA,MACA,KAAA,IACAA,MAAA,KAAAz7C,QAAA2gM,IAAAt5L,OAAA,GAAA3Q,EAAA0O,EAAA1O,EAAA2O,GAAArF,QAAAy7C,KAAAvgD,MAAA,KACA,MACA,KAAA,IACA,KAAAqnM,MAAA,KAAAA,MACArQ,GAAA,EAAAx7L,EAAA0O,EAAA1O,EAAA0nB,GACA+zK,GAAA,EAAAz7L,EAAA2O,EAAA3O,EAAA2nB,KAGA6zK,GAAAx7L,EAAA0O,EACA+sL,GAAAz7L,EAAA2O,GAEAo2C,MAAA,IAAAy2I,GAAAC,IAAAnyL,QAAAy7C,KAAAvgD,MAAA,GACA,MACA,KAAA,IACA,KAAAqnM,MAAA,KAAAA,MACA7rM,EAAAyrM,GAAA,EAAAzrM,EAAA0O,EAAA1O,EAAAyrM,GACAzrM,EAAA0rM,GAAA,EAAA1rM,EAAA2O,EAAA3O,EAAA0rM,KAGA1rM,EAAAyrM,GAAAzrM,EAAA0O,EACA1O,EAAA0rM,GAAA1rM,EAAA2O,GAEAo2C,MAAA,KAAAz7C,QAAAwgM,IAAA9pM,EAAA0O,EAAA1O,EAAA2O,EAAA3O,EAAAyrM,GAAAzrM,EAAA0rM,GAAA3mJ,KAAA,GAAAA,KAAA,IACA,MACA,KAAA,IACA/kD,EAAAyrM,GAAA1mJ,KAAA,GACA/kD,EAAA0rM,GAAA3mJ,KAAA;ApQj/DA,AoQk/DAA,MAAA,KAAAz7C,QAAAwgM,IAAA9pM,EAAA0O,EAAA1O,EAAA2O,EAAAo2C,KAAA,GAAAA,KAAA,GAAAA,KAAA,GAAAA,KAAA,IACA,MACA,KAAA,IACAA,MAAA,KAAAz7C,QAAAugM,IAAA7pM,EAAA0O,EAAA1O,EAAA2O,EAAAo2C,KAAA,GAAAA,KAAA,IACA,MACA,KAAA,IACAA,MAAA,KAAAz7C,QAAAugM,IAAA7pM,EAAA0O,EAAA1O,EAAA2O,EAAAo2C,KAAA,GAAA/kD,EAAA2O,GACA,MACA,KAAA,IACAo2C,MAAA,KAAAz7C,QAAAugM,IAAA7pM,EAAA0O,EAAA1O,EAAA2O,EAAA3O,EAAA0O,EAAAq2C,KAAA,IACA,MACA,KAAA,IACAA,MAAA,KAAAz7C,QAAAugM,IAAA7pM,EAAA0O,EAAA1O,EAAA2O,EAAA3O,EAAAwb,EAAAxb,EAAAyb,IAGA,MAAAspC,QAEAgnJ,OAAA,SAAAC,GAAA7kM,GACA,GAAA6kM,GAAA7kM,GAAArF,OAAA,EAAA,CACAkqM,GAAA7kM,GAAAe,OAEA,KADA,GAAAw1L,IAAAsO,GAAA7kM,GACAu2L,GAAA57L,QACAkqM,GAAAvjM,OAAAtB,IAAA,GAAA,KAAAmC,QAAAo0L,GAAAj1L,OAAA,EAAA,IAEAujM,IAAAvjM,OAAAtB,EAAA,GACAwxL,GAAA2C,KAAA57L,EAAAoC,OAAA07I,IAAAA,GAAA17I,QAAA,KAGAmqM,KAAA,SAAA9O,MAAAC,MAAA8O,GAAAC,GAAAhlM,GACAg2L,OAAAC,OAAA,KAAAD,MAAAh2L,GAAA,IAAA,KAAAi2L,MAAAj2L,GAAA,KACAi2L,MAAA30L,OAAAtB,EAAA,GAAA,IAAAglM,GAAAz9L,EAAAy9L,GAAAx9L,IACAu9L,GAAAxkL,GAAA,EACAwkL,GAAAvkL,GAAA,EACAukL,GAAAx9L,EAAAyuL,MAAAh2L,GAAA,GACA+kM,GAAAv9L,EAAAwuL,MAAAh2L,GAAA;ApQnhEA,AoQohEAwxL,GAAA2C,KAAA57L,EAAAoC,OAAA07I,IAAAA,GAAA17I,QAAA,KAGAqF,EAAA,EAAAwxL,GAAA2C,KAAA57L,EAAAoC,OAAA07I,IAAAA,GAAA17I,QAAA,GAAA62L,GAAAxxL,EAAAA,IAAA,CACAzH,EAAAyH,GAAAykM,YAAAlsM,EAAAyH,GAAA6xL,OACA+S,OAAArsM,EAAAyH,GACAq2I,KAAAA,GAAAr2I,GAAAykM,YAAApuD,GAAAr2I,GAAAwkM,SACAnuD,IAAAuuD,OAAAvuD,GAAAr2I,GACA8kM,KAAAvsM,EAAA89I,GAAAw7C,MAAA2S,OAAAxkM,GACA8kM,KAAAzuD,GAAA99I,EAAAisM,OAAA3S,MAAA7xL,EACA,IAAAilM,KAAA1sM,EAAAyH,GACAklM,KAAA7uD,IAAAA,GAAAr2I,GACAmlM,OAAAF,IAAAtqM,OACAyqM,QAAA/uD,IAAA6uD,KAAAvqM,MACAk3L,OAAAtqL,EAAA09L,IAAAE,OAAA,GACAtT,MAAArqL,EAAAy9L,IAAAE,OAAA,GACAtT,MAAAtxK,GAAAs3K,QAAAoN,IAAAE,OAAA,KAAAtT,MAAAtqL,EACAsqL,MAAArxK,GAAAq3K,QAAAoN,IAAAE,OAAA,KAAAtT,MAAArqL,EACAg9L,OAAAjkL,GAAA81H,KAAAwhD,QAAAqN,KAAAE,QAAA,KAAAZ,OAAAj9L,GACAi9L,OAAAhkL,GAAA61H,KAAAwhD,QAAAqN,KAAAE,QAAA,KAAAZ,OAAAh9L,GACAg9L,OAAAj9L,EAAA8uI,IAAA6uD,KAAAE,QAAA,GACAZ,OAAAh9L,EAAA6uI,IAAA6uD,KAAAE,QAAA,GAKA,MAHA/uD,MACAgqD,IAAA7G,MAAA8G,UAAA/nM,IAEA89I,IAAA99I,EAAA89I,IAAA99I,GACA,KAAA+nM,WAsCA+E,MArCA/zL,EAAAg0L,WAAAhT,OAAA,SAAAmJ;ApQ/iEA,AoQijEA,IAAA,GADAgH,SACAziM,EAAA,EAAAwxL,GAAAiK,SAAA9gM,OAAA62L,GAAAxxL,EAAAA,IAAA,CACA,GAAAyyJ,QACA8yC,IAAA9J,SAAAz7L,GAAA2a,MAAA,sBAEA,IADA83I,IAAA/6B,MAAApmH,EAAAmnL,OAAA8M,IAAA,IACA9yC,IAAA/6B,MAAAl2H,MACA,MAAA,KAEAixJ,KAAA/6B,MAAA+6B,IAAA/6B,MAAAg7D,IACA6S,IAAA,KAAA9yC,IAAAhmI,OAAA84K,IAAA,GAAA,KACA9C,KAAAj/L,KAAAivJ,KAEA,IAAAzyJ,EAAA,EAAAwxL,GAAAiR,KAAA9nM,OAAA,EAAA62L,GAAAxxL,EAAAA,IACA,IAAAyiM,KAAAziM,GAAAysB,OAAA,CAGA,IAAA,GAFA5oB,OAAAg0L,QAAA4K,KAAAziM,EAAA,GAAAysB,QAAA,GACA7mB,IAAA,EACAxF,EAAAJ,EAAA,EAAAwxL,GAAApxL,EAAAA,IACA,GAAAqiM,KAAAriM,GAAAqsB,OAAA,CACA7mB,IAAA68L,KAAAriM,GAAAqsB,MACA,OAGA7mB,MACAA,IAAA,IACAxF,EAAAoxL,IAEA5rL,IAAAiyL,QAAAjyL,IAEA,KADA,GAAA/M,IAAA+M,IAAA/B,QAAAzD,EAAAJ,EAAA,GACAI,EAAAJ,EAAAA,IACA6D,OAAAhL,EACA4pM,KAAAziM,GAAAysB,OAAA5oB,MAAA,IAIA,MAAA4+L,QAEAnxL,EAAAk0L,MAAA,SAAA7iD,GAAA21C,OACA31C,IAAA21C,MAAA5oL,MAAA4oL,MAAA5oL,IAAAizI,GAAA1jI,MACA0jI,IAAA21C,MAAA3jF,SAAA2jF,MAAA3jF,OAAAguC,GAAA3jI,MACA2jI,GAAA3jI,OAAA2jI,GAAA3jI,KAAAC,KAAA0jI,GAAA1jI,MACA0jI,GAAA1jI,OAAA0jI,GAAA1jI,KAAAD,KAAA2jI,GAAA3jI;ApQvlEA,GoQyoEAymL,UAhDAn0L,EAAAo0L,SAAA,SAAA/iD,GAAA21C,OACAA,MAAA5oL,MAAAizI,KAGA0iD,KAAA1iD,GAAA21C,OACA31C,GAAA3jI,KAAA,KACA2jI,GAAA1jI,KAAAq5K,MAAA5oL,IACA4oL,MAAA5oL,IAAAsP,KAAA2jI,GACA21C,MAAA5oL,IAAAizI,KAEArxI,EAAAq0L,QAAA,SAAAhjD,GAAA21C,OACAA,MAAA3jF,SAAAguC,KAGA0iD,KAAA1iD,GAAA21C,OACA31C,GAAA3jI,KAAAs5K,MAAA3jF,OACAguC,GAAA1jI,KAAA,KACAq5K,MAAA3jF,OAAA11F,KAAA0jI,GACA21C,MAAA3jF,OAAAguC,KAEArxI,EAAAs0L,aAAA,SAAAjjD,GAAAkjD,IAAAvN,OACA+M,KAAA1iD,GAAA21C,OACAuN,KAAAvN,MAAA5oL,MAAA4oL,MAAA5oL,IAAAizI,IACAkjD,IAAA7mL,OAAA6mL,IAAA7mL,KAAAC,KAAA0jI,IACAA,GAAA3jI,KAAA6mL,IAAA7mL,KACA2jI,GAAA1jI,KAAA4mL,IACAA,IAAA7mL,KAAA2jI,IAEArxI,EAAAw0L,cAAA,SAAAnjD,GAAAkjD,IAAAvN,OACA+M,KAAA1iD,GAAA21C,OACAuN,KAAAvN,MAAA3jF,SAAA2jF,MAAA3jF,OAAAguC,IACAkjD,IAAA5mL,OAAA4mL,IAAA5mL,KAAAD,KAAA2jI,IACAA,GAAA1jI,KAAA4mL,IAAA5mL,KACA4mL,IAAA5mL,KAAA0jI,GACAA,GAAA3jI,KAAA6mL,KAcAv0L,EAAAm0L,SAAA,SAAA7nJ,KAAAtjB,WACA,GAAA1gC,IAAAioM,eAAAjkJ,MACA+kG,IACAnuI,GACA8lB,UAAAnyB;ApQ5oEA,EoQ8oEA8wL,QAAA,WACA,MAAAr/L,KAIA,OADAs/L,kBAAAv2C,GAAAroH,WACAqoH,GAAAo2C,SAiBAG,kBAHA5nL,EAAAy0L,cAAA,SAAAnoJ,KAAAtjB,WACA,MAAAgjK,SAAA1/I,KAAA6nJ,SAAA7nJ,KAAAtjB,aAEAhpB,EAAA00L,kBAAA,SAAArjD,GAAAsjD,MACA,GAAA,MAAAA,KACA,MAAAtjD,IAAAnuI,EAAA8lB,SAEA2rK,MAAA9M,IAAA8M,MAAAjtM,QAAA,gBAAA2pJ,GAAAnuI,EAAA8lB,WAAAnyB,EACA,IAAA+9L,OAAA50L,EAAAkvL,qBAAAyF,MACA/H,IAAA,EACA3oD,GAAA,EACAC,GAAA,EACAoE,GAAA,EACAC,GAAA,EACArlI,EAAAmuI,GAAAnuI,EACA9P,EAAA,GAAAmyL,OAEA,IADAriL,EAAA8lB,UAAA4rK,UACAA,MACA,IAAA,GAAAlmM,GAAA,EAAAwxL,GAAA0U,MAAAvrM,OAAA62L,GAAAxxL,EAAAA,IAAA,CACA,GAKAmzL,IACAC,GACAC,GACAC,GACA15L,GATAuN,EAAA++L,MAAAlmM,GACAmmM,KAAAh/L,EAAAxM,OACA+oE,QAAAy1H,IAAAhyL,EAAA,IAAAjO,cACAo3F,SAAAnpF,EAAA,IAAAu8D,QACA0iI,MAAA91G,SAAA5rF,EAAA00B,SAAA,CAMA,MAAAsqC,SAAA,GAAAyiI,KACA71G,UACA6iG,GAAAiT,MAAA7+L,EAAA,EAAA,GACA6rL,GAAAgT,MAAA5+L,EAAA,EAAA,GACA6rL,GAAA+S,MAAA7+L,EAAAJ,EAAA,GAAAA,EAAA;ApQjsEA,AoQksEAmsL,GAAA8S,MAAA5+L,EAAAL,EAAA,GAAAA,EAAA,IACAzC,EAAA2jF,UAAAgrG,GAAAF,GAAAG,GAAAF,KAEA1uL,EAAA2jF,UAAAlhF,EAAA,GAAAA,EAAA,IAEA,KAAAu8D,QACA,GAAAyiI,MACAvsM,GAAAA,IAAA+oJ,GAAAs2C,QAAA,GACAv0L,EAAAshH,OAAA7+G,EAAA,GAAAvN,GAAA2N,EAAA3N,GAAAuF,MAAA,EAAAvF,GAAA4N,EAAA5N,GAAAwF,OAAA,GACA8+L,KAAA/2L,EAAA,IACA,GAAAg/L,OACA71G,UACA+iG,GAAA+S,MAAA7+L,EAAAJ,EAAA,GAAAA,EAAA,IACAmsL,GAAA8S,MAAA5+L,EAAAL,EAAA,GAAAA,EAAA,IACAzC,EAAAshH,OAAA7+G,EAAA,GAAAksL,GAAAC,KAEA5uL,EAAAshH,OAAA7+G,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAEA+2L,KAAA/2L,EAAA,IAEA,KAAAu8D,QACA,GAAAyiI,MAAA,GAAAA,MACAvsM,GAAAA,IAAA+oJ,GAAAs2C,QAAA,GACAv0L,EAAAozH,MAAA3wH,EAAA,GAAAA,EAAAg/L,KAAA,GAAAvsM,GAAA2N,EAAA3N,GAAAuF,MAAA,EAAAvF,GAAA4N,EAAA5N,GAAAwF,OAAA,GACAw6I,IAAAzyI,EAAA,GACA0yI,IAAA1yI,EAAAg/L,KAAA,IACA,GAAAA,OACA71G,UACA+iG,GAAA+S,MAAA7+L,EAAAJ,EAAA,GAAAA,EAAA,IACAmsL,GAAA8S,MAAA5+L,EAAAL,EAAA,GAAAA,EAAA,IACAzC,EAAAozH,MAAA3wH,EAAA,GAAAA,EAAA,GAAAksL,GAAAC,KAEA5uL,EAAAozH,MAAA3wH,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAEAyyI,IAAAzyI,EAAA,GACA0yI,IAAA1yI,EAAA,IAEA,KAAAu8D,SAAA,GAAAyiI,MACAzhM,EAAAjJ,IAAA0L,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAEAqN,EAAA6xL,OAAA,EACA1jD,GAAAo2C,OAAAr0L,EAUAi+I,GAAAo2C,OAAAr0L,EAEA8P,EAAAolI,GAAAA;ApQtvEA,AoQuvEAplI,EAAAqlI,GAAAA,GACArlI,EAAA0pL,IAAAA,IACA1pL,EAAA+gI,GAAAA,GAAA7wI,EAAA3L,EACAyb,EAAAghI,GAAAA,GAAA9wI,EAAAnL,EAEA,GAAAqgJ,IAAA,GAAAC,KAAAqkD,KAAA1pL,EAAA4oL,MACA5oL,EAAA4oL,KAAA71L,IAAAguI,GACA/gI,EAAA4oL,KAAA51L,IAAAguI,IAEAhhI,EAAA6xL,OAAA,IAGAC,SAAA,SAAAr4J,MACA,GAAA3tC,GAAA2tC,KAAA,EACA,QAAA3tC,EAAApH,eACA,IAAA,IAAA,OAAAoH,EAAA,EAAA,EACA,KAAA,IAAA,OAAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACA,KAAA,IAAA,MAAA,IAAA2tC,KAAAtzC,QACA2F,EAAA,EAAA2tC,KAAA,GAAAA,KAAA,KAEA3tC,EAAA,EAEA,KAAA,IAAA,MAAA,IAAA2tC,KAAAtzC,QACA2F,EAAA,EAAA,EAAA2tC,KAAA,GAAAA,KAAA,IACA,GAAAA,KAAAtzC,QACA2F,EAAA,EAAA,IAEAA,EAAA,KAIAw4L,kBAAAxnL,EAAAi1L,mBAAA,SAAAvT,GAAAC,IACAA,GAAAkG,IAAAlG,IAAAj6L,QAAA,gBAAAg6L,IACAA,GAAA1hL,EAAAkvL,qBAAAxN,QACAC,GAAA3hL,EAAAkvL,qBAAAvN,OAMA,KALA,GAGA7yL,GAAAsxL,GACA8U,IAAAC,IAJAxzL,UAAAkhL,KAAAnB,GAAAr4L,OAAAs4L,GAAAt4L,QACAy0E,QACAC,MACArvE,EAAA,EAEAiT,UAAAjT,EAAAA,IAAA,CAGA,GAFAwmM,IAAAxT,GAAAhzL,IAAAsmM,SAAArT,GAAAjzL,IACAymM,IAAAxT,GAAAjzL,IAAAsmM,SAAAE;ApQhyEA,AoQiyEAA,IAAA,IAAAC,IAAA,IACA,KAAAD,IAAA,GAAAttM,gBAAAstM,IAAA,IAAAC,IAAA,IAAAD,IAAA,IAAAC,IAAA,KACA,KAAAD,IAAA,GAAAttM,gBAAAstM,IAAA,IAAAC,IAAA,IAAAD,IAAA,IAAAC,IAAA,IAEA,MAIA,KAFAr3H,KAAApvE,MACAqvE,GAAArvE,MACAI,EAAA,EAAAsxL,GAAAyC,KAAAqS,IAAA7rM,OAAA8rM,IAAA9rM,QAAA+2L,GAAAtxL,EAAAA,IACAA,IAAAomM,OAAAp3H,KAAApvE,GAAAI,GAAAomM,IAAApmM,IACAA,IAAAqmM,OAAAp3H,GAAArvE,GAAAI,GAAAqmM,IAAArmM,IAGA,OACAgvE,KAAAA,KACAC,GAAAA,IAGA/9D,GAAAo1L,cAAA,SAAAn/L,EAAAC,EAAAF,EAAAjM,GACA,GAAAw/C,UAEA,OADAA,WAAA,MAAAx/C,GAAAiW,EAAAoF,GAAAnP,EAAA,UAAAA,EAAAnM,EAAAqmJ,IAAA/4I,eAAAnB,GACA,MAAAszC,UAGAA,UAAA+5D,QACA,MAAAptG,GAEAqzC,UAAAA,UACA17C,MAAA07C,UAAAl9C,MAAAgpM,YAAA9rJ,UAAAr8C,YACAY,OAAAy7C,UAAAl9C,MAAAipM,aAAA/rJ,UAAAp8C,eAIAo8C,UAAAA,UACA17C,MAAAqI,EACApI,OAAAkI,IAKAuzC,UAAA,EACAtzC,EAAAA,EACAC,EAAAA,EACArI,MAAAmI,EACAlI,OAAA/D;ApQ50EA,EoQqzEA,QAqCAiW,EAAA8wL,eAAAA,eACA9wL,EAAA6gL,WAYA7gL,EAAAsnL,WAAAA,WAiBAtnL,EAAAynL,OAAA,SAAA5gM,EAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,GACA,MAAA,IAAAs9L,QAAA1+L,EAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,IAmBA,SAAAstM,aA0JA,QAAAC,MAAA3uM,GACA,MAAAA,GAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAEA,QAAA++J,WAAA/+J,GACA,GAAA4uM,KAAA5zG,KAAAujC,KAAAowE,KAAA3uM,GACAA,GAAA,KAAAA,EAAA,IAAA4uM,KACA5uM,EAAA,KAAAA,EAAA,IAAA4uM,KAhJAF,YAAAprM,IAAA,SAAAtD,EAAAC,EAAAO,EAAAE,EAAAE,EAAAQ,GACA,GAGAgO,GAAAC,EAAAC,EAAA87F,IAHA36C,eACAlkD,IAAAf,KAAAxL,EAAAwL,KAAAhL,EAAAgL,KAAA5K,IAAA4K,KAAAvL,EAAAuL,KAAA9K,EAAA8K,KAAApK,IAAA,EAAA,EAAA,IACAw/L,SAAA5gM,EAAAQ,EAAAI,IAAAX,EAAAS,EAAAU,IAAA,EAAA,EAAA,GAOA,KAJApB,GAAAA,YAAA0+L,UACAkC,SAAA5gM,EAAAA,EAAAA,EAAAQ,EAAAR,EAAAY,IAAAZ,EAAAC,EAAAD,EAAAU,EAAAV,EAAAoB,IAAA,EAAA,EAAA,KAGAgO,EAAA,EAAA,EAAAA,EAAAA,IACA,IAAAC,EAAA,EAAA,EAAAA,EAAAA,IAAA,CAEA,IADA+7F,IAAA,EACA97F,EAAA,EAAA,EAAAA,EAAAA,IACA87F,KAAA7+F,EAAA6C,GAAAE,GAAAsxL,OAAAtxL,GAAAD,EAEAohD,KAAArhD,GAAAC,GAAA+7F,IAGA5/F,KAAAxL,EAAAywD,IAAA,GAAA,GACAjlD,KAAAvL,EAAAwwD,IAAA,GAAA,GACAjlD,KAAAhL,EAAAiwD,IAAA,GAAA;ApQh7EA,AoQi7EAjlD,KAAA9K,EAAA+vD,IAAA,GAAA,GACAjlD,KAAA5K,EAAA6vD,IAAA,GAAA,GACAjlD,KAAApK,EAAAqvD,IAAA,GAAA,IASAi+I,YAAAztK,OAAA,WACA,GAAAtF,IAAAnwB,KACA4D,EAAAusB,GAAA37B,EAAA27B,GAAAj7B,EAAAi7B,GAAA17B,EAAA07B,GAAAn7B,CACA,OAAA,IAAAk+L,QAAA/iK,GAAAj7B,EAAA0O,GAAAusB,GAAA17B,EAAAmP,GAAAusB,GAAAn7B,EAAA4O,EAAAusB,GAAA37B,EAAAoP,GAAAusB,GAAAn7B,EAAAm7B,GAAAv6B,EAAAu6B,GAAAj7B,EAAAi7B,GAAA/6B,GAAAwO,GAAAusB,GAAA17B,EAAA07B,GAAA/6B,EAAA+6B,GAAA37B,EAAA27B,GAAAv6B,GAAAgO,IASAs/L,YAAAn8L,MAAA,WACA,MAAA,IAAAmsL,QAAAlzL,KAAAxL,EAAAwL,KAAAvL,EAAAuL,KAAAhL,EAAAgL,KAAA9K,EAAA8K,KAAA5K,EAAA4K,KAAApK,IAWAstM,YAAAx+G,UAAA,SAAA9gF,EAAAC,GACA7D,KAAAlI,IAAA,EAAA,EAAA,EAAA,EAAA8L,EAAAC,IAaAq/L,YAAA/uE,MAAA,SAAAvwH,EAAAC,EAAAsf,GAAA/mB,IACA,MAAAyH,IAAAA,EAAAD,IACAuf,IAAA/mB,KAAA4D,KAAAlI,IAAA,EAAA,EAAA,EAAA,EAAAqrB,GAAA/mB,IACA4D,KAAAlI,IAAA8L,EAAA,EAAA,EAAAC,EAAA,EAAA,IACAsf,IAAA/mB,KAAA4D,KAAAlI,IAAA,EAAA,EAAA,EAAA,GAAAqrB,IAAA/mB,KAYA8mM,YAAA7gF,OAAA,SAAA7tH,EAAAoP,EAAAC,GACArP,EAAAmZ,EAAA2sL,IAAA9lM,GACAoP,EAAAA,GAAA,EACAC,EAAAA,GAAA,CACA,IAAAukB,MAAAonE,KAAApnE,IAAA5zB,GAAAwsH,QAAA,GACAiS,KAAAzjC,KAAAyjC,IAAAz+H,GAAAwsH,QAAA,EACAhhH,MAAAlI,IAAAswB,IAAA6qG,KAAAA,IAAA7qG,IAAAxkB,EAAAC,GACA7D,KAAAlI,IAAA,EAAA,EAAA,EAAA,GAAA8L,GAAAC;ApQx/EA,EoQogFAq/L,YAAAt/L,EAAA,SAAAA,EAAAC,GACA,MAAAD,GAAA5D,KAAAxL,EAAAqP,EAAA7D,KAAAhL,EAAAgL,KAAA5K,GAYA8tM,YAAAr/L,EAAA,SAAAD,EAAAC,GACA,MAAAD,GAAA5D,KAAAvL,EAAAoP,EAAA7D,KAAA9K,EAAA8K,KAAApK,GAEAstM,YAAA39L,IAAA,SAAAlJ,GACA,OAAA2D,KAAAw1L,IAAA3qE,aAAA,GAAAxuH,IAAA2kH,QAAA,IAEAkiF,YAAAhgM,SAAA,WACA,MAAAyK,GAAAusL,IACA,WAAAl6L,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,IAAAQ,OAAA,KACA/F,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAA,EAAA,GAAAQ,QAEAm9L,YAAAG,SAAA,WACA,MAAA,gDAAArjM,KAAAuF,IAAA,GACA,SAAAvF,KAAAuF,IAAA,GAAA,SAAAvF,KAAAuF,IAAA,GAAA,SAAAvF,KAAAuF,IAAA,GACA,QAAAvF,KAAAuF,IAAA,GAAA,QAAAvF,KAAAuF,IAAA,GAAA,iCAEA29L,YAAAp6K,OAAA,WACA,OAAA9oB,KAAA5K,EAAA4rH,QAAA,GAAAhhH,KAAApK,EAAAorH,QAAA;ApQjiFA,EoQyjFAkiF,YAAApuM,MAAA,WACA,GAAAmwD,OAEAA,KAAA2sF,GAAA5xI,KAAA5K,EACA6vD,IAAA4sF,GAAA7xI,KAAApK,CAGA,IAAA0tM,OAAAtjM,KAAAxL,EAAAwL,KAAAhL,IAAAgL,KAAAvL,EAAAuL,KAAA9K,GACA+vD,KAAAs+I,OAAA/zG,KAAAujC,KAAAowE,KAAAG,IAAA,KACA/vC,UAAA+vC,IAAA,IAEAr+I,IAAAu+I,MAAAF,IAAA,GAAA,GAAAA,IAAA,GAAA,GAAAA,IAAA,GAAA,GAAAA,IAAA,GAAA,GACAA,IAAA,IAAAA,IAAA,GAAA,GAAAA,IAAA,GAAA,GAAAr+I,IAAAu+I,MAAAF,IAAA,GAAA,GAAAA,IAAA,GAAA,GAAAr+I,IAAAu+I,OAEAv+I,IAAAw+I,OAAAj0G,KAAAujC,KAAAowE,KAAAG,IAAA,KACA/vC,UAAA+vC,IAAA,IACAr+I,IAAAu+I,OAAAv+I,IAAAw+I,MAGA,IAAAxwE,MAAAqwE,IAAA,GAAA,GACAl7K,IAAAk7K,IAAA,GAAA,EAaA,OAZA,GAAAl7K,KACA68B,IAAAo9D,OAAA10G,EAAA4sL,IAAA/qG,KAAAk0G,KAAAt7K,MACA,EAAA6qG,MACAhuE,IAAAo9D,OAAA,IAAAp9D,IAAAo9D,SAGAp9D,IAAAo9D,OAAA10G,EAAA4sL,IAAA/qG,KAAAkwG,KAAAzsE,MAGAhuE,IAAAtL,YAAAsL,IAAAu+I,MAAAxiF,QAAA,IAAA/7D,IAAAs+I,OAAAviF,QAAA,IAAA/7D,IAAAw+I,OAAAziF,QAAA,IAAA/7D,IAAAo9D,QACAp9D,IAAA0+I,gBAAA1+I,IAAAu+I,MAAAxiF,QAAA,IAAA/7D,IAAAs+I,OAAAviF,QAAA,IAAA/7D,IAAAw+I,OAAAziF,QAAA,KAAA/7D,IAAAo9D;ApQvlFA,AoQwlFAp9D,IAAA2+I,aAAA3+I,IAAAu+I,MAAAxiF,QAAA,KAAA/7D,IAAAo9D,OACAp9D,KASAi+I,YAAAW,kBAAA,SAAAC,SACA,GAAA/uM,GAAA+uM,SAAA9jM,KAAAlL,QACA,OAAAC,GAAA4kD,UACA5kD,EAAAwuM,QAAAxuM,EAAAwuM,OAAAviF,QAAA,GACAjsH,EAAA0uM,QAAA1uM,EAAA0uM,OAAAziF,QAAA,GACAjsH,EAAAstH,QAAAttH,EAAAstH,OAAArB,QAAA,IACAjsH,EAAA68I,IAAA78I,EAAA88I,GAAA,KAAA98I,EAAA68I,GAAA78I,EAAA88I,IAAArtI,IACA,GAAAzP,EAAAwuM,QAAA,GAAAxuM,EAAA0uM,OAAA,KAAA1uM,EAAAwuM,OAAAxuM,EAAA0uM,OAAA,EAAA,GAAAj/L,IACAzP,EAAAstH,OAAA,KAAAttH,EAAAstH,OAAA,EAAA,GAAA79G,IAEA,KAAAxE,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,GAAAvF,KAAAuF,IAAA,MAGA2tL,OAAA/wL,UAGA,IAAAid,SAAAxc,UAAAyc,UAAArI,MAAA,qBAAApU,UAAAyc,UAAArI,MAAA,gBACA,yBAAApU,UAAA0rI,SAAAlvH,SAAAA,QAAA,GAAA,GAAA,MAAAxc,UAAA4+I,SAAA9nJ,MAAA,EAAA,KACA,eAAAkJ,UAAA0rI,QAAAlvH,SAAAA,QAAA,GAAA,EASA82K,WAAA32K,OAAA;ApQ5nFA,AoQ6nFA,GAAAu8H,MAAA97I,KAAA87I,KAAA,IAAA,IAAA97I,KAAAxE,MAAA,GAAAwE,KAAAvE,OAAA,IAAAoJ,MAAAqzL,OAAA,QACA/5L,YAAA,WAAA29I,KAAAzgJ,YAGA66L,WAAA32K,OAAAiuK,GAsWA,KAAA,GAnWA/6K,gBAAA,WACAzS,KAAAmV,aAAA,GAEA4uL,aAAA,WACA,MAAA/jM,MAAAiV,cAAAxC,kBAEAW,gBAAA,WACApT,KAAAsV,cAAA,GAEA0uL,UAAA,WACA,MAAAhkM,MAAAiV,cAAA7B,mBAEA6wL,iBAAA,SAAA7uM,GACA,GAAA06I,SAAAr4I,EAAAqmJ,IAAAp2I,gBAAAyM,WAAA1c,EAAAqmJ,IAAA1iJ,KAAA+Y,UACA07H,QAAAp4I,EAAAqmJ,IAAAp2I,gBAAAqM,YAAAtc,EAAAqmJ,IAAA1iJ,KAAA2Y,UAEA,QACAnQ,EAAAxO,EAAA0e,QAAA+7H,QACAhsI,EAAAzO,EAAA8e,QAAA47H,UAGAuS,SAAA,WACA,MAAA5qJ,GAAAqmJ,IAAA35I,iBACA,SAAAsiC,IAAA/tC,KAAA2K,GAAAqvF,SACA,GAAA98F,GAAA,SAAAR;ApQ3pFA,AoQ4pFA,GAAAiyB,KAAA48K,iBAAA7uM,EACA,OAAAiO,IAAA7M,KAAAk8F,QAAAt9F,EAAAiyB,IAAAzjB,EAAAyjB,IAAAxjB,GAIA,IAFA4iC,IAAAtiC,iBAAAzL,KAAA9C,GAAA,GAEA45I,eAAAknD,SAAAh+L,MAAA,CACA,GAAA+pE,IAAA,SAAArtE,GAIA,IAAA,GAHAiyB,KAAA48K,iBAAA7uM,GACA8uM,KAAA9uM,EAEAiH,EAAA,EAAAwxL,GAAAz4L,EAAA+uM,eAAA/uM,EAAA+uM,cAAAntM,OAAA62L,GAAAxxL,EAAAA,IACA,GAAAjH,EAAA+uM,cAAA9nM,GAAAiW,QAAAm0B,IAAA,CACArxC,EAAAA,EAAA+uM,cAAA9nM,GACAjH,EAAA6f,cAAAivL,KACA9uM,EAAAqd,eAAAsxL,aACA3uM,EAAAge,gBAAA4wL,SACA,OAIA,MAAA3gM,IAAA7M,KAAAk8F,QAAAt9F,EAAAiyB,IAAAzjB,EAAAyjB,IAAAxjB,GAEA4iC,KAAAtiC,iBAAAuyL,SAAAh+L,MAAA+pE,IAAA,GAGA,MAAA,YAMA,MALAh8B,KAAAriC,oBAAA1L,KAAA9C,GAAA,GAEA45I,eAAAknD,SAAAh+L,OACA+tC,IAAAriC,oBAAAsyL,SAAAh+L,MAAA9C,GAAA,IAEA,IAGA6B,EAAAqmJ,IAAA11I,YACA,SAAAq+B,IAAA/tC,KAAA2K,GAAAqvF,SACA,GAAA98F,GAAA,SAAAR;ApQ/rFA,AoQgsFAA,EAAAA,GAAAqC,EAAAu4I,IAAAn4I,KACA,IAAAi4I,SAAAr4I,EAAAqmJ,IAAAp2I,gBAAAyM,WAAA1c,EAAAqmJ,IAAA1iJ,KAAA+Y,UACA07H,QAAAp4I,EAAAqmJ,IAAAp2I,gBAAAqM,YAAAtc,EAAAqmJ,IAAA1iJ,KAAA2Y,WACAnQ,EAAAxO,EAAA0e,QAAA+7H,QACAhsI,EAAAzO,EAAA8e,QAAA47H,OAGA,OAFA16I,GAAAqd,eAAArd,EAAAqd,gBAAAA,eACArd,EAAAge,gBAAAhe,EAAAge,iBAAAA,gBACA/P,GAAA7M,KAAAk8F,QAAAt9F,EAAAwO,EAAAC,GAEA4iC,KAAAr+B,YAAA,KAAA1P,KAAA9C,EACA,IAAAwuM,UAAA,WAEA,MADA39J,KAAAliC,YAAA,KAAA7L,KAAA9C,IACA,EAEA,OAAAwuM,WAjBA,UAqBAxzF,QACAu0C,SAAA,SAAA/vJ,GAOA,IANA,GAIAivM,OAJAzgM,EAAAxO,EAAA0e,QACAjQ,EAAAzO,EAAA8e,QACA47H,QAAAr4I,EAAAqmJ,IAAAp2I,gBAAAyM,WAAA1c,EAAAqmJ,IAAA1iJ,KAAA+Y,UACA07H,QAAAp4I,EAAAqmJ,IAAAp2I,gBAAAqM,YAAAtc,EAAAqmJ,IAAA1iJ,KAAA2Y,WAEAtX,EAAAm0G,KAAA55G,OACAyF,KAAA,CAEA,GADA4nM,MAAAzzF,KAAAn0G;ApQ1tFA,AoQ2tFA+yI,eAAAp6I,EAAA07I,SAGA,IAFA,GACAuyB,OADAhnK,EAAAjH,EAAA07I,QAAA95I,OAEAqF,KAEA,GADAgnK,MAAAjuK,EAAA07I,QAAAz0I,GACAgnK,MAAAz3E,YAAAy4G,MAAArlD,GAAAslD,MAAAt/L,GAAA,CACApB,EAAAy/J,MAAAvvJ,QACAjQ,EAAAw/J,MAAAnvJ,SACA9e,EAAA6f,cAAA7f,EAAA6f,cAAA7f,GAAAqd,gBACA,YAIArd,GAAAqd,gBAEA,IACAxR,GADAw7B,KAAA4nK,MAAArlD,GAAAviH,KAEAphB,KAAAohB,KAAA5jB,YACAK,OAAAujB,KAAAtmC,WACA8D,QAAAwiC,KAAAziC,MAAAC,OACAxC,GAAAu4I,IAAA9kB,OAAAhyG,OAAAld,YAAAygC,MACAA,KAAAziC,MAAAC,QAAA,OACAgH,EAAAojM,MAAArlD,GAAA21C,MAAA4P,kBAAA3gM,EAAAC,GACA44B,KAAAziC,MAAAC,QAAAA,QACAxC,EAAAu4I,IAAA9kB,QAAA7vG,KAAAnC,OAAAxN,aAAA+wB,KAAAphB,MAAAnC,OAAA9hB,YAAAqlC,OACAx7B,GAAAysL,IAAA,qBAAA2W,MAAArlD,GAAAh6I,GAAAq/L,MAAArlD,GAAA/9I,GACA2C,GAAAisI,QACAhsI,GAAAisI,QACA49C,IAAA,qBAAA2W,MAAArlD,GAAAh6I,GAAAq/L,MAAAG,YAAAH,MAAArlD,GAAAp7I,EAAAygM,MAAArlD,GAAAslD,MAAA1gM,EAAAC,EAAAwgM,MAAArlD,GAAAslD,MAAAzgM,EAAAD,EAAAC,EAAAzO;ApQtvFA,GoQyvFAqvM,OAAA,SAAArvM,GACAuY,EAAA+2L,YAAAv/C,UAAAw/C,UAAAF,OAGA,KAFA,GACAJ,OADAhoM,EAAAu0G,KAAA55G,OAEAqF,KACAgoM,MAAAzzF,KAAAv0G,GACAgoM,MAAArlD,GAAAslD,SACA5W,IAAA,oBAAA2W,MAAArlD,GAAAh6I,GAAAq/L,MAAAO,WAAAP,MAAAQ,aAAAR,MAAAG,YAAAH,MAAArlD,GAAA5pJ,EAEAw7G,UAgBAk0F,QAAAn3L,EAAAqxI,MAiNA3iJ,EAAA1E,OAAAX,OAAAqF,MACA,SAAA+wC,WACAz/B,EAAAy/B,WAAA03J,QAAA13J,WAAA,SAAA/pC,GAAAywD,OAKA,MAJAnmD,GAAAoF,GAAA1P,GAAA,cACArD,KAAArI,OAAAqI,KAAArI,WACAqI,KAAArI,OAAAkI,MAAAgN,KAAAugC,UAAAx3C,EAAAyN,GAAA4S,OAAAosI,SAAAriJ,KAAA+kM,OAAA/kM,KAAAy8B,MAAAhlC,EAAAqmJ,IAAA1wG,UAAA/pC,GAAAywD,OAAA9zD,SAEAA,MAEA2N,EAAA,KAAAy/B,WAAA03J,QAAA,KAAA13J,WAAA,SAAA/pC,IAGA,IAFA,GAAA1L,QAAAqI,KAAArI,WACAgF,EAAAhF,OAAAX,OACA2F,KACAhF,OAAAgF,GAAAkQ,MAAAugC,YAAAz/B,EAAAoF,GAAA1P,GAAA,cAAA1L,OAAAgF,GAAA/G,GAAAyN,KACA1L,OAAAgF,GAAAsZ;ApQh/FA,AoQi/FAte,OAAAgG,OAAAhB,EAAA,IACAhF,OAAAX,cAAAgJ,MAAArI,OAGA,OAAAqI,QAEArI,OAAA0E,GA4BAyoM,SAAAjvM,KAAA,SAAAw1C,IAAAxyC,OACA,GAAAhD,MAAAqjM,OAAAl5L,KAAAgF,IAAAk0L,OAAAl5L,KAAAgF,OACA,IAAA,GAAAc,UAAA9O,OACA,MAAAnB,KAEA,IAAA,GAAAiQ,UAAA9O,OAAA,CACA,GAAA2W,EAAAoF,GAAAs4B,IAAA,UAAA,CACA,IAAA,GAAAhvC,KAAAgvC,KAAAA,IAAAxiC,KAAAxM,IACA2D,KAAAnK,KAAAwG,EAAAgvC,IAAAhvC,GAEA,OAAA2D,MAGA,MADA0tL,KAAA,oBAAA1tL,KAAAgF,GAAAhF,KAAAnK,KAAAw1C,KAAAA,KACAx1C,KAAAw1C,KAIA,MAFAx1C,MAAAw1C,KAAAxyC,MACA60L,IAAA,oBAAA1tL,KAAAgF,GAAAhF,KAAAnH,MAAAwyC,KACArrC,MAYA8kM,QAAA9iM,WAAA,SAAAqpC,KAMA,MALA,OAAAA,IACA6tJ,OAAAl5L,KAAAgF,OAEAk0L,OAAAl5L,KAAAgF,WAAAk0L,QAAAl5L,KAAAgF,IAAAqmC,KAEArrC,MASA8kM,QAAAhzL,QAAA,WACA,MAAA/K,OAAAmyL,OAAAl5L,KAAAgF,UAcA8/L,QAAA/zL,MAAA,SAAAi0L,KAAAC,MAAAC,SAAAC;ApQ7kGA,AoQ8kGA,MAAAnlM,MAAA60G,UAAAmwF,KAAAE,UAAAE,SAAAH,MAAAE,WAAAD,WAYAJ,QAAAO,QAAA,SAAAL,KAAAC,OACA,MAAAjlM,MAAAslM,YAAAN,MAAAO,WAAAN,OAEA,IAAA3zF,aA+BAwzF,SAAAl0F,KAAA,SAAAu5C,OAAAD,QAAAE,MAAAo6C,WAAAK,YAAAD,WACA,QAAA1kM,OAAA9K,IACAA,EAAA6f,eAAA7f,GAAAqd,gBACA,IAAA7O,GAAAxO,EAAA0e,QACAjQ,EAAAzO,EAAA8e,QACA47H,QAAAr4I,EAAAqmJ,IAAAp2I,gBAAAyM,WAAA1c,EAAAqmJ,IAAA1iJ,KAAA+Y,UACA07H,QAAAp4I,EAAAqmJ,IAAAp2I,gBAAAqM,YAAAtc,EAAAqmJ,IAAA1iJ,KAAA2Y,UAEA,IADA/T,KAAAskM,MAAAt/L,GAAA5P,EAAAw2F,WACA4jD,eAAAp6I,EAAA07I,QAEA,IADA,GAAAuyB,OAAAhnK,EAAAjH,EAAA07I,QAAA95I,OACAqF,KAGA,GAFAgnK,MAAAjuK,EAAA07I,QAAAz0I,GACA2D,KAAAskM,MAAAt/L,GAAAq+J,MAAAz3E,WACAy3E,MAAAz3E,YAAA5rF,KAAAskM,MAAAt/L,GAAA,CACApB,EAAAy/J,MAAAvvJ,QACAjQ,EAAAw/J,MAAAnvJ;ApQ1oGA,AoQ2oGA,MAIAlU,KAAAskM,MAAA1gM,EAAAA,EAAAisI,QACA7vI,KAAAskM,MAAAzgM,EAAAA,EAAAisI,SACAl/B,KAAA55G,QAAA2W,EAAAgpL,UAAAxxC,UAAAj5C,QAAAu4F,QACA7zF,KAAA/wG,MAAAm/I,GAAAh/I,KAAAwkM,WAAAA,WAAAK,YAAAA,YAAAD,UAAAA,YACA16C,SAAAwjC,IAAA53K,GAAA,sBAAA9V,KAAAgF,GAAAklJ,SACAC,QAAAujC,IAAA53K,GAAA,qBAAA9V,KAAAgF,GAAAmlJ,QACAC,OAAAsjC,IAAA53K,GAAA,oBAAA9V,KAAAgF,GAAAolJ,OACAsjC,IAAA,sBAAA1tL,KAAAgF,GAAA6/L,aAAAL,YAAAxkM,KAAA5K,EAAA0e,QAAA+7H,QAAAz6I,EAAA8e,QAAA47H,QAAA16I,GAKA,MAHA4K,MAAAskM,SACAhzF,UAAAzxG,MAAAm/I,GAAAh/I,KAAAE,MAAAA,QACAF,KAAAu8G,UAAAr8G,OACAF,MAUA8kM,QAAAU,WAAA,SAAA5vM,GACAA,EAAA83L,IAAA53K,GAAA,qBAAA9V,KAAAgF,GAAApP,GAAA83L,IAAAz3K,OAAA,qBAAAjW,KAAAgF,KAQA8/L,QAAAW,OAAA;ApQ7qGA,AoQ+qGA,IADA,GAAAppM,GAAAi1G,UAAAt6G,OACAqF,KAAAi1G,UAAAj1G,GAAA2iJ,IAAAh/I,OACAA,KAAA0lM,YAAAp0F,UAAAj1G,GAAA6D,OACAoxG,UAAA3zG,OAAAtB,EAAA,GACAqxL,IAAAz3K,OAAA,kBAAAjW,KAAAgF,MAEAssG,UAAAt6G,QAAA2W,EAAA+2L,YAAAv/C,UAAAw/C,UAAAF,QACA7zF,SAkBAslF,WAAAC,OAAA,SAAAvyL,EAAAC,EAAAN,GACA,GAAA0hD,KAAAt3C,EAAA6gL,QAAA2H,OAAAn2L,KAAA4D,GAAA,EAAAC,GAAA,EAAAN,GAAA,EAEA,OADAvD,MAAA2lM,SAAA3lM,KAAA2lM,QAAA9lM,KAAAolD,KACAA,KAuBAixI,WAAAp6C,KAAA,SAAAl4I,EAAAC,EAAAF,EAAAjM,EAAA6L,GACA,GAAA0hD,KAAAt3C,EAAA6gL,QAAA1yC,KAAA97I,KAAA4D,GAAA,EAAAC,GAAA,EAAAF,GAAA,EAAAjM,GAAA,EAAA6L,GAAA,EAEA,OADAvD,MAAA2lM,SAAA3lM,KAAA2lM,QAAA9lM,KAAAolD,KACAA,KAmBAixI,WAAAE,QAAA,SAAAxyL,EAAAC,EAAAm0L,GAAAC,IACA,GAAAhzI,KAAAt3C,EAAA6gL,QAAA4H,QAAAp2L,KAAA4D,GAAA,EAAAC,GAAA,EAAAm0L,IAAA,EAAAC,IAAA,EAEA,OADAj4L,MAAA2lM,SAAA3lM,KAAA2lM,QAAA9lM,KAAAolD,KACAA,KAkCAixI,WAAAj8I,KAAA,SAAAwiJ;ApQ3xGA,AoQ4xGAA,aAAA9uL,EAAAoF,GAAA0pL,WAAAtyK,UAAAxc,EAAAoF,GAAA0pL,WAAA,GAAA79C,SAAA69C,YAAAj4L,EACA,IAAAygD,KAAAt3C,EAAA6gL,QAAAv0I,KAAAtsC,EAAA6tB,OAAA31B,OAAA8H,EAAA7H,WAAA9F,KAEA,OADAA,MAAA2lM,SAAA3lM,KAAA2lM,QAAA9lM,KAAAolD,KACAA,KAoBAixI,WAAAv8K,MAAA,SAAA+E,IAAA9a,EAAAC,EAAAF,EAAAjM,GACA,GAAAutD,KAAAt3C,EAAA6gL,QAAA70K,MAAA3Z,KAAA0e,KAAA,cAAA9a,GAAA,EAAAC,GAAA,EAAAF,GAAA,EAAAjM,GAAA,EAEA,OADAsI,MAAA2lM,SAAA3lM,KAAA2lM,QAAA9lM,KAAAolD,KACAA,KAkBAixI,WAAAj9L,KAAA,SAAA2K,EAAAC,EAAA5K,MACA,GAAAgsD,KAAAt3C,EAAA6gL,QAAAv1L,KAAA+G,KAAA4D,GAAA,EAAAC,GAAA,EAAA2xL,IAAAv8L,MAEA,OADA+G,MAAA2lM,SAAA3lM,KAAA2lM,QAAA9lM,KAAAolD,KACAA,KAmBAixI,WAAAznL,IAAA,SAAAm3L,aACAj4L,EAAAoF,GAAA6yL,WAAA,WAAAA,WAAA7iM,MAAAZ,UAAAxE,OAAAnH,KAAAsP,UAAA,EAAAA,UAAA9O,QACA,IAAAiuD,KAAA,GAAA4gJ,KAAAD,WAIA,OAHA5lM,MAAA2lM,SAAA3lM,KAAA2lM,QAAA9lM,KAAAolD;ApQh2GA,AoQi2GAA,IAAA,MAAAjlD,KACAilD,IAAA,KAAA,MACAA,KAgBAixI,WAAA4P,SAAA,SAAAr3L,KACAzO,KAAA2lM,QAAAl3L,KAAAzO,KAAAyO,OAUAynL,WAAA6P,UAAA,SAAAt3L,KACA,GAAAw2C,KAAAjlD,KAAA2lM,OAEA,cADA3lM,MAAA2lM,QACA1gJ,KAaAixI,WAAAxpB,QAAA,SAAAlxK,MAAAC,QACA,MAAAkS,GAAA6gL,QAAA9hB,QAAAl2K,KAAAwJ,KAAAxE,MAAAC,SAiBAy6L,WAAA8P,WAAA,SAAApiM,EAAAC,EAAAF,EAAAjM,EAAAw2G,KACA,MAAAvgG,GAAA6gL,QAAAwX,WAAAxvM,KAAAwJ,KAAA4D,EAAAC,EAAAF,EAAAjM,EAAAw2G,MAcAgoF,WAAAnqL,IAAAmqL,WAAAllF,OAAA,KAOAklF,WAAA+P,QAAAt4L,CACA,IAAAu4L,WAAA,SAAArnM,MACA,GAAAk8I,KAAAl8I,KAAAoqB,wBACA60H,IAAAj/I,KAAAxH,cACA+D,KAAA0iJ,IAAA1iJ,KACA+qM,QAAAroD,IAAAp2I,gBACA0M,UAAA+xL,QAAA/xL,WAAAhZ,KAAAgZ,WAAA,EAAAJ,WAAAmyL,QAAAnyL,YAAA5Y,KAAA4Y,YAAA,EACAjI,IAAAgvI,IAAAhvI,KAAAtU,EAAAu4I,IAAA9mH,aAAAi9K,QAAAhyL,WAAA/Y,KAAA+Y,WAAAC,UACA8M,KAAA65H,IAAA75H,MAAAzpB,EAAAu4I,IAAA7mH,aAAAg9K,QAAApyL,YAAA3Y,KAAA2Y,YAAAC;ApQ77GA,AoQ87GA,OACAnQ,EAAAkI,IACAnI,EAAAsd,MAiBAg1K,YAAAqO,kBAAA,SAAA3gM,EAAAC,GACA,GAAA8wL,OAAA30L,KACAk6L,IAAAvF,MAAA7V,OACAxsK,OAAA7a,EAAAqmJ,IAAAsoD,iBAAAxiM,EAAAC,EACA,IAAApM,EAAAu4I,IAAA9kB,OAAA,OAAA54G,OAAA2+F,QAAA,CACA,GAAAo1F,IAAAH,UAAAhM,KACAoM,GAAApM,IAAAqM,eACAD,IAAA1iM,EAAAA,EAAAyiM,GAAAziM,EACA0iM,GAAAziM,EAAAA,EAAAwiM,GAAAxiM,EACAyiM,GAAA9qM,MAAA8qM,GAAA7qM,OAAA,CACA,IAAA+qM,MAAAtM,IAAAuM,oBAAAH,GAAA,KACAE,MAAAxvM,SACAsb,OAAAk0L,KAAAA,KAAAxvM,OAAA,IAGA,IAAAsb,OACA,MAAA,KAEA,MAAAA,OAAAnc,YAAAmc,QAAA4nL,IAAA/jM,aAAAmc,OAAA2zL,SACA3zL,OAAAA,OAAAnc,UAIA,OAFAmc,SAAAqiL,MAAA7V,OAAA3oL,aAAAmc,OAAA4nL,KACA5nL,OAAAA,QAAAA,OAAA2zL,QAAAtR,MAAA+R,QAAAp0L,OAAAq0L,WAAA,MAeAzQ,WAAA0Q,kBAAA,SAAAnN,MACA,GAAAhrL,KAAAzO,KAAAyO,KAMA,OALAzO,MAAA80B,QAAA,SAAAkqH;ApQv/GA,AoQw/GArxI,EAAA6jL,gBAAAxyC,GAAAs2C,UAAAmE,OACAhrL,IAAA5O,KAAAm/I,MAGAvwI,KAcAynL,WAAAwQ,QAAA,SAAA1hM,IAEA,IADA,GAAA6hM,KAAA7mM,KAAAgxG,OACA61F,KAAA,CACA,GAAAA,IAAA7hM,IAAAA,GACA,MAAA6hM,IAEAA,KAAAA,IAAAxrL,KAEA,MAAA,OAoBA66K,WAAAphK,QAAA,SAAA+I,SAAAipK,SAEA,IADA,GAAAD,KAAA7mM,KAAAgxG,OACA61F,KAAA,CACA,GAAAhpK,SAAArnC,KAAAswM,QAAAD,QAAA,EACA,MAAA7mM,KAEA6mM,KAAAA,IAAAxrL,KAEA,MAAArb,OAcAk2L,WAAA6Q,mBAAA,SAAAnjM,EAAAC,GACA,GAAA4K,KAAAzO,KAAAyO,KAMA,OALAzO,MAAA80B,QAAA,SAAAkqH,IACAA,GAAAgoD,cAAApjM,EAAAC,IACA4K,IAAA5O,KAAAm/I,MAGAvwI,KAoBAq2L,QAAAkC,cAAA,SAAApjM,EAAAC,GACA,GAAA+2F,IAAA56F,KAAAinM,SAAA1N,QAAAv5L,KAAAtH,MAAAsH,KAIA,OAHAA,MAAA6E,KAAA,cAAA7E,KAAA6E,KAAA,aAAA7N,SACA4jG,GAAAjtF,EAAAy0L,cAAAxnG,GAAA56F,KAAA6E,KAAA,eAEA8I,EAAAmwL,kBAAAljG,GAAAh3F,EAAAC;ApQ3lHA,EoQgnHAihM,QAAAxP,QAAA,SAAA4R,oBACA,GAAAlnM,KAAAy+K,QACA,QAEA,IAAA5tK,GAAA7Q,KAAA6Q,CACA,OAAAq2L,sBACAr2L,EAAAs2L,QAAAt2L,EAAAu2L,UACApnM,KAAAinM,SAAA1N,QAAAv5L,KAAAtH,MAAAsH,MACA6Q,EAAAu2L,OAAAlJ,eAAAl+L,KAAAinM,UACAp2L,EAAAu2L,OAAAlkM,SAAAiwL,QACAtiL,EAAAs2L,MAAA,GAEAt2L,EAAAu2L,UAEAv2L,EAAAs2L,OAAAt2L,EAAA6xL,SAAA7xL,EAAA4oL,SACA5oL,EAAAs2L,QAAAnnM,KAAAinM,YACAp2L,EAAAu2L,OAAA,EACApnM,KAAAinM,SAAA1N,QAAAv5L,KAAAtH,MAAAsH,OAEA6Q,EAAA4oL,KAAAyE,eAAAvE,QAAA35L,KAAAinM,SAAAjnM,KAAAo1L,SACAvkL,EAAA4oL,KAAAv2L,SAAAiwL,QACAtiL,EAAAs2L,MAAAt2L,EAAA6xL,OAAA,GAEA7xL,EAAA4oL,OASAqL,QAAA/9L,MAAA,WACA,GAAA/G,KAAAy+K,QACA,MAAA,KAEA,IAAAx5H,KAAAjlD,KAAA20L,MAAA30L,KAAAtH,QAAAmM,KAAA7E,KAAA6E,OAEA,OADA7E,MAAA2lM,SAAA3lM,KAAA2lM,QAAA9lM,KAAAolD,KACAA,KAuBA6/I,QAAAuC,KAAA,SAAAA,MACA,GAAA,QAAArnM,KAAAtH,KACA,MAAA;ApQ9qHA,AoQgrHA2uM,KAAAA,QACA,IAAAtyM,IACAyG,OAAA6rM,KAAA7rM,OAAA,MAAAwE,KAAA6E,KAAA,iBAAA,GACA2yL,KAAA6P,KAAA7P,OAAA,EACAl1L,QAAA+kM,KAAA/kM,SAAA,GACAglM,QAAAD,KAAAC,SAAA,EACAC,QAAAF,KAAAE,SAAA,EACAxzE,MAAAszE,KAAAtzE,OAAA,QAEA/+H,EAAAD,EAAAyG,MAAA,EACA+H,EAAAvD,KAAA20L,MACA1vI,IAAA1hD,EAAAkL,MACAwrC,KAAAj6C,KAAAinM,UAAA1N,QAAAv5L,KAAAtH,MAAAsH,KACAi6C,MAAAj6C,KAAAo1L,OAAAuE,QAAA1/I,KAAAj6C,KAAAo1L,QAAAn7I,IACA,KAAA,GAAA59C,GAAA,EAAArH,EAAA,EAAAqH,EAAAA,IACA4oD,IAAAplD,KAAA0D,EAAA02C,KAAAA,MAAAp1C,MACAqzL,OAAAnjM,EAAAg/H,MACAyjE,KAAAziM,EAAAyiM,KAAAziM,EAAAg/H,MAAA,OACAskE,kBAAA,QACAD,iBAAA,QACAI,iBAAAzjM,EAAAyG,MAAAxG,EAAAqH,GAAA2kH,QAAA,GACA1+G,UAAAvN,EAAAuN,QAAAtN,GAAAgsH,QAAA,KAGA,OAAA/7D,KAAAv5C,aAAA1L,MAAA0kF,UAAA3vF,EAAAuyM,QAAAvyM,EAAAwyM,SAEA,IACAC,yBAAA,SAAAnU,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,IAAAx8L;ApQ1sHA,AoQ2sHA,MAAA,OAAAA,OACAu4L,OAAA8D,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,KAEA7lL,EAAAokL,kBAAAsB,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,IAAAjD,UAAA8C,IAAAC,IAAA2J,IAAAC,IAAAC,IAAAC,IAAA7J,IAAAC,IAAAx8L,UAGAywM,iBAAA,SAAAC,QAAAC,SACA,MAAA,UAAA1tJ,KAAAjjD,OAAA4wM,WACA3tJ,KAAAg7I,WAAAh7I,KAGA,KAAA,GAFAr2C,GAAAC,EAAAjP,EAAA+H,EAAAykI,MAAAymE,GAAA,GAAAC,YACAz7J,IAAA,EACAhwC,EAAA,EAAAwxL,GAAA5zI,KAAAjjD,OAAA62L,GAAAxxL,EAAAA,IAAA,CAEA,GADAzH,EAAAqlD,KAAA59C,GACA,KAAAzH,EAAA,GACAgP,GAAAhP,EAAA,GACAiP,GAAAjP,EAAA,OACA,CAEA,GADA+H,EAAA6qM,wBAAA5jM,EAAAC,EAAAjP,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAy3C,IAAA1vC,EAAA3F,OAAA,CACA,GAAA2wM,UAAAG,SAAA5nM,MAAA,CAGA,GAFAkhI,MAAAomE,wBAAA5jM,EAAAC,EAAAjP,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAoC,OAAAq1C,KACAw7J,KAAA,IAAAzmE,MAAAlhI,MAAA0D,EAAAw9H,MAAAlhI,MAAA2D,EAAAu9H,MAAArgI,EAAA6C,EAAAw9H,MAAArgI,EAAA8C,EAAAu9H,MAAAx9H,EAAAw9H,MAAAv9H,GACA+jM,UAAA,MAAAC,GACAC,UAAA5nM,MAAA2nM;ApQjuHA,AoQkuHAA,IAAA,IAAAzmE,MAAAx9H,EAAAw9H,MAAAv9H,EAAA,IAAAu9H,MAAApgI,EAAA4C,EAAAw9H,MAAApgI,EAAA6C,EAAAu9H,MAAAn/H,IAAA2B,EAAAw9H,MAAAn/H,IAAA4B,EAAAjP,EAAA,GAAAA,EAAA,IAAAmR,OACAsmC,KAAA1vC,EACAiH,GAAAhP,EAAA,GACAiP,GAAAjP,EAAA,EACA,UAEA,IAAA8yM,UAAAC,QAEA,MADAvmE,OAAAomE,wBAAA5jM,EAAAC,EAAAjP,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAoC,OAAAq1C,MACAzoC,EAAAw9H,MAAAx9H,EAAAC,EAAAu9H,MAAAv9H,EAAA45L,MAAAr8D,MAAAq8D,OAGApxJ,KAAA1vC,EACAiH,GAAAhP,EAAA,GACAiP,GAAAjP,EAAA,GAEAizM,IAAAjzM,EAAAwI,QAAAxI,EAKA,MAHAkzM,UAAA7lM,IAAA4lM,GACAzmE,MAAAsmE,QAAAr7J,IAAAs7J,QAAAG,SAAAn6L,EAAAokL,kBAAAnuL,EAAAC,EAAAjP,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAA,GACAwsI,MAAAq8D,QAAAr8D,OAAAx9H,EAAAw9H,MAAAx9H,EAAAC,EAAAu9H,MAAAv9H,EAAA45L,MAAAr8D,MAAAq8D,QACAr8D,QAGA2mE,eAAAN,iBAAA,GACAO,iBAAAP,mBACAQ,oBAAAR,iBAAA,EAAA,EAaA95L,GAAAo6L,eAAAA,eAmBAp6L,EAAAq6L,iBAAAA;ApQ1xHA,AoQyyHAr6L,EAAAu6L,WAAA,SAAAjuJ,KAAAwxB,KAAAC,IACA,GAAA1rE,KAAA+nM,eAAA9tJ,MAAAyxB,GAAA,KACA,MAAAu8H,qBAAAhuJ,KAAAwxB,MAAAxpE,GAEA,IAAAzN,GAAAyzM,oBAAAhuJ,KAAAyxB,GAAA,EACA,OAAAD,MAAAw8H,oBAAAzzM,EAAAi3E,MAAAxpE,IAAAzN,GASAswM,QAAAiD,eAAA,WACA,GAAA9tJ,MAAAj6C,KAAAu5L,SACA,IAAAt/I,KAIA,MAAAj6C,MAAAy8B,KAAAsrK,eACA/nM,KAAAy8B,KAAAsrK,iBAGAA,eAAA9tJ,OAmBA6qJ,QAAAkD,iBAAA,SAAAhxM,QACA,GAAAijD,MAAAj6C,KAAAu5L,SACA,IAAAt/I,KAIA,MAAA+tJ,kBAAA/tJ,KAAAjjD,SAUA8tM,QAAAvL,QAAA,WACA,GAAAt/I,MACAs/I,QAAA5rL,EAAA6rL,SAAAx5L,KAAAtH,KAEA,IAAA,QAAAsH,KAAAtH,MAAA,OAAAsH,KAAAtH,KAQA,MAJA6gM,WACAt/I,KAAAs/I,QAAAv5L,OAGAi6C,MAeA6qJ,QAAAoD,WAAA,SAAAz8H,KAAAC,IACA,GAAAzxB,MAAAj6C,KAAAu5L,SACA,IAAAt/I,KAIA,MAAAtsC,GAAAu6L,WAAAjuJ,KAAAwxB,KAAAC;ApQp4HA,CoQu5HA,IAAAuN,IAAAtrE,EAAAgoL,iBACAztK,OAAA,SAAAlnB,GACA,MAAAA,IAEAwyB,IAAA,SAAAxyB,GACA,MAAAwiE,KAAAxiE,EAAA,MAEAyX,IAAA,SAAAzX,GACA,MAAAwiE,KAAAxiE,EAAA,MAEAmnM,KAAA,SAAAnnM,GACA,GAAAE,GAAA,IAAAF,EAAA,KACA0M,EAAA8hF,KAAAujC,KAAA,MAAA7xH,EAAAA,GACA0C,EAAA8J,EAAAxM,EACAwP,EAAA8yD,IAAAp6B,IAAAxlC,GAAA,EAAA,IAAA,EAAAA,EAAA,GAAA,GACAC,GAAA6J,EAAAxM,EACAyP,EAAA6yD,IAAAp6B,IAAAvlC,GAAA,EAAA,IAAA,EAAAA,EAAA,GAAA,GACAL,EAAAkN,EAAAC,EAAA,EACA,OAAA,IAAA,EAAAnN,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAEA4kM,OAAA,SAAApnM,GACA,GAAAjM,GAAA,OACA,OAAAiM,GAAAA,IAAAjM,EAAA,GAAAiM,EAAAjM,IAEAszM,QAAA,SAAArnM,GACAA,GAAA,CACA,IAAAjM,GAAA,OACA,OAAAiM,GAAAA,IAAAjM,EAAA,GAAAiM,EAAAjM,GAAA,GAEAuzM,QAAA,SAAAtnM,GACA,MAAAA,MAAAA,EACAA,EAEAwiE,IAAA,EAAA,IAAAxiE,GAAAwuF,KAAAyjC,KAAAjyH,EAAA,OAAA,EAAAqnB,IAAA,IAAA,GAEAgrG,OAAA,SAAAryH,GACA,GAEArE,GAFA5H,EAAA,OACAH,EAAA,IAkBA,OAhBA,GAAAA,EAAAoM,EACArE,EAAA5H,EAAAiM,EAAAA,EAEA,EAAApM,EAAAoM,GACAA,GAAA,IAAApM,EACA+H,EAAA5H,EAAAiM,EAAAA,EAAA,KAEA,IAAApM,EAAAoM,GACAA,GAAA,KAAApM,EACA+H,EAAA5H,EAAAiM,EAAAA,EAAA,QAEAA,GAAA,MAAApM,EACA+H,EAAA5H,EAAAiM,EAAAA,EAAA,SAIArE,GAGAs8E,IAAAsvH,OAAAtvH,GAAA,WAAAA,GAAA;ApQh9HA,AoQi9HAA,GAAAuvH,QAAAvvH,GAAA,YAAAA,GAAA,KACAA,GAAAwvH,UAAAxvH,GAAA,eAAAA,GAAA,MACAA,GAAA,WAAAA,GAAAmvH,OACAnvH,GAAA,YAAAA,GAAAovH,OAEA,IAAA7T,sBACAwB,iBAAAxvL,OAAA06H,uBACA16H,OAAAkiM,6BACAliM,OAAAmiM,0BACAniM,OAAAoiM,wBACApiM,OAAAqiM,yBACA,SAAAhrK,UACA1/B,WAAA0/B,SAAA,KAEAk4J,UAAA,WAGA,IAFA,GAAA+S,MAAA,GAAA5gM,MACAvL,EAAA,EACAA,EAAA63L,kBAAAx9L,OAAA2F,IAAA,CACA,GAAAvH,GAAAo/L,kBAAA73L,EACA,KAAAvH,EAAA4pJ,GAAAy/B,UAAArpL,EAAA2zM,OAAA,CAGA,GASA1qM,KAEAgtC,IAXAmlB,KAAAs4I,IAAA1zM,EAAA8K,MACAmrE,GAAAj2E,EAAAi2E,GACAzrE,OAAAxK,EAAAwK,OACA6rE,KAAAr2E,EAAAq2E,KACAK,KAAA12E,EAAA02E,KACAJ,GAAAt2E,EAAAs2E,GAEA9/B,MADAx2C,EAAAoO,EACApO,EAAA4pJ,IACAvwI,OAEArM,OAUA,IARAhN,EAAAq/L,YACAjkI,MAAAp7D,EAAAq/L,WAAAr/L,EAAAiL,KAAA0L,IAAA3W,EAAAkmB,OAAAlmB,EAAA8+H,QAAA9+H,EAAAkmB,MAAA+vD;ApQn/HA,AoQo/HAj2E,EAAAqvB,OAAArvB,EAAAq/L,iBACAr/L,GAAAq/L,WACAr/L,EAAA0K,MAAA00L,kBAAA72L,OAAAhB,IAAA,IAEAvH,EAAAqvB,QAAArvB,EAAAkmB,MAAAlmB,EAAA8+H,QAAA9+H,EAAAkmB,OAAAk1C,KAAA6a,KAAAj2E,EAAAiL,KAAA0L,MAEA,EAAAykD,MAGA,GAAA6a,GAAA7a,KAAA,CACA,GAAAnpC,KAAAznB,OAAA4wD,KAAA6a,GACA,KAAA,GAAAxmE,QAAA4mE,MAAA,GAAAA,KAAA5iE,KAAAhE,MAAA,CACA,OAAA6vL,mBAAA7vL,OACA,IAAA4pL,IACApwL,KAAAotE,KAAA5mE,MAAAwiB,IAAAgkD,GAAAS,KAAAjnE,KACA,MACA,KAAA,SACAxG,IAAA,QACA2qM,QAAA5+H,MAAAqB,KAAA5mE,MAAAtB,EAAA8jB,IAAAgkD,GAAAS,KAAAjnE,MAAAtB,IACAylM,QAAA5+H,MAAAqB,KAAA5mE,MAAApN,EAAA4vB,IAAAgkD,GAAAS,KAAAjnE,MAAApN,IACAuxM,QAAA5+H,MAAAqB,KAAA5mE,MAAApQ,EAAA4yB,IAAAgkD,GAAAS,KAAAjnE,MAAApQ,KACAsR,KAAA,KAAA,GACA,MACA,KAAA,OACA1H,MACA,KAAA,GAAAhC,GAAA,EAAAwxL,GAAApiH,KAAA5mE,MAAA7N,OAAA62L,GAAAxxL,EAAAA,IAAA,CACAgC,IAAAhC,IAAAovE,KAAA5mE,MAAAxI,GAAA,GACA,KAAA,GAAAI,GAAA,EAAAsxL,GAAAtiH,KAAA5mE,MAAAxI,GAAArF,OAAA+2L,GAAAtxL,EAAAA,IACA4B,IAAAhC,GAAAI,IAAAgvE,KAAA5mE,MAAAxI,GAAAI,GAAA4qB,IAAAgkD,GAAAS,KAAAjnE,MAAAxI,GAAAI;ApQ/gIA,AoQihIA4B,IAAAhC,GAAAgC,IAAAhC,GAAA0J,KAAA6H,GAEAvP,IAAAA,IAAA0H,KAAA6H,EACA,MACA,KAAA,YACA,GAAAk+D,KAAAjnE,MAAA+zH,KAEA,IADAv6H,OACAhC,EAAA,EAAAwxL,GAAApiH,KAAA5mE,MAAA7N,OAAA62L,GAAAxxL,EAAAA,IAEA,IADAgC,IAAAhC,IAAAovE,KAAA5mE,MAAAxI,GAAA,IACAI,EAAA,EAAAsxL,GAAAtiH,KAAA5mE,MAAAxI,GAAArF,OAAA+2L,GAAAtxL,EAAAA,IACA4B,IAAAhC,GAAAI,GAAAgvE,KAAA5mE,MAAAxI,GAAAI,GAAA4qB,IAAAgkD,GAAAS,KAAAjnE,MAAAxI,GAAAI,OAGA,CACA,GAAA8I,KAAA,SAAAlJ,GACA,OAAAovE,KAAA5mE,MAAAxI,GAAAgrB,IAAAgkD,GAAAS,KAAAjnE,MAAAxI,GAGAgC,OAAA,IAAAkH,IAAA,GAAAA,IAAA,GAAAA,IAAA,GAAAA,IAAA,GAAAA,IAAA,GAAAA,IAAA,KAEA,KACA,KAAA,MACA,GAAA,aAAAV,KAGA,IAFAxG,OACAhC,EAAA,EACAA,KACAgC,IAAAhC,IAAAovE,KAAA5mE,MAAAxI,GAAAgrB,IAAAgkD,GAAAS,KAAAjnE,MAAAxI,EAGA,MACA,SACA,GAAAo5L,UAAAj3L,QAAAitE,KAAA5mE,MAGA,KAFAxG,OACAhC,EAAAuvC,KAAA+oJ,MAAAC,iBAAA/vL,MAAA7N,OACAqF,KACAgC,IAAAhC,IAAAo5L,MAAAp5L,GAAAgrB,IAAAgkD,GAAAS,KAAAjnE,MAAAxI,GAIAoS,IAAA5J,MAAAxG,IAEAutC,KAAA/mC,KAAA4J,KACA,SAAAzJ,GAAA4mC,KAAAvrC,MACAlC,WAAA;ApQ3jIA,AoQ4jIAuvL,IAAA,sBAAA1oL,GAAA4mC,KAAAvrC,SAEAurC,KAAA5mC,GAAA4mC,KAAAx2C,EAAAiL,UACA,CAUA,GATA,SAAAzK,EAAAopJ,GAAAxqJ,GACA2J,WAAA,WACAuvL,IAAA,sBAAA1uC,GAAAh6I,GAAAg6I,GAAAxqJ,GACAk5L,IAAA,uBAAA1uC,GAAAh6I,GAAAg6I,GAAAxqJ,GACAmZ,EAAAoF,GAAAnd,EAAA,aAAAA,EAAAY,KAAAwoJ,OAEA5pJ,EAAAyoC,SAAA+N,KAAAx2C,EAAAiL,MACAurC,KAAA/mC,KAAA6mE,IACA8oH,kBAAA72L,OAAAhB,IAAA,GACAvH,EAAA0gM,OAAA,IAAA1gM,EAAAimB,KAAA,CACA,IAAAgwB,MAAAqgC,IAAAA,GAAA7iE,KAAAwiC,OACAjpC,KAAAipC,KAAAj2C,EAAAi/L,YAAAhpJ,KAEAj2C,GAAA4pJ,GAAAn6I,KAAAzC,MACAgyL,aAAAh/L,EAAAiL,KAAAjL,EAAA4pJ,GAAA5pJ,EAAAiL,KAAA2zL,SAAA,GAAA,KAAA5+L,EAAAi/L,YAAAj/L,EAAA0gM,OAAA,GAEA1gM,EAAAimB,OAAAjmB,EAAA0K,MACAs0L,aAAAh/L,EAAAiL,KAAAjL,EAAA4pJ,GAAA5pJ,EAAAimB,KAAA,KAAAjmB,EAAAi/L,YAAAj/L,EAAA0gM,UAIAnoL,EAAAusL,KAAAtuJ,MAAAA,KAAA+oJ,OAAA/oJ,KAAA+oJ,MAAAp1K,SACAi1K,kBAAAx9L,QAAAg/L,iBAAAD,YAEAiT,QAAA,SAAAj1E;ApQvlIA,AoQwlIA,MAAAA,OAAA,IAAA,IAAA,EAAAA,MAAA,EAAAA,MAuBA+wE,SAAAmE,YAAA,SAAAjqD,GAAA3+I,KAAAm5C,OAAA6xB,GAAAzrE,OAAAi+B,UACA,GAAA60D,SAAA1yF,IACA,IAAA0yF,QAAA+rF,QAEA,MADA5gJ,WAAAA,SAAArnC,KAAAk8F,SACAA,OAEA,IAAAl+F,GAAAglD,iBAAAtyB,WAAAsyB,OAAA7rC,EAAAooL,UAAAv8I,OAAA6xB,GAAAzrE,OAAAi+B,SAEAu2J,cAAA5/L,EAAAk+F,QAAAl+F,EAAAw/L,SAAA,GAAA,KAAAthG,QAAA7tF,OACA,KAAA,GAAAxI,GAAA,EAAAwxL,GAAA2G,kBAAAx9L,OAAA62L,GAAAxxL,EAAAA,IACA,GAAAm4L,kBAAAn4L,GAAAgE,MAAAA,MAAAm0L,kBAAAn4L,GAAA2iJ,IAAAA,GAAA,CACAw1C,kBAAA3G,GAAA,GAAA3tL,MAAAs0L,kBAAAn4L,GAAA6D,KACA,OAGA,MAAAwyF,UA2DAoyG,QAAAoE,YAAA,SAAAtzM,GAEA,MADAA,GAAA83L,IAAA53K,GAAA,sBAAA9V,KAAAgF,GAAApP,GAAA83L,IAAAz3K,OAAA,sBAAAjW,KAAAgF,IACAhF,MAiCAknB,UAAA/kB,UAAA8K,MAAA,SAAAA;ApQ3tIA,AoQ4tIA,GAAAzY,GAAA,GAAA0yB,WAAAlnB,KAAAK,KAAAL,KAAAqrE,GAGA,OAFA72E,GAAAkiC,MAAA12B,KAAA02B,MACAliC,EAAAyqL,KAAAhyK,OAAA,EACAzY,GAcA0yB,UAAA/kB,UAAA2zL,OAAA,SAAAp/J,OACA,GAAAliC,GAAA,GAAA0yB,WAAAlnB,KAAAK,KAAAL,KAAAqrE,GAGA,OAFA72E,GAAAyqL,IAAAj/K,KAAAi/K,IACAzqL,EAAAkiC,MAAA84D,KAAAh+D,MAAAg/J,KAAA95J,MAAA,KAAA,EACAliC,GAgOAmZ,EAAAooL,UAAA,SAAAv8I,OAAA6xB,GAAAzrE,OAAAi+B,UACA,GAAA2b,iBAAAtyB,WACA,MAAAsyB,SAEA7rC,EAAAoF,GAAAnT,OAAA,cAAAA,UACAi+B,SAAAA,UAAAj+B,QAAA,KACAA,OAAA,MAEA45C,OAAAv2C,OAAAu2C,QACA6xB,IAAAA,IAAA,CACA,IACAvnD,MACAjf,KAFAjQ,IAGA,KAAAiQ,OAAA20C,QAAAA,OAAA3wC,KAAAhE,OAAAqvL,QAAArvL,OAAAA,MAAAqvL,QAAArvL,MAAA,KAAAA,OACAif,MAAA,EACAlvB,EAAAiQ,MAAA20C,OAAA30C,MAEA,OAAAif,OAGAlkB,SAAAhL,EAAAgL,OAAAA,QACAi+B,WAAAjpC,EAAAipC,SAAAA,UACA,GAAA3W,YAAA04D,IAAAhrF,GAAAy2E,KAJA,GAAAnkD,WAAAsyB,OAAA6xB;ApQl+IA,EoQ0/IAy5H,QAAAv9K,QAAA,SAAAiyB,OAAA6xB,GAAAzrE,OAAAi+B,UACA,GAAA60D,SAAA1yF,IACA,IAAA0yF,QAAA+rF,QAEA,MADA5gJ,WAAAA,SAAArnC,KAAAk8F,SACAA,OAEA,IAAAryF,MAAAm5C,iBAAAtyB,WAAAsyB,OAAA7rC,EAAAooL,UAAAv8I,OAAA6xB,GAAAzrE,OAAAi+B,SAEA,OADAu2J,cAAA/zL,KAAAqyF,QAAAryF,KAAA2zL,SAAA,GAAA,KAAAthG,QAAA7tF,QACA6tF,SAkBAoyG,QAAA56H,QAAA,SAAA7pE,KAAAxH,OAIA,MAHAwH,OAAA,MAAAxH,OACAmH,KAAAykB,OAAApkB,KAAAowL,KAAA53L,MAAAwH,KAAAgrE,IAAAhrE,KAAAgrE,IAEArrE,MAuBA8kM,QAAArgL,OAAA,SAAApkB,KAAAxH,OACA,GAEAwzC,KACAj3C,EAHA6vD,OACA5oD,EAAA,CAGA,IAAA,MAAAxD,MAEA,MADAu7L,cAAA/zL,KAAAL,KAAA,GAAAywL,KAAA53L,MAAA,IACAmH,IAGA,KADAqsC,IAAAmoJ,kBAAAx9L,OACAq1C,IAAAhwC,EAAAA,IAEA,GADAjH,EAAAo/L,kBAAAn4L,GACAjH,EAAA4pJ,GAAAh6I,IAAAhF,KAAAgF,MAAA3E,MAAAjL,EAAAiL,MAAAA,MAAA,CACA,GAAAA,KACA,MAAAjL,GAAAqvB;ApQ5jJA,AoQ8jJAwgC,IAAAplD,MACAQ,KAAAjL,EAAAiL,KACAokB,OAAArvB,EAAAqvB,SAIA,MAAApkB,MACA,EAEA4kD,KAeA6/I,QAAA3wI,MAAA,SAAA9zD,MACA,IAAA,GAAAhE,GAAA,EAAAA,EAAAm4L,kBAAAx9L,OAAAqF,IAAAm4L,kBAAAn4L,GAAA2iJ,GAAAh6I,IAAAhF,KAAAgF,IAAA3E,MAAAm0L,kBAAAn4L,GAAAgE,MAAAA,MACAqtL,IAAA,sBAAA1tL,KAAAgF,GAAAhF,KAAAw0L,kBAAAn4L,GAAAgE,SAAA,IACAm0L,kBAAAn4L,GAAA0sM,QAAA,EAGA,OAAA/oM,OAcA8kM,QAAA1wI,OAAA,SAAA/zD,MACA,IAAA,GAAAhE,GAAA,EAAAA,EAAAm4L,kBAAAx9L,OAAAqF,IAAA,GAAAm4L,kBAAAn4L,GAAA2iJ,GAAAh6I,IAAAhF,KAAAgF,MAAA3E,MAAAm0L,kBAAAn4L,GAAAgE,MAAAA,MAAA,CACA,GAAAjL,GAAAo/L,kBAAAn4L,EACAqxL,KAAA,uBAAA1tL,KAAAgF,GAAAhF,KAAA5K,EAAAiL,SAAA,UACAjL,GAAA2zM,OACA/oM,KAAAykB,OAAArvB,EAAAiL,KAAAjL,EAAAqvB,SAGA,MAAAzkB,OAcA8kM,QAAAhlM,KAAA,SAAAO,MACA,IAAA,GAAAhE,GAAA,EAAAA,EAAAm4L,kBAAAx9L,OAAAqF,IAAAm4L,kBAAAn4L,GAAA2iJ,GAAAh6I,IAAAhF,KAAAgF,IAAA3E,MAAAm0L,kBAAAn4L,GAAAgE,MAAAA,MACAqtL,IAAA,qBAAA1tL,KAAAgF,GAAAhF,KAAAw0L,kBAAAn4L,GAAAgE,SAAA,GACAm0L,kBAAA72L,OAAAtB,IAAA;ApQloJA,AoQqoJA,MAAA2D,OAOA0tL,IAAA53K,GAAA,iBAAAmgL,eACAvI,IAAA53K,GAAA,gBAAAmgL,eACA6O,QAAA5hM,SAAA,WACA,MAAA,mBAIA,IAAA2iM,KAAA,SAAAx5G,OAIA,GAHArsF,KAAAqsF,SACArsF,KAAAhJ,OAAA,EACAgJ,KAAAtH,KAAA,MACA2zF,MACA,IAAA,GAAAhwF,GAAA,EAAAwxL,GAAAxhG,MAAAr1F,OAAA62L,GAAAxxL,EAAAA,KACAgwF,MAAAhwF,IAAAgwF,MAAAhwF,GAAAoI,aAAAqgM,QAAArgM,aAAA4nF,MAAAhwF,GAAAoI,aAAAohM,MACA7lM,KAAAA,KAAAqsF,MAAAr1F,QAAAgJ,KAAAqsF,MAAArsF,KAAAqsF,MAAAr1F,QAAAq1F,MAAAhwF,GACA2D,KAAAhJ,WAKAmyM,SAAAtD,IAAA1jM,SAQAgnM,UAAAtpM,KAAA,WAGA,IAAA,GAFAyqC,MACA+B,IACAhwC,EAAA,EAAAwxL,GAAA/nL,UAAA9O,OAAA62L,GAAAxxL,EAAAA,IACAiuC,KAAAxkC,UAAAzJ,IACAiuC,MAAAA,KAAA7lC,aAAAqgM,QAAArgM,aAAA6lC,KAAA7lC,aAAAohM,MACAx5J,IAAArsC,KAAAqsF,MAAAr1F,OACAgJ,KAAAqsC,KAAArsC,KAAAqsF,MAAAhgD,KAAA/B,KACAtqC,KAAAhJ;ApQ/qJA,AoQkrJA,MAAAgJ,OASAmpM,SAAAlyM,IAAA,WAEA,MADA+I,MAAAhJ,cAAAgJ,MAAAA,KAAAhJ,UACAgJ,KAAAqsF,MAAAp1F,OAgBAkyM,SAAAr0K,QAAA,SAAA+I,SAAAipK,SACA,IAAA,GAAAzqM,GAAA,EAAAwxL,GAAA7tL,KAAAqsF,MAAAr1F,OAAA62L,GAAAxxL,EAAAA,IACA,GAAAwhC,SAAArnC,KAAAswM,QAAA9mM,KAAAqsF,MAAAhwF,GAAAA,MAAA,EACA,MAAA2D,KAGA,OAAAA,MAEA,KAAA,GAAAmuC,UAAA22J,SAAAA,QAAAj8L,KAAAslC,UACAg7J,SAAAh7J,QAAA,SAAA8vJ,YACA,MAAA,YACA,GAAAlgK,KAAAj4B,SACA,OAAA9F,MAAA80B,QAAA,SAAAkqH,IACAA,GAAAi/C,YAAAp4L,OAAAm5I,GAAAjhH,SAGAoQ,QAk0FA,OAh0FAg7J,UAAAtkM,KAAA,SAAAgI,KAAAhU,OACA,GAAAgU,MAAAc,EAAAoF,GAAAlG,KAAA+xI,QAAAjxI,EAAAoF,GAAAlG,KAAA,GAAA,UACA,IAAA,GAAApQ,GAAA,EAAAsxL,GAAAlhL,KAAA7V,OAAA+2L,GAAAtxL,EAAAA,IACAuD,KAAAqsF,MAAA5vF,GAAAoI,KAAAgI,KAAApQ,QAGA,KAAA,GAAAJ,GAAA,EAAAwxL,GAAA7tL,KAAAqsF,MAAAr1F,OAAA62L,GAAAxxL,EAAAA,IACA2D,KAAAqsF,MAAAhwF,GAAAwI,KAAAgI,KAAAhU;ApQruJA,AoQwuJA,MAAAmH,OAQAmpM,SAAAr0I,MAAA,WACA,KAAA90D,KAAAhJ,QACAgJ,KAAA/I,OAgBAkyM,SAAAxrM,OAAA,SAAAkZ,MAAA20B,MAAA49J,WACAvyL,MAAA,EAAAA,MAAA25K,KAAAxwL,KAAAhJ,OAAA6f,MAAA,GAAAA,MACA20B,MAAAglJ,KAAA,EAAAC,KAAAzwL,KAAAhJ,OAAA6f,MAAA20B,OACA,IAGAnvC,GAHAm7B,QACA6xK,SACAhkK,OAEA,KAAAhpC,EAAA,EAAAA,EAAAyJ,UAAA9O,OAAAqF,IACAgpC,KAAAxlC,KAAAiG,UAAAzJ,GAEA,KAAAA,EAAA,EAAAmvC,MAAAnvC,EAAAA,IACAgtM,MAAAxpM,KAAAG,KAAA6W,MAAAxa,GAEA,MAAAA,EAAA2D,KAAAhJ,OAAA6f,MAAAxa,IACAm7B,KAAA33B,KAAAG,KAAA6W,MAAAxa,GAEA,IAAAitM,QAAAjkK,KAAAruC,MACA,KAAAqF,EAAA,EAAAA,EAAAitM,OAAA9xK,KAAAxgC,OAAAqF,IACA2D,KAAAqsF,MAAAx1E,MAAAxa,GAAA2D,KAAA6W,MAAAxa,GAAAitM,OAAAjtM,EAAAgpC,KAAAhpC,GAAAm7B,KAAAn7B,EAAAitM,OAGA,KADAjtM,EAAA2D,KAAAqsF,MAAAr1F,OAAAgJ,KAAAhJ,QAAAw0C,MAAA89J,OACAtpM,KAAA3D,UACA2D,MAAA3D,IAEA,OAAA,IAAAwpM,KAAAwD,QAaAF,SAAA3nC,QAAA,SAAAxiB,IACA,IAAA,GAAA3iJ,GAAA,EAAAwxL,GAAA7tL,KAAAhJ,OAAA62L,GAAAxxL,EAAAA,IAAA,GAAA2D,KAAA3D,IAAA2iJ,GAEA,MADAh/I,MAAArC,OAAAtB,EAAA;ApQxyJA,CoQyyJA,GAGA8sM,SAAA5hL,QAAA,SAAAiyB,OAAA6xB,GAAAzrE,OAAAi+B,WACAlwB,EAAAoF,GAAAnT,OAAA,cAAAA,UAAAi+B,SAAAj+B,QAAA,KACA,IAEA0qC,MAEAi/J,UAJAl9J,IAAArsC,KAAAqsF,MAAAr1F,OACAqF,EAAAgwC,IAEA59B,IAAAzO,IAEA,KAAAqsC,IACA,MAAArsC,KAEA69B,YAAA0rK,UAAA,cACAl9J,KAAAxO,SAAArnC,KAAAiY,OAEA7O,OAAA+N,EAAAoF,GAAAnT,OAAAuqB,QAAAvqB,OAAA2pM,SACA,IAAAlpM,MAAAsN,EAAAooL,UAAAv8I,OAAA6xB,GAAAzrE,OAAA2pM,UAEA,KADAj/J,KAAAtqC,KAAAqsF,QAAAhwF,GAAAkrB,QAAAlnB,MACAhE,KACA2D,KAAAqsF,MAAAhwF,KAAA2D,KAAAqsF,MAAAhwF,GAAAoiL,SAAAz+K,KAAAqsF,MAAAhwF,GAAA4sM,YAAA3+J,KAAAjqC,KAAAA,MACAL,KAAAqsF,MAAAhwF,KAAA2D,KAAAqsF,MAAAhwF,GAAAoiL,SAAApyI,KAEA,OAAArsC,OAEAmpM,SAAAnqL,YAAA,SAAAggI,IAEA,IADA,GAAA3iJ,GAAA2D,KAAAqsF,MAAAr1F,OACAqF,KACA2D,KAAAqsF,MAAAhwF,GAAA2iB,YAAAggI,GAEA,OAAAh/I,OAEAmpM,SAAA7T,QAAA;ApQx0JA,AoQ60JA,IAAA,GAJA1xL,MACAC,KACA6rL,MACAC,MACAtzL,EAAA2D,KAAAqsF,MAAAr1F,OAAAqF,KAAA,IAAA2D,KAAAqsF,MAAAhwF,GAAAoiL,QAAA,CACA,GAAA1jC,KAAA/6I,KAAAqsF,MAAAhwF,GAAAi5L,SACA1xL,GAAA/D,KAAAk7I,IAAAn3I,GACAC,EAAAhE,KAAAk7I,IAAAl3I,GACA6rL,GAAA7vL,KAAAk7I,IAAAn3I,EAAAm3I,IAAAv/I,OACAm0L,GAAA9vL,KAAAk7I,IAAAl3I,EAAAk3I,IAAAt/I,QAMA,MAJAmI,GAAA6sL,KAAA5qL,OAAA,EAAAjC,GACAC,EAAA4sL,KAAA5qL,OAAA,EAAAhC,GACA6rL,GAAAc,KAAA3qL,OAAA,EAAA6pL,IACAC,GAAAa,KAAA3qL,OAAA,EAAA8pL,KAEA/rL,EAAAA,EACAC,EAAAA,EACA6rL,GAAAA,GACAC,GAAAA,GACAn0L,MAAAk0L,GAAA9rL,EACAnI,OAAAk0L,GAAA9rL,IAGAslM,SAAApiM,MAAA,SAAAhS,GACAA,EAAAiL,KAAA20L,MAAAlmL,KACA,KAAA,GAAApS,GAAA,EAAAwxL,GAAA7tL,KAAAqsF,MAAAr1F,OAAA62L,GAAAxxL,EAAAA,IACAtH,EAAA8K,KAAAG,KAAAqsF,MAAAhwF,GAAA0K,QAEA,OAAAhS,IAEAo0M,SAAAjmM,SAAA,WACA,MAAA,iBAGAimM,SAAA9B,KAAA,SAAAmC,YACA,GAAAv0J,KAAAj1C,KAAA20L,MAAAlmL,KASA,OARAzO,MAAA80B,QAAA,SAAAiwK,MAAAluL,OACA,GAAApf,GAAAstM,MAAAsC,KAAAmC,WACA,OAAA/xM,GACAA,EAAAq9B,QAAA,SAAA20K,OAAAC;ApQh3JA,AoQi3JAz0J,IAAAp1C,KAAA4pM,YAIAx0J,KAgBAk0J,SAAAnC,cAAA,SAAApjM,EAAAC,GACA,GAAAmjM,gBAAA,CAOA,OANAhnM,MAAA80B,QAAA,SAAAkqH,IACA,MAAAA,IAAAgoD,cAAApjM,EAAAC,IACAmjM,eAAA,GACA,GAFA,SAKAA,eAkBAr5L,EAAAg8L,aAAA,SAAA1pC,MACA,IAAAA,KAAA2pC,KACA,MAAA3pC,KAEAjgK,MAAA6pM,MAAA7pM,KAAA6pM,SACA,IAAAC,WACAnmM,EAAAs8J,KAAAt8J,EACAimM,QACAG,WAEAC,OAAA/pC,KAAA2pC,KAAA,cACA,KAAA,GAAA57L,QAAAiyJ,MAAA2pC,KAAA3pC,KAAA2pC,KAAA/gM,KAAAmF,QACA87L,SAAAF,KAAA57L,MAAAiyJ,KAAA2pC,KAAA57L,MAOA,IALAhO,KAAA6pM,MAAAG,QACAhqM,KAAA6pM,MAAAG,QAAAnqM,KAAAiqM,UAEA9pM,KAAA6pM,MAAAG,SAAAF,WAEA7pC,KAAAi6B,IAAA,CACA4P,SAAAF,KAAA,gBAAA1S,MAAAj3B,KAAA2pC,KAAA,gBAAA,GACA,KAAA,GAAAK,SAAAhqC,MAAA8pC,OAAA,GAAA9pC,KAAA8pC,OAAAlhM,KAAAohM,OAAA,CACA,GAAAhwJ,MAAAgmH,KAAA8pC,OAAAE;ApQp7JA,AoQ47JA,GAPAH,SAAAC,OAAAE,QACAtmM,EAAAs2C,KAAAt2C,EACAjH,KACAxH,EAAA+kD,KAAA/kD,GAAA,IAAA+kD,KAAA/kD,EAAAG,QAAA,aAAA,SAAA0qE,SACA,OAAApjE,EAAA,IAAA3H,EAAA,IAAA4O,EAAA,IAAAJ,EAAA,IAAAD,EAAA,IAAAG,EAAA,KAAAq8D,UAAA,MACA,KAEA9lB,KAAAv9C,EACA,IAAA,GAAAA,KAAAu9C,MAAAv9C,EAAAu9C,KAAApxC,KAAAnM,KACAotM,SAAAC,OAAAE,OAAAvtM,EAAAA,GAAAu9C,KAAAv9C,EAAAA,KAKA,MAAAujK,OAkBAi2B,WAAAgU,QAAA,SAAAF,OAAAG,OAAAnwM,MAAAowM,SAIA,GAHAA,QAAAA,SAAA,SACApwM,MAAAA,OAAA,SACAmwM,QAAAA,SAAAE,OAAA,IAAAC,KAAA,IAAAC,QAAA,IAAAC,OAAA,KAAAL,SAAA,IACAx8L,EAAAk8L,MAAA,CAGA,GAAA5pC,MAAAtyJ,EAAAk8L,MAAAG,OACA,KAAA/pC,KAAA,CACA,GAAApzJ,MAAA,GAAA6E,QAAA,UAAAs4L,OAAA30M,QAAA,oBAAAmP,GAAA,UAAA,IACA,KAAA,GAAAimM,YAAA98L,GAAAk8L,MAAA,GAAAl8L,EAAAk8L,MAAAhhM,KAAA4hM,WACA59L,KAAAnX,KAAA+0M,UAAA,CACAxqC,KAAAtyJ,EAAAk8L,MAAAY;ApQh+JA,AoQi+JA,OAIA,GAAAC,QACA,IAAAzqC,KACA,IAAA,GAAA5jK,GAAA,EAAAwxL,GAAA5tB,KAAAjpK,OAAA62L,GAAAxxL,IACAquM,QAAAzqC,KAAA5jK,GACAquM,QAAAd,KAAA,gBAAAO,QAAAO,QAAAd,KAAA,eAAA5vM,OAAA0wM,QAAAd,KAAA,eAAAc,QAAAd,KAAA,iBAAAQ,SAFA/tM,KAOA,MAAAquM,WAuBAxU,WAAAjgB,MAAA,SAAAryK,EAAAC,EAAAsmB,OAAA81I,KAAA56J,KAAA+uH,OAAAu2E,eAAAC,cACAx2E,OAAAA,QAAA,SACAu2E,eAAAna,KAAAC,KAAAka,gBAAA,EAAA,GAAA,IACAC,aAAApa,KAAAC,KAAAma,cAAA,EAAA,GAAA,EACA,IAIAz2E,OAJA02E,QAAArV,IAAArrK,QAAAr1B,OAAA0P,GACApH,MAAA,EACA0tM,SAAA,EACA7wJ,KAAAz1C,CAGA,IADAmJ,EAAAoF,GAAAktJ,KAAA,YAAAA,KAAAjgK,KAAAkqM,QAAAjqC,OACAA,KAAA,CACA9rC,OAAA9uH,MAAA,IAAA46J,KAAA2pC,KAAA,eAMA,KAAA,GALA3zM,IAAAgqK,KAAA2pC,KAAAnQ,KAAA3kM,OAAA0lD,WACAzuC,KAAA9V,GAAA,GACAoqB,WAAApqB,GAAA,GAAAA,GAAA,GACA80M,OAAA,EACAtvM,QAAAxF,GAAA,IAAA,YAAAm+H,OAAA/zG,aAAA4/I,KAAA2pC,KAAAoB,QAAA3qL,WAAA,GACAhkB,EAAA,EAAAwxL,GAAAgd,QAAA7zM,OAAA62L,GAAAxxL,EAAAA,IAAA;ApQrhKA,AoQshKA,GAAA,MAAAwuM,QAAAxuM,GACAe,MAAA,EACA6tM,KAAA,EACAH,SAAA,EACAC,QAAA1qL,WAAAuqL,iBACA,CACA,GAAAtvL,MAAAwvL,UAAA7qC,KAAA8pC,OAAAc,QAAAxuM,EAAA,QACA4uM,KAAAhrC,KAAA8pC,OAAAc,QAAAxuM,GACAe,QAAA0tM,UAAAxvL,KAAA3X,GAAAs8J,KAAAt8J,IAAA2X,KAAA5e,GAAA4e,KAAA5e,EAAAmuM,QAAAxuM,KAAA,GAAA4jK,KAAAt8J,EAAAgnM,eAAA,EACAG,SAAA,EAEAG,MAAAA,KAAA/1M,IACA+kD,MAAAtsC,EAAAy0L,cAAA6I,KAAA/1M,GAAA,IAAAkI,MAAA+2H,MAAA42E,OAAA52E,MAAA,IAAAA,MAAAA,MAAApoH,IAAAtQ,OAAA,KAAAmI,EAAAmI,KAAAooH,OAAAtwH,EAAApI,QAAA04H,UAIA,MAAAn0H,MAAAi6C,KAAAA,MAAAp1C,MACA2yL,KAAA,OACAU,OAAA,UAgCAhC,WAAAp+L,IAAA,SAAAgsB,MACA,GAAAnW,EAAAoF,GAAA+Q,KAAA,SAKA,IAJA,GAGArnB,GAHAmjG,IAAA5/F,KAAAyO,MACApS,EAAA,EACAwxL,GAAA/pK,KAAA9sB,OAEA62L,GAAAxxL,EAAAA,IACAI,EAAAqnB,KAAAznB,OACA6lB,SAAArZ,KAAApM,EAAA/D,OAAAknG,IAAA//F,KAAAG,KAAAvD,EAAA/D,QAAAmM,KAAApI,GAGA,OAAAmjG,MAsBAjyF,EAAA6tB,OAAA,SAAA8U,MAAAkJ;ApQxmKA,AoQymKA,GAAAnU,MAAA13B,EAAAoF,GAAAymC,OAAAolG,QAAA,GAAApgJ,QAAAg7C,QAAA1zC,SAIA,OAHAwqC,QAAA3iC,EAAAoF,GAAAu9B,MAAAnmB,SAAAkb,KAAAruC,OAAA,IAAAs5C,MAAAA,MAAAj7C,QAAAghM,SAAA,SAAA5jJ,IAAAp2C,GACA,MAAA,OAAAgpC,OAAAhpC,GAAAmI,EAAA6gC,KAAAhpC,MAEAi0C,OAAA9rC,GAyBAmJ,EAAAu9L,SAAA,WACA,GAAAC,YAAA,gBACAC,iBAAA,2DACAC,SAAA,SAAA7xK,IAAA6R,IAAA5E,KACA,GAAAm5D,KAAAn5D,GAWA,OAVA4E,KAAAh2C,QAAA+1M,iBAAA,SAAA5xK,IAAA3sB,KAAAy+L,MAAAC,WAAAC,QACA3+L,KAAAA,MAAA0+L,WACA3rG,MACA/yF,OAAA+yF,OACAA,IAAAA,IAAA/yF,OAEA,kBAAA+yF,MAAA4rG,SAAA5rG,IAAAA,UAGAA,KAAA,MAAAA,KAAAA,KAAAn5D,IAAAjN,IAAAomE,KAAA,GAGA,OAAA,UAAAntD,IAAAhM,KACA,MAAArjC,QAAAqvC,KAAAp9C,QAAA81M,WAAA,SAAA3xK,IAAA6R;ApQvpKA,AoQwpKA,MAAAggK,UAAA7xK,IAAA6R,IAAA5E,WAkBA94B,EAAA89L,MAAA,WAEA,MADAnV,YAAAC,IAAA9+L,EAAAu4I,IAAAwmD,QAAAF,WAAAvjL,SAAAyjL,SACA7oL,GAsBAA,EAAAof,GAAAo8K,SAEA,SAAArrD,IAAAvqF,OAAA39D,GAQA,QAAA81M,YACA,KAAAh2M,KAAAooJ,IAAAx5I,YAAAnG,WAAAutM,SAAA,GAAA/9L,EAAA+/K,IAAA,mBARA,MAAA5vC,IAAAx5I,YAAAw5I,IAAA35I,mBACA25I,IAAA35I,iBAAAovD,OAAA39D,EAAA,WACAkoJ,IAAA15I,oBAAAmvD,OAAA39D,GAAA,GACAkoJ,IAAAx5I,WAAA,aACA,GACAw5I,IAAAx5I,WAAA,WAKAonM,YACA7vM,SAAA,oBAEA6xL,IAAA53K,GAAA,kBAAA,WACAy9C,QAAA,IAaA,WACA,GAAA5lD,EAAAusL,IAAA,CAGA,GAAArxL,KAAA,iBACA2sL,IAAApyL,OACA8wL,QAAAv5L,WACAu8L,MAAAjnL,SACAu/E,KAAAj1F,KACAi2L,KAAAhhG,KAAAh1F,IACA4uC,IAAAomD,KAAApmD,IACAo6B,IAAAgsB,KAAAhsB,IACAhpB,UAAA,QACAkzI,IAAA//K,EAAA+/K,IACAlpL,EAAA,GACAoJ,EAAA,IACA+9L,MAAA,+BACAC;ApQhvKA,AoQivKA3lJ,MAAA,kBACA4lJ,QAAA,8BACAC,QAAA,4BACArlL,KAAA,iBACAslL,KAAA,mDAEAC,gBACAr+L,GAAAzK,SAAA,WACA,MAAA,uDAAAlD,KAAAof,QAEA,IAAAtc,GAAA,SAAAk8I,GAAAn6I,MACA,GAAAA,KAAA,CACA,gBAAAm6I,MACAA,GAAAl8I,EAAAk8I,IAEA,KAAA,GAAA3zG,OAAAxmC,MAAAA,KAAAgE,KAAAwiC,OACA,UAAAA,IAAAv+B,UAAA,EAAA,GACAkyI,GAAAitD,eAAAN,MAAAtgK,IAAAv+B,UAAA,GAAA0oL,IAAA3wL,KAAAwmC,OAEA2zG,GAAAv1I,aAAA4hC,IAAAmqJ,IAAA3wL,KAAAwmC,YAIA2zG,IAAArxI,EAAAksL,GAAA/7C,IAAAouD,gBAAA,6BAAAltD,IACAA,GAAAhlJ,QAAAglJ,GAAAhlJ,MAAAmyM,wBAAA,gBAEA,OAAAntD,KAEAotD,gBAAA,SAAA15G,QAAAolG;ApQ5wKA,AoQ6wKA,GAAAp/L,MAAA,SACAsM,GAAA0tF,QAAA1tF,GAAA8yL,SACA33L,GAAA,GAAAksM,GAAA,GACAprM,EAAAyxF,QAAAj2D,KACA6vK,IAAA55G,QAAAiiG,MACA5/L,EAAAkM,EAAAjH,MACAglJ,GAAArxI,EAAAksL,GAAA/7C,IAAA/4I,eAAAC,GACA,KAAAg6I,GAAA,CAeA,GAdA84C,SAAAtC,IAAAsC,UAAAziM,QAAAsY,EAAAwrL,iBAAA,SAAA3/J,IAAA+yK,IAAAC,KAEA,GADA9zM,KAAA,SACA6zM,KAAAC,IAAA,CACArsM,GAAA+zL,QAAAqY,KACAF,GAAAnY,QAAAsY,IACA,IAAAp1L,KAAA,GAAAi1L,GAAA,IAAA,CACA7oI,KAAArjE,GAAA,GAAA,GAAAqjE,IAAA6oI,GAAA,GAAA,GAAA,MACAA,GAAA78G,KAAAujC,KAAA,IAAAvvD,IAAArjE,GAAA,GAAA,IAAAiX,IAAA,KACA,IAAAi1L,KACAA,GAAAA,GAAArrF,QAAA,GAAA,KAAA5pG,KAEA,MAAA5S,KAEAszL,SAAAA,SAAAhjM,MAAA,YACA,UAAA4D,KAAA,CACA,GAAAs5I,OAAA8lD,SAAA16L,OAEA,IADA40I,OAAAkiD,QAAAliD,OACAtrI,MAAAsrI,OACA,MAAA,KAEA,IAAAy6D,SAAA,EAAA,EAAAj9G,KAAApnE,IAAAza,EAAA2sL,IAAAtoD,QAAAxiD,KAAAyjC,IAAAtlH,EAAA2sL,IAAAtoD,SACAx3I,IAAA,GAAAg2L,KAAApnJ,IAAAqjK,OAAA,IAAArjK,IAAAqjK,OAAA,MAAA,EACAA,QAAA,IAAAjyM,IACAiyM,OAAA,IAAAjyM;ApQ3yKA,AoQ4yKAiyM,OAAA,GAAA,IACAA,OAAA,IAAAA,OAAA,GACAA,OAAA,GAAA,GAEAA,OAAA,GAAA,IACAA,OAAA,IAAAA,OAAA,GACAA,OAAA,GAAA,GAGA,GAAA3N,MAAAnxL,EAAAg0L,WAAA7J,SACA,KAAAgH,KACA,MAAA,KASA,IAPA95L,GAAAA,GAAA3P,QAAA,kBAAA,KAEAq9F,QAAAolG,UAAA9yL,IAAA0tF,QAAAolG,SAAA9yL,KACAsnM,IAAAI,KAAA1wM,YAAA02F,QAAAolG,gBACAplG,SAAAolG,WAGAplG,QAAAolG,SAAA,CACA94C,GAAAl8I,EAAApK,KAAA,YAAAsM,GAAAA,KACA0tF,QAAAolG,SAAA94C,GACAl8I,EAAAk8I,GAAA,UAAAtmJ,MACAyH,GAAAA,GACAksM,GAAAA,KAEA7c,GAAAid,OAAA,GACAhd,GAAAgd,OAAA,GACA/c,GAAA+c,OAAA,GACA9c,GAAA8c,OAAA,GACAE,kBAAAj6G,QAAA0iG,OAAA3/J,WAEA62K,IAAAI,KAAAt1M,YAAA4nJ,GACA,KAAA,GAAA3iJ,GAAA,EAAAwxL,GAAAiR,KAAA9nM,OAAA62L,GAAAxxL,EAAAA,IACA2iJ,GAAA5nJ,YAAA0L,EAAA,QACAgmB,OAAAg2K,KAAAziM,GAAAysB,OAAAg2K,KAAAziM,GAAAysB,OAAAzsB,EAAA,OAAA,KACAuwM,aAAA9N,KAAAziM,GAAA03H,OAAA;ApQh1KA,KoQ61KA,MARAjxH,GAAA7B,GACAu2L,KAAA,QAAAxyL,GAAA,IACA1C,QAAA,EACAm1L,eAAA,IAEA1iM,EAAAyiM,KAAAhzL,EACAzP,EAAAuN,QAAA,EACAvN,EAAAyrB,YAAA,EACA,GAEAqsL,eAAA,SAAA5rM,GACA,GAAAw4L,MAAAx4L,EAAAq0L,QAAA,EACAxyL,GAAA7B,EAAAg6B,SAAA6xK,iBAAA7rM,EAAAm0L,OAAA3/J,SAAA,cAAAgkK,KAAA71L,EAAA,IAAA61L,KAAA51L,EAAA,OAEAkpM,SAAA,SAAA9rM,EAAApI,MAAAm0M,OACA,GAAA,QAAA/rM,EAAAvI,KAAA,CAiBA,IAhBA,GAQA+yE,MACAC,GACAkmE,GACAq7D,KACApoM,KAZAiyB,OAAA0+J,IAAA38L,OAAAtD,cAAAT,MAAA,KACAF,EAAAqM,EAAA0zL,MACAlnK,GAAAu/K,MAAA,MAAA,QACAvwK,KAAAx7B,EAAAw7B,KACAyxJ,MAAAjtL,EAAAitL,MACAgK,OAAAhK,MAAA,gBACA7xL,EAAAy6B,OAAA9/B,OACA0B,KAAA,UAMAiL,EAAA,EACAjM,EAAA,EACA8L,EAAA,EACAnH,KACA,OAAAy6B,OAAAz6B,IACA,IAAA,QACA,IAAA,UACA,IAAA,OACA,IAAA,UACA,IAAA,OACA,IAAA,OACA3D,KAAAo+B,OAAAz6B,EACA,MACA,KAAA,OAAA3E,EAAA,CAAA,MACA,KAAA,SAAAA,EAAA,CAAA,MACA,KAAA;ApQh4KA,AoQg4KAiM,EAAA,CAAA,MACA,KAAA,QAAAA,EAAA,EA+BA,GA5BA,QAAAjL,MACAiL,GAAA,EACAjM,GAAA,EACA8L,GAAA,EACAouI,GAAA,EACAq7D,KAAAD,MAAA,EAAA,EACAnoM,MACA2yL,KAAA,OACAU,OAAAhK,MAAAgK,UAGA+U,KAAAr7D,GAAAjuI,EAAA,EACAkB,MACA2yL,KAAAtJ,MAAAgK,OACAA,OAAA,SAGAj3L,EAAA4P,EAAAq8L,OACAF,OACA/rM,EAAA4P,EAAAq8L,OAAAC,SAAAnB,cAAA/qM,EAAA4P,EAAAq8L,OAAAC,WACAlsM,EAAA4P,EAAAq8L,OAAAE,WAAApB,cAAA/qM,EAAA4P,EAAAq8L,OAAAE,eAEAnsM,EAAA4P,EAAAq8L,OAAAG,WAAArB,cAAA/qM,EAAA4P,EAAAq8L,OAAAG,aACApsM,EAAA4P,EAAAq8L,OAAAI,aAAAtB,cAAA/qM,EAAA4P,EAAAq8L,OAAAI,gBAGArsM,EAAA4P,EAAAq8L,UAEA,QAAAx0M,KAAA,CACA,GAAA60M,QAAA,kBAAA70M,KACA80M,SAAA,kBAAA//K,GAAA/0B,KAAAiL,EAAAjM,CACAiW,GAAAksL,GAAA/7C,IAAA/4I,eAAAwoM,QAQAvB,cAAAuB,WAPA34M,EAAA83M,KAAAt1M,YAAA0L,EAAAA,EAAA,SACAs1L,iBAAA,QACAljM,EAAA02M,QAAAlzM,MACAsM,GAAAuoM;ApQt6KA,IoQw6KAvB,cAAAuB,QAAA,EAIA,IACAjtI,KADA2pB,OAAAt8E,EAAAksL,GAAA/7C,IAAA/4I,eAAAyoM,SAEAvjH,SAkBA+hH,cAAAwB,YACAltI,IAAA2pB,OAAA9yF,qBAAA,OAAA,KAlBA8yF,OAAAnnF,EAAAA,EAAA,WACAkC,GAAAwoM,SACAC,aAAA/1M,EACAg2M,YAAA/pM,EACAgqM,OAAA,OACAV,KAAAA,KACAW,KAAAl2M,EAAA,IAEA4oE,IAAAx9D,EAAAA,EAAA,QACA+qM,aAAA,IAAAN,OACA52K,WAAAq2K,MAAA,cAAArpM,EAAA,EAAA,IAAAjM,EAAA,EAAA,KAAA8M,GAAA,SAAAb,EAAAH,EAAA,IAAA9L,EAAA8L,EAAA,IACAg1L,gBAAA,IAAA70L,EAAAH,EAAA9L,EAAA8L,GAAA,IAAAw9G,QAAA,KAEA/2B,OAAA7yF,YAAAkpE,KACA1rE,EAAA83M,KAAAt1M,YAAA6yF,QACA+hH,cAAAwB,UAAA,GAKA1qM,EAAAw9D,IAAAz7D,KACA,IAAAkhJ,OAAAnU,IAAA,WAAAl5I,MAAA,QAAAA,KACAs0M,QACAvhI,KAAAxqE,EAAA4P,EAAAq8L,OAAAY,QAAA5V,QAAA,EACAxsH,GAAA/9D,EAAAo6L,eAAA7Z,MAAAj0I,MAAA8rG,MAAAmyC,SAEAzsH,KAAAs6E,MAAAmyC,OACAxsH,GAAA/9D,EAAAo6L,eAAA7Z,MAAAj0I,OAAAh5C,EAAA4P,EAAAq8L,OAAAa,MAAA7V,QAAA;ApQz8KA,AoQ28KArzL,QACAA,KAAA,UAAA4oB,IAAA,QAAA+/K,SAAA,KACA9hI,IAAAD,QACA5mE,KAAA3P,EAAAyY,EAAAu6L,WAAAha,MAAAj0I,KAAAwxB,KAAAC,KAEA5oE,EAAA25B,KAAA53B,MACA5D,EAAA4P,EAAAq8L,OAAAz/K,GAAA,QAAA8/K,OACAtsM,EAAA4P,EAAAq8L,OAAAz/K,GAAA,UAAA+/K,SACAvsM,EAAA4P,EAAAq8L,OAAAz/K,GAAA,MAAAs4H,MACA9kJ,EAAA4P,EAAAq8L,OAAAz/K,GAAA,QAAA/0B,KACAuI,EAAA4P,EAAAq8L,OAAAz/K,GAAA,UAAA50B,UAEAm0M,QACAvhI,KAAAxqE,EAAA4P,EAAAq8L,OAAAY,QAAA5V,QAAA,EACAxsH,GAAA/9D,EAAAo6L,eAAA7Z,MAAAj0I,MAAAwxB,OAEAA,KAAA,EACAC,GAAA/9D,EAAAo6L,eAAA7Z,MAAAj0I,OAAAh5C,EAAA4P,EAAAq8L,OAAAa,MAAA7V,QAAA,IAEAj3L,EAAA4P,EAAAq8L,OAAAz/K,GAAA,SAAA3qB,EAAA25B,MAAAvnC,EAAAyY,EAAAu6L,WAAAha,MAAAj0I,KAAAwxB,KAAAC,YACAzqE,GAAA4P,EAAAq8L,OAAAz/K,GAAA,cACAxsB,GAAA4P,EAAAq8L,OAAAz/K,GAAA,gBACAxsB,GAAA4P,EAAAq8L,OAAAz/K,GAAA,YACAxsB,GAAA4P,EAAAq8L,OAAAz/K,GAAA,cACAxsB,GAAA4P,EAAAq8L,OAAAz/K,GAAA,SAEA,KAAA5oB,OAAAmnM,eAAA,GAAAA,cAAAnjM,KAAAhE,QAAAmnM,cAAAnnM,MAAA;ApQp+KA,AoQq+KA,GAAAylC,MAAA38B,EAAAksL,GAAA/7C,IAAA/4I,eAAAF,KACAylC,OAAAA,KAAAn0C,WAAA6F,YAAAsuC,SAIA0jK,WACArkL,IAAA,GACAskL,MAAA,GACAC,KAAA,EAAA,GACAC,KAAA,EAAA,GACAC,MAAA,EAAA,EAAA,EAAA,GACAC,OAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACAC,MAAA,EAAA,GACAC,MAAA,EAAA,GACAC,MAAA,EAAA,GACAC,OAAA,EAAA,EAAA,EAAA,GACAC,OAAA,EAAA,EAAA,EAAA,GACAC,QAAA,EAAA,EAAA,EAAA,EAAA,EAAA,IAEAC,UAAA,SAAA3tM,EAAApI,MAAA2gD,QAEA,GADA3gD,MAAAm1M,UAAAxY,IAAA38L,OAAAtD,eACA,CAKA,IAJA,GAAAiG,OAAAyF,EAAAitL,MAAA,iBAAA,IACA2gB,MAAAzkI,MAAA5uE,MAAAq/I,OAAAr/I,MAAAqzM,KAAA,GAAA5tM,EAAAitL,MAAA,mBAAA10I,OAAA,oBAAA,EACAs1J,UACAzyM,EAAAxD,MAAA7B,OACAqF,KACAyyM,OAAAzyM,GAAAxD,MAAAwD,GAAAb,OAAAa,EAAA,EAAA,EAAA,IAAAwyM,IAEA/rM,GAAA7B,EAAAw7B,MAAA07J,mBAAA2W,OAAA/oM,KAAA,SAGAgpM,iBAAA,SAAA9tM,EAAAu4C,QACA,GAAA/c,MAAAx7B,EAAAw7B,KACAyxJ,MAAAjtL,EAAAitL,MACA8gB,IAAAvyK,KAAAziC,MAAAimB;ApQvgLA,AoQwgLAwc,KAAAziC,MAAAimB,WAAA,QACA,KAAA,GAAAgvL,OAAAz1J,QACA,GAAAA,OAAA3wC,KAAAomM,KAAA,CACA,IAAAthM,EAAAypL,gBAAAvuL,KAAAomM,KACA,QAEA,IAAAp2M,OAAA2gD,OAAAy1J,IAEA,QADA/gB,MAAA+gB,KAAAp2M,MACAo2M,KACA,IAAA,OACAhuM,EAAA2T,KAAA/b,MACA,MACA,KAAA,QACA,GAAAwlH,OAAA5hF,KAAAtlC,qBAAA,QAGA,IAAAknH,MAAArnH,SAAAqnH,MAAAA,MAAA,IACAA,MAAAz0G,WAAAuG,UAAAtX,UACA,CACAwlH,MAAAv7G,EAAA,QACA,IAAAyL,KAAAZ,EAAAksL,GAAA/7C,IAAAjgI,eAAAhlB,MACAwlH,OAAAjnH,YAAAmX,KACAkuB,KAAArlC,YAAAinH,OAEA,KACA,KAAA,OACA,IAAA,SACA,GAAA6wF,IAAAzyK,KAAAtmC,UACA,IAAA,KAAA+4M,GAAAj+F,QAAA17G,cAAA,CACA,GAAA45M,IAAArsM,EAAA,IACAosM,IAAAxjM,aAAAyjM,GAAA1yK,MACA0yK,GAAA/3M,YAAAqlC,MACAyyK,GAAAC,GAEA,UAAAF,IACAC,GAAAjD,eAAAN,MAAA,OAAA,SAAA9yM,MAAA,MAAAA,OAEAq2M,GAAAjD,eAAAN,MAAAsD,IAAAp2M;ApQ5iLA,AoQ8iLA,KACA,KAAA,SACA4jC,KAAAziC,MAAAghE,OAAAniE,KACA,MACA,KAAA,YACAoI,EAAA01B,UAAA99B,MACA,MACA,KAAA,cACAk0M,SAAA9rM,EAAApI,MACA,MACA,KAAA,YACAk0M,SAAA9rM,EAAApI,MAAA,EACA,MACA,KAAA,YACA,GAAAijJ,MAAA05C,IAAA38L,OAAA/D,MAAA0lD,UACA,IAAA,GAAAshG,KAAA9kJ,OAAA,CACAiK,EAAAqyH,MAAAryH,EAAAqyH,KAAAn9H,WAAAA,WAAA6F,YAAAiF,EAAAqyH,KAAAn9H,WACA,IAAA6oJ,IAAAl8I,EAAA,YACAsvE,GAAAtvE,EAAA,OACAk8I,IAAAh6I,GAAA2I,EAAA+sL,aACA53L,EAAAsvE,IACAxuE,EAAAk4I,KAAA,GACAj4I,EAAAi4I,KAAA,GACAtgJ,MAAAsgJ,KAAA,GACArgJ,OAAAqgJ,KAAA,KAEAkD,GAAA5nJ,YAAAg7E,IACAnxE,EAAA0zL,MAAA+X,KAAAt1M,YAAA4nJ,IACAl8I,EAAA25B,MAAA2yK,YAAA,QAAApwD,GAAAh6I,GAAA,MACA/D,EAAAqyH,KAAAlhD,GAEA,IAAAv5E,MAAA,CACA,GAAAohD,MAAAxd,KAAAjnC,aAAA,YACA,IAAAykD,KAAA,CACA,GAAAq5E,MAAA3lH,EAAAksL,GAAA/7C,IAAA/4I,eAAAk1C,KAAA5kD,QAAA,iBAAAmP,GACA8uH,OAAAA,KAAAn9H,WAAA6F,YAAAs3H;ApQhlLA,AoQilLAxwH,EAAA25B,MAAA2yK,YAAA5qM,UACAvD,GAAAqyH,MAGA,KACA,KAAA,OACA,QAAAryH,EAAAvI,OACAoK,EAAA25B,MAAAvnC,EAAA2D,MAAAq1L,MAAAj0I,KAAAtsC,EAAAixL,gBAAA/lM,OAAA,SACAoI,EAAA4P,EAAAs2L,MAAA,EACAlmM,EAAA4P,EAAAq8L,SACA,eAAAjsM,GAAA4P,EAAAq8L,QAAAH,SAAA9rM,EAAAA,EAAA4P,EAAAq8L,OAAAmC,aACA,aAAApuM,GAAA4P,EAAAq8L,QAAAH,SAAA9rM,EAAAA,EAAA4P,EAAAq8L,OAAAoC,UAAA,IAGA,MACA,KAAA,QAGA,GAFA7yK,KAAAhzB,aAAAwlM,IAAAp2M,OACAoI,EAAA4P,EAAAs2L,MAAA,GACAjZ,MAAA/tL,GAIA,KAHA8uM,KAAA,IACAp2M,MAAAq1L,MAAAtqL,CAIA,KAAA,IACAsqL,MAAA/tL,KACAtH,OAAAq1L,MAAAtqL,GAAAsqL,MAAA1yL,OAAA,GAEA,KAAA,KACA,GAAA,MAAAyzM,KAAA,QAAAhuM,EAAAvI,KACA,KAEA,KAAA,KACA+jC,KAAAhzB,aAAAwlM,IAAAp2M,OACAoI,EAAAg6B,SAAA4xK,eAAA5rM,GACAA,EAAA4P,EAAAs2L,MAAA,CACA,MACA,KAAA,SAGA,GAFA1qK,KAAAhzB,aAAAwlM,IAAAp2M,OACAoI,EAAA4P,EAAAs2L,MAAA,GACAjZ,MAAAme,GAIA,KAHA4C,KAAA,IACAp2M,MAAAq1L,MAAArqL,CAIA,KAAA;ApQ9nLA,AoQ+nLAqqL,MAAAme,KACAxzM,OAAAq1L,MAAArqL,GAAAqqL,MAAAzyL,QAAA,GAEA,KAAA,KACA,GAAA,MAAAwzM,KAAA,QAAAhuM,EAAAvI,KACA,KAEA,KAAA,KACA+jC,KAAAhzB,aAAAwlM,IAAAp2M,OACAoI,EAAAg6B,SAAA4xK,eAAA5rM,GACAA,EAAA4P,EAAAs2L,MAAA,CACA,MACA,KAAA,IACA,QAAAlmM,EAAAvI,KACAoK,EAAA25B,MAAAu7J,GAAAn/L,MAAAo/L,GAAAp/L,QAEA4jC,KAAAhzB,aAAAwlM,IAAAp2M,OAEAoI,EAAA4P,EAAAs2L,MAAA,CACA,MACA,KAAA,MACA,SAAAlmM,EAAAvI,MACA+jC,KAAAwvK,eAAAN,MAAA,OAAA9yM,MAEA,MACA,KAAA,gBACA,GAAAoI,EAAA4P,EAAAolI,IAAA,GAAAh1I,EAAA4P,EAAAqlI,MACAr9I,OAAA23L,KAAApnJ,IAAAnoC,EAAA4P,EAAAolI,IAAA7sG,IAAAnoC,EAAA4P,EAAAqlI,MAAA,GAEAj1I,EAAA0zL,MAAA4a,UACA12M,OAAAoI,EAAA0zL,MAAA4a,SAEA9yK,KAAAhzB,aAAAwlM,IAAAp2M,OACAq1L,MAAA,qBACA0gB,UAAA3tM,EAAAitL,MAAA,oBAAA10I,QAEAv4C,EAAA4P,EAAAq8L,SACA,eAAAjsM,GAAA4P,EAAAq8L,QAAAH,SAAA9rM,EAAAA,EAAA4P,EAAAq8L,OAAAmC,aACA,aAAApuM,GAAA4P,EAAAq8L,QAAAH,SAAA9rM,EAAAA,EAAA4P,EAAAq8L,OAAAoC,UAAA;ApQpqLA,AoQsqLA,KACA,KAAA,mBACAV,UAAA3tM,EAAApI,MAAA2gD,OACA,MACA,KAAA,OACA,GAAAg2J,OAAAha,IAAA38L,OAAAme,MAAArJ,EAAAopL,OACA,IAAAyY,MAAA,CACAxwD,GAAAl8I,EAAA,UACA,IAAAqgF,IAAArgF,EAAA,QACAk8I,IAAAh6I,GAAA2I,EAAA+sL,aACA53L,EAAAk8I,IAAAp7I,EAAA,EAAAC,EAAA,EAAA4rM,aAAA,iBAAAh0M,OAAA,EAAAD,MAAA,IACAsH,EAAAqgF,IAAAv/E,EAAA,EAAAC,EAAA,EAAAgqM,aAAA2B,MAAA,KACAxwD,GAAA5nJ,YAAA+rF,IAEA,SAAA67D,IACArxI,EAAAwuL,SAAAqT,MAAA,GAAA,WACA,GAAA7rM,GAAA3D,KAAAnF,YACAnD,EAAAsI,KAAAlF,YACAgI,GAAAk8I,IAAAxjJ,MAAAmI,EAAAlI,OAAA/D,IACAoL,EAAAqgF,IAAA3nF,MAAAmI,EAAAlI,OAAA/D,IACAuJ,EAAA0zL,MAAAp1K,YAEAy/H,IACA/9I,EAAA0zL,MAAA+X,KAAAt1M,YAAA4nJ,IACAl8I,EAAA25B,MAAA+6J,KAAA,QAAAx4C,GAAAh6I,GAAA,MACA/D,EAAAg6B,QAAA+jH,GACA/9I,EAAAg6B,SAAA4xK,eAAA5rM,EACA,OAEA,GAAA06L,KAAAhuL,EAAAmnL,OAAAj8L,MACA,IAAA8iM,IAAA99L,OASA,IAAA,UAAAoD,EAAAvI,MAAA,WAAAuI,EAAAvI,MAAA,KAAA88L,IAAA38L,OAAAW,WAAA4yM,gBAAAnrM,EAAApI,OAAA;ApQ5sLA,AoQ6sLA,GAAA,WAAAq1L,QAAA,gBAAAA,OAAA,CACA,GAAA4J,UAAAnqL,EAAAksL,GAAA/7C,IAAA/4I,eAAA03B,KAAAjnC,aAAA,QAAAH,QAAA,eAAAmP,GACA,IAAAszL,SAAA,CACA,GAAA4X,OAAA5X,SAAA3gM,qBAAA,OACA2L,GAAA4sM,MAAAA,MAAA14M,OAAA,IAAA24M,gBAAA,WAAAzhB,OAAAA,MAAA5rL,QAAA,IAAA,gBAAA4rL,OAAAA,MAAA,gBAAA,MAGAA,MAAA4J,SAAAj/L,MACAq1L,MAAAsJ,KAAA,MACA,mBAlBAh+I,QAAAs+I,eACA5J,OAAA4J,UACAnqL,EAAAoF,GAAAm7K,MAAA5rL,QAAA,cACAqL,EAAAoF,GAAAymC,OAAAl3C,QAAA,cACAQ,EAAA25B,MAAAn6B,QAAA4rL,MAAA5rL,WACAqL,EAAAoF,GAAAm7K,MAAA,gBAAA,cACAvgL,EAAAoF,GAAAymC,OAAA,gBAAA,cACA12C,EAAA25B,MAAAg7J,eAAAvJ,MAAA,iBAaAyN,KAAA9yL,KAAA,YAAA/F,EAAA25B;ApQvtLA,AoQutLAg7J,eAAAkE,IAAAr5L,QAAA,EAAAq5L,IAAAr5L,QAAA,IAAAq5L,IAAAr5L,SACA,KAAA,SACAq5L,IAAAhuL,EAAAmnL,OAAAj8L,OACA4jC,KAAAhzB,aAAAwlM,IAAAtT,IAAA5M,KACA,UAAAkgB,KAAAtT,IAAA9yL,KAAA,YAAA/F,EAAA25B,MAAA87J,iBAAAoD,IAAAr5L,QAAA,EAAAq5L,IAAAr5L,QAAA,IAAAq5L,IAAAr5L,UACA,UAAA2sM,KAAAhuM,EAAA4P,EAAAq8L,SACA,eAAAjsM,GAAA4P,EAAAq8L,QAAAH,SAAA9rM,EAAAA,EAAA4P,EAAAq8L,OAAAmC,aACA,aAAApuM,GAAA4P,EAAAq8L,QAAAH,SAAA9rM,EAAAA,EAAA4P,EAAAq8L,OAAAoC,UAAA,GAEA,MACA,KAAA,YACA,UAAAruM,EAAAvI,MAAA,WAAAuI,EAAAvI,MAAA,KAAA88L,IAAA38L,OAAAW,WAAA4yM,gBAAAnrM,EAAApI,MACA,MACA,KAAA,UACAq1L,MAAA4J,WAAA5J,MAAArlL,KAAA,mBACA/F,EAAA25B,MAAA87J,iBAAA1/L,MAAA,EAAAA,MAAA,IAAAA,OAGA,KAAA,eACA,GAAAq1L,MAAA4J,SAAA,CACAA,SAAAnqL,EAAAksL,GAAA/7C,IAAA/4I,eAAA03B,KAAAjnC,aAAA,QAAAH,QAAA,eAAAmP;ApQ1uLA,AoQ2uLAszL,WACA4X,MAAA5X,SAAA3gM,qBAAA,QACA2L,EAAA4sM,MAAAA,MAAA14M,OAAA,IAAA24M,eAAA92M,QAEA,OAEA,QACA,aAAAo2M,MAAAp2M,MAAAq+L,MAAAr+L,MAAA,IAAA,KACA,IAAA+2M,SAAAX,IAAA55M,QAAA,SAAA,SAAAsO,GACA,MAAAA,GAAAmJ,UAAA,GAAArT,eAEAgjC,MAAAziC,MAAA41M,SAAA/2M,MACAoI,EAAA4P,EAAAs2L,MAAA,EACA1qK,KAAAhzB,aAAAwlM,IAAAp2M,QAMAg3M,SAAA5uM,EAAAu4C,QACA/c,KAAAziC,MAAAimB,WAAA+uL,KAEAl/K,QAAA,IACA+/K,SAAA,SAAA7wD,GAAAxlG,QACA,GAAA,QAAAwlG,GAAAtmJ,OAAA8gD,OAAA3wC,KAAA,SAAA2wC,OAAA3wC,KAAA,SAAA2wC,OAAA3wC,KAAA,cAAA2wC,OAAA3wC,KAAA,MAAA2wC,OAAA3wC,KAAA,MAAA,CAGA,GAAArU,GAAAwqJ,GAAAkvC,MACAzxJ,KAAAuiH,GAAAviH,KACA4+J,cAAA5+J,KAAA7yB,WAAA+D,EAAAksL,GAAA/7C,IAAAr7I,YAAAqJ,iBAAA2wB,KAAA7yB,WAAApF,GAAAulB,OACAsoG,SAAAgpE,cAAAnE,MAAAmE,cAAAC,iBAAA,aAAA,IAAA;ApQxwLA,AoQ2wLA,GAAA9hJ,OAAA3wC,KAAA,QAAA,CAEA,IADArU,EAAAyE,KAAAugD,OAAAvgD,KACAwjC,KAAA7yB,YACA6yB,KAAAzgC,YAAAygC,KAAA7yB,WAKA,KAAA,GADAkmM,OAFAC,MAAAva,IAAAh8I,OAAAvgD,MAAAnE,MAAA,MACAk7M,UAEA3zM,EAAA,EAAAwxL,GAAAkiB,MAAA/4M,OAAA62L,GAAAxxL,EAAAA,IACAyzM,MAAAhtM,EAAA,SACAzG,GAAAyG,EAAAgtM,OAAAj+D,GAAAxf,SAAAviG,QAAAlsB,EAAApP,EAAAoP,IACAksM,MAAA14M,YAAAuW,EAAAksL,GAAA/7C,IAAAjgI,eAAAkyL,MAAA1zM,KACAogC,KAAArlC,YAAA04M,OACAE,OAAA3zM,GAAAyzM,UAIA,KADAE,OAAAvzK,KAAAtlC,qBAAA,SACAkF,EAAA,EAAAwxL,GAAAmiB,OAAAh5M,OAAA62L,GAAAxxL,EAAAA,IAAAA,EACAyG,EAAAktM,OAAA3zM,IAAAw1I,GAAAxf,SAAAviG,QAAAlsB,EAAApP,EAAAoP,IAEAd,EAAAktM,OAAA,IAAAn+D,GAAA,GAGA/uI,GAAA25B,MAAA74B,EAAApP,EAAAoP,EAAAC,EAAArP,EAAAqP,IACAm7I,GAAAnuI,EAAAs2L,MAAA,CACA,IAAAlxM,IAAA+oJ,GAAA06C,WACAuW,IAAAz7M,EAAAqP,GAAA5N,GAAA4N,EAAA5N,GAAAwF,OAAA,EACAw0M,MAAAtiM,EAAAoF,GAAAk9L,IAAA,WAAAntM,EAAAktM,OAAA,IAAAn+D,GAAAo+D,QAEAj8G,QAAA,SAAAv3D,KAAAy9J,KAiBAl6L,KAAA,GAAAA,KAAAy8B,KAAAA,KAaAA,KAAAwpK,SAAA;ApQr0LA,AoQ60LAjmM,KAAAgF,GAAA2I,EAAA0sL,OACA59J,KAAAkqK,UAAA3mM,KAAAgF,GACAhF,KAAAo1L,OAAAznL,EAAAynL,SACAp1L,KAAAinM,SAAA,KAaAjnM,KAAA20L,MAAAuF,IACAl6L,KAAAkuL,MAAAluL,KAAAkuL,UACAluL,KAAA6Q,GACA8lB,aACAs/G,GAAA,EACAC,GAAA,EACAqkD,IAAA,EACA3oD,GAAA,EACAC,GAAA,EACAs1D,MAAA,IAEAjN,IAAAlpF,SAAAkpF,IAAAlpF,OAAAhxG,MAOAA,KAAAsb,KAAA4+K,IAAAnuL,IACAmuL,IAAAnuL,MAAAmuL,IAAAnuL,IAAAsP,KAAArb,MACAk6L,IAAAnuL,IAAA/L,KAOAA,KAAAqb,KAAA,MAEAypL,QAAAn3L,EAAAqxI,EAEAhrD,SAAA7xF,UAAA2iM,QACAA,QAAArgM,YAAAuvF,QAEArmF,EAAA6gL,QAAAv0I,KAAA,SAAAwiJ,WAAA6P,KACA,GAAAttD,IAAAl8I,EAAA,OACAwpM,KAAAxtB,QAAAwtB,IAAAxtB,OAAA1nL,YAAA4nJ,GACA,IAAApqJ,GAAA,GAAAo/F,SAAAgrD,GAAAstD,IAOA,OANA13M,GAAA8D,KAAA,OACAq2M,iBAAAn6M,GACA4iM,KAAA,OACAU,OAAA,OACAj+I,KAAAwiJ,aAEA7nM,GAgBAkwM,QAAAziF,OAAA,SAAAk4E,IAAAp3K,GAAA/mB,IACA,GAAA4D,KAAAy+K,QACA,MAAAz+K,KASA,IAPAu6L,IAAA/E,IAAA+E,KAAAzlM,MAAA0lD,WACA+/I,IAAAvjM,OAAA,IACAmsB,GAAA+wK,QAAAqG,IAAA;ApQ95LA,AoQ+5LAn+L,GAAA83L,QAAAqG,IAAA,KAEAA,IAAArG,QAAAqG,IAAA,IACA,MAAAn+L,KAAA+mB,GAAA/mB,IACA,MAAA+mB,IAAA,MAAA/mB,GAAA,CACA,GAAAq9L,MAAAz5L,KAAAs1L,QAAA,EACAnyK,IAAAs2K,KAAA71L,EAAA61L,KAAAj+L,MAAA,EACAY,GAAAq9L,KAAA51L,EAAA41L,KAAAh+L,OAAA,EAGA,MADAuE,MAAA22B,UAAA32B,KAAA6Q,EAAA8lB,UAAAn4B,SAAA,IAAA+7L,IAAAp3K,GAAA/mB,OACA4D,MAiBA8kM,QAAA3wE,MAAA,SAAA8hB,GAAAC,GAAA/yH,GAAA/mB,IACA,GAAA4D,KAAAy+K,QACA,MAAAz+K,KAWA,IATAi2I,GAAAu/C,IAAAv/C,IAAAnhJ,MAAA0lD,WACAy7F,GAAAj/I,OAAA,IACAk/I,GAAAg+C,QAAAj+C,GAAA,IACA9yH,GAAA+wK,QAAAj+C,GAAA,IACA75I,GAAA83L,QAAAj+C,GAAA,KAEAA,GAAAi+C,QAAAj+C,GAAA,IACA,MAAAC,KAAAA,GAAAD,IACA,MAAA75I,KAAA+mB,GAAA/mB,IACA,MAAA+mB,IAAA,MAAA/mB,GACA,GAAAq9L,MAAAz5L,KAAAs1L,QAAA,EAKA,OAHAnyK,IAAA,MAAAA,GAAAs2K,KAAA71L,EAAA61L,KAAAj+L,MAAA,EAAA2nB,GACA/mB,GAAA,MAAAA,GAAAq9L,KAAA51L,EAAA41L,KAAAh+L,OAAA,EAAAW,GACA4D,KAAA22B,UAAA32B,KAAA6Q,EAAA8lB,UAAAn4B,SAAA,IAAAy3I,GAAAC,GAAA/yH,GAAA/mB,OACA4D,MAaA8kM,QAAApgH,UAAA,SAAAktD,GAAAC,IACA,MAAA7xI,MAAAy+K,QACAz+K,MAEA4xI,GAAA4jD,IAAA5jD,IAAA98I,MAAA0lD;ApQ79LA,AoQ89LAo3F,GAAA56I,OAAA,IACA66I,GAAAqiD,QAAAtiD,GAAA,KAEAA,GAAAsiD,QAAAtiD,GAAA,KAAA,EACAC,IAAAA,IAAA,EACA7xI,KAAA22B,UAAA32B,KAAA6Q,EAAA8lB,UAAAn4B,SAAA,IAAAozI,GAAAC,OACA7xI,OAuCA8kM,QAAAnuK,UAAA,SAAA2rK,MACA,GAAAzxL,GAAA7Q,KAAA6Q,CACA,IAAA,MAAAyxL,KACA,MAAAzxL,GAAA8lB,SAQA,IANAhpB,EAAA00L,kBAAAriM,KAAAsiM,MAEAtiM,KAAAszH,MAAAxwH,EAAA9C,KAAAszH,MAAA38F,UAAA32B,KAAAo1L,OAAA3/J,WACAz1B,KAAAi7B,SAAA4xK,eAAA7sM,MACAA,KAAAy8B,MAAA35B,EAAA9C,KAAAy8B,MAAA9F,UAAA32B,KAAAo1L,SAEA,GAAAvkL,EAAAolI,IAAA,GAAAplI,EAAAqlI,GAAA,CACA,GAAAzhC,IAAAz0G,KAAAkuL,MAAArlL,KAAA,gBAAA7I,KAAAkuL,MAAA,gBAAA,CACAluL,MAAA6E,MAAA2zL,eAAA/jF,KAGA,MAAAz0G,OASA8kM,QAAA/iM,KAAA,WAEA,OADA/B,KAAAy+K,SAAAz+K,KAAA20L,MAAAp1K,OAAAvf,KAAAy8B,KAAAziC,MAAAC,QAAA,QACA+F,MASA8kM,QAAAhjM,KAAA,WAEA,OADA9B,KAAAy+K,SAAAz+K,KAAA20L,MAAAp1K,OAAAvf,KAAAy8B,KAAAziC,MAAAC,QAAA;ApQ/iMA,AoQgjMA+F,MAQA8kM,QAAAzpM,OAAA,WACA,IAAA2E,KAAAy+K,SAAAz+K,KAAAy8B,KAAAtmC,WAAA,CAGA,GAAAw+L,OAAA30L,KAAA20L,KACAA,OAAAgR,SAAAhR,MAAAgR,QAAAnkC,QAAAxhK,MACA0tL,IAAAz3K,OAAA,eAAAjW,KAAAgF,IACAhF,KAAA83L,UACAnD,MAAA+X,KAAA1wM,YAAAgE,KAAA83L,UAEAnqL,EAAAk0L,MAAA7hM,KAAA20L,OACA,KAAA30L,KAAAy8B,KAAAtmC,WAAA86G,QAAA17G,cACAyK,KAAAy8B,KAAAtmC,WAAAA,WAAA6F,YAAAgE,KAAAy8B,KAAAtmC,YAEA6J,KAAAy8B,KAAAtmC,WAAA6F,YAAAgE,KAAAy8B,KAEA,KAAA,GAAApgC,KAAA2D,MACAA,KAAA3D,GAAA,kBAAA2D,MAAA3D,GAAAsR,EAAAqwL,gBAAA3hM,GAAA,IAEA2D,MAAAy+K,SAAA,IAEAqmB,QAAApL,SAAA,WACA,GAAA,QAAA15L,KAAAy8B,KAAAziC,MAAAC,QAAA,CACA+F,KAAA8B,MACA,IAAAC,OAAA,EAEA,GAAA03L,QACA,KACAA,KAAAz5L,KAAAy8B,KAAA64J,UACA,MAAAlgM,IAEA,QACAqkM,KAAAA,SAGA,MADA13L,OAAA/B,KAAA+B;ApQzlMA,AoQ0lMA03L,MAmFAqL,QAAAjgM,KAAA,SAAAgI,KAAAhU,OACA,GAAAmH,KAAAy+K,QACA,MAAAz+K,KAEA,IAAA,MAAA6M,KAAA,CACA,GAAA+yF,OACA,KAAA,GAAAprG,KAAAwL,MAAAkuL,MAAAluL,KAAAkuL,MAAArlL,KAAArU,KACAorG,IAAAprG,GAAAwL,KAAAkuL,MAAA15L,GAIA,OAFAorG,KAAAk4F,UAAA,QAAAl4F,IAAA43F,OAAA53F,IAAA43F,KAAA53F,IAAAk4F,iBAAAl4F,KAAAk4F,SACAl4F,IAAAjpE,UAAA32B,KAAA6Q,EAAA8lB,UACAipE,IAEA,GAAA,MAAA/mG,OAAA8U,EAAAoF,GAAAlG,KAAA,UAAA,CACA,GAAA,QAAAA,MAAA,QAAA7M,KAAAkuL,MAAAsJ,MAAAx3L,KAAAkuL,MAAA4J,SACA,MAAA93L,MAAAkuL,MAAA4J,QAEA,IAAA,aAAAjrL,KACA,MAAA7M,MAAA6Q,EAAA8lB,SAIA,KAAA,GAFA+xD,OAAA77E,KAAA/X,MAAA0lD,WACAyK,OACA5oD,EAAA,EAAAwxL,GAAAnlG,MAAA1xF,OAAA62L,GAAAxxL,EAAAA,IACAwQ,KAAA67E,MAAArsF,GACAwQ,OAAA7M,MAAAkuL,MACAjpI,IAAAp4C,MAAA7M,KAAAkuL,MAAArhL,MACAc,EAAAoF,GAAA/S,KAAA20L,MAAAC,iBAAA/nL,MAAA,YACAo4C,IAAAp4C,MAAA7M,KAAA20L,MAAAC,iBAAA/nL,MAAAqjM,IAEAjrJ,IAAAp4C,MAAAc,EAAAypL,gBAAAvqL;ApQzsMA,AoQ4sMA,MAAAghL,IAAA,EAAA5oI,IAAAA,IAAAyjC,MAAA,IAEA,GAAA,MAAA7vF,OAAA8U,EAAAoF,GAAAlG,KAAA,SAAA,CAEA,IADAo4C,OACA5oD,EAAA,EAAAwxL,GAAAhhL,KAAA7V,OAAA62L,GAAAxxL,EAAAA,IACA4oD,IAAAp4C,KAAAxQ,IAAA2D,KAAA6E,KAAAgI,KAAAxQ,GAEA,OAAA4oD,KAEA,GAAA,MAAApsD,MAAA,CACA,GAAA2gD,UACAA,QAAA3sC,MAAAhU,UACA,OAAAgU,MAAAc,EAAAoF,GAAAlG,KAAA,YACA2sC,OAAA3sC,KAEA,KAAA,GAAAw+B,OAAAmO,QACAk0I,IAAA,gBAAAriJ,IAAA,IAAArrC,KAAAgF,GAAAhF,KAAAw5C,OAAAnO,KAEA,KAAAA,MAAArrC,MAAA20L,MAAAC,iBAAA,GAAA50L,KAAA20L,MAAAC,iBAAA/rL,KAAAwiC,MAAAmO,OAAA3wC,KAAAwiC,MAAA19B,EAAAoF,GAAA/S,KAAA20L,MAAAC,iBAAAvpJ,KAAA,YAAA,CACA,GAAAu2J,KAAA5hM,KAAA20L,MAAAC,iBAAAvpJ,KAAAxlC,MAAA7F,QAAAxB,OAAAg7C,OAAAnO,MACArrC,MAAAkuL,MAAA7iJ,KAAAmO,OAAAnO,IACA,KAAA,GAAA8kK,UAAAvO,KAAAA,IAAA/4L,KAAAsnM,UACA32J,OAAA22J,QAAAvO,IAAAuO,SAIA,MADApB,kBAAA/uM,KAAAw5C;ApQpuMA,AoQquMAx5C,MASA8kM,QAAAsL,QAAA,WACA,GAAApwM,KAAAy+K,QACA,MAAAz+K,KAEA,MAAAA,KAAAy8B,KAAAtmC,WAAA86G,QAAA17G,cACAyK,KAAAy8B,KAAAtmC,WAAAA,WAAAiB,YAAA4I,KAAAy8B,KAAAtmC,YAEA6J,KAAAy8B,KAAAtmC,WAAAiB,YAAA4I,KAAAy8B,KAEA,IAAAy9J,KAAAl6L,KAAA20L,KAEA,OADAuF,KAAAnuL,KAAA/L,MAAA2N,EAAAo0L,SAAA/hM,KAAAk6L,KACAl6L,MASA8kM,QAAAuL,OAAA,WACA,GAAArwM,KAAAy+K,QACA,MAAAz+K,KAEA,IAAAkZ,QAAAlZ,KAAAy8B,KAAAtmC,UACA,MAAA+iB,OAAA+3F,QAAA17G,cACA2jB,OAAA/iB,WAAAuV,aAAA1L,KAAAy8B,KAAAtmC,WAAA6J,KAAAy8B,KAAAtmC,WAAAA,WAAAyT,YACAsP,OAAAtP,YAAA5J,KAAAy8B,MACAvjB,OAAAxN,aAAA1L,KAAAy8B,KAAAz8B,KAAAy8B,KAAAtmC,WAAAyT,YAEA+D,EAAAq0L,QAAAhiM,KAAAA,KAAA20L,MACA30L,MAAA20L,KACA,OAAA30L,OASA8kM,QAAA9lL,YAAA,SAAA0zE;ApQtxMA,AoQuxMA,GAAA1yF,KAAAy+K,QACA,MAAAz+K,KAEA,IAAAy8B,MAAAi2D,QAAAj2D,MAAAi2D,QAAAA,QAAA17F,OAAA,GAAAylC,IAOA,OANAA,MAAA5jB,YACA4jB,KAAAtmC,WAAAuV,aAAA1L,KAAAy8B,KAAAA,KAAA5jB,aAEA4jB,KAAAtmC,WAAAiB,YAAA4I,KAAAy8B,MAEA9uB,EAAAs0L,aAAAjiM,KAAA0yF,QAAA1yF,KAAA20L,OACA30L,MASA8kM,QAAAp5L,aAAA,SAAAgnF,SACA,GAAA1yF,KAAAy+K,QACA,MAAAz+K,KAEA,IAAAy8B,MAAAi2D,QAAAj2D,MAAAi2D,QAAA,GAAAj2D,IAGA,OAFAA,MAAAtmC,WAAAuV,aAAA1L,KAAAy8B,KAAAA,MACA9uB,EAAAw0L,cAAAniM,KAAA0yF,QAAA1yF,KAAA20L,OACA30L,MAEA8kM,QAAAlwL,KAAA,SAAAvP,MAEA,GAAA7B,GAAAxD,IACA,IAAA,KAAAqF,KAAA,CACA,GAAAirM,MAAAxtM,EAAA,UACA8R,KAAA9R,EAAA,iBACAU,GAAA0qL,MAAAt5K,KAAAvP,KACAirM,KAAAtrM,GAAA2I,EAAA+sL,aACA53L,EAAA8R,MAAA27L,cAAAlrM,MAAA,MACAirM,KAAAl5M,YAAAwd,MACApR,EAAAmxL,MAAA+X,KAAAt1M,YAAAk5M;ApQ5zMA,AoQ6zMA9sM,EAAAgtM,MAAAF,KACAxtM,EAAAU,EAAAi5B,MAAA/lC,OAAA,QAAA45M,KAAAtrM,GAAA,UAEAxB,GAAAgtM,QACAhtM,EAAAgtM,MAAAr6M,WAAA6F,YAAAwH,EAAAgtM,aACAhtM,GAAAgtM,YACAhtM,GAAA0qL,MAAAt5K,MAEApR,EAAAi5B,KAAAvjC,gBAAA,SAEA,OAAAsK,IAEAmK,EAAA6gL,QAAA2H,OAAA,SAAA+D,IAAAt2L,EAAAC,EAAAN,GACA,GAAAy7I,IAAAl8I,EAAA,SACAo3L,KAAApb,QAAAob,IAAApb,OAAA1nL,YAAA4nJ,GACA,IAAAp/C,KAAA,GAAA5L,SAAAgrD,GAAAk7C,IAIA,OAHAt6F,KAAAsuF,OAAA/qK,GAAAvf,EAAAxH,GAAAyH,EAAAN,EAAAA,EAAAi0L,KAAA,OAAAU,OAAA,QACAt4F,IAAAlnG,KAAA,SACAoK,EAAAk8I,GAAAp/C,IAAAsuF,OACAtuF,KAEAjyF,EAAA6gL,QAAA1yC,KAAA,SAAAo+C,IAAAt2L,EAAAC,EAAAF,EAAAjM,EAAA6L,GACA,GAAAy7I,IAAAl8I,EAAA,OACAo3L,KAAApb,QAAAob,IAAApb,OAAA1nL,YAAA4nJ,GACA,IAAAp/C,KAAA,GAAA5L,SAAAgrD,GAAAk7C,IAIA,OAHAt6F,KAAAsuF,OAAAtqL,EAAAA,EAAAC,EAAAA,EAAArI,MAAAmI,EAAAlI,OAAA/D,EAAA6L,EAAAA,GAAA,EAAAy0L,GAAAz0L,GAAA,EAAA00L,GAAA10L,GAAA,EAAAi0L,KAAA,OAAAU,OAAA,QACAt4F,IAAAlnG,KAAA,OACAoK,EAAAk8I,GAAAp/C,IAAAsuF,OACAtuF,KAEAjyF,EAAA6gL,QAAA4H,QAAA,SAAA8D,IAAAt2L,EAAAC,EAAAm0L,GAAAC;ApQ11MA,AoQ21MA,GAAAj5C,IAAAl8I,EAAA,UACAo3L,KAAApb,QAAAob,IAAApb,OAAA1nL,YAAA4nJ,GACA,IAAAp/C,KAAA,GAAA5L,SAAAgrD,GAAAk7C,IAIA,OAHAt6F,KAAAsuF,OAAA/qK,GAAAvf,EAAAxH,GAAAyH,EAAAm0L,GAAAA,GAAAC,GAAAA,GAAAT,KAAA,OAAAU,OAAA,QACAt4F,IAAAlnG,KAAA,UACAoK,EAAAk8I,GAAAp/C,IAAAsuF,OACAtuF,KAEAjyF,EAAA6gL,QAAA70K,MAAA,SAAAugL,IAAAx7K,IAAA9a,EAAAC,EAAAF,EAAAjM,GACA,GAAAsnJ,IAAAl8I,EAAA,QACAA,GAAAk8I,IAAAp7I,EAAAA,EAAAC,EAAAA,EAAArI,MAAAmI,EAAAlI,OAAA/D,EAAA4nJ,oBAAA,SACAN,GAAAitD,eAAAN,MAAA,OAAAjtL,KACAw7K,IAAApb,QAAAob,IAAApb,OAAA1nL,YAAA4nJ,GACA,IAAAp/C,KAAA,GAAA5L,SAAAgrD,GAAAk7C,IAGA,OAFAt6F,KAAAsuF,OAAAtqL,EAAAA,EAAAC,EAAAA,EAAArI,MAAAmI,EAAAlI,OAAA/D,EAAAgnB,IAAAA,KACAkhF,IAAAlnG,KAAA,QACAknG,KAEAjyF,EAAA6gL,QAAAv1L,KAAA,SAAAihM,IAAAt2L,EAAAC,EAAA5K,MACA,GAAA+lJ,IAAAl8I,EAAA,OACAo3L,KAAApb,QAAAob,IAAApb,OAAA1nL,YAAA4nJ,GACA,IAAAp/C,KAAA,GAAA5L,SAAAgrD,GAAAk7C,IAYA,OAXAt6F,KAAAsuF,OACAtqL,EAAAA,EACAC,EAAAA,EACA40L,cAAA,SACAx/L,KAAAA;ApQp3MA,AoQq3MAgnK,KAAAtyJ,EAAAypL,gBAAAn3B,KACAi4B,OAAA,OACAV,KAAA,QAEA53F,IAAAlnG,KAAA,OACAq2M,iBAAAnvG,IAAAA,IAAAsuF,OACAtuF,KAEAjyF,EAAA6gL,QAAA9hB,QAAA,SAAAlxK,MAAAC,QAQA,MAPAuE,MAAAxE,MAAAA,OAAAwE,KAAAxE,MACAwE,KAAAvE,OAAAA,QAAAuE,KAAAvE,OACAuE,KAAA8+K,OAAAr1K,aAAA,QAAAzJ,KAAAxE,OACAwE,KAAA8+K,OAAAr1K,aAAA,SAAAzJ,KAAAvE,QACAuE,KAAAywM,UACAzwM,KAAAgmM,WAAAngM,MAAA7F,KAAAA,KAAAywM,UAEAzwM,MAEA2N,EAAA6gL,QAAAx8J,OAAA,WACA,GAAA0+K,KAAA/iM,EAAAo1L,cAAAl9L,MAAA,EAAAC,WACAoxC,UAAAw5J,KAAAA,IAAAx5J,UACAtzC,EAAA8sM,IAAA9sM,EACAC,EAAA6sM,IAAA7sM,EACArI,MAAAk1M,IAAAl1M,MACAC,OAAAi1M,IAAAj1M,MACA,KAAAy7C,UACA,KAAA,IAAAtwC,OAAA,2BAEA,IAEA+pM,YAFAC,KAAA9tM,EAAA,OACAjJ,IAAA,kBAgCA,OA9BA+J,GAAAA,GAAA,EACAC,EAAAA,GAAA,EACArI,MAAAA,OAAA;ApQr5MA,AoQs5MAC,OAAAA,QAAA,IACAqH,EAAA8tM,MACAn1M,OAAAA,OACA2jB,QAAA,IACA5jB,MAAAA,MACAq1M,MAAA,+BAEA,GAAA35J,WACA05J,KAAA52M,MAAA0P,QAAA7P,IAAA,0BAAA+J,EAAA,UAAAC,EAAA,KACA8J,EAAAksL,GAAA/7C,IAAA1iJ,KAAAhE,YAAAw5M,MACAD,WAAA,IAEAC,KAAA52M,MAAA0P,QAAA7P,IAAA,oBACAq9C,UAAAttC,WACAstC,UAAAxrC,aAAAklM,KAAA15J,UAAAttC,YAEAstC,UAAA9/C,YAAAw5M,OAGA15J,UAAA,GAAAvpC,GAAAysL,OACAljJ,UAAA17C,MAAAA,MACA07C,UAAAz7C,OAAAA,OACAy7C,UAAA4nI,OAAA8xB,KACA15J,UAAA4d,QACA5d,UAAA45J,MAAA55J,UAAA65J,KAAA,EACAJ,aAAAz5J,UAAA85J,UAAA,cACA95J,UAAA85J,YACA95J,WAEAvpC,EAAA6gL,QAAAwX,WAAA,SAAApiM,EAAAC,EAAAF,EAAAjM,EAAAw2G,KACAw/E,IAAA,qBAAA1tL,KAAAA,KAAAywM,UAAA7sM,EAAAC,EAAAF,EAAAjM,EAAAw2G;ApQn7MA,AoQo7MA,GAGA3gC,IACAknC,GAJApvG,KAAAmrL,KAAA7sL,EAAA3D,KAAAxE,MAAA9D,EAAAsI,KAAAvE,QACAsQ,IAAA/L,KAAA+L,IACA4nG,YAAAzF,IAAA,gBAAA,UAiBA,KAdA,MAAAtqG,GACA5D,KAAAuvM,UACAlqM,KAAA,SAEArF,MAAAuvM,QACAhiI,GAAA,OAAAvtE,KAAAxE,MAAAoS,EAAA5N,KAAAvE,SAEAuE,KAAAuvM,QAAAlqM,KACAkoE,GAAA3pE,EAAAgK,EAAA/J,EAAA+J,EAAAjK,EAAAiK,EAAAlW,GAEAoL,EAAA9C,KAAA8+K,QACAmyB,QAAA1jI,GACA+xE,oBAAA3rC,cAEAtuG,MAAA0G,KACA0oG,GAAA,gBAAA1oG,KAAAmiL,MAAAniL,IAAAmiL,MAAA,gBAAA,EACAniL,IAAAlH,MAAA2zL,eAAA/jF,KACA1oG,IAAA8E,EAAAs2L,MAAA,EACAp7L,IAAA8E,EAAA6xL,OAAA,EACA32L,IAAAA,IAAAuP,IAGA,OADAtb,MAAAywM,UAAA7sM,EAAAC,EAAAF,EAAAjM,IAAAw2G,KACAluG,MAYA2N,EAAAxL,UAAA6uM,UAAA,WACA,GAEA3pL,KAFAupL,KAAA5wM,KAAA8+K,OACA/pL,EAAA67M,KAAA52M,KAEA,KACAqtB,IAAAupL,KAAAM,gBAAAN,KAAAO,kBACA,MAAA/7M,GACAiyB,IAAAupL,KAAAO,kBAEA,GAAAjwL,OAAAmG,IAAAjyB,EAAA,EACA2W,KAAAsb,IAAAzxB,EAAA,GACAsrB,MAAAnV,OACAmV,OACAlhB,KAAA8wM,OAAA9wM,KAAA8wM,MAAA5vL,MAAA;ApQv+MA,AoQw+MAnsB,EAAAmsB,KAAAlhB,KAAA8wM,MAAA,MAEA/kM,MACA/L,KAAA+wM,MAAA/wM,KAAA+wM,KAAAhlM,KAAA,EACAhX,EAAAgX,IAAA/L,KAAA+wM,KAAA,QAUApjM,EAAAxL,UAAA2yD,MAAA,WACAnnD,EAAA+/K,IAAA,gBAAA1tL,KAEA,KADA,GAAAhL,GAAAgL,KAAA8+K,OACA9pL,EAAA4U,YACA5U,EAAAgH,YAAAhH,EAAA4U,WAEA5J,MAAAgxG,OAAAhxG,KAAA+L,IAAA,MACA/L,KAAA6yK,KAAA/vK,EAAA,SAAA1L,YAAAuW,EAAAksL,GAAA/7C,IAAAjgI,eAAA,wBAAAlQ,EAAAyR,UACApqB,EAAAoC,YAAA4I,KAAA6yK,MACA79K,EAAAoC,YAAA4I,KAAA0sM,KAAA5pM,EAAA,UAQA6K,EAAAxL,UAAA9G,OAAA,WACAqyL,IAAA,iBAAA1tL,MACAA,KAAA8+K,OAAA3oL,YAAA6J,KAAA8+K,OAAA3oL,WAAA6F,YAAAgE,KAAA8+K,OACA,KAAA,GAAAziL,KAAA2D,MACAA,KAAA3D,GAAA,kBAAA2D,MAAA3D,GAAAsR,EAAAqwL,gBAAA3hM,GAAA,KAGA,IAAA8sM,UAAAx7L,EAAAof,EACA,KAAA,GAAAohB,UAAA22J,SAAAA,QAAAj8L,KAAAslC,UAAAg7J,SAAAtgM,KAAAslC,UACAg7J,SAAAh7J,QAAA,SAAA8vJ;ApQ/gNA,AoQghNA,MAAA,YACA,GAAAlgK,KAAAj4B,SACA,OAAA9F,MAAA80B,QAAA,SAAAkqH,IACAA,GAAAi/C,YAAAp4L,MAAAm5I,GAAAjhH,SAGAoQ,aAcA,WACA,GAAAxgC,EAAAwsL,IAAA,CAGA,GAAAtxL,KAAA,iBACA2sL,IAAApyL,OACA8wL,QAAAv5L,WACA60F,KAAAj1F,KACA6vE,MAAAolB,KAAAplB,MACAomH,KAAAhhG,KAAAh1F,IACAi2L,KAAAjhG,KAAAl9D,IACA8W,IAAAomD,KAAApmD,IACAgoK,WAAA,OACA52J,UAAA,QACAkzI,IAAA//K,EAAA+/K,IACAriH,GAAA,qCACAz9D,EAAA,IACApJ,EAAA,GACAwB,KAAAsH,EAAA,IAAAD,EAAA,IAAApJ,EAAA,IAAA2M,EAAA,IAAA7P,EAAA,IAAApE,EAAA,IAAA3H,EAAA,IAAA8O,EAAA,KACAutM,MAAA,yBACAC,WAAA,6BACA/iM,IAAA,cACAgjM,OAAA,sDACA5vM,KAAA,MACA6vM,WAAAv3J,KAAA,EAAA6hG,KAAA,EAAAniI,MAAA,GACA83L,WAAAtb,OAAA,EAAAC,QAAA,GACAsb,SAAA,SAAAz3J,MACA,GAAA+wC,OAAA,aACAjrB,QAAApyD,EAAAixL;ApQ/jNA,AoQkkNA,GAFApJ,IAAAv7I,MAAAjjC,MAAAg0E,SAAAjrB,QAAApyD,EAAA4kL,aACAvnG,MAAA,UACAjrB,SAAApyD,EAAAixL,kBAAApJ,IAAAv7I,MAAAjjC,MAAAg0E,OAAA,CACA,GAAA4U,KAAA41F,IAAAv7I,MAAA5kD,QAAAg8M,MAAA,SAAA73K,IAAAumC,QAAA16B,MACA,GAAAssK,SACAC,OAAA,KAAA7xI,QAAAxqE,cACAqqG,IAAA55F,IAAA+5D,QAQA,OAPA16B,MAAAhwC,QAAAkZ,IAAA,SAAA1V,OACA+4M,QAAA,GAAAD,KAAA36M,SACA4oG,KAAA+xG,KAAA3rM,IAAA,KAAA+5D,QAAA,IAAA,KACA4xI,SAEAA,KAAA9xM,KAAAuqE,MAAAvxE,MAAA8I,SAEAi+F,IAAA+xG,MAEA,OAAA/xG,KAEA,GAAAhrG,GAAA2O,EAAAsjE,GAAA9G,QAAA9lB,KACA2lD,OACA,KAAA,GAAAvjG,GAAA,EAAAwxL,GAAAhnH,GAAA7vE,OAAA62L,GAAAxxL,EAAAA,IAAA,CACAzH,EAAAiyE,GAAAxqE,GACAkH,EAAAsjE,GAAAxqE,GAAA,GAAA9G,cACA,KAAAgO,IAAAA,EAAA,IACA,KAAA,GAAA9G,GAAA,EAAAsxL,GAAAn5L,EAAAoC,OAAA+2L,GAAAtxL,EAAAA,IACA8G,GAAA6mE,MAAAx1E,EAAA6H,GAAAkF,OAAAlF,GAAAsxL,GAAA,EAAA,IAAAvpL,EAEAo7F,KAAA//F,KAAA0D,GAEA,MAAAq8F,KAAA75F,KAAA6H,IAEAikM,aAAA,SAAAtX,IAAA3oD,GAAAC,IACA,GAAA9wI,GAAA4M,EAAAynL;ApQ/lNA,AoQimNA,MADAr0L,GAAAshH,QAAAk4E,IAAA,GAAA,KAEA3oD,GAAA7wI,EAAA6C,EAAAguI,GAAAC,IACAA,GAAA9wI,EAAA8C,EAAA+tI,GAAAC,MAGAigE,UAAA,SAAAl9M,EAAAqhJ,GAAAC,GAAAtE,GAAAC,GAAA0oD,KACA,GAAA1pL,GAAAjc,EAAAic,EACA9P,EAAAnM,EAAAwgM,OACA2c,QAAAlhM,EAAAkhM,QACA9wM,EAAArM,EAAA6nC,KACA1nC,EAAAkM,EAAAjH,MACA6J,EAAA,EACAsqG,KAAA,GAEA6jG,GAAArwM,KAAAs0I,GACAg8D,GAAAtwM,KAAAu0I,EAEA,IADAnhJ,EAAAkrB,WAAA,SACAg2H,IAAAC,GAAA,CAKA,GAFAj1I,EAAAixM,UAAA9oK,IAAA4oK,IAAApkM,EAAAw7B,IAAA6oK,IACAl9M,EAAAqtH,SAAAm4E,KAAA,EAAAtkD,GAAAC,GAAA,GAAA,GACAqkD,IAAA,CACA,GAAAvlM,GAAA68M,aAAAtX,IAAA3oD,GAAAC,GACAD,IAAA58I,EAAA48I,GACAC,GAAA78I,EAAA68I,GAMA,GAJA,EAAAoE,KAAA9nC,MAAA,KACA,EAAA+nC,KAAA/nC,MAAA,QAAAtqG,EAAA,IACA9O,EAAAo5G,KAAAA,KACAltG,EAAAkxM,YAAAvgE,IAAAogE,GAAApkM,EAAAikI,IAAAogE,GACAF,SAAAlhM,EAAAuhM,SAAA,CACA,GAAA5a,MAAAv2L,EAAA9J,qBAAAi6M,WACA5Z,MAAAA,MAAAA,KAAA,GACAv2L,EAAAjF,YAAAw7L,MACAua,UACA/8M,EAAA68M,aAAAtX,IAAAx5L,EAAA6C,EAAAmuM,QAAA,GAAAA,QAAA,IAAAhxM,EAAA8C,EAAAkuM,QAAA,GAAAA,QAAA,KACAva,KAAAx3K,SAAAhrB,EAAA48I,GAAA/tI,EAAA+J,EAAA5Y,EAAA68I,GAAAhuI,GAEAgN,EAAAuhM,WACA5a,KAAAnyL,KAAAwL,EAAAuhM,SAAA,GAAAhpK,IAAA6sG,IAAAroI,EAAAiD,EAAAuhM,SAAA,GAAAhpK,IAAA8sG;ApQxoNA,AoQ0oNAj1I,EAAA7J,YAAAogM,MAEAziM,EAAAkrB,WAAA,WAEAtS,GAAAzK,SAAA,WACA,MAAA,mFAAAlD,KAAAof,QAEA,IAAA2tL,UAAA,SAAA9rM,EAAApI,MAAAm0M,OAOA,IANA,GAAAl2K,QAAA0+J,IAAA38L,OAAAtD,cAAAT,MAAA,KACA24B,GAAAu/K,MAAA,MAAA,QACA3wM,EAAAy6B,OAAA9/B,OACA0B,KAAA,UACAiL,EAAA,SACAjM,EAAA,SACA2E,KACA,OAAAy6B,OAAAz6B,IACA,IAAA,QACA,IAAA,UACA,IAAA,OACA,IAAA,UACA,IAAA,OACA,IAAA,OACA3D,KAAAo+B,OAAAz6B,EACA,MACA,KAAA,OACA,IAAA,SAAA3E,EAAAo/B,OAAAz6B,EAAA,MACA,KAAA,OACA,IAAA,QAAAsH,EAAAmzB,OAAAz6B,GAGA,GAAA67L,QAAAj3L,EAAAw7B,KAAAtlC,qBAAA,UAAA,EACA+gM,QAAAzqK,GAAA,SAAA/0B,KACAw/L,OAAAzqK,GAAA,eAAA9pB,EACAu0L,OAAAzqK,GAAA,cAAA/1B,GAEAq3M,iBAAA,SAAA9tM,EAAAu4C;ApQ5qNA,AoQ8qNAv4C,EAAAitL,MAAAjtL,EAAAitL,SACA,IAAAzxJ,MAAAx7B,EAAAw7B,KACAjoC,EAAAyM,EAAAitL,MACAn5L,EAAA0nC,KAAAziC,MAEAq4M,QAAAb,UAAAvwM,EAAAvI,QAAA8gD,OAAA51C,GAAApP,EAAAoP,GAAA41C,OAAA31C,GAAArP,EAAAqP,GAAA21C,OAAAh+C,OAAAhH,EAAAgH,OAAAg+C,OAAA/9C,QAAAjH,EAAAiH,QAAA+9C,OAAAr2B,IAAA3uB,EAAA2uB,IAAAq2B,OAAAp9C,IAAA5H,EAAA4H,IAAAo9C,OAAAw+I,IAAAxjM,EAAAwjM,IAAAx+I,OAAAy+I,IAAAzjM,EAAAyjM,IAAAz+I,OAAAj2C,GAAA/O,EAAA+O,GACA+uM,OAAAb,UAAAxwM,EAAAvI,QAAAlE,EAAA2uB,IAAAq2B,OAAAr2B,IAAA3uB,EAAA4H,IAAAo9C,OAAAp9C,IAAA5H,EAAA+O,GAAAi2C,OAAAj2C,GAAA/O,EAAAwjM,IAAAx+I,OAAAw+I,IAAAxjM,EAAAyjM,IAAAz+I,OAAAy+I,IACAr4F,IAAA3+F,CAGA,KAAA,GAAA2gM,OAAApoJ,QAAAA,OAAA3wC,KAAA+4L,OACAptM,EAAAotM,KAAApoJ,OAAAooJ,KAoBA,IAlBAyQ,UACA79M,EAAAylD,KAAAtsC,EAAA6rL,SAAAv4L,EAAAvI,MAAAuI,GACAA,EAAA4P,EAAAs2L,MAAA,GAEA3tJ,OAAAtpC,OAAAusB,KAAAvsB,KAAAspC,OAAAtpC,MACAspC,OAAA6kE,QAAA5hF,KAAA4hF,MAAA7kE,OAAA6kE,OACA7kE,OAAAlnC,SAAAmqB,KAAAnqB,OAAAknC,OAAAlnC,QACAknC,OAAAwhB,SAAAjmE,EAAAimE,OAAAxhB,OAAAwhB,QACA,QAAAxhB,SAAAv4C,EAAA2T,KAAA4kC,OAAA5kC;ApQlsNA,CoQmsNA4kC,OAAAS,MAAA,QAAAh5C,EAAAvI,MAAA25M,WACA51K,KAAAwd,KAAAy3J,UAAAlc,IAAAhhM,EAAAylD,MAAA1kD,cAAAyN,QAAA,KAAA2K,EAAAixL,gBAAApqM,EAAAylD,MAAAzlD,EAAAylD,MACA,SAAAh5C,EAAAvI,OACAuI,EAAA4P,EAAAkhM,SAAAv9M,EAAAoP,EAAApP,EAAAqP,GACA5C,EAAA4P,EAAAuhM,UAAA59M,EAAAgH,MAAAhH,EAAAiH,QACAq2M,UAAA7wM,EAAA,EAAA,EAAA,EAAA,EAAA,KAGA,aAAAu4C,SAAAv4C,EAAA01B,UAAA6iB,OAAA7iB,WACA27K,OAAA,CACA,GAAAnvL,KAAA3uB,EAAA2uB,GACA/mB,IAAA5H,EAAA4H,GACA47L,IAAAxjM,EAAAwjM,KAAAxjM,EAAA+O,GAAA,EACA00L,IAAAzjM,EAAAyjM,KAAAzjM,EAAA+O,GAAA,CACAk5B,MAAAwd,KAAAtsC,EAAA6tB,OAAA,qCAAA4uC,OAAAjnD,GAAA60K,IAAAr2L,MAAAyoE,OAAAhuE,GAAA67L,IAAAt2L,MAAAyoE,OAAAjnD,GAAA60K,IAAAr2L,MAAAyoE,OAAAhuE,GAAA67L,IAAAt2L,MAAAyoE,MAAAjnD,GAAAxhB,OACAV,EAAA4P,EAAAs2L,MAAA,EAEA,GAAA,aAAA3tJ,QAAA,CACA,GAAAsiG,MAAA05C,IAAAh8I,OAAA,cAAA1kD,MAAA0lD,UACA,IAAA,GAAAshG,KAAA9kJ,OAAA,CACA8kJ,KAAA,IAAAA,KAAA,KAAAA,KAAA,GACAA,KAAA,IAAAA,KAAA,KAAAA,KAAA,EACA,IAAA2kC,KAAAhkJ,KAAA81K,UAAA5kM,EAAAksL,GAAA/7C,IAAA/mJ,cAAA,OACAy7M,OAAA/xB,IAAAzmL;ApQztNA,AoQ0tNAw4M,OAAAl/E,KAAA3lH,EAAA6tB,OAAA,gCAAAsgH,MACAr/G,KAAA81K,WACAC,OAAAxyL,SAAA,WACAwyL,OAAAzmM,IAAA,EACAymM,OAAAtxL,KAAA,EACAsxL,OAAAh3M,MAAAyF,EAAA0zL,MAAAn5L,MAAA,KACAg3M,OAAA/2M,OAAAwF,EAAA0zL,MAAAl5L,OAAA,KACAghC,KAAAtmC,WAAAuV,aAAA+0K,IAAAhkJ,MACAgkJ,IAAArpL,YAAAqlC,MACAA,KAAA81K,SAAA9xB,KAGAjnI,OAAA,cACA/c,KAAA81K,WAAA91K,KAAA81K,SAAAv4M,MAAAs5H,KAAA,QAGA,GAAAryH,EAAAwxM,SAAA,CACA,GAAAC,eAAAzxM,EAAAwxM,SAAAz4M,KACAw/C,QAAAymH,OAAAyyC,cAAAzyC,KAAAzmH,OAAAymH,MACAzmH,OAAA,iBAAAk5J,cAAAC,WAAA,IAAAn5J,OAAA,eAAA1kD,MAAA,KAAA,GAAAO,QAAA,iBAAAmP,GAAA,KACAg1C,OAAA,eAAAk5J,cAAArgF,SAAA74E,OAAA,cACAA,OAAA,iBAAAk5J,cAAAtyL,WAAAo5B,OAAA;ApQ9uNA,AoQ+uNAA,OAAA,gBAAAk5J,cAAAE,UAAAp5J,OAAA,eAQA,GANA,eAAAA,SACAuzJ,SAAAntG,IAAApmD,OAAA,gBAEA,aAAAA,SACAuzJ,SAAAntG,IAAApmD,OAAA,aAAA,GAEA,MAAAA,OAAAl3C,SACA,MAAAk3C,OAAA,iBACA,MAAAA,OAAAg+I,MACA,MAAAh+I,OAAA96B,KACA,MAAA86B,OAAA0+I,QACA,MAAA1+I,OAAA,iBACA,MAAAA,OAAA,mBACA,MAAAA,OAAA,iBACA,MAAAA,OAAA,qBACA,MAAAA,OAAA,sBACA,MAAAA,OAAA,oBACA,MAAAA,OAAA,kBAAA,CACA,GAAAg+I,MAAA/6J,KAAAtlC,qBAAAi6M,YACAyB,SAAA,CAUA,IATArb,KAAAA,MAAAA,KAAA,IACAA,OAAAqb,QAAArb,KAAAsb,WAAA1B,aACA,SAAAnwM,EAAAvI,MAAA8gD,OAAA96B,MACA84K,KAAA94K,IAAA86B,OAAA96B;ApQvwNA,AoQywNA86B,OAAAg+I,OAAAA,KAAA1hL,IAAA,IACA,MAAA0hL,KAAA1hL,IAAA,QAAA0jC,OAAAg+I,MAAA,OAAAh+I,OAAAg+I,QACAA,KAAA1hL,IAAA,GAEA0hL,KAAA1hL,IAAA0jC,OAAAg+I,KAAA,CACA,GAAAgY,OAAAha,IAAAh8I,OAAAg+I,MAAAxgL,MAAArJ,EAAAopL,OACA,IAAAyY,MAAA,CACAhY,KAAArhM,YAAAsmC,MAAAA,KAAAzgC,YAAAw7L,MACAA,KAAAn1E,QAAA,EACAm1E,KAAA94K,IAAA8wL,MAAA,GACAhY,KAAA9+L,KAAA,MACA,IAAA+gM,MAAAx4L,EAAAq0L,QAAA,EACAkC,MAAAx3K,SAAAy5K,KAAA71L,EAAAgK,EAAA6rL,KAAA51L,EACA5C,EAAA4P,EAAAkhM,SAAAtY,KAAA71L,EAAA61L,KAAA51L,GAEA8J,EAAAwuL,SAAAqT,MAAA,GAAA,WACAvuM,EAAA4P,EAAAuhM,UAAApyM,KAAAnF,YAAAmF,KAAAlF,oBAGA08L,MAAAzjE,MAAApmH,EAAAmnL,OAAAt7I,OAAAg+I,MAAAzI,IACAyI,KAAA94K,IAAAla,EACAgzL,KAAA9+L,KAAA,QACAiV,EAAAmnL,OAAAt7I,OAAAg+I,MAAA35L,QAAA+hG,IAAAlnG,QAAAy9L,OAAA,EAAAC,QAAA,IAAA,KAAAZ,IAAAh8I,OAAAg+I,MAAAh+L,WAAA4yM,gBAAAxsG,IAAApmD,OAAAg+I,KAAAA,QACAhjM,EAAAgjM,KAAA,OACAhjM,EAAAsjM,SAAAt+I,OAAAg+I;ApQhyNA,AoQiyNAA,KAAAn1E,QAAA,GAIA,GAAA,gBAAA7oE,SAAA,WAAAA,QAAA,CACA,GAAAl3C,YAAA9N,EAAA,gBAAA,GAAA,GAAA,MAAAA,EAAA8N,QAAA,GAAA,GAAA,MAAAqL,EAAAmnL,OAAAt7I,OAAAg+I,MAAAv2L,EAAA,GAAA,GAAA,EACAqB,SAAAmuL,KAAAD,KAAAluL,QAAA,GAAA,GACAk1L,KAAAl1L,QAAAA,QACAk1L,KAAA94K,MACA84K,KAAAzjE,MAAA,QAGAt3F,KAAArlC,YAAAogM,KACA,IAAAU,QAAAz7J,KAAAtlC,qBAAA,WAAAslC,KAAAtlC,qBAAA,UAAA,GACA47M,WAAA,GACA7a,SAAA6a,UAAA7a,OAAA4a,WAAA,YACAt5J,OAAA0+I,QAAA,QAAA1+I,OAAA0+I,QACA1+I,OAAA,iBACA,MAAAA,OAAA,mBACAA,OAAA,qBACAA,OAAA,sBACAA,OAAA,oBACAA,OAAA,qBACA0+I,OAAApiL,IAAA,IAEA,QAAA0jC,OAAA0+I,QAAA,OAAA1+I,OAAA0+I,QAAA,MAAAA,OAAApiL,IAAA,GAAA0jC,OAAA0+I,QAAA,GAAA1+I,OAAA,mBAAA0+I,OAAApiL,IAAA;ApQzzNA,AoQ0zNA,GAAAk9L,aAAArlM,EAAAmnL,OAAAt7I,OAAA0+I,OACAA,QAAApiL,IAAA0jC,OAAA0+I,SAAAA,OAAAnkE,MAAAi/E,YAAAjkB,KACAzsL,WAAA9N,EAAA,kBAAA,GAAA,GAAA,MAAAA,EAAA8N,QAAA,GAAA,GAAA,MAAA0wM,YAAA/xM,EAAA,GAAA,GAAA,EACA,IAAAzF,OAAA,KAAA04L,QAAA16I,OAAA,kBAAA,EAUA,IATAl3C,QAAAmuL,KAAAD,KAAAluL,QAAA,GAAA,GACA,MAAAk3C,OAAA,kBAAAh+C,MAAAhH,EAAA,iBACAglD,OAAA,kBAAA0+I,OAAAiS,OAAA3uM,OACAA,OAAA,EAAAA,QAAA8G,SAAA9G,SAAA08L,OAAAiS,OAAA,GACAjS,OAAA51L,QAAAA,QAEAk3C,OAAA,qBAAA0+I,OAAA+a,UAAAz5J,OAAA,oBAAA,SACA0+I,OAAAgb,WAAA15J,OAAA,sBAAA,EACAA,OAAA,oBAAA0+I,OAAAib,OAAA,QAAA35J,OAAA,kBAAA,OAAA,UAAAA,OAAA,kBAAA,SAAA;ApQr0NA,AoQs0NA,oBAAAA,QAAA,CACA,GAAAw0J,YACAE,IAAA,YACAC,IAAA,WACAC,KAAA,eACAC,MAAA,kBACAC,KAAA,MACAC,KAAA,OACAC,KAAA,WACAC,MAAA,UACAC,MAAA,cACAC,OAAA,iBAEAzW,QAAAkb,UAAApF,UAAAnlM,KAAA2wC,OAAA,qBAAAw0J,UAAAx0J,OAAA,qBAAAh1C,EAEAuuM,WAAAt2K,KAAArlC,YAAA8gM,QAEA,GAAA,QAAAt4F,IAAAlnG,KAAA,CACAknG,IAAA+0F,MAAA7V,OAAA9kL,MAAAC,QAAAuK,CACA,IAAAq7K,MAAAjgF,IAAA+0F,MAAA9U,KACA9+K,EAAA,IACAsxH,SAAA79H,EAAAyrK,MAAAzrK,EAAAyrK,KAAAjpJ,MAAA,sBACAjiB,GAAA8qL,KAAA7lL,MACAxF,EAAAyrK,OAAAlrK,EAAAkrK,KAAAzrK,EAAAyrK,MACAzrK,EAAA,iBAAAO,EAAA49M,WAAAn+M,EAAA,gBACAA,EAAA,iBAAAO,EAAAqrB,WAAA5rB,EAAA,gBACAA,EAAA,gBAAAO,EAAA69M,UAAAp+M,EAAA;ApQ/1NA,AoQg2NA69H,SAAA6hE,QAAA1/L,EAAA,cAAA69H,UAAAA,SAAA,KAAA,GACAt9H,EAAAs9H,SAAAA,SAAAtxH,EAAA,KACA6+F,IAAA6yG,SAAAtoL,SAAA01J,KAAAtnL,UAAAi9L,IAAA51F,IAAA6yG,SAAAtoL,QAAA90B,QAAA,KAAA,SAAAA,QAAA,KAAA,SAAAA,QAAA,MAAA,QACA,IAAAg+M,OAAAxzB,KAAA52J,uBACA22E,KAAAnvF,EAAAjc,EAAAmP,GAAA0vM,MAAA7qK,MAAA6qK,MAAAnyL,MAAAngB,EACA6+F,IAAAnqG,EAAAjB,EAAAkD,GAAA27M,MAAAriG,OAAAqiG,MAAAtnM,KAAAhL,EAEA6+F,IAAAlvF,EAAAlc,EAAAoP,EACAg8F,IAAAjvF,EAAAnc,EAAAqP,EAAA+7F,IAAAnqG,EAAA,GAEA,KAAA+jD,SAAA,KAAAA,WAAAomD,IAAA3lD,KAAAv2C,EAAAiK,EAAA6tB,OAAA,mBAAA4uC,MAAA51E,EAAAoP,EAAAjC,MAAAyoE,MAAA51E,EAAAqP,EAAAlC,MAAAyoE,MAAA51E,EAAAoP,EAAAjC,MAAA,GAEA,KAAA,GADA2xM,aAAA,IAAA,IAAA,OAAA,OAAA,cAAA,cAAA,aAAA,aACAp+M,EAAA,EAAA+/E,GAAAq+H,WAAAt8M,OAAAi+E,GAAA//E,EAAAA,IAAA,GAAAo+M,WAAAp+M,IAAAskD,QAAA,CACAomD,IAAA/uF,EAAAs2L,MAAA,CACA,OAIA,OAAA3yM,EAAA;ApQj3NA,AoQk3NA,IAAA,QACAorG,IAAA6yG,SAAAz4M,MAAA,gBAAA,OACA4lG,IAAA2zG,IAAA3zG,IAAAnvF,EAAA,CACA,MACA,KAAA,MACAmvF,IAAA6yG,SAAAz4M,MAAA,gBAAA,QACA4lG,IAAA2zG,KAAA3zG,IAAAnvF,EAAA,CACA,MACA,SACAmvF,IAAA6yG,SAAAz4M,MAAA,gBAAA,SACA4lG,IAAA2zG,IAAA,EAGA3zG,IAAA6yG,SAAAz4M,MAAA,gBAAA,IAIAoyM,gBAAA,SAAAnrM,EAAA62L,SAAAN,MACAv2L,EAAAitL,MAAAjtL,EAAAitL,SACA,IACA1qH,MADAviE,EAAAitL,MACA3zL,KAAAipE,KAGA9qE,KAAA,SACA86M,KAAA,OAaA,IAZAvyM,EAAAitL,MAAA4J,SAAAA,SACAA,SAAAtC,IAAAsC,UAAAziM,QAAAsY,EAAAwrL,iBAAA,SAAA3/J,IAAAr5B,GAAAksM,IAQA,MAPA3zM,MAAA,SACAyH,IAAAksM,KACAlsM,GAAA+zL,QAAA/zL,IACAksM,GAAAnY,QAAAmY,IACA7oI,IAAArjE,GAAA,GAAA,GAAAqjE,IAAA6oI,GAAA,GAAA,GAAA,MAAAA,GAAA78G,KAAAujC,KAAA,IAAAvvD,IAAArjE,GAAA,GAAA,KAAA,GAAAksM,GAAA,IAAA,GAAA,IACAmH,KAAArzM,GAAAyN,EAAAy+L,IAEA7nM,IAEAszL,SAAAA,SAAAhjM,MAAA,YACA,UAAA4D,KAAA;ApQt5NA,AoQu5NA,GAAAs5I,OAAA8lD,SAAA16L,OAEA,IADA40I,OAAAkiD,QAAAliD,OACAtrI,MAAAsrI,OACA,MAAA,MAGA,GAAA8sD,MAAAnxL,EAAAg0L,WAAA7J,SACA,KAAAgH,KACA,MAAA,KAGA,IADA79L,EAAAA,EAAA8jM,OAAA9jM,EAAAw7B,KACAqiK,KAAA9nM,OAAA,CACAiK,EAAAjF,YAAAw7L,MACAA,KAAA1hL,IAAA,EACA0hL,KAAArpJ,OAAA,OACAqpJ,KAAAzjE,MAAA+qE,KAAA,GAAA/qE,MACAyjE,KAAAic,OAAA3U,KAAAA,KAAA9nM,OAAA,GAAA+8H,KAEA,KAAA,GADA2/E,SACAr3M,EAAA,EAAAwxL,GAAAiR,KAAA9nM,OAAA62L,GAAAxxL,EAAAA,IACAyiM,KAAAziM,GAAAysB,QAAA4qL,KAAA7zM,KAAAi/L,KAAAziM,GAAAysB,OAAAlb,EAAAkxL,KAAAziM,GAAA03H,MAEAyjE,MAAAmc,OAAAD,KAAA18M,OAAA08M,KAAA3tM,OAAA,MAAAyxL,KAAAzjE,MACA,UAAAr7H,MACA8+L,KAAA9+L,KAAA,gBACA8+L,KAAA7iL,MAAA,OACA6iL,KAAAoc,UAAA,MACApc,KAAAqc,cAAAL,KACAhc,KAAAxlD,MAAA,IAGAwlD,KAAA9+L,KAAA,WACA8+L,KAAAxlD,OAAA,IAAAA,OAAA,KAEA/wI,EAAA7J,YAAAogM,MAEA,MAAA,IAEAxjG,QAAA,SAAAv3D,KAAA09J,KACAn6L,KAAA,GAAAA,KAAAy8B,KAAAA;ApQ57NA,AoQ67NAA,KAAAwpK,SAAA,EACAjmM,KAAAgF,GAAA2I,EAAA0sL,OACA59J,KAAAkqK,UAAA3mM,KAAAgF,GACAhF,KAAA0Q,EAAA,EACA1Q,KAAA2Q,EAAA,EACA3Q,KAAAkuL,SACAluL,KAAA20L,MAAAwF,IACAn6L,KAAAo1L,OAAAznL,EAAAynL,SACAp1L,KAAA6Q,GACA8lB,aACAs/G,GAAA,EACAC,GAAA,EACAtE,GAAA,EACAC,GAAA,EACA0oD,IAAA,EACA4M,MAAA,EACAzE,OAAA,IAEAvI,IAAAnpF,SAAAmpF,IAAAnpF,OAAAhxG,MACAA,KAAAsb,KAAA6+K,IAAApuL,IACAouL,IAAApuL,MAAAouL,IAAApuL,IAAAsP,KAAArb,MACAm6L,IAAApuL,IAAA/L,KACAA,KAAAqb,KAAA,MAEAypL,QAAAn3L,EAAAqxI,EAEAhrD,SAAA7xF,UAAA2iM,QACAA,QAAArgM,YAAAuvF,QACA8wG,QAAAnuK,UAAA,SAAA2rK,MACA,GAAA,MAAAA,KACA,MAAAtiM,MAAA6Q,EAAA8lB,SAEA,IAEAm9K,MAFAC,IAAA/zM,KAAA20L,MAAAqf,cACAC,IAAAF,IAAA,KAAAA,IAAA5/E,MAAA4/E,IAAA5/E,OAAA,SAAA4/E,IAAAniE,GAAAmiE,IAAAliE,IAAArtI,CAEAuvM,OACAD,KAAAxR,KAAA9M,IAAA8M,MAAAjtM,QAAA,gBAAA2K,KAAA6Q,EAAA8lB,WAAAnyB,IAEAmJ,EAAA00L,kBAAAriM,KAAAi0M,IAAA3R,KACA,IAGAxtM,OAHAsgM,OAAAp1L,KAAAo1L,OAAAruL,QACAmtM,KAAAl0M,KAAAk0M,KACAjzM,EAAAjB,KAAAy8B,KAEA03K,QAAA3e,IAAAx1L,KAAAkuL,MAAAsJ,MAAAx0L,QAAA,KACAoxM,QAAA5e,IAAAx1L,KAAAkuL,MAAAsJ,MAAAx0L,QAAA;ApQx+NA,AoQ0+NA,GADAoyL,OAAA1wG,UAAA,EAAA,GACA0vH,QAAAD,QAAA,SAAAn0M,KAAAtH,KAIA,GAHAw7M,KAAA9e,OAAA,UACA8e,KAAAprL,OAAA,MACAh0B,MAAAsgM,OAAAtgM,QACAq/M,QAAAr/M,MAAA8uM,aAAA9uM,MAAA6kD,SAAA,CACA14C,EAAAjH,MAAAtD,OAAA0+L,OAAAiO,UACA,IAAAptM,IAAA+J,KAAAs1L,UACA+e,IAAAr0M,KAAAs1L,QAAA,GACA1jD,GAAA37I,GAAA2N,EAAAywM,IAAAzwM,EACAiuI,GAAA57I,GAAA4N,EAAAwwM,IAAAxwM,CACA5C,GAAAkxM,YAAAvgE,IAAAjwI,KAAAiM,EAAAikI,IAAAlwI,KACAmwM,UAAA9xM,KAAA,EAAA,EAAA4xI,GAAAC,GAAA,OAEA5wI,GAAAjH,MAAAtD,OAAA8N,EACAstM,UAAA9xM,KAAAlL,MAAAyuM,OAAAzuM,MAAA2uM,OAAA3uM,MAAA88I,GAAA98I,MAAA+8I,GAAA/8I,MAAAutH,YAGAphH,GAAAjH,MAAAtD,OAAA8N,EACA0vM,KAAA9e,OAAAI,IAAAJ,QACA8e,KAAAprL,OAAAssK,OAAAtsK,QAGA,OADAgrL,QAAA9zM,KAAA6Q,EAAA8lB,UAAAm9K,MACA9zM,MAEA8kM,QAAAziF,OAAA,SAAAk4E,IAAAp3K,GAAA/mB,IACA,GAAA4D,KAAAy+K,QACA,MAAAz+K,KAEA,IAAA,MAAAu6L,IAAA,CAUA,GAPAA,IAAA/E,IAAA+E,KAAAzlM,MAAA0lD,WACA+/I,IAAAvjM,OAAA,IACAmsB,GAAA+wK,QAAAqG,IAAA;ApQ1gOA,AoQ2gOAn+L,GAAA83L,QAAAqG,IAAA,KAEAA,IAAArG,QAAAqG,IAAA,IACA,MAAAn+L,KAAA+mB,GAAA/mB,IACA,MAAA+mB,IAAA,MAAA/mB,GAAA,CACA,GAAAq9L,MAAAz5L,KAAAs1L,QAAA,EACAnyK,IAAAs2K,KAAA71L,EAAA61L,KAAAj+L,MAAA,EACAY,GAAAq9L,KAAA51L,EAAA41L,KAAAh+L,OAAA,EAIA,MAFAuE,MAAA6Q,EAAA6xL,OAAA,EACA1iM,KAAA22B,UAAA32B,KAAA6Q,EAAA8lB,UAAAn4B,SAAA,IAAA+7L,IAAAp3K,GAAA/mB,OACA4D,OAEA8kM,QAAApgH,UAAA,SAAAktD,GAAAC,IACA,MAAA7xI,MAAAy+K,QACAz+K,MAEA4xI,GAAA4jD,IAAA5jD,IAAA98I,MAAA0lD,WACAo3F,GAAA56I,OAAA,IACA66I,GAAAqiD,QAAAtiD,GAAA,KAEAA,GAAAsiD,QAAAtiD,GAAA,KAAA,EACAC,IAAAA,IAAA,EACA7xI,KAAA6Q,EAAA4oL,OACAz5L,KAAA6Q,EAAA4oL,KAAA71L,GAAAguI,GACA5xI,KAAA6Q,EAAA4oL,KAAA51L,GAAAguI,IAEA7xI,KAAA22B,UAAA32B,KAAA6Q,EAAA8lB,UAAAn4B,SAAA,IAAAozI,GAAAC,OACA7xI,OAEA8kM,QAAA3wE,MAAA,SAAA8hB,GAAAC,GAAA/yH,GAAA/mB,IACA,GAAA4D,KAAAy+K,QACA,MAAAz+K,KAaA,IAXAi2I,GAAAu/C,IAAAv/C,IAAAnhJ,MAAA0lD,WACAy7F,GAAAj/I,OAAA,IACAk/I,GAAAg+C,QAAAj+C,GAAA,IACA9yH,GAAA+wK,QAAAj+C,GAAA,IACA75I,GAAA83L,QAAAj+C,GAAA;ApQhjOA,AoQijOAvvI,MAAAyc,MAAAA,GAAA,MACAzc,MAAAtK,MAAAA,GAAA,OAEA65I,GAAAi+C,QAAAj+C,GAAA,IACA,MAAAC,KAAAA,GAAAD,IACA,MAAA75I,KAAA+mB,GAAA/mB,IACA,MAAA+mB,IAAA,MAAA/mB,GACA,GAAAq9L,MAAAz5L,KAAAs1L,QAAA,EAOA,OALAnyK,IAAA,MAAAA,GAAAs2K,KAAA71L,EAAA61L,KAAAj+L,MAAA,EAAA2nB,GACA/mB,GAAA,MAAAA,GAAAq9L,KAAA51L,EAAA41L,KAAAh+L,OAAA,EAAAW,GAEA4D,KAAA22B,UAAA32B,KAAA6Q,EAAA8lB,UAAAn4B,SAAA,IAAAy3I,GAAAC,GAAA/yH,GAAA/mB,OACA4D,KAAA6Q,EAAA6xL,OAAA,EACA1iM,MAEA8kM,QAAA/iM,KAAA,WAEA,OADA/B,KAAAy+K,UAAAz+K,KAAAy8B,KAAAziC,MAAAC,QAAA,QACA+F,MAEA8kM,QAAAhjM,KAAA,WAEA,OADA9B,KAAAy+K,UAAAz+K,KAAAy8B,KAAAziC,MAAAC,QAAAuK,GACAxE,MAEA8kM,QAAApL,SAAA,WACA,MAAA15L,MAAAy+K,YAIA76K,EAAA5D,KAAA0Q,GAAA1Q,KAAAuzM,KAAA,GAAAvzM,KAAAyQ,EAAA,EACA5M,EAAA7D,KAAA2Q,EAAA3Q,KAAAvK,EACA+F,MAAAwE,KAAAyQ,EACAhV,OAAAuE,KAAAvK,IAGAqvM,QAAAzpM,OAAA,WACA,IAAA2E,KAAAy+K,SAAAz+K,KAAAy8B,KAAAtmC,WAAA,CAGA6J,KAAA20L,MAAAgR,SAAA3lM,KAAA20L,MAAAgR,QAAAnkC,QAAAxhK;ApQvlOA,AoQwlOA2N,EAAA+/K,IAAAz3K,OAAA,eAAAjW,KAAAgF,IACA2I,EAAAk0L,MAAA7hM,KAAAA,KAAA20L,OACA30L,KAAAy8B,KAAAtmC,WAAA6F,YAAAgE,KAAAy8B,MACAz8B,KAAA+kM,OAAA/kM,KAAA+kM,MAAA5uM,WAAA6F,YAAAgE,KAAA+kM,MACA,KAAA,GAAA1oM,KAAA2D,MACAA,KAAA3D,GAAA,kBAAA2D,MAAA3D,GAAAsR,EAAAqwL,gBAAA3hM,GAAA,IAEA2D,MAAAy+K,SAAA,IAEAqmB,QAAAjgM,KAAA,SAAAgI,KAAAhU,OACA,GAAAmH,KAAAy+K,QACA,MAAAz+K,KAEA,IAAA,MAAA6M,KAAA,CACA,GAAA+yF,OACA,KAAA,GAAAprG,KAAAwL,MAAAkuL,MAAAluL,KAAAkuL,MAAArlL,KAAArU,KACAorG,IAAAprG,GAAAwL,KAAAkuL,MAAA15L,GAIA,OAFAorG,KAAAk4F,UAAA,QAAAl4F,IAAA43F,OAAA53F,IAAA43F,KAAA53F,IAAAk4F,iBAAAl4F,KAAAk4F,SACAl4F,IAAAjpE,UAAA32B,KAAA6Q,EAAA8lB,UACAipE,IAEA,GAAA,MAAA/mG,OAAA8U,EAAAoF,GAAAlG,KAAA,UAAA,CACA,GAAAA,MAAAukM,YAAA,QAAApxM,KAAAkuL,MAAAsJ,MAAAx3L,KAAAkuL,MAAA4J,SACA,MAAA93L,MAAAkuL,MAAA4J,QAIA,KAAA,GAFApvG,OAAA77E,KAAA/X,MAAA0lD,WACAyK,OACA5oD,EAAA,EAAAwxL,GAAAnlG,MAAA1xF,OAAA62L,GAAAxxL,EAAAA,IACAwQ,KAAA67E,MAAArsF;ApQpnOA,AoQqnOAwQ,OAAA7M,MAAAkuL,MACAjpI,IAAAp4C,MAAA7M,KAAAkuL,MAAArhL,MACAc,EAAAoF,GAAA/S,KAAA20L,MAAAC,iBAAA/nL,MAAA,YACAo4C,IAAAp4C,MAAA7M,KAAA20L,MAAAC,iBAAA/nL,MAAAqjM,IAEAjrJ,IAAAp4C,MAAAc,EAAAypL,gBAAAvqL,KAGA,OAAAghL,IAAA,EAAA5oI,IAAAA,IAAAyjC,MAAA,IAEA,GAAA1oF,KAAAkuL,OAAA,MAAAr1L,OAAA8U,EAAAoF,GAAAlG,KAAA,SAAA,CAEA,IADAo4C,OACA5oD,EAAA,EAAAwxL,GAAAhhL,KAAA7V,OAAA62L,GAAAxxL,EAAAA,IACA4oD,IAAAp4C,KAAAxQ,IAAA2D,KAAA6E,KAAAgI,KAAAxQ,GAEA,OAAA4oD,KAEA,GAAAzL,OACA,OAAA3gD,QACA2gD,UACAA,OAAA3sC,MAAAhU,OAEA,MAAAA,OAAA8U,EAAAoF,GAAAlG,KAAA,YAAA2sC,OAAA3sC,KACA,KAAA,GAAAw+B,OAAAmO,QACAk0I,IAAA,gBAAAriJ,IAAA,IAAArrC,KAAAgF,GAAAhF,KAAAw5C,OAAAnO,KAEA,IAAAmO,OAAA,CACA,IAAAnO,MAAArrC,MAAA20L,MAAAC,iBAAA,GAAA50L,KAAA20L,MAAAC,iBAAA/rL,KAAAwiC,MAAAmO,OAAA3wC,KAAAwiC,MAAA19B,EAAAoF,GAAA/S,KAAA20L,MAAAC,iBAAAvpJ,KAAA,YAAA;ApQ/oOA,AoQgpOA,GAAAu2J,KAAA5hM,KAAA20L,MAAAC,iBAAAvpJ,KAAAxlC,MAAA7F,QAAAxB,OAAAg7C,OAAAnO,MACArrC,MAAAkuL,MAAA7iJ,KAAAmO,OAAAnO,IACA,KAAA,GAAA8kK,UAAAvO,KAAAA,IAAA/4L,KAAAsnM,UACA32J,OAAA22J,QAAAvO,IAAAuO,SAIA32J,OAAAvgD,MAAA,QAAA+G,KAAAtH,OACAsH,KAAAyyM,SAAAtoL,OAAAqvB,OAAAvgD,MAEA81M,iBAAA/uM,KAAAw5C,QAGA,MAAAx5C,OAEA8kM,QAAAsL,QAAA,WAGA,OAFApwM,KAAAy+K,SAAAz+K,KAAAy8B,KAAAtmC,WAAAiB,YAAA4I,KAAAy8B,MACAz8B,KAAA20L,OAAA30L,KAAA20L,MAAA5oL,KAAA/L,MAAA2N,EAAAo0L,SAAA/hM,KAAAA,KAAA20L,OACA30L,MAEA8kM,QAAAuL,OAAA,WACA,MAAArwM,MAAAy+K,QACAz+K,MAEAA,KAAAy8B,KAAAtmC,WAAAyT,YAAA5J,KAAAy8B,OACAz8B,KAAAy8B,KAAAtmC,WAAAuV,aAAA1L,KAAAy8B,KAAAz8B,KAAAy8B,KAAAtmC,WAAAyT,YACA+D,EAAAq0L,QAAAhiM,KAAAA,KAAA20L,QAEA30L,OAEA8kM,QAAA9lL,YAAA,SAAA0zE;ApQ7qOA,AoQ8qOA,MAAA1yF,MAAAy+K,QACAz+K,MAEA0yF,QAAAjuF,aAAAkJ,EAAAof,GAAAtoB,cACAiuF,QAAAA,QAAAA,QAAA17F,OAAA,IAEA07F,QAAAj2D,KAAA5jB,YACA65E,QAAAj2D,KAAAtmC,WAAAuV,aAAA1L,KAAAy8B,KAAAi2D,QAAAj2D,KAAA5jB,aAEA65E,QAAAj2D,KAAAtmC,WAAAiB,YAAA4I,KAAAy8B,MAEA9uB,EAAAs0L,aAAAjiM,KAAA0yF,QAAA1yF,KAAA20L,OACA30L,OAEA8kM,QAAAp5L,aAAA,SAAAgnF,SACA,MAAA1yF,MAAAy+K,QACAz+K,MAEA0yF,QAAAjuF,aAAAkJ,EAAAof,GAAAtoB,cACAiuF,QAAAA,QAAA,IAEAA,QAAAj2D,KAAAtmC,WAAAuV,aAAA1L,KAAAy8B,KAAAi2D,QAAAj2D,MACA9uB,EAAAw0L,cAAAniM,KAAA0yF,QAAA1yF,KAAA20L,OACA30L,OAEA8kM,QAAAlwL,KAAA,SAAAvP,MACA,GAAAtQ,GAAAiL,KAAAy8B,KAAAtb,aACAvrB,EAAAb,EAAA2B,MAWA,OAVAd,GAAAA,EAAAP,QAAAi8M,WAAA9sM,GACA,KAAAa,MACArF,KAAAkuL,MAAAt5K,KAAAvP,KACAtQ,EAAA2B,OAAAd,EAAAgY,EAAAy9D,GAAA,uBAAAhmE,MAAA,KAAA;ApQ5sOA,AoQ6sOAtQ,EAAAysB,OAAA7T,EAAA6tB,OAAA,oBAAA4uC,OAAA/kE,MAAA,QAEAtQ,EAAA2B,OAAAd,EACAb,EAAAysB,OAAA,QACAxhB,MAAAkuL,MAAAt5K,MAEA5U,MAGA2N,EAAA6gL,QAAAv0I,KAAA,SAAAwiJ,WAAAtC,KACA,GAAAn7C,IAAA8zD,WAAA,QACA9zD,IAAAhlJ,MAAA0P,QAAA6nM,OACAvyD,GAAAkzD,UAAAvwM,KAAAiM,EAAAjM,KACAq9I,GAAAmzD,YAAAhY,IAAAgY,WACA,IAAAv9M,GAAA,GAAAo/F,SAAAgrD,GAAAm7C,KACAt1L,MAAA2yL,KAAA,OAAAU,OAAA,OACAuE,cAAA53L,KAAAo1C,KAAAwiJ,YACA7nM,EAAA8D,KAAA,OACA9D,EAAAqlD,QACArlD,EAAA0/M,KAAA9vM,EACAuqM,iBAAAn6M,EAAAiQ,MACAs1L,IAAArb,OAAA1nL,YAAA4nJ,GACA,IAAAk1D,MAAApB,WAAA,OAKA,OAJAoB,MAAAp+L,IAAA,EACAkpI,GAAA5nJ,YAAA88M,MACAt/M,EAAAs/M,KAAAA,KACAt/M,EAAA+hC,UAAAnyB,GACA5P,GAEA+Y,EAAA6gL,QAAA1yC,KAAA,SAAAq+C,IAAAv2L,EAAAC,EAAAF,EAAAjM,EAAA6L,GACA,GAAA02C,MAAAtsC,EAAA0rL,UAAAz1L,EAAAC,EAAAF,EAAAjM,EAAA6L,GACAq8F,IAAAu6F,IAAAlgJ,KAAAA,MACAzlD,EAAAorG,IAAAsuF,KAQA,OAPAtuF,KAAAlvF,EAAAlc,EAAAoP,EAAAA,EACAg8F,IAAAjvF,EAAAnc,EAAAqP,EAAAA;ApQ9uOA,AoQ+uOA+7F,IAAAnvF,EAAAjc,EAAAgH,MAAAmI,EACAi8F,IAAAnqG,EAAAjB,EAAAiH,OAAA/D,EACAlD,EAAA+O,EAAAA,EACA/O,EAAAylD,KAAAA,KACA2lD,IAAAlnG,KAAA,OACAknG,KAEAjyF,EAAA6gL,QAAA4H,QAAA,SAAA+D,IAAAv2L,EAAAC,EAAAm0L,GAAAC,IACA,GAAAr4F,KAAAu6F,IAAAlgJ,MACA2lD,KAAAsuF,KAYA,OAXAtuF,KAAAlvF,EAAA9M,EAAAo0L,GACAp4F,IAAAjvF,EAAA9M,EAAAo0L,GACAr4F,IAAAnvF,EAAA,EAAAunL,GACAp4F,IAAAnqG,EAAA,EAAAwiM,GACAr4F,IAAAlnG,KAAA,UACAq2M,iBAAAnvG,KACAz8E,GAAAvf,EACAxH,GAAAyH,EACAm0L,GAAAA,GACAC,GAAAA,KAEAr4F,KAEAjyF,EAAA6gL,QAAA2H,OAAA,SAAAgE,IAAAv2L,EAAAC,EAAAN,GACA,GAAAq8F,KAAAu6F,IAAAlgJ,MACA2lD,KAAAsuF,KAUA,OATAtuF,KAAAlvF,EAAA9M,EAAAL,EACAq8F,IAAAjvF,EAAA9M,EAAAN,EACAq8F,IAAAnvF,EAAAmvF,IAAAnqG,EAAA,EAAA8N,EACAq8F,IAAAlnG,KAAA,SACAq2M,iBAAAnvG,KACAz8E,GAAAvf,EACAxH,GAAAyH,EACAN,EAAAA,IAEAq8F,KAEAjyF,EAAA6gL,QAAA70K,MAAA,SAAAwgL,IAAAz7K,IAAA9a,EAAAC,EAAAF,EAAAjM,GACA,GAAAuiD,MAAAtsC,EAAA0rL,UAAAz1L,EAAAC,EAAAF,EAAAjM,GACAkoG,IAAAu6F,IAAAlgJ,KAAAA,MAAAp1C,MAAAqzL,OAAA,SACA1jM,EAAAorG,IAAAsuF,MACAzxJ,KAAAmjE,IAAAnjE,KACA+6J,KAAA/6J,KAAAtlC,qBAAAi6M,YAAA,EAgBA,OAfA58M,GAAAkqB,IAAAA,IACAkhF,IAAAlvF,EAAAlc,EAAAoP,EAAAA,EACAg8F,IAAAjvF,EAAAnc,EAAAqP,EAAAA,EACA+7F,IAAAnvF,EAAAjc,EAAAgH,MAAAmI;ApQ5xOA,AoQ6xOAi8F,IAAAnqG,EAAAjB,EAAAiH,OAAA/D,EACAlD,EAAAylD,KAAAA,KACA2lD,IAAAlnG,KAAA,QACA8+L,KAAArhM,YAAAsmC,MAAAA,KAAAzgC,YAAAw7L,MACAA,KAAAn1E,QAAA,EACAm1E,KAAA94K,IAAAA,IACA84K,KAAA9+L,KAAA,OACAknG,IAAA/uF,EAAAkhM,SAAAnuM,EAAAC,GACA+7F,IAAA/uF,EAAAuhM,UAAAzuM,EAAAjM,GACA+kC,KAAArlC,YAAAogM,MACAsa,UAAAlyG,IAAA,EAAA,EAAA,EAAA,EAAA,GACAA,KAEAjyF,EAAA6gL,QAAAv1L,KAAA,SAAAkhM,IAAAv2L,EAAAC,EAAA5K,MACA,GAAA+lJ,IAAA8zD,WAAA,SACA74J,KAAA64J,WAAA,QACA7xM,EAAA6xM,WAAA,WACAlvM,GAAAA,GAAA,EACAC,EAAAA,GAAA,EACA5K,KAAAA,MAAA,GACAghD,KAAAv2C,EAAAiK,EAAA6tB,OAAA,mBAAA4uC,MAAAxmE,EAAAjC,MAAAyoE,MAAAvmE,EAAAlC,MAAAyoE,MAAAxmE,EAAAjC,MAAA,GACAs4C,KAAAs6J,YAAA,EACAtzM,EAAAkpB,OAAAqrK,IAAAv8L,MACAgI,EAAA6U,IAAA,EACAkpI,GAAAhlJ,MAAA0P,QAAA6nM,OACAvyD,GAAAkzD,UAAAvwM,KAAAiM,EAAAjM,KACAq9I,GAAAmzD,YAAA,KACA,IAAAv9M,GAAA,GAAAo/F,SAAAgrD,GAAAm7C,KACAt1L,MACA2yL,KAAA,OACAU,OAAA,OACAj4B,KAAAtyJ,EAAAypL,gBAAAn3B,KACAhnK,KAAAA,KAEArE,GAAAmwM,MAAA/lD;ApQ9zOA,AoQ+zOApqJ,EAAAqlD,KAAAA,KACArlD,EAAA69M,SAAAxxM,EACArM,EAAA8D,KAAA,OACA9D,EAAAs5L,MAAAj1L,KAAAu8L,IAAAv8L,MACArE,EAAAs5L,MAAAtqL,EAAAA,EACAhP,EAAAs5L,MAAArqL,EAAAA,EACAjP,EAAAs5L,MAAAvqL,EAAA,EACA/O,EAAAs5L,MAAAx2L,EAAA,EACAq3M,iBAAAn6M,EAAAiQ,MACAm6I,GAAA5nJ,YAAA6J,GACA+9I,GAAA5nJ,YAAA6iD,MACAkgJ,IAAArb,OAAA1nL,YAAA4nJ,GACA,IAAAk1D,MAAApB,WAAA,OAKA,OAJAoB,MAAAp+L,IAAA,EACAkpI,GAAA5nJ,YAAA88M,MACAt/M,EAAAs/M,KAAAA,KACAt/M,EAAA+hC,UAAAnyB,GACA5P,GAEA+Y,EAAA6gL,QAAA9hB,QAAA,SAAAlxK,MAAAC,QACA,GAAAsnB,IAAA/iB,KAAA8+K,OAAA9kL,KAWA,OAVAgG,MAAAxE,MAAAA,MACAwE,KAAAvE,OAAAA,OACAD,QAAAA,QAAAA,OAAA,MACAC,SAAAA,SAAAA,QAAA,MACAsnB,GAAAvnB,MAAAA,MACAunB,GAAAtnB,OAAAA,OACAsnB,GAAAuwG,KAAA,UAAA93H,MAAA,IAAAC,OAAA,MACAuE,KAAAywM,UACA9iM,EAAA6gL,QAAAwX,WAAAngM,MAAA7F,KAAAA,KAAAywM,UAEAzwM,MAEA2N,EAAA6gL,QAAAwX,WAAA,SAAApiM,EAAAC,EAAAF,EAAAjM,EAAAw2G,KACAvgG,EAAA+/K,IAAA,qBAAA1tL,KAAAA,KAAAywM,UAAA7sM,EAAAC,EAAAF,EAAAjM,EAAAw2G;ApQh2OA,AoQi2OA,GAGAz4G,GAAAgb,EAHAjV,MAAAwE,KAAAxE,MACAC,OAAAuE,KAAAvE,OACA4J,KAAA,EAAAmrL,KAAA7sL,EAAAnI,MAAA9D,EAAA+D,OAqBA,OAnBAyyG,OACAz4G,EAAAgG,OAAA/D,EACA+Y,EAAAjV,MAAAmI,EACAnI,MAAAmI,EAAAlO,IACAmO,IAAApI,MAAAmI,EAAAlO,GAAA,EAAAA,GAEAgG,OAAA/D,EAAA+Y,IACA5M,IAAApI,OAAA/D,EAAA+Y,GAAA,EAAAA,IAGAzQ,KAAAywM,UAAA7sM,EAAAC,EAAAF,EAAAjM,IAAAw2G,KACAluG,KAAAg0M,eACApiE,IAAAhuI,EACAiuI,IAAAhuI,EACAswH,MAAA9uH,MAEArF,KAAA80B,QAAA,SAAAkqH,IACAA,GAAAroH,UAAA,SAEA32B,KAEA,IAAA8yM,WACAnlM,GAAA6gL,QAAAuM,QAAA,SAAA/qD,KACA,GAAA8N,KAAA9N,IAAAn0I,QACAiiJ,KAAA1gD,mBAAAo3G,QAAA,QAAA,6BACA,MACA12D,IAAAxqD,WAAAmhH,MAAA32D,IAAAxqD,WAAAx7F,IAAA,OAAA,iCACAg7M,WAAA,SAAA7hG,SACA,MAAA6sC,KAAA/mJ,cAAA,SAAAk6G,QAAA,mBAEA,MAAA77G,GACA09M,WAAA,SAAA7hG,SACA,MAAA6sC,KAAA/mJ,cAAA,IAAAk6G,QAAA;ApQp4OA,IoQw4OAtjG,EAAA6gL,QAAAuM,QAAAptL,EAAAksL,GAAA7pD,KACAriI,EAAA6gL,QAAAx8J,OAAA,WACA,GAAA0+K,KAAA/iM,EAAAo1L,cAAAl9L,MAAA,EAAAC,WACAoxC,UAAAw5J,IAAAx5J,UACAz7C,OAAAi1M,IAAAj1M,OAEAD,MAAAk1M,IAAAl1M,MACAoI,EAAA8sM,IAAA9sM,EACAC,EAAA6sM,IAAA7sM,CACA,KAAAqzC,UACA,KAAA,IAAAtwC,OAAA,2BAEA,IAAAg5F,KAAA,GAAAjyF,GAAAysL,OACAplM,EAAA4qG,IAAAk/E,OAAAnxK,EAAAksL,GAAA/7C,IAAA/mJ,cAAA,OACAgsB,GAAA/tB,EAAAgF,KA4BA,OA3BA4J,GAAAA,GAAA,EACAC,EAAAA,GAAA,EACArI,MAAAA,OAAA,IACAC,OAAAA,QAAA,IACAmkG,IAAApkG,MAAAA,MACAokG,IAAAnkG,OAAAA,OACAD,QAAAA,QAAAA,OAAA,MACAC,SAAAA,SAAAA,QAAA,MACAmkG,IAAAsyG,UAAA,IAAAvwM,KAAAiM,EAAA,IAAAjM,KACAi+F,IAAAuyG,YAAA,MACAvyG,IAAAigF,KAAAlyK,EAAAksL,GAAA/7C,IAAA/mJ,cAAA,QACA6oG,IAAAigF,KAAA7lL,MAAA0P,QAAA,+EACA1U,EAAAoC,YAAAwoG,IAAAigF;ApQl6OA,AoQm6OA98J,GAAArZ,QAAAiE,EAAA6tB,OAAA,kHAAAhgC,MAAAC,QACA,GAAAy7C,WACAvpC,EAAAksL,GAAA/7C,IAAA1iJ,KAAAhE,YAAApC,GACA+tB,GAAA7B,KAAAtd,EAAA,KACAmf,GAAAhX,IAAAlI,EAAA,KACAkf,GAAA/C,SAAA,YAEAk3B,UAAAttC,WACAstC,UAAAxrC,aAAA1W,EAAAkiD,UAAAttC,YAEAstC,UAAA9/C,YAAApC,GAGA4qG,IAAAoxG,UAAA,aACApxG,KAEAjyF,EAAAxL,UAAA2yD,MAAA,WACAnnD,EAAA+/K,IAAA,gBAAA1tL,MACAA,KAAA8+K,OAAAvmL,UAAAiM,EACAxE,KAAA6/K,KAAAlyK,EAAAksL,GAAA/7C,IAAA/mJ,cAAA,QACAiJ,KAAA6/K,KAAA7lL,MAAA0P,QAAA,8FACA1J,KAAA8+K,OAAA1nL,YAAA4I,KAAA6/K,MACA7/K,KAAAgxG,OAAAhxG,KAAA+L,IAAA;ApQx7OA,EoQ07OA4B,EAAAxL,UAAA9G,OAAA,WACAsS,EAAA+/K,IAAA,iBAAA1tL,MACAA,KAAA8+K,OAAA3oL,WAAA6F,YAAAgE,KAAA8+K,OACA,KAAA,GAAAziL,KAAA2D,MACAA,KAAA3D,GAAA,kBAAA2D,MAAA3D,GAAAsR,EAAAqwL,gBAAA3hM,GAAA,IAEA,QAAA,EAGA,IAAA8sM,UAAAx7L,EAAAof,EACA,KAAA,GAAAohB,UAAA22J,SAAAA,QAAAj8L,KAAAslC,UAAAg7J,SAAAtgM,KAAAslC,UACAg7J,SAAAh7J,QAAA,SAAA8vJ,YACA,MAAA,YACA,GAAAlgK,KAAAj4B,SACA,OAAA9F,MAAA80B,QAAA,SAAAkqH,IACAA,GAAAi/C,YAAAp4L,MAAAm5I,GAAAjhH,SAGAoQ,aAOAmoJ,WAAAC,IAAA9+L,EAAAu4I,IAAAwmD,QAAA7oL,EAAA6oL,QAAA7oL,EAEA,gBAAAmtB,WACAC,OAAAD,QAAAntB,GAEAA,IC/6PAic,OAAA,iBAAA,SAAA,WAAA,SAAA9mB,EAAA0zL,SAEA,GAAAke,cAAA,SAAAx9J,UAAA17C,MAAAC,QACA,GAAA+pC,SAAA0R,UAAAl9C,MAAAk9C,UAAAr7C,SAAAkJ,eAAAmyC;ArQqdA,AqQndA1R,QAAAxrC,MAAAgmB,WACAwlB,QAAAxrC,MAAAgmB,SAAA,YAGAwlB,QAAAxrC,MAAAwB,MAAAA,MAAA,KACAgqC,QAAAxrC,MAAAyB,OAAAA,OAAA,IAGA,IAAAk5M,cAEA,SAAAne,QAAA99L,MACA8sC,QAAAjtC,UAAA,+IACAo8M,cAAA7xM,EAAA,QAAAA,EAAA0iC,UAAA,KAEAA,QAAAjtC,UAAA,+BACAo8M,cAAA7xM,EAAA,YAAAA,EAAA0iC,UAAA,GAGA,IACAovK,QADAjgB,MAAA,GAAA6B,SAAAme,cAAAn5M,MAAAC,OA0EA,OAvEA,QAAA+6L,QAAA99L,KACAi8L,MAAA7V,OAAAr1K,aAAA,UAAA,OAAAjO,MAAA,IAAAC,QAEAm5M,OAAApvK,QAAAruC,qBAAA,OAAA,GAGAw9L,MAAAkgB,WAAA,SAAAlxM,EAAAjM,EAAAwqL,OAAA4yB;ArQybA,AqQxbAA,UAAAA,QAEA,IAAAC,QAAApxM,EAAAnI,MACAw5M,OAAAt9M,EAAA+D,OACA04H,MAAA6gF,OAAAD,OAAAA,OAAAC,OAEAC,UAAAhlM,SAAAxU,OAAA04H,OACA+gF,SAAAjlM,SAAAzU,MAAA24H,MAEA,IAAA,QAAAqiE,QAAA99L,KAAA,CAEA,GAAAy8M,KAAAt5M,SAAA1E,qBAAA,WACA,KAAA,GAAAkF,KAAA84M,KAAA,CACA,GAAAlK,MAAAkK,IAAA94M,EACA,IAAA4uM,KAAAjxM,MAAA,CACA,IAAAixM,KAAAmK,UAAA,CACA,GAAAC,KAAApK,KAAAjxM,MAAAimK,KAAAnrK,MAAA,KACAm2M,MAAAmK,UAAAnlM,SAAAolM,IAAA,IACApK,KAAAqK,MAAAD,IAAA,GAEApK,KAAAjxM,MAAAimK,KAAAgrC,KAAAmK,UAAAjhF,MAAA,KAAA82E,KAAAqK,OAGA,GAAAC,QAEAA,SADAN,UAAAC,SACA,IAAAA,SAAA15M,MAEA,IAAAy5M,UAAAx5M,OAEA85M,QAAAtlM,SAAAslM,SACAZ,cAAA36M,MAAAwB,MAAA+5M,QAAA,KACAZ,cAAA36M,MAAAyB,OAAA85M,QAAA,KACAT,WACAH,cAAA36M,MAAAknB,KAAAjR,UAAAtM,EAAAuxM,UAAA,GAAA;ArQwZA,AqQvZAP,cAAA36M,MAAA+R,IAAAkE,UAAAvY,EAAAu9M,WAAA,GAAA,MAEAL,OAAA56M,MAAAuH,SAAA,UAGAuzM,WACAI,SAAAvxM,EACAsxM,UAAAv9M,GAGA8tC,QAAAxrC,MAAAwB,MAAA05M,SAAA,KACA1vK,QAAAxrC,MAAAyB,OAAAw5M,UAAA,KACAtgB,MAAAjoB,QAAAwoC,SAAAD,WAEA/yB,SACA18I,QAAAxrC,MAAAgmB,SAAA,WACAwlB,QAAAxrC,MAAAknB,KAAAjR,UAAAtM,EAAAuxM,UAAA,GAAA,KACA1vK,QAAAxrC,MAAA+R,IAAAkE,UAAAvY,EAAAu9M,WAAA,GAAA,OAIAtgB,MAAA6gB,SAAA,SAAAC,QACA9gB,MAAAkgB,WAAAr5M,MAAAi6M,OAAAh6M,OAAAg6M,SAGA9gB,MAAAkgB,WAAAr5M,MAAAC,QAEAk5L,MAAAhxL,EAAAnI,MACAm5L,MAAAj9L,EAAA+D,OAEAk5L,MAGA,OAAA+f,gBC9GA9qL,OAAA,iEAAA,WAAA,OACA8rL,OACAxd,OAAA,UACAM,eAAA;AACAL,AtQieA,mBsQjeA,GACAE,kBAAA,QACAb,KAAA,UACAC,eAAA,GACAz8H,OAAA,WAEAjqD,OACAmnL,OAAA,UACAV,KAAA,UACAC,eAAA,IAEA1gF,YACAohF,mBAAA,IACAD,OAAA,UACAV,KAAA,UACAC,eAAA,IAEAz9K,QACAk+K,OAAA,UACAC,mBAAA,GACAX,KAAA,UACAC,eAAA,IAEA55L,OACAq6L,OAAA,UACAC,mBAAA,GACAV,eAAA,GACAD,KAAA,WAEAn0K,SACA60K,OAAA,UACAC,mBAAA,GACAX,KAAA,UACAC,eAAA,IAEAke,OACAne,KAAA,UACAl1L,QAAA,EACA04D,OAAA,WAEA46I,SACAne,eAAA,GACAS,OAAA,UACAC,mBAAA,GACAX,KAAA,UACAx8H,OAAA,WAEA66I,wBACAre,KAAA;AACAU,AtQibA,OsQjbA,UACAM,eAAA,EACAH,kBAAA,QACAr9H,OAAA,WAEA86I,2BACAte,KAAA,UACAU,OAAA,UACAM,eAAA,EACAH,kBAAA,QACAr9H,OAAA,WAEA+6I,gBACA/6I,OAAA,WAEAg7I,cACAxe,KAAA,UACAU,OAAA,UACAM,eAAA,GACAd,cAAA,aACAG,cAAA,OACAF,YAAA,GACA38H,OAAA,WAEAi7I,sBACA/d,OAAA,UACAM,eAAA,GACAd,cAAA,aACAG,cAAA,SACAF,YAAA,GACA38H,OAAA,WAEAk7I,cACAhe,OAAA,UACAM,eAAA,GACAd,cAAA,aACAG,cAAA,SACAF,YAAA,GACA38H,OAAA,WAEAm7I,cACAje,OAAA;AACAM,AtQwYA,esQxYA,GACAd,cAAA,aACAG,cAAA,SACAF,YAAA,GACA38H,OAAA,WAEAo7I,kBACAle,OAAA,OACAM,eAAA,GACAd,cAAA,aACAG,cAAA,SACAF,YAAA,IAEArlL,QACA2nC,KAAA;AACAu9I,AtQ0XA,KsQ1XA,UACAh8L,MAAA,EACAg9L,eAAA,EACAx9H,OAAA,WAEAq7I,gBACA7e,KAAA,UACAC,eAAA,GAEA6e,kBACA9e,KAAA,UACAC,eAAA,GAEA8e,OACA/d,eAAA,EACAJ,iBAAA,QACAp9H,OAAA,WAEAw7I,eACAhe,eAAA,GACAx9H,OAAA,UACAu9H,iBAAA,GAEAke,gBACAjf,KAAA,WAEAz7L,OACAk+C,KAAA;AACAu9I,AtQ+VA,KsQ/VA,UACAh8L,MAAA,EACA8G,QAAA,EACAk2L,eAAA,EACAx9H,OAAA,WAEA07I,YACAlf,KAAA,UACAU,OAAA,OACAl9H,OAAA,UACA14D,QAAA,GAEAq0M,gBACAnf,KAAA,OACAU,OAAA,UACAM,eAAA,MCnHA5uK,OAAA,gDACA,SACA,SACA,UACA,gBACA,kEACA,SAAA9mB,EAAA+N,EAAAo1L,QAAAyO,aAAAkC,QACA,YAGA,IAAAC,WACAvjG,UAAA,OACAwjG,KAAA,QAIAC,iBACAj7D,KAAA,EACAs6C,QAAA,EACAD,OAAA,EACA2gB,KAAA,EACAxjG,UAAA,GAIA0jG,sBAOAl7D,KAAA,SAAA1rI,QACA,OACAA,OAAA,GACAA,OAAA,GACAA,OAAA,GAAAA,OAAA,GACAA,OAAA,GAAAA,OAAA,KASAkjG,UAAA,SAAAqhF;AACA,AvQqZA,OuQrZA,EAAA,EAAAA,MAAAn5L,MAAAm5L,MAAAl5L,SAQAq7M,KAAA,SAAA1mM,QACA,GAAA5b,GACA6Q,KAAA+K,OAAApZ,MAUA,KAPAoZ,OAAA,KAAAA,OAAA/K,KAAA,IAAA+K,OAAA,KAAAA,OAAA/K,KAAA,KACA+K,OAAAvQ,KAAAuQ,OAAA,IACAA,OAAAvQ,KAAAuQ,OAAA,KAIAA,OAAA,GAAA,IAAAA,OAAA,GACA5b,EAAA,EAAA6Q,KAAA7Q,EAAAA,IACAA,EAAA,IAAA,IACA4b,OAAA5b,GAAA,IAAA4b,OAAA5b,GAGA,QAAA4b,OAAArK,KAAA,QAKAkxM,sBAOAn7D,KAAA,SAAAj3I,MACA,OACAA,KAAAjB,EACAiB,KAAAhB,EACAgB,KAAAjB,EAAAiB,KAAArJ,MACAqJ,KAAAhB,EAAAgB,KAAApJ,SASA06L,OAAA,SAAAtxL,MACA,OACAA,KAAAse,GACAte,KAAAzI,GACAyI,KAAAtB,IASA6yL,QAAA,SAAAvxL,MACA,OACAA,KAAAse,GACAte,KAAAzI,GACAyI,KAAAmzL,GACAnzL,KAAAozL,KASA3kF,UAAA,SAAAzuG,MACA,MAAA7E,MAAA87I,KAAAj3I,OAQAo1C,KAAA,SAAAp1C,MACA,GACAxI,GADAy6M,OAEA,IAAAjmM,EAAA3U,QAAA2I,KAAAo1C,MACA,IAAA59C,EAAA,EAAAA,EAAAwI,KAAAo1C,KAAAjjD,OAAAqF,IACA,IAAAwI,KAAAo1C,KAAA59C,GAAArF,SACA8/M,KAAAj3M,KAAAgF,KAAAo1C,KAAA59C,GAAA;AACAy6M,AvQwTA,KuQxTAj3M,KAAAgF,KAAAo1C,KAAA59C,GAAA,IAIA,OAAAy6M,QAUAI,eAMAC,OAAAP,OAQAQ,SAAA,SAAA1kH,QAAA7lF,MACA6lF,SAAAkkH,OAAA/pM,OACA6lF,QAAA7tF,KAAA+xM,OAAA/pM,QAkBAwqM,gBAAA,SAAAryM,GAAAkpC,OAAAp/B,SAuDA,QAAAwoM,aAAAliN,EAAAmiN,YACAniN,GACAA,EAAAge,iBAGA,IAAAokM,QAAA,EACA1rI,KAAA2rI,QAAAj0G,aAAAi0G,QAAAj8M,SAAAy0D,WAAAuzC,aAAAvzC,WAAAz0D,SAAA,EACAwlB,SAAAu+I,MAAA/jK,QACAk8M,eAAAznJ,WAAA66C,cAEA4sG,eAAA,GAAAH,WAAA,KAGAG,eAAAH,YAAAv2L,SAAAu2L,WACAG,eAAAH,WAAAzrI,KACA4rI,eAAA12L,SACA02L,eAAA12L,SAAA8qD,KAEA4rI,gBAAA5rI,KAGA7b,WAAA3hD,SAAA,eACAkpM,OAAAE,eAAAl8M;AAEAm5L,AvQ0LA,MuQ1LAkgB,WAAA6C,eAAAj8M,OAAA+7M,QAAA,GAAA,GACA7iB,MAAA6gB,SAAAgC,SAEA7iB,MAAAkgB,WAAA6C,eAAAj8M,QAAA,GAAA,GAEA,kBAAAqT,SAAAinG,QACAjnG,QAAAinG,OAAA2hG,eAAAF,QAEAvnJ,WAAA3pD,QAAA,uBArFA,GAAAquL,OAAAh7K,MAEAs2C,WAAAnhD,QAAAooC,WAAAp0C,EAAA,IAAAkC,IAAAkU,SACAu+L,QAAA30M,EAAA,gBAAAmtD,YACAsvG,MAAAtvG,WAAA10C,QAAA,iBACAgzK,QAAA,QAAA0X,QAAAvtM,KAAAg8M,aAAAzO,QAEAzqM,MAAAsT,QAAAtT,OAAAy0D,WAAA66C,aACArvG,OAAAqT,QAAArT,QAAAw0D,WAAA86C,cAEA4sG,QAAA9mM,EAAA4lB,SAAA6gL,YAAA,GA+EA,OA1EA3iB,OAAApG,QAAA/3L,KAAA,KAAAwO,GAAAxJ,MAAAC,QACAke,MAAAg7K,MAAAh7K,MAAA7K,QAAA2gF,IAAA,EAAA,EAAAj0F,MAAAC,QACAqT,QAAA8oM,QACAj+L,MAAA3U,GAAA8J,QAAA8oM;AAIA90M,AvQkPA,EuQlPA6W,MAAA8iB,MACA53B,KAAA,4BAAA,QACAiR,GAAA,OAAA,WACAwhM,gBAGA,QAAArR,QAAAvtM,MAGA4+M,cAEAx0M,EAAA0D,QAAAsP,GAAA,qBAAAo4B,OAAAypK,SACA70M,EAAAjH,UAAAia,GAAA,8BAAA,WACAjF,EAAA5D,MAAA0qM,QAAA,OAEA1nJ,WAAAn6C,GAAA,qBAAAo4B,OAAA,SAAA94C,EAAAmiN,YACAI,QAAAviN,EAAAmiN,gBAIA5iB,MAAA7V,OAAAr1K,aAAA,UAAA,OAAAjO,MAAA,IAAAC,QACAw0D,WAAAhrD,KAAA,mBAAAzJ,MAAAA,OACA,kBAAAsT,SAAAinG,QACAjnG,QAAAinG,OAAAv6G,MAAA,IA4CAm5L,OAiBA59L,cAAA,SAAA49L,MAAAj8L,KAAA0X,OAAAtB,SACA,GACA4jF,SADAjwD,KAAAziC,KAGA63M,OAAAhB,SAAAn+M,MAAAi8L,MAAAkiB,SAAAn+M,OAAAi8L,MAAAj8L,MACAo/M,YAAAhpM,QAAAipM,aAAA,EAAAt1K,KAAAu1K,cAAArjB,MAAAj8L,KAAA0X,QAAAA;AAEA,AvQwJA,GuQxJA,kBAAAynM,QAmCA,KAAA,IAAAjxM,OAAA,yBAAAlO,KAAA,YAEA,OApCAg6F,SAAAmlH,OAAAhyM,MAAA8uL,MAAAmjB,aACAplH,UACA5jF,QAAA9J,KACA0tF,QAAA1tF,GAAA8J,QAAA9J,IAEA8J,QAAAuvG,OACA3rB,QAAA7tF,KAAA,QAAAiK,QAAAuvG,OAEA3rB,QAAA7tF,KAAA+xM,OAAA9nM,QAAA9U,OAAA,UACAo2M,UAGAttM,EAAA4vF,QAAAj2D,MAAA1uB,WAAA,oBAEAe,QAAAiC,SAAA,GACA2hF,QAAA3hF,MAAA,WACA2hF,QAAAulH,UACAx1K,KAAAy1K,mBAAAl4M,KAAA,UAEA,WACA0yF,QAAAulH,UACAx1K,KAAAy1K,mBAAAl4M,KAAAA,KAAAga,OAAA,SAAAha,KAAA+2G,WAAA,aAAA,WAKAjoG,QAAAqpM,eAAA,GACAzlH,QAAA0lH,WAAA,WACA31K,KAAA41K,kBAAA1jB,MAAAjiG,QAAA4iG,cAQA5iG;AvQoHA,EuQrGA4lH,aAAA,SAAA3jB,MAAA7lL,SACA,GAAA2zB,MAAAziC,IACA8O,SAAAA,WACA,IAQAypM,OARAn3E,MAAAtyH,QAAAsyH,QAAAx9H,EAAA,EAAAC,EAAA,GACAkiK,SAAA,GACAyxC,OAAA7iB,MAAAhxL,GAAAgxL,MAAAn5L,MAAAm5L,MAAAn5L,MAAAm5L,MAAAhxL,EAAA,EACA0B,KAAA,IAAAmyM,OAAAj9M,KAAAi3B,MAAA,GAAAgmL,QAAA,EAAAzxC,SACAyyC,KAAAnzM,KAAA,EACAzB,EAAAw9H,MAAAx9H,GAAA40M,KAAAp3E,MAAAx9H,EAAA40M,KAAA,EACA30M,EAAAu9H,MAAAv9H,GAAA20M,KAAAp3E,MAAAv9H,EAAA20M,KAAA,EACAznM,MAAA,mBAAAjC,SAAAiC,OAAA,IAAAjC,QAAAiC,MAIAuB,OAAAqiL,MACA16I,KAAA28J,OAAAtkM,OAAA2nC,MACAtjB,UAAA,IAAA/yB,EAAA,IAAAC,EAAA,IAAAwB,KAAA0gK,UACAlhK,KAAA+xM,OAAAtkM,QACAzN,KAAA,QAAAgM,EAAA,yBAGA,IAAA/B,QAAA9J,GACAsN,OAAAtN,GAAA8J,QAAA9J,OACA,CACA,GAAAwmC,OAAA,CACAmpJ,OAAA7/J,QAAA,SAAA49D,SACAA,QAAA78F,KAAA,WACA21C,UAGAl5B,OAAAtN,GAAA,UAAAwmC,MAGA+sK,MAAAjmM,OAAAgjL,SAGA,IAAAqgB,OAAAhhB,MACA74C,KAAAy8D,MAAA30M,EAAA20M,MAAA10M,EAAA00M,MAAA/8M,MAAA+8M,MAAA98M,QACAoJ,KAAA+xM,OAAAjB,OACAp/L,MAAA;AACA,AvQ8DA,GuQ9DAvR,IAAAsN,OAAAtN,GACAo8H,MAAAphI,KAAAnK,KAAA,QACAgb,GAAAva,WAAAwY,QAAAF,SACAE,QAAAF,OAAA0D,OAAA8uH,MAAAphI,MAEA6Q,EAAAva,WAAAwY,QAAAzT,UACA2E,KAAA3E,SACAiX,OAAAjX,SACAyT,QAAAzT,OAAA2J,GAAAo8H,SAuBA,OApBArwH,QACA4kM,MAAA5kM,MAAA,WACAuB,OAAA2lM,UACAx1K,KAAA20K,SAAA9kM,OAAA,iBAEA,WACAA,OAAA2lM,UACAx1K,KAAA20K,SAAA9kM,OAAA,oBAKAqjM,MAAA3wM,GAAA,SAAAsN,OAAAtN,GACA2wM,MAAA9/M,KAAA,QAAAurI,OACA9uH,OAAAzc,KAAA,SAAAurI,OAEAvwH,EAAAva,WAAAwY,QAAAkjB,SACAljB,QAAAkjB,OAAA1f,QAGAA,QAWA0lM,cAAA,SAAArjB,MAAAj8L,KAAA0X,QACA,GAAA0nM,YAMA,IALAjnM,EAAA+nB,SAAAxoB,UACAA,OAAAS,EAAA7K,IAAAoK,OAAAtb,MAAA,KAAA,SAAA2jN,OACA,MAAAxoM,UAAAwoM,MAAA,QAGA5nM,EAAA3U,QAAAkU,SAAAA,OAAApZ,OAAA+/M,gBAAAr+M,MACA,KAAA,IAAAkO,OAAA,kBAAAM,KAAAo0B,UAAAlrB,QAAA,cAAA1X;AAEA,AvQWA,OuQXAA,MACA,IAAA,OAAAo/M,YAAAd,qBAAAl7D,KAAA1rI,OAAA,MACA,KAAA,UAAA0nM,YAAAd,qBAAA,WAAAxgN,KAAA,KAAAm+L,MAAA,MACA,KAAA,OAAAmjB,YAAAd,qBAAAF,KAAA1mM,OAAA,MACA,SAAA0nM,YAAA1nM,OAEA,MAAA0nM,cAQAC,UAAA,SAAArlH,SACA,GAAAgmH,QAAAzB,qBAAAvkH,QAAAh6F,MACA2Z,OAAA,EAMA,OALAxB,GAAAva,WAAAoiN,UACArmM,OAAAxB,EAAA7K,IAAA0yM,OAAAliN,KAAAygN,qBAAAvkH,QAAA7tF,QAAA,SAAA4zM,OACA,MAAA5nM,GAAAZ,SAAAwoM,SACA1yM,KAAA,MAEAsM,QASAgmM,kBAAA,SAAA1jB,MAAA8E,MACA,GAAAkf,QAAAlf,KAAAj+L,MAAAi+L,KAAAh+L,OAAAg+L,KAAAj+L,MAAAi+L,KAAAh+L,OACAm9M,QAAAjkB,MAAAwB,OAAAsD,KAAA71L,EAAA61L,KAAAj+L,MAAA,EAAAi+L,KAAA51L,EAAA41L,KAAAh+L,OAAA,EAAAk9M;AACAC,AvQtBA,QuQsBA/zM,KAAA+xM,OAAA,iBACA/lM,EAAA8jB,MAAA,WACAikL,QAAArxL,SAAAhkB,EAAAo1M,OAAA,EAAAr2M,QAAA,IAAA,IAAA,WACAs2M,QAAAv9M,cAmBAw9M,WAAA,SAAAlkB,MAAA7lL,SACA,GAAAujH,UAAAymF,eACA/sM,IAAA+C,QAAA/C,KAAA,EACAmV,KAAApS,QAAAoS,MAAA,EACAwI,QAAA5a,QAAA4a,SAAA,GACA1vB,MAAA8U,QAAA9U,OAAA,aACAqkH,MAAAvvG,QAAAuvG,OAAA,GACAm5F,OAAA,CAEA7iB,OAAAn5L,OAAAm5L,MAAAhxL,IACA6zM,OAAA7iB,MAAAn5L,MAAAm5L,MAAAhxL,EAGA,IAAA1K,MAAA07L,MAAA17L,KAAAioB,KAAAnV,IAAA2d,SAAA0mL,SAoBA,OAnBAthM,SAAA9J,KACA/L,KAAA+L,GAAA8J,QAAA9J,IAEA8J,QAAA/M,MACA9I,KAAA8I,OAGA9I,KAAA4L,KAAA+xM,OAAA58M,QAEA,mBAAAw9M,SAAA,IAAAA,SACAnlF,SAAApiH,SAAAhX,KAAA4L,KAAA,aAAA,IACAi0M,eAAAv+M,KAAAi3B,MAAA6gG,SAAAmlF,QAAA,EAEAv+M,KAAA4L,KAAA,YAAAi0M;AAGAz6F,AvQzEA,OuQ0EAr+G,KAAA+4M,YAAA9/M,KAAAolH,OAEAplH,MAiBA+/M,gBAAA,SAAArkB,MAAAoQ,MAAAj2L,SACA,GAAA2zB,MAAAziC,KAEAy5L,KAAAsL,MAAAzP,UAEAr8L,KAAA+G,KAAA64M,WAAAlkB,MAAA9jL,EAAA/L,OACAoc,KAAAu4K,KAAA71L,EAAA61L,KAAAj+L,MAAA,EACAuQ,IAAA0tL,KAAA51L,EAAA41L,KAAAh+L,OAAA,GACAqT,SAOA,OALAA,SAAAmqM,YACAhgN,KAAAsd,MAAA,WACAksB,KAAAn8B,QAAAy+L,MAAA,WAGA9rM,MAkBAigN,oBAAA,SAAAvkB,MAAA7lL,SACA,GAAA2S,SAAA3S,QAAA2S,SAAA,EAAA3S,QAAA2S,QAAA,EACA03L,QAAA13L,QAAA,EAEAu2K,GAAAlpL,QAAAoS,KACA+2K,GAAAnpL,QAAA/C,IACAqtM,GAAAtqM,QAAAtT,MAAAimB,QACA43L,GAAAvqM,QAAArT,OAAAgmB,QAEA63L,GAAAxqM,QAAAoS,KAAAi4L,QACAI,GAAAzqM,QAAA/C,IAAAotM,QACAK,GAAA1qM,QAAAtT,MACAi+M,GAAA3qM,QAAArT,OAEAgT,IAAAkmL,MAAAlmL,MAGAqtI,KAAA64C,MACA74C,KAAAk8C,GAAAC,GAAAmhB,GAAAC,IACAx0M,KAAAiK,QAAA4S,OAAAk1L,OAAA,wBAAAA,OAAA,4BAGAj9L,MAAAg7K,MACAh7K,MAAA7K,QAAA8P,IAAA06L,GAAAC,GAAAC,GAAAC,IACA50M,KAAA+xM,OAAA;AA0BA,AvQ/KA,MuQuJA9nM,SAAA4qM,QACAjrM,IAAA5O,KAAAi8I,KAAAurD,MACA7rM,MAAA,EACA8rM,QAAA,EACAC,QAAA,KAGA94L,IAAA5O,KAAAi8I,KAAAniI,OAUAlL,IAAA4uG,KAAA,SAAAz5G,EAAAC,EAAA9E,UACA,GAAAg3L,WAAAkQ,QAAAlQ,WAAAnyL,EAAAA,EAAAC,EAAAA,GAAA9E,UAAA,KACA2vF,IAAAotD,KAAAv0H,QAAAwuK,UAEA,OADAp8K,OAAAsvL,YAAAv6G,IAAAqnG,WAAAnyL,EAAAA,EAAAu1M,QAAAt1M,EAAAA,EAAAs1M,SAAAp6M,UAAA,KACA0P,KAGAA,KASAypM,mBAAA,SAAAxlH,QAAA90F,MAAAygH,OACA3rB,SAAAA,QAAAnrE,UACAmrE,QAAAnrE,QAAAqvL,OAAAh5M,OAAA,IAAA,SAAA,WACA80F,QAAA7tF,KAAA+xM,OAAAh5M,QAGAkF,EAAA4vF,QAAAj2D,MAAA1uB,WAAA,sBAGAswG,OACAr+G,KAAA+4M,YAAArmH,QAAA2rB,SAUA06F,YAAA,SAAArmH,QAAA2rB,OACA3rB,SAAAA,QAAAj2D,OAEA5rB,EAAAikB,QAAA49D,QAAAj2D,KAAArhB,SAAA,SAAA8kB,OACA,UAAAA,MAAA/nC,SAAA5C,eACAm9F,QAAAj2D,KAAAzgC,YAAAkkC;AvQhNA,GuQqNAwyD,QAAA7tF,KAAA,QAAAw5G,SASAs7F,eAAA,SAAAjnH,QAAAknH,eACA,GAAAn3K,MAAAziC,IACA0yF,WACAA,QAAAulH,UAAA,EACAx1K,KAAAy1K,mBAAAxlH,QAAA,SACA7hF,EAAA5D,MAAA,WACAw1B,KAAAy1K,mBAAAxlH,QAAAknH,eAAA,SACAlnH,QAAAulH,UAAA,GACA,OAUA3xM,QAAA,SAAAosF,QAAA76F,OAEA,GAAA2kE,KAAA3rD,EAAAkmB,MAAA27D,QAAA/6F,QAAAkV,KAAAhV,OACA2kE,KAAAxlE,QAAAwlE,IAAA,IAAA,kBAAAA,KAAA,GAAA5mE,GACA4mE,IAAA,GAAA5mE,EAAAiQ,MAAA6sF,QAAA3vF,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA,KAaA+zM,SAAA,SAAAhiN,MAAA88L,MAAA1kI,WAAA6pJ,cACA,GAAAC,QAAAC,QAAAC,QAGA74E,MAAAphI,KAAAk6M,WAAAjqJ,WAAAp4D,MAoBA,OAjBA88L,OAAAhxL,GAAAgxL,MAAAhxL,IAAAgxL,MAAAn5L,QACAs+M,cACAG,QAAAtlB,MAAAhxL,EAAAgxL,MAAAn5L,MACA4lI,MAAAx9H,EAAArJ,KAAA6vE,MAAAg3D,MAAAx9H,EAAAq2M;AACA74E,AvQ3QA,MuQ2QAv9H,EAAAtJ,KAAA6vE,MAAAg3D,MAAAv9H,EAAAo2M,UACAtlB,MAAAn5L,MAAAm5L,MAAAhxL,GACAo2M,QAAAplB,MAAAn5L,MAAAm5L,MAAAhxL,GAAA,EACAy9H,MAAAx9H,EAAArJ,KAAA6vE,MAAAg3D,MAAAx9H,EAAAm2M,UAEAE,QAAAtlB,MAAAhxL,EAAAgxL,MAAAn5L,MACA4lI,MAAAx9H,EAAArJ,KAAA6vE,MAAAg3D,MAAAx9H,EAAAq2M,SAEAD,SAAArlB,MAAAl5L,OAAAk5L,MAAAl5L,QAAA,EAAAw+M,UAAA,EACA74E,MAAAv9H,EAAAtJ,KAAA6vE,MAAAg3D,MAAAv9H,EAAAo2M,QAAAD,WAIA54E,OASAphH,SAAA,SAAAiwC,WAAA0kI,OACA,GAAAwlB,IAAAlqM,SAAA0kL,MAAAhxL,GAAAgxL,MAAAn5L,MAAA,IACA0nB,GAAAjT,SAAAggD,WAAAz0D,QAAA,IACA4+M,GAAAnqM,SAAA0kL,MAAAhxL,GAAAgxL,MAAAn5L,MAAA,IACAS,GAAAgU,SAAAggD,WAAAx0D,SAAA,GAEA,QACAylB,MAAAgC,GAAAi3L,IAAA,EACApuM,KAAA9P,GAAAm+M,IAAA,IAUAF,WAAA,SAAAjqJ,WAAAp4D,OACA,GAAA+L,GAAAC,EACAilB,OAAAmnC,WAAAnnC,QASA,OARAjxB,OAAAgc,OAAAhc,MAAAoc,OACArQ,EAAA/L,MAAAgc,MAAAiV,OAAA5H,KACArd,EAAAhM,MAAAoc,MAAA6U,OAAA/c,MACAlU,MAAAic,SAAAjc,MAAAqc,WACAtQ,EAAA/L,MAAAic,QAAAjY,SAAAT,KAAA2Y,WAAAlY,SAAA6L,gBAAAqM,WAAA+U,OAAA5H;AACArd,AvQ1TA,EuQ0TAhM,MAAAqc,QAAArY,SAAAT,KAAA+Y,UAAAtY,SAAA6L,gBAAAyM,UAAA2U,OAAA/c,MAGAnI,EAAAA,EAAAC,EAAAA,IAIA,OAAAqzM,iBCnyBAttL,OAAA,mFACA,SACA,SACA,OACA,eACA,gFACA,+CACA,mDACA,iDACA,wEACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAgH,QAAAsrB,IAAAqsJ,QAAArhC,YAAAtb,gBAAAqb,gBACA,YASA,IAAAhnH,QAAA,SAAAypC;AACA,AxQ8cA,GwQ9cA/4D,MAAAziC,IAEA,OAAA,IAAA0iC,SAAA,SAAAt5B,QAAAC,QAEA,GAAA4mD,YAAAytG,gBAAAn4J,IAAAi2F,aACA4S,WAAA5S,YAAAjvF,OAAAK,UACA9J,GAAA,kBAAAmtD,WACAurC,aAAA8+G,UAEArqJ,WACA1pD,IAAA,8BACAwP,IAAA,6BAAA3M,SAEAoyF,YAAAm5F,MAAA0lB,QAAAhD,gBAAA,iBAAA77G,YAAAttD,OAAAstD,YAAAttD,QACA1yC,MAAA4yG,WAAA5yG,MACAC,OAAA2yG,WAAA3yG,OACAg0F,IAAAhtD,KAAAizD,WAAA0Y,WAAAv4G,MACA+hN,MAAA,YAAAp8G,YAAAttD,OACAgJ,UAAA+Y,aAIAp/C,EAAAikB,QAAA0mE,YAAAqF,aAAAhwF,EAAAklB,QAAAwkL,cAAA/+G,cAGAg/G,eAAAh/G,aAGAu9E,eAAAvD,yBAAAh6E;AACAlpE,AxQkbA,IwQlbAkpE,YAAA32F,KAAA,mBACArK,IAAAghG,YAAA32F,KAAA,mBACAo7F,YAAA07E,gBACAnmH,QAAA,SAAA3/D,MACAA,MAAAA,KAAAyc,QACA+nM,QAAAV,eAAA9jN,KAAAyc,cAeAioM,cAAA,SAAA/+G,YAAAK,QACA,GAAAkpG,OAAAlpG,OAAAh3F,KAAA,SACAuL,OAAAyrF,OAAAh3F,KAAA,UACA41M,gBAAAj/G,YAAA32F,KAAA,kBAEAw1M,SAAAtjN,cAAAykG,YAAAm5F,MAAAoQ,MAAA30L,QACApL,GAAA62F,OAAA3tD,OACAmwE,MAAA3iF,GAAA,8CAEA7lC,KAAA,MAAAgmG,OAAAh3F,KAAA,aACAhP,KAAA,WAAA,GACAmM,WAAA,UACAuU,MAAA,WACA,GACAyD,QAAA0gM,OADAj4K,KAAAziC,IAIA,OAAAy6M,iBAAA,GAAA9+B,gBAAAngF,aAAAxkG,QAAAyjN,iBACAE,oBAAAn/G;AxQ6YA,IwQ5YAu9E,gBAAA7D,qBAAA15E,aAAAK,OAAAA,OAAAvpF,OAAAtS,SAIAA,KAAA+2G,YACA/8F,OAAA4gM,kBAAAp/G,aACAxhF,SAGAA,OAAAnkB,KAAA,WAAAmkB,OAAAnkB,KAAA,YAAA,GACAmK,KAAAnK,KAAA,WAAAmK,KAAAnK,KAAA,YAAA,GAGA6kN,OAAA1gM,OAAAnkB,KAAA,cACA6kN,OAAA76M,KAAAg8F,OAAA72F,MACAgV,OAAAnkB,KAAA,SAAA6kN,QAGAG,YAAAr/G,YAAAxhF,OAAAha,KAAA,WAGAga,OAAAnkB,KAAA,WAAAmkB,OAAAnkB,KAAA,YAAA,GACA4sC,KAAA5sC,KAAA,WAAA4sC,KAAA5sC,KAAA,YAAA,GAGAmkB,OAAAnkB,KAAA,SAAAgb,EAAAxV,OAAA2e,OAAAnkB,KAAA,cAAAgmG,OAAA72F,OAEA04J,gBAAAC,2BAAAniE,aACAu9E,eAAA7D,qBAAA15E,aAAAK,OAAAA,OAAAvpF,OAAAmwB;AxQiXA,MwQ9WAk4K,oBAAAn/G,cAEAx7F,KAAAga,QACAqgM,QAAAnC,mBAAAl4M,KAAA,QAAA07B,GAAA,oDACA17B,KAAAga,QAAA,EACA2gM,oBAAAn/G,cACAs/G,aAAA96M,QACAq6M,QAAAnC,mBAAAl4M,KAAA,SAAA07B,GAAA,6CACA17B,KAAAga,QAAA,EACA+gM,kBAAAv/G,YAAAx7F,OAGA09J,gBAAAC,2BAAAniE,iBACAu9E,gBAAA7D,qBAAA15E,aAAAK,OAAAA,OAAAvpF,OAAAtS,WASAw6M,eAAA,SAAAh/G,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,aACA7hF,MAAA6hF,YAAAm5F,MAAA+R,QAAA,YAAAlrG,YAAAttD,OACAv0B,QACAA,MAAApD,MAAA;AACAokM,AxQoVA,oBwQpVAn/G,aACAvrC,WAAA3pD,QAAA,gCAWAs0M,kBAAA,SAAAp/G,aACA,GAAAxhF,OAQA,OAPAnJ,GAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACA,OAAAwkD,UAAAA,QAAA14E,UAAA,GACAA,OAAA04E,SACA,GAFA,SAKA14E,QAYA6gM,YAAA,SAAAr/G,YAAAjnF,WAAAymM,YAAAC,UAsEA,QAAAC,cACAC,SACA/K,UACA7oL,SAAAjlB,QAAA,IAAA,KACAiU,MAAA6kM,WACAC,OACAjL,UACA7oL,SAAAjlB,QAAA,GAAA,KACAiU,MAAA6kM,WAGA,QAAAE,cACAH,UAAAA,SAAAziN,OACAyiN,SACA5zL,SAAAjlB,QAAA,GAAA,IAAA,WACA64M,SAAA9K,WAEAkL,UACAF,OACA9zL;AAAAjlB,AxQ2NA,QwQ3NA,GAAA,IAAA,WACA+4M,OAAAhL,WAEAkL,WAKA,QAAAH,aACAvqM,EAAA6kB,OAAA8lL,KAAA,UACAhgH,YAAA8+G,OAAAzpM,EAAAmmB,QAAAwkE,YAAA8+G,OAAAkB,MACA,kBAAAP,WACAA,WApGA,GAAAhrJ,YAAAytG,gBAAAn4J,IAAAi2F,aAGAggH,QAGA98L,IAAAnK,WAAA+gL,UACAr/C,GAAAv3H,IAAA9a,EAAA8a,IAAAljB,MAAA,EACA06I,GAAAx3H,IAAA7a,EAAA6a,IAAAjjB,OAAA,EAGA0yI,KAAA6sE,YAAA1lB,UACA1jD,GAAAzD,KAAAvqI,EAAAuqI,KAAA3yI,MAAA,EACAq2I,GAAA1D,KAAAtqI,EAAAsqI,KAAA1yI,OAAA,EAGAggN,UAAAjgH,YAAAm5F,MAAAwB,OAAAlgD,GAAAC,GAAA,GACArxI,KAAAw1M,QAAAlD,OAAA,iBAEAuE,WAAAlgH,YAAAm5F,MAAAwB,OAAAvkD,GAAAC,GAAA,GACAhtI,KAAAw1M,QAAAlD,OAAA,iBAEAl9J,KAAAuhD,YAAAm5F,MAAA16I,KAAA,IAAAg8F,GAAA,IAAAC,GAAA,IAAAD,GAAA,IAAAC,IACArxI,KAAAw1M,QAAAlD,OAAAZ,OACAhvL,SAAA0yB,KAAA,IAAAg8F,GAAA,IAAAC,GAAA,IAAAtE,GAAA,IAAAC;AxQ4RA,EwQ5RA,KAGA8jE,MAAAn6G,YAAAm5F,MAAA16I,KAAA,IAAAg8F,GAAA,IAAAC,GAAA,IAAAtE,GAAA,IAAAC,IACAhtI,KAAAw1M,QAAAlD,OAAA,gBAGAwE,QAAAhG,MAAA3N,iBAAA2N,MAAA5N,iBAAA,GAGAoT,SAAA3/G,YAAAm5F,MAAAwB,OAAAwlB,QAAA/3M,EAAA+3M,QAAA93M,EAAA,GACAgB,KAAAw1M,QAAAlD,OAAA,aACA9G,SAGAgL,OAAA7/G,YAAAm5F,MAAA16I,KAAAogK,QAAAlD,OAAAp7M,MAAAk+C,MACAp1C,KAAAw1M,QAAAlD,OAAAp7M,OACA46B,UAAA,KAAAglL,QAAA/3M,EAAA,GAAA,KAAA+3M,QAAA93M,EAAA,IACAgB,KAAA,QAAAgM,EAAA,0BACAw/L,QAGA97L,YAAA67L,UACA4K,YAAA5K,UAGAoL,MAAAC,UAAAxhK,KAAAyhK,WAAA/F,MAAAwF,SAAAE,QACA7/G,YAAA8+G,OAAAz6M,KAAA27M,MAGA3qM,EAAA6kB,OAAA8lL,KAAA,OAAA,cAAA,GAGA7F,MAAAp/L,MAAA,WACA,IAAA8kM,OAAAntB,MAAA5rL,QACA44M,aAEAI;AxQwPA,GwQpPArrJ,WAAAn6C,GAAA,4BAAA,WACAwlM,gBA6CAP,kBAAA,SAAAv/G,YAAAxhF,QAEA,GAAA0gM,QAAA1gM,OAAAnkB,KAAA,aAGAgb,GAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,QACA7hF,GAAA/W,SAAA4gN,OAAA7+G,OAAA72F,QACA0tF,QAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,SACAwkD,QAAA14E,QAAA04E,QAAA1tF,KAAAgV,OAAAhV,IAAA81M,aAAApoH,QAAA14E,UACA04E,QAAAqkB,YAAA,EACAsjG,QAAAnC,mBAAAxlH,QAAA,mBAWAioH,oBAAA,SAAAn/G,aACA3qF,EAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACAwkD,WACAA,QAAAqkB,YAAA,EACArkB,QAAA14E,QAAA,EACAqgM,QAAAnC,mBAAAxlH,QAAA;AxQ2KA,IwQhKAooH,aAAA,SAAApoH,SACA,GACAkpH,UAAAC,SADAC,WAAA,CAOA,OALAppH,WACAmpH,SAAAnpH,QAAA78F,KAAA,QAAA,EACA+lN,SAAAlpH,QAAA78F,KAAA,aAAA,EACAimN,UAAA,IAAAD,UAAAA,SAAAD,UAEAE,WASAngC,gBAAA,SAAAngF,aACA,GAAArqD,aAUA,OATAtgC,GAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,QACAwsK,OAAAhoH,QAAA78F,KAAA,SACA68F,UAAAgoH,SACAvpK,UAAAA,UAAA3yC,OAAAqS,EAAA7K,IAAA00M,OAAA,SAAA11M,IACA,OAAA62F,OAAA72F,KAAAA,UAIAmsC,WAiBA4uD,YAAA,SAAAvE,YAAAp2D,UAEA,GAAA4xI,eACA,IAAA5xI,UAAAo2D,YAAAm5F,MAAA,CAEA,IACA3d,eAAAgC,YAAAnC,YAAAzxI,SAAAo2D;AxQ8GA,CwQ7GA,MAAApmG,IAEA,GAAAyb,EAAA3U,QAAA86K,gBAAA,CAEA,GAAAhxK,KAAA6K,EAAA8lB,UAAA6kE,YAAAqF,aAAA,SAAAjB,IAAA/D,QACA+D,IAAA/D,OAAA72F,MAAAw2F,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,SAEAr9B,GAAAikB,QAAAkiJ,eAAA,SAAA+kC,eACA,GAAAC,KAAA9Z,GACArxL,GAAA3U,QAAA6/M,gBAAA,IAAAA,cAAA/kN,SACAglN,IAAAh2M,IAAA+1M,cAAA,IACA7Z,IAAAl8L,IAAA+1M,cAAA,IACAC,KAAA9Z,MACAmY,QAAA/zM,QAAA01M,IAAA,SACA3B,QAAA/zM,QAAA47L,IAAA,gBAsBAhiG,cAAA,SAAA1E,aACA,GAAAygH,YAGAprM,GAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACAwkD,UACAA,QAAA78F,MACA2E,IAAAqhG,OAAAh3F,KAAA,YACA+2M,SAAA,EACAlB,cAMAl/G,YAAAm5F,MAAA7/J,QAAA,SAAA45D;AACAA,AxQyDA,IwQzDA74F,KAAA,eACAomN,SAAAp8M,KAAA6uF,OAGA79E,EAAA6kB,OAAAumL,SAAA,WAgBAh8G,YAAA,SAAAzE,aACA,GACAp2D,WADAu2I,gBAAAngF,aACAw9E,YAAAj3J,UAAA45J,gBAAAngF,aAAAA,aACA,OAAAp2D,WAOAsJ,QAAA,SAAA8sD,aACA,GAAAvrC,WACAurC,aAAAm5F,QACA1kI,WAAAytG,gBAAAn4J,IAAAi2F,aAEA14F,EAAA0D,QAAAD,IAAA,qBAAAi1F,YAAAttD,QACA+hB,WAAA1pD,IAAA,qBAAAi1F,YAAAttD,QAEAstD,YAAAm5F,MAAA7/H,QACAikH,eAAAzD,mBAAA95E,aAEAvrC,WAAA1pD,IAAA,qBAEAzD,EAAA,kBAAAmtD,YAAA5uD,QAAA0M,WAAA,SACAjL,EAAA,gBAAAmtD,YAAAliD,WAAA;AACAjL,AxQaA,EwQbA,KAAAmtD,YAAA5uD,SAIAq8J,gBAAA9jJ,MAAA4hF,cASA/sD,SAAA,SAAA+sD,YAAA59F,OACAiT,EAAA6nB,SAAA96B,QACAA,MAAAwnC,WACAo2D,YAAA0E,gBACA1E,YAAAuE,YAAAniG,MAAAwnC,YAWAoJ,SAAA,SAAAgtD,aACA,GACA59F,UACAwnC,SAAAo2D,YAAAyE,aAKA,OAHA76D,YACAxnC,MAAAwnC,SAAAA,UAEAxnC,MAOA,QACA40F,SAAA,8BACAn5D,SAAA20B,IACA+D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA,cACAxxD,QAAAA,QACAD,SAAAA,SACAD,SAAAA,YC3iBA5kB,OAAA,gFAAA,cAAA,SAAAmuB;AACA,AzQmgBA,MyQngBAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,MAGA,QAFAA,OAAAlW,QAAAy8C,QAAAtjC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA;AzQ2eA,IyQ1eAg1D,OAAAgD,QAAAA,OAAAujC,OAAAtjC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GAGA,QAAAwvG,UAAAzvG,OAAAh4D,MAEA,GAAAi4D,OAEA,OADAA,cAAAD,UAAAhE,aAAAgE,OAAAhoD,MAAAgoD,QAAAA,OACAC,QAAA,IAAAA,OAAAA,OACA,GAnCA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,KAAAylD,mBAAA9Q,QAAA8Q,kBA4DA,OAxBAmD,SAAA,QACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD;AAAAowC,AzQ6dA,QyQ7dAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,8GACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D;AACAjC,AzQsdA,QyQtdAjV,iBAAAma,QACA,WACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAujC,QAAAh8C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,2HACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA;AACAh/C,AzQ8cA,SyQ9cAsmC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAkmH,SAAAznK,MAAAA,KAAAA,OACAg1D,OAAAlW,QAAAonD,SAAAjuC,OAAAjD,OAAAr0D,KAAAq3D,OAAA/+C,UACA+7C,OAAAgD,QAAAA,OAAAkuC,QAAAjuC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,OAAA/+C,SAAA+7C,QACAlW,QAAAonD,UAAAjuC,OAAArI,mBAAAjvD,KAAAq3D,OAAAC,QAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAkmH,SAAAznK,MAAAA,KAAAA,SACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,4CC1CAh/B,OAAA,kFACA,SACA,SACA,OACA,eACA,kBACA,+EACA,+CACA,mDACA,iDACA,uEACA,WACA,oBACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAgH,QAAAy1I,kBAAAnqH,IAAAqsJ,QAAArhC,YAAAtb,gBAAAqb,eAAAl8B,SAAAq8B;AACA,A1QseA,Y0QjXA,SAAAkB,gBAAAC,kBAAA/nK,QACA4mK,cAAAX,gBAAA,WACA2jC,YACAr/D,SAAAq/D,YAAA56M,MACA5I,KAAA,OACA4Z,OAAA4pM,WACA7nM,cAAA/B,SAGAuqI,SAAAw9B,mBAAA/4K,MACA5I,KAAA,UACA4Z,OAAAA,WA9HA,GAAAmoK,sBAIAyhC,WAAA,KAUAnqJ,OAAA,SAAAypC,aACA,GAAA/4D,MAAAziC,IAEA,OAAA,IAAA0iC,SAAA,SAAAt5B,QAAAC,QAEA,GAAA4mD,YAAAytG,gBAAAn4J,IAAAi2F,aACA2gH,SAAAr5M,EAAA,YAAAmtD,YACAm+C,WAAA5S,YAAAjvF,OAAAK,UAEA4uF,aAAA4gH,cAEA35K,KAAA+8D,WAAA/8D,KAAA+8D,UAAA,sBAAA/8D,KAAA+8D,UAAA,qBAAAmD,kBACA83E,qBAAAh4I,KAAA+8D,UAAA,qBAAAmD;AAGA1yC,A1QwcA,W0QvcA1pD,IAAA,8BACAwP,IAAA,6BAAA3M,SAGAoyF,YAAAm5F,MAAA0lB,QAAAhD,gBAAA,iBAAA77G,YAAAttD,OAAAstD,YAAAttD,QACA1yC,MAAA4yG,WAAA5yG,MACAC,OAAA2yG,WAAA3yG,OACAg0F,IAAAhtD,KAAAizD,WAAA0Y,WAAAv4G,MACA+hN,MAAA,YAAAp8G,YAAAttD,OACAgJ,UAAA+Y,WACA8lD,OAAA,SAAAw/F,QAAAiC,QACA2E,SAAAtiN,IAAA,YAAA07M,QAAA,MACA,IAAAiC,QACA2E,SAAAl3M,KAAA,OAAApQ,KAAA,WACA,GAAAsoK,MAAAr6J,EAAA9C,KACAm9J,MAAA3hK,MAAA2hK,KAAAt4J,KAAA,SAAA2yM,QACAr6C,KAAA1hK,OAAA0hK,KAAAt4J,KAAA,UAAA2yM,aAOA3mM,EAAAikB,QAAA0mE,YAAAqF,aAAAhwF,EAAAklB,QAAAwkL,cAAA/+G,cAGA6gH,eAAA7gH,YAAA2gH,UAGA3B,eAAAh/G;A1Q2aA,I0Q7ZA++G,cAAA,SAAA/+G,YAAAK,QAkCA,QAAAygH,qBAEAxB,aAAAyB,WAAAA,SAAAxlG,cAAA,GACAylG,aAAAhhH,YAAA+gH,UAlCA,GAAAA,UAAAlC,QAAAtjN,cAAAykG,YAAAm5F,MAAA94F,OAAAh3F,KAAA,SAAAg3F,OAAAh3F,KAAA,WACAG,GAAA62F,OAAA3tD,OACAmwE,MAAA3iF,GAAA,yBACA3qB,OAAA,IAEAlb,KAAA,MAAAgmG,OAAAh3F,KAAA,aACAhP,KAAA,cAEAgnJ,UAAA0/D,SAAA9/K,MAAA3mB,GAAA,MAAA,WACAwmM,sBAGA7hC,sBACA59B,SAAA0/D,SAAA9/K,MAAAs4G,UACAqG,QAAA,IACA2O,YAAA,WACAswD,QAAAjD,SAAAmF,SAAA,SACAL,WAAAK,SAAA9/K,MAEAmtH,OAAA,WACAywD,QAAAjD,SAAAmF,SAAA,cACAD;AACAJ,A1QqYA,W0QrYA,MAEAlyD,YAAA,WACAqwD,QAAAjD,SAAAmF,SAAA,cACAL,WAAA,SAmCAG,eAAA,SAAA7gH,YAAA2gH,UA0CA,QAAAM,sBAAArhF,SACAA,QAAA9sH,SAAA,cACA8sH,QAAA9sH,SAAA,UACAouM,qBAAAthF,SAEAuhF,mBAAAvhF,UAKA,QAAAuhF,oBAAAvhF,SACA+gF,SAAA/gM,SAAA,MAAAhN,YAAA,UACAgtH,QAAAjtH,SAAA,UACA4sM,kBAAAv/G,aAGA,QAAAkhH,sBAAAthF,SACAA,QAAAhtH,YAAA,UACAusM,oBAAAn/G,aA1DA,GAAAohH,oBAAAT,SAAAj3M,SAAA,KAQA,IANA23I,SAAA+/D,oBAAA9mM,GAAA,MAAA,SAAA1gB,GACAA,EAAAge,kBACAhe,EAAAqd;AACAgqM,A1QwVA,qB0QxVA35M,EAAA1N,EAAA6d,kBAGAwnK,qBAAA,CACA,GAAAC,cACA/gC,SAAA,EACAlS,YAAA,EACAyM,UACAoV,YAAA,mBACA9J,SAAA,EACAjF,aAAAxuI,IAAA,EAAAmV,KAAA,EAAA8vF,OAAA,EAAAxoE,MAAA,IAIAq0G,UAAA+/D,oBAAAtrG,UAAAzgG,EAAAqjB,UAAAwmJ,aACAxwB,QAAA,SAAA90J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,OACAqqM,oBAAAvhF,SACAA,QAAAjtH,SAAA,WAEAisK,eAAAwiC,mBAAAxnN,EAAAkd,SAEA63I,OAAA,SAAA/0J,GACA8jL,cAAAN,YAAAxjL,EAAAkd,OAAAld,EAAAw8I,GAAAx8I,EAAAy8I,KAEAuY,MAAA,SAAAh1J,GACA,GAAAgmI,SAAAt4H,EAAA1N,EAAAkd,OACAoqM,sBAAAthF,SACAA,QAAAhtH,YAAA,WACA8qK,cAAAL,wBAAAz9C,SACA89C,cAAAT,uBAEAt5B,aAAA;A1QyTA,G0Q3RAq7D,eAAA,SAAAh/G,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,aACAqhH,WAAA/5M,EAAA,UAAAmtD,YACA6sJ,QAAAthH,YAAAm5F,MAAA+R,QAAA,YAAAlrG,YAAAttD,OACA4uK,UACAjgE,SAAAigE,QAAArgL,MAAA3mB,GAAA,MAAA,WACA6kM,oBAAAn/G,aACAqhH,WAAAzuM,YAAA,aAYAouM,aAAA,SAAAhhH,YAAA9I,QAAAqqH,eACA,GAAA5/C,MACA6/C,OACAC,UACAj4M,GACAy0L,KACAyjB,YACAC,aACAvB,SACAwB,aAGAntJ,WAAAytG,gBAAAn4J,IAAAi2F,aACA2gH,SAAAr5M,EAAA,KAAAmtD,YACAotJ,QAAAlB,SAAAl3M,KAAA,iBACAq4M,UAAAx6M,EAAA,kBAAAmtD,YACAstJ,UAAAD,UAAAx0L,QAEA,oBAAAi0L,iBACAA,eAAA;AAGAM,A1QmPA,Q0QnPArmN,SAGAgO,GAAAq4M,QAAAxnN,KAAA,cACA+lN,SAAAlpH,QAAA78F,KAAA,gBACA+lN,SAAA/7M,KAAAmF,IACA0tF,QAAA78F,KAAA,WAAA+lN,UACAwB,aAAAxB,SAAA5kN,OAGAmmK,KAAAkgD,QAAAp4M,KAAA,OAGA01M,oBAAAn/G,aACA2gH,SAAA/gM,WAAAhN,YAAA,UAEA4uM,OAAA7/C,KAAAp2J,QACAm2M,YAAAp6M,EAAA4vF,QAAAj2D,MAAA3T,SACAq0L,aAAAE,QAAAv0L,SAEAk0L,OAAAnjN,KACAmmB,SAAA,WACA/lB,QAAA,QACAujN,UAAA,IACAl7M,QAAA,GACAyJ,IAAAoxM,aAAApxM,IAAAwxM,UAAAxxM,IACAmV,KAAAi8L,aAAAj8L,KAAAq8L,UAAAr8L,OAGA87L,OAAA7hN,SAAAmiN,WACAN,OAAAz1L,SACAxb,IAAAmxM,YAAAnxM,IAAAwxM,UAAAxxM,IACAmV,KAAAg8L,YAAAh8L,KAAAq8L,UAAAr8L,MACA,IAAA,WACA,GAAAu8L,eAEAT,QAAA3hN,SAGAo+L,KAAA/mG,QAAA4iG;AAGA2nB,A1Q0MA,U0Q1MA5C,QAAAnB,oBAAA19G,YAAAm5F,OACA/1K,IAAAu+I,KAAAt4J,KAAA,OACAqc,KAAAu4K,KAAA71L,EAAA,GAAAw5M,aAAA,GACArxM,IAAA0tL,KAAA51L,EAAA,GAAAu5M,aAAA,GACA5hN,MAAAyU,SAAAktJ,KAAAt4J,KAAA,SAAA,IACApJ,OAAAwU,SAAAktJ,KAAAt4J,KAAA,UAAA,IACA4c,QAAA,EACAC,QAAA,EACAg4L,QAAA,IAEA7jN,KAAA,aAAAmP,IACAorM,UAEAqN,eAAAR,UAAA,GAAAxgL,KACAogH,SAAA4gE,gBAAA3nM,GAAA,MAAA,SAAA1gB,GACA,GAAAkd,QAAAld,EAAA6d,cACAspM,SAAA/gH,YAAAm5F,MAAA+R,QAAAp0L,OAAAq0L,UAEAvxM,GAAAqd,iBACArd,EAAAge,kBAGA+oM,SAAAl3M,KAAA,WAAAjO,OAAA,EACAkiL,cAAAR,MAAAhmF,QAAAj2D,OAKAi2D,QAAA78F,KAAA,WAAAgb,EAAAmmB,QAAA07D,QAAA78F,KAAA,gBAAA0mN,SAAA1mN,KAAA,gBAGA2lG,YAAA4gH,WAAAvrM,EAAAmmB,QAAAwkE,YAAA4gH,WAAAa;AAEAA,A1Q0KA,U0Q1KA5hN,SAEAqiK,gBAAAC,2BAAAniE,gBAIAA,YAAA4gH,WAAAv8M,KAAAo9M,WAEAv/C,gBAAAC,2BAAAniE,iBAUAu/G,kBAAA,SAAAv/G,aAEA,GAAAkiH,SAAAhiL,GAAA,kCAGA7qB,GAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACA4sK,cAAApoH,WACAA,QAAAqkB,YAAA,EACAsjG,QAAAjD,SAAA1kH,QAAA,cACA2nH,QAAAtB,YAAArmH,QAAAgrH,YAKA7sM,EAAAikB,QAAA0mE,YAAA4gH,WAAA,SAAAa,WACAA,UAAAnoL,QAAA,SAAA49D,SACA2nH,QAAAtB,YAAArmH,QAAAgrH,cAUA/C,oBAAA,SAAAn/G;AACA3qF,A1Q6HA,E0Q7HAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACAwkD,WACAA,QAAAqkB,YAAA,EACAsjG,QAAAjD,SAAA1kH,QAAA,SACA2nH,QAAAtB,YAAArmH,QAAAh3D,GAAA,6BAKA7qB,EAAAikB,QAAA0mE,YAAA4gH,WAAA,SAAAa,WACAA,UAAAnoL,QAAA,SAAA49D,SACA2nH,QAAAtB,YAAArmH,QAAAh3D,GAAA,gBAWAo/K,aAAA,SAAApoH,SACA,GACAkpH,UAAAC,SADAC,WAAA,CAOA,OALAppH,WACAmpH,SAAAnpH,QAAA78F,KAAA,QAAA,EACA+lN,SAAAlpH,QAAA78F,KAAA,gBACAimN,UAAA,IAAAD,UAAAA,SAAAD,SAAA5kN,QAEA8kN,WASAngC,gBAAA,SAAAngF,aACA,GAAA1lE,SAUA,OARAjlB,GAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF;AACA,A1QkFA,G0QlFAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACAwkD,UAAA7hF,EAAA3U,QAAAw2F,QAAA78F,KAAA,cACAgb,EAAAikB,QAAA49D,QAAA78F,KAAA,YAAA,SAAAmhB,OACA8e,MAAAj2B,MAAAg8F,OAAA72F,KAAAgS,YAIA8e,OAiBAiqE,YAAA,SAAAvE,YAAAp2D,UACA,GACA4xI,gBADA/mH,WAAAytG,gBAAAn4J,IAAAi2F,YAEA,IAAAp2D,UAAAo2D,YAAAm5F,MAAA,CACA,IACA3d,eAAAgC,YAAAnC,YAAAzxI,SAAAo2D,aACA,MAAApmG,IAEAyb,EAAA3U,QAAA86K,iBAEAnmK,EAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACAwkD,UACA7hF,EAAAikB,QAAAkiJ,eAAA,SAAA1wH,MACA,GAAAzvC,OAAAhG,EAAA7N,QAAAsjD,KAAAu1C,OAAA72F,KACA6R,OAAA,IAAA,IAAAyvC,KAAAtvD,SAEA8L,EAAA,oBAAAwjD,KAAA,IAAAzvC,MAAA,EAAA,GAAA,IAAAo5C,YAAA9hD,SAAA;AACAquM,A1QyCA,a0QzCAhhH,YAAA9I,SAAA,UAsBAwN,cAAA,SAAA1E,aACAm/G,oBAAAn/G,aAEA3qF,EAAAikB,QAAA0mE,YAAA4gH,WAAA,SAAAa,WACA/jC,cAAAR,MAAAukC,UAAA5wH,MAAA,GAAA,OAiBA4T,YAAA,SAAAzE,aACA,GAAA9tC,KAAAiuH,gBAAAngF,YACA,OAAAw9E,aAAAj3J,UAAA2rC,IAAA8tC,cAOA9sD,QAAA,SAAA8sD,aACA,GAAAvrC,WACAurC,aAAAm5F,QACA1kI,WAAAytG,gBAAAn4J,IAAAi2F,aAEA14F,EAAA0D,QAAAD,IAAA,qBAAAi1F,YAAAttD,QACA+hB,WAAA1pD,IAAA,qBAAAi1F,YAAAttD,QAEAstD,YAAAm5F,MAAA7/H,QACAikH,eAAAzD,mBAAA95E,aAEA14F,EAAA,kBAAAmtD,YAAA5uD,QAAA0M,WAAA;AACAjL,A1QtBA,E0QsBA,gBAAAmtD,YAAAliD,WAAA,SACAjL,EAAA,KAAAmtD,YAAA5uD,QAEAw7I,SAAA5sF,WAAAhrD,KAAA,gBAAAC,UAAAoxF,QACAumD,SAAA5sF,WAAAhrD,KAAA,wBAAAC,UAAAoxF,SAGAonE,gBAAA9jJ,MAAA4hF,cASA/sD,SAAA,SAAA+sD,YAAA59F,OACAiT,EAAA6nB,SAAA96B,QACAA,MAAAwnC,WACAo2D,YAAA0E,gBACA1E,YAAAuE,YAAAniG,MAAAwnC,YAWAoJ,SAAA,SAAAgtD,aACA,GAAA59F,UACAwnC,SAAAo2D,YAAAyE,aAKA,OAHA76D,YACAxnC,MAAAwnC,SAAAA,UAEAxnC,MAOA,QACA40F,SAAA,6BACAn5D,SAAA20B,IACA+D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA;AACAxxD,A1Q1EA,Q0Q0EAA,QACAD,SAAAA,SACAD,SAAAA,YClmBA5kB,OAAA,6EAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC;A3QogBA,C2QhgBA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,MAGA,QAFAA,OAAAlW,QAAAy8C,QAAAtjC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAujC,OAAAtjC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GA3BA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IA8CA,OAlBA4oD,SAAA,QACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA;A3QufA,I2QtfAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,2GACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,WACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAujC;AAAAh8C,A3Q8eA,Q2Q9eAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,2HACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,qKC5BAlkC,OAAA,+EACA,SACA,SACA,OACA,eACA,4EACA,+CACA,mDACA,iDACA,wEACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAgH,QAAAsrB,IAAAqsJ,QAAArhC,YAAAtb,gBAAAqb;AACA,A5Q0fA,Y4QjfA,IAAAhnH,QAAA,SAAAypC,aACA,GAAA/4D,MAAAziC,IAEA,OAAA,IAAA0iC,SAAA,SAAAt5B,QAAAC,QACA,GAAA4mD,YAAAytG,gBAAAn4J,IAAAi2F,aACAmiH,WAAA76M,EAAA,KAAAmtD,YACAm+C,WAAA5S,YAAAjvF,OAAAK,UAEAqjD,YACA1pD,IAAA,8BACAwP,IAAA,6BAAA3M,SAGAoyF,YAAAm5F,MAAA0lB,QAAAhD,gBAAA,iBAAA77G,YAAAttD,OAAAstD,YAAAttD,QACA1yC,MAAA4yG,WAAA5yG,MACAC,OAAA2yG,WAAA3yG,OACAg0F,IAAAhtD,KAAAizD,WAAA0Y,WAAAv4G,MACA+hN,MAAA,YAAAp8G,YAAAttD,OACAgJ,UAAA+Y,aAIA2tJ,iBAAApiH,YAAAmiH,YAGA9sM,EAAAikB,QAAA0mE,YAAAqF,aAAAhwF,EAAAklB,QAAAwkL,cAAA/+G,YAAAmiH;AAGA5kC,A5QsdA,e4QtdAvD,yBAAAh6E,aACAlpE,IAAAkpE,YAAA32F,KAAA,cACArK,IAAAghG,YAAA32F,KAAA,cACAo7F,YAAA07E,gBACAnmH,QAAA,SAAA3/D,MACAwkN,QAAAV,eAAA9jN,KAAAyc,cAcAioM,cAAA,SAAA/+G,YAAAmiH,WAAA9hH,QAEAw+G,QAAAtjN,cAAAykG,YAAAm5F,MAAA94F,OAAAh3F,KAAA,SAAAg3F,OAAAh3F,KAAA,WACAG,GAAA62F,OAAA3tD,OACAmwE,MAAA3iF,GAAA,sBAEAnlB,MAAA,WACAvW,KAAAga,OACA6jM,eAAAriH,YAAAm5F,MAAA30L,KAAA29M,YAEAnB,aAAAhhH,YAAAm5F,MAAA30L,KAAA29M,YAEAjgD,gBAAAC,2BAAAniE,aACAu9E,eAAA7D,qBAAA15E,aAAAK,OAAAA,YAUA+hH,iBAAA,SAAApiH,YAAAmiH;AACA,A5Q4aA,G4Q5aAG,WACAz4M,KAAAwL,EAAAxL,KAAAm2F,YAAAqF,cACAvuE,IAAAkpE,YAAA32F,KAAA,cACArK,IAAAghG,YAAA32F,KAAA,aAGArK,KAAA,GAAA6K,KAAA7K,IACA6K,KAAA7K,IACA83B,IAAA,GAAAjtB,KAAAitB,MACAjtB,KAAAitB,KAIAzhB,EAAA6lB,MAAArxB,KAAA,SAAAwR,OACA,GAAAmJ,UAAAnJ,MAAA,EACAknM,SAAAj7M,EAAA,uCAAAkd,SAAA,KAAAA,SAAA,QACA,KAAAnJ,OACAknM,SAAA5vM,SAAA,UAEAwvM,WAAA//L,OAAAmgM,YAIAC,aAAAxiH,YAAAm5F,MAAAtvL,KAAAs4M,YAGAG,UAAAH,WAAAviM,SAAA,MACA0iM,UAAAvnM,MAAA,SAAAnhB,GACAA,EAAAqd,gBACA,IAAAsrM,UAAAj7M,EAAA9C,KAEA+9M,UAAAzvM,SAAA,WAAAyvM,SAAAzvM,SAAA,cACAwvM,UAAA1vM,YAAA,UACA2vM,SAAA5vM,SAAA,cAYAquM,aAAA,SAAA7nB,MAAAjiG,QAAAirH;AAGA,A5Q6XA,G4Q7XAN,SAAAM,WAAA14M,KAAA,gBACAo4M,SAAArmN,QAAAqmN,QAAAxnN,KAAA,UAAA,IAGA68F,QAAA78F,KAAA,SAAAwnN,QAAAxnN,KAAA,WACA68F,QAAA14E,QAAA,EACAikM,UAAAtpB,MAAAjiG,SACA2nH,QAAAnC,mBAAAxlH,QAAA,UAGA2qH,QAAAhvM,YAAA,mBAAA2N,SAAA,mBAAArW,QAAA0I,YAAA,YAWAwvM,eAAA,SAAAlpB,MAAAjiG,QAAAirH,YACA,GAAAzzL,QAAAwoE,QAAA78F,KAAA,SAGA68F,SAAA14E,QAAA,EACAkkM,UAAAvpB,MAAAjiG,SACAA,QAAA1wF,WAAA,UACAq4M,QAAAnC,mBAAAxlH,QAAA,SAGAirH,WACAviM,WAAAhN,YAAA,UACA1X,OAAA,gBAAAwzB,OAAA,KAAA9b,YAAA,YAAAD,SAAA,WAYA6vM,aAAA,SAAArpB,MAAAtvL;AACA,A5QgVA,G4QhVA0qM,SA0BA,OAzBAl/L,GAAA6lB,MAAArxB,KAAA,SAAAwR,OAEA,GAAAqT,QAAArT,MAAA,EACA5d,KAAAohN,QAAAxB,WAAAlkB,OACA3vL,GAAA,QAAAklB,OACAR,QAAAQ,OACAm0F,MAAA3iF,GAAA,UACA1hC,MAAA,aACA+H,MAAA,GAIA9I,MAAAsd,MAAA,WACAo+K,MAAA7/J,QAAA,SAAA49D,SACA,GAAAA,QAAA78F,KAAA,YAAAq0B,QAAAwoE,QAAA/6F,OAAA,CAEA,GAAA6kE,KAAA3rD,EAAAkmB,MAAA27D,QAAA/6F,QAAAkV,KAAA,SACA2vD,KAAAxlE,QAAAwlE,IAAA,IAAA,kBAAAA,KAAA,GAAA5mE,GACA4mE,IAAA,GAAA5mE,EAAAY,KAAAk8F,cAKAq9G,MAAAlwM,KAAA5G,QAEA82M,OAUAkO,UAAA,SAAAtpB,MAAAjiG,SACA,GACAyrH,QADA1kB,KAAA/mG,QAAA4iG,UAIAr8L,KAAA07L,MAAA+R,QAAA,QAAAh0G,QAAA78F,KAAA,UACAoD,QAGAklN,OAAA,KAAA1kB,KAAA71L,EAAA61L,KAAAj+L,MAAA,GAAA,KACAi+L,KAAA51L,EAAA41L,KAAAh+L,OAAA,GACAxC,KAAA09B,UAAAwnL,QACAr8M,OACAsuM,YAUA8N,UAAA,SAAAvpB,MAAAjiG;AACA,A5QqRA,G4QrRAz5F,MAAA07L,MAAA+R,QAAA,QAAAh0G,QAAA78F,KAAA,UACAoD,OACAA,KAAA8I,QAUA45K,gBAAA,SAAAngF,aACA,GAAAp2D,YAUA,OATAv0B,GAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnN,KAAA8M,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACAwgD,MAAAA,IAAA74F,KAAA,WACAuvC,SAAAvlC,MACAgX,MAAA63E,IAAA74F,KAAA,UACAmP,GAAA62F,OAAA72F,SAIA6L,EAAAu0B,UAAA7O,OAAA,SAAAvwB,IAAA,MAAAnN,SAiBAknG,YAAA,SAAAvE,YAAAp2D,UACA,GAAA4xI,gBACA/mH,WAAAytG,gBAAAn4J,IAAAi2F,aACAmiH,WAAA76M,EAAA,KAAAmtD,WACA,IAAA7qB,UAAAo2D,YAAAm5F,MAAA,CAEA,IAEA3d,eAAAgC,YAAAnC,YAAAzxI,SAAAo2D,aACA,MAAApmG,IAEAyb,EAAA3U,QAAA86K,iBACAnmK,EAAAikB,QAAAkiJ,eAAA,SAAA+kC,cAAAllM;AACA,A5QiOA,G4QjOA67E,SACAxoE,OAAArT,MAAA,EAGAglF,OAAAhrF,EAAA2qF,YAAAqF,cAAA9pE,OAAAnqB,YAAAg/E,WAAAmwH,iBAAAp2M,OACAk2F,UACAnJ,QAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,QACAwkD,UAEAirH,WAAAviM,SAAA,gBAAA8O,OAAA,KAAA/b,SAAA,UAGAquM,aAAAhhH,YAAAm5F,MAAAjiG,QAAAirH,kBAsBAz9G,cAAA,SAAA1E,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,aACAmiH,WAAA76M,EAAA,KAAAmtD,WAEAp/C,GAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACAwkD,UACAmrH,eAAAriH,YAAAm5F,MAAAjiG,QAAAirH,cAIAA,WAAAviM,SAAA,MAAAhN,YAAA,mBAAAzI,QAAAwI,SAAA;A5QqLA,E4QrKA8xF,YAAA,SAAAzE,aACA,MAAAw9E,aAAAj3J,UAAA45J,gBAAAngF,aAAAA,cAOA9sD,QAAA,SAAA8sD,aACA,GAAAvrC,WACAurC,aAAAm5F,QACA1kI,WAAAytG,gBAAAn4J,IAAAi2F,aAEA14F,EAAA0D,QAAAD,IAAA,qBAAAi1F,YAAAttD,QACA+hB,WAAA1pD,IAAA,qBAAAi1F,YAAAttD,QAEAstD,YAAAm5F,MAAA7/H,QACAikH,eAAAzD,mBAAA95E,aAEA14F,EAAA,kBAAAmtD,YAAA5uD,QAAA0M,WAAA,SACAjL,EAAA,gBAAAmtD,YAAAliD,WAAA,SACAjL,EAAA,KAAAmtD,YAAA5uD,SAIAq8J,gBAAA9jJ,MAAA4hF,cASA/sD,SAAA,SAAA+sD,YAAA59F,OACAiT,EAAA6nB,SAAA96B,QACAA,MAAAwnC,WACAo2D,YAAA0E;AACA1E,A5QgIA,Y4QhIAuE,YAAAniG,MAAAwnC,YAWAoJ,SAAA,SAAAgtD,aACA,GACA59F,UACAwnC,SAAAo2D,YAAAyE,aAKA,OAHA76D,YACAxnC,MAAAwnC,SAAAA,UAEAxnC,MAQA,QACA40F,SAAA,0BACAn5D,SAAA20B,IACA+D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA,cACAxxD,QAAAA,QACAD,SAAAA,SACAD,SAAAA,YCvcA5kB,OAAA,wEAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD;AAAAkhD,A7QyhBA,O6QzhBA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA,IAIA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,MAGA,QAFAA,OAAAlW,QAAAy8C,QAAAtjC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAujC,OAAAtjC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GA3BA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB;AAAA9+C,A7QiiBA,K6QjiBAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,IA8CA,OAlBA4oD,SAAA,QACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,sGACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF;AACAlF,A7Q+fA,Q6Q/fA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,WACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAujC,QAAAh8C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,2HACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D;AAAAzY,A7QufA,Q6QvfAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,6DC5BAlkC,OAAA,0EACA,SACA,SACA,OACA,eACA,uEACA,+CACA,mDACA,iDACA,wEACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAgH,QAAAsrB,IAAAqsJ,QAAArhC,YAAAtb,gBAAAqb,gBACA,YASA,IAAAhnH,QAAA,SAAAypC,aACA,GAAA/4D,MAAAziC;AAEA,A9Q2fA,M8Q3fA,IAAA0iC,SAAA,SAAAt5B,QAAAC,QACA,GAAA4mD,YAAAytG,gBAAAn4J,IAAAi2F,aACA4S,WAAA5S,YAAAjvF,OAAAK,UAEAqjD,YACA1pD,IAAA,8BACAwP,IAAA,6BAAA3M,SAEAoyF,YAAAm5F,MAAA0lB,QAAAhD,gBAAA,iBAAA77G,YAAAttD,OAAAstD,YAAAttD,QACA1yC,MAAA4yG,WAAA5yG,MACAC,OAAA2yG,WAAA3yG,OACAg0F,IAAAhtD,KAAAizD,WAAA0Y,WAAAv4G,MACAqhD,UAAA+Y,aAIAp/C,EAAAikB,QAAA0mE,YAAAqF,aAAAhwF,EAAAklB,QAAAwkL,cAAA/+G,cAGAu9E,eAAAvD,yBAAAh6E,aACAlpE,IAAAkpE,YAAA32F,KAAA,cACArK,IAAAghG,YAAA32F,KAAA,cACAo7F,YAAA07E,gBACAnmH,QAAA,SAAA3/D;AACAA,A9QoeA,K8QpeAyc,OAAA0H,SACAnkB,KAAAyc,OAAA0H,QAAA,EACAqgM,QAAAnC,mBAAAl4M,KAAA,QAAA07B,GAAA,qBACA2+K,QAAAV,eAAA9jN,KAAAyc,QACAorJ,gBAAAC,2BAAAniE,aACAvrC,WAAA3pD,QAAA,6BAAAzQ,KAAAgmG,OAAAhmG,KAAAyc,gBAcAioM,cAAA,SAAA/+G,YAAAK,QACA,GAAA5rC,YAAAytG,gBAAAn4J,IAAAi2F,YACA6+G,SAAAtjN,cAAAykG,YAAAm5F,MAAA94F,OAAAh3F,KAAA,SAAAg3F,OAAAh3F,KAAA,WACAG,GAAA62F,OAAA3tD,OACAmwE,MAAA3iF,GAAA,sBAEAnlB,MAAA,WACAvW,KAAAga,QACAqgM,QAAAnC,mBAAAl4M,KAAA,QAAA07B,GAAA,qBACA17B,KAAAga,QAAA,EACAi2C,WAAA3pD,QAAA,6BAAAu1F,OAAA77F,SAEAq6M,QAAAnC,mBAAAl4M,KAAA,SAAA07B,GAAA;AACA17B,A9QqcA,K8QrcAga,QAAA,EACAi2C,WAAA3pD,QAAA,2BAAAu1F,OAAA77F,QAEA09J,gBAAAC,2BAAAniE,aACAu9E,eAAA7D,qBAAA15E,aAAAK,OAAAA,OAAAvpF,OAAAtS,UAUA27K,gBAAA,SAAAngF,aAEA,MAAA3qF,GAAA2qF,YAAAqF,cACA76F,IAAA,SAAA61F,QACA,GAAA0gH,UAAA/gH,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACA,OAAAquK,WAAAA,SAAAviM,UAAA,EAAA6hF,OAAA72F,MAAA,IAEAtO,OAAAma,EAAA+nB,UACA//B,SAiBAknG,YAAA,SAAAvE,YAAAp2D,UAEA,GAAA4xI,eACA,IAAA5xI,UAAAo2D,YAAAm5F,MAAA,CAEA,IACA3d,eAAAgC,YAAAnC,YAAAzxI,SAAAo2D,aAEA,MAAApmG,IAEAyb,EAAA3U,QAAA86K,iBAEAnmK,EAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF;AACA,A9QkZA,G8QlZA0gH,SACA1rM,GAAA/W,SAAAk9K,eAAAn7E,OAAAjvF,WAAAg/E,cACA2wH,SAAA/gH,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,QACAquK,WACAA,SAAAviM,QAAA,EACAqgM,QAAAnC,mBAAAqE,SAAA,SAAA7gL,GAAA,0BACAq9I,eAAA7D,qBAAA15E,aAAAK,OAAAA,OAAAvpF,OAAAiqM,iBAsBAr8G,cAAA,SAAA1E,aACA3qF,EAAAikB,QAAA0mE,YAAAqF,aAAA,SAAAhF,QACA,GAAAnJ,SAAA8I,YAAAm5F,MAAA+R,QAAA7qG,OAAA3tD,OACAwkD,WACAA,QAAA14E,QAAA,EACAqgM,QAAAnC,mBAAAxlH,QAAA,YAGAqmF,eAAAxD,kBAAA/5E,cAgBAyE,YAAA,SAAAzE,aACA,GACAp2D,WADAu2I,gBAAAngF,aACAw9E,YAAAj3J,UAAA45J,gBAAAngF,aAAAA;AACA,A9Q4VA,M8Q5VAp2D,WAOAsJ,QAAA,SAAA8sD,aACA,GAAAvrC,WACAurC,aAAAm5F,QACA1kI,WAAAytG,gBAAAn4J,IAAAi2F,aAEA14F,EAAA0D,QAAAD,IAAA,qBAAAi1F,YAAAttD,QACA+hB,WAAA1pD,IAAA,qBAAAi1F,YAAAttD,QAEAstD,YAAAm5F,MAAA7/H,QACAikH,eAAAzD,mBAAA95E,aAEA14F,EAAA,kBAAAmtD,YAAA5uD,QAAA0M,WAAA,SACAjL,EAAA,gBAAAmtD,YAAAliD,WAAA,UAIA2vJ,gBAAA9jJ,MAAA4hF,cAQA/sD,SAAA,SAAA+sD,YAAA59F,OACAiT,EAAA6nB,SAAA96B,QACAA,MAAAwnC,WACAo2D,YAAA0E,gBACA1E,YAAAuE,YAAAniG,MAAAwnC,YAWAoJ,SAAA,SAAAgtD,aACA,GACA59F,UACAwnC,SAAAo2D,YAAAyE;AAKA,A9QuSA,M8Q1SA76D,YACAxnC,MAAAwnC,SAAAA,UAEAxnC,MAOA,QACA40F,SAAA,qBACAn5D,SAAA20B,IACA+D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA,cACAxxD,QAAAA,QACAD,SAAAA,SACAD,SAAAA,YCtRA5kB,OAAA,wEAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA;A/QkiBA,C+Q9hBA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,QAAAjD,MAGA,QAFAA,OAAAlW,QAAAy8C,QAAAtjC,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAujC,OAAAtjC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAiD,QAAA,IAAAA,OAAAA,OACA,GA3BA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAAjC,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC;AA8CA,A/Q4fA,M+Q9gBA4oD,SAAA,QACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,sEACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,mBACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f;AAAA4f,A/QugBA,a+QvgBAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,6CACAA,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,OAAAA,QAAAA,OAAAujC,QAAAh8C,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,qFACAiC,OAAAlW,QAAAv5C,MAAA0yD,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAAzyD,KAAA0yD,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,OAAAg1D,SACAiD,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;A/Q+fA,GgR1hBAh/B,OAAA,0EACA,SACA,SACA,OACA,uEACA,iDACA,uEACA,oDACA,SAAA9mB,EAAA+N,EAAA6qB,GAAAsyB,IAAA0vG,gBAAAqb,eAAAC,aACA,YAMA,IAAAolC,aAAA,SAAA5iH,aAEA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,aAEA29E,UAAA,SAAAC,QAAA59E,aACA,GAAA6iH,QAAAjlC,QAAAn0K,KAAA,QAEA,IAAAo5M,OAAArwM,KAAA,YAAAqwM,OAAA/vM,SAAA,YACA+vM,OAAArwM,KAAA,WAAA,OACA;AACA,AhRkgBA,GgRlgBAkmK,YAAAjkK,SAAAurF,YAAA32F,KAAA,eACAy5M,eAAAztM,EAAAimB,OAAA6kJ,gBAAAngF,cAAAxkG,QAEAk9K,WAAAoqC,gBAAA,IAAApqC,aACAmqC,OAAArwM,KAAA,WAAA,GAGA0vJ,gBAAAC,2BAAAniE,aACAu9E,eAAA7D,qBAAA15E,aAAAK,OAAAu9E,UAGAt2K,GAAA,WAAAmtD,YAAAn6C,GAAA,QAAA,SAAA1gB,GACAA,EAAAqd,iBACA0mK,UAAAr2K,EAAA9C,MAAAw7F,gBAWAzpC,OAAA,SAAAypC,aACA4iH,YAAA5iH,aAGAu9E,eAAAvD,yBAAAh6E,aACAlpE,IAAAkpE,YAAA32F,KAAA,cACArK,IAAAghG,YAAA32F,KAAA,cACAo7F,YAAA07E,gBACAnmH,QAAA,SAAA3/D,MACA,GAAAw3I,QAAA+rC,QAAA4D,KACAnnL,MAAAgmG,QAAAhmG,KAAAgmG,OAAA7kG,SACAoiL,QAAAvjL,KAAAgmG,OAAA1tF,SAAA;AACAk/H,AhR+dA,OgR/dA+rC,QAAAn0K,KAAA,SACA+3K,MAAA5D,QAAAn0K,KAAA,mBAAAkJ,SAAA,eAGAhQ,WAAA,WACAkvI,OAAAr/H,KAAA,WAAA,GACAorK,QAAAhrK,YAAA,SACA4uK,MAAA5uK,YAAA,gBACA,UAMA8xF,cAAA,SAAA1E,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,YACA14F,GAAA,QAAAmtD,YAAAjiD,KAAA,WAAA,IAeA+xF,YAAA,SAAAvE,YAAAp2D,UAEA,GAAA6qB,YAAAytG,gBAAAn4J,IAAAi2F,YAEA,KACA3qF,EAAAhc,KAAAmkL,YAAAnC,YAAAzxI,SAAAo2D,aAAA,SAAA5P,YACA37B,WAAAhrD,KAAA,eAAA2mF,WAAA,KAAA59E,KAAA,WAAA,KAEA+qK,eAAA7D,qBAAA15E,aACA,MAAApmG,GACA,KAAA,IAAAwR,OAAA,uCAAAxR;AhRubA,GgRnbAumL,gBAAA,SAAAngF,aACA,GAAA1kE,WACAm5B,WAAAytG,gBAAAn4J,IAAAi2F,YAIA,OAHA14F,GAAA,gBAAAmtD,YAAAp7D,KAAA,WACAiiC,OAAAj3B,KAAAiD,EAAA9C,MAAAuO,SAEAuoB,QAeAmpE,YAAA,SAAAzE,aACA,MAAAw9E,aAAAj3J,UAAA45J,gBAAAngF,aAAAA,cAOA9sD,QAAA,SAAA8sD,aACA,GAAAvrC,YAAAytG,gBAAAn4J,IAAAi2F,YAGAvrC,YAAAhrD,KAAA,YAAAsB,IAAA,SAGAm3J,gBAAA9jJ,MAAA4hF,cASA/sD,SAAA,SAAA+sD,YAAA59F,OACAiT,EAAA6nB,SAAA96B,QACAA,MAAAwnC,WACAo2D,YAAA0E,gBACA1E,YAAAuE,YAAAniG,MAAAwnC,YAWAoJ,SAAA,SAAAgtD,aACA,GACA59F,UACAwnC,SAAAo2D,YAAAyE;AAKA,AhRgXA,MgRnXA76D,YACAxnC,MAAAwnC,SAAAA,UAEAxnC,MAIA,QACA40F,SAAA,qBACAn5D,SAAA20B,IACA+D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA,cACAxxD,QAAAA,QACAD,SAAAA,SACAD,SAAAA,YClNA5kB,OAAA,6EAAA,cAAA,SAAAmuB,IACA,MAAAA,IAAA1e,SAAA,SAAA8Z,WAAA0a,OAAAlZ,QAAAC,SAAA/+C,MAKA,QAAAokI,UAAApsE,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAIA,OAHAA,SAAA,OACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,SAAA8oD,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SACA;AjR0iBA,CiRtiBA,QAAA+uG,UAAAhvG,OAAAh4D,MAEA,GAAAi4D,QAAAlF,OAAA,EAGA,OAFAA,SAAA,IACAjV,kBAAAma,OAAAD,QAAAA,OAAAjhD,WAAAkhD,OAAA,MAAAA,QAAAA,UAAA,EAAAA,OAAAA,OAAA,eAAAA,UAAAjE,aAAAiE,OAAAjoD,MAAAgoD,QAAAC,SAIA,QAAAuvG,UAAAxvG,OAAAh4D,MAEA,GAAAi4D,OAEA,OADAA,cAAAD,UAAAhE,aAAAgE,OAAAhoD,MAAAgoD,QAAAA,OACAC,QAAA,IAAAA,OAAAA,OACA,GA1BA9tD,KAAAw2C,cAAA,EAAA,YACA7B,QAAA30C,KAAA8E,MAAA6vC,QAAAxB,WAAAwB,SAAA9+C,KAAAA,QACA,IAAAi4D,QAAAjD,OAAA/7C,QAAA85C,OAAA,GAAAiB,aAAA,WAAAlW,iBAAA3zC,KAAA2zC,iBAAAlR,KAAAziC,KAAAylD,mBAAA9Q,QAAA8Q,kBA4CA,OAjBAmD,SAAA,WACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD;AAAA,AjRshBA,MiRthBAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA9oD,KAAAowC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAA6iF,SAAApkI,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,4EACAkF,OAAAnZ,QAAA,MAAAn+C,KAAAq3D,QAAAC,OAAAD,QAAAA,OAAAjhD,WAAA,MAAAkhD,QAAAA,UAAA,EAAAA,OAAAA,OAAA,WAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAylH,SAAAhnK,MAAAA,KAAAA,QACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA,4BACAiC,OAAAlW,QAAAzG,QAAA4f,OAAAjD,OAAAr0D,KAAAq3D,QAAAzY,QAAAv/C,KAAAA,QACAg1D,OAAAgD,QAAAA,OAAA3f,OAAA4f,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,QAAAzY;AAAAv/C,AjRghBA,KiRhhBAA,OAAAg1D,QACAjC,QAAAjV,iBAAAma,QACA,0KACAh/C,SAAAsmC,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,OACAg1D,OAAAlW,QAAAgnD,SAAA7tC,OAAAjD,OAAAr0D,KAAAq3D,OAAA/+C,UACA+7C,OAAAgD,QAAAA,OAAA8tC,QAAA7tC,aAAAjD,UAAAhB,aAAAgB,OAAAr0D,KAAAq3D,OAAA/+C,SAAA+7C,QACAlW,QAAAgnD,UAAA7tC,OAAArI,mBAAAjvD,KAAAq3D,OAAAC,QAAA1Y,QAAAJ,QAAAvS,KAAA96B,KAAAtE,GAAAo/B,KAAA2U,QAAA,EAAAimH,SAAAxnK,MAAAA,KAAAA,SACAi4D,QAAA,IAAAA,UAAAlF,QAAAkF,QACAlF,QAAA;AjRygBA,AkRriBAh/B,OAAA,WAAA,UAAA,SAAA/mB,SACA,SAAArO,GAAA,mBAAAA,GAAA6O,GAAAk7M,OAAA/pN,EAAAuD,OAAAvD,EAAA6O,IAAAk7M,MAAA,SAAA9pN,GAAA,IAAA,GAAAO,GAAAR,GAAA,IAAAU,EAAA,GAAAE,EAAA4K,KAAAhJ,SAAA9B,EAAAE,IAAAJ,EAAA0P,QAAA1P,EAAA,GAAAgL,KAAA9K,KAAAT,EAAA+B,KAAAxB,EAAA,GAAAE,EAAAF,MAAA,IAAA,MAAAgL,UAAA6C,QAAA,SAAArO,EAAAC,GAAA,YAAA,SAAAuM,GAAAvM,GAAA,GAAAO,GAAAR,EAAAqH,SAAAgiB,eAAA,IAAAppB,GAAA4pB,OAAArpB,GAAAA,EAAAqpB,OAAA5pB,GAAAO,EAAAqG,SAAA,QAAA4F,GAAAzM,GAAA,QAAAC,GAAAD,GAAA,MAAAuM,GAAAvM,IAAAA,EAAA,MAAAA,GAAAa,QAAA,oBAAAZ,GAAA,QAAAG,GAAAJ,EAAAC,GAAA,IAAA,GAAAO,GAAA,EAAAE,EAAAT,EAAAuC,OAAA9B,EAAAF,EAAAA,GAAA,EAAA,GAAAuO,EAAA/O,EAAAC,EAAAO,IAAA,MAAAA,EAAA,OAAA,GAAA,QAAAkM,KAAA,GAAAzM,GAAAD,EAAAmI,EAAAlI,GAAA0G,SAAA,OAAA,IAAAnG,IAAAwG,MAAA/G,EAAA+G,QAAA/G,EAAA,GAAAi1H,YAAAjuH,OAAAhH,EAAAgH,SAAAhH,EAAA,GAAAk1H,aAAA,OAAAl1H,GAAA4G,SAAArG,EAAA,QAAAuO,GAAA/O,EAAAQ;AlRqiBA,AkRriBA,MAAAR,KAAAQ,GAAA,EAAAR,IAAAC,GAAAO,IAAAP,GAAA,EAAA,OAAAD,GAAA,OAAAQ,GAAA,EAAAR,EAAAiQ,cAAArB,OAAA5O,EAAA,IAAAQ,EAAA,GAAAA,EAAAyP,cAAArB,OAAApO,EAAA,IAAAR,EAAA,IAAA,EAAA,QAAAO,GAAAN,EAAAO,GAAA,GAAAE,GAAAE,EAAAQ,CAAA,IAAA,OAAAnB,GAAAA,EAAAuC,OAAA,EAAA,QAAA,KAAA9B,EAAAT,EAAAK,MAAAE,GAAAI,EAAA,EAAAQ,EAAAV,EAAA8B,OAAApB,EAAAR,EAAAA,GAAA,EAAAF,EAAAE,GAAAZ,EAAAgE,KAAAtD,EAAAE,GAAA,OAAAF,GAAA,QAAAsO,GAAAhP,GAAA,MAAAA,GAAAgvG,YAAA,GAAAhvG,EAAAgH,QAAA,QAAAiI,GAAAzO,GAAA,GAAAE,GAAA,oBAAAF,GAAA8gB,GAAA,UAAA,WAAAthB,EAAAqB,KAAAb,EAAAE,KAAAT,GAAAD,EAAAqB,KAAAb,EAAAE,EAAAF,EAAAuZ,SAAAvZ,EAAA8gB,GAAA,QAAA,WAAA,GAAA1gB,GAAAZ,EAAAqB,KAAAb,EAAAE,EAAAE,KAAAX,GAAAO,EAAAuZ,QAAAnZ,IAAAZ,EAAAwN,WAAAhN,EAAAE,GAAAF,EAAAsR,QAAA,mBAAA,QAAA5C,GAAA1O,GAAAA,EAAA8gB,GAAA,YAAA,SAAA9gB,GAAA,GAAAE,GAAAmH,GAAAnH,IAAAT,GAAAS,EAAA0O,IAAA5O,EAAA6e,OAAA3e,EAAA2O,IAAA7O,EAAAif,QAAAzf,EAAAQ,EAAAsd,QAAAhM,QAAA,qBAAAtR,KAAA,QAAA2O,GAAAnP,EAAAQ,EAAAE;AlRsiBA,AkRtiBAA,EAAAA,GAAAT,CAAA,IAAAW,EAAA,OAAA,YAAA,GAAAX,GAAAqR,SAAAU,QAAA2G,aAAA/X,GAAAA,EAAAoR,OAAArI,WAAA,WAAAnJ,EAAA6Q,MAAA3Q,EAAAT,IAAAD,IAAA,QAAAoP,GAAApP,EAAAC,GAAA,GAAAO,GAAA2O,EAAAnP,EAAA,SAAAA,GAAAC,EAAA6R,QAAA,mBAAA9R,IAAAC,GAAAqhB,GAAA,SAAA,SAAAthB,GAAAI,EAAAJ,EAAA8d,OAAA7d,EAAA8Q,QAAA,GAAAvQ,EAAAR,KAAA,QAAAqP,GAAArP,GAAAA,EAAA,KAAAqH,SAAAie,eAAAtT,OAAArI,WAAA,WAAA,GAAAjJ,GAAAT,EAAAD,EAAA,GAAAQ,EAAAR,EAAA+Z,MAAAvX,MAAAxC,GAAAmgB,OAAA,IAAAvf,GAAAX,EAAAoG,YAAA,GAAApG,EAAAqG,aAAA,CAAA1F,IAAAX,IAAAoH,SAAAie,gBAAArlB,EAAAu7J,kBAAAv7J,EAAAu7J,kBAAAh7J,EAAAA,GAAAP,EAAA0yL,kBAAAjyL,EAAAT,EAAA0yL,kBAAAjyL,EAAA06D,UAAA,GAAA16D,EAAA0Z,YAAA,GAAA,QAAA9K,GAAArP,GAAAA,EAAAD,EAAAC,GAAA,EAAA,IAAAO,GAAA,EAAAE,EAAA,CAAA,IAAA,kBAAAT,GAAAO,EAAAP,EAAA2yL,eAAAlyL,EAAAT,EAAA+pN,aAAAxpN,MAAA,IAAA,aAAA6G,UAAA;AlRuiBA,AkRviBApH,EAAAkgB,OAAA,IAAAvf,GAAAyG,SAAA4iN,UAAAC,aAAAxpN,GAAA2G,SAAA4iN,UAAAC,cAAAzlN,KAAAjC,OAAA5B,EAAAupN,UAAA,aAAAlqN,EAAAoE,MAAA7B,QAAAhC,EAAAI,EAAA6D,KAAAjC,OAAA9B,EAAA,OAAA4zB,OAAA9zB,EAAAgC,OAAA9B,GAAA,QAAA6O,GAAAvP,GAAAA,EAAAie,iBAAAje,EAAA4e,kBAAA,QAAApP,GAAAxP,GAAAA,EAAAie,iBAAAje,EAAA+gB,2BAAA,QAAAtR,GAAAxP,GAAA,IAAAiD,EAAA,CAAA,GAAA1C,GAAAP,EAAA,GAAAwsB,cAAAza,OAAAsF,iBAAArX,EAAA,GAAA,KAAAiD,GAAAlD,EAAAqH,SAAA9E,cAAA,QAAA8C,KAAAmmB,SAAA,WAAAkB,KAAA,WAAAnV,IAAA,WAAA9R,QAAA,OAAAo4H,SAAAr9H,EAAAq9H,SAAAsgF,WAAA39M,EAAA29M,WAAAC,UAAA59M,EAAA49M,UAAAxyL,WAAAprB,EAAAorB,WAAAD,cAAAnrB,EAAAmrB,cAAAy+L,cAAA5pN,EAAA4pN,cAAAC,WAAA,WAAAnnN,EAAAmN,KAAA,QAAA;AlRwiBA,AkRxiBArQ,EAAA,QAAAopB,OAAAlmB,GAAA,MAAAA,GAAAuB,KAAAxE,EAAA8Z,OAAA7W,EAAA8D,QAAA,QAAA0I,GAAAzP,EAAAO,EAAAE,GAAA,GAAAE,GAAAqC,EAAA7B,IAAAR,GAAAZ,EAAAgE,KAAA/D,EAAAoQ,KAAA,UAAAzP,IAAAA,EAAA,GAAAA,EAAAZ,EAAAY,EAAAN,MAAA,QAAAypN,MAAA,WAAA,IAAAv+M,KAAAgD,QAAA,aAAApN,EAAAiK,KAAAG,SAAA5K,EAAAZ,EAAAgE,KAAAxD,EAAA6P,KAAA,UAAAzP,IAAAA,EAAA,GAAAA,EAAAZ,EAAAY,EAAAN,MAAA,QAAAypN,MAAA,WAAA,IAAAv+M,KAAAgD,QAAA,cAAAvL,EAAAvC,EAAA8K,MAAAvI,GAAA7B,EAAAiK,KAAApI,OAAAhD,EAAAoQ,KAAA,QAAAjP,EAAAmQ,KAAA,MAAA,QAAAvB,GAAAhQ,EAAAC,EAAAO,EAAAE,GAAA,GAAAE,GAAA6L,EAAAzM,EAAAiF,eAAAuJ,QAAA/B,EAAAxM,EAAAgF,gBAAA7D,EAAAnB,EAAAuC,MAAA,OAAA,GAAA5B,MAAAJ,GAAA6K,KAAA3K,EAAAV,KAAAQ,EAAA6K,KAAA3K,EAAAV,EAAAsY,UAAA,EAAA1X,KAAAJ,EAAA6K,KAAA,gCAAA7K,EAAA6K,KAAA3K,EAAAV,EAAAsY,UAAA1X,EAAAA,EAAAQ,KAAAZ,EAAA6K,KAAA,eAAA7K,GAAA6K,KAAA3K,EAAAV,EAAAsY,UAAA1X,EAAAQ,EAAApB,EAAAwC,WAAA,QAAArC,GAAAH,GAAA,GAAAC,IAAA+lC,KAAA,QAAAjH,IAAA;AlRyiBA,AkRziBAC,IAAA,OAAA/a,IAAA,OAAAgb,IAAA,SAAAC,IAAA,QAAAorL,IAAA,QAAA,OAAA17M,QAAA5O,GAAAa,QAAA,eAAA,SAAAb,GAAA,MAAAC,GAAAD,KAAA,QAAAE,GAAAM,GAAA,GAAAE,GAAAE,EAAA,KAAAQ,EAAAZ,EAAA+pN,aAAA,IAAAtnN,EAAAzC,EAAA4pB,IAAAlnB,EAAAsI,IAAA,OAAA,UAAA3D,GAAAmK,OAAA2G,aAAAjY,GAAAA,EAAAsR,OAAArI,WAAA,WAAA,GAAAjJ,GAAAF,EAAAa,KAAAD,EAAA6B,EAAAgF,EAAAzH,EAAAgqN,WAAAxqN,EAAA6O,GAAA47M,QAAAC,aAAAF,UAAAtiN,GAAAhE,KAAA1D,EAAA0D,MAAA,MAAAuT,MAAAjX,EAAAiX,QAAA,EAAA0Z,cAAA3wB,EAAA2wB,eAAAlxB,EAAAiJ,SAAA1I,EAAA0I,UAAA,QAAAf,EAAAnI,EAAAuD,UAAAvD,EAAA6O,GAAA47M,QAAAC,aAAA1lK,OAAA98C,EAAAxH,GAAAA,EAAAA,EAAAsB,KAAAkB,EAAA2E,EAAA4/G,KAAA5/G,EAAAoyI,KAAApyI,EAAAqI,SAAA,KAAA9O,EAAA,kBAAAA,GAAAA,EAAAY,KAAAkB,EAAA2E,EAAA4/G,KAAA5/G,EAAAoyI,KAAApyI,EAAAqI,SAAA9O,EAAAR,GAAA,kBAAAA,GAAA2vB,OAAA3vB,EAAA2vB,QAAA/vB,EAAAwkD,SAAAhlD,EAAA8B,WAAAtB,EAAAwkD,QAAAhlD,EAAAuD,OAAA4E,EAAA3H,EAAAwkD,OAAAhjD,KAAAkB,IAAAlD,EAAAuD,OAAA4E,EAAA3H,EAAAwkD;AlR0iBA,AkR1iBAhlD,EAAAuD,OAAA4E,GAAAiiB,IAAAhpB,EAAA8H,SAAA1I,EAAA0I,SAAA7H,KAAAX,EAAAmuB,QAAA,SAAA7uB,GAAA,GAAAC,GAAAO,EAAAqxC,QAAA7xC,EAAA6H,EAAAoyI,KAAApyI,EAAAA,GAAAwhC,SAAAppC,IAAAoJ,MAAA,SAAArJ,EAAAC,EAAAO,GAAA,GAAAE,IAAAiqN,UAAA,EAAA9tK,MAAA78C,EAAA88C,WAAA78C,EAAA88C,YAAAv8C,EAAAqH,GAAAwhC,SAAA3oC,MAAAE,EAAAqH,EAAAjG,KAAAkB,EAAAiF,IAAA/G,IAAA,QAAAH,GAAAhB,GAAA,GAAAS,GAAAE,EAAAJ,EAAAP,EAAAmB,EAAA,SAAApB,GAAA,MAAA,GAAAA,EAAAyE,KAAAzE,GAAA0H,QAAAlH,KAAAI,EAAAJ,EAAAA,GAAAqxC,QAAAjxC,IAAAZ,EAAA8B,WAAAtB,MAAA,IAAAI,EAAAJ,EAAAA,EAAA,WAAA,MAAAI,IAAA,IAAAqC,GAAAzC,GAAA,OAAAyC,GAAAwB,OAAArD,EAAA6B,EAAAwB,KAAAzE,EAAA8B,WAAAV,KAAAV,EAAAuC,EAAAwB,KAAArD,EAAA,SAAApB,GAAA,MAAAA,GAAAU,MAAA,SAAAT,GAAA,GAAAgD,GAAAvC,EAAAT,EAAAwnH,KAAA7mH,GAAAixC,WAAA,OAAA,KAAAnxC,MAAAT,GAAAopC,SAAA7oC,MAAAyC,EAAA,SAAAzC,EAAAI,GAAA,GAAAsC,GAAA2E,CAAA,IAAArH,EAAAA,EAAA,GAAAA,EAAAomB,SAAA,CAAA1jB,IAAA,KAAA2E,IAAArH,GAAAA,EAAAmO,eAAA9G,KAAA3E,EAAA2E,GAAArH,EAAAqH,GAAA3E,GAAA0jB,YAAA5mB,EAAAQ,EAAAomB,UAAAmjM,MAAA,SAAA/pN,EAAAC;AlR2iBA,AkR3iBAgD,EAAAhD,EAAAiD,EAAA0jB,aAAA1jB,EAAA0jB,SAAApkB,QAAAvC,EAAA2qN,QAAAlqN,EAAAU,EAAA8B,GAAA1C,KAAAI,EAAAyK,KAAAnI,OAAAjD,GAAA2qN,QAAAlqN,EAAAU,EAAAZ,GAAAA,IAAAI,EAAAyK,KAAA7K,IAAAR,EAAAQ,IAAAqxC,SAAAk4K,MAAA,SAAA/pN,EAAAC,GAAAgD,EAAAhD,EAAAW,EAAAixC,eAAA5xC,GAAAopC,SAAAzoC,KAAA,QAAAE,GAAAN,GAAA,GAAAE,GAAAV,EAAA8B,WAAAtB,EAAA,OAAA,UAAAI,GAAA,GAAAQ,GAAAR,EAAA6mH,KAAAxkH,GAAA4uC,YAAA3uC,EAAAxC,EAAAF,EAAAI,GAAAJ,CAAAR,GAAA0H,QAAAxE,KAAAlD,EAAAkD,GAAA7C,KAAA,WAAA,GAAAL,GAAAwL,KAAA/G,OAAAxE,EAAAO,EAAAR,EAAAwL,KAAA/G,KAAA+G,MAAA,KAAApK,GAAAR,EAAAgqN,QAAAxpN,EAAAZ,KAAAyC,EAAA4uC,QAAAxmC,KAAArL,EAAAwL,MAAAgF,GAAAhF,KAAA/G,KAAA+G,SAAA5K,EAAAyoC,SAAApmC,KAAA,QAAAxC,GAAAR,EAAAO,GAAA,GAAAR,EAAA8B,WAAA7B,GAAA,OAAA,CAAA,KAAAA,EAAA,OAAA,CAAA,IAAA,gBAAAA,GAAA,OAAA,CAAA,MAAA,IAAAmS,OAAA5R,EAAA,+CAAA,QAAAc,GAAArB,EAAAO,GAAA,GAAAR,EAAA8B,WAAA7B,GAAA,CAAA,GAAAS,GAAA6N,MAAAZ,UAAAzI,MAAAlD,KAAAsP,UAAA;AlR4iBA,AkR5iBA,MAAArR,GAAAoR,MAAA7Q,EAAAE,GAAA,MAAAT,GAAA,QAAA4Y,GAAA5Y,GAAA,GAAAO,GAAA,CAAA,OAAAR,GAAAK,KAAAJ,EAAA,SAAAD,EAAAC,GAAAA,EAAA2mB,SAAApmB,GAAAqY,EAAA5Y,EAAA2mB,UAAApmB,MAAAA,EAAA,QAAAsY,GAAA9Y,EAAAQ,EAAAE,EAAAE,GAAA,GAAAsC,GAAA2E,EAAAI,EAAAC,EAAAC,EAAA/G,EAAApB,EAAAiD,GAAA,CAAA,KAAArC,EAAAiqN,qBAAAjqN,EAAAkqN,iBAAAlqN,EAAAkqN,gBAAAtoN,OAAA,EAAA,MAAAvC,EAAA,QAAA,CAAA,IAAA4H,EAAA,GAAAI,EAAA,EAAAC,EAAAtH,EAAAkqN,gBAAAtoN,OAAA0F,EAAAD,IAAAE,EAAAvH,EAAAkqN,gBAAA7iN,GAAAJ,EAAA7H,EAAAwO,QAAArG,KAAAN,GAAA,IAAAI,KAAA,GAAA,EAAAJ,EAAA,KAAA,IAAA3E,EAAAlD,EAAAsY,UAAA,EAAAzQ,GAAA7H,EAAAA,EAAAsY,UAAAzQ,EAAAM,EAAA3F,QAAAU,EAAAV,OAAA,IAAAU,EAAAtC,EAAAiqN,mBAAA7oN,KAAAwJ,KAAAtI,EAAA1C,GAAA0C,IAAAjD,GAAA,OAAAiD,GAAAtC,EAAA4P,GAAAtN,KAAAjD,GAAA,OAAAW,EAAA4P,GAAAtN,IAAA,CAAA,IAAAD,GAAA,EAAAgF,EAAA,EAAAC,EAAA1H,EAAAgC,OAAA0F,EAAAD,EAAAA,IAAA,GAAA8G,EAAAnO,EAAA4P,GAAAtN,GAAAtC,EAAA4P,GAAAhQ,EAAAyH,KAAA,CAAAhF,GAAA,CAAA,OAAAA,GAAAvC,EAAAwC,IAAA,MAAA9B,KAAApB,EAAAA,EAAA,OAAA,QAAA+Y,KAAA,GAAA9Y,GAAAuL,IAAAxL,GAAAK,KAAAiR,UAAA,SAAAtR,EAAAQ,GAAAP,EAAAO,GAAAqG;AlR6iBA,AkR7iBA5G,EAAAO,GAAA,OAAA,QAAAwY,GAAA/Y,EAAAO,GAAA,GAAAE,GAAA,YAAA,OAAAA,GAAAiN,UAAA,GAAA1N,GAAAS,EAAAiN,UAAAsC,YAAAvP,EAAAA,EAAAiN,UAAA+W,OAAAzkB,EAAA0N,UAAAjN,EAAAiN,UAAA3N,EAAAuD,OAAA7C,EAAAiN,UAAAnN,GAAAE,EAAA,GAAAsR,OAAA+4M,UAAA9qN,EAAA,CAAA,GAAAO,GAAAE,EAAAE,EAAAQ,EAAA6B,EAAAC,EAAA+E,EAAAC,EAAAL,GAAAuH,EAAA,EAAAC,EAAA,GAAA7O,GAAAo1G,IAAA,EAAAlB,MAAA,GAAAs2G,IAAA,GAAAr1G,MAAA,GAAAb,KAAA,GAAAe,GAAA,GAAAJ,MAAA,GAAAjB,KAAA,GAAAkB,MAAA,GAAAu1G,KAAA,GAAAl3G,IAAA,GAAAwB,QAAA,GAAAD,UAAA,GAAAV,KAAA,GAAAH,IAAA,GAAAT,UAAA,EAAAO,OAAA,GAAA22G,QAAA,SAAAlrN,GAAA,OAAAA,EAAAA,EAAAgf,MAAAhf,EAAAgf,MAAAhf,GAAA,IAAAQ,GAAAs0G,KAAA,IAAAt0G,GAAAi1G,MAAA,IAAAj1G,GAAAq1G,GAAA,IAAAr1G,GAAAg0G,KAAA,OAAA,EAAA,OAAA,GAAA22G,UAAA,SAAAnrN,GAAA,GAAAC,GAAAD,EAAAgf,KAAA,QAAA/e,GAAA,IAAAO,GAAAk1G,MAAA,IAAAl1G,GAAAyqN,KAAA,IAAAzqN,GAAAuzG,IAAA,OAAA,EAAA,MAAA/zG,GAAAggB,SAAA,GAAA,GAAAorM,cAAA,SAAAprN,GAAA,MAAAA,GAAAA,EAAAgf,MAAAhf,EAAAgf,MAAAhf,EAAAA,GAAA,KAAA,KAAAA;AlR8iBA,GkR9iBAmI,EAAA,gDAAAoE,GAAA8+M,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,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,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,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA;AlR+iBA,AkR/iBAC,IAAA,KAAAC,IAAA,KAAAC,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,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,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,IAAAC,IAAA;AlRgjBA,AkRhjBAC,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,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,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,KAAAC,IAAA,KAAAC,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;AlRijBA,AkRjjBAC,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,KAAAC,IAAA,KAAAC,IAAA,KAAAC,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,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,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,IAAAC,IAAA;AlRkjBA,AkRljBAC,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,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,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,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;AlRmjBA,AkRnjBAC,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,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,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,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA;AlRojBA,AkRpjBAC,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,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,IAAAC,IAAA,KAAAC,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,IAAAC,IAAA,IAAAC,IAAA;AlRqjBA,AkRrjBAC,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,KAAAC,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,KAAAC,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,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA;AlRsjBA,AkRtjBAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,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,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,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,IAAAC,IAAA,KAAAC,IAAA,IAAAC,IAA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59F,OACAiT,EAAA6nB,SAAA96B,QACAA,MAAAwnC,WACAo2D,YAAA0E,gBACA1E,YAAAuE,YAAAniG,MAAAwnC,YAWAoJ,SAAA,SAAAgtD,aACA,GACA59F,UACAwnC,SAAAo2D,YAAAyE,aAKA,OAHA76D,YACAxnC,MAAAwnC,SAAAA,UAEAxnC,MAoBA,QACA40F,SAAA,oBACAn5D,SAAA20B,IACA+D,OAAAA,OACAqN,aAAAs+F,gBAAAn4J,IACAw6F,YAAAA,YACAE,YAAAA,YACAC,cAAAA,cACAxxD,QAAAA,QACAD,SAAAA;AACAD,A1SweA,S0SxeAA,SACA18B,QAAAmrK,cAGAo6E,SAAAH,aC3WA,SAAAliQ,GAAA,GAAAE,GAAA2G,SAAArH,EAAA,cAAA6H,EAAA,aAAAtH,EAAAG,EAAA6B,cAAA,QAAAhC,GAAA2D,KAAA,WAAAxD,EAAAiC,qBAAA,QAAA,GAAA3C,GAAAO,GAAAA,EAAAsH,GAAAtH,EAAAsH,GAAAqN,QAAA1U,EAAAD,EAAAP,GAAAU,EAAA2oB,eAAA7oB,KACA;A3S+0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC97BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzFA,AD0FA;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5ZA,AD6ZA;AC5ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACveA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzDA,AD0DA;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrDA,ADsDA;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5DA,AD6DA;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/rFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1BA,AD2BA;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1VA,AD2VA;AC1VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjDA,ADkDA;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7DA,AD8DA;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/2CA,ADg3CA;AC/2CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7LA,AD8LA;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxIA,ADyIA;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpGA,ADqGA;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjIA,ADkIA;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzEA,AD0EA;ACzEA;AACA;AACA;AACA;AACA;AACA;ACNA,ADOA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7VA,AD8VA;AC7VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1LA,AD2LA;AC1LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxEA,ADyEA;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpMA,ADqMA;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClCA,ADmCA;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrQA,ADsQA;ACrQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5uBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtEA,ADuEA;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzHA,AD0HA;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5HA,AD6HA;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9SA,AD+SA;AC9SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3FA,AD4FA;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzXA,AD0XA;ACzXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7BA,AD8BA;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClIA,ADmIA;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChDA,ADiDA;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjKA,ADkKA;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvUA,ADwUA;ACvUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvDA,ADwDA;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjDA,ADkDA;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtCA,ADuCA;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClLA,ADmLA;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7BA,AD8BA;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1NA,AD2NA;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA,ADYA;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpZA,ADqZA;ACpZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7KA,AD8KA;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA,ADYA;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/SA,ADgTA;AC/SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1DA,AD2DA;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpNA,ADqNA;ACpNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5BA,AD6BA;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1IA,AD2IA;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACz1LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1BA,AD2BA;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxPA,ADyPA;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA,ADYA;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1FA,AD2FA;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChMA,ADiMA;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7IA,AD8IA;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxKA,ADyKA;ACxKA;ACDA,ADEA;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClKA,ADmKA;AClKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA,ADuBA;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7CA,AD8CA;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjBA,ADkBA;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxEA,ADyEA;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA,ADOA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9CA,AD+CA;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACRA;AACA;AACA;AACA;AACA,ACJA;AACA;AACA;AACA;AACA,ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClOA;AACA;AACA;AACA;AACA;ACJA,ADKA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClDA,ADmDA;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACTA;AACA;AACA;AACA;AACA;AACA,ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzBA,AD0BA;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA,ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA,ADgBA;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA,ADmBA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtBA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACTA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA,ADuBA;ACtBA;AACA;AACA;AACA;AACA,ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzFA,AD0FA;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChCA,ADiCA;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvFA,ADwFA;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnEA,ADoEA;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA,ADeA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5CA,AD6CA;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1CA,AD2CA;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnMA,ADoMA;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzFA,AD0FA;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjMA,ADkMA;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1JA,AD2JA;AC1JA;ACDA,ADEA;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvkEA,ADwkEA;ACvkEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzQA,AD0QA;ACzQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9BA,AD+BA;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpEA,ADqEA;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA,ADuBA;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/BA,ADgCA;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA,ADqBA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnCA,ADoCA;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA,ADuBA;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA,ADyBA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA,ADyBA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA,ADuBA;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9CA,AD+CA;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA,ADqBA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA,ADqBA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1BA,AD2BA;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9OA,AD+OA;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1DA,AD2DA;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClGA,ADmGA;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpHA,ADqHA;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5vBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrFA,ADsFA;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA,ADmBA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACr8BA,ADs8BA;ACr8BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjYA,ADkYA;ACjYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7cA,AD8cA;AC7cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpEA,ADqEA;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1hBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC77PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjHA,ADkHA;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9JA,AD+JA;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5zBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpEA,ADqEA;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtDA,ADuDA;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtDA,ADuDA;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtDA,ADuDA;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA,ADyBA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtsGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/EA,ADgFA;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxFA,ADyFA;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClDA,ADmDA;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvIA,ADwIA;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1qBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5EA,AD6EA;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA,ADqBA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtDA,ADuDA;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClDA,ADmDA;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtGA,ADuGA;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvDA,ADwDA;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChXA,ADiXA;AChXA;AACA;AACA","file":"qtiTestRunner.min.js","sourcesContent":["/*! jQuery v@1.8.0 jquery.com | jquery.org/license */\r\n(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e=\"data-\"+c.replace(I,\"-$1\").toLowerCase();d=a.getAttribute(e);if(typeof d==\"string\"){try{d=d===\"true\"?!0:d===\"false\"?!1:d===\"null\"?null:+d+\"\"===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b===\"data\"&&p.isEmptyObject(a[b]))continue;if(b!==\"toJSON\")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b==\"string\"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split(\"|\"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c===\"object\"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c===\"input\"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c===\"option\"?b.selected=a.defaultSelected:c===\"input\"||c===\"textarea\"?b.defaultValue=a.defaultValue:c===\"script\"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!=\"undefined\"?a.getElementsByTagName(\"*\"):typeof a.querySelectorAll!=\"undefined\"?a.querySelectorAll(\"*\"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bX(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bV.length;while(e--){b=bV[e]+c;if(b in a)return b}return d}function bY(a,b){return a=b||a,p.css(a,\"display\")===\"none\"||!p.contains(a.ownerDocument,a)}function bZ(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,\"olddisplay\"),b?(!e[f]&&c.style.display===\"none\"&&(c.style.display=\"\"),c.style.display===\"\"&&bY(c)&&(e[f]=p._data(c,\"olddisplay\",cb(c.nodeName)))):(d=bH(c,\"display\"),!e[f]&&d!==\"none\"&&p._data(c,\"olddisplay\",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display===\"none\"||c.style.display===\"\")c.style.display=b?e[f]||\"\":\"none\"}return a}function b$(a,b,c){var d=bO.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||\"px\"):b}function b_(a,b,c,d){var e=c===(d?\"border\":\"content\")?4:b===\"width\"?1:0,f=0;for(;e<4;e+=2)c===\"margin\"&&(f+=p.css(a,c+bU[e],!0)),d?(c===\"content\"&&(f-=parseFloat(bH(a,\"padding\"+bU[e]))||0),c!==\"margin\"&&(f-=parseFloat(bH(a,\"border\"+bU[e]+\"Width\"))||0)):(f+=parseFloat(bH(a,\"padding\"+bU[e]))||0,c!==\"padding\"&&(f+=parseFloat(bH(a,\"border\"+bU[e]+\"Width\"))||0));return f}function ca(a,b,c){var d=b===\"width\"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,\"boxSizing\")===\"border-box\";if(d<=0){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bP.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+b_(a,b,c||(f?\"border\":\"content\"),e)+\"px\"}function cb(a){if(bR[a])return bR[a];var b=p(\"<\"+a+\">\").appendTo(e.body),c=b.css(\"display\");b.remove();if(c===\"none\"||c===\"\"){bI=e.body.appendChild(bI||p.extend(e.createElement(\"iframe\"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(\"<!doctype html><html><body>\"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,\"display\"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+\"[\"+(typeof e==\"object\"?b:\"\")+\"]\",e,c,d)});else if(!c&&p.type(b)===\"object\")for(e in b)ch(a+\"[\"+e+\"]\",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!=\"string\"&&(c=b,b=\"*\");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\\+/.test(d),f&&(d=d.substr(1)||\"*\"),e=a[d]=a[d]||[],e[f?\"unshift\":\"push\"](c)}}function cz(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cu;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h==\"string\"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cz(a,c,d,e,h,g)));return(l||!h)&&!g[\"*\"]&&(h=cz(a,c,d,e,\"*\",g)),h}function cA(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cB(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]===\"*\")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader(\"content-type\"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+\" \"+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cC(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!==\"*\"){if(h!==\"*\"&&h!==e){c=i[h+\" \"+e]||i[\"* \"+e];if(!c)for(d in i){f=d.split(\" \");if(f[1]===e){c=i[h+\" \"+f[0]]||i[\"* \"+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a[\"throws\"])b=c(b);else try{b=c(b)}catch(k){return{state:\"parsererror\",error:c?k:\"No conversion from \"+h+\" to \"+e}}}h=e}return{state:\"success\",data:b}}function cK(){try{return new a.XMLHttpRequest}catch(b){}}function cL(){try{return new a.ActiveXObject(\"Microsoft.XMLHTTP\")}catch(b){}}function cT(){return setTimeout(function(){cM=b},0),cM=p.now()}function cU(a,b){p.each(b,function(b,c){var d=(cS[b]||[]).concat(cS[\"*\"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cV(a,b,c){var d,e=0,f=0,g=cR.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cM||cT(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cM||cT(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cW(k,j.opts.specialEasing);for(;e<g;e++){d=cR[e].call(j,a,k,j.opts);if(d)return d}return cU(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cW(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&\"expand\"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cX(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bY(a);c.queue||(j=p._queueHooks(a,\"fx\"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,\"fx\").length||j.empty.fire()})})),a.nodeType===1&&(\"height\"in b||\"width\"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,\"display\")===\"inline\"&&p.css(a,\"float\")===\"none\"&&(!p.support.inlineBlockNeedsLayout||cb(a.nodeName)===\"inline\"?m.display=\"inline-block\":m.zoom=1)),c.overflow&&(m.overflow=\"hidden\",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cO.exec(f)){delete b[d];if(f===(q?\"hide\":\"show\"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,\"fxshow\")||p._data(a,\"fxshow\",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,\"fxshow\",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e===\"width\"||e===\"height\"?1:0))}}function cY(a,b,c,d,e){return new cY.prototype.init(a,b,c,d,e)}function cZ(a,b){var c,d={height:a},e=0;for(;e<4;e+=2-b)c=bU[e],d[\"margin\"+c]=d[\"padding\"+c]=a;return b&&(d.opacity=d.width=a),d}function c_(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source,r=/\\S/,s=/\\s+/,t=r.test(\" \")?/^[\\s\\xA0]+|[\\s\\xA0]+$/g:/^\\s+|\\s+$/g,u=/^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]*)$)/,v=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,w=/^[\\],:{}\\s]*$/,x=/(?:^|:|,)(?:\\s*\\[)+/g,y=/\\\\(?:[\"\\\\\\/bfnrt]|u[\\da-fA-F]{4})/g,z=/\"[^\"\\\\\\r\\n]*\"|true|false|null|-?(?:\\d\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/g,A=/^-ms-/,B=/-([\\da-z])/gi,C=function(a,b){return(b+\"\").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener(\"DOMContentLoaded\",D,!1),p.ready()):e.readyState===\"complete\"&&(e.detachEvent(\"onreadystatechange\",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a==\"string\"){a.charAt(0)===\"<\"&&a.charAt(a.length-1)===\">\"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:\"\",jquery:\"1.8.0\",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b===\"find\"?d.selector=this.selector+(this.selector?\" \":\"\")+c:b&&(d.selector=this.selector+\".\"+b+\"(\"+c+\")\"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),\"slice\",k.call(arguments).join(\",\"))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h==\"boolean\"&&(k=h,h=arguments[1]||{},i=2),typeof h!=\"object\"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger(\"ready\").off(\"ready\")},isFunction:function(a){return p.type(a)===\"function\"},isArray:Array.isArray||function(a){return p.type(a)===\"array\"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||\"object\"},isPlainObject:function(a){if(!a||p.type(a)!==\"object\"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,\"constructor\")&&!n.call(a.constructor.prototype,\"isPrototypeOf\"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!=\"string\"?null:(typeof b==\"boolean\"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!=\"string\")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,\"@\").replace(z,\"]\").replace(x,\"\")))return(new Function(\"return \"+b))();p.error(\"Invalid JSON: \"+b)},parseXML:function(c){var d,e;if(!c||typeof c!=\"string\")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,\"text/xml\")):(d=new ActiveXObject(\"Microsoft.XMLDOM\"),d.async=\"false\",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName(\"parsererror\").length)&&p.error(\"Invalid XML: \"+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,\"ms-\").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o?function(a){return a==null?\"\":o.call(a)}:function(a){return a==null?\"\":a.toString().replace(t,\"\")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c===\"string\"||c===\"function\"||c===\"regexp\"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d==\"number\")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i==\"number\"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c==\"string\"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||f.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d==\"object\"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState===\"complete\"||e.readyState!==\"loading\"&&e.addEventListener)setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener(\"DOMContentLoaded\",D,!1),a.addEventListener(\"load\",p.ready,!1);else{e.attachEvent(\"onreadystatechange\",D),a.attachEvent(\"onload\",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll(\"left\")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each(\"Boolean Number String Function Array Date RegExp Object\".split(\" \"),function(a,b){E[\"[object \"+b+\"]\"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a==\"string\"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){p.isFunction(c)&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[[\"resolve\",\"done\",p.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",p.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",p.Callbacks(\"memory\")]],c=\"pending\",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+\"With\"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a==\"object\"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+\"With\"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement(\"div\");n.setAttribute(\"className\",\"t\"),n.innerHTML=\" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\",c=n.getElementsByTagName(\"*\"),d=n.getElementsByTagName(\"a\")[0],d.style.cssText=\"top:1px;float:left;opacity:.5\";if(!c||!c.length||!d)return{};f=e.createElement(\"select\"),g=f.appendChild(e.createElement(\"option\")),h=n.getElementsByTagName(\"input\")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName(\"tbody\").length,htmlSerialize:!!n.getElementsByTagName(\"link\").length,style:/top/.test(d.getAttribute(\"style\")),hrefNormalized:d.getAttribute(\"href\")===\"/a\",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value===\"on\",optSelected:g.selected,getSetAttribute:n.className!==\"t\",enctype:!!e.createElement(\"form\").enctype,html5Clone:e.createElement(\"nav\").cloneNode(!0).outerHTML!==\"<:nav></:nav>\",boxModel:e.compatMode===\"CSS1Compat\",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent(\"onclick\",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent(\"onclick\"),n.detachEvent(\"onclick\",m)),h=e.createElement(\"input\"),h.value=\"t\",h.setAttribute(\"type\",\"radio\"),b.radioValue=h.value===\"t\",h.setAttribute(\"checked\",\"checked\"),h.setAttribute(\"name\",\"t\"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j=\"on\"+k,l=j in n,l||(n.setAttribute(j,\"return;\"),l=typeof n[j]==\"function\"),b[k+\"Bubbles\"]=l;return p(function(){var c,d,f,g,h=\"padding:0;margin:0;border:0;display:block;overflow:hidden;\",i=e.getElementsByTagName(\"body\")[0];if(!i)return;c=e.createElement(\"div\"),c.style.cssText=\"visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px\",i.insertBefore(c,i.firstChild),d=e.createElement(\"div\"),c.appendChild(d),d.innerHTML=\"<table><tr><td></td><td>t</td></tr></table>\",f=d.getElementsByTagName(\"td\"),f[0].style.cssText=\"padding:0;margin:0;border:0;display:none\",l=f[0].offsetHeight===0,f[0].style.display=\"\",f[1].style.display=\"none\",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML=\"\",d.style.cssText=\"box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;\",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!==\"1%\",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:\"4px\"}).width===\"4px\",g=e.createElement(\"div\"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width=\"0\",d.style.width=\"1px\",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!=\"undefined\"&&(d.innerHTML=\"\",d.style.cssText=h+\"width:1px;padding:1px;display:inline;zoom:1\",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display=\"block\",d.style.overflow=\"visible\",d.innerHTML=\"<div></div>\",d.firstChild.style.width=\"5px\",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\\{.*\\}|\\[.*\\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:\"jQuery\"+(p.fn.jquery+Math.random()).replace(/\\D/g,\"\"),noData:{embed:!0,object:\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c==\"string\",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c==\"object\"||typeof c==\"function\")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(\" \")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute(\"classid\")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,\"parsedAttrs\")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf(\"data-\")===0&&(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,\"parsedAttrs\",!0)}}return k}return typeof a==\"object\"?this.each(function(){p.data(this,a)}):(d=a.split(\".\",2),d[1]=d[1]?\".\"+d[1]:\"\",e=d[1]+\"!\",p.access(this,function(c){if(c===b)return k=this.triggerHandler(\"getData\"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler(\"setData\"+e,d),p.data(this,a,c),b.triggerHandler(\"changeData\"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||\"fx\")+\"queue\",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||\"fx\";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d===\"inprogress\"&&(d=c.shift()),d&&(b===\"fx\"&&c.unshift(\"inprogress\"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+\"queueHooks\";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks(\"once memory\").add(function(){p.removeData(a,b+\"queue\",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!=\"string\"&&(c=a,a=\"fx\",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a===\"fx\"&&b[0]!==\"inprogress\"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||\"fx\",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||\"fx\",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!=\"string\"&&(c=a,a=b),a=a||\"fx\";while(h--)(d=p._data(g[h],a+\"queueHooks\"))&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\\t\\r\\n]/g,P=/\\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a==\"string\"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=\" \"+e.className+\" \";for(g=0,h=b.length;g<h;g++)~f.indexOf(\" \"+b[g]+\" \")||(f+=b[g]+\" \");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a==\"string\"||a===b){c=(a||\"\").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(\" \"+e.className+\" \").replace(O,\" \");for(f=0,g=c.length;f<g;f++)while(d.indexOf(\" \"+c[f]+\" \")>-1)d=d.replace(\" \"+c[f]+\" \",\" \");e.className=a?p.trim(d):\"\"}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b==\"boolean\";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c===\"string\"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?\"addClass\":\"removeClass\"](e)}else if(c===\"undefined\"||c===\"boolean\")this.className&&p._data(this,\"__className__\",this.className),this.className=this.className||a===!1?\"\":p._data(this,\"__className__\")||\"\"})},hasClass:function(a){var b=\" \"+a+\" \",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(\" \"+this[c].className+\" \").replace(O,\" \").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&\"get\"in c&&(d=c.get(f,\"value\"))!==b?d:(d=f.value,typeof d==\"string\"?d.replace(P,\"\"):d==null?\"\":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f=\"\":typeof f==\"number\"?f+=\"\":p.isArray(f)&&(f=p.map(f,function(a){return a==null?\"\":a+\"\"})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!(\"set\"in c)||c.set(this,f,\"value\")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type===\"select-one\";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute(\"disabled\")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,\"optgroup\"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find(\"option\").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute==\"undefined\")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&\"set\"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,\"\"+d),d)}return g&&\"get\"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,\"\"),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error(\"type property can't be changed\");else if(!p.support.radioValue&&b===\"radio\"&&p.nodeName(a,\"input\")){var c=a.value;return a.setAttribute(\"type\",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,\"button\")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,\"button\"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:\"tabIndex\",readonly:\"readOnly\",\"for\":\"htmlFor\",\"class\":\"className\",maxlength:\"maxLength\",cellspacing:\"cellSpacing\",cellpadding:\"cellPadding\",rowspan:\"rowSpan\",colspan:\"colSpan\",usemap:\"useMap\",frameborder:\"frameBorder\",contenteditable:\"contentEditable\"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&\"set\"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&\"get\"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode(\"tabindex\");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!=\"boolean\"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!==\"\":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+\"\"}},p.each([\"width\",\"height\"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c===\"\")return a.setAttribute(b,\"auto\"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===\"\"&&(b=\"false\"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each([\"href\",\"src\",\"width\",\"height\"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=\"\"+b}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype=\"encoding\"),p.support.checkOn||p.each([\"radio\",\"checkbox\"],function(){p.valHooks[this]={get:function(a){return a.getAttribute(\"value\")===null?\"on\":a.value}}}),p.each([\"radio\",\"checkbox\"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\\.]*|)(?:\\.(.+)|)$/,X=/(?:^|\\s)hover(\\.\\S+|)\\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,\"mouseenter$1 mouseleave$1\")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!=\"undefined\"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(\" \");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||\"\").split(\".\").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,namespace:m.join(\".\")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent(\"on\"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||\"\")).split(\" \");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp(\"(^|\\\\.)\"+j.split(\".\").sort().join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d===\"**\"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,\"events\",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf(\"!\")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(\".\")>=0&&(t=s.split(\".\"),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c==\"object\"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join(\".\"),c.namespace_re=c.namespace?new RegExp(\"(^|\\\\.)\"+t.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,m=s.indexOf(\":\")<0?\"on\"+s:\"\";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,\"events\")||{})[c.type]&&p._data(k,\"handle\"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!==\"click\"||!p.nodeName(f,\"a\"))&&p.acceptData(f)&&m&&f[s]&&(s!==\"focus\"&&s!==\"blur\"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,k,l,m,n,o=(p._data(this,\"events\")||{})[c.type]||[],q=o.delegateCount,r=[].slice.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!==\"click\")){g=p(this),g.context=this;for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!==\"click\"){i={},k=[],g[0]=f;for(d=0;d<q;d++)l=o[d],m=l.selector,i[m]===b&&(i[m]=g.is(m)),i[m]&&k.push(l);k.length&&u.push({elem:f,matches:k})}}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){j=u[d],c.currentTarget=j.elem;for(e=0;e<j.matches.length&&!c.isImmediatePropagationStopped();e++){l=j.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,h=((p.event.special[l.origType]||{}).handle||l.handler).apply(j.elem,r),h!==b&&(c.result=h,h===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:\"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),fixHooks:{},keyHooks:{props:\"char charCode key keyCode\".split(\" \"),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:\"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{ready:{setup:p.bindReady},load:{noBubble:!0},focus:{delegateType:\"focusin\"},blur:{delegateType:\"focusout\"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d=\"on\"+b;a.detachEvent&&(typeof a[d]==\"undefined\"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,\"form\"))return!1;p.event.add(this,\"click._submit keypress._submit\",function(a){var c=a.target,d=p.nodeName(c,\"input\")||p.nodeName(c,\"button\")?c.form:b;d&&!p._data(d,\"_submit_attached\")&&(p.event.add(d,\"submit._submit\",function(a){a._submit_bubble=!0}),p._data(d,\"_submit_attached\",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate(\"submit\",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,\"form\"))return!1;p.event.remove(this,\"._submit\")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type===\"checkbox\"||this.type===\"radio\")p.event.add(this,\"propertychange._change\",function(a){a.originalEvent.propertyName===\"checked\"&&(this._just_changed=!0)}),p.event.add(this,\"click._change\",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate(\"change\",this,a,!0)});return!1}p.event.add(this,\"beforeactivate._change\",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,\"_change_attached\")&&(p.event.add(b,\"change._change\",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate(\"change\",this.parentNode,a,!0)}),p._data(b,\"_change_attached\",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!==\"radio\"&&b.type!==\"checkbox\")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,\"._change\"),V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a==\"object\"){typeof c!=\"string\"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c==\"string\"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+\".\"+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a==\"object\"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c==\"function\")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||\"**\",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,\"**\"):this.off(b,a||\"**\",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,\"lastToggle\"+a.guid)||0)%d;return p._data(this,\"lastToggle\"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each(\"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu\".split(\" \"),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)Z(a,b[e],c,d)}function be(a,b,c,d,e,f){var g,h=$.setFilters[b.toLowerCase()];return h||Z.error(b),(a||!(g=e))&&bd(a||\"*\",d,g=[],e),g.length>0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp(\"^\"+s.source+\"(?!\"+r+\")\",\"i\"),u=function(){var a=1,c=arguments.length-2;for(;a<c;a++)arguments[a]===b&&(g[a]=b)};for(;p<q;p++){s.exec(\"\"),a=f[p],j=[],i=0,k=e;while(g=s.exec(a)){n=s.lastIndex=g.index+g[0].length;if(n>i){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,\"$&*\");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==\")\"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[\"\"],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=\" \"+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A,\" \"),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+\".\"+d,j=i+\".\"+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h==\"string\"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j=\"undefined\",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=(\"sizcache\"+Math.random()).replace(\".\",\"\"),r=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",s=\"(?:\\\\\\\\.|[-\\\\w]|[^\\\\x00-\\\\xa0])+\",t=s.replace(\"w\",\"w#\"),u=\"([*^$|!~]?=)\",v=\"\\\\[\"+r+\"*(\"+s+\")\"+r+\"*(?:\"+u+r+\"*(?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(\"+t+\")|)|)\"+r+\"*\\\\]\",w=\":(\"+s+\")(?:\\\\((?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\2|((?:[^,]|\\\\\\\\,|(?:,(?=[^\\\\[]*\\\\]))|(?:,(?=[^\\\\(]*\\\\))))*))\\\\)|)\",x=\":(nth|eq|gt|lt|first|last|even|odd)(?:\\\\((\\\\d*)\\\\)|)(?=[^-]|$)\",y=r+\"*([\\\\x20\\\\t\\\\r\\\\n\\\\f>+~])\"+r+\"*\",z=\"(?=[^\\\\x20\\\\t\\\\r\\\\n\\\\f])(?:\\\\\\\\.|\"+v+\"|\"+w.replace(2,7)+\"|[^\\\\\\\\(),])+\",A=new RegExp(\"^\"+r+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+r+\"+$\",\"g\"),B=new RegExp(\"^\"+y),C=new RegExp(z+\"?(?=\"+r+\"*,|$)\",\"g\"),D=new RegExp(\"^(?:(?!,)(?:(?:^|,)\"+r+\"*\"+z+\")*?|\"+r+\"*(.*?))(\\\\)|$)\"),E=new RegExp(z.slice(19,-6)+\"\\\\x20\\\\t\\\\r\\\\n\\\\f>+~])+|\"+y,\"g\"),F=/^(?:#([\\w\\-]+)|(\\w+)|\\.([\\w\\-]+))$/,G=/[\\x20\\t\\r\\n\\f]*[+~]/,H=/:not\\($/,I=/h\\d/i,J=/input|select|textarea|button/i,K=/\\\\(?!\\\\)/g,L={ID:new RegExp(\"^#(\"+s+\")\"),CLASS:new RegExp(\"^\\\\.(\"+s+\")\"),NAME:new RegExp(\"^\\\\[name=['\\\"]?(\"+s+\")['\\\"]?\\\\]\"),TAG:new RegExp(\"^(\"+s.replace(\"[-\",\"[-\\\\*\")+\")\"),ATTR:new RegExp(\"^\"+v),PSEUDO:new RegExp(\"^\"+w),CHILD:new RegExp(\"^:(only|nth|last|first)-child(?:\\\\(\"+r+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+r+\"*(?:([+-]|)\"+r+\"*(\\\\d+)|))\"+r+\"*\\\\)|)\",\"i\"),POS:new RegExp(x,\"ig\"),needsContext:new RegExp(\"^\"+r+\"*[>+~]|\"+x,\"i\")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()===\"input\"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c===\"input\"||c===\"button\")&&b.type===a}},T=function(a){var b=!1,c=h.createElement(\"div\");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML=\"<select></select>\";var b=typeof a.lastChild.getAttribute(\"multiple\");return b!==\"boolean\"&&b!==\"string\"}),V=T(function(a){a.id=q+0,a.innerHTML=\"<a name='\"+q+\"'></a><div name='\"+q+\"'></div>\",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment(\"\")),a.getElementsByTagName(\"*\").length===0}),X=T(function(a){return a.innerHTML=\"<a href='#'></a>\",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute(\"href\")===\"#\"}),Y=T(function(a){return a.innerHTML=\"<div class='hidden e'></div><div class='hidden'></div>\",!a.getElementsByClassName||a.getElementsByClassName(\"e\").length===0?!1:(a.lastChild.className=\"e\",a.getElementsByClassName(\"e\").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!=\"string\")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:[\"ID\",\"TAG\"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode(\"id\").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a===\"*\"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,\"\"),a[3]=(a[4]||a[5]||\"\").replace(K,\"\"),a[2]===\"~=\"&&(a[3]=\" \"+a[3]+\" \"),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]===\"nth\"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]===\"even\"||a[2]===\"odd\")),a[4]=+(a[6]+a[7]||a[2]===\"odd\")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,\"\"),function(b){return b.getAttribute(\"id\")===a}}:function(a){return a=a.replace(K,\"\"),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode(\"id\");return c&&c.value===a}},TAG:function(a){return a===\"*\"?function(){return!0}:(a=a.replace(K,\"\").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp(\"(^|\"+r+\")\"+a+\"(\"+r+\"|$)\"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute(\"class\")||\"\")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+\"\";if(e==null)return b===\"!=\";switch(b){case\"=\":return f===c;case\"!=\":return f!==c;case\"^=\":return c&&f.indexOf(c)===0;case\"*=\":return c&&f.indexOf(c)>-1;case\"$=\":return c&&f.substr(f.length-c.length)===c;case\"~=\":return(\" \"+f+\" \").indexOf(c)>-1;case\"|=\":return f===c||f.substr(0,c.length+1)===c+\"-\"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a===\"nth\"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case\"only\":case\"first\":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a===\"first\")return!0;c=b;case\"last\":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error(\"unsupported pseudo: \"+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,\"$1\"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b===\"input\"&&!!a.checked||b===\"option\"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>\"@\"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()===\"input\"&&(b=a.type)===\"text\"&&((c=a.getAttribute(\"type\"))==null||c.toLowerCase()===b)},radio:R(\"radio\"),checkbox:R(\"checkbox\"),file:R(\"file\"),password:R(\"password\"),image:R(\"image\"),submit:S(\"submit\"),reset:S(\"reset\"),button:function(a){var b=a.nodeName.toLowerCase();return b===\"input\"&&a.type===\"button\"||b===\"button\"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},odd:function(a,b,c){var d=[],e=c?0:1,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},lt:function(a,b,c){return c?a.slice(+b):a.slice(0,+b)},gt:function(a,b,c){return c?a.slice(0,+b+1):a.slice(+b+1)},eq:function(a,b,c){var d=a.splice(+b,1);return c?a:d}}};$.setFilters.nth=$.setFilters.eq,$.filters=$.pseudos,X||($.attrHandle={href:function(a){return a.getAttribute(\"href\",2)},type:function(a){return a.getAttribute(\"type\")}}),V&&($.order.push(\"NAME\"),$.find.NAME=function(a,b){if(typeof b.getElementsByName!==j)return b.getElementsByName(a)}),Y&&($.order.splice(1,0,\"CLASS\"),$.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!==j&&!c)return b.getElementsByClassName(a)});try{n.call(i.childNodes,0)[0].nodeType}catch(_){n=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}var ba=Z.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!==\"HTML\":!1},bb=Z.contains=i.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc=Z.getText=function(a){var b,c=\"\",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent==\"string\")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=bc(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=bc(b);return c};Z.attr=function(a,b){var c,d=ba(a);return d||(b=b.toLowerCase()),$.attrHandle[b]?$.attrHandle[b](a):U||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]==\"boolean\"?a[b]?b:null:c.specified?c.value:null:null)},Z.error=function(a){throw new Error(\"Syntax error, unrecognized expression: \"+a)},[0,0].sort(function(){return l=0}),i.compareDocumentPosition?e=function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:(e=function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],g=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return f(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)g.unshift(j),j=j.parentNode;c=e.length,d=g.length;for(var l=0;l<c&&l<d;l++)if(e[l]!==g[l])return f(e[l],g[l]);return l===c?f(a,g[l],-1):f(e[l],b,1)},f=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),Z.uniqueSort=function(a){var b,c=1;if(e){k=l,a.sort(e);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1)}return a};var bl=Z.compile=function(a,b,c){var d,e,f,g=O[a];if(g&&g.context===b)return g;e=bg(a,b,c);for(f=0;d=e[f];f++)e[f]=bj(d,b,c);return g=O[a]=bk(e),g.context=b,g.runs=g.dirruns=0,P.push(a),P.length>$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,\"$1\");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(\":not\")[0];for(j=0,k=$.order.length;j<k;j++){p=$.order[j];if(s=L[p].exec(m)){h=$.find[p]((s[1]||\"\").replace(K,\"\"),q,g);if(h==null)continue;m===r&&(a=a.slice(0,a.length-r.length)+m.replace(L[p],\"\"),a||o.apply(e,n.call(h,0)));break}}}if(a){i=bl(a,b,g),d=i.dirruns++,h==null&&(h=$.find.TAG(\"*\",G.test(a)&&b.parentNode||b));for(j=0;l=h[j];j++)c=i.runs++,i(l,b)&&e.push(l)}return e};h.querySelectorAll&&function(){var a,b=bm,c=/'|\\\\/g,d=/\\=[\\x20\\t\\r\\n\\f]*([^'\"\\]]*)[\\x20\\t\\r\\n\\f]*\\]/g,e=[],f=[\":active\"],g=i.matchesSelector||i.mozMatchesSelector||i.webkitMatchesSelector||i.oMatchesSelector||i.msMatchesSelector;T(function(a){a.innerHTML=\"<select><option selected></option></select>\",a.querySelectorAll(\"[selected]\").length||e.push(\"\\\\[\"+r+\"*(?:checked|disabled|ismap|multiple|readonly|selected|value)\"),a.querySelectorAll(\":checked\").length||e.push(\":checked\")}),T(function(a){a.innerHTML=\"<p test=''></p>\",a.querySelectorAll(\"[test^='']\").length&&e.push(\"[*^$]=\"+r+\"*(?:\\\"\\\"|'')\"),a.innerHTML=\"<input type='hidden'>\",a.querySelectorAll(\":enabled\").length||e.push(\":enabled\",\":disabled\")}),e=e.length&&new RegExp(e.join(\"|\")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!==\"object\"){var j=d.getAttribute(\"id\"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,\"\\\\$&\"):d.setAttribute(\"id\",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,\"[id='\"+k+\"'] $&\")),0)),f}catch(i){}finally{j||d.removeAttribute(\"id\")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,\"div\");try{g.call(b,\"[test!='']:sizzle\"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join(\"|\")),Z.matchesSelector=function(b,c){c=c.replace(d,\"='$1']\");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[\":\"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\\[\\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!=\"string\")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack(\"\",\"find\",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),\"not\",a)},filter:function(a){return this.pushStack(bj(this,a,!0),\"filter\",a)},is:function(a){return!!a&&(typeof a==\"string\"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!=\"string\"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,\"closest\",a)},index:function(a){return a?typeof a==\"string\"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a==\"string\"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,\"parentNode\")},parentsUntil:function(a,b,c){return p.dir(a,\"parentNode\",c)},next:function(a){return bi(a,\"nextSibling\")},prev:function(a){return bi(a,\"previousSibling\")},nextAll:function(a){return p.dir(a,\"nextSibling\")},prevAll:function(a){return p.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return p.dir(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return p.dir(a,\"previousSibling\",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,\"iframe\")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d==\"string\"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(\",\"))}}),p.extend({filter:function(a,b,c){return c&&(a=\":not(\"+a+\")\"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl=\"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",bm=/ jQuery\\d+=\"(?:null|\\d+)\"/g,bn=/^\\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,bp=/<([\\w:]+)/,bq=/<tbody/i,br=/<|&#?\\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp(\"<(?:\"+bl+\")[\\\\s/>]\",\"i\"),bv=/^(?:checkbox|radio)$/,bw=/checked\\s*(?:[^=]|=\\s*.checked.)/i,bx=/\\/(java|ecma)script/i,by=/^\\s*<!(?:\\[CDATA\\[|\\-\\-)|[\\]\\-]{2}>\\s*$/g,bz={option:[1,\"<select multiple='multiple'>\",\"</select>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],thead:[1,\"<table>\",\"</table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],area:[1,\"<map>\",\"</map>\"],_default:[0,\"\",\"\"]},bA=bk(e),bB=bA.appendChild(e.createElement(\"div\"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,\"X<div>\",\"</div>\"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,\"body\")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),\"before\",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),\"after\",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName(\"*\")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName(\"*\"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,\"\"):b;if(typeof a==\"string\"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(bo,\"<$1></$2>\");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName(\"*\")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),\"replaceWith\",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!=\"string\"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j==\"string\"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,\"tr\");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],\"table\")?bC(this[i],\"tbody\"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:\"GET\",dataType:\"script\",async:!1,global:!1,\"throws\":!0}):p.error(\"no ajax\"):p.globalEval((b.text||b.textContent||b.innerHTML||\"\").replace(by,\"\")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=(c[0]||c).ownerDocument||c[0]||c,typeof c.createDocumentFragment==\"undefined\"&&(c=e),a.length===1&&typeof i==\"string\"&&i.length<512&&c===e&&i.charAt(0)===\"<\"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test(\"<\"+a.nodeName+\">\")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment==\"undefined\")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h==\"number\"&&(h+=\"\");if(!h)continue;if(typeof h==\"string\")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement(\"div\")),h=h.replace(bo,\"<$1></$2>\"),i=(bp.exec(h)||[\"\",\"\"])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i===\"table\"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===\"<table>\"&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],\"tbody\")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,\"input\")?bG(h):typeof h.getElementsByTagName!=\"undefined\"&&p.grep(h.getElementsByTagName(\"input\"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,\"script\")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!=\"undefined\"&&(r=p.grep(p.merge([],h.getElementsByTagName(\"script\")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \\/]([\\w.]+)/.exec(a)||/(webkit)[ \\/]([\\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(a)||/(msie) ([\\w.]+)/.exec(a)||a.indexOf(\"compatible\")<0&&/(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(a)||[];return{browser:b[1]||\"\",version:b[2]||\"0\"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\\([^)]*\\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp(\"^(\"+q+\")(.*)$\",\"i\"),bP=new RegExp(\"^(\"+q+\")(?!px)[a-z%]+$\",\"i\"),bQ=new RegExp(\"^([-+])=(\"+q+\")\",\"i\"),bR={},bS={position:\"absolute\",visibility:\"hidden\",display:\"block\"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=[\"Top\",\"Right\",\"Bottom\",\"Left\"],bV=[\"Webkit\",\"O\",\"Moz\",\"ms\"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a==\"boolean\";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,\"opacity\");return c===\"\"?\"1\":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{\"float\":p.support.cssFloat?\"cssFloat\":\"styleFloat\"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&\"get\"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g===\"string\"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g=\"number\");if(d==null||g===\"number\"&&isNaN(d))return;g===\"number\"&&!p.cssNumber[i]&&(d+=\"px\");if(!h||!(\"set\"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&\"get\"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f===\"normal\"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===\"\"&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b===\"fontSize\"?\"1em\":e,e=f.pixelLeft+\"px\",f.left=c,d&&(a.runtimeStyle.left=d)),e===\"\"?\"auto\":e}),p.each([\"height\",\"width\"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,\"display\")!==\"none\"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,\"boxSizing\")===\"border-box\"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||\"\")?.01*parseFloat(RegExp.$1)+\"\":b?\"1\":\"\"},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?\"alpha(opacity=\"+b*100+\")\":\"\",f=d&&d.filter||c.filter||\"\";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,\"\"))===\"\"&&c.removeAttribute){c.removeAttribute(\"filter\");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+\" \"+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:\"inline-block\"},function(){if(b)return bH(a,\"marginRight\")})}}),!p.support.pixelPosition&&p.fn.position&&p.each([\"top\",\"left\"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+\"px\":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,\"display\"))===\"none\"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:\"\",padding:\"\",border:\"Width\"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c==\"string\"?c.split(\" \"):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\\[\\]$/,ce=/\\r?\\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,\"\\r\\n\")}}):{name:b.name,value:c.replace(ce,\"\\r\\n\")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?\"\":b,e[e.length]=encodeURIComponent(a)+\"=\"+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join(\"&\").replace(cc,\"+\")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg,cm=/^(?:about|app|app\\-storage|.+\\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\\/\\//,cp=/\\?/,cq=/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\\w\\+\\.\\-]+:)(?:\\/\\/([^\\/?#:]*)(?::(\\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=[\"*/\"]+[\"*\"];try{ci=f.href}catch(cx){ci=e.createElement(\"a\"),ci.href=\"\",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!=\"string\"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(\" \");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c==\"object\"&&(f=\"POST\"),p.ajax({url:a,type:f,dataType:\"html\",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p(\"<div>\").append(a.replace(cq,\"\")).find(e):a)}),this},p.each(\"ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend\".split(\" \"),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each([\"get\",\"post\"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,\"script\")},getJSON:function(a,b,c){return p.get(a,b,c,\"json\")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:\"GET\",contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",processData:!0,async:!0,accepts:{xml:\"application/xml, text/xml\",html:\"text/html\",text:\"text/plain\",json:\"application/json, text/javascript\",\"*\":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\"},converters:{\"* text\":a.String,\"text html\":!0,\"text json\":p.parseJSON,\"text xml\":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||\"\",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader(\"Last-Modified\"),w&&(p.lastModified[d]=w),w=x.getResponseHeader(\"Etag\"),w&&(p.etag[d]=w)),a===304?(y=\"notmodified\",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y=\"error\",a<0&&(a=0)}x.status=a,x.statusText=\"\"+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger(\"ajax\"+(k?\"Success\":\"Error\"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger(\"ajaxComplete\",[x,l]),--p.active||p.event.trigger(\"ajaxStop\"))}typeof a==\"object\"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks(\"once memory\"),r=l.statusCode||{},t={},u={},v=0,w=\"canceled\",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+\"\").replace(ck,\"\").replace(co,cj[1]+\"//\"),l.dataTypes=p.trim(l.dataType||\"*\").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]===\"http:\"?80:443))==(cj[3]||(cj[1]===\"http:\"?80:443)))),l.data&&l.processData&&typeof l.data!=\"string\"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger(\"ajaxStart\");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?\"&\":\"?\")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,\"$1_=\"+z);l.url=A+(A===l.url?(cp.test(l.url)?\"&\":\"?\")+\"_=\"+z:\"\")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader(\"Content-Type\",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader(\"If-Modified-Since\",p.lastModified[d]),p.etag[d]&&x.setRequestHeader(\"If-None-Match\",p.etag[d])),x.setRequestHeader(\"Accept\",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!==\"*\"?\", \"+cw+\"; q=0.01\":\"\"):l.accepts[\"*\"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w=\"abort\";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,\"No Transport\");else{x.readyState=1,j&&n.trigger(\"ajaxSend\",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort(\"timeout\")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\\?/,cF=/(=)\\?(?=&|$)|\\?\\?/,cG=p.now();p.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var a=cD.pop()||p.expando+\"_\"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter(\"json jsonp\",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i==\"string\"&&!(c.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&cF.test(i);if(c.dataTypes[0]===\"jsonp\"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,\"$1\"+f):m?c.data=i.replace(cF,\"$1\"+f):k&&(c.url+=(cE.test(j)?\"&\":\"?\")+c.jsonp+\"=\"+f),c.converters[\"script json\"]=function(){return h||p.error(f+\" was not called\"),h[0]},c.dataTypes[0]=\"json\",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),\"script\"}),p.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/javascript|ecmascript/},converters:{\"text script\":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter(\"script\",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type=\"GET\",a.global=!1)}),p.ajaxTransport(\"script\",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName(\"head\")[0]||e.documentElement;return{send:function(f,g){c=e.createElement(\"script\"),c.async=\"async\",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,\"success\")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&\"withCredentials\"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e[\"X-Requested-With\"]&&(e[\"X-Requested-With\"]=\"XMLHttpRequest\");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=\"\"}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp(\"^(?:([-+])=|)(\"+q+\")([a-z%]*)$\",\"i\"),cQ=/queueHooks$/,cR=[cX],cS={\"*\":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?\"\":\"px\");if(d!==\"px\"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||\".5\",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=[\"*\"]):a=a.split(\" \");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cS[c]=cS[c]||[],cS[c].unshift(b)},prefilter:function(a,b){b?cR.unshift(a):cR.push(a)}}),p.Tween=cY,cY.prototype={constructor:cY,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||\"swing\",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?\"\":\"px\")},cur:function(){var a=cY.propHooks[this.prop];return a&&a.get?a.get(this):cY.propHooks._default.get(this)},run:function(a){var b,c=cY.propHooks[this.prop];return this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration),this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cY.propHooks._default.set(this),this}},cY.prototype.init.prototype=cY.prototype,cY.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,\"\"),!b||b===\"auto\"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cY.propHooks.scrollTop=cY.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each([\"toggle\",\"show\",\"hide\"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d==\"boolean\"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(cZ(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bY).css(\"opacity\",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cV(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!=\"string\"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||\"fx\",[]),this.each(function(){var b=!0,c=a!=null&&a+\"queueHooks\",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cQ.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:cZ(\"show\"),slideUp:cZ(\"hide\"),slideToggle:cZ(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a==\"object\"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration==\"number\"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue=\"fx\";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cY.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cN&&(cN=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cN),cN=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c$=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j,k,l,m=this[0],n=m&&m.ownerDocument;if(!n)return;return(e=n.body)===m?p.offset.bodyOffset(m):(d=n.documentElement,p.contains(d,m)?(c=m.getBoundingClientRect(),f=c_(n),g=d.clientTop||e.clientTop||0,h=d.clientLeft||e.clientLeft||0,i=f.pageYOffset||d.scrollTop,j=f.pageXOffset||d.scrollLeft,k=c.top+i-g,l=c.left+j-h,{top:k,left:l}):{top:0,left:0})},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,\"marginTop\"))||0,c+=parseFloat(p.css(a,\"marginLeft\"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,\"position\");d===\"static\"&&(a.style.position=\"relative\");var e=p(a),f=e.offset(),g=p.css(a,\"top\"),h=p.css(a,\"left\"),i=(d===\"absolute\"||d===\"fixed\")&&p.inArray(\"auto\",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),\"using\"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,\"marginTop\"))||0,c.left-=parseFloat(p.css(a,\"marginLeft\"))||0,d.top+=parseFloat(p.css(b[0],\"borderTopWidth\"))||0,d.left+=parseFloat(p.css(b[0],\"borderLeftWidth\"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,\"position\")===\"static\")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:\"height\",Width:\"width\"},function(a,c){p.each({padding:\"inner\"+a,content:c,\"\":\"outer\"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!=\"boolean\"),h=d||(e===!0||f===!0?\"margin\":\"border\");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement[\"client\"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body[\"scroll\"+a],f[\"scroll\"+a],c.body[\"offset\"+a],f[\"offset\"+a],f[\"client\"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define==\"function\"&&define.amd&&define.amd.jQuery&&define(\"jquery\",[],function(){return p})})(window);\n","/**\n * @license\n * Lo-Dash 2.4.1 (Custom Build) lodash.com/license | Underscore.js 1.5.2 underscorejs.org/LICENSE\n * Build: `lodash -o ./dist/lodash.compat.js`\n */\n;(function(){function n(n,t,e){e=(e||0)-1;for(var r=n?n.length:0;++e<r;)if(n[e]===t)return e;return-1}function t(t,e){var r=typeof e;if(t=t.l,\"boolean\"==r||null==e)return t[e]?0:-1;\"number\"!=r&&\"string\"!=r&&(r=\"object\");var u=\"number\"==r?e:b+e;return t=(t=t[r])&&t[u],\"object\"==r?t&&-1<n(t,e)?0:-1:t?0:-1}function e(n){var t=this.l,e=typeof n;if(\"boolean\"==e||null==n)t[n]=true;else{\"number\"!=e&&\"string\"!=e&&(e=\"object\");var r=\"number\"==e?n:b+n,t=t[e]||(t[e]={});\"object\"==e?(t[r]||(t[r]=[])).push(n):t[r]=true\n}}function r(n){return n.charCodeAt(0)}function u(n,t){for(var e=n.m,r=t.m,u=-1,o=e.length;++u<o;){var a=e[u],i=r[u];if(a!==i){if(a>i||typeof a==\"undefined\")return 1;if(a<i||typeof i==\"undefined\")return-1}}return n.n-t.n}function o(n){var t=-1,r=n.length,u=n[0],o=n[r/2|0],a=n[r-1];if(u&&typeof u==\"object\"&&o&&typeof o==\"object\"&&a&&typeof a==\"object\")return false;for(u=l(),u[\"false\"]=u[\"null\"]=u[\"true\"]=u.undefined=false,o=l(),o.k=n,o.l=u,o.push=e;++t<r;)o.push(n[t]);return o}function a(n){return\"\\\\\"+Y[n]\n}function i(){return v.pop()||[]}function l(){return y.pop()||{k:null,l:null,m:null,\"false\":false,n:0,\"null\":false,number:null,object:null,push:null,string:null,\"true\":false,undefined:false,o:null}}function f(n){return typeof n.toString!=\"function\"&&typeof(n+\"\")==\"string\"}function c(n){n.length=0,v.length<w&&v.push(n)}function p(n){var t=n.l;t&&p(t),n.k=n.l=n.m=n.object=n.number=n.string=n.o=null,y.length<w&&y.push(n)}function s(n,t,e){t||(t=0),typeof e==\"undefined\"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];\nreturn u}function g(e){function v(n){return n&&typeof n==\"object\"&&!qe(n)&&we.call(n,\"__wrapped__\")?n:new y(n)}function y(n,t){this.__chain__=!!t,this.__wrapped__=n}function w(n){function t(){if(r){var n=s(r);je.apply(n,arguments)}if(this instanceof t){var o=nt(e.prototype),n=e.apply(o,n||arguments);return xt(n)?n:o}return e.apply(u,n||arguments)}var e=n[0],r=n[2],u=n[4];return ze(t,n),t}function Y(n,t,e,r,u){if(e){var o=e(n);if(typeof o!=\"undefined\")return o}if(!xt(n))return n;var a=he.call(n);if(!V[a]||!Le.nodeClass&&f(n))return n;\nvar l=Te[a];switch(a){case L:case z:return new l(+n);case W:case M:return new l(n);case J:return o=l(n.source,S.exec(n)),o.lastIndex=n.lastIndex,o}if(a=qe(n),t){var p=!r;r||(r=i()),u||(u=i());for(var g=r.length;g--;)if(r[g]==n)return u[g];o=a?l(n.length):{}}else o=a?s(n):Ye({},n);return a&&(we.call(n,\"index\")&&(o.index=n.index),we.call(n,\"input\")&&(o.input=n.input)),t?(r.push(n),u.push(o),(a?Xe:tr)(n,function(n,a){o[a]=Y(n,t,e,r,u)}),p&&(c(r),c(u)),o):o}function nt(n){return xt(n)?Se(n):{}}function tt(n,t,e){if(typeof n!=\"function\")return Ht;\nif(typeof t==\"undefined\"||!(\"prototype\"in n))return n;var r=n.__bindData__;if(typeof r==\"undefined\"&&(Le.funcNames&&(r=!n.name),r=r||!Le.funcDecomp,!r)){var u=be.call(n);Le.funcNames||(r=!A.test(u)),r||(r=B.test(u),ze(n,r))}if(false===r||true!==r&&1&r[1])return n;switch(e){case 1:return function(e){return n.call(t,e)};case 2:return function(e,r){return n.call(t,e,r)};case 3:return function(e,r,u){return n.call(t,e,r,u)};case 4:return function(e,r,u,o){return n.call(t,e,r,u,o)}}return Mt(n,t)}function et(n){function t(){var n=l?a:this;\nif(u){var h=s(u);je.apply(h,arguments)}return(o||c)&&(h||(h=s(arguments)),o&&je.apply(h,o),c&&h.length<i)?(r|=16,et([e,p?r:-4&r,h,null,a,i])):(h||(h=arguments),f&&(e=n[g]),this instanceof t?(n=nt(e.prototype),h=e.apply(n,h),xt(h)?h:n):e.apply(n,h))}var e=n[0],r=n[1],u=n[2],o=n[3],a=n[4],i=n[5],l=1&r,f=2&r,c=4&r,p=8&r,g=e;return ze(t,n),t}function rt(e,r){var u=-1,a=ht(),i=e?e.length:0,l=i>=_&&a===n,f=[];if(l){var c=o(r);c?(a=t,r=c):l=false}for(;++u<i;)c=e[u],0>a(r,c)&&f.push(c);return l&&p(r),f}function ot(n,t,e,r){r=(r||0)-1;\nfor(var u=n?n.length:0,o=[];++r<u;){var a=n[r];if(a&&typeof a==\"object\"&&typeof a.length==\"number\"&&(qe(a)||dt(a))){t||(a=ot(a,t,e));var i=-1,l=a.length,f=o.length;for(o.length+=l;++i<l;)o[f++]=a[i]}else e||o.push(a)}return o}function at(n,t,e,r,u,o){if(e){var a=e(n,t);if(typeof a!=\"undefined\")return!!a}if(n===t)return 0!==n||1/n==1/t;if(n===n&&!(n&&X[typeof n]||t&&X[typeof t]))return false;if(null==n||null==t)return n===t;var l=he.call(n),p=he.call(t);if(l==T&&(l=G),p==T&&(p=G),l!=p)return false;switch(l){case L:case z:return+n==+t;\ncase W:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case J:case M:return n==ie(t)}if(p=l==$,!p){var s=we.call(n,\"__wrapped__\"),g=we.call(t,\"__wrapped__\");if(s||g)return at(s?n.__wrapped__:n,g?t.__wrapped__:t,e,r,u,o);if(l!=G||!Le.nodeClass&&(f(n)||f(t)))return false;if(l=!Le.argsObject&&dt(n)?oe:n.constructor,s=!Le.argsObject&&dt(t)?oe:t.constructor,l!=s&&!(jt(l)&&l instanceof l&&jt(s)&&s instanceof s)&&\"constructor\"in n&&\"constructor\"in t)return false}for(l=!u,u||(u=i()),o||(o=i()),s=u.length;s--;)if(u[s]==n)return o[s]==t;\nvar h=0,a=true;if(u.push(n),o.push(t),p){if(s=n.length,h=t.length,(a=h==s)||r)for(;h--;)if(p=s,g=t[h],r)for(;p--&&!(a=at(n[p],g,e,r,u,o)););else if(!(a=at(n[h],g,e,r,u,o)))break}else nr(t,function(t,i,l){return we.call(l,i)?(h++,a=we.call(n,i)&&at(n[i],t,e,r,u,o)):void 0}),a&&!r&&nr(n,function(n,t,e){return we.call(e,t)?a=-1<--h:void 0});return u.pop(),o.pop(),l&&(c(u),c(o)),a}function it(n,t,e,r,u){(qe(t)?Dt:tr)(t,function(t,o){var a,i,l=t,f=n[o];if(t&&((i=qe(t))||er(t))){for(l=r.length;l--;)if(a=r[l]==t){f=u[l];\nbreak}if(!a){var c;e&&(l=e(f,t),c=typeof l!=\"undefined\")&&(f=l),c||(f=i?qe(f)?f:[]:er(f)?f:{}),r.push(t),u.push(f),c||it(f,t,e,r,u)}}else e&&(l=e(f,t),typeof l==\"undefined\"&&(l=t)),typeof l!=\"undefined\"&&(f=l);n[o]=f})}function lt(n,t){return n+de(Fe()*(t-n+1))}function ft(e,r,u){var a=-1,l=ht(),f=e?e.length:0,s=[],g=!r&&f>=_&&l===n,h=u||g?i():s;for(g&&(h=o(h),l=t);++a<f;){var v=e[a],y=u?u(v,a,e):v;(r?!a||h[h.length-1]!==y:0>l(h,y))&&((u||g)&&h.push(y),s.push(v))}return g?(c(h.k),p(h)):u&&c(h),s}function ct(n){return function(t,e,r){var u={};\nif(e=v.createCallback(e,r,3),qe(t)){r=-1;for(var o=t.length;++r<o;){var a=t[r];n(u,a,e(a,r,t),t)}}else Xe(t,function(t,r,o){n(u,t,e(t,r,o),o)});return u}}function pt(n,t,e,r,u,o){var a=1&t,i=4&t,l=16&t,f=32&t;if(!(2&t||jt(n)))throw new le;l&&!e.length&&(t&=-17,l=e=false),f&&!r.length&&(t&=-33,f=r=false);var c=n&&n.__bindData__;return c&&true!==c?(c=s(c),c[2]&&(c[2]=s(c[2])),c[3]&&(c[3]=s(c[3])),!a||1&c[1]||(c[4]=u),!a&&1&c[1]&&(t|=8),!i||4&c[1]||(c[5]=o),l&&je.apply(c[2]||(c[2]=[]),e),f&&Ee.apply(c[3]||(c[3]=[]),r),c[1]|=t,pt.apply(null,c)):(1==t||17===t?w:et)([n,t,e,r,u,o])\n}function st(){Q.h=F,Q.b=Q.c=Q.g=Q.i=\"\",Q.e=\"t\",Q.j=true;for(var n,t=0;n=arguments[t];t++)for(var e in n)Q[e]=n[e];t=Q.a,Q.d=/^[^,]+/.exec(t)[0],n=ee,t=\"return function(\"+t+\"){\",e=Q;var r=\"var n,t=\"+e.d+\",E=\"+e.e+\";if(!t)return E;\"+e.i+\";\";e.b?(r+=\"var u=t.length;n=-1;if(\"+e.b+\"){\",Le.unindexedChars&&(r+=\"if(s(t)){t=t.split('')}\"),r+=\"while(++n<u){\"+e.g+\";}}else{\"):Le.nonEnumArgs&&(r+=\"var u=t.length;n=-1;if(u&&p(t)){while(++n<u){n+='';\"+e.g+\";}}else{\"),Le.enumPrototypes&&(r+=\"var G=typeof t=='function';\"),Le.enumErrorProps&&(r+=\"var F=t===k||t instanceof Error;\");\nvar u=[];if(Le.enumPrototypes&&u.push('!(G&&n==\"prototype\")'),Le.enumErrorProps&&u.push('!(F&&(n==\"message\"||n==\"name\"))'),e.j&&e.f)r+=\"var C=-1,D=B[typeof t]&&v(t),u=D?D.length:0;while(++C<u){n=D[C];\",u.length&&(r+=\"if(\"+u.join(\"&&\")+\"){\"),r+=e.g+\";\",u.length&&(r+=\"}\"),r+=\"}\";else if(r+=\"for(n in t){\",e.j&&u.push(\"m.call(t, n)\"),u.length&&(r+=\"if(\"+u.join(\"&&\")+\"){\"),r+=e.g+\";\",u.length&&(r+=\"}\"),r+=\"}\",Le.nonEnumShadows){for(r+=\"if(t!==A){var i=t.constructor,r=t===(i&&i.prototype),f=t===J?I:t===k?j:L.call(t),x=y[f];\",k=0;7>k;k++)r+=\"n='\"+e.h[k]+\"';if((!(r&&x[n])&&m.call(t,n))\",e.j||(r+=\"||(!x[n]&&t[n]!==A[n])\"),r+=\"){\"+e.g+\"}\";\nr+=\"}\"}return(e.b||Le.nonEnumArgs)&&(r+=\"}\"),r+=e.c+\";return E\",n(\"d,j,k,m,o,p,q,s,v,A,B,y,I,J,L\",t+r+\"}\")(tt,q,ce,we,d,dt,qe,kt,Q.f,pe,X,$e,M,se,he)}function gt(n){return Ve[n]}function ht(){var t=(t=v.indexOf)===zt?n:t;return t}function vt(n){return typeof n==\"function\"&&ve.test(n)}function yt(n){var t,e;return!n||he.call(n)!=G||(t=n.constructor,jt(t)&&!(t instanceof t))||!Le.argsClass&&dt(n)||!Le.nodeClass&&f(n)?false:Le.ownLast?(nr(n,function(n,t,r){return e=we.call(r,t),false}),false!==e):(nr(n,function(n,t){e=t\n}),typeof e==\"undefined\"||we.call(n,e))}function mt(n){return He[n]}function dt(n){return n&&typeof n==\"object\"&&typeof n.length==\"number\"&&he.call(n)==T||false}function bt(n,t,e){var r=We(n),u=r.length;for(t=tt(t,e,3);u--&&(e=r[u],false!==t(n[e],e,n)););return n}function _t(n){var t=[];return nr(n,function(n,e){jt(n)&&t.push(e)}),t.sort()}function wt(n){for(var t=-1,e=We(n),r=e.length,u={};++t<r;){var o=e[t];u[n[o]]=o}return u}function jt(n){return typeof n==\"function\"}function xt(n){return!(!n||!X[typeof n])\n}function Ct(n){return typeof n==\"number\"||n&&typeof n==\"object\"&&he.call(n)==W||false}function kt(n){return typeof n==\"string\"||n&&typeof n==\"object\"&&he.call(n)==M||false}function Et(n){for(var t=-1,e=We(n),r=e.length,u=Zt(r);++t<r;)u[t]=n[e[t]];return u}function Ot(n,t,e){var r=-1,u=ht(),o=n?n.length:0,a=false;return e=(0>e?Be(0,o+e):e)||0,qe(n)?a=-1<u(n,t,e):typeof o==\"number\"?a=-1<(kt(n)?n.indexOf(t,e):u(n,t,e)):Xe(n,function(n){return++r<e?void 0:!(a=n===t)}),a}function St(n,t,e){var r=true;if(t=v.createCallback(t,e,3),qe(n)){e=-1;\nfor(var u=n.length;++e<u&&(r=!!t(n[e],e,n)););}else Xe(n,function(n,e,u){return r=!!t(n,e,u)});return r}function At(n,t,e){var r=[];if(t=v.createCallback(t,e,3),qe(n)){e=-1;for(var u=n.length;++e<u;){var o=n[e];t(o,e,n)&&r.push(o)}}else Xe(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function It(n,t,e){if(t=v.createCallback(t,e,3),!qe(n)){var r;return Xe(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r}e=-1;for(var u=n.length;++e<u;){var o=n[e];if(t(o,e,n))return o}}function Dt(n,t,e){if(t&&typeof e==\"undefined\"&&qe(n)){e=-1;\nfor(var r=n.length;++e<r&&false!==t(n[e],e,n););}else Xe(n,t,e);return n}function Nt(n,t,e){var r=n,u=n?n.length:0;if(t=t&&typeof e==\"undefined\"?t:tt(t,e,3),qe(n))for(;u--&&false!==t(n[u],u,n););else{if(typeof u!=\"number\")var o=We(n),u=o.length;else Le.unindexedChars&&kt(n)&&(r=n.split(\"\"));Xe(n,function(n,e,a){return e=o?o[--u]:--u,t(r[e],e,a)})}return n}function Bt(n,t,e){var r=-1,u=n?n.length:0,o=Zt(typeof u==\"number\"?u:0);if(t=v.createCallback(t,e,3),qe(n))for(;++r<u;)o[r]=t(n[r],r,n);else Xe(n,function(n,e,u){o[++r]=t(n,e,u)\n});return o}function Pt(n,t,e){var u=-1/0,o=u;if(typeof t!=\"function\"&&e&&e[t]===n&&(t=null),null==t&&qe(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i>o&&(o=i)}}else t=null==t&&kt(n)?r:v.createCallback(t,e,3),Xe(n,function(n,e,r){e=t(n,e,r),e>u&&(u=e,o=n)});return o}function Rt(n,t,e,r){var u=3>arguments.length;if(t=v.createCallback(t,r,4),qe(n)){var o=-1,a=n.length;for(u&&(e=n[++o]);++o<a;)e=t(e,n[o],o,n)}else Xe(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)});return e}function Ft(n,t,e,r){var u=3>arguments.length;\nreturn t=v.createCallback(t,r,4),Nt(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)}),e}function Tt(n){var t=-1,e=n?n.length:0,r=Zt(typeof e==\"number\"?e:0);return Dt(n,function(n){var e=lt(0,++t);r[t]=r[e],r[e]=n}),r}function $t(n,t,e){var r;if(t=v.createCallback(t,e,3),qe(n)){e=-1;for(var u=n.length;++e<u&&!(r=t(n[e],e,n)););}else Xe(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function Lt(n,t,e){var r=0,u=n?n.length:0;if(typeof t!=\"number\"&&null!=t){var o=-1;for(t=v.createCallback(t,e,3);++o<u&&t(n[o],o,n);)r++\n}else if(r=t,null==r||e)return n?n[0]:h;return s(n,0,Pe(Be(0,r),u))}function zt(t,e,r){if(typeof r==\"number\"){var u=t?t.length:0;r=0>r?Be(0,u+r):r||0}else if(r)return r=Kt(t,e),t[r]===e?r:-1;return n(t,e,r)}function qt(n,t,e){if(typeof t!=\"number\"&&null!=t){var r=0,u=-1,o=n?n.length:0;for(t=v.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=null==t||e?1:Be(0,t);return s(n,r)}function Kt(n,t,e,r){var u=0,o=n?n.length:u;for(e=e?v.createCallback(e,r,1):Ht,t=e(t);u<o;)r=u+o>>>1,e(n[r])<t?u=r+1:o=r;\nreturn u}function Wt(n,t,e,r){return typeof t!=\"boolean\"&&null!=t&&(r=e,e=typeof t!=\"function\"&&r&&r[t]===n?null:t,t=false),null!=e&&(e=v.createCallback(e,r,3)),ft(n,t,e)}function Gt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?Pt(ar(n,\"length\")):0,r=Zt(0>e?0:e);++t<e;)r[t]=ar(n,t);return r}function Jt(n,t){var e=-1,r=n?n.length:0,u={};for(t||!r||qe(n[0])||(t=[]);++e<r;){var o=n[e];t?u[o]=t[e]:o&&(u[o[0]]=o[1])}return u}function Mt(n,t){return 2<arguments.length?pt(n,17,s(arguments,2),null,t):pt(n,1,null,null,t)\n}function Vt(n,t,e){var r,u,o,a,i,l,f,c=0,p=false,s=true;if(!jt(n))throw new le;if(t=Be(0,t)||0,true===e)var g=true,s=false;else xt(e)&&(g=e.leading,p=\"maxWait\"in e&&(Be(t,e.maxWait)||0),s=\"trailing\"in e?e.trailing:s);var v=function(){var e=t-(ir()-a);0<e?l=Ce(v,e):(u&&me(u),e=f,u=l=f=h,e&&(c=ir(),o=n.apply(i,r),l||u||(r=i=null)))},y=function(){l&&me(l),u=l=f=h,(s||p!==t)&&(c=ir(),o=n.apply(i,r),l||u||(r=i=null))};return function(){if(r=arguments,a=ir(),i=this,f=s&&(l||!g),false===p)var e=g&&!l;else{u||g||(c=a);\nvar h=p-(a-c),m=0>=h;m?(u&&(u=me(u)),c=a,o=n.apply(i,r)):u||(u=Ce(y,h))}return m&&l?l=me(l):l||t===p||(l=Ce(v,t)),e&&(m=true,o=n.apply(i,r)),!m||l||u||(r=i=null),o}}function Ht(n){return n}function Ut(n,t,e){var r=true,u=t&&_t(t);t&&(e||u.length)||(null==e&&(e=t),o=y,t=n,n=v,u=_t(t)),false===e?r=false:xt(e)&&\"chain\"in e&&(r=e.chain);var o=n,a=jt(o);Dt(u,function(e){var u=n[e]=t[e];a&&(o.prototype[e]=function(){var t=this.__chain__,e=this.__wrapped__,a=[e];if(je.apply(a,arguments),a=u.apply(n,a),r||t){if(e===a&&xt(a))return this;\na=new o(a),a.__chain__=t}return a})})}function Qt(){}function Xt(n){return function(t){return t[n]}}function Yt(){return this.__wrapped__}e=e?ut.defaults(Z.Object(),e,ut.pick(Z,R)):Z;var Zt=e.Array,ne=e.Boolean,te=e.Date,ee=e.Function,re=e.Math,ue=e.Number,oe=e.Object,ae=e.RegExp,ie=e.String,le=e.TypeError,fe=[],ce=e.Error.prototype,pe=oe.prototype,se=ie.prototype,ge=e._,he=pe.toString,ve=ae(\"^\"+ie(he).replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\").replace(/toString| for [^\\]]+/g,\".*?\")+\"$\"),ye=re.ceil,me=e.clearTimeout,de=re.floor,be=ee.prototype.toString,_e=vt(_e=oe.getPrototypeOf)&&_e,we=pe.hasOwnProperty,je=fe.push,xe=pe.propertyIsEnumerable,Ce=e.setTimeout,ke=fe.splice,Ee=fe.unshift,Oe=function(){try{var n={},t=vt(t=oe.defineProperty)&&t,e=t(n,n,n)&&t\n}catch(r){}return e}(),Se=vt(Se=oe.create)&&Se,Ae=vt(Ae=Zt.isArray)&&Ae,Ie=e.isFinite,De=e.isNaN,Ne=vt(Ne=oe.keys)&&Ne,Be=re.max,Pe=re.min,Re=e.parseInt,Fe=re.random,Te={};Te[$]=Zt,Te[L]=ne,Te[z]=te,Te[K]=ee,Te[G]=oe,Te[W]=ue,Te[J]=ae,Te[M]=ie;var $e={};$e[$]=$e[z]=$e[W]={constructor:true,toLocaleString:true,toString:true,valueOf:true},$e[L]=$e[M]={constructor:true,toString:true,valueOf:true},$e[q]=$e[K]=$e[J]={constructor:true,toString:true},$e[G]={constructor:true},function(){for(var n=F.length;n--;){var t,e=F[n];\nfor(t in $e)we.call($e,t)&&!we.call($e[t],e)&&($e[t][e]=false)}}(),y.prototype=v.prototype;var Le=v.support={};!function(){var n=function(){this.x=1},t={0:1,length:1},r=[];n.prototype={valueOf:1,y:1};for(var u in new n)r.push(u);for(u in arguments);Le.argsClass=he.call(arguments)==T,Le.argsObject=arguments.constructor==oe&&!(arguments instanceof Zt),Le.enumErrorProps=xe.call(ce,\"message\")||xe.call(ce,\"name\"),Le.enumPrototypes=xe.call(n,\"prototype\"),Le.funcDecomp=!vt(e.WinRTError)&&B.test(g),Le.funcNames=typeof ee.name==\"string\",Le.nonEnumArgs=0!=u,Le.nonEnumShadows=!/valueOf/.test(r),Le.ownLast=\"x\"!=r[0],Le.spliceObjects=(fe.splice.call(t,0,1),!t[0]),Le.unindexedChars=\"xx\"!=\"x\"[0]+oe(\"x\")[0];\ntry{Le.nodeClass=!(he.call(document)==G&&!({toString:0}+\"\"))}catch(o){Le.nodeClass=true}}(1),v.templateSettings={escape:/<%-([\\s\\S]+?)%>/g,evaluate:/<%([\\s\\S]+?)%>/g,interpolate:I,variable:\"\",imports:{_:v}},Se||(nt=function(){function n(){}return function(t){if(xt(t)){n.prototype=t;var r=new n;n.prototype=null}return r||e.Object()}}());var ze=Oe?function(n,t){U.value=t,Oe(n,\"__bindData__\",U)}:Qt;Le.argsClass||(dt=function(n){return n&&typeof n==\"object\"&&typeof n.length==\"number\"&&we.call(n,\"callee\")&&!xe.call(n,\"callee\")||false\n});var qe=Ae||function(n){return n&&typeof n==\"object\"&&typeof n.length==\"number\"&&he.call(n)==$||false},Ke=st({a:\"z\",e:\"[]\",i:\"if(!(B[typeof z]))return E\",g:\"E.push(n)\"}),We=Ne?function(n){return xt(n)?Le.enumPrototypes&&typeof n==\"function\"||Le.nonEnumArgs&&n.length&&dt(n)?Ke(n):Ne(n):[]}:Ke,Ge={a:\"g,e,K\",i:\"e=e&&typeof K=='undefined'?e:d(e,K,3)\",b:\"typeof u=='number'\",v:We,g:\"if(e(t[n],n,g)===false)return E\"},Je={a:\"z,H,l\",i:\"var a=arguments,b=0,c=typeof l=='number'?2:a.length;while(++b<c){t=a[b];if(t&&B[typeof t]){\",v:We,g:\"if(typeof E[n]=='undefined')E[n]=t[n]\",c:\"}}\"},Me={i:\"if(!B[typeof t])return E;\"+Ge.i,b:false},Ve={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},He=wt(Ve),Ue=ae(\"(\"+We(He).join(\"|\")+\")\",\"g\"),Qe=ae(\"[\"+We(Ve).join(\"\")+\"]\",\"g\"),Xe=st(Ge),Ye=st(Je,{i:Je.i.replace(\";\",\";if(c>3&&typeof a[c-2]=='function'){var e=d(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){e=a[--c]}\"),g:\"E[n]=e?e(E[n],t[n]):t[n]\"}),Ze=st(Je),nr=st(Ge,Me,{j:false}),tr=st(Ge,Me);\njt(/x/)&&(jt=function(n){return typeof n==\"function\"&&he.call(n)==K});var er=_e?function(n){if(!n||he.call(n)!=G||!Le.argsClass&&dt(n))return false;var t=n.valueOf,e=vt(t)&&(e=_e(t))&&_e(e);return e?n==e||_e(n)==e:yt(n)}:yt,rr=ct(function(n,t,e){we.call(n,e)?n[e]++:n[e]=1}),ur=ct(function(n,t,e){(we.call(n,e)?n[e]:n[e]=[]).push(t)}),or=ct(function(n,t,e){n[e]=t}),ar=Bt,ir=vt(ir=te.now)&&ir||function(){return(new te).getTime()},lr=8==Re(j+\"08\")?Re:function(n,t){return Re(kt(n)?n.replace(D,\"\"):n,t||0)};\nreturn v.after=function(n,t){if(!jt(t))throw new le;return function(){return 1>--n?t.apply(this,arguments):void 0}},v.assign=Ye,v.at=function(n){var t=arguments,e=-1,r=ot(t,true,false,1),t=t[2]&&t[2][t[1]]===n?1:r.length,u=Zt(t);for(Le.unindexedChars&&kt(n)&&(n=n.split(\"\"));++e<t;)u[e]=n[r[e]];return u},v.bind=Mt,v.bindAll=function(n){for(var t=1<arguments.length?ot(arguments,true,false,1):_t(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=pt(n[u],1,null,null,n)}return n},v.bindKey=function(n,t){return 2<arguments.length?pt(t,19,s(arguments,2),null,n):pt(t,3,null,null,n)\n},v.chain=function(n){return n=new y(n),n.__chain__=true,n},v.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r},v.compose=function(){for(var n=arguments,t=n.length;t--;)if(!jt(n[t]))throw new le;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},v.constant=function(n){return function(){return n}},v.countBy=rr,v.create=function(n,t){var e=nt(n);return t?Ye(e,t):e},v.createCallback=function(n,t,e){var r=typeof n;if(null==n||\"function\"==r)return tt(n,t,e);\nif(\"object\"!=r)return Xt(n);var u=We(n),o=u[0],a=n[o];return 1!=u.length||a!==a||xt(a)?function(t){for(var e=u.length,r=false;e--&&(r=at(t[u[e]],n[u[e]],null,true)););return r}:function(n){return n=n[o],a===n&&(0!==a||1/a==1/n)}},v.curry=function(n,t){return t=typeof t==\"number\"?t:+t||n.length,pt(n,4,null,null,null,t)},v.debounce=Vt,v.defaults=Ze,v.defer=function(n){if(!jt(n))throw new le;var t=s(arguments,1);return Ce(function(){n.apply(h,t)},1)},v.delay=function(n,t){if(!jt(n))throw new le;var e=s(arguments,2);\nreturn Ce(function(){n.apply(h,e)},t)},v.difference=function(n){return rt(n,ot(arguments,true,true,1))},v.filter=At,v.flatten=function(n,t,e,r){return typeof t!=\"boolean\"&&null!=t&&(r=e,e=typeof t!=\"function\"&&r&&r[t]===n?null:t,t=false),null!=e&&(n=Bt(n,e,r)),ot(n,t)},v.forEach=Dt,v.forEachRight=Nt,v.forIn=nr,v.forInRight=function(n,t,e){var r=[];nr(n,function(n,t){r.push(t,n)});var u=r.length;for(t=tt(t,e,3);u--&&false!==t(r[u--],r[u],n););return n},v.forOwn=tr,v.forOwnRight=bt,v.functions=_t,v.groupBy=ur,v.indexBy=or,v.initial=function(n,t,e){var r=0,u=n?n.length:0;\nif(typeof t!=\"number\"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else r=null==t||e?1:t||r;return s(n,0,Pe(Be(0,u-r),u))},v.intersection=function(){for(var e=[],r=-1,u=arguments.length,a=i(),l=ht(),f=l===n,s=i();++r<u;){var g=arguments[r];(qe(g)||dt(g))&&(e.push(g),a.push(f&&g.length>=_&&o(r?e[r]:s)))}var f=e[0],h=-1,v=f?f.length:0,y=[];n:for(;++h<v;){var m=a[0],g=f[h];if(0>(m?t(m,g):l(s,g))){for(r=u,(m||s).push(g);--r;)if(m=a[r],0>(m?t(m,g):l(e[r],g)))continue n;y.push(g)\n}}for(;u--;)(m=a[u])&&p(m);return c(a),c(s),y},v.invert=wt,v.invoke=function(n,t){var e=s(arguments,2),r=-1,u=typeof t==\"function\",o=n?n.length:0,a=Zt(typeof o==\"number\"?o:0);return Dt(n,function(n){a[++r]=(u?t:n[t]).apply(n,e)}),a},v.keys=We,v.map=Bt,v.mapValues=function(n,t,e){var r={};return t=v.createCallback(t,e,3),tr(n,function(n,e,u){r[e]=t(n,e,u)}),r},v.max=Pt,v.memoize=function(n,t){if(!jt(n))throw new le;var e=function(){var r=e.cache,u=t?t.apply(this,arguments):b+arguments[0];return we.call(r,u)?r[u]:r[u]=n.apply(this,arguments)\n};return e.cache={},e},v.merge=function(n){var t=arguments,e=2;if(!xt(n))return n;if(\"number\"!=typeof t[2]&&(e=t.length),3<e&&\"function\"==typeof t[e-2])var r=tt(t[--e-1],t[e--],2);else 2<e&&\"function\"==typeof t[e-1]&&(r=t[--e]);for(var t=s(arguments,1,e),u=-1,o=i(),a=i();++u<e;)it(n,t[u],r,o,a);return c(o),c(a),n},v.min=function(n,t,e){var u=1/0,o=u;if(typeof t!=\"function\"&&e&&e[t]===n&&(t=null),null==t&&qe(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i<o&&(o=i)}}else t=null==t&&kt(n)?r:v.createCallback(t,e,3),Xe(n,function(n,e,r){e=t(n,e,r),e<u&&(u=e,o=n)\n});return o},v.omit=function(n,t,e){var r={};if(typeof t!=\"function\"){var u=[];nr(n,function(n,t){u.push(t)});for(var u=rt(u,ot(arguments,true,false,1)),o=-1,a=u.length;++o<a;){var i=u[o];r[i]=n[i]}}else t=v.createCallback(t,e,3),nr(n,function(n,e,u){t(n,e,u)||(r[e]=n)});return r},v.once=function(n){var t,e;if(!jt(n))throw new le;return function(){return t?e:(t=true,e=n.apply(this,arguments),n=null,e)}},v.pairs=function(n){for(var t=-1,e=We(n),r=e.length,u=Zt(r);++t<r;){var o=e[t];u[t]=[o,n[o]]}return u\n},v.partial=function(n){return pt(n,16,s(arguments,1))},v.partialRight=function(n){return pt(n,32,null,s(arguments,1))},v.pick=function(n,t,e){var r={};if(typeof t!=\"function\")for(var u=-1,o=ot(arguments,true,false,1),a=xt(n)?o.length:0;++u<a;){var i=o[u];i in n&&(r[i]=n[i])}else t=v.createCallback(t,e,3),nr(n,function(n,e,u){t(n,e,u)&&(r[e]=n)});return r},v.pluck=ar,v.property=Xt,v.pull=function(n){for(var t=arguments,e=0,r=t.length,u=n?n.length:0;++e<r;)for(var o=-1,a=t[e];++o<u;)n[o]===a&&(ke.call(n,o--,1),u--);\nreturn n},v.range=function(n,t,e){n=+n||0,e=typeof e==\"number\"?e:+e||1,null==t&&(t=n,n=0);var r=-1;t=Be(0,ye((t-n)/(e||1)));for(var u=Zt(t);++r<t;)u[r]=n,n+=e;return u},v.reject=function(n,t,e){return t=v.createCallback(t,e,3),At(n,function(n,e,r){return!t(n,e,r)})},v.remove=function(n,t,e){var r=-1,u=n?n.length:0,o=[];for(t=v.createCallback(t,e,3);++r<u;)e=n[r],t(e,r,n)&&(o.push(e),ke.call(n,r--,1),u--);return o},v.rest=qt,v.shuffle=Tt,v.sortBy=function(n,t,e){var r=-1,o=qe(t),a=n?n.length:0,f=Zt(typeof a==\"number\"?a:0);\nfor(o||(t=v.createCallback(t,e,3)),Dt(n,function(n,e,u){var a=f[++r]=l();o?a.m=Bt(t,function(t){return n[t]}):(a.m=i())[0]=t(n,e,u),a.n=r,a.o=n}),a=f.length,f.sort(u);a--;)n=f[a],f[a]=n.o,o||c(n.m),p(n);return f},v.tap=function(n,t){return t(n),n},v.throttle=function(n,t,e){var r=true,u=true;if(!jt(n))throw new le;return false===e?r=false:xt(e)&&(r=\"leading\"in e?e.leading:r,u=\"trailing\"in e?e.trailing:u),H.leading=r,H.maxWait=t,H.trailing=u,Vt(n,t,H)},v.times=function(n,t,e){n=-1<(n=+n)?n:0;var r=-1,u=Zt(n);\nfor(t=tt(t,e,1);++r<n;)u[r]=t(r);return u},v.toArray=function(n){return n&&typeof n.length==\"number\"?Le.unindexedChars&&kt(n)?n.split(\"\"):s(n):Et(n)},v.transform=function(n,t,e,r){var u=qe(n);if(null==e)if(u)e=[];else{var o=n&&n.constructor;e=nt(o&&o.prototype)}return t&&(t=v.createCallback(t,r,4),(u?Xe:tr)(n,function(n,r,u){return t(e,n,r,u)})),e},v.union=function(){return ft(ot(arguments,true,true))},v.uniq=Wt,v.values=Et,v.where=At,v.without=function(n){return rt(n,s(arguments,1))},v.wrap=function(n,t){return pt(t,16,[n])\n},v.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var e=arguments[n];if(qe(e)||dt(e))var r=r?ft(rt(r,e).concat(rt(e,r))):e}return r||[]},v.zip=Gt,v.zipObject=Jt,v.collect=Bt,v.drop=qt,v.each=Dt,v.eachRight=Nt,v.extend=Ye,v.methods=_t,v.object=Jt,v.select=At,v.tail=qt,v.unique=Wt,v.unzip=Gt,Ut(v),v.clone=function(n,t,e,r){return typeof t!=\"boolean\"&&null!=t&&(r=e,e=t,t=false),Y(n,t,typeof e==\"function\"&&tt(e,r,1))},v.cloneDeep=function(n,t,e){return Y(n,true,typeof t==\"function\"&&tt(t,e,1))},v.contains=Ot,v.escape=function(n){return null==n?\"\":ie(n).replace(Qe,gt)\n},v.every=St,v.find=It,v.findIndex=function(n,t,e){var r=-1,u=n?n.length:0;for(t=v.createCallback(t,e,3);++r<u;)if(t(n[r],r,n))return r;return-1},v.findKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),tr(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.findLast=function(n,t,e){var r;return t=v.createCallback(t,e,3),Nt(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r},v.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=v.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;\nreturn-1},v.findLastKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),bt(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.has=function(n,t){return n?we.call(n,t):false},v.identity=Ht,v.indexOf=zt,v.isArguments=dt,v.isArray=qe,v.isBoolean=function(n){return true===n||false===n||n&&typeof n==\"object\"&&he.call(n)==L||false},v.isDate=function(n){return n&&typeof n==\"object\"&&he.call(n)==z||false},v.isElement=function(n){return n&&1===n.nodeType||false},v.isEmpty=function(n){var t=true;if(!n)return t;var e=he.call(n),r=n.length;\nreturn e==$||e==M||(Le.argsClass?e==T:dt(n))||e==G&&typeof r==\"number\"&&jt(n.splice)?!r:(tr(n,function(){return t=false}),t)},v.isEqual=function(n,t,e,r){return at(n,t,typeof e==\"function\"&&tt(e,r,2))},v.isFinite=function(n){return Ie(n)&&!De(parseFloat(n))},v.isFunction=jt,v.isNaN=function(n){return Ct(n)&&n!=+n},v.isNull=function(n){return null===n},v.isNumber=Ct,v.isObject=xt,v.isPlainObject=er,v.isRegExp=function(n){return n&&X[typeof n]&&he.call(n)==J||false},v.isString=kt,v.isUndefined=function(n){return typeof n==\"undefined\"\n},v.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e==\"number\"&&(r=(0>e?Be(0,r+e):Pe(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},v.mixin=Ut,v.noConflict=function(){return e._=ge,this},v.noop=Qt,v.now=ir,v.parseInt=lr,v.random=function(n,t,e){var r=null==n,u=null==t;return null==e&&(typeof n==\"boolean\"&&u?(e=n,n=1):u||typeof t!=\"boolean\"||(e=t,u=true)),r&&u&&(t=1),n=+n||0,u?(t=n,n=0):t=+t||0,e||n%1||t%1?(e=Fe(),Pe(n+e*(t-n+parseFloat(\"1e-\"+((e+\"\").length-1))),t)):lt(n,t)},v.reduce=Rt,v.reduceRight=Ft,v.result=function(n,t){if(n){var e=n[t];\nreturn jt(e)?n[t]():e}},v.runInContext=g,v.size=function(n){var t=n?n.length:0;return typeof t==\"number\"?t:We(n).length},v.some=$t,v.sortedIndex=Kt,v.template=function(n,t,e){var r=v.templateSettings;n=ie(n||\"\"),e=Ze({},e,r);var u,o=Ze({},e.imports,r.imports),r=We(o),o=Et(o),i=0,l=e.interpolate||N,f=\"__p+='\",l=ae((e.escape||N).source+\"|\"+l.source+\"|\"+(l===I?O:N).source+\"|\"+(e.evaluate||N).source+\"|$\",\"g\");n.replace(l,function(t,e,r,o,l,c){return r||(r=o),f+=n.slice(i,c).replace(P,a),e&&(f+=\"'+__e(\"+e+\")+'\"),l&&(u=true,f+=\"';\"+l+\";\\n__p+='\"),r&&(f+=\"'+((__t=(\"+r+\"))==null?'':__t)+'\"),i=c+t.length,t\n}),f+=\"';\",l=e=e.variable,l||(e=\"obj\",f=\"with(\"+e+\"){\"+f+\"}\"),f=(u?f.replace(x,\"\"):f).replace(C,\"$1\").replace(E,\"$1;\"),f=\"function(\"+e+\"){\"+(l?\"\":e+\"||(\"+e+\"={});\")+\"var __t,__p='',__e=_.escape\"+(u?\",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}\":\";\")+f+\"return __p}\";try{var c=ee(r,\"return \"+f).apply(h,o)}catch(p){throw p.source=f,p}return t?c(t):(c.source=f,c)},v.unescape=function(n){return null==n?\"\":ie(n).replace(Ue,mt)},v.uniqueId=function(n){var t=++m;return ie(null==n?\"\":n)+t\n},v.all=St,v.any=$t,v.detect=It,v.findWhere=It,v.foldl=Rt,v.foldr=Ft,v.include=Ot,v.inject=Rt,Ut(function(){var n={};return tr(v,function(t,e){v.prototype[e]||(n[e]=t)}),n}(),false),v.first=Lt,v.last=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!=\"number\"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[u-1]:h;return s(n,Be(0,u-r))},v.sample=function(n,t,e){return n&&typeof n.length!=\"number\"?n=Et(n):Le.unindexedChars&&kt(n)&&(n=n.split(\"\")),null==t||e?n?n[lt(0,n.length-1)]:h:(n=Tt(n),n.length=Pe(Be(0,t),n.length),n)\n},v.take=Lt,v.head=Lt,tr(v,function(n,t){var e=\"sample\"!==t;v.prototype[t]||(v.prototype[t]=function(t,r){var u=this.__chain__,o=n(this.__wrapped__,t,r);return u||null!=t&&(!r||e&&typeof t==\"function\")?new y(o,u):o})}),v.VERSION=\"2.4.1\",v.prototype.chain=function(){return this.__chain__=true,this},v.prototype.toString=function(){return ie(this.__wrapped__)},v.prototype.value=Yt,v.prototype.valueOf=Yt,Xe([\"join\",\"pop\",\"shift\"],function(n){var t=fe[n];v.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments);\nreturn n?new y(e,n):e}}),Xe([\"push\",\"reverse\",\"sort\",\"unshift\"],function(n){var t=fe[n];v.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Xe([\"concat\",\"slice\",\"splice\"],function(n){var t=fe[n];v.prototype[n]=function(){return new y(t.apply(this.__wrapped__,arguments),this.__chain__)}}),Le.spliceObjects||Xe([\"pop\",\"shift\",\"splice\"],function(n){var t=fe[n],e=\"splice\"==n;v.prototype[n]=function(){var n=this.__chain__,r=this.__wrapped__,u=t.apply(r,arguments);return 0===r.length&&delete r[0],n||e?new y(u,n):u\n}}),v}var h,v=[],y=[],m=0,d={},b=+new Date+\"\",_=75,w=40,j=\" \\t\\x0B\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\",x=/\\b__p\\+='';/g,C=/\\b(__p\\+=)''\\+/g,E=/(__e\\(.*?\\)|\\b__t\\))\\+'';/g,O=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,S=/\\w*$/,A=/^\\s*function[ \\n\\r\\t]+\\w/,I=/<%=([\\s\\S]+?)%>/g,D=RegExp(\"^[\"+j+\"]*0+(?=.$)\"),N=/($^)/,B=/\\bthis\\b/,P=/['\\n\\r\\t\\u2028\\u2029\\\\]/g,R=\"Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setTimeout\".split(\" \"),F=\"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \"),T=\"[object Arguments]\",$=\"[object Array]\",L=\"[object Boolean]\",z=\"[object Date]\",q=\"[object Error]\",K=\"[object Function]\",W=\"[object Number]\",G=\"[object Object]\",J=\"[object RegExp]\",M=\"[object String]\",V={};\nV[K]=false,V[T]=V[$]=V[L]=V[z]=V[W]=V[G]=V[J]=V[M]=true;var H={leading:false,maxWait:0,trailing:false},U={configurable:false,enumerable:false,value:null,writable:false},Q={a:\"\",b:null,c:\"\",d:\"\",e:\"\",v:null,g:\"\",h:null,support:null,i:\"\",j:false},X={\"boolean\":false,\"function\":true,object:true,number:false,string:false,undefined:false},Y={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\t\":\"t\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Z=X[typeof window]&&window||this,nt=X[typeof exports]&&exports&&!exports.nodeType&&exports,tt=X[typeof module]&&module&&!module.nodeType&&module,et=tt&&tt.exports===nt&&nt,rt=X[typeof global]&&global;\n!rt||rt.global!==rt&&rt.window!==rt||(Z=rt);var ut=g();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?(Z._=ut, define('lodash',[],function(){return ut})):nt&&tt?et?(tt.exports=ut)._=ut:nt._=ut:Z._=ut}).call(this);\n","define('context',['module'], function(module){\n return module.config();\n});\n","/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/format',['lodash'], function(_){\n 'use strict';\n\n var pattern = /(%[sdj])/g;\n\n /**\n * Enables you to format strings/message, using the pattern:\n * - %s : string\n * - %d : number\n * - %j : json\n *\n * @example format('Resize %s to %d%', 'width', 100); //returns Resize width to 100%\n * @exports core/format\n * @param {String} message - the message to format\n * @param {...String|Number|Object} [replacements] - the replacements arguments in the order defined in the message\n * @returns {String} the formatted message\n */\n return function(message){\n var replacements = Array.prototype.slice.call(arguments, 1);\n return _.reduce(\n message.match(pattern),\n function(acc, match, index){\n var replacement = '';\n if(undefined !== replacements[index]){\n switch(match){\n case '%d': replacement = Number(replacements[index]); break;\n case '%j': try{\n replacement = JSON.stringify(replacements[index]).replace(/\"/g, '');\n } catch(e){}\n break;\n default : replacement = replacements[index]; break;\n }\n message = message.replace(match, replacement);\n }\n return message;\n },\n message\n );\n };\n});\n\n","define('i18n',['lodash', 'json!i18ntr/messages.json', 'context', 'core/format'], function(_, i18nTr, context, format){\n 'use strict'; \n \n var translations = i18nTr.translations;\n \n /**\n * Common translation method.\n * @see /locales/#lang#/messages_po.js\n * \n * @param {String} message should be the string in the default language (usually english) used as the key in the gettext translations \n * @returns {String} translated message \n */\n var __ = function __(message){\n var localized = !translations[message] ? message : translations[message];\n\n if(arguments.length > 1){\n arguments[0] = localized;\n localized = format.apply(null, arguments); \n }\n\n return localized;\n };\n\n //expose the translation function\n return __ ;\n});\n\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 2.3.0\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$toString = {}.toString;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n var nextTick = process.nextTick;\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // setImmediate should be used instead instead\n var version = process.versions.node.match(/^(?:(\\d+)\\.)?(?:(\\d+)\\.)?(\\*|\\d+)$/);\n if (Array.isArray(version) && version[1] === '0' && version[2] === '10') {\n nextTick = setImmediate;\n }\n return function() {\n nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertex() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertex();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFullfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable) {\n if (maybeThenable.constructor === promise.constructor) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n var then = lib$es6$promise$$internal$$getThen(maybeThenable);\n\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFullfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n var enumerator = this;\n\n enumerator._instanceConstructor = Constructor;\n enumerator.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (enumerator._validateInput(input)) {\n enumerator._input = input;\n enumerator.length = input.length;\n enumerator._remaining = input.length;\n\n enumerator._init();\n\n if (enumerator.length === 0) {\n lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\n } else {\n enumerator.length = enumerator.length || 0;\n enumerator._enumerate();\n if (enumerator._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(enumerator.promise, enumerator._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validateInput = function(input) {\n return lib$es6$promise$utils$$isArray(input);\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._init = function() {\n this._result = new Array(this.length);\n };\n\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var enumerator = this;\n\n var length = enumerator.length;\n var promise = enumerator.promise;\n var input = enumerator._input;\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n enumerator._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var enumerator = this;\n var c = enumerator._instanceConstructor;\n\n if (lib$es6$promise$utils$$isMaybeThenable(entry)) {\n if (entry.constructor === c && entry._state !== lib$es6$promise$$internal$$PENDING) {\n entry._onerror = null;\n enumerator._settledAt(entry._state, i, entry._result);\n } else {\n enumerator._willSettleAt(c.resolve(entry), i);\n }\n } else {\n enumerator._remaining--;\n enumerator._result[i] = entry;\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var enumerator = this;\n var promise = enumerator.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n enumerator._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n enumerator._result[i] = value;\n }\n }\n\n if (enumerator._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, enumerator._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n if (!lib$es6$promise$utils$$isFunction(resolver)) {\n lib$es6$promise$promise$$needsResolver();\n }\n\n if (!(this instanceof lib$es6$promise$promise$$Promise)) {\n lib$es6$promise$promise$$needsNew();\n }\n\n lib$es6$promise$$internal$$initializePromise(this, resolver);\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: function(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n },\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define('lib/polyfill/es6-promise',[],function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n\n","\n/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 Open Assessment Technologies SA\n */\n\n/**\n * Wrap the Promise Polyfill\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/promise',['lib/polyfill/es6-promise'], function(es6Promise){\n 'use strict';\n\n /**\n * @exports core/promise\n */\n return window.Promise || es6Promise.Promise;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n/**\n * Enables to register providers to a target.\n *\n * @author Sam <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/providerRegistry',['lodash'], function (_) {\n 'use strict';\n\n /**\n * Transfers the target into a a provider registry\n * It adds two methods registerProvider() and getProvider();\n *\n * @param {Object} target\n * @param {Function} [validator] - a function to validate the provider to be registered\n * \n * @returns {Object} the target itself\n */\n function providerRegistry(target, validator) {\n\n var _providers = {};\n target = target || {};\n\n\n /**\n * Registers a <i>provider</i> into the provider registry.\n * The provider provides the behavior required by the target object.\n *\n * @param {String} name - the provider name will be used to select the provider while instantiating the target object\n *\n * @param {Object} provider - the Provider as a plain object. The target object forwards, encapsulates and delegates calls to the provider.\n * @param {Function} provider.init - the provider initializes the target object from it's config\n *\n * @returns {registerProvider}\n *\n * @throws TypeError when a wrong provider is given or an empty name.\n */\n function registerProvider(name, provider) {\n\n var valid = true;\n\n //type checking\n if (!_.isString(name) || name.length <= 0) {\n throw new TypeError('It is required to give a name to your provider.');\n }\n if (!_.isPlainObject(provider) || (!_.isFunction(provider.init))) {\n throw new TypeError('A provider is an object that contains at least an init function.');\n }\n valid = validator && _.isFunction(validator) ? validator(provider) : valid;\n\n if (valid) {\n _providers[name] = provider;\n }\n\n return this;\n }\n\n /**\n * Gets a registered provider by its name\n *\n * @param {String} providerName\n *\n * @returns {Object} provider\n */\n function getProvider(providerName) {\n\n var provider;\n\n //check a provider is available\n if (!_providers || _.size(_providers) === 0) {\n throw new Error('No provider registered');\n }\n\n if (_.isString(providerName) && providerName.length > 0) {\n provider = _providers[providerName];\n } else if (_.size(_providers) === 1) {\n\n //if there is only one provider, then we take this one\n providerName = _.keys(_providers)[0];\n provider = _providers[providerName];\n }\n\n //now we should have a provider\n if (!provider) {\n throw new Error('No candidate found for the provider');\n }\n\n return provider;\n }\n\n /**\n * Clears the registered providers\n *\n * @returns {registerProvider}\n */\n function clearProviders() {\n _providers = {};\n return this;\n }\n\n target.registerProvider = registerProvider;\n target.getProvider = getProvider;\n target.clearProviders = clearProviders;\n\n return target;\n }\n\n return providerRegistry;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('core/delegator',[\n 'lodash'\n], function (_) {\n 'use strict';\n \n var defaults = {\n name: 'provided',\n eventifier: true\n };\n\n var _slice = [].slice;\n\n /**\n * Creates a function that delegates api calls to an provider\n * @param {Object} api - The api providing the calls\n * @param {Object} provider - The provider on which delegate the calls\n * @param {Object} [config] - An optional configuration set\n * @param {String} [config.name] - The name of the provider\n * @param {Boolean} [config.eventifier] - Enable the eventifier support (default: true)\n * @param {Boolean} [config.forward] - Forward the calls to the provider instead of delegate (default: false)\n * @param {Function} [config.defaultProvider] - An optional default delegated function called if the provider do not have the requested target.\n * @param {Function} [config.wrapper] - An optional function that will wrap the response\n * @param {Boolean} [config.required] - Throws exception if a delegated method is missing (default: false)\n * @returns {delegate} - The delegate function\n */\n function delegator(api, provider, config) {\n var extendedConfig = _.defaults(config || {}, defaults);\n var eventifier = !!(extendedConfig.eventifier && api && api.trigger);\n var context = extendedConfig.forward ? provider : api;\n var defaultProvider = _.isFunction(extendedConfig.defaultProvider) ? extendedConfig.defaultProvider : _.noop;\n var wrapper = _.isFunction(extendedConfig.wrapper) ? extendedConfig.wrapper : null;\n var name = extendedConfig.name;\n\n if (extendedConfig.required) {\n defaultProvider = null;\n }\n\n /**\n * Delegates a function call from the api to the provider.\n * If the api supports eventifier, fires the related event\n *\n * @param {String} fnName - The name of the delegated method to call\n * @param {Object} ... - Following parameters will be forwarded as is\n * @returns {Object} - The delegated method must return a response\n * @private\n * @throws Error\n */\n function delegate(fnName) {\n var response, args;\n\n if (provider) {\n if (_.isFunction(provider[fnName]) || defaultProvider) {\n // need real array of params, even if empty\n args = _slice.call(arguments, 1);\n\n // delegate the call to the provider\n response = (provider[fnName] || defaultProvider).apply(context, args);\n\n if (wrapper) {\n response = wrapper(response);\n }\n\n // if supported fires the method related event\n if (eventifier) {\n // the response has to be provided as first argument in all events\n api.trigger.apply(api, [fnName, response].concat(args));\n }\n } else {\n throw new Error('There is no method called ' + fnName + ' in the ' + name + ' provider!');\n }\n } else {\n throw new Error('There is no ' + name + ' provider!');\n }\n\n return response;\n }\n\n return delegate;\n }\n\n return delegator;\n});\n\n","(function () {\n\n var async = {};\n\n // global on the server, window in the browser\n var root, previous_async;\n\n root = this;\n if (root != null) {\n previous_async = root.async;\n }\n\n async.noConflict = function () {\n root.async = previous_async;\n return async;\n };\n\n function only_once(fn) {\n var called = false;\n return function() {\n if (called) throw new Error(\"Callback was already called.\");\n called = true;\n fn.apply(root, arguments);\n }\n }\n\n //// cross-browser compatiblity functions ////\n\n var _each = function (arr, iterator) {\n if (arr.forEach) {\n return arr.forEach(iterator);\n }\n for (var i = 0; i < arr.length; i += 1) {\n iterator(arr[i], i, arr);\n }\n };\n\n var _map = function (arr, iterator) {\n if (arr.map) {\n return arr.map(iterator);\n }\n var results = [];\n _each(arr, function (x, i, a) {\n results.push(iterator(x, i, a));\n });\n return results;\n };\n\n var _reduce = function (arr, iterator, memo) {\n if (arr.reduce) {\n return arr.reduce(iterator, memo);\n }\n _each(arr, function (x, i, a) {\n memo = iterator(memo, x, i, a);\n });\n return memo;\n };\n\n var _keys = function (obj) {\n if (Object.keys) {\n return Object.keys(obj);\n }\n var keys = [];\n for (var k in obj) {\n if (obj.hasOwnProperty(k)) {\n keys.push(k);\n }\n }\n return keys;\n };\n\n //// exported async module functions ////\n\n //// nextTick implementation with browser-compatible fallback ////\n if (typeof process === 'undefined' || !(process.nextTick)) {\n if (typeof setImmediate === 'function') {\n async.nextTick = function (fn) {\n // not a direct alias for IE10 compatibility\n setImmediate(fn);\n };\n async.setImmediate = async.nextTick;\n }\n else {\n async.nextTick = function (fn) {\n setTimeout(fn, 0);\n };\n async.setImmediate = async.nextTick;\n }\n }\n else {\n async.nextTick = process.nextTick;\n if (typeof setImmediate !== 'undefined') {\n async.setImmediate = function (fn) {\n // not a direct alias for IE10 compatibility\n setImmediate(fn);\n };\n }\n else {\n async.setImmediate = async.nextTick;\n }\n }\n\n async.each = function (arr, iterator, callback) {\n callback = callback || function () {};\n if (!arr.length) {\n return callback();\n }\n var completed = 0;\n _each(arr, function (x) {\n iterator(x, only_once(function (err) {\n if (err) {\n callback(err);\n callback = function () {};\n }\n else {\n completed += 1;\n if (completed >= arr.length) {\n callback(null);\n }\n }\n }));\n });\n };\n async.forEach = async.each;\n\n async.eachSeries = function (arr, iterator, callback) {\n callback = callback || function () {};\n if (!arr.length) {\n return callback();\n }\n var completed = 0;\n var iterate = function () {\n iterator(arr[completed], function (err) {\n if (err) {\n callback(err);\n callback = function () {};\n }\n else {\n completed += 1;\n if (completed >= arr.length) {\n callback(null);\n }\n else {\n iterate();\n }\n }\n });\n };\n iterate();\n };\n async.forEachSeries = async.eachSeries;\n\n async.eachLimit = function (arr, limit, iterator, callback) {\n var fn = _eachLimit(limit);\n fn.apply(null, [arr, iterator, callback]);\n };\n async.forEachLimit = async.eachLimit;\n\n var _eachLimit = function (limit) {\n\n return function (arr, iterator, callback) {\n callback = callback || function () {};\n if (!arr.length || limit <= 0) {\n return callback();\n }\n var completed = 0;\n var started = 0;\n var running = 0;\n\n (function replenish () {\n if (completed >= arr.length) {\n return callback();\n }\n\n while (running < limit && started < arr.length) {\n started += 1;\n running += 1;\n iterator(arr[started - 1], function (err) {\n if (err) {\n callback(err);\n callback = function () {};\n }\n else {\n completed += 1;\n running -= 1;\n if (completed >= arr.length) {\n callback();\n }\n else {\n replenish();\n }\n }\n });\n }\n })();\n };\n };\n\n\n var doParallel = function (fn) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n return fn.apply(null, [async.each].concat(args));\n };\n };\n var doParallelLimit = function(limit, fn) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n return fn.apply(null, [_eachLimit(limit)].concat(args));\n };\n };\n var doSeries = function (fn) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n return fn.apply(null, [async.eachSeries].concat(args));\n };\n };\n\n\n var _asyncMap = function (eachfn, arr, iterator, callback) {\n var results = [];\n arr = _map(arr, function (x, i) {\n return {index: i, value: x};\n });\n eachfn(arr, function (x, callback) {\n iterator(x.value, function (err, v) {\n results[x.index] = v;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n };\n async.map = doParallel(_asyncMap);\n async.mapSeries = doSeries(_asyncMap);\n async.mapLimit = function (arr, limit, iterator, callback) {\n return _mapLimit(limit)(arr, iterator, callback);\n };\n\n var _mapLimit = function(limit) {\n return doParallelLimit(limit, _asyncMap);\n };\n\n // reduce only has a series version, as doing reduce in parallel won't\n // work in many situations.\n async.reduce = function (arr, memo, iterator, callback) {\n async.eachSeries(arr, function (x, callback) {\n iterator(memo, x, function (err, v) {\n memo = v;\n callback(err);\n });\n }, function (err) {\n callback(err, memo);\n });\n };\n // inject alias\n async.inject = async.reduce;\n // foldl alias\n async.foldl = async.reduce;\n\n async.reduceRight = function (arr, memo, iterator, callback) {\n var reversed = _map(arr, function (x) {\n return x;\n }).reverse();\n async.reduce(reversed, memo, iterator, callback);\n };\n // foldr alias\n async.foldr = async.reduceRight;\n\n var _filter = function (eachfn, arr, iterator, callback) {\n var results = [];\n arr = _map(arr, function (x, i) {\n return {index: i, value: x};\n });\n eachfn(arr, function (x, callback) {\n iterator(x.value, function (v) {\n if (v) {\n results.push(x);\n }\n callback();\n });\n }, function (err) {\n callback(_map(results.sort(function (a, b) {\n return a.index - b.index;\n }), function (x) {\n return x.value;\n }));\n });\n };\n async.filter = doParallel(_filter);\n async.filterSeries = doSeries(_filter);\n // select alias\n async.select = async.filter;\n async.selectSeries = async.filterSeries;\n\n var _reject = function (eachfn, arr, iterator, callback) {\n var results = [];\n arr = _map(arr, function (x, i) {\n return {index: i, value: x};\n });\n eachfn(arr, function (x, callback) {\n iterator(x.value, function (v) {\n if (!v) {\n results.push(x);\n }\n callback();\n });\n }, function (err) {\n callback(_map(results.sort(function (a, b) {\n return a.index - b.index;\n }), function (x) {\n return x.value;\n }));\n });\n };\n async.reject = doParallel(_reject);\n async.rejectSeries = doSeries(_reject);\n\n var _detect = function (eachfn, arr, iterator, main_callback) {\n eachfn(arr, function (x, callback) {\n iterator(x, function (result) {\n if (result) {\n main_callback(x);\n main_callback = function () {};\n }\n else {\n callback();\n }\n });\n }, function (err) {\n main_callback();\n });\n };\n async.detect = doParallel(_detect);\n async.detectSeries = doSeries(_detect);\n\n async.some = function (arr, iterator, main_callback) {\n async.each(arr, function (x, callback) {\n iterator(x, function (v) {\n if (v) {\n main_callback(true);\n main_callback = function () {};\n }\n callback();\n });\n }, function (err) {\n main_callback(false);\n });\n };\n // any alias\n async.any = async.some;\n\n async.every = function (arr, iterator, main_callback) {\n async.each(arr, function (x, callback) {\n iterator(x, function (v) {\n if (!v) {\n main_callback(false);\n main_callback = function () {};\n }\n callback();\n });\n }, function (err) {\n main_callback(true);\n });\n };\n // all alias\n async.all = async.every;\n\n async.sortBy = function (arr, iterator, callback) {\n async.map(arr, function (x, callback) {\n iterator(x, function (err, criteria) {\n if (err) {\n callback(err);\n }\n else {\n callback(null, {value: x, criteria: criteria});\n }\n });\n }, function (err, results) {\n if (err) {\n return callback(err);\n }\n else {\n var fn = function (left, right) {\n var a = left.criteria, b = right.criteria;\n return a < b ? -1 : a > b ? 1 : 0;\n };\n callback(null, _map(results.sort(fn), function (x) {\n return x.value;\n }));\n }\n });\n };\n\n async.auto = function (tasks, callback) {\n callback = callback || function () {};\n var keys = _keys(tasks);\n if (!keys.length) {\n return callback(null);\n }\n\n var results = {};\n\n var listeners = [];\n var addListener = function (fn) {\n listeners.unshift(fn);\n };\n var removeListener = function (fn) {\n for (var i = 0; i < listeners.length; i += 1) {\n if (listeners[i] === fn) {\n listeners.splice(i, 1);\n return;\n }\n }\n };\n var taskComplete = function () {\n _each(listeners.slice(0), function (fn) {\n fn();\n });\n };\n\n addListener(function () {\n if (_keys(results).length === keys.length) {\n callback(null, results);\n callback = function () {};\n }\n });\n\n _each(keys, function (k) {\n var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k];\n var taskCallback = function (err) {\n var args = Array.prototype.slice.call(arguments, 1);\n if (args.length <= 1) {\n args = args[0];\n }\n if (err) {\n var safeResults = {};\n _each(_keys(results), function(rkey) {\n safeResults[rkey] = results[rkey];\n });\n safeResults[k] = args;\n callback(err, safeResults);\n // stop subsequent errors hitting callback multiple times\n callback = function () {};\n }\n else {\n results[k] = args;\n async.setImmediate(taskComplete);\n }\n };\n var requires = task.slice(0, Math.abs(task.length - 1)) || [];\n var ready = function () {\n return _reduce(requires, function (a, x) {\n return (a && results.hasOwnProperty(x));\n }, true) && !results.hasOwnProperty(k);\n };\n if (ready()) {\n task[task.length - 1](taskCallback, results);\n }\n else {\n var listener = function () {\n if (ready()) {\n removeListener(listener);\n task[task.length - 1](taskCallback, results);\n }\n };\n addListener(listener);\n }\n });\n };\n\n async.waterfall = function (tasks, callback) {\n callback = callback || function () {};\n if (tasks.constructor !== Array) {\n var err = new Error('First argument to waterfall must be an array of functions');\n return callback(err);\n }\n if (!tasks.length) {\n return callback();\n }\n var wrapIterator = function (iterator) {\n return function (err) {\n if (err) {\n callback.apply(null, arguments);\n callback = function () {};\n }\n else {\n var args = Array.prototype.slice.call(arguments, 1);\n var next = iterator.next();\n if (next) {\n args.push(wrapIterator(next));\n }\n else {\n args.push(callback);\n }\n async.setImmediate(function () {\n iterator.apply(null, args);\n });\n }\n };\n };\n wrapIterator(async.iterator(tasks))();\n };\n\n var _parallel = function(eachfn, tasks, callback) {\n callback = callback || function () {};\n if (tasks.constructor === Array) {\n eachfn.map(tasks, function (fn, callback) {\n if (fn) {\n fn(function (err) {\n var args = Array.prototype.slice.call(arguments, 1);\n if (args.length <= 1) {\n args = args[0];\n }\n callback.call(null, err, args);\n });\n }\n }, callback);\n }\n else {\n var results = {};\n eachfn.each(_keys(tasks), function (k, callback) {\n tasks[k](function (err) {\n var args = Array.prototype.slice.call(arguments, 1);\n if (args.length <= 1) {\n args = args[0];\n }\n results[k] = args;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n }\n };\n\n async.parallel = function (tasks, callback) {\n _parallel({ map: async.map, each: async.each }, tasks, callback);\n };\n\n async.parallelLimit = function(tasks, limit, callback) {\n _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback);\n };\n\n async.series = function (tasks, callback) {\n callback = callback || function () {};\n if (tasks.constructor === Array) {\n async.mapSeries(tasks, function (fn, callback) {\n if (fn) {\n fn(function (err) {\n var args = Array.prototype.slice.call(arguments, 1);\n if (args.length <= 1) {\n args = args[0];\n }\n callback.call(null, err, args);\n });\n }\n }, callback);\n }\n else {\n var results = {};\n async.eachSeries(_keys(tasks), function (k, callback) {\n tasks[k](function (err) {\n var args = Array.prototype.slice.call(arguments, 1);\n if (args.length <= 1) {\n args = args[0];\n }\n results[k] = args;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n }\n };\n\n async.iterator = function (tasks) {\n var makeCallback = function (index) {\n var fn = function () {\n if (tasks.length) {\n tasks[index].apply(null, arguments);\n }\n return fn.next();\n };\n fn.next = function () {\n return (index < tasks.length - 1) ? makeCallback(index + 1): null;\n };\n return fn;\n };\n return makeCallback(0);\n };\n\n async.apply = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function () {\n return fn.apply(\n null, args.concat(Array.prototype.slice.call(arguments))\n );\n };\n };\n\n var _concat = function (eachfn, arr, fn, callback) {\n var r = [];\n eachfn(arr, function (x, cb) {\n fn(x, function (err, y) {\n r = r.concat(y || []);\n cb(err);\n });\n }, function (err) {\n callback(err, r);\n });\n };\n async.concat = doParallel(_concat);\n async.concatSeries = doSeries(_concat);\n\n async.whilst = function (test, iterator, callback) {\n if (test()) {\n iterator(function (err) {\n if (err) {\n return callback(err);\n }\n async.whilst(test, iterator, callback);\n });\n }\n else {\n callback();\n }\n };\n\n async.doWhilst = function (iterator, test, callback) {\n iterator(function (err) {\n if (err) {\n return callback(err);\n }\n if (test()) {\n async.doWhilst(iterator, test, callback);\n }\n else {\n callback();\n }\n });\n };\n\n async.until = function (test, iterator, callback) {\n if (!test()) {\n iterator(function (err) {\n if (err) {\n return callback(err);\n }\n async.until(test, iterator, callback);\n });\n }\n else {\n callback();\n }\n };\n\n async.doUntil = function (iterator, test, callback) {\n iterator(function (err) {\n if (err) {\n return callback(err);\n }\n if (!test()) {\n async.doUntil(iterator, test, callback);\n }\n else {\n callback();\n }\n });\n };\n\n async.queue = function (worker, concurrency) {\n if (concurrency === undefined) {\n concurrency = 1;\n }\n function _insert(q, data, pos, callback) {\n if(data.constructor !== Array) {\n data = [data];\n }\n _each(data, function(task) {\n var item = {\n data: task,\n callback: typeof callback === 'function' ? callback : null\n };\n\n if (pos) {\n q.tasks.unshift(item);\n } else {\n q.tasks.push(item);\n }\n\n if (q.saturated && q.tasks.length === concurrency) {\n q.saturated();\n }\n async.setImmediate(q.process);\n });\n }\n\n var workers = 0;\n var q = {\n tasks: [],\n concurrency: concurrency,\n saturated: null,\n empty: null,\n drain: null,\n push: function (data, callback) {\n _insert(q, data, false, callback);\n },\n unshift: function (data, callback) {\n _insert(q, data, true, callback);\n },\n process: function () {\n if (workers < q.concurrency && q.tasks.length) {\n var task = q.tasks.shift();\n if (q.empty && q.tasks.length === 0) {\n q.empty();\n }\n workers += 1;\n var next = function () {\n workers -= 1;\n if (task.callback) {\n task.callback.apply(task, arguments);\n }\n if (q.drain && q.tasks.length + workers === 0) {\n q.drain();\n }\n q.process();\n };\n var cb = only_once(next);\n worker(task.data, cb);\n }\n },\n length: function () {\n return q.tasks.length;\n },\n running: function () {\n return workers;\n }\n };\n return q;\n };\n\n async.cargo = function (worker, payload) {\n var working = false,\n tasks = [];\n\n var cargo = {\n tasks: tasks,\n payload: payload,\n saturated: null,\n empty: null,\n drain: null,\n push: function (data, callback) {\n if(data.constructor !== Array) {\n data = [data];\n }\n _each(data, function(task) {\n tasks.push({\n data: task,\n callback: typeof callback === 'function' ? callback : null\n });\n if (cargo.saturated && tasks.length === payload) {\n cargo.saturated();\n }\n });\n async.setImmediate(cargo.process);\n },\n process: function process() {\n if (working) return;\n if (tasks.length === 0) {\n if(cargo.drain) cargo.drain();\n return;\n }\n\n var ts = typeof payload === 'number'\n ? tasks.splice(0, payload)\n : tasks.splice(0);\n\n var ds = _map(ts, function (task) {\n return task.data;\n });\n\n if(cargo.empty) cargo.empty();\n working = true;\n worker(ds, function () {\n working = false;\n\n var args = arguments;\n _each(ts, function (data) {\n if (data.callback) {\n data.callback.apply(null, args);\n }\n });\n\n process();\n });\n },\n length: function () {\n return tasks.length;\n },\n running: function () {\n return working;\n }\n };\n return cargo;\n };\n\n var _console_fn = function (name) {\n return function (fn) {\n var args = Array.prototype.slice.call(arguments, 1);\n fn.apply(null, args.concat([function (err) {\n var args = Array.prototype.slice.call(arguments, 1);\n if (typeof console !== 'undefined') {\n if (err) {\n if (console.error) {\n console.error(err);\n }\n }\n else if (console[name]) {\n _each(args, function (x) {\n console[name](x);\n });\n }\n }\n }]));\n };\n };\n async.log = _console_fn('log');\n async.dir = _console_fn('dir');\n /*async.info = _console_fn('info');\n async.warn = _console_fn('warn');\n async.error = _console_fn('error');*/\n\n async.memoize = function (fn, hasher) {\n var memo = {};\n var queues = {};\n hasher = hasher || function (x) {\n return x;\n };\n var memoized = function () {\n var args = Array.prototype.slice.call(arguments);\n var callback = args.pop();\n var key = hasher.apply(null, args);\n if (key in memo) {\n callback.apply(null, memo[key]);\n }\n else if (key in queues) {\n queues[key].push(callback);\n }\n else {\n queues[key] = [callback];\n fn.apply(null, args.concat([function () {\n memo[key] = arguments;\n var q = queues[key];\n delete queues[key];\n for (var i = 0, l = q.length; i < l; i++) {\n q[i].apply(null, arguments);\n }\n }]));\n }\n };\n memoized.memo = memo;\n memoized.unmemoized = fn;\n return memoized;\n };\n\n async.unmemoize = function (fn) {\n return function () {\n return (fn.unmemoized || fn).apply(null, arguments);\n };\n };\n\n async.times = function (count, iterator, callback) {\n var counter = [];\n for (var i = 0; i < count; i++) {\n counter.push(i);\n }\n return async.map(counter, iterator, callback);\n };\n\n async.timesSeries = function (count, iterator, callback) {\n var counter = [];\n for (var i = 0; i < count; i++) {\n counter.push(i);\n }\n return async.mapSeries(counter, iterator, callback);\n };\n\n async.compose = function (/* functions... */) {\n var fns = Array.prototype.reverse.call(arguments);\n return function () {\n var that = this;\n var args = Array.prototype.slice.call(arguments);\n var callback = args.pop();\n async.reduce(fns, args, function (newargs, fn, cb) {\n fn.apply(that, newargs.concat([function () {\n var err = arguments[0];\n var nextargs = Array.prototype.slice.call(arguments, 1);\n cb(err, nextargs);\n }]))\n },\n function (err, results) {\n callback.apply(that, [err].concat(results));\n });\n };\n };\n\n var _applyEach = function (eachfn, fns /*args...*/) {\n var go = function () {\n var that = this;\n var args = Array.prototype.slice.call(arguments);\n var callback = args.pop();\n return eachfn(fns, function (fn, cb) {\n fn.apply(that, args.concat([cb]));\n },\n callback);\n };\n if (arguments.length > 2) {\n var args = Array.prototype.slice.call(arguments, 2);\n return go.apply(this, args);\n }\n else {\n return go;\n }\n };\n async.applyEach = doParallel(_applyEach);\n async.applyEachSeries = doSeries(_applyEach);\n\n async.forever = function (fn, callback) {\n function next(err) {\n if (err) {\n if (callback) {\n return callback(err);\n }\n throw err;\n }\n fn(next);\n }\n next();\n };\n\n // AMD / RequireJS\n if (typeof define !== 'undefined' && define.amd) {\n define('async',[], function () {\n return async;\n });\n }\n // Node.js\n else if (typeof module !== 'undefined' && module.exports) {\n module.exports = async;\n }\n // included directly via <script> tag\n else {\n root.async = async;\n }\n\n}());\n\n","/**\n * UUID generator\n *\n * This is a modified version of Robert Kieffer's Math.uuid\n * from http://www.broofa.com/2008/09/javascript-uuid-function/\n *\n * It differs in three ways from the original work:\n * - uuid is no longer attached to the Math object\n * - script is now written in require.js style\n * - alternative implementations have been removed\n *\n * Additionally the usage examples have been adapted to reflect these changes.\n *\n * Original credits:\n * Math.uuid.js (v1.4)\n * http://www.broofa.com\n * mailto:robert@broofa.com\n *\n * Copyright (c) 2010 Robert Kieffer\n * Dual licensed under the MIT and GPL licenses.\n *\n */\n\ndefine('lib/uuid',[], function () {\n\n // Private array of chars to use\n var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\n\n /**\n * Generate a random uuid\n *\n * USAGE: uuid(length, radix)\n * length - the desired number of characters\n * radix - the number of allowable values for each character.\n *\n * EXAMPLES:\n * // No arguments - returns RFC4122, version 4 ID\n * >>> uuid()\n * \"92329D39-6F5C-4520-ABFC-AAB64544E172\"\n *\n * // One argument - returns ID of the specified length\n * >>> uuid(15) // 15 character ID (default base=62)\n * \"VcydxgltxrVZSTV\"\n *\n * // Two arguments - returns ID of the specified length, and radix. (Radix must be <= 62)\n * >>> uuid(8, 2) // 8 character ID (base=2)\n * \"01001010\"\n * >>> uuid(8, 10) // 8 character ID (base=10)\n * \"47473046\"\n * >>> uuid(8, 16) // 8 character ID (base=16)\n * \"098F4D35\"\n *\n * @param len\n * @param radix\n * @returns {*}\n * @private\n */\n var uuid = function (len, radix) {\n var chars = CHARS, uuid = [], i, r;\n radix = radix || chars.length;\n\n // Compact form\n if (len) {\n for (i = 0; i < len; i++) {\n uuid[i] = chars[0 | Math.random() * radix];\n }\n }\n // rfc4122 form\n else {\n\n // rfc4122 requires these characters\n uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';\n uuid[14] = '4';\n\n // Fill in random data. At i === 19 set the high bits of clock sequence as\n // per rfc4122, sec. 4.1.5\n for (i = 0; i < 36; i++) {\n if (!uuid[i]) {\n r = 0 | Math.random() * 16;\n uuid[i] = chars[(i === 19) ? (r & 0x3) | 0x8 : r];\n }\n }\n }\n\n return uuid.join('');\n };\n\n return uuid;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n * Make an object an event emitter.\n *\n * @example simple usage\n * var emitter = eventifier({});\n * emitter.on('hello', function(who){\n * console.log('Hello ' + who);\n * });\n * emitter.trigger('hello', 'world');\n *\n * @example using before\n * emitter.before('hello', function(e, who){\n * if(!who || who === 'nobody'){\n * console.log('I am not saying Hello to nobody');\n * return false;\n * }\n * });\n *\n * @example using before asynchronously\n * emitter.before('hello', function(e, who){\n *\n * //I am in an asynchronous context\n * var done = e.done();\n *\n * //ajax call\n * fetch('do/I/know?who='+who).then(function(yes){\n * if(yes){\n * console.log('I know', who);\n * e.done();\n * }else{\n * console.log('I don't talk to stranger');\n * e.prevent();\n * }\n * })).catch(function(){\n * console.log('System failure, I should quit now');\n * e.preventNow();\n * });\n * });\n *\n * TODO replace before done syntax by promises\n * TODO support flow control for all types of events not only before.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/eventifier',[\n 'lodash',\n 'async',\n 'lib/uuid'\n], function(_, async, uuid){\n 'use strict';\n\n /**\n * All events have a namespace, this one is the default\n */\n var globalNs = '*';\n\n /**\n * Create an async callstack\n * @param {array} handlers - array of handlers to create the async callstack from\n * @param {object} context - the object that each handler will be applied on\n * @param {array} args - the arguments passed to each handler\n * @param {function} success - the success callback\n * @returns {array} array of aync call stack\n */\n function createAsyncCallstack(handlers, context, args, success){\n\n var callstack = _.map(handlers, function(handler){\n\n //return an async call\n return function(cb){\n\n var result;\n var asyncMode = false;\n var _args = _.clone(args);\n var event = {\n done : function asyncDone(){\n asyncMode = true;\n //returns the done function and wait until it is called to continue the async queue processing\n return done;\n },\n prevent : function asyncPrevent(){\n asyncMode = true;\n //immediately call prevent()\n prevent();\n },\n preventNow : function asyncPreventNow(){\n asyncMode = true;\n //immediately call preventNow()\n preventNow();\n }\n };\n\n /**\n * Call success\n * @private\n */\n function done(){\n //allow passing to next\n cb(null, {success:true});\n }\n\n /**\n * Call fail but can continue to next loop\n * @private\n */\n function prevent(){\n cb(null, {success:false});\n }\n\n /**\n * Call fail and must stop the execution of the stack right now\n * @returns {undefined}\n */\n function preventNow(){\n //stop async processing queue right now\n cb(new Error('prevent now'), {success:false, immediate:true});\n }\n\n //set the event object as the first argument\n _args.unshift(event);\n result = handler.apply(context, _args);\n\n if(!asyncMode){\n if(result === false){\n //if the call\n prevent();\n }else{\n done();\n }\n }\n };\n });\n\n async.series(callstack, function(err, results){\n var successes = _.pluck(results, 'success');\n if(_.indexOf(successes, false) === -1){\n success();\n }\n });\n }\n\n /**\n * Get the list of events from an eventName string (ie, separated by spaces)\n * @param {String} eventNames - the event strings\n * @returns {String[]} the event list (no empty, no duplicate)\n */\n function getEventNames(eventNames){\n if(!_.isString(eventNames) || _.isEmpty(eventNames)){\n return [];\n }\n return _(eventNames.split(/\\s/g)).compact().uniq().value();\n }\n\n /**\n * Get the name part of an event name: the 'foo' of 'foo.bar'\n * @param {String} eventName - the name of the event\n * @returns {String} the name part\n */\n function getName(eventName){\n if(eventName.indexOf('.') > -1){\n return eventName.substr(0, eventName.indexOf('.'));\n }\n return eventName;\n }\n\n /**\n * Get the namespace part of an event name: the 'bar' of 'foo.bar'\n * @param {String} eventName - the name of the event\n * @returns {String} the namespace, that defaults to globalNs\n */\n function getNamespace(eventName){\n if(eventName.indexOf('.') > -1){\n return eventName.substr(eventName.indexOf('.') + 1);\n }\n return globalNs;\n }\n\n /**\n * Creates a new EventHandler object structure\n * @returns {Object} the handler structure\n */\n function getHandlerObject(){\n return {\n before : [],\n between: [],\n after : []\n };\n }\n\n /**\n * Makes the target an event emitter by delegating calls to the event API.\n * @param {Object} [target = {}] - the target object, a new plain object is created when omited.\n * @param {logger} [logger] - a logger to trace events\n * @returns {Object} the target for conveniance\n */\n function eventifier(target, logger){\n\n var targetName;\n\n //it stores all the handlers under ns/name/[handlers]\n var eventHandlers = {};\n\n /**\n * Get the handlers for an event type\n * @param {String} eventName - the event name, namespace included\n * @param {String} [type = 'between'] - the type of event in before, between and after\n * @returns {Function[]} the handlers\n */\n var getHandlers = function getHandlers(eventName, type){\n var name = getName(eventName);\n var ns = getNamespace(eventName);\n\n type = type || 'between';\n eventHandlers[ns] = eventHandlers[ns] || {};\n eventHandlers[ns][name] = eventHandlers[ns][name] || getHandlerObject();\n return eventHandlers[ns][name][type];\n };\n\n /**\n * The API itself is just a placeholder, all methods will be delegated to a target.\n */\n var eventApi = {\n\n /**\n * Attach an handler to an event.\n * Calling `on` with the same eventName multiple times add callbacks: they\n * will all be executed.\n *\n * @example target.on('foo', function(bar){ console.log('Cool ' + bar) } );\n *\n * @this the target\n * @param {String} eventNames- the name of the event, or multiple events separated by a space\n * @param {Function} handler - the callback to run once the event is triggered\n * @returns {Object} the target object\n */\n on : function on(eventNames, handler){\n if(_.isFunction(handler)){\n _.forEach(getEventNames(eventNames), function(eventName){\n getHandlers(eventName).push(handler);\n });\n }\n return this;\n },\n\n /**\n * Remove ALL handlers for an event.\n *\n * @example target.off('foo');\n *\n * @this the target\n * @param {String} eventNames- the name of the event, or multiple events separated by a space\n * @returns {Object} the target object\n */\n off : function off(eventNames){\n\n _.forEach(getEventNames(eventNames), function(eventName){\n\n var name = getName(eventName);\n var ns = getNamespace(eventName);\n\n if(ns && !name){\n //off the complete namespace\n eventHandlers[ns] = {};\n } else {\n\n _.forEach(eventHandlers, function(nsHandlers, namespace){\n if(nsHandlers[name] && (ns === globalNs || ns === namespace)){\n nsHandlers[name] = getHandlerObject();\n }\n });\n }\n });\n return this;\n },\n\n /**\n * Trigger an event.\n *\n * @example target.trigger('foo', 'Awesome');\n *\n * @this the target\n * @param {String} eventNames- the name of the event to trigger, or multiple events separated by a space\n * @returns {Object} the target object\n */\n trigger : function trigger(eventNames){\n var self = this;\n var args = [].slice.call(arguments, 1);\n\n _.forEach(getEventNames(eventNames), function(eventName){\n var ns = getNamespace(eventName);\n var name = getName(eventName);\n\n //check which ns needs to be executed and then merge the handlers to be executed\n var mergedHandlers = _(eventHandlers)\n .filter(function(nsHandlers, namespace){\n return nsHandlers[name] && (ns === globalNs || ns === namespace);\n })\n .reduce(function(acc, nsHandlers){\n acc.before = acc.before.concat(nsHandlers[name].before);\n acc.between = acc.between.concat(nsHandlers[name].between);\n acc.after = acc.after.concat(nsHandlers[name].after);\n return acc;\n }, getHandlerObject());\n\n if(mergedHandlers){\n\n //if there is something in before we delay the execution\n if(mergedHandlers.before.length){\n createAsyncCallstack(mergedHandlers.before, self, args, _.partial(triggerEvent, mergedHandlers));\n } else {\n triggerEvent(mergedHandlers);\n }\n }\n });\n\n /**\n * Execute the given event handlers (between and then after)\n *\n * @private\n * @param {Object} handlers - the event handler object to execute\n */\n function triggerEvent(handlers){\n //trigger the event handlers\n _.forEach(handlers.between, function(handler){\n handler.apply(self, args);\n });\n\n //trigger the after event handlers if applicable\n _.forEach(handlers.after, function(handler){\n handler.apply(self, args);\n });\n }\n\n return this;\n },\n\n /**\n * Register a callback that is executed before the given event name\n * Provides an opportunity to cancel the execution of the event if one of the returned value is false\n *\n * @this the target\n * @param {String} eventName\n * @returns {Object} the target object\n */\n before : function before(eventNames, handler){\n if(_.isFunction(handler)) {\n _.forEach(getEventNames(eventNames), function(eventName){\n getHandlers(eventName, 'before').push(handler);\n });\n }\n return this;\n },\n\n /**\n * Register a callback that is executed after the given event name\n * The handlers will all be executed, no matter what\n *\n * @this the target\n * @param {String} eventName\n * @returns {Object} the target object\n */\n after : function after(eventNames, handler){\n if(_.isFunction(handler)) {\n _.forEach(getEventNames(eventNames), function(eventName){\n getHandlers(eventName, 'after').push(handler);\n });\n }\n return this;\n }\n };\n\n target = target || {};\n\n if(logger){\n //try to get something that looks like a name, an id or generate one only for logging purposes\n targetName = target.name || target.id || target.serial || uuid(6);\n }\n\n _(eventApi).functions().forEach(function(method){\n target[method] = function delegate(){\n var args = [].slice.call(arguments);\n if(logger && logger.debug){\n logger.debug.apply(logger, [targetName, method].concat(args));\n }\n return eventApi[method].apply(target, args);\n };\n });\n\n return target;\n }\n\n return eventifier;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('core/communicator',[\n 'lodash',\n 'core/promise',\n 'core/providerRegistry',\n 'core/delegator',\n 'core/eventifier'\n], function (_, Promise, providerRegistry, delegator, eventifier) {\n 'use strict';\n\n /**\n * Some default config values\n * @type {Object}\n * @private\n */\n var defaults = {\n timeout: 30 * 1000\n };\n\n /**\n * Creates a communicator implementation.\n * The communicator relies on a provider to execute the actions.\n * Most of the delegated methods must return promises.\n *\n * Some standard channels are reserved, and must be implemented by the providers:\n * - error: to carry on error purpose messages\n * - malformed: to carry on malformed received messages\n *\n * @param {String} providerName - The name of the provider instance,\n * which MUST be defined before through a `.registerProvider()` call.\n * @param {Object} [config] - Optional config set\n * @param {String} [config.service] - The address of the remote service to request\n * @param {Number} [config.timeout] - The communication timeout, in milliseconds (default: 30000)\n * @returns {communicator}\n */\n function communicatorFactory(providerName, config) {\n\n /**\n * The communicator config set\n * @type {Object}\n */\n var extendedConfig = _(config || {}).defaults(defaults).value();\n\n /**\n * The communicator implementation\n * @type {Object}\n */\n var communicator;\n\n /**\n * The function used to delegate the calls from the API to the provider.\n * @type {Function}\n */\n var delegate;\n\n /**\n * The current states of the communicator\n * @type {Object}\n */\n var states = {};\n\n /**\n * The selected communication provider\n * @type {Object}\n */\n var provider = communicatorFactory.getProvider(providerName);\n\n // creates the implementation by setting an API and delegating calls to the provider\n communicator = eventifier({\n /**\n * Initializes the communication implementation.\n * Sets the `ready` state.\n * @returns {Promise} The delegated provider's method must return a promise\n * @fires init\n * @fires ready\n */\n init: function init() {\n var self = this;\n\n if (this.getState('ready')) {\n return Promise.resolve();\n }\n\n return delegate('init')\n .then(function () {\n self.setState('ready')\n .trigger('ready');\n });\n },\n\n /**\n * Tears down the communication implementation.\n * Clears the states.\n * @returns {Promise} The delegated provider's method must return a promise\n * @fires destroy\n * @fires destroyed\n */\n destroy: function destroy() {\n var self = this;\n var stepPromise;\n\n if (self.getState('open')) {\n stepPromise = self.close();\n } else {\n stepPromise = Promise.resolve();\n }\n\n return stepPromise\n .then(function () {\n return delegate('destroy')\n .then(function () {\n self.trigger('destroyed');\n states = {};\n })\n });\n },\n\n /**\n * Opens the connection.\n * Sets the `open` state.\n * @returns {Promise} The delegated provider's method must return a promise\n * @fires open\n * @fires opened\n */\n open: function open() {\n var self = this;\n\n if (this.getState('open')) {\n return Promise.resolve();\n }\n\n return delegate('open')\n .then(function () {\n self.setState('open')\n .trigger('opened');\n });\n },\n\n /**\n * Closes the connection.\n * Clears the `open` state.\n * @returns {Promise} The delegated provider's method must return a promise\n * @fires close\n * @fires closed\n */\n close: function close() {\n var self = this;\n return delegate('close')\n .then(function () {\n self.setState('open', false)\n .trigger('closed');\n });\n },\n\n /**\n * Sends an messages through the communication implementation.\n * @param {String} channel - The name of the communication channel to use\n * @param {Object} message - The message to send\n * @returns {Promise} The delegated provider's method must return a promise\n * @fires send\n * @fires sent\n */\n send: function send(channel, message) {\n var self = this;\n\n if (!this.getState('open')) {\n return Promise.reject();\n }\n\n return delegate('send', channel, message)\n .then(function (response) {\n self.trigger('sent', channel, message, response);\n return Promise.resolve(response);\n });\n },\n\n /**\n * Registers a listener on a particular channel\n * @param {String} name - The name of the channel to listen\n * @param {Function} handler - The listener callback\n * @returns {communicator}\n * @throws TypeError if the name is missing or the handler is not a callback\n */\n channel: function channel(name, handler) {\n if (!_.isString(name) || name.length <= 0) {\n throw new TypeError('A channel must have a name');\n }\n\n if (!_.isFunction(handler)) {\n throw new TypeError('A handler must be attached to a channel');\n }\n\n this.on('channel-' + name, handler);\n\n return this;\n },\n\n /**\n * Gets the implementation config set\n * @returns {Object}\n */\n getConfig: function getConfig() {\n return extendedConfig;\n },\n\n /**\n * Sets a state\n * @param {String} name - The name of the state to set\n * @param {Boolean} [state] - The state itself (default: true)\n * @returns {communicator}\n */\n setState: function setState(name, state) {\n if (_.isUndefined(state)) {\n state = true;\n }\n states[name] = !!state;\n return this;\n },\n\n /**\n * Gets a state\n * @param {String} name - The name of the state to get\n * @returns {Boolean}\n */\n getState: function getState(name) {\n return !!states[name];\n }\n });\n\n // all messages comes through a message event, then each is dispatched to the right channel\n communicator.on('message', function (channel, message) {\n this.trigger('channel-' + channel, message);\n });\n\n // use a delegate function to make a bridge between API and provider\n delegate = delegator(communicator, provider, {name: 'communicator'});\n\n return communicator;\n }\n\n return providerRegistry(communicatorFactory);\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Defines a polling manager with flow control: schedules action to run periodically.\n * Ensures each polling step is done before scheduling the next one, even if the action is asynchronous.\n * Handles synchronous as wells as asynchronous actions.\n * The scheduling can be paused/resumed any time, or the next schedule can be forced to occurs immediately.\n *\n * @example <caption>Simple synchronous polling</caption>\n * // direct assignment\n * var poll = polling({\n * action: function() {\n * // something to do at interval\n *\n * // you can stop the polling immediately at this point is needed, using:\n * // this.stop();\n * },\n * interval: 50, // each action will occur 50 ms after the last step\n * autoStart: true // start immediately\n * });\n *\n * // explicit assignment\n * var poll = polling();\n *\n * poll.setAction(function() {\n * // something to do at interval\n * });\n *\n * // each action will occur 50 ms after the last step\n * poll.setInterval(50);\n *\n * // start the polling\n * poll.start();\n *\n * // stop after a period of time\n * setTimeout(function() {\n * poll.stop();\n * }, 1000);\n *\n * @example <caption>Asynchronous polling</caption>\n * // direct assignment\n * var poll = polling({\n * action: function() {\n * // get into asynchronous mode\n * var async = this.async();\n *\n * // defer the next schedule\n * setTimeout(function() {\n * if (needToContinue) {\n * // continue the polling\n * async.resolve();\n * } else {\n * // stop immediately the polling\n * async.reject();\n * }\n * }, 100);\n * },\n * interval: 50, // each action will occur 50 ms after the last step\n * autoStart: true // start immediately\n * });\n *\n * // explicit assignment\n * var poll = polling();\n *\n * // you can also change the 'this' of each action\n * var anObject = { foo: 'bar' };\n * poll.setContext(anObject);\n *\n * poll.setAction(function(p) {\n * // get into asynchronous mode,\n * // but as the context is not the polling manager\n * // you need to use the argument\n * var async = p.async();\n *\n * // defer the next schedule\n * setTimeout(function() {\n * if (needToContinue) {\n * // continue the polling\n * async.resolve();\n * } else {\n * // stop immediately the polling\n * async.reject();\n * }\n * }, 100);\n * });\n *\n * // each action will occur 50 ms after the last step\n * poll.setInterval(50);\n *\n * // start the polling\n * poll.start();\n *\n * // stop after a period of time\n * setTimeout(function() {\n * poll.stop();\n * }, 1000);\n *\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('core/polling',[\n 'jquery',\n 'lodash',\n 'core/promise',\n 'core/eventifier'\n], function ($, _, Promise, eventifier) {\n 'use strict';\n\n /**\n * The default value of the polling interval\n * @type {Number}\n * @private\n */\n var _defaultInterval = 60 * 1000;\n\n /**\n * Create a polling manager for a particular action\n * @param {Object|Function} [config] - A config object, or the action called on each iteration\n * @param {Function} [config.action] - The callback action called on each iteration, the polling instance is provided as first argument\n * @param {Number|String} [config.interval] - The minimal time between two iterations\n * @param {Number|String} [config.max] - Set a max number of iterations, after what the polling is stopped.\n * @param {Boolean} [config.autoStart] - Whether or not the polling should start immediately\n * @param {Object} [config.context] - An optional context to apply on each action call\n * @returns {polling}\n */\n var pollingFactory = function pollingFactory(config) {\n var timer, promise, interval, max, iter, action, context, autoStart;\n var state = {};\n\n /**\n * Fires a new timer\n */\n var startTimer = function startTimer() {\n timer = setTimeout(iteration, interval);\n state.stopped = false;\n state.pending = true;\n };\n\n /**\n * Stops the current timer\n */\n var stopTimer = function stopTimer() {\n clearTimeout(timer);\n timer = null;\n state.stopped = true;\n state.pending = false;\n };\n\n /**\n * Runs an iteration of the polling loop\n */\n var iteration = function iteration() {\n // prevent more iterations than needed to be ran\n if (max && iter >= max) {\n // breaks the polling\n polling.stop();\n return;\n }\n\n // count the iteration\n iter = (iter || 0) + 1;\n state.processing = true;\n state.pending = false;\n\n /**\n * Notifies the action is about to be called\n * @event polling#call\n */\n polling.trigger('call');\n\n // process the action in the right context\n action.call(context, polling);\n\n // next iteration in synchronous mode\n if (!promise && !state.stopped) {\n state.processing = false;\n startTimer();\n }\n };\n\n /**\n * Defines the polling manager\n * @type {Object}\n */\n var polling = {\n /**\n * Gets the current action into asynchronous mode.\n * The next iteration won't be executed until the resolve method has been called.\n * However if the reject method is called, the polling is then stopped!\n * @returns {Object} Returns a promise resolver that provides resolve() and reject() methods\n */\n async : function async() {\n var resolver = {};\n\n // create a promise and extract the control callbacks\n promise = new Promise(function(resolve, reject) {\n resolver.resolve = resolve;\n resolver.reject = reject;\n });\n\n // directly install the pending actions\n promise\n .then(function() {\n promise = null;\n state.processing = false;\n\n // next iteration only if allowed\n if (!state.stopped) {\n startTimer();\n }\n\n /**\n * Notifies the polling continues\n * @event polling#resolved\n */\n polling.trigger('resolved');\n })\n .catch(function() {\n promise = null;\n state.processing = false;\n\n // breaks the polling\n polling.stop();\n\n /**\n * Notifies the polling has been halted\n * @event polling#rejected\n */\n polling.trigger('rejected');\n });\n\n /**\n * Notifies the current action is asynchronous\n * @event polling#async\n * @param {Object} resolver\n * @param {Function} resolver.resolve\n * @param {Function} resolver.reject\n */\n polling.trigger('async', resolver);\n\n return resolver;\n },\n\n /**\n * Forces the next iteration to be executed now, unless it is already running.\n * If the polling has been stopped, start it again.\n * @returns {polling}\n */\n next : function next() {\n var _next;\n\n // reset the counter if the polling is stopped\n if (state.stopped) {\n iter = 0;\n }\n\n // ensure the scheduling if off\n stopTimer();\n\n // prevent more iterations than needed to be ran\n if (max && iter >= max) {\n return this;\n }\n\n // the next() method can be called either to force a next iteration or to start immediately the action\n // so we need to ensure the schedule is not blocked\n state.stopped = false;\n\n if (!promise) {\n /**\n * Notifies the action\n * @event polling#next\n * @param {polling} polling\n */\n this.trigger('next');\n\n iteration();\n } else {\n // as a promise is still pending, ensure a call to next() will be processed after\n _next = this.next.bind(this);\n promise.then(_next).catch(_next);\n }\n return this;\n },\n\n /**\n * Starts the polling if it is not currently running\n * @returns {polling}\n */\n start : function start() {\n if (!timer) {\n iter = 0;\n startTimer();\n\n /**\n * Notifies the start\n * @event polling#start\n */\n this.trigger('start');\n }\n return this;\n },\n\n /**\n * Stops the polling if it is currently running\n * @returns {polling}\n */\n stop : function stop() {\n stopTimer();\n\n /**\n * Notifies the stop\n * @event polling#stop\n */\n this.trigger('stop');\n\n return this;\n },\n\n /**\n * Sets the minimum time interval between two actions\n * @param {Number|String} value\n * @returns {polling}\n */\n setInterval : function setInterval(value) {\n interval = Math.abs(parseInt(value, 10) || _defaultInterval);\n\n /**\n * Notifies the interval change\n * @event polling#setinterval\n * @param {Number} interval\n */\n this.trigger('setinterval', interval);\n\n return this;\n },\n\n /**\n * Gets the minimum time interval between two actions\n * @returns {Number}\n */\n getInterval : function getInterval() {\n return interval;\n },\n\n /**\n * Sets the polling action\n * @param {Function} fn\n * @returns {polling}\n */\n setAction : function setAction(fn) {\n action = fn;\n\n /**\n * Notifies the action change\n * @event polling#setaction\n * @param {Function} action\n */\n this.trigger('setaction', action);\n\n return this;\n },\n\n /**\n * Gets the polling action\n * @returns {Function}\n */\n getAction : function getAction() {\n return action;\n },\n\n /**\n * Sets the context applied on each action call\n * @param {Object} ctx\n * @returns {polling}\n */\n setContext : function setContext(ctx) {\n context = ctx || this;\n\n /**\n * Notifies the context change\n * @event polling#setcontext\n * @param {Object} context\n */\n this.trigger('setcontext', ctx);\n\n return this;\n },\n\n /**\n * Gets the context applied on each action call\n * @returns {Object}\n */\n getContext : function getContext() {\n return context;\n },\n\n\n /**\n * Sets the max number of polling occurrences\n * @param {Number} value\n * @returns {polling}\n */\n setMax : function setMax(value) {\n max = Math.abs(parseInt(value, 10) || 0);\n return this;\n },\n\n /**\n * Gets the max number of polling occurrences\n * @returns {Number}\n */\n getMax : function getMax() {\n return max;\n },\n\n /**\n * Gets the number of ran iterations\n * @returns {Number}\n */\n getIteration : function getIteration() {\n return iter || 0;\n },\n\n /**\n * Checks if the manager is in a particular state\n * @param {String} stateName The name of the state to check. Possible values are:\n * - stopped: the polling manager is stopped, and won't process action until restart\n * - pending: the polling manager has scheduled an action an is waiting for it processing\n * - processing: the polling manager is currently processing an action and wait for its completion\n * @returns {Boolean}\n */\n is : function is(stateName) {\n return !!state[stateName];\n }\n };\n\n eventifier(polling);\n\n // some defaults\n interval = _defaultInterval;\n context = polling;\n action = null;\n state.stopped = true;\n autoStart = false;\n iter = 0;\n\n // maybe only the action is provided\n if (_.isFunction(config)) {\n polling.setAction(config);\n config = null;\n }\n\n // loads the config\n if (_.isObject(config)) {\n polling.setAction(config.action);\n polling.setInterval(config.interval || arguments[1]);\n polling.setContext(config.context);\n polling.setMax(config.max);\n autoStart = !!config.autoStart;\n }\n\n if (autoStart) {\n polling.start();\n }\n\n return polling;\n };\n\n return pollingFactory;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('core/tokenHandler',[],function () {\n 'use strict';\n\n /**\n * Stores the security token\n * @param {String} initialToken\n * @returns {tokenHandler}\n */\n function tokenHandlerFactory(initialToken) {\n var token = initialToken || null;\n\n return {\n /**\n * Gets the current security token.\n * Once the token is got, it is erased from the memory and a new token must be provided.\n * @returns {String}\n */\n getToken: function getToken() {\n var currentToken = token;\n token = null;\n return currentToken;\n },\n\n /**\n * Sets the current security token\n * @param {String} newToken\n * @returns {Object} - this\n */\n setToken: function setToken(newToken) {\n token = newToken;\n return this;\n }\n };\n }\n\n return tokenHandlerFactory;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('core/communicator/poll',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/communicator',\n 'core/polling',\n 'core/promise',\n 'core/tokenHandler'\n], function ($, _, __, communicator, pollingFactory, Promise, tokenHandlerFactory) {\n 'use strict';\n\n /**\n * Some default config values\n * @type {Object}\n * @private\n */\n var defaults = {\n timeout: 30 * 1000,\n interval: 30 * 1000,\n throttle: 1000\n };\n\n /**\n * Defines a communication implementation based on remote service polling.\n *\n * The remote service must accept JSON payload using this format:\n * ```\n * [{\n * channel: \"a channel's name\",\n * message: {a: \"message\", with: \"some data\"}\n * }, {\n * ...\n * ]\n * ```\n *\n * The remote service must respond using JSON notation like this:\n * ```\n * {\n * responses: [\n * \"some responses\",\n * \"indexed with the same order as the request\"\n * ],\n * messages: [{\n * channel: \"a channel's name\",\n * message: {a: \"message\", with: \"some data\"}\n * }, {\n * ...\n * }]\n * }\n * ```\n *\n * A security token can be added, in the header `X-Auth-Token` for the request and in the `token` field for the response.\n *\n * Business logic errors can be implemented using the `error` *channel*.\n * Network errors are handled by the AJAX implementation, and are forwarded to the `error` *event*.\n * Additional network error handling can be achieve by the rejected send promises.\n *\n * Malformed messages will be issued through the `malformed` channel\n *\n * @param {String} config.service - The address of the remote service to request\n * @param {Number} [config.timeout] - The communication timeout, in milliseconds (default: 30000)\n * @param {Number} [config.interval] - The poll interval, in milliseconds (default: 30000)\n * @param {Number} [config.throttle] - Gather several calls to send() by throttle period, in milliseconds (default: 1000)\n * @param {String} [config.token] - An optional initial security token\n * @type {Object}\n */\n var pollProvider = {\n /**\n * Initializes the communication implementation\n * @returns {Promise}\n */\n init: function init() {\n var self = this;\n var config = _.defaults(this.getConfig(), defaults);\n var tokenHandler = tokenHandlerFactory(config.token);\n\n // validate the config\n if (!config.service) {\n // a remote service is needed to build a long poll communication\n return Promise.reject(new Error('You must provide a service URL'));\n }\n\n // there is no message in the queue at this moment\n this.messagesQueue = [];\n\n // prepare the polling of the remote service\n // it will be started by the open() method\n this.polling = pollingFactory({\n interval: config.interval,\n autoStart: false,\n action: function communicatorPoll() {\n var async = this.async();\n var headers = {};\n var token = tokenHandler.getToken();\n\n // split promises and their related messages\n // then reset the list of pending messages\n var promises = [];\n var request = _.map(self.messagesQueue, function (msg) {\n promises.push(msg.promise);\n return {\n channel: msg.channel,\n message: msg.message\n };\n });\n self.messagesQueue = [];\n\n if (token) {\n headers['X-Auth-Token'] = token;\n }\n\n // send messages to the remote service\n $.ajax({\n url: config.service,\n type: 'POST',\n cache: false,\n headers: headers,\n data: JSON.stringify(request),\n async: true,\n dataType: 'json',\n contentType: 'application/json',\n timeout: config.timeout\n })\n // when the request succeeds...\n .done(function (response) {\n response = response || {};\n\n // receive optional security token\n if (response.token) {\n tokenHandler.setToken(response.token);\n }\n\n // resolve each message promises\n _.forEach(promises, function (promise, idx) {\n promise.resolve(response.responses && response.responses[idx]);\n });\n\n // receive server messages\n _.forEach(response.messages, function (msg) {\n if (msg.channel) {\n self.trigger('message', msg.channel, msg.message);\n } else {\n self.trigger('message', 'malformed', msg);\n }\n });\n\n self.trigger('receive', response);\n\n async.resolve();\n })\n\n // when the request fails...\n .fail(function (jqXHR, textStatus, errorThrown) {\n var error = {\n source: 'network',\n purpose: 'communicator',\n context: this,\n code: jqXHR.status,\n type: textStatus || 'error',\n message: errorThrown || __('An error occurred!')\n };\n\n // reset the security token on error\n if (token) {\n tokenHandler.setToken(token);\n }\n\n // reject all message promises\n _.forEach(promises, function (promise) {\n promise.reject(error);\n });\n\n self.trigger('error', error);\n\n // the request promise must be resolved, even if failed, to continue the polling\n async.resolve();\n });\n }\n });\n\n // adjust the message sending by throttle periods\n this.throttledSend = _.throttle(function () {\n self.polling.next();\n }, config.throttle);\n\n return Promise.resolve();\n },\n\n /**\n * Tears down the communication implementation\n * @returns {Promise}\n */\n destroy: function destroy() {\n var self = this;\n var stopped;\n\n if (this.polling) {\n stopped = new Promise(function(resolve) {\n self.polling.off('stop.api').on('stop.api', resolve).stop();\n });\n } else {\n stopped = Promise.resolve();\n }\n\n return stopped.then(function() {\n self.polling = self.throttledSend = self.messagesQueue = null;\n });\n },\n\n /**\n * Opens the connection with the remote service.\n * @returns {Promise}\n */\n open: function open() {\n var self = this;\n var started;\n\n if (this.polling) {\n started = new Promise(function(resolve) {\n self.polling.off('next.api').on('next.api', resolve).start().next();\n });\n } else {\n started = Promise.reject(new Error('The communicator has not been properly initialized'));\n }\n\n return started;\n },\n\n /**\n * Closes the connection with the remote service.\n * @returns {Promise}\n */\n close: function close() {\n var self = this;\n var stopped;\n\n if (this.polling) {\n stopped = new Promise(function(resolve) {\n self.polling.off('stop.api').on('stop.api', resolve).stop();\n });\n } else {\n stopped = Promise.reject(new Error('The communicator has not been properly initialized'));\n }\n\n return stopped;\n },\n\n /**\n * Sends an messages through the communication implementation\n * @param {String} channel - The name of the communication channel to use\n * @param {Object} message - The message to send\n * @returns {Promise}\n */\n send: function send(channel, message) {\n // queue the message, it will be sent soon\n var pending = {\n channel: channel,\n message: message\n };\n var promise = new Promise(function(resolve, reject) {\n pending.promise = {\n resolve: resolve,\n reject: reject\n };\n });\n this.messagesQueue.push(pending);\n\n // force a send in the next throttle period\n this.throttledSend();\n\n return promise;\n }\n };\n\n return pollProvider;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n * Loading bar a.k.a. Knight Rider\n *\n * @author dieter <dieter@taotesting.com>\n */\ndefine('layout/loading-bar',['jquery'],\n function ($) {\n\n 'use strict';\n\n /**\n * the TAO header can have three different forms\n * 1. version warning on alpha/beta + main navi\n * 2. main navi only on regular version\n * 3. nothing in the case of LTI\n *\n * @param headerElements\n */\n function getHeaderHeight(headerElements){\n var headerHeight = 0, $element;\n for($element in headerElements) {\n if(headerElements[$element].length && headerElements[$element].is(':visible')) {\n headerHeight += headerElements[$element].outerHeight();\n }\n }\n return headerHeight;\n }\n\n var $loadingBar = $('.loading-bar'),\n originalHeight = $loadingBar.height(),\n $win = $(window),\n $doc = $(document),\n $contentWrap = $('.content-wrap'),\n headerElements = {\n $versionWarning: $contentWrap.find('.version-warning'),\n $header: $contentWrap.find('header:first()')\n },\n headerHeight = getHeaderHeight(headerElements);\n \n $win.on('scroll.loadingbar', function () {\n if(!$loadingBar.hasClass('loading')) {\n return;\n }\n // status of height would change for instance when version warning is hidden\n headerHeight = getHeaderHeight(headerElements);\n\n if (headerHeight <= $win.scrollTop()) {\n $loadingBar.addClass('fixed');\n }\n else {\n $loadingBar.removeClass('fixed');\n }\n $loadingBar.height($doc.height());\n });\n\n return {\n start: function () {\n if($loadingBar.hasClass('loading')) {\n $loadingBar.stop();\n }\n $loadingBar.addClass('loading');\n $win.trigger('scroll.loadingbar');\n },\n stop: function () {\n $loadingBar.removeClass('loading fixed').height(originalHeight);\n }\n };\n });\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n *\n */\n\n/**\n * Escapes -\\/\\\\^$*+?.()|[\\]{} inside a string. Use when\n * concatenating a string for usage in new RegExp().\n *\n * @author dieter <dieter@taotesting.com>\n */\ndefine('util/regexEscape',[\n\n], function () {\n 'use strict';\n\n return function(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n *\n */\n\n/**\n *\n * @author dieter <dieter@taotesting.com>\n */\ndefine('util/wrapLongWords',[\n 'util/regexEscape'\n], function (regexEscape) {\n 'use strict';\n\n /**\n * Wrap very long strings after n characters\n *\n * @param str\n * @param threshold number of characters to break after\n * @returns {string}\n */\n function wrapLongWords(str, threshold) {\n // add whitespaces to provoke line breaks before HTML tags\n str = str.toString().replace(/([\\w])</g, '$1 <');\n\n var chunkExp = new RegExp('.{1,' + threshold + '}', 'g'),\n longWords = str.match(new RegExp('[\\\\S]{' + threshold + ',}', 'g')) || [],\n i = longWords.length,\n cut;\n\n while(i--) {\n cut = longWords[i].match(chunkExp).join(' ');\n str = str.replace(new RegExp(regexEscape(longWords[i]), 'g'), cut);\n }\n return str;\n }\n\n return wrapLongWords;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n *\n */\n\n/**\n *\n * @author dieter <dieter@taotesting.com>\n */\ndefine('util/encode',[\n\n], function () {\n 'use strict';\n\n var _reQuot = /\"/g;\n var _reApos = /'/g;\n\n /**\n * Encodes an HTML string to be safely displayed without code interpretation\n *\n * @param {String} html\n * @returns {String}\n */\n var encodeHTML = function encodeHTML(html) {\n // @see http://tinyurl.com/ko75kph\n return document.createElement('a').appendChild(\n document.createTextNode(html)).parentNode.innerHTML;\n };\n\n /**\n * Encodes an HTML string to be safely use inside an attribute\n *\n * @param {String} html\n * @returns {String}\n */\n var encodeAttribute = function encodeAttribute(html) {\n // use replaces chain instead of unified replace with map for performances reasons\n // @see http://jsperf.com/htmlencoderegex/68\n return encodeHTML(html).replace(_reQuot, '&quot;').replace(_reApos, '&apos;');\n };\n\n return {\n html: encodeHTML,\n attribute: encodeAttribute\n };\n});\n\n","/*!\n\n handlebars v1.3.0\n\nCopyright (C) 2011 by Yehuda Katz\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n@license\n*/\ndefine('handlebars',[],function(){\n/* exported Handlebars */\nvar Handlebars = (function() {\n// handlebars/safe-string.js\nvar __module4__ = (function() {\n \"use strict\";\n var __exports__;\n // Build out our basic SafeString type\n function SafeString(string) {\n this.string = string;\n }\n\n SafeString.prototype.toString = function() {\n return \"\" + this.string;\n };\n\n __exports__ = SafeString;\n return __exports__;\n})();\n\n// handlebars/utils.js\nvar __module3__ = (function(__dependency1__) {\n \"use strict\";\n var __exports__ = {};\n /*jshint -W004 */\n var SafeString = __dependency1__;\n\n var escape = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\",\n \">\": \"&gt;\",\n '\"': \"&quot;\",\n \"'\": \"&#x27;\",\n \"`\": \"&#x60;\"\n };\n\n var badChars = /[&<>\"'`]/g;\n var possible = /[&<>\"'`]/;\n\n function escapeChar(chr) {\n return escape[chr] || \"&amp;\";\n }\n\n function extend(obj, value) {\n for(var key in value) {\n if(Object.prototype.hasOwnProperty.call(value, key)) {\n obj[key] = value[key];\n }\n }\n }\n\n __exports__.extend = extend;var toString = Object.prototype.toString;\n __exports__.toString = toString;\n // Sourced from lodash\n // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n var isFunction = function(value) {\n return typeof value === 'function';\n };\n // fallback for older versions of Chrome and Safari\n if (isFunction(/x/)) {\n isFunction = function(value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n }\n var isFunction;\n __exports__.isFunction = isFunction;\n var isArray = Array.isArray || function(value) {\n return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false;\n };\n __exports__.isArray = isArray;\n\n function escapeExpression(string) {\n // don't escape SafeStrings, since they're already safe\n if (string instanceof SafeString) {\n return string.toString();\n } else if (!string && string !== 0) {\n return \"\";\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = \"\" + string;\n\n if(!possible.test(string)) { return string; }\n return string.replace(badChars, escapeChar);\n }\n\n __exports__.escapeExpression = escapeExpression;function isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n __exports__.isEmpty = isEmpty;\n return __exports__;\n})(__module4__);\n\n// handlebars/exception.js\nvar __module5__ = (function() {\n \"use strict\";\n var __exports__;\n\n var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\n function Exception(message, node) {\n var line;\n if (node && node.firstLine) {\n line = node.firstLine;\n\n message += ' - ' + line + ':' + node.firstColumn;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n if (line) {\n this.lineNumber = line;\n this.column = node.firstColumn;\n }\n }\n\n Exception.prototype = new Error();\n\n __exports__ = Exception;\n return __exports__;\n})();\n\n// handlebars/base.js\nvar __module2__ = (function(__dependency1__, __dependency2__) {\n \"use strict\";\n var __exports__ = {};\n var Utils = __dependency1__;\n var Exception = __dependency2__;\n\n var VERSION = \"1.3.0\";\n __exports__.VERSION = VERSION;var COMPILER_REVISION = 4;\n __exports__.COMPILER_REVISION = COMPILER_REVISION;\n var REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '>= 1.0.0'\n };\n __exports__.REVISION_CHANGES = REVISION_CHANGES;\n var isArray = Utils.isArray,\n isFunction = Utils.isFunction,\n toString = Utils.toString,\n objectType = '[object Object]';\n\n function HandlebarsEnvironment(helpers, partials) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n\n registerDefaultHelpers(this);\n }\n\n __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: logger,\n log: log,\n\n registerHelper: function(name, fn, inverse) {\n if (toString.call(name) === objectType) {\n if (inverse || fn) { throw new Exception('Arg not supported with multiple helpers'); }\n Utils.extend(this.helpers, name);\n } else {\n if (inverse) { fn.not = inverse; }\n this.helpers[name] = fn;\n }\n },\n\n registerPartial: function(name, str) {\n if (toString.call(name) === objectType) {\n Utils.extend(this.partials, name);\n } else {\n this.partials[name] = str;\n }\n }\n };\n\n function registerDefaultHelpers(instance) {\n instance.registerHelper('helperMissing', function(arg) {\n if(arguments.length === 2) {\n return undefined;\n } else {\n throw new Exception(\"Missing helper: '\" + arg + \"'\");\n }\n });\n\n instance.registerHelper('blockHelperMissing', function(context, options) {\n var inverse = options.inverse || function() {}, fn = options.fn;\n\n if (isFunction(context)) { context = context.call(this); }\n\n if(context === true) {\n return fn(this);\n } else if(context === false || context == null) {\n return inverse(this);\n } else if (isArray(context)) {\n if(context.length > 0) {\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n return fn(context);\n }\n });\n\n instance.registerHelper('each', function(context, options) {\n var fn = options.fn, inverse = options.inverse;\n var i = 0, ret = \"\", data;\n\n if (isFunction(context)) { context = context.call(this); }\n\n if (options.data) {\n data = createFrame(options.data);\n }\n\n if(context && typeof context === 'object') {\n if (isArray(context)) {\n for(var j = context.length; i<j; i++) {\n if (data) {\n data.index = i;\n data.first = (i === 0);\n data.last = (i === (context.length-1));\n }\n ret = ret + fn(context[i], { data: data });\n }\n } else {\n for(var key in context) {\n if(context.hasOwnProperty(key)) {\n if(data) { \n data.key = key; \n data.index = i;\n data.first = (i === 0);\n }\n ret = ret + fn(context[key], {data: data});\n i++;\n }\n }\n }\n }\n\n if(i === 0){\n ret = inverse(this);\n }\n\n return ret;\n });\n\n instance.registerHelper('if', function(conditional, options) {\n if (isFunction(conditional)) { conditional = conditional.call(this); }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if ((!options.hash.includeZero && !conditional) || Utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function(conditional, options) {\n return instance.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn, hash: options.hash});\n });\n\n instance.registerHelper('with', function(context, options) {\n if (isFunction(context)) { context = context.call(this); }\n\n if (!Utils.isEmpty(context)) return options.fn(context);\n });\n\n instance.registerHelper('log', function(context, options) {\n var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;\n instance.log(level, context);\n });\n }\n\n var logger = {\n methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' },\n\n // State enum\n DEBUG: 0,\n INFO: 1,\n WARN: 2,\n ERROR: 3,\n level: 3,\n\n // can be overridden in the host environment\n log: function(level, obj) {\n if (logger.level <= level) {\n var method = logger.methodMap[level];\n if (typeof console !== 'undefined' && console[method]) {\n console[method].call(console, obj);\n }\n }\n }\n };\n __exports__.logger = logger;\n function log(level, obj) { logger.log(level, obj); }\n\n __exports__.log = log;var createFrame = function(object) {\n var obj = {};\n Utils.extend(obj, object);\n return obj;\n };\n __exports__.createFrame = createFrame;\n return __exports__;\n})(__module3__, __module5__);\n\n// handlebars/runtime.js\nvar __module6__ = (function(__dependency1__, __dependency2__, __dependency3__) {\n \"use strict\";\n var __exports__ = {};\n var Utils = __dependency1__;\n var Exception = __dependency2__;\n var COMPILER_REVISION = __dependency3__.COMPILER_REVISION;\n var REVISION_CHANGES = __dependency3__.REVISION_CHANGES;\n\n function checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = COMPILER_REVISION;\n\n if (compilerRevision !== currentRevision) {\n if (compilerRevision < currentRevision) {\n var runtimeVersions = REVISION_CHANGES[currentRevision],\n compilerVersions = REVISION_CHANGES[compilerRevision];\n throw new Exception(\"Template was precompiled with an older version of Handlebars than the current runtime. \"+\n \"Please update your precompiler to a newer version (\"+runtimeVersions+\") or downgrade your runtime to an older version (\"+compilerVersions+\").\");\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new Exception(\"Template was precompiled with a newer version of Handlebars than the current runtime. \"+\n \"Please update your runtime to a newer version (\"+compilerInfo[1]+\").\");\n }\n }\n }\n\n __exports__.checkRevision = checkRevision;// TODO: Remove this line and break up compilePartial\n\n function template(templateSpec, env) {\n if (!env) {\n throw new Exception(\"No environment passed to template\");\n }\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as psuedo-supported APIs.\n var invokePartialWrapper = function(partial, name, context, helpers, partials, data) {\n var result = env.VM.invokePartial.apply(this, arguments);\n if (result != null) { return result; }\n\n if (env.compile) {\n var options = { helpers: helpers, partials: partials, data: data };\n partials[name] = env.compile(partial, { data: data !== undefined }, env);\n return partials[name](context, options);\n } else {\n throw new Exception(\"The partial \" + name + \" could not be compiled when running in runtime-only mode\");\n }\n };\n\n // Just add water\n var container = {\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n programs: [],\n program: function(i, fn, data) {\n var programWrapper = this.programs[i];\n if(data) {\n programWrapper = program(i, fn, data);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = program(i, fn);\n }\n return programWrapper;\n },\n merge: function(param, common) {\n var ret = param || common;\n\n if (param && common && (param !== common)) {\n ret = {};\n Utils.extend(ret, common);\n Utils.extend(ret, param);\n }\n return ret;\n },\n programWithDepth: env.VM.programWithDepth,\n noop: env.VM.noop,\n compilerInfo: null\n };\n\n return function(context, options) {\n options = options || {};\n var namespace = options.partial ? options : env,\n helpers,\n partials;\n\n if (!options.partial) {\n helpers = options.helpers;\n partials = options.partials;\n }\n var result = templateSpec.call(\n container,\n namespace, context,\n helpers,\n partials,\n options.data);\n\n if (!options.partial) {\n env.VM.checkRevision(container.compilerInfo);\n }\n\n return result;\n };\n }\n\n __exports__.template = template;function programWithDepth(i, fn, data /*, $depth */) {\n var args = Array.prototype.slice.call(arguments, 3);\n\n var prog = function(context, options) {\n options = options || {};\n\n return fn.apply(this, [context, options.data || data].concat(args));\n };\n prog.program = i;\n prog.depth = args.length;\n return prog;\n }\n\n __exports__.programWithDepth = programWithDepth;function program(i, fn, data) {\n var prog = function(context, options) {\n options = options || {};\n\n return fn(context, options.data || data);\n };\n prog.program = i;\n prog.depth = 0;\n return prog;\n }\n\n __exports__.program = program;function invokePartial(partial, name, context, helpers, partials, data) {\n var options = { partial: true, helpers: helpers, partials: partials, data: data };\n\n if(partial === undefined) {\n throw new Exception(\"The partial \" + name + \" could not be found\");\n } else if(partial instanceof Function) {\n return partial(context, options);\n }\n }\n\n __exports__.invokePartial = invokePartial;function noop() { return \"\"; }\n\n __exports__.noop = noop;\n return __exports__;\n})(__module3__, __module5__, __module2__);\n\n// handlebars.runtime.js\nvar __module1__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {\n \"use strict\";\n var __exports__;\n /*globals Handlebars: true */\n var base = __dependency1__;\n\n // Each of these augment the Handlebars object. No need to setup here.\n // (This is done to easily share code between commonjs and browse envs)\n var SafeString = __dependency2__;\n var Exception = __dependency3__;\n var Utils = __dependency4__;\n var runtime = __dependency5__;\n\n // For compatibility and usage outside of module systems, make the Handlebars object a namespace\n var create = function() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = SafeString;\n hb.Exception = Exception;\n hb.Utils = Utils;\n\n hb.VM = runtime;\n hb.template = function(spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n };\n\n var Handlebars = create();\n Handlebars.create = create;\n\n __exports__ = Handlebars;\n return __exports__;\n})(__module2__, __module4__, __module5__, __module3__, __module6__);\n\n// handlebars/compiler/ast.js\nvar __module7__ = (function(__dependency1__) {\n \"use strict\";\n var __exports__;\n var Exception = __dependency1__;\n\n function LocationInfo(locInfo){\n locInfo = locInfo || {};\n this.firstLine = locInfo.first_line;\n this.firstColumn = locInfo.first_column;\n this.lastColumn = locInfo.last_column;\n this.lastLine = locInfo.last_line;\n }\n\n var AST = {\n ProgramNode: function(statements, inverseStrip, inverse, locInfo) {\n var inverseLocationInfo, firstInverseNode;\n if (arguments.length === 3) {\n locInfo = inverse;\n inverse = null;\n } else if (arguments.length === 2) {\n locInfo = inverseStrip;\n inverseStrip = null;\n }\n\n LocationInfo.call(this, locInfo);\n this.type = \"program\";\n this.statements = statements;\n this.strip = {};\n\n if(inverse) {\n firstInverseNode = inverse[0];\n if (firstInverseNode) {\n inverseLocationInfo = {\n first_line: firstInverseNode.firstLine,\n last_line: firstInverseNode.lastLine,\n last_column: firstInverseNode.lastColumn,\n first_column: firstInverseNode.firstColumn\n };\n this.inverse = new AST.ProgramNode(inverse, inverseStrip, inverseLocationInfo);\n } else {\n this.inverse = new AST.ProgramNode(inverse, inverseStrip);\n }\n this.strip.right = inverseStrip.left;\n } else if (inverseStrip) {\n this.strip.left = inverseStrip.right;\n }\n },\n\n MustacheNode: function(rawParams, hash, open, strip, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"mustache\";\n this.strip = strip;\n\n // Open may be a string parsed from the parser or a passed boolean flag\n if (open != null && open.charAt) {\n // Must use charAt to support IE pre-10\n var escapeFlag = open.charAt(3) || open.charAt(2);\n this.escaped = escapeFlag !== '{' && escapeFlag !== '&';\n } else {\n this.escaped = !!open;\n }\n\n if (rawParams instanceof AST.SexprNode) {\n this.sexpr = rawParams;\n } else {\n // Support old AST API\n this.sexpr = new AST.SexprNode(rawParams, hash);\n }\n\n this.sexpr.isRoot = true;\n\n // Support old AST API that stored this info in MustacheNode\n this.id = this.sexpr.id;\n this.params = this.sexpr.params;\n this.hash = this.sexpr.hash;\n this.eligibleHelper = this.sexpr.eligibleHelper;\n this.isHelper = this.sexpr.isHelper;\n },\n\n SexprNode: function(rawParams, hash, locInfo) {\n LocationInfo.call(this, locInfo);\n\n this.type = \"sexpr\";\n this.hash = hash;\n\n var id = this.id = rawParams[0];\n var params = this.params = rawParams.slice(1);\n\n // a mustache is an eligible helper if:\n // * its id is simple (a single part, not `this` or `..`)\n var eligibleHelper = this.eligibleHelper = id.isSimple;\n\n // a mustache is definitely a helper if:\n // * it is an eligible helper, and\n // * it has at least one parameter or hash segment\n this.isHelper = eligibleHelper && (params.length || hash);\n\n // if a mustache is an eligible helper but not a definite\n // helper, it is ambiguous, and will be resolved in a later\n // pass or at runtime.\n },\n\n PartialNode: function(partialName, context, strip, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"partial\";\n this.partialName = partialName;\n this.context = context;\n this.strip = strip;\n },\n\n BlockNode: function(mustache, program, inverse, close, locInfo) {\n LocationInfo.call(this, locInfo);\n\n if(mustache.sexpr.id.original !== close.path.original) {\n throw new Exception(mustache.sexpr.id.original + \" doesn't match \" + close.path.original, this);\n }\n\n this.type = 'block';\n this.mustache = mustache;\n this.program = program;\n this.inverse = inverse;\n\n this.strip = {\n left: mustache.strip.left,\n right: close.strip.right\n };\n\n (program || inverse).strip.left = mustache.strip.right;\n (inverse || program).strip.right = close.strip.left;\n\n if (inverse && !program) {\n this.isInverse = true;\n }\n },\n\n ContentNode: function(string, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"content\";\n this.string = string;\n },\n\n HashNode: function(pairs, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"hash\";\n this.pairs = pairs;\n },\n\n IdNode: function(parts, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"ID\";\n\n var original = \"\",\n dig = [],\n depth = 0;\n\n for(var i=0,l=parts.length; i<l; i++) {\n var part = parts[i].part;\n original += (parts[i].separator || '') + part;\n\n if (part === \"..\" || part === \".\" || part === \"this\") {\n if (dig.length > 0) {\n throw new Exception(\"Invalid path: \" + original, this);\n } else if (part === \"..\") {\n depth++;\n } else {\n this.isScoped = true;\n }\n } else {\n dig.push(part);\n }\n }\n\n this.original = original;\n this.parts = dig;\n this.string = dig.join('.');\n this.depth = depth;\n\n // an ID is simple if it only has one part, and that part is not\n // `..` or `this`.\n this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;\n\n this.stringModeValue = this.string;\n },\n\n PartialNameNode: function(name, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"PARTIAL_NAME\";\n this.name = name.original;\n },\n\n DataNode: function(id, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"DATA\";\n this.id = id;\n },\n\n StringNode: function(string, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"STRING\";\n this.original =\n this.string =\n this.stringModeValue = string;\n },\n\n IntegerNode: function(integer, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"INTEGER\";\n this.original =\n this.integer = integer;\n this.stringModeValue = Number(integer);\n },\n\n BooleanNode: function(bool, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"BOOLEAN\";\n this.bool = bool;\n this.stringModeValue = bool === \"true\";\n },\n\n CommentNode: function(comment, locInfo) {\n LocationInfo.call(this, locInfo);\n this.type = \"comment\";\n this.comment = comment;\n }\n };\n\n // Must be exported as an object rather than the root of the module as the jison lexer\n // most modify the object to operate properly.\n __exports__ = AST;\n return __exports__;\n})(__module5__);\n\n// handlebars/compiler/parser.js\nvar __module9__ = (function() {\n \"use strict\";\n var __exports__;\n /* jshint ignore:start */\n /* Jison generated parser */\n var handlebars = (function(){\n var parser = {trace: function trace() { },\n yy: {},\n symbols_: {\"error\":2,\"root\":3,\"statements\":4,\"EOF\":5,\"program\":6,\"simpleInverse\":7,\"statement\":8,\"openInverse\":9,\"closeBlock\":10,\"openBlock\":11,\"mustache\":12,\"partial\":13,\"CONTENT\":14,\"COMMENT\":15,\"OPEN_BLOCK\":16,\"sexpr\":17,\"CLOSE\":18,\"OPEN_INVERSE\":19,\"OPEN_ENDBLOCK\":20,\"path\":21,\"OPEN\":22,\"OPEN_UNESCAPED\":23,\"CLOSE_UNESCAPED\":24,\"OPEN_PARTIAL\":25,\"partialName\":26,\"partial_option0\":27,\"sexpr_repetition0\":28,\"sexpr_option0\":29,\"dataName\":30,\"param\":31,\"STRING\":32,\"INTEGER\":33,\"BOOLEAN\":34,\"OPEN_SEXPR\":35,\"CLOSE_SEXPR\":36,\"hash\":37,\"hash_repetition_plus0\":38,\"hashSegment\":39,\"ID\":40,\"EQUALS\":41,\"DATA\":42,\"pathSegments\":43,\"SEP\":44,\"$accept\":0,\"$end\":1},\n terminals_: {2:\"error\",5:\"EOF\",14:\"CONTENT\",15:\"COMMENT\",16:\"OPEN_BLOCK\",18:\"CLOSE\",19:\"OPEN_INVERSE\",20:\"OPEN_ENDBLOCK\",22:\"OPEN\",23:\"OPEN_UNESCAPED\",24:\"CLOSE_UNESCAPED\",25:\"OPEN_PARTIAL\",32:\"STRING\",33:\"INTEGER\",34:\"BOOLEAN\",35:\"OPEN_SEXPR\",36:\"CLOSE_SEXPR\",40:\"ID\",41:\"EQUALS\",42:\"DATA\",44:\"SEP\"},\n productions_: [0,[3,2],[3,1],[6,2],[6,3],[6,2],[6,1],[6,1],[6,0],[4,1],[4,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,4],[7,2],[17,3],[17,1],[31,1],[31,1],[31,1],[31,1],[31,1],[31,3],[37,1],[39,3],[26,1],[26,1],[26,1],[30,2],[21,1],[43,3],[43,1],[27,0],[27,1],[28,0],[28,2],[29,0],[29,1],[38,1],[38,2]],\n performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {\n\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1: return new yy.ProgramNode($$[$0-1], this._$); \n break;\n case 2: return new yy.ProgramNode([], this._$); \n break;\n case 3:this.$ = new yy.ProgramNode([], $$[$0-1], $$[$0], this._$);\n break;\n case 4:this.$ = new yy.ProgramNode($$[$0-2], $$[$0-1], $$[$0], this._$);\n break;\n case 5:this.$ = new yy.ProgramNode($$[$0-1], $$[$0], [], this._$);\n break;\n case 6:this.$ = new yy.ProgramNode($$[$0], this._$);\n break;\n case 7:this.$ = new yy.ProgramNode([], this._$);\n break;\n case 8:this.$ = new yy.ProgramNode([], this._$);\n break;\n case 9:this.$ = [$$[$0]];\n break;\n case 10: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; \n break;\n case 11:this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0], this._$);\n break;\n case 12:this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0], this._$);\n break;\n case 13:this.$ = $$[$0];\n break;\n case 14:this.$ = $$[$0];\n break;\n case 15:this.$ = new yy.ContentNode($$[$0], this._$);\n break;\n case 16:this.$ = new yy.CommentNode($$[$0], this._$);\n break;\n case 17:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], stripFlags($$[$0-2], $$[$0]), this._$);\n break;\n case 18:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], stripFlags($$[$0-2], $$[$0]), this._$);\n break;\n case 19:this.$ = {path: $$[$0-1], strip: stripFlags($$[$0-2], $$[$0])};\n break;\n case 20:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], stripFlags($$[$0-2], $$[$0]), this._$);\n break;\n case 21:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], stripFlags($$[$0-2], $$[$0]), this._$);\n break;\n case 22:this.$ = new yy.PartialNode($$[$0-2], $$[$0-1], stripFlags($$[$0-3], $$[$0]), this._$);\n break;\n case 23:this.$ = stripFlags($$[$0-1], $$[$0]);\n break;\n case 24:this.$ = new yy.SexprNode([$$[$0-2]].concat($$[$0-1]), $$[$0], this._$);\n break;\n case 25:this.$ = new yy.SexprNode([$$[$0]], null, this._$);\n break;\n case 26:this.$ = $$[$0];\n break;\n case 27:this.$ = new yy.StringNode($$[$0], this._$);\n break;\n case 28:this.$ = new yy.IntegerNode($$[$0], this._$);\n break;\n case 29:this.$ = new yy.BooleanNode($$[$0], this._$);\n break;\n case 30:this.$ = $$[$0];\n break;\n case 31:$$[$0-1].isHelper = true; this.$ = $$[$0-1];\n break;\n case 32:this.$ = new yy.HashNode($$[$0], this._$);\n break;\n case 33:this.$ = [$$[$0-2], $$[$0]];\n break;\n case 34:this.$ = new yy.PartialNameNode($$[$0], this._$);\n break;\n case 35:this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0], this._$), this._$);\n break;\n case 36:this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0], this._$));\n break;\n case 37:this.$ = new yy.DataNode($$[$0], this._$);\n break;\n case 38:this.$ = new yy.IdNode($$[$0], this._$);\n break;\n case 39: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2]; \n break;\n case 40:this.$ = [{part: $$[$0]}];\n break;\n case 43:this.$ = [];\n break;\n case 44:$$[$0-1].push($$[$0]);\n break;\n case 47:this.$ = [$$[$0]];\n break;\n case 48:$$[$0-1].push($$[$0]);\n break;\n }\n },\n table: [{3:1,4:2,5:[1,3],8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[3]},{5:[1,16],8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[2,2]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{4:20,6:18,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{4:20,6:22,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{17:23,21:24,30:25,40:[1,28],42:[1,27],43:26},{17:29,21:24,30:25,40:[1,28],42:[1,27],43:26},{17:30,21:24,30:25,40:[1,28],42:[1,27],43:26},{17:31,21:24,30:25,40:[1,28],42:[1,27],43:26},{21:33,26:32,32:[1,34],33:[1,35],40:[1,28],43:26},{1:[2,1]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{10:36,20:[1,37]},{4:38,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,7],22:[1,13],23:[1,14],25:[1,15]},{7:39,8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,6],22:[1,13],23:[1,14],25:[1,15]},{17:23,18:[1,40],21:24,30:25,40:[1,28],42:[1,27],43:26},{10:41,20:[1,37]},{18:[1,42]},{18:[2,43],24:[2,43],28:43,32:[2,43],33:[2,43],34:[2,43],35:[2,43],36:[2,43],40:[2,43],42:[2,43]},{18:[2,25],24:[2,25],36:[2,25]},{18:[2,38],24:[2,38],32:[2,38],33:[2,38],34:[2,38],35:[2,38],36:[2,38],40:[2,38],42:[2,38],44:[1,44]},{21:45,40:[1,28],43:26},{18:[2,40],24:[2,40],32:[2,40],33:[2,40],34:[2,40],35:[2,40],36:[2,40],40:[2,40],42:[2,40],44:[2,40]},{18:[1,46]},{18:[1,47]},{24:[1,48]},{18:[2,41],21:50,27:49,40:[1,28],43:26},{18:[2,34],40:[2,34]},{18:[2,35],40:[2,35]},{18:[2,36],40:[2,36]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{21:51,40:[1,28],43:26},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,3],22:[1,13],23:[1,14],25:[1,15]},{4:52,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,5],22:[1,13],23:[1,14],25:[1,15]},{14:[2,23],15:[2,23],16:[2,23],19:[2,23],20:[2,23],22:[2,23],23:[2,23],25:[2,23]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]},{18:[2,45],21:56,24:[2,45],29:53,30:60,31:54,32:[1,57],33:[1,58],34:[1,59],35:[1,61],36:[2,45],37:55,38:62,39:63,40:[1,64],42:[1,27],43:26},{40:[1,65]},{18:[2,37],24:[2,37],32:[2,37],33:[2,37],34:[2,37],35:[2,37],36:[2,37],40:[2,37],42:[2,37]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{18:[1,66]},{18:[2,42]},{18:[1,67]},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],25:[1,15]},{18:[2,24],24:[2,24],36:[2,24]},{18:[2,44],24:[2,44],32:[2,44],33:[2,44],34:[2,44],35:[2,44],36:[2,44],40:[2,44],42:[2,44]},{18:[2,46],24:[2,46],36:[2,46]},{18:[2,26],24:[2,26],32:[2,26],33:[2,26],34:[2,26],35:[2,26],36:[2,26],40:[2,26],42:[2,26]},{18:[2,27],24:[2,27],32:[2,27],33:[2,27],34:[2,27],35:[2,27],36:[2,27],40:[2,27],42:[2,27]},{18:[2,28],24:[2,28],32:[2,28],33:[2,28],34:[2,28],35:[2,28],36:[2,28],40:[2,28],42:[2,28]},{18:[2,29],24:[2,29],32:[2,29],33:[2,29],34:[2,29],35:[2,29],36:[2,29],40:[2,29],42:[2,29]},{18:[2,30],24:[2,30],32:[2,30],33:[2,30],34:[2,30],35:[2,30],36:[2,30],40:[2,30],42:[2,30]},{17:68,21:24,30:25,40:[1,28],42:[1,27],43:26},{18:[2,32],24:[2,32],36:[2,32],39:69,40:[1,70]},{18:[2,47],24:[2,47],36:[2,47],40:[2,47]},{18:[2,40],24:[2,40],32:[2,40],33:[2,40],34:[2,40],35:[2,40],36:[2,40],40:[2,40],41:[1,71],42:[2,40],44:[2,40]},{18:[2,39],24:[2,39],32:[2,39],33:[2,39],34:[2,39],35:[2,39],36:[2,39],40:[2,39],42:[2,39],44:[2,39]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{36:[1,72]},{18:[2,48],24:[2,48],36:[2,48],40:[2,48]},{41:[1,71]},{21:56,30:60,31:73,32:[1,57],33:[1,58],34:[1,59],35:[1,61],40:[1,28],42:[1,27],43:26},{18:[2,31],24:[2,31],32:[2,31],33:[2,31],34:[2,31],35:[2,31],36:[2,31],40:[2,31],42:[2,31]},{18:[2,33],24:[2,33],36:[2,33],40:[2,33]}],\n defaultActions: {3:[2,2],16:[2,1],50:[2,42]},\n parseError: function parseError(str, hash) {\n throw new Error(str);\n },\n parse: function parse(input) {\n var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n this.lexer.setInput(input);\n this.lexer.yy = this.yy;\n this.yy.lexer = this.lexer;\n this.yy.parser = this;\n if (typeof this.lexer.yylloc == \"undefined\")\n this.lexer.yylloc = {};\n var yyloc = this.lexer.yylloc;\n lstack.push(yyloc);\n var ranges = this.lexer.options && this.lexer.options.ranges;\n if (typeof this.yy.parseError === \"function\")\n this.parseError = this.yy.parseError;\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = self.lexer.lex() || 1;\n if (typeof token !== \"number\") {\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n if (!recovering) {\n expected = [];\n for (p in table[state])\n if (this.terminals_[p] && p > 2) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n if (this.lexer.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + this.lexer.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == 1?\"end of input\":\"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});\n }\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(this.lexer.yytext);\n lstack.push(this.lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n if (recovering > 0)\n recovering--;\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};\n if (ranges) {\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n }\n r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n\n\n function stripFlags(open, close) {\n return {\n left: open.charAt(2) === '~',\n right: close.charAt(0) === '~' || close.charAt(1) === '~'\n };\n }\n\n /* Jison generated lexer */\n var lexer = (function(){\n var lexer = ({EOF:1,\n parseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n setInput:function (input) {\n this._input = input;\n this._more = this._less = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};\n if (this.options.ranges) this.yylloc.range = [0,0];\n this.offset = 0;\n return this;\n },\n input:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) this.yylloc.range[1]++;\n\n this._input = this._input.slice(1);\n return ch;\n },\n unput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length-len-1);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length-1);\n this.matched = this.matched.substr(0, this.matched.length-1);\n\n if (lines.length-1) this.yylineno -= lines.length-1;\n var r = this.yylloc.range;\n\n this.yylloc = {first_line: this.yylloc.first_line,\n last_line: this.yylineno+1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length:\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n return this;\n },\n more:function () {\n this._more = true;\n return this;\n },\n less:function (n) {\n this.unput(this.match.slice(n));\n },\n pastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n upcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");\n },\n showPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c+\"^\";\n },\n next:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) this.done = true;\n\n var token,\n match,\n tempMatch,\n index,\n col,\n lines;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i=0;i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (!this.options.flex) break;\n }\n }\n if (match) {\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {first_line: this.yylloc.last_line,\n last_line: this.yylineno+1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length};\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);\n if (this.done && this._input) this.done = false;\n if (token) return token;\n else return;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),\n {text: \"\", token: null, line: this.yylineno});\n }\n },\n lex:function lex() {\n var r = this.next();\n if (typeof r !== 'undefined') {\n return r;\n } else {\n return this.lex();\n }\n },\n begin:function begin(condition) {\n this.conditionStack.push(condition);\n },\n popState:function popState() {\n return this.conditionStack.pop();\n },\n _currentRules:function _currentRules() {\n return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;\n },\n topState:function () {\n return this.conditionStack[this.conditionStack.length-2];\n },\n pushState:function begin(condition) {\n this.begin(condition);\n }});\n lexer.options = {};\n lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\n\n\n function strip(start, end) {\n return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng-end);\n }\n\n\n var YYSTATE=YY_START\n switch($avoiding_name_collisions) {\n case 0:\n if(yy_.yytext.slice(-2) === \"\\\\\\\\\") {\n strip(0,1);\n this.begin(\"mu\");\n } else if(yy_.yytext.slice(-1) === \"\\\\\") {\n strip(0,1);\n this.begin(\"emu\");\n } else {\n this.begin(\"mu\");\n }\n if(yy_.yytext) return 14;\n \n break;\n case 1:return 14;\n break;\n case 2:\n this.popState();\n return 14;\n \n break;\n case 3:strip(0,4); this.popState(); return 15;\n break;\n case 4:return 35;\n break;\n case 5:return 36;\n break;\n case 6:return 25;\n break;\n case 7:return 16;\n break;\n case 8:return 20;\n break;\n case 9:return 19;\n break;\n case 10:return 19;\n break;\n case 11:return 23;\n break;\n case 12:return 22;\n break;\n case 13:this.popState(); this.begin('com');\n break;\n case 14:strip(3,5); this.popState(); return 15;\n break;\n case 15:return 22;\n break;\n case 16:return 41;\n break;\n case 17:return 40;\n break;\n case 18:return 40;\n break;\n case 19:return 44;\n break;\n case 20:// ignore whitespace\n break;\n case 21:this.popState(); return 24;\n break;\n case 22:this.popState(); return 18;\n break;\n case 23:yy_.yytext = strip(1,2).replace(/\\\\\"/g,'\"'); return 32;\n break;\n case 24:yy_.yytext = strip(1,2).replace(/\\\\'/g,\"'\"); return 32;\n break;\n case 25:return 42;\n break;\n case 26:return 34;\n break;\n case 27:return 34;\n break;\n case 28:return 33;\n break;\n case 29:return 40;\n break;\n case 30:yy_.yytext = strip(1,2); return 40;\n break;\n case 31:return 'INVALID';\n break;\n case 32:return 5;\n break;\n }\n };\n lexer.rules = [/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/,/^(?:[\\s\\S]*?--\\}\\})/,/^(?:\\()/,/^(?:\\))/,/^(?:\\{\\{(~)?>)/,/^(?:\\{\\{(~)?#)/,/^(?:\\{\\{(~)?\\/)/,/^(?:\\{\\{(~)?\\^)/,/^(?:\\{\\{(~)?\\s*else\\b)/,/^(?:\\{\\{(~)?\\{)/,/^(?:\\{\\{(~)?&)/,/^(?:\\{\\{!--)/,/^(?:\\{\\{![\\s\\S]*?\\}\\})/,/^(?:\\{\\{(~)?)/,/^(?:=)/,/^(?:\\.\\.)/,/^(?:\\.(?=([=~}\\s\\/.)])))/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}(~)?\\}\\})/,/^(?:(~)?\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:'(\\\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\\s)])))/,/^(?:false(?=([~}\\s)])))/,/^(?:-?[0-9]+(?=([~}\\s)])))/,/^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)]))))/,/^(?:\\[[^\\]]*\\])/,/^(?:.)/,/^(?:$)/];\n lexer.conditions = {\"mu\":{\"rules\":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],\"inclusive\":false},\"emu\":{\"rules\":[2],\"inclusive\":false},\"com\":{\"rules\":[3],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,32],\"inclusive\":true}};\n return lexer;})()\n parser.lexer = lexer;\n function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;\n return new Parser;\n })();__exports__ = handlebars;\n /* jshint ignore:end */\n return __exports__;\n})();\n\n// handlebars/compiler/base.js\nvar __module8__ = (function(__dependency1__, __dependency2__) {\n \"use strict\";\n var __exports__ = {};\n var parser = __dependency1__;\n var AST = __dependency2__;\n\n __exports__.parser = parser;\n\n function parse(input) {\n // Just return if an already-compile AST was passed in.\n if(input.constructor === AST.ProgramNode) { return input; }\n\n parser.yy = AST;\n return parser.parse(input);\n }\n\n __exports__.parse = parse;\n return __exports__;\n})(__module9__, __module7__);\n\n// handlebars/compiler/compiler.js\nvar __module10__ = (function(__dependency1__) {\n \"use strict\";\n var __exports__ = {};\n var Exception = __dependency1__;\n\n function Compiler() {}\n\n __exports__.Compiler = Compiler;// the foundHelper register will disambiguate helper lookup from finding a\n // function in a context. This is necessary for mustache compatibility, which\n // requires that context functions in blocks are evaluated by blockHelperMissing,\n // and then proceed as if the resulting value was provided to blockHelperMissing.\n\n Compiler.prototype = {\n compiler: Compiler,\n\n disassemble: function() {\n var opcodes = this.opcodes, opcode, out = [], params, param;\n\n for (var i=0, l=opcodes.length; i<l; i++) {\n opcode = opcodes[i];\n\n if (opcode.opcode === 'DECLARE') {\n out.push(\"DECLARE \" + opcode.name + \"=\" + opcode.value);\n } else {\n params = [];\n for (var j=0; j<opcode.args.length; j++) {\n param = opcode.args[j];\n if (typeof param === \"string\") {\n param = \"\\\"\" + param.replace(\"\\n\", \"\\\\n\") + \"\\\"\";\n }\n params.push(param);\n }\n out.push(opcode.opcode + \" \" + params.join(\" \"));\n }\n }\n\n return out.join(\"\\n\");\n },\n\n equals: function(other) {\n var len = this.opcodes.length;\n if (other.opcodes.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var opcode = this.opcodes[i],\n otherOpcode = other.opcodes[i];\n if (opcode.opcode !== otherOpcode.opcode || opcode.args.length !== otherOpcode.args.length) {\n return false;\n }\n for (var j = 0; j < opcode.args.length; j++) {\n if (opcode.args[j] !== otherOpcode.args[j]) {\n return false;\n }\n }\n }\n\n len = this.children.length;\n if (other.children.length !== len) {\n return false;\n }\n for (i = 0; i < len; i++) {\n if (!this.children[i].equals(other.children[i])) {\n return false;\n }\n }\n\n return true;\n },\n\n guid: 0,\n\n compile: function(program, options) {\n this.opcodes = [];\n this.children = [];\n this.depths = {list: []};\n this.options = options;\n\n // These changes will propagate to the other compiler components\n var knownHelpers = this.options.knownHelpers;\n this.options.knownHelpers = {\n 'helperMissing': true,\n 'blockHelperMissing': true,\n 'each': true,\n 'if': true,\n 'unless': true,\n 'with': true,\n 'log': true\n };\n if (knownHelpers) {\n for (var name in knownHelpers) {\n this.options.knownHelpers[name] = knownHelpers[name];\n }\n }\n\n return this.accept(program);\n },\n\n accept: function(node) {\n var strip = node.strip || {},\n ret;\n if (strip.left) {\n this.opcode('strip');\n }\n\n ret = this[node.type](node);\n\n if (strip.right) {\n this.opcode('strip');\n }\n\n return ret;\n },\n\n program: function(program) {\n var statements = program.statements;\n\n for(var i=0, l=statements.length; i<l; i++) {\n this.accept(statements[i]);\n }\n this.isSimple = l === 1;\n\n this.depths.list = this.depths.list.sort(function(a, b) {\n return a - b;\n });\n\n return this;\n },\n\n compileProgram: function(program) {\n var result = new this.compiler().compile(program, this.options);\n var guid = this.guid++, depth;\n\n this.usePartial = this.usePartial || result.usePartial;\n\n this.children[guid] = result;\n\n for(var i=0, l=result.depths.list.length; i<l; i++) {\n depth = result.depths.list[i];\n\n if(depth < 2) { continue; }\n else { this.addDepth(depth - 1); }\n }\n\n return guid;\n },\n\n block: function(block) {\n var mustache = block.mustache,\n program = block.program,\n inverse = block.inverse;\n\n if (program) {\n program = this.compileProgram(program);\n }\n\n if (inverse) {\n inverse = this.compileProgram(inverse);\n }\n\n var sexpr = mustache.sexpr;\n var type = this.classifySexpr(sexpr);\n\n if (type === \"helper\") {\n this.helperSexpr(sexpr, program, inverse);\n } else if (type === \"simple\") {\n this.simpleSexpr(sexpr);\n\n // now that the simple mustache is resolved, we need to\n // evaluate it by executing `blockHelperMissing`\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n this.opcode('emptyHash');\n this.opcode('blockValue');\n } else {\n this.ambiguousSexpr(sexpr, program, inverse);\n\n // now that the simple mustache is resolved, we need to\n // evaluate it by executing `blockHelperMissing`\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n this.opcode('emptyHash');\n this.opcode('ambiguousBlockValue');\n }\n\n this.opcode('append');\n },\n\n hash: function(hash) {\n var pairs = hash.pairs, pair, val;\n\n this.opcode('pushHash');\n\n for(var i=0, l=pairs.length; i<l; i++) {\n pair = pairs[i];\n val = pair[1];\n\n if (this.options.stringParams) {\n if(val.depth) {\n this.addDepth(val.depth);\n }\n this.opcode('getContext', val.depth || 0);\n this.opcode('pushStringParam', val.stringModeValue, val.type);\n\n if (val.type === 'sexpr') {\n // Subexpressions get evaluated and passed in\n // in string params mode.\n this.sexpr(val);\n }\n } else {\n this.accept(val);\n }\n\n this.opcode('assignToHash', pair[0]);\n }\n this.opcode('popHash');\n },\n\n partial: function(partial) {\n var partialName = partial.partialName;\n this.usePartial = true;\n\n if(partial.context) {\n this.ID(partial.context);\n } else {\n this.opcode('push', 'depth0');\n }\n\n this.opcode('invokePartial', partialName.name);\n this.opcode('append');\n },\n\n content: function(content) {\n this.opcode('appendContent', content.string);\n },\n\n mustache: function(mustache) {\n this.sexpr(mustache.sexpr);\n\n if(mustache.escaped && !this.options.noEscape) {\n this.opcode('appendEscaped');\n } else {\n this.opcode('append');\n }\n },\n\n ambiguousSexpr: function(sexpr, program, inverse) {\n var id = sexpr.id,\n name = id.parts[0],\n isBlock = program != null || inverse != null;\n\n this.opcode('getContext', id.depth);\n\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n\n this.opcode('invokeAmbiguous', name, isBlock);\n },\n\n simpleSexpr: function(sexpr) {\n var id = sexpr.id;\n\n if (id.type === 'DATA') {\n this.DATA(id);\n } else if (id.parts.length) {\n this.ID(id);\n } else {\n // Simplified ID for `this`\n this.addDepth(id.depth);\n this.opcode('getContext', id.depth);\n this.opcode('pushContext');\n }\n\n this.opcode('resolvePossibleLambda');\n },\n\n helperSexpr: function(sexpr, program, inverse) {\n var params = this.setupFullMustacheParams(sexpr, program, inverse),\n name = sexpr.id.parts[0];\n\n if (this.options.knownHelpers[name]) {\n this.opcode('invokeKnownHelper', params.length, name);\n } else if (this.options.knownHelpersOnly) {\n throw new Exception(\"You specified knownHelpersOnly, but used the unknown helper \" + name, sexpr);\n } else {\n this.opcode('invokeHelper', params.length, name, sexpr.isRoot);\n }\n },\n\n sexpr: function(sexpr) {\n var type = this.classifySexpr(sexpr);\n\n if (type === \"simple\") {\n this.simpleSexpr(sexpr);\n } else if (type === \"helper\") {\n this.helperSexpr(sexpr);\n } else {\n this.ambiguousSexpr(sexpr);\n }\n },\n\n ID: function(id) {\n this.addDepth(id.depth);\n this.opcode('getContext', id.depth);\n\n var name = id.parts[0];\n if (!name) {\n this.opcode('pushContext');\n } else {\n this.opcode('lookupOnContext', id.parts[0]);\n }\n\n for(var i=1, l=id.parts.length; i<l; i++) {\n this.opcode('lookup', id.parts[i]);\n }\n },\n\n DATA: function(data) {\n this.options.data = true;\n if (data.id.isScoped || data.id.depth) {\n throw new Exception('Scoped data references are not supported: ' + data.original, data);\n }\n\n this.opcode('lookupData');\n var parts = data.id.parts;\n for(var i=0, l=parts.length; i<l; i++) {\n this.opcode('lookup', parts[i]);\n }\n },\n\n STRING: function(string) {\n this.opcode('pushString', string.string);\n },\n\n INTEGER: function(integer) {\n this.opcode('pushLiteral', integer.integer);\n },\n\n BOOLEAN: function(bool) {\n this.opcode('pushLiteral', bool.bool);\n },\n\n comment: function() {},\n\n // HELPERS\n opcode: function(name) {\n this.opcodes.push({ opcode: name, args: [].slice.call(arguments, 1) });\n },\n\n declare: function(name, value) {\n this.opcodes.push({ opcode: 'DECLARE', name: name, value: value });\n },\n\n addDepth: function(depth) {\n if(depth === 0) { return; }\n\n if(!this.depths[depth]) {\n this.depths[depth] = true;\n this.depths.list.push(depth);\n }\n },\n\n classifySexpr: function(sexpr) {\n var isHelper = sexpr.isHelper;\n var isEligible = sexpr.eligibleHelper;\n var options = this.options;\n\n // if ambiguous, we can possibly resolve the ambiguity now\n if (isEligible && !isHelper) {\n var name = sexpr.id.parts[0];\n\n if (options.knownHelpers[name]) {\n isHelper = true;\n } else if (options.knownHelpersOnly) {\n isEligible = false;\n }\n }\n\n if (isHelper) { return \"helper\"; }\n else if (isEligible) { return \"ambiguous\"; }\n else { return \"simple\"; }\n },\n\n pushParams: function(params) {\n var i = params.length, param;\n\n while(i--) {\n param = params[i];\n\n if(this.options.stringParams) {\n if(param.depth) {\n this.addDepth(param.depth);\n }\n\n this.opcode('getContext', param.depth || 0);\n this.opcode('pushStringParam', param.stringModeValue, param.type);\n\n if (param.type === 'sexpr') {\n // Subexpressions get evaluated and passed in\n // in string params mode.\n this.sexpr(param);\n }\n } else {\n this[param.type](param);\n }\n }\n },\n\n setupFullMustacheParams: function(sexpr, program, inverse) {\n var params = sexpr.params;\n this.pushParams(params);\n\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n\n if (sexpr.hash) {\n this.hash(sexpr.hash);\n } else {\n this.opcode('emptyHash');\n }\n\n return params;\n }\n };\n\n function precompile(input, options, env) {\n if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) {\n throw new Exception(\"You must pass a string or Handlebars AST to Handlebars.precompile. You passed \" + input);\n }\n\n options = options || {};\n if (!('data' in options)) {\n options.data = true;\n }\n\n var ast = env.parse(input);\n var environment = new env.Compiler().compile(ast, options);\n return new env.JavaScriptCompiler().compile(environment, options);\n }\n\n __exports__.precompile = precompile;function compile(input, options, env) {\n if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) {\n throw new Exception(\"You must pass a string or Handlebars AST to Handlebars.compile. You passed \" + input);\n }\n\n options = options || {};\n\n if (!('data' in options)) {\n options.data = true;\n }\n\n var compiled;\n\n function compileInput() {\n var ast = env.parse(input);\n var environment = new env.Compiler().compile(ast, options);\n var templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);\n return env.template(templateSpec);\n }\n\n // Template is only compiled on first use and cached after that point.\n return function(context, options) {\n if (!compiled) {\n compiled = compileInput();\n }\n return compiled.call(this, context, options);\n };\n }\n\n __exports__.compile = compile;\n return __exports__;\n})(__module5__);\n\n// handlebars/compiler/javascript-compiler.js\nvar __module11__ = (function(__dependency1__, __dependency2__) {\n \"use strict\";\n var __exports__;\n var COMPILER_REVISION = __dependency1__.COMPILER_REVISION;\n var REVISION_CHANGES = __dependency1__.REVISION_CHANGES;\n var log = __dependency1__.log;\n var Exception = __dependency2__;\n\n function Literal(value) {\n this.value = value;\n }\n\n function JavaScriptCompiler() {}\n\n JavaScriptCompiler.prototype = {\n // PUBLIC API: You can override these methods in a subclass to provide\n // alternative compiled forms for name lookup and buffering semantics\n nameLookup: function(parent, name /* , type*/) {\n var wrap,\n ret;\n if (parent.indexOf('depth') === 0) {\n wrap = true;\n }\n\n if (/^[0-9]+$/.test(name)) {\n ret = parent + \"[\" + name + \"]\";\n } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {\n ret = parent + \".\" + name;\n }\n else {\n ret = parent + \"['\" + name + \"']\";\n }\n\n if (wrap) {\n return '(' + parent + ' && ' + ret + ')';\n } else {\n return ret;\n }\n },\n\n compilerInfo: function() {\n var revision = COMPILER_REVISION,\n versions = REVISION_CHANGES[revision];\n return \"this.compilerInfo = [\"+revision+\",'\"+versions+\"'];\\n\";\n },\n\n appendToBuffer: function(string) {\n if (this.environment.isSimple) {\n return \"return \" + string + \";\";\n } else {\n return {\n appendToBuffer: true,\n content: string,\n toString: function() { return \"buffer += \" + string + \";\"; }\n };\n }\n },\n\n initializeBuffer: function() {\n return this.quotedString(\"\");\n },\n\n namespace: \"Handlebars\",\n // END PUBLIC API\n\n compile: function(environment, options, context, asObject) {\n this.environment = environment;\n this.options = options || {};\n\n log('debug', this.environment.disassemble() + \"\\n\\n\");\n\n this.name = this.environment.name;\n this.isChild = !!context;\n this.context = context || {\n programs: [],\n environments: [],\n aliases: { }\n };\n\n this.preamble();\n\n this.stackSlot = 0;\n this.stackVars = [];\n this.registers = { list: [] };\n this.hashes = [];\n this.compileStack = [];\n this.inlineStack = [];\n\n this.compileChildren(environment, options);\n\n var opcodes = environment.opcodes, opcode;\n\n this.i = 0;\n\n for(var l=opcodes.length; this.i<l; this.i++) {\n opcode = opcodes[this.i];\n\n if(opcode.opcode === 'DECLARE') {\n this[opcode.name] = opcode.value;\n } else {\n this[opcode.opcode].apply(this, opcode.args);\n }\n\n // Reset the stripNext flag if it was not set by this operation.\n if (opcode.opcode !== this.stripNext) {\n this.stripNext = false;\n }\n }\n\n // Flush any trailing content that might be pending.\n this.pushSource('');\n\n if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {\n throw new Exception('Compile completed with content left on stack');\n }\n\n return this.createFunctionContext(asObject);\n },\n\n preamble: function() {\n var out = [];\n\n if (!this.isChild) {\n var namespace = this.namespace;\n\n var copies = \"helpers = this.merge(helpers, \" + namespace + \".helpers);\";\n if (this.environment.usePartial) { copies = copies + \" partials = this.merge(partials, \" + namespace + \".partials);\"; }\n if (this.options.data) { copies = copies + \" data = data || {};\"; }\n out.push(copies);\n } else {\n out.push('');\n }\n\n if (!this.environment.isSimple) {\n out.push(\", buffer = \" + this.initializeBuffer());\n } else {\n out.push(\"\");\n }\n\n // track the last context pushed into place to allow skipping the\n // getContext opcode when it would be a noop\n this.lastContext = 0;\n this.source = out;\n },\n\n createFunctionContext: function(asObject) {\n var locals = this.stackVars.concat(this.registers.list);\n\n if(locals.length > 0) {\n this.source[1] = this.source[1] + \", \" + locals.join(\", \");\n }\n\n // Generate minimizer alias mappings\n if (!this.isChild) {\n for (var alias in this.context.aliases) {\n if (this.context.aliases.hasOwnProperty(alias)) {\n this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];\n }\n }\n }\n\n if (this.source[1]) {\n this.source[1] = \"var \" + this.source[1].substring(2) + \";\";\n }\n\n // Merge children\n if (!this.isChild) {\n this.source[1] += '\\n' + this.context.programs.join('\\n') + '\\n';\n }\n\n if (!this.environment.isSimple) {\n this.pushSource(\"return buffer;\");\n }\n\n var params = this.isChild ? [\"depth0\", \"data\"] : [\"Handlebars\", \"depth0\", \"helpers\", \"partials\", \"data\"];\n\n for(var i=0, l=this.environment.depths.list.length; i<l; i++) {\n params.push(\"depth\" + this.environment.depths.list[i]);\n }\n\n // Perform a second pass over the output to merge content when possible\n var source = this.mergeSource();\n\n if (!this.isChild) {\n source = this.compilerInfo()+source;\n }\n\n if (asObject) {\n params.push(source);\n\n return Function.apply(this, params);\n } else {\n var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\\n ' + source + '}';\n log('debug', functionSource + \"\\n\\n\");\n return functionSource;\n }\n },\n mergeSource: function() {\n // WARN: We are not handling the case where buffer is still populated as the source should\n // not have buffer append operations as their final action.\n var source = '',\n buffer;\n for (var i = 0, len = this.source.length; i < len; i++) {\n var line = this.source[i];\n if (line.appendToBuffer) {\n if (buffer) {\n buffer = buffer + '\\n + ' + line.content;\n } else {\n buffer = line.content;\n }\n } else {\n if (buffer) {\n source += 'buffer += ' + buffer + ';\\n ';\n buffer = undefined;\n }\n source += line + '\\n ';\n }\n }\n return source;\n },\n\n // [blockValue]\n //\n // On stack, before: hash, inverse, program, value\n // On stack, after: return value of blockHelperMissing\n //\n // The purpose of this opcode is to take a block of the form\n // `{{#foo}}...{{/foo}}`, resolve the value of `foo`, and\n // replace it on the stack with the result of properly\n // invoking blockHelperMissing.\n blockValue: function() {\n this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';\n\n var params = [\"depth0\"];\n this.setupParams(0, params);\n\n this.replaceStack(function(current) {\n params.splice(1, 0, current);\n return \"blockHelperMissing.call(\" + params.join(\", \") + \")\";\n });\n },\n\n // [ambiguousBlockValue]\n //\n // On stack, before: hash, inverse, program, value\n // Compiler value, before: lastHelper=value of last found helper, if any\n // On stack, after, if no lastHelper: same as [blockValue]\n // On stack, after, if lastHelper: value\n ambiguousBlockValue: function() {\n this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';\n\n var params = [\"depth0\"];\n this.setupParams(0, params);\n\n var current = this.topStack();\n params.splice(1, 0, current);\n\n this.pushSource(\"if (!\" + this.lastHelper + \") { \" + current + \" = blockHelperMissing.call(\" + params.join(\", \") + \"); }\");\n },\n\n // [appendContent]\n //\n // On stack, before: ...\n // On stack, after: ...\n //\n // Appends the string value of `content` to the current buffer\n appendContent: function(content) {\n if (this.pendingContent) {\n content = this.pendingContent + content;\n }\n if (this.stripNext) {\n content = content.replace(/^\\s+/, '');\n }\n\n this.pendingContent = content;\n },\n\n // [strip]\n //\n // On stack, before: ...\n // On stack, after: ...\n //\n // Removes any trailing whitespace from the prior content node and flags\n // the next operation for stripping if it is a content node.\n strip: function() {\n if (this.pendingContent) {\n this.pendingContent = this.pendingContent.replace(/\\s+$/, '');\n }\n this.stripNext = 'strip';\n },\n\n // [append]\n //\n // On stack, before: value, ...\n // On stack, after: ...\n //\n // Coerces `value` to a String and appends it to the current buffer.\n //\n // If `value` is truthy, or 0, it is coerced into a string and appended\n // Otherwise, the empty string is appended\n append: function() {\n // Force anything that is inlined onto the stack so we don't have duplication\n // when we examine local\n this.flushInline();\n var local = this.popStack();\n this.pushSource(\"if(\" + local + \" || \" + local + \" === 0) { \" + this.appendToBuffer(local) + \" }\");\n if (this.environment.isSimple) {\n this.pushSource(\"else { \" + this.appendToBuffer(\"''\") + \" }\");\n }\n },\n\n // [appendEscaped]\n //\n // On stack, before: value, ...\n // On stack, after: ...\n //\n // Escape `value` and append it to the buffer\n appendEscaped: function() {\n this.context.aliases.escapeExpression = 'this.escapeExpression';\n\n this.pushSource(this.appendToBuffer(\"escapeExpression(\" + this.popStack() + \")\"));\n },\n\n // [getContext]\n //\n // On stack, before: ...\n // On stack, after: ...\n // Compiler value, after: lastContext=depth\n //\n // Set the value of the `lastContext` compiler value to the depth\n getContext: function(depth) {\n if(this.lastContext !== depth) {\n this.lastContext = depth;\n }\n },\n\n // [lookupOnContext]\n //\n // On stack, before: ...\n // On stack, after: currentContext[name], ...\n //\n // Looks up the value of `name` on the current context and pushes\n // it onto the stack.\n lookupOnContext: function(name) {\n this.push(this.nameLookup('depth' + this.lastContext, name, 'context'));\n },\n\n // [pushContext]\n //\n // On stack, before: ...\n // On stack, after: currentContext, ...\n //\n // Pushes the value of the current context onto the stack.\n pushContext: function() {\n this.pushStackLiteral('depth' + this.lastContext);\n },\n\n // [resolvePossibleLambda]\n //\n // On stack, before: value, ...\n // On stack, after: resolved value, ...\n //\n // If the `value` is a lambda, replace it on the stack by\n // the return value of the lambda\n resolvePossibleLambda: function() {\n this.context.aliases.functionType = '\"function\"';\n\n this.replaceStack(function(current) {\n return \"typeof \" + current + \" === functionType ? \" + current + \".apply(depth0) : \" + current;\n });\n },\n\n // [lookup]\n //\n // On stack, before: value, ...\n // On stack, after: value[name], ...\n //\n // Replace the value on the stack with the result of looking\n // up `name` on `value`\n lookup: function(name) {\n this.replaceStack(function(current) {\n return current + \" == null || \" + current + \" === false ? \" + current + \" : \" + this.nameLookup(current, name, 'context');\n });\n },\n\n // [lookupData]\n //\n // On stack, before: ...\n // On stack, after: data, ...\n //\n // Push the data lookup operator\n lookupData: function() {\n this.pushStackLiteral('data');\n },\n\n // [pushStringParam]\n //\n // On stack, before: ...\n // On stack, after: string, currentContext, ...\n //\n // This opcode is designed for use in string mode, which\n // provides the string value of a parameter along with its\n // depth rather than resolving it immediately.\n pushStringParam: function(string, type) {\n this.pushStackLiteral('depth' + this.lastContext);\n\n this.pushString(type);\n\n // If it's a subexpression, the string result\n // will be pushed after this opcode.\n if (type !== 'sexpr') {\n if (typeof string === 'string') {\n this.pushString(string);\n } else {\n this.pushStackLiteral(string);\n }\n }\n },\n\n emptyHash: function() {\n this.pushStackLiteral('{}');\n\n if (this.options.stringParams) {\n this.push('{}'); // hashContexts\n this.push('{}'); // hashTypes\n }\n },\n pushHash: function() {\n if (this.hash) {\n this.hashes.push(this.hash);\n }\n this.hash = {values: [], types: [], contexts: []};\n },\n popHash: function() {\n var hash = this.hash;\n this.hash = this.hashes.pop();\n\n if (this.options.stringParams) {\n this.push('{' + hash.contexts.join(',') + '}');\n this.push('{' + hash.types.join(',') + '}');\n }\n\n this.push('{\\n ' + hash.values.join(',\\n ') + '\\n }');\n },\n\n // [pushString]\n //\n // On stack, before: ...\n // On stack, after: quotedString(string), ...\n //\n // Push a quoted version of `string` onto the stack\n pushString: function(string) {\n this.pushStackLiteral(this.quotedString(string));\n },\n\n // [push]\n //\n // On stack, before: ...\n // On stack, after: expr, ...\n //\n // Push an expression onto the stack\n push: function(expr) {\n this.inlineStack.push(expr);\n return expr;\n },\n\n // [pushLiteral]\n //\n // On stack, before: ...\n // On stack, after: value, ...\n //\n // Pushes a value onto the stack. This operation prevents\n // the compiler from creating a temporary variable to hold\n // it.\n pushLiteral: function(value) {\n this.pushStackLiteral(value);\n },\n\n // [pushProgram]\n //\n // On stack, before: ...\n // On stack, after: program(guid), ...\n //\n // Push a program expression onto the stack. This takes\n // a compile-time guid and converts it into a runtime-accessible\n // expression.\n pushProgram: function(guid) {\n if (guid != null) {\n this.pushStackLiteral(this.programExpression(guid));\n } else {\n this.pushStackLiteral(null);\n }\n },\n\n // [invokeHelper]\n //\n // On stack, before: hash, inverse, program, params..., ...\n // On stack, after: result of helper invocation\n //\n // Pops off the helper's parameters, invokes the helper,\n // and pushes the helper's return value onto the stack.\n //\n // If the helper is not found, `helperMissing` is called.\n invokeHelper: function(paramSize, name, isRoot) {\n this.context.aliases.helperMissing = 'helpers.helperMissing';\n this.useRegister('helper');\n\n var helper = this.lastHelper = this.setupHelper(paramSize, name, true);\n var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');\n\n var lookup = 'helper = ' + helper.name + ' || ' + nonHelper;\n if (helper.paramsInit) {\n lookup += ',' + helper.paramsInit;\n }\n\n this.push(\n '('\n + lookup\n + ',helper '\n + '? helper.call(' + helper.callParams + ') '\n + ': helperMissing.call(' + helper.helperMissingParams + '))');\n\n // Always flush subexpressions. This is both to prevent the compounding size issue that\n // occurs when the code has to be duplicated for inlining and also to prevent errors\n // due to the incorrect options object being passed due to the shared register.\n if (!isRoot) {\n this.flushInline();\n }\n },\n\n // [invokeKnownHelper]\n //\n // On stack, before: hash, inverse, program, params..., ...\n // On stack, after: result of helper invocation\n //\n // This operation is used when the helper is known to exist,\n // so a `helperMissing` fallback is not required.\n invokeKnownHelper: function(paramSize, name) {\n var helper = this.setupHelper(paramSize, name);\n this.push(helper.name + \".call(\" + helper.callParams + \")\");\n },\n\n // [invokeAmbiguous]\n //\n // On stack, before: hash, inverse, program, params..., ...\n // On stack, after: result of disambiguation\n //\n // This operation is used when an expression like `{{foo}}`\n // is provided, but we don't know at compile-time whether it\n // is a helper or a path.\n //\n // This operation emits more code than the other options,\n // and can be avoided by passing the `knownHelpers` and\n // `knownHelpersOnly` flags at compile-time.\n invokeAmbiguous: function(name, helperCall) {\n this.context.aliases.functionType = '\"function\"';\n this.useRegister('helper');\n\n this.emptyHash();\n var helper = this.setupHelper(0, name, helperCall);\n\n var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');\n\n var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');\n var nextStack = this.nextStack();\n\n if (helper.paramsInit) {\n this.pushSource(helper.paramsInit);\n }\n this.pushSource('if (helper = ' + helperName + ') { ' + nextStack + ' = helper.call(' + helper.callParams + '); }');\n this.pushSource('else { helper = ' + nonHelper + '; ' + nextStack + ' = typeof helper === functionType ? helper.call(' + helper.callParams + ') : helper; }');\n },\n\n // [invokePartial]\n //\n // On stack, before: context, ...\n // On stack after: result of partial invocation\n //\n // This operation pops off a context, invokes a partial with that context,\n // and pushes the result of the invocation back.\n invokePartial: function(name) {\n var params = [this.nameLookup('partials', name, 'partial'), \"'\" + name + \"'\", this.popStack(), \"helpers\", \"partials\"];\n\n if (this.options.data) {\n params.push(\"data\");\n }\n\n this.context.aliases.self = \"this\";\n this.push(\"self.invokePartial(\" + params.join(\", \") + \")\");\n },\n\n // [assignToHash]\n //\n // On stack, before: value, hash, ...\n // On stack, after: hash, ...\n //\n // Pops a value and hash off the stack, assigns `hash[key] = value`\n // and pushes the hash back onto the stack.\n assignToHash: function(key) {\n var value = this.popStack(),\n context,\n type;\n\n if (this.options.stringParams) {\n type = this.popStack();\n context = this.popStack();\n }\n\n var hash = this.hash;\n if (context) {\n hash.contexts.push(\"'\" + key + \"': \" + context);\n }\n if (type) {\n hash.types.push(\"'\" + key + \"': \" + type);\n }\n hash.values.push(\"'\" + key + \"': (\" + value + \")\");\n },\n\n // HELPERS\n\n compiler: JavaScriptCompiler,\n\n compileChildren: function(environment, options) {\n var children = environment.children, child, compiler;\n\n for(var i=0, l=children.length; i<l; i++) {\n child = children[i];\n compiler = new this.compiler();\n\n var index = this.matchExistingProgram(child);\n\n if (index == null) {\n this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children\n index = this.context.programs.length;\n child.index = index;\n child.name = 'program' + index;\n this.context.programs[index] = compiler.compile(child, options, this.context);\n this.context.environments[index] = child;\n } else {\n child.index = index;\n child.name = 'program' + index;\n }\n }\n },\n matchExistingProgram: function(child) {\n for (var i = 0, len = this.context.environments.length; i < len; i++) {\n var environment = this.context.environments[i];\n if (environment && environment.equals(child)) {\n return i;\n }\n }\n },\n\n programExpression: function(guid) {\n this.context.aliases.self = \"this\";\n\n if(guid == null) {\n return \"self.noop\";\n }\n\n var child = this.environment.children[guid],\n depths = child.depths.list, depth;\n\n var programParams = [child.index, child.name, \"data\"];\n\n for(var i=0, l = depths.length; i<l; i++) {\n depth = depths[i];\n\n if(depth === 1) { programParams.push(\"depth0\"); }\n else { programParams.push(\"depth\" + (depth - 1)); }\n }\n\n return (depths.length === 0 ? \"self.program(\" : \"self.programWithDepth(\") + programParams.join(\", \") + \")\";\n },\n\n register: function(name, val) {\n this.useRegister(name);\n this.pushSource(name + \" = \" + val + \";\");\n },\n\n useRegister: function(name) {\n if(!this.registers[name]) {\n this.registers[name] = true;\n this.registers.list.push(name);\n }\n },\n\n pushStackLiteral: function(item) {\n return this.push(new Literal(item));\n },\n\n pushSource: function(source) {\n if (this.pendingContent) {\n this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent)));\n this.pendingContent = undefined;\n }\n\n if (source) {\n this.source.push(source);\n }\n },\n\n pushStack: function(item) {\n this.flushInline();\n\n var stack = this.incrStack();\n if (item) {\n this.pushSource(stack + \" = \" + item + \";\");\n }\n this.compileStack.push(stack);\n return stack;\n },\n\n replaceStack: function(callback) {\n var prefix = '',\n inline = this.isInline(),\n stack,\n createdStack,\n usedLiteral;\n\n // If we are currently inline then we want to merge the inline statement into the\n // replacement statement via ','\n if (inline) {\n var top = this.popStack(true);\n\n if (top instanceof Literal) {\n // Literals do not need to be inlined\n stack = top.value;\n usedLiteral = true;\n } else {\n // Get or create the current stack name for use by the inline\n createdStack = !this.stackSlot;\n var name = !createdStack ? this.topStackName() : this.incrStack();\n\n prefix = '(' + this.push(name) + ' = ' + top + '),';\n stack = this.topStack();\n }\n } else {\n stack = this.topStack();\n }\n\n var item = callback.call(this, stack);\n\n if (inline) {\n if (!usedLiteral) {\n this.popStack();\n }\n if (createdStack) {\n this.stackSlot--;\n }\n this.push('(' + prefix + item + ')');\n } else {\n // Prevent modification of the context depth variable. Through replaceStack\n if (!/^stack/.test(stack)) {\n stack = this.nextStack();\n }\n\n this.pushSource(stack + \" = (\" + prefix + item + \");\");\n }\n return stack;\n },\n\n nextStack: function() {\n return this.pushStack();\n },\n\n incrStack: function() {\n this.stackSlot++;\n if(this.stackSlot > this.stackVars.length) { this.stackVars.push(\"stack\" + this.stackSlot); }\n return this.topStackName();\n },\n topStackName: function() {\n return \"stack\" + this.stackSlot;\n },\n flushInline: function() {\n var inlineStack = this.inlineStack;\n if (inlineStack.length) {\n this.inlineStack = [];\n for (var i = 0, len = inlineStack.length; i < len; i++) {\n var entry = inlineStack[i];\n if (entry instanceof Literal) {\n this.compileStack.push(entry);\n } else {\n this.pushStack(entry);\n }\n }\n }\n },\n isInline: function() {\n return this.inlineStack.length;\n },\n\n popStack: function(wrapped) {\n var inline = this.isInline(),\n item = (inline ? this.inlineStack : this.compileStack).pop();\n\n if (!wrapped && (item instanceof Literal)) {\n return item.value;\n } else {\n if (!inline) {\n if (!this.stackSlot) {\n throw new Exception('Invalid stack pop');\n }\n this.stackSlot--;\n }\n return item;\n }\n },\n\n topStack: function(wrapped) {\n var stack = (this.isInline() ? this.inlineStack : this.compileStack),\n item = stack[stack.length - 1];\n\n if (!wrapped && (item instanceof Literal)) {\n return item.value;\n } else {\n return item;\n }\n },\n\n quotedString: function(str) {\n return '\"' + str\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\u2028/g, '\\\\u2028') // Per Ecma-262 7.3 + 7.8.4\n .replace(/\\u2029/g, '\\\\u2029') + '\"';\n },\n\n setupHelper: function(paramSize, name, missingParams) {\n var params = [],\n paramsInit = this.setupParams(paramSize, params, missingParams);\n var foundHelper = this.nameLookup('helpers', name, 'helper');\n\n return {\n params: params,\n paramsInit: paramsInit,\n name: foundHelper,\n callParams: [\"depth0\"].concat(params).join(\", \"),\n helperMissingParams: missingParams && [\"depth0\", this.quotedString(name)].concat(params).join(\", \")\n };\n },\n\n setupOptions: function(paramSize, params) {\n var options = [], contexts = [], types = [], param, inverse, program;\n\n options.push(\"hash:\" + this.popStack());\n\n if (this.options.stringParams) {\n options.push(\"hashTypes:\" + this.popStack());\n options.push(\"hashContexts:\" + this.popStack());\n }\n\n inverse = this.popStack();\n program = this.popStack();\n\n // Avoid setting fn and inverse if neither are set. This allows\n // helpers to do a check for `if (options.fn)`\n if (program || inverse) {\n if (!program) {\n this.context.aliases.self = \"this\";\n program = \"self.noop\";\n }\n\n if (!inverse) {\n this.context.aliases.self = \"this\";\n inverse = \"self.noop\";\n }\n\n options.push(\"inverse:\" + inverse);\n options.push(\"fn:\" + program);\n }\n\n for(var i=0; i<paramSize; i++) {\n param = this.popStack();\n params.push(param);\n\n if(this.options.stringParams) {\n types.push(this.popStack());\n contexts.push(this.popStack());\n }\n }\n\n if (this.options.stringParams) {\n options.push(\"contexts:[\" + contexts.join(\",\") + \"]\");\n options.push(\"types:[\" + types.join(\",\") + \"]\");\n }\n\n if(this.options.data) {\n options.push(\"data:data\");\n }\n\n return options;\n },\n\n // the params and contexts arguments are passed in arrays\n // to fill in\n setupParams: function(paramSize, params, useRegister) {\n var options = '{' + this.setupOptions(paramSize, params).join(',') + '}';\n\n if (useRegister) {\n this.useRegister('options');\n params.push('options');\n return 'options=' + options;\n } else {\n params.push(options);\n return '';\n }\n }\n };\n\n var reservedWords = (\n \"break else new var\" +\n \" case finally return void\" +\n \" catch for switch while\" +\n \" continue function this with\" +\n \" default if throw\" +\n \" delete in try\" +\n \" do instanceof typeof\" +\n \" abstract enum int short\" +\n \" boolean export interface static\" +\n \" byte extends long super\" +\n \" char final native synchronized\" +\n \" class float package throws\" +\n \" const goto private transient\" +\n \" debugger implements protected volatile\" +\n \" double import public let yield\"\n ).split(\" \");\n\n var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};\n\n for(var i=0, l=reservedWords.length; i<l; i++) {\n compilerWords[reservedWords[i]] = true;\n }\n\n JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {\n if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name)) {\n return true;\n }\n return false;\n };\n\n __exports__ = JavaScriptCompiler;\n return __exports__;\n})(__module2__, __module5__);\n\n// handlebars.js\nvar __module0__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {\n \"use strict\";\n var __exports__;\n /*globals Handlebars: true */\n var Handlebars = __dependency1__;\n\n // Compiler imports\n var AST = __dependency2__;\n var Parser = __dependency3__.parser;\n var parse = __dependency3__.parse;\n var Compiler = __dependency4__.Compiler;\n var compile = __dependency4__.compile;\n var precompile = __dependency4__.precompile;\n var JavaScriptCompiler = __dependency5__;\n\n var _create = Handlebars.create;\n var create = function() {\n var hb = _create();\n\n hb.compile = function(input, options) {\n return compile(input, options, hb);\n };\n hb.precompile = function (input, options) {\n return precompile(input, options, hb);\n };\n\n hb.AST = AST;\n hb.Compiler = Compiler;\n hb.JavaScriptCompiler = JavaScriptCompiler;\n hb.Parser = Parser;\n hb.parse = parse;\n\n return hb;\n };\n\n Handlebars = create();\n Handlebars.create = create;\n\n __exports__ = Handlebars;\n return __exports__;\n})(__module1__, __module7__, __module8__, __module10__, __module11__);\n\n return __module0__;\n})();\n\nreturn Handlebars;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2013 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n *\n */\n/**\n * ORGINAL VERSION:\n * https://github.com/epeli/requirejs-hbs\n * Copyright 2013 Esa-Matti Suuronen\n * MIT License : https://github.com/epeli/requirejs-hbs/blob/master/LICENSE\n * \n * MODIFIED VERSION:\n * @author Bertrand Chevrier <bertrand@taotesting.com> for OAT SA\n * - Minor code refactoring\n * - Add the i18n helper\n */\ndefine('tpl',['handlebars', 'i18n', 'lodash'], function(hb, __, _){\n var buildMap = {};\n var extension = '.tpl';\n\n //register a i18n helper\n hb.registerHelper('__', function(key){\n return __(key);\n });\n\n //register join helper\n hb.registerHelper('join', function(arr, glue, delimiter, wrapper){\n\n var ret = '';\n\n //set default arguments in the format: name1=\"value1\" name2=\"value2\"\n glue = typeof(glue) === 'string' ? glue : '=';\n delimiter = typeof(delimiter) === 'string' ? delimiter : ' ';\n wrapper = typeof(wrapper) === 'string' ? wrapper : '\"';\n\n _.forIn(arr, function(value, key){\n if(value !== null || value !== undefined){\n if(typeof(value) === 'boolean'){\n value = value ? 'true' : 'false';\n }else if(typeof(value) === 'object'){\n value = _.values(value).join(' ');\n }\n }else{\n value = '';\n }\n ret += key + glue + wrapper + value + wrapper + delimiter;\n });\n if(ret){\n ret.substring(0, ret.length - 1);\n }\n\n return ret;\n });\n\n //register a classic \"for loop\" helper\n //it also adds a local variable \"i\" as the index in each iteration loop\n hb.registerHelper('for', function(startIndex, stopIndex, increment, options){\n var ret = '';\n startIndex = parseInt(startIndex);\n stopIndex = parseInt(stopIndex);\n increment = parseInt(increment);\n\n for(var i = startIndex; i < stopIndex; i += increment){\n ret += options.fn(_.extend({}, this, {'i' : i}));\n }\n\n return ret;\n });\n\n hb.registerHelper('equal', function(var1, var2, options){\n if(var1 == var2){\n return options.fn(this);\n }else{\n return options.inverse(this);\n }\n });\n\n // register a \"get property\" helper\n // it gets the named property from the provided context\n hb.registerHelper('property', function(name, context){\n return context[name] || '';\n });\n\n return {\n load : function(name, req, onload, config){\n extension = extension || config.extension;\n\n if(config.isBuild){\n //optimization, r.js node.js version\n buildMap[name] = fs.readFileSync(req.toUrl(name + extension)).toString();\n onload();\n\n }else{\n req([\"text!\" + name + extension], function(raw){\n // Just return the compiled template\n onload(hb.compile(raw));\n });\n }\n },\n write : function(pluginName, moduleName, write){\n if(moduleName in buildMap){\n var compiled = hb.precompile(buildMap[moduleName]);\n // Write out precompiled version of the template function as AMD definition.\n write(\n \"define('tpl!\" + moduleName + \"', ['handlebars'], function(hb){ \\n\" +\n \"return hb.template(\" + compiled.toString() + \");\\n\" +\n \"});\\n\"\n );\n }\n }\n };\n});\n\n","\ndefine('tpl!ui/feedback/feedback', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, helperMissing=helpers.helperMissing;\n\n\n buffer += \"<div class=\\\"feedback feedback-\";\n if (helper = helpers.level) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.level); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \" popup\\\">\\n <span class=\\\"icon-\";\n if (helper = helpers.level) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.level); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\"></span>\\n <div>\\n \";\n if (helper = helpers.msg) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.msg); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </div>\\n \\n <span title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Remove Message\", options) : helperMissing.call(depth0, \"__\", \"Remove Message\", options)))\n + \"\\\" class=\\\"icon-close\\\" data-close=\\\":parent .feedback\\\"></span>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n *\n */\n\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('ui/feedback',[\n 'jquery', \n 'lodash',\n 'util/wrapLongWords',\n 'util/encode',\n 'tpl!ui/feedback/feedback'\n], function($, _, wrapLongWords, encode, tpl){\n\n //'use strict';\n // @todo cannot be used here because _trigger() relies on arguments.caller!\n\n //keep a reference to ALL alive feedback\n var currents = [];\n\n //contains the reference to the main feedback box. We expect other containers to be only edge cases.\n var $feedBackBox;\n\n //feedback levels are divided into 2 categories\n var categories = {\n\n //volatiles messages disappear after a certain amount of time. \n //If 2 messages of the same category appears, only the last one is displayed\n 'volatile' : ['info', 'success'],\n\n //persistent feedback stay until their are closed.\n //Other persistent feedback are merged to keep all the info.\n //To prevent UI pollution, they may be collapsed in a notification area\n 'persistent' : ['warning', 'danger', 'error']\n };\n\n //extract the available levels from the categories\n var levels = _(categories).values().flatten().value();\n\n //feedback's states\n var states = {\n created : 'created',\n displayed : 'displayed',\n closed : 'closed',\n merged : 'merged',\n collapsed : 'collapsed'\n };\n\n //the default options\n var defaultOptions = {\n timeout: {\n info: 2000,\n success: 2000,\n warning: 4000,\n danger: 4000,\n error: 8000\n },\n // Note: value depends on font, font-weight and such.\n // 40 is pretty good in the current setup but will\n // never be exact with a non-proportional font.\n wrapLongWordsAfter: 40,\n encodeHtml : true\n };\n\n /**\n * Object delegation. This enables us to separate the instance of feedback from the feedbackApi.\n * An instance can call methods from the API like it was it, so each object will not contain the function definition.\n * @private \n * @param {Object} receiver - the object that receive the methods\n * @param {Object} provider - it provides the methods to the receiver\n * @returns {Object} the receiver augmented by the provider's methods. \n */\n function delegate (receiver, provider) {\n _(provider).functions().forEach(function delegateMethod(methodName) {\n receiver[methodName] = function applyDelegated() {\n return provider[methodName].apply(receiver, arguments);\n };\n });\n return receiver;\n }\n\n /**\n * It provides the feedback behavior\n * @typedef FeedbackApi\n */\n var feedbackApi = {\n\n level : null,\n\n category : null,\n\n message : function message(level, msg, options){\n if(!level || !_.contains(levels, level)){\n level = 'info';\n }\n this.setState(states.created);\n\n this.level = level;\n this.category = _.findKey(categories, [this.level]);\n this.options = _.defaults(options || {}, defaultOptions); \n\n // encode plain text string to html\n msg = this.options.encodeHtml ? encode.html(msg) : msg;\n \n // wrap long words\n msg = !!this.options.wrapLongWordsAfter ? wrapLongWords(msg, this.options.wrapLongWordsAfter) : msg;\n\n this.content = tpl({\n level : level,\n msg : msg\n });\n\n this._trigger('create');\n \n return this;\n },\n\n info : function info(msg, options){\n return this.message('info', msg, options)\n .open();\n },\n\n success : function success(msg, options){\n return this.message('success', msg, options)\n .open();\n },\n\n warning : function warning(msg, options){\n return this.message('warning', msg, options)\n .open();\n },\n\n danger : function danger(msg, options){\n return this.message('danger', msg, options)\n .open();\n },\n\n error : function error(msg, options){\n return this.message('error', msg, options)\n .open();\n },\n\n open : function open(){\n\n this._trigger();\n\n // do not manage persistent message until finished\n //if(this.category === 'persistent'){ \n //this.merge();\n //} else {\n\n //close others\n _(currents)\n //.where({ category : 'volatile' }) //all volatiles\n .reject({ id : this.id}) //but this\n .invoke('close'); //run close\n\n //and display me\n this.display();\n// }\n return this;\n },\n\n close : function close(){\n if(this.isInState(states.displayed)){\n\n this.setState(states.closed);\n\n $('#' + this.id).remove();\n \n this._trigger();\n \n //clean up refs\n _.remove(currents, { _state : states.closed });\n }\n },\n\n display : function display(){\n var self = this;\n if(this.content){\n this.setState(states.displayed);\n\n $(this.content)\n .attr('id', this.id)\n .appendTo(this._container);\n \n this._trigger();\n\n if(this._getTimeout() >= 0){\n setTimeout(function(){\n \n //volatiles messages auto close and persistent collapse\n // if(self.category === 'volatile'){\n self.close();\n //} else {\n //self.collapse();\n //}\n\n }, this._getTimeout());\n }\n\n // close button\n var $btn = this._container.find('.icon-close');\n if($btn.length) {\n $btn\n .off('click')\n .on('click', self.close );\n }\n \n }\n return this;\n },\n\n merge : function merge(){\n var previous = _.find(currents, { category : 'persistent' });\n if(!previous){\n return this.display();\n }\n //do the merge\n this.setState(states.merged);\n \n \n this._trigger();\n },\n\n collapse : function collapse(){\n\n this._trigger();\n },\n\n /**\n * trigger the event and the callback if exists\n * @param {String} [eventName] - the name of the event, use the caller name if not set\n */\n _trigger : function _trigger(eventName) {\n var name = eventName || this._trigger.caller.name;\n\n //trigger the related event\n this._container.trigger(name + '.feedback', [this]);\n\n //run the callback if set in options\n if(_.isFunction(this.options[name])){\n this.options[name].call(this);\n }\n },\n\n /**\n * Get level-specific or custom timeout for message\n * @returns {*}\n * @private\n */\n _getTimeout: function (level) {\n if (_.isUndefined(level)){\n level = this.level;\n }\n if (_.isObject(this.options.timeout)) {\n return this.options.timeout[level];\n }\n return this.options.timeout;\n }\n };\n\n /**\n * Contains the current state of the feedback and accessor\n * @typedef feedbackState\n */\n var feedbackState = {\n\n //the current state\n _state : null,\n\n /**\n * Check if the current state is one of the given values\n * @param {String|Array} verify - the statue to check\n * @returns {Boolean} true if the object is in the state to verify\n */ \n isInState : function isInState(verify){\n if(!_.isString(verify)){\n verify = [verify];\n }\n return _.contains(verify, this._state);\n },\n\n /**\n * Change the current state\n * @param {String} state - the new state\n * @throws {Error} if we try to set an invalid state\n */\n setState : function setState(state){\n if(!_.contains(states, state)){\n throw new Error('Unkown state ' + state );\n }\n this._state = state;\n } \n };\n\n /**\n * Enables you to create a new feedback.\n * example fb().error(\"content\");\n * @exports ui/feedback\n * @param {jQUeryElement} [$container] - only to specify another container\n * @returns {Object} the feedback object\n * @throws {Error} if the container isn't found\n */\n var feedbackFactory = function feedbackFactory( $container ){\n var _container;\n if(!$feedBackBox){\n $feedBackBox = $('#feedback-box');\n }\n _container = $container || $feedBackBox;\n \n if(!_container || !_container.length){\n throw new Error('The feedback needs to belong to an existing container');\n }\n\n //mixin the new object with the state object\n var fb = _.extend( {\n id : 'feedback-' + (currents.length + 1),\n _container : _container\n }, feedbackState);\n\n currents.push(fb);\n \n //delegate the api calls to the new instance\n return delegate(fb, feedbackApi);\n }; \n\n\n return feedbackFactory;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n *\n * Logger API, highly inspired from https://github.com/trentm/node-bunyan\n *\n * TODO sprintf like messages\n * TODO\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/logger/api',['lodash'], function(_){\n 'use strict';\n\n var defaultLevel = 'info';\n\n var levels = {\n fatal : 60, // The service/app is going to stop or become unusable now. An operator should definitely look into this soon.\n error : 50, // Fatal for a particular request, but the service/app continues servicing other requests. An operator should look at this soon(ish).\n warn : 40, // A note on something that should probably be looked at by an operator eventually.\n info : 30, // Detail on regular operation.\n debug : 20, // Anything else, i.e. too verbose to be included in \"info\" level.\n trace : 10 // Logging from external libraries used by your app or very detailed application logging.\n };\n\n var logQueue = [];\n\n /**\n * Creates a logger instance\n * @param {loggerProvider} provider - the logger provider\n * @param {String} [context] - add a context in all logged messages\n * @returns {logger} a new logger instance\n */\n var loggerFactory = function loggerFactory(context){\n\n\n /**\n * Exposes a log method and one by log level, like logger.trace()\n *\n * @typedef logger\n */\n var logger = {\n\n /**\n * Log messages by delegating to the provider\n *\n * @param {String|Number} [level] - the log level\n * @param {...String} messages - the messages\n * @returns {logger} chains\n */\n log : function log(level){\n var messages;\n var stack;\n var time = Date.now();\n\n //extract arguments : optional level and messages\n if(_.isString(level) && !_.isNumber(levels[level])){\n messages = [].slice.call(arguments);\n level = defaultLevel;\n }\n if(_.isNumber(level)){\n level = _.findKey(levels, function(l){\n return l === level;\n }) || defaultLevel;\n }\n\n if(!messages){\n messages = [].slice.call(arguments, 1);\n }\n\n if(levels[level] >= levels.error){\n stack = new Error().stack || 'no stack infos';\n }\n\n //push the message to the queue\n logQueue.push({\n time : time,\n level : level,\n messages : messages,\n context : context,\n stack : stack\n });\n\n this.flush();\n\n return this;\n },\n\n /**\n * Flush the message queue if there's at least on provider\n * @returns {logger} chains\n */\n flush : function flush(){\n if(loggerFactory.providers && loggerFactory.providers.length){\n _.forEach(logQueue, function(message){\n //forward to the providers\n _.forEach(loggerFactory.providers, function(provider){\n provider.log.call(provider, message);\n });\n });\n //clear the queue\n logQueue = [];\n }\n return this;\n }\n };\n\n //augment the logger by each level\n return _.reduce(levels, function reduceLogLevel(target, level, levelName){\n target[levelName] = _.partial(logger.log, level);\n return target;\n }, logger);\n };\n\n /**\n * A logger provider provides with a way to log\n * @typedef {Object} loggerProvider\n * @property {Function} log - called with the message in parameter\n * @throws TypeError\n */\n loggerFactory.register = function register(provider){\n\n if(!_.isPlainObject(provider) || !_.isFunction(provider.log)){\n throw new TypeError('A log provider is an object with a log method');\n }\n this.providers = this.providers || [];\n this.providers.push(provider);\n };\n\n return loggerFactory;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n * A console based logger.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/logger/console',[\n 'lodash',\n], function(_){\n 'use strict';\n\n /**\n * Initialize the logger API with the console provider\n * @returns {logger} the logger\n */\n return {\n log : function log(message){\n\n var level = message.level;\n var messages = message.messages;\n if(message.context){\n messages.unshift('[' + message.context + ']');\n }\n if(_.isFunction(window.console[level])){\n window.console[level].apply(window.console, messages);\n } else {\n window.console.log.apply(window.console, [level.toUpperCase()].concat(messages));\n }\n }\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n *\n * Logger facade\n *\n * Load the logger providers based on the module configuration\n * and exposes the logger api\n *\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/logger',[\n 'lodash',\n 'module',\n 'core/logger/api',\n 'core/logger/console'\n], function(_, module, loggerApi, consoleLogger){\n 'use strict';\n\n //the logger providers are configured through the AMD module config\n var config = module.config();\n if(_.isArray(config.loggers) && config.loggers.length){\n\n //we can load the loggers dynamically\n require(config.loggers, function(){\n var loggerProviders = [].slice.call(arguments);\n _.forEach(loggerProviders, function (provider){\n loggerApi.register(provider);\n });\n\n //flush messages that arrived before the providers are there\n loggerApi.flush();\n });\n\n } else {\n\n //defaults to the console provider\n loggerApi.register(consoleLogger);\n }\n\n //exposes the API\n return loggerApi;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n * @author Sam <sam@taotesting.com>\n */\ndefine('taoTests/runner/runner',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/eventifier',\n 'core/promise',\n 'core/logger',\n 'core/providerRegistry'\n], function ($, _, __, eventifier, Promise, logger, providerRegistry){\n 'use strict';\n\n /**\n * Builds an instance of the QTI test runner\n *\n * @param {String} providerName\n * @param {Object} config\n * @param {String|DOMElement|JQuery} config.contentContainer - the dom element that is going to holds the test content (item, rubick, etc)\n * @param {Array} [config.plugins] - the list of plugin instances to be initialized and bound to the test runner\n * @returns {runner|_L28.testRunnerFactory.runner}\n */\n function testRunnerFactory(providerName, pluginFactories, config){\n\n /**\n * @type {Object} The test runner instance\n */\n var runner;\n\n /**\n * @type {Object} the test definition data\n */\n var testData = {};\n\n /**\n * @type {Object} contextual test data (the state of the test)\n */\n var testContext = {};\n\n /**\n * @type {Object} contextual test map (the map of accessible items)\n */\n var testMap = {};\n\n /**\n * @type {Object} the registered plugins\n */\n var plugins = {};\n\n /**\n * @type {Object} the test of the runner\n */\n var states = {\n 'init': false,\n 'ready': false,\n 'render': false,\n 'finish': false,\n 'destroy': false\n };\n\n /**\n * @type {Object} keeps the states of the items\n */\n var itemStates = {};\n\n /**\n * The selected test runner provider\n */\n var provider = testRunnerFactory.getProvider(providerName);\n\n /**\n * Keep the area broker instance\n * @see taoTests/runner/areaBroker\n */\n var areaBroker;\n\n /**\n * Keep the proxy instance\n * @see taoTests/runner/proxy\n */\n var proxy;\n\n\n /**\n * Keep the instance of the probes overseer\n * @see taoTests/runner/probeOverseer\n */\n var probeOverseer;\n\n /**\n * Run a method of the provider (by delegation)\n *\n * @param {String} method - the method to run\n * @param {...} args - rest parameters given to the provider method\n * @returns {Promise} so provider can do async stuffs\n */\n function providerRun(method){\n var args = [].slice.call(arguments, 1);\n return new Promise(function(resolve){\n if(!_.isFunction(provider[method])){\n return resolve();\n }\n return resolve(provider[method].apply(runner, args));\n });\n }\n\n /**\n * Run a method in all plugins\n *\n * @param {String} method - the method to run\n * @returns {Promise} once that resolve when all plugins are done\n */\n function pluginRun(method){\n var execStack = [];\n\n _.forEach(runner.getPlugins(), function (plugin){\n if(_.isFunction(plugin[method])){\n execStack.push(plugin[method]());\n }\n });\n\n return Promise.all(execStack);\n }\n\n /**\n * Trigger error event\n * @param {Error|String} err - the error\n * @fires runner#error\n */\n function reportError(err){\n runner.trigger('error', err);\n }\n\n\n config = config || {};\n\n /**\n * Defines the test runner\n *\n * @type {runner}\n */\n runner = eventifier({\n\n /**\n * Initialize the runner\n * - instantiate the plugins\n * - provider init\n * - plugins init\n * - call render\n * @fires runner#init\n * @returns {runner} chains\n */\n init : function init(){\n var self = this;\n\n //instantiate the plugins first\n _.forEach(pluginFactories, function(pluginFactory){\n var plugin = pluginFactory(runner, self.getAreaBroker());\n plugins[plugin.getName()] = plugin;\n });\n\n providerRun('loadPersistentStates')\n .then(_.partial(pluginRun, 'install'))\n .then(_.partial(providerRun, 'init'))\n .then(_.partial(pluginRun, 'init'))\n .then(function() {\n self.setState('init', true)\n .trigger('init')\n .render();\n })\n .catch(reportError);\n\n return this;\n },\n\n /**\n * Render the runner\n * - provider render\n * - plugins render\n * @fires runner#render\n * @fires runner#ready\n * @returns {runner} chains\n */\n render : function render(){\n var self = this;\n\n providerRun('render').then(function(){\n pluginRun('render').then(function(){\n self.setState('ready', true)\n .trigger('render')\n .trigger('ready');\n }).catch(reportError);\n }).catch(reportError);\n return this;\n },\n\n /**\n * Load an item\n * - provider loadItem, resolve or return the itemData\n * - plugins loadItem\n * - call renderItem\n * @param {*} itemRef - something that let you identify the item to load\n * @fires runner#loaditem\n * @returns {runner} chains\n */\n loadItem : function loadItem(itemRef){\n var self = this;\n\n providerRun('loadItem', itemRef).then(function(itemData){\n self.setItemState(itemRef, 'loaded', true)\n .trigger('loaditem', itemRef)\n .renderItem(itemRef, itemData);\n }).catch(reportError);\n return this;\n },\n\n /**\n * Render an item\n * - provider renderItem\n * - plugins renderItem\n * @param {Object} itemData - the loaded item data\n * @fires runner#renderitem\n * @returns {runner} chains\n */\n renderItem : function renderItem(itemRef, itemData){\n var self = this;\n\n providerRun('renderItem', itemRef, itemData).then(function(){\n self.setItemState(itemRef, 'ready', true)\n .trigger('renderitem', itemRef, itemData);\n }).catch(reportError);\n return this;\n },\n\n /**\n * Unload an item (for example to destroy the item)\n * - provider unloadItem\n * - plugins unloadItem\n * @param {*} itemRef - something that let you identify the item to unload\n * @fires runner#unloaditem\n * @returns {runner} chains\n */\n unloadItem : function unloadItem(itemRef){\n var self = this;\n\n providerRun('unloadItem', itemRef).then(function(){\n itemStates = _.omit(itemStates, itemRef);\n self.trigger('unloaditem', itemRef);\n }).catch(reportError);\n return this;\n },\n\n /**\n * Disable an item\n * - provider disableItem\n * @param {*} itemRef - something that let you identify the item\n * @fires runner#disableitem\n * @returns {runner} chains\n */\n disableItem : function disableItem(itemRef){\n var self = this;\n\n if(!this.getItemState(itemRef, 'disabled')){\n\n providerRun('disableItem', itemRef).then(function(){\n self.setItemState(itemRef, 'disabled', true)\n .trigger('disableitem', itemRef);\n }).catch(reportError);\n }\n return this;\n },\n\n /**\n * Enable an item\n * - provider enableItem\n * @param {*} itemRef - something that let you identify the item\n * @fires runner#disableitem\n * @returns {runner} chains\n */\n enableItem : function enableItem(itemRef){\n var self = this;\n\n if(this.getItemState(itemRef, 'disabled')){\n providerRun('enableItem', itemRef).then(function(){\n self.setItemState(itemRef, 'disabled', false)\n .trigger('enableitem', itemRef);\n }).catch(reportError);\n }\n return this;\n },\n\n /**\n * When the test is terminated\n * - provider finish\n * - plugins finsh\n * @fires runner#finish\n * @returns {runner} chains\n */\n finish : function finish(){\n var self = this;\n\n providerRun('finish').then(function(){\n pluginRun('finish').then(function(){\n self.setState('finish', true)\n .trigger('finish');\n }).catch(reportError);\n }).catch(reportError);\n return this;\n },\n\n /**\n * Flushes the runner\n * - provider flush\n * - plugins flush\n * @fires runner#flush\n * @returns {runner} chains\n */\n flush : function flush(){\n var self = this;\n\n providerRun('flush').then(function(){\n pluginRun('flush').then(function(){\n self.setState('flush', true)\n .trigger('flush');\n }).catch(reportError);\n }).catch(reportError);\n return this;\n },\n\n /**\n * Destroy\n * - provider destroy\n * - plugins destroy\n * @fires runner#destroy\n * @returns {runner} chains\n */\n destroy : function destroy(){\n var self = this;\n\n providerRun('destroy').then(function(){\n pluginRun('destroy').then(function(){\n var destroyed;\n\n if (proxy) {\n destroyed = proxy.destroy();\n } else {\n destroyed = Promise.resolve();\n }\n\n return destroyed.then(function() {\n testContext = {};\n self.setState('destroy', true)\n .trigger('destroy');\n });\n }).catch(reportError);\n }).catch(reportError);\n return this;\n },\n\n /**\n * Get the runner pugins\n * @returns {plugin[]} the plugins\n */\n getPlugins : function getPlugins(){\n return plugins;\n },\n\n /**\n * Get a plugin\n * @param {String} name - the plugin name\n * @returns {plugin} the plugin\n */\n getPlugin : function getPlugin(name){\n return plugins[name];\n },\n\n /**\n * Get the config\n * @returns {Object} the config\n */\n getConfig : function getConfig(){\n return config;\n },\n\n /**\n * Get the area broker, load it if not present\n *\n * @returns {areaBroker} the areaBroker\n */\n getAreaBroker : function getAreaBroker(){\n if(!areaBroker){\n areaBroker = provider.loadAreaBroker.call(this);\n }\n return areaBroker;\n },\n\n\n /**\n * Get the proxy, load it if not present\n *\n * @returns {proxy} the proxy\n */\n getProxy : function getProxy(){\n var self = this;\n if(!proxy){\n if(!_.isFunction(provider.loadProxy)){\n throw new Error('The provider does not have a loadProxy method');\n }\n proxy = provider.loadProxy.call(this);\n\n proxy.on('error', function (error) {\n self.trigger('error', error);\n });\n }\n return proxy;\n },\n\n /**\n * Get the probeOverseer, and load it if not present\n *\n * @returns {probeOverseer} the probe overseer\n */\n getProbeOverseer : function getProbeOverseer(){\n if(!probeOverseer && _.isFunction(provider.loadProbeOverseer)){\n probeOverseer = provider.loadProbeOverseer.call(this);\n }\n\n return probeOverseer;\n },\n\n /**\n * Check a runner state\n *\n * @param {String} name - the state name\n * @returns {Boolean} if active, false if not set\n */\n getState : function getState(name){\n return !!states[name];\n },\n\n /**\n * Define a runner state\n *\n * @param {String} name - the state name\n * @param {Boolean} active - is the state active\n * @returns {runner} chains\n * @throws {TypeError} if the state name is not a valid string\n */\n setState : function setState(name, active){\n if(!_.isString(name) || _.isEmpty(name)){\n throw new TypeError('The state must have a name');\n }\n states[name] = !!active;\n\n return this;\n },\n\n /**\n * Checks a runner persistent state\n * - provider getPersistentState\n *\n * @param {String} name - the state name\n * @returns {Boolean} if active, false if not set\n */\n getPersistentState : function getPersistentState(name) {\n var getPersistentState = provider.getPersistentState;\n var state;\n\n if(_.isFunction(getPersistentState)){\n state = getPersistentState.call(runner, name);\n }\n\n return !!state;\n },\n\n /**\n * Defines a runner persistent state\n * - provider setPersistentState\n *\n * @param {String} name - the state name\n * @param {Boolean} active - is the state active\n * @returns {Promise} Returns a promise that:\n * - will be resolved once the state is fully stored\n * - will be rejected if any error occurs or if the state name is not a valid string\n */\n setPersistentState : function setPersistentState(name, active) {\n var stored;\n\n if (!_.isString(name) || _.isEmpty(name)) {\n stored = Promise.reject(new TypeError('The state must have a name'));\n } else {\n stored = providerRun('setPersistentState', name, !!active);\n }\n\n stored.catch(reportError);\n\n return stored;\n },\n\n /**\n * Check an item state\n *\n * @param {*} itemRef - something that let you identify the item\n * @param {String} name - the state name\n * @returns {Boolean} if active, false if not set\n *\n * @throws {TypeError} if there is no itemRef nor name\n */\n getItemState : function getItemState(itemRef, name){\n if( _.isEmpty(itemRef) || _.isEmpty(name)){\n throw new TypeError('The state is identified by an itemRef and a name');\n }\n return !!(itemStates[itemRef] && itemStates[itemRef][name]);\n },\n\n /**\n * Check an item state\n *\n * @param {*} itemRef - something that let you identify the item\n * @param {String} name - the state name\n * @param {Boolean} active - is the state active\n * @returns {runner} chains\n *\n * @throws {TypeError} if there is no itemRef nor name\n */\n setItemState : function setItemState(itemRef, name, active){\n if( _.isEmpty(itemRef) || _.isEmpty(name)){\n throw new TypeError('The state is identified by an itemRef and a name');\n }\n itemStates[itemRef] = itemStates[itemRef] || {\n 'loaded' : false,\n 'ready' : false,\n 'disabled': false\n };\n\n itemStates[itemRef][name] = !!active;\n\n return this;\n },\n\n /**\n * Get the test data/definition\n * @returns {Object} the test data\n */\n getTestData : function getTestData(){\n return testData;\n },\n\n /**\n * Set the test data/definition\n * @param {Object} data - the test data\n * @returns {runner} chains\n */\n setTestData : function setTestData(data){\n testData = data;\n\n return this;\n },\n\n /**\n * Get the test context/state\n * @returns {Object} the test context\n */\n getTestContext : function getTestContext(){\n return testContext;\n },\n\n /**\n * Set the test context/state\n * @param {Object} context - the context to set\n * @returns {runner} chains\n */\n setTestContext : function setTestContext(context){\n if(_.isPlainObject(context)){\n testContext = context;\n }\n return this;\n },\n\n /**\n * Get the test items map\n * @returns {Object} the test map\n */\n getTestMap : function getTestMap(){\n return testMap;\n },\n\n /**\n * Set the test items map\n * @param {Object} map - the map to set\n * @returns {runner} chains\n */\n setTestMap : function setTestMap(map){\n if(_.isPlainObject(map)){\n testMap = map;\n }\n return this;\n },\n\n /**\n * Move next alias\n * @param {String|*} [scope] - the movement scope\n * @fires runner#move\n * @returns {runner} chains\n */\n next : function next(scope){\n this.trigger('move', 'next', scope);\n return this;\n },\n\n /**\n * Move previous alias\n * @param {String|*} [scope] - the movement scope\n * @fires runner#move\n * @returns {runner} chains\n */\n previous : function previous(scope){\n this.trigger('move', 'previous', scope);\n return this;\n },\n\n /**\n * Move to alias\n * @param {String|Number} position - where to jump\n * @param {String|*} [scope] - the movement scope\n * @fires runner#move\n * @returns {runner} chains\n */\n jump : function jump(position, scope){\n this.trigger('move', 'jump', scope, position);\n return this;\n },\n\n /**\n * Skip alias\n * @param {String|*} [scope] - the movement scope\n * @fires runner#move\n * @returns {runner} chains\n */\n skip : function skip(scope){\n this.trigger('skip', scope);\n return this;\n },\n\n /**\n * Exit the test\n * @param {String|*} [why] - reason the test is exited\n * @fires runner#exit\n * @returns {runner} chains\n */\n exit : function exit(why){\n this.trigger('exit', why);\n return this;\n },\n\n /**\n * Pause the current execution\n * @fires runner#pause\n * @returns {runner} chains\n */\n pause : function pause(){\n if(!this.getState('pause')){\n this.setState('pause', true)\n .trigger('pause');\n }\n return this;\n },\n\n /**\n * Resume a paused test\n * @fires runner#pause\n * @returns {runner} chains\n */\n resume : function resume(){\n if(this.getState('pause') === true){\n this.setState('pause', false)\n .trigger('resume');\n }\n return this;\n },\n\n /**\n * Notify a test timeout\n * @param {String} scope\n * @param {String} ref\n * @fires runner#timeout\n * @returns {runner} chains\n */\n timeout : function timeout(scope, ref){\n this.trigger('timeout', scope, ref);\n return this;\n }\n });\n\n runner.on('move', function move(type){\n this.trigger.apply(this, [type].concat([].slice.call(arguments, 1)));\n });\n\n return runner;\n }\n\n //bind the provider registration capabilities to the testRunnerFactory\n return providerRegistry(testRunnerFactory, function validateProvider(provider){\n\n //mandatory methods\n if(!_.isFunction(provider.loadAreaBroker)){\n throw new TypeError('The runner provider MUST have a method that returns an areaBroker');\n }\n return true;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * LocalStorage backend of the client store\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/store/localstorage',['lodash', 'core/promise'], function(_, Promise){\n 'use strict';\n\n /**\n * Prefix all databases\n */\n var prefix = 'tao-store-';\n var storage = window.localStorage;\n\n /**\n * Open and access a store\n * @param {String} storeName - the store name to open\n * @returns {Object} the store backend\n * @throws {TypeError} without a storeName\n */\n var localStorageBackend = function localStorageBackend(storeName){\n\n var name;\n if(_.isEmpty(storeName) || !_.isString(storeName)){\n throw new TypeError('The store name is required');\n }\n\n //prefix all storage entries to avoid global keys confusion\n name = prefix + storeName + '.';\n\n /**\n * The store\n */\n return {\n\n /**\n * Get an item with the given key\n * @param {String} key\n * @returns {Promise} with the result in resolve, undefined if nothing\n */\n getItem : function getItem(key){\n return new Promise(function(resolve, reject){\n var value;\n try{\n value = storage.getItem(name + key);\n if(value === null){\n resolve();\n } else {\n resolve(JSON.parse(value));\n }\n } catch(ex){\n reject(ex);\n }\n });\n },\n\n /**\n * Set an item with the given key\n * @param {String} key - the item key\n * @param {*} value - the item value\n * @returns {Promise} with true in resolve if added/updated\n */\n setItem : function setItem(key, value){\n return new Promise(function(resolve, reject){\n try{\n storage.setItem(name + key, JSON.stringify(value));\n resolve(true);\n } catch(ex){\n reject(ex);\n }\n });\n },\n\n /**\n * Remove an item with the given key\n * @param {String} key - the item key\n * @returns {Promise} with true in resolve if removed\n */\n removeItem : function removeItem(key){\n return new Promise(function(resolve, reject){\n try{\n storage.removeItem(name + key);\n resolve(true);\n } catch(ex){\n reject(ex);\n }\n });\n },\n\n /**\n * Clear the current store\n * @returns {Promise} with true in resolve once cleared\n */\n clear : function clear(){\n var keyPattern = new RegExp('^' + name);\n return new Promise(function(resolve, reject){\n var i;\n try{\n _(storage)\n .map(function(entry, index){\n return storage.key(index);\n })\n .filter(function(key){\n return keyPattern.test(key);\n })\n .forEach(function(key){\n storage.removeItem(key);\n });\n resolve(true);\n } catch(ex){\n reject(ex);\n }\n });\n }\n };\n };\n\n return localStorageBackend;\n});\n\n","/*global window:false, self:false, define:false, module:false */\n\n/**\n * @license IDBWrapper - A cross-browser wrapper for IndexedDB\n * Version 1.7.0\n * Copyright (c) 2011 - 2016 Jens Arps\n * http://jensarps.de/\n *\n * Licensed under the MIT (X11) license\n */\n\n(function (name, definition, global) {\n\n 'use strict';\n\n if (typeof define === 'function') {\n define('lib/store/idbstore',definition);\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = definition();\n } else {\n global[name] = definition();\n }\n})('IDBStore', function () {\n\n 'use strict';\n\n var defaultErrorHandler = function (error) {\n throw error;\n };\n var defaultSuccessHandler = function () {\n };\n\n var defaults = {\n storeName: 'Store',\n storePrefix: 'IDBWrapper-',\n dbVersion: 1,\n keyPath: 'id',\n autoIncrement: true,\n onStoreReady: function () {\n },\n onError: defaultErrorHandler,\n indexes: [],\n implementationPreference: [\n 'indexedDB',\n 'webkitIndexedDB',\n 'mozIndexedDB',\n 'shimIndexedDB'\n ]\n };\n\n /**\n *\n * The IDBStore constructor\n *\n * @constructor\n * @name IDBStore\n * @version 1.7.0\n *\n * @param {Object} [kwArgs] An options object used to configure the store and\n * set callbacks\n * @param {String} [kwArgs.storeName='Store'] The name of the store\n * @param {String} [kwArgs.storePrefix='IDBWrapper-'] A prefix that is\n * internally used to construct the name of the database, which will be\n * kwArgs.storePrefix + kwArgs.storeName\n * @param {Number} [kwArgs.dbVersion=1] The version of the store\n * @param {String} [kwArgs.keyPath='id'] The key path to use. If you want to\n * setup IDBWrapper to work with out-of-line keys, you need to set this to\n * `null`\n * @param {Boolean} [kwArgs.autoIncrement=true] If set to true, IDBStore will\n * automatically make sure a unique keyPath value is present on each object\n * that is stored.\n * @param {Function} [kwArgs.onStoreReady] A callback to be called when the\n * store is ready to be used.\n * @param {Function} [kwArgs.onError=throw] A callback to be called when an\n * error occurred during instantiation of the store.\n * @param {Array} [kwArgs.indexes=[]] An array of indexData objects\n * defining the indexes to use with the store. For every index to be used\n * one indexData object needs to be passed in the array.\n * An indexData object is defined as follows:\n * @param {Object} [kwArgs.indexes.indexData] An object defining the index to\n * use\n * @param {String} kwArgs.indexes.indexData.name The name of the index\n * @param {String} [kwArgs.indexes.indexData.keyPath] The key path of the index\n * @param {Boolean} [kwArgs.indexes.indexData.unique] Whether the index is unique\n * @param {Boolean} [kwArgs.indexes.indexData.multiEntry] Whether the index is multi entry\n * @param {Array} [kwArgs.implementationPreference=['indexedDB','webkitIndexedDB','mozIndexedDB','shimIndexedDB']] An array of strings naming implementations to be used, in order or preference\n * @param {Function} [onStoreReady] A callback to be called when the store\n * is ready to be used.\n * @example\n // create a store for customers with an additional index over the\n // `lastname` property.\n var myCustomerStore = new IDBStore({\n dbVersion: 1,\n storeName: 'customer-index',\n keyPath: 'customerid',\n autoIncrement: true,\n onStoreReady: populateTable,\n indexes: [\n { name: 'lastname', keyPath: 'lastname', unique: false, multiEntry: false }\n ]\n });\n * @example\n // create a generic store\n var myCustomerStore = new IDBStore({\n storeName: 'my-data-store',\n onStoreReady: function(){\n // start working with the store.\n }\n });\n */\n var IDBStore = function (kwArgs, onStoreReady) {\n\n if (typeof onStoreReady == 'undefined' && typeof kwArgs == 'function') {\n onStoreReady = kwArgs;\n }\n if (Object.prototype.toString.call(kwArgs) != '[object Object]') {\n kwArgs = {};\n }\n\n for (var key in defaults) {\n this[key] = typeof kwArgs[key] != 'undefined' ? kwArgs[key] : defaults[key];\n }\n\n this.dbName = this.storePrefix + this.storeName;\n this.dbVersion = parseInt(this.dbVersion, 10) || 1;\n\n onStoreReady && (this.onStoreReady = onStoreReady);\n\n var env = typeof window == 'object' ? window : self;\n var availableImplementations = this.implementationPreference.filter(function (implName) {\n return implName in env;\n });\n this.implementation = availableImplementations[0];\n this.idb = env[this.implementation];\n this.keyRange = env.IDBKeyRange || env.webkitIDBKeyRange || env.mozIDBKeyRange;\n\n this.consts = {\n 'READ_ONLY': 'readonly',\n 'READ_WRITE': 'readwrite',\n 'VERSION_CHANGE': 'versionchange',\n 'NEXT': 'next',\n 'NEXT_NO_DUPLICATE': 'nextunique',\n 'PREV': 'prev',\n 'PREV_NO_DUPLICATE': 'prevunique'\n };\n\n this.openDB();\n };\n\n /** @lends IDBStore.prototype */\n var proto = {\n\n /**\n * A pointer to the IDBStore ctor\n *\n * @private\n * @type {Function}\n * @constructs\n */\n constructor: IDBStore,\n\n /**\n * The version of IDBStore\n *\n * @type {String}\n */\n version: '1.7.0',\n\n /**\n * A reference to the IndexedDB object\n *\n * @type {IDBDatabase}\n */\n db: null,\n\n /**\n * The full name of the IndexedDB used by IDBStore, composed of\n * this.storePrefix + this.storeName\n *\n * @type {String}\n */\n dbName: null,\n\n /**\n * The version of the IndexedDB used by IDBStore\n *\n * @type {Number}\n */\n dbVersion: null,\n\n /**\n * A reference to the objectStore used by IDBStore\n *\n * @type {IDBObjectStore}\n */\n store: null,\n\n /**\n * The store name\n *\n * @type {String}\n */\n storeName: null,\n\n /**\n * The prefix to prepend to the store name\n *\n * @type {String}\n */\n storePrefix: null,\n\n /**\n * The key path\n *\n * @type {String}\n */\n keyPath: null,\n\n /**\n * Whether IDBStore uses autoIncrement\n *\n * @type {Boolean}\n */\n autoIncrement: null,\n\n /**\n * The indexes used by IDBStore\n *\n * @type {Array}\n */\n indexes: null,\n\n /**\n * The implemantations to try to use, in order of preference\n *\n * @type {Array}\n */\n implementationPreference: null,\n\n /**\n * The actual implementation being used\n *\n * @type {String}\n */\n implementation: '',\n\n /**\n * The callback to be called when the store is ready to be used\n *\n * @type {Function}\n */\n onStoreReady: null,\n\n /**\n * The callback to be called if an error occurred during instantiation\n * of the store\n *\n * @type {Function}\n */\n onError: null,\n\n /**\n * The internal insertID counter\n *\n * @type {Number}\n * @private\n */\n _insertIdCount: 0,\n\n /**\n * Opens an IndexedDB; called by the constructor.\n *\n * Will check if versions match and compare provided index configuration\n * with existing ones, and update indexes if necessary.\n *\n * Will call this.onStoreReady() if everything went well and the store\n * is ready to use, and this.onError() is something went wrong.\n *\n * @private\n *\n */\n openDB: function () {\n\n var openRequest = this.idb.open(this.dbName, this.dbVersion);\n var preventSuccessCallback = false;\n\n openRequest.onerror = function (error) {\n\n var gotVersionErr = false;\n if ('error' in error.target) {\n gotVersionErr = error.target.error.name == 'VersionError';\n } else if ('errorCode' in error.target) {\n gotVersionErr = error.target.errorCode == 12;\n }\n\n if (gotVersionErr) {\n this.onError(new Error('The version number provided is lower than the existing one.'));\n } else {\n this.onError(error);\n }\n }.bind(this);\n\n openRequest.onsuccess = function (event) {\n\n if (preventSuccessCallback) {\n return;\n }\n\n if (this.db) {\n this.onStoreReady();\n return;\n }\n\n this.db = event.target.result;\n\n if (typeof this.db.version == 'string') {\n this.onError(new Error('The IndexedDB implementation in this browser is outdated. Please upgrade your browser.'));\n return;\n }\n\n if (!this.db.objectStoreNames.contains(this.storeName)) {\n // We should never ever get here.\n // Lets notify the user anyway.\n this.onError(new Error('Object store couldn\\'t be created.'));\n return;\n }\n\n var emptyTransaction = this.db.transaction([this.storeName], this.consts.READ_ONLY);\n this.store = emptyTransaction.objectStore(this.storeName);\n\n // check indexes\n var existingIndexes = Array.prototype.slice.call(this.getIndexList());\n this.indexes.forEach(function (indexData) {\n var indexName = indexData.name;\n\n if (!indexName) {\n preventSuccessCallback = true;\n this.onError(new Error('Cannot create index: No index name given.'));\n return;\n }\n\n this.normalizeIndexData(indexData);\n\n if (this.hasIndex(indexName)) {\n // check if it complies\n var actualIndex = this.store.index(indexName);\n var complies = this.indexComplies(actualIndex, indexData);\n if (!complies) {\n preventSuccessCallback = true;\n this.onError(new Error('Cannot modify index \"' + indexName + '\" for current version. Please bump version number to ' + ( this.dbVersion + 1 ) + '.'));\n }\n\n existingIndexes.splice(existingIndexes.indexOf(indexName), 1);\n } else {\n preventSuccessCallback = true;\n this.onError(new Error('Cannot create new index \"' + indexName + '\" for current version. Please bump version number to ' + ( this.dbVersion + 1 ) + '.'));\n }\n\n }, this);\n\n if (existingIndexes.length) {\n preventSuccessCallback = true;\n this.onError(new Error('Cannot delete index(es) \"' + existingIndexes.toString() + '\" for current version. Please bump version number to ' + ( this.dbVersion + 1 ) + '.'));\n }\n\n preventSuccessCallback || this.onStoreReady();\n }.bind(this);\n\n openRequest.onupgradeneeded = function (/* IDBVersionChangeEvent */ event) {\n\n this.db = event.target.result;\n\n if (this.db.objectStoreNames.contains(this.storeName)) {\n this.store = event.target.transaction.objectStore(this.storeName);\n } else {\n var optionalParameters = {autoIncrement: this.autoIncrement};\n if (this.keyPath !== null) {\n optionalParameters.keyPath = this.keyPath;\n }\n this.store = this.db.createObjectStore(this.storeName, optionalParameters);\n }\n\n var existingIndexes = Array.prototype.slice.call(this.getIndexList());\n this.indexes.forEach(function (indexData) {\n var indexName = indexData.name;\n\n if (!indexName) {\n preventSuccessCallback = true;\n this.onError(new Error('Cannot create index: No index name given.'));\n }\n\n this.normalizeIndexData(indexData);\n\n if (this.hasIndex(indexName)) {\n // check if it complies\n var actualIndex = this.store.index(indexName);\n var complies = this.indexComplies(actualIndex, indexData);\n if (!complies) {\n // index differs, need to delete and re-create\n this.store.deleteIndex(indexName);\n this.store.createIndex(indexName, indexData.keyPath, {\n unique: indexData.unique,\n multiEntry: indexData.multiEntry\n });\n }\n\n existingIndexes.splice(existingIndexes.indexOf(indexName), 1);\n } else {\n this.store.createIndex(indexName, indexData.keyPath, {\n unique: indexData.unique,\n multiEntry: indexData.multiEntry\n });\n }\n\n }, this);\n\n if (existingIndexes.length) {\n existingIndexes.forEach(function (_indexName) {\n this.store.deleteIndex(_indexName);\n }, this);\n }\n\n }.bind(this);\n },\n\n /**\n * Deletes the database used for this store if the IDB implementations\n * provides that functionality.\n *\n * @param {Function} [onSuccess] A callback that is called if deletion\n * was successful.\n * @param {Function} [onError] A callback that is called if deletion\n * failed.\n */\n deleteDatabase: function (onSuccess, onError) {\n if (this.idb.deleteDatabase) {\n this.db.close();\n var deleteRequest = this.idb.deleteDatabase(this.dbName);\n deleteRequest.onsuccess = onSuccess;\n deleteRequest.onerror = onError;\n } else {\n onError(new Error('Browser does not support IndexedDB deleteDatabase!'));\n }\n },\n\n /*********************\n * data manipulation *\n *********************/\n\n /**\n * Puts an object into the store. If an entry with the given id exists,\n * it will be overwritten. This method has a different signature for inline\n * keys and out-of-line keys; please see the examples below.\n *\n * @param {*} [key] The key to store. This is only needed if IDBWrapper\n * is set to use out-of-line keys. For inline keys - the default scenario -\n * this can be omitted.\n * @param {Object} value The data object to store.\n * @param {Function} [onSuccess] A callback that is called if insertion\n * was successful.\n * @param {Function} [onError] A callback that is called if insertion\n * failed.\n * @returns {IDBTransaction} The transaction used for this operation.\n * @example\n // Storing an object, using inline keys (the default scenario):\n var myCustomer = {\n customerid: 2346223,\n lastname: 'Doe',\n firstname: 'John'\n };\n myCustomerStore.put(myCustomer, mySuccessHandler, myErrorHandler);\n // Note that passing success- and error-handlers is optional.\n * @example\n // Storing an object, using out-of-line keys:\n var myCustomer = {\n lastname: 'Doe',\n firstname: 'John'\n };\n myCustomerStore.put(2346223, myCustomer, mySuccessHandler, myErrorHandler);\n // Note that passing success- and error-handlers is optional.\n */\n put: function (key, value, onSuccess, onError) {\n if (this.keyPath !== null) {\n onError = onSuccess;\n onSuccess = value;\n value = key;\n }\n onError || (onError = defaultErrorHandler);\n onSuccess || (onSuccess = defaultSuccessHandler);\n\n var hasSuccess = false,\n result = null,\n putRequest;\n\n var putTransaction = this.db.transaction([this.storeName], this.consts.READ_WRITE);\n putTransaction.oncomplete = function () {\n var callback = hasSuccess ? onSuccess : onError;\n callback(result);\n };\n putTransaction.onabort = onError;\n putTransaction.onerror = onError;\n\n if (this.keyPath !== null) { // in-line keys\n this._addIdPropertyIfNeeded(value);\n putRequest = putTransaction.objectStore(this.storeName).put(value);\n } else { // out-of-line keys\n putRequest = putTransaction.objectStore(this.storeName).put(value, key);\n }\n putRequest.onsuccess = function (event) {\n hasSuccess = true;\n result = event.target.result;\n };\n putRequest.onerror = onError;\n\n return putTransaction;\n },\n\n /**\n * Retrieves an object from the store. If no entry exists with the given id,\n * the success handler will be called with null as first and only argument.\n *\n * @param {*} key The id of the object to fetch.\n * @param {Function} [onSuccess] A callback that is called if fetching\n * was successful. Will receive the object as only argument.\n * @param {Function} [onError] A callback that will be called if an error\n * occurred during the operation.\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n get: function (key, onSuccess, onError) {\n onError || (onError = defaultErrorHandler);\n onSuccess || (onSuccess = defaultSuccessHandler);\n\n var hasSuccess = false,\n result = null;\n\n var getTransaction = this.db.transaction([this.storeName], this.consts.READ_ONLY);\n getTransaction.oncomplete = function () {\n var callback = hasSuccess ? onSuccess : onError;\n callback(result);\n };\n getTransaction.onabort = onError;\n getTransaction.onerror = onError;\n var getRequest = getTransaction.objectStore(this.storeName).get(key);\n getRequest.onsuccess = function (event) {\n hasSuccess = true;\n result = event.target.result;\n };\n getRequest.onerror = onError;\n\n return getTransaction;\n },\n\n /**\n * Removes an object from the store.\n *\n * @param {*} key The id of the object to remove.\n * @param {Function} [onSuccess] A callback that is called if the removal\n * was successful.\n * @param {Function} [onError] A callback that will be called if an error\n * occurred during the operation.\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n remove: function (key, onSuccess, onError) {\n onError || (onError = defaultErrorHandler);\n onSuccess || (onSuccess = defaultSuccessHandler);\n\n var hasSuccess = false,\n result = null;\n\n var removeTransaction = this.db.transaction([this.storeName], this.consts.READ_WRITE);\n removeTransaction.oncomplete = function () {\n var callback = hasSuccess ? onSuccess : onError;\n callback(result);\n };\n removeTransaction.onabort = onError;\n removeTransaction.onerror = onError;\n\n var deleteRequest = removeTransaction.objectStore(this.storeName)['delete'](key);\n deleteRequest.onsuccess = function (event) {\n hasSuccess = true;\n result = event.target.result;\n };\n deleteRequest.onerror = onError;\n\n return removeTransaction;\n },\n\n /**\n * Runs a batch of put and/or remove operations on the store.\n *\n * @param {Array} dataArray An array of objects containing the operation to run\n * and the data object (for put operations).\n * @param {Function} [onSuccess] A callback that is called if all operations\n * were successful.\n * @param {Function} [onError] A callback that is called if an error\n * occurred during one of the operations.\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n batch: function (dataArray, onSuccess, onError) {\n onError || (onError = defaultErrorHandler);\n onSuccess || (onSuccess = defaultSuccessHandler);\n\n if (Object.prototype.toString.call(dataArray) != '[object Array]') {\n onError(new Error('dataArray argument must be of type Array.'));\n } else if (dataArray.length === 0) {\n return onSuccess(true);\n }\n\n var count = dataArray.length;\n var called = false;\n var hasSuccess = false;\n\n var batchTransaction = this.db.transaction([this.storeName], this.consts.READ_WRITE);\n batchTransaction.oncomplete = function () {\n var callback = hasSuccess ? onSuccess : onError;\n callback(hasSuccess);\n };\n batchTransaction.onabort = onError;\n batchTransaction.onerror = onError;\n\n\n var onItemSuccess = function () {\n count--;\n if (count === 0 && !called) {\n called = true;\n hasSuccess = true;\n }\n };\n\n dataArray.forEach(function (operation) {\n var type = operation.type;\n var key = operation.key;\n var value = operation.value;\n\n var onItemError = function (err) {\n batchTransaction.abort();\n if (!called) {\n called = true;\n onError(err, type, key);\n }\n };\n\n if (type == 'remove') {\n var deleteRequest = batchTransaction.objectStore(this.storeName)['delete'](key);\n deleteRequest.onsuccess = onItemSuccess;\n deleteRequest.onerror = onItemError;\n } else if (type == 'put') {\n var putRequest;\n if (this.keyPath !== null) { // in-line keys\n this._addIdPropertyIfNeeded(value);\n putRequest = batchTransaction.objectStore(this.storeName).put(value);\n } else { // out-of-line keys\n putRequest = batchTransaction.objectStore(this.storeName).put(value, key);\n }\n putRequest.onsuccess = onItemSuccess;\n putRequest.onerror = onItemError;\n }\n }, this);\n\n return batchTransaction;\n },\n\n /**\n * Takes an array of objects and stores them in a single transaction.\n *\n * @param {Array} dataArray An array of objects to store\n * @param {Function} [onSuccess] A callback that is called if all operations\n * were successful.\n * @param {Function} [onError] A callback that is called if an error\n * occurred during one of the operations.\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n putBatch: function (dataArray, onSuccess, onError) {\n var batchData = dataArray.map(function (item) {\n return {type: 'put', value: item};\n });\n\n return this.batch(batchData, onSuccess, onError);\n },\n\n /**\n * Like putBatch, takes an array of objects and stores them in a single\n * transaction, but allows processing of the result values. Returns the\n * processed records containing the key for newly created records to the\n * onSuccess calllback instead of only returning true or false for success.\n * In addition, added the option for the caller to specify a key field that\n * should be set to the newly created key.\n *\n * @param {Array} dataArray An array of objects to store\n * @param {Object} [options] An object containing optional options\n * @param {String} [options.keyField=this.keyPath] Specifies a field in the record to update\n * with the auto-incrementing key. Defaults to the store's keyPath.\n * @param {Function} [onSuccess] A callback that is called if all operations\n * were successful.\n * @param {Function} [onError] A callback that is called if an error\n * occurred during one of the operations.\n * @returns {IDBTransaction} The transaction used for this operation.\n *\n */\n upsertBatch: function (dataArray, options, onSuccess, onError) {\n // handle `dataArray, onSuccess, onError` signature\n if (typeof options == 'function') {\n onSuccess = options;\n onError = onSuccess;\n options = {};\n }\n\n onError || (onError = defaultErrorHandler);\n onSuccess || (onSuccess = defaultSuccessHandler);\n options || (options = {});\n\n if (Object.prototype.toString.call(dataArray) != '[object Array]') {\n onError(new Error('dataArray argument must be of type Array.'));\n }\n\n var keyField = options.keyField || this.keyPath;\n var count = dataArray.length;\n var called = false;\n var hasSuccess = false;\n var index = 0; // assume success callbacks are executed in order\n\n var batchTransaction = this.db.transaction([this.storeName], this.consts.READ_WRITE);\n batchTransaction.oncomplete = function () {\n if (hasSuccess) {\n onSuccess(dataArray);\n } else {\n onError(false);\n }\n };\n batchTransaction.onabort = onError;\n batchTransaction.onerror = onError;\n\n var onItemSuccess = function (event) {\n var record = dataArray[index++];\n record[keyField] = event.target.result;\n\n count--;\n if (count === 0 && !called) {\n called = true;\n hasSuccess = true;\n }\n };\n\n dataArray.forEach(function (record) {\n var key = record.key;\n\n var onItemError = function (err) {\n batchTransaction.abort();\n if (!called) {\n called = true;\n onError(err);\n }\n };\n\n var putRequest;\n if (this.keyPath !== null) { // in-line keys\n this._addIdPropertyIfNeeded(record);\n putRequest = batchTransaction.objectStore(this.storeName).put(record);\n } else { // out-of-line keys\n putRequest = batchTransaction.objectStore(this.storeName).put(record, key);\n }\n putRequest.onsuccess = onItemSuccess;\n putRequest.onerror = onItemError;\n }, this);\n\n return batchTransaction;\n },\n\n /**\n * Takes an array of keys and removes matching objects in a single\n * transaction.\n *\n * @param {Array} keyArray An array of keys to remove\n * @param {Function} [onSuccess] A callback that is called if all operations\n * were successful.\n * @param {Function} [onError] A callback that is called if an error\n * occurred during one of the operations.\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n removeBatch: function (keyArray, onSuccess, onError) {\n var batchData = keyArray.map(function (key) {\n return {type: 'remove', key: key};\n });\n\n return this.batch(batchData, onSuccess, onError);\n },\n\n /**\n * Takes an array of keys and fetches matching objects\n *\n * @param {Array} keyArray An array of keys identifying the objects to fetch\n * @param {Function} [onSuccess] A callback that is called if all operations\n * were successful.\n * @param {Function} [onError] A callback that is called if an error\n * occurred during one of the operations.\n * @param {String} [arrayType='sparse'] The type of array to pass to the\n * success handler. May be one of 'sparse', 'dense' or 'skip'. Defaults to\n * 'sparse'. This parameter specifies how to handle the situation if a get\n * operation did not throw an error, but there was no matching object in\n * the database. In most cases, 'sparse' provides the most desired\n * behavior. See the examples for details.\n * @returns {IDBTransaction} The transaction used for this operation.\n * @example\n // given that there are two objects in the database with the keypath\n // values 1 and 2, and the call looks like this:\n myStore.getBatch([1, 5, 2], onError, function (data) { … }, arrayType);\n\n // this is what the `data` array will be like:\n\n // arrayType == 'sparse':\n // data is a sparse array containing two entries and having a length of 3:\n [Object, 2: Object]\n 0: Object\n 2: Object\n length: 3\n // calling forEach on data will result in the callback being called two\n // times, with the index parameter matching the index of the key in the\n // keyArray.\n\n // arrayType == 'dense':\n // data is a dense array containing three entries and having a length of 3,\n // where data[1] is of type undefined:\n [Object, undefined, Object]\n 0: Object\n 1: undefined\n 2: Object\n length: 3\n // calling forEach on data will result in the callback being called three\n // times, with the index parameter matching the index of the key in the\n // keyArray, but the second call will have undefined as first argument.\n\n // arrayType == 'skip':\n // data is a dense array containing two entries and having a length of 2:\n [Object, Object]\n 0: Object\n 1: Object\n length: 2\n // calling forEach on data will result in the callback being called two\n // times, with the index parameter not matching the index of the key in the\n // keyArray.\n */\n getBatch: function (keyArray, onSuccess, onError, arrayType) {\n onError || (onError = defaultErrorHandler);\n onSuccess || (onSuccess = defaultSuccessHandler);\n arrayType || (arrayType = 'sparse');\n\n if (Object.prototype.toString.call(keyArray) != '[object Array]') {\n onError(new Error('keyArray argument must be of type Array.'));\n } else if (keyArray.length === 0) {\n return onSuccess([]);\n }\n\n var data = [];\n var count = keyArray.length;\n var called = false;\n var hasSuccess = false;\n var result = null;\n\n var batchTransaction = this.db.transaction([this.storeName], this.consts.READ_ONLY);\n batchTransaction.oncomplete = function () {\n var callback = hasSuccess ? onSuccess : onError;\n callback(result);\n };\n batchTransaction.onabort = onError;\n batchTransaction.onerror = onError;\n\n var onItemSuccess = function (event) {\n if (event.target.result || arrayType == 'dense') {\n data.push(event.target.result);\n } else if (arrayType == 'sparse') {\n data.length++;\n }\n count--;\n if (count === 0) {\n called = true;\n hasSuccess = true;\n result = data;\n }\n };\n\n keyArray.forEach(function (key) {\n\n var onItemError = function (err) {\n called = true;\n result = err;\n onError(err);\n batchTransaction.abort();\n };\n\n var getRequest = batchTransaction.objectStore(this.storeName).get(key);\n getRequest.onsuccess = onItemSuccess;\n getRequest.onerror = onItemError;\n\n }, this);\n\n return batchTransaction;\n },\n\n /**\n * Fetches all entries in the store.\n *\n * @param {Function} [onSuccess] A callback that is called if the operation\n * was successful. Will receive an array of objects.\n * @param {Function} [onError] A callback that will be called if an error\n * occurred during the operation.\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n getAll: function (onSuccess, onError) {\n onError || (onError = defaultErrorHandler);\n onSuccess || (onSuccess = defaultSuccessHandler);\n var getAllTransaction = this.db.transaction([this.storeName], this.consts.READ_ONLY);\n var store = getAllTransaction.objectStore(this.storeName);\n if (store.getAll) {\n this._getAllNative(getAllTransaction, store, onSuccess, onError);\n } else {\n this._getAllCursor(getAllTransaction, store, onSuccess, onError);\n }\n\n return getAllTransaction;\n },\n\n /**\n * Implements getAll for IDB implementations that have a non-standard\n * getAll() method.\n *\n * @param {IDBTransaction} getAllTransaction An open READ transaction.\n * @param {IDBObjectStore} store A reference to the store.\n * @param {Function} onSuccess A callback that will be called if the\n * operation was successful.\n * @param {Function} onError A callback that will be called if an\n * error occurred during the operation.\n * @private\n */\n _getAllNative: function (getAllTransaction, store, onSuccess, onError) {\n var hasSuccess = false,\n result = null;\n\n getAllTransaction.oncomplete = function () {\n var callback = hasSuccess ? onSuccess : onError;\n callback(result);\n };\n getAllTransaction.onabort = onError;\n getAllTransaction.onerror = onError;\n\n var getAllRequest = store.getAll();\n getAllRequest.onsuccess = function (event) {\n hasSuccess = true;\n result = event.target.result;\n };\n getAllRequest.onerror = onError;\n },\n\n /**\n * Implements getAll for IDB implementations that do not have a getAll()\n * method.\n *\n * @param {IDBTransaction} getAllTransaction An open READ transaction.\n * @param {IDBObjectStore} store A reference to the store.\n * @param {Function} onSuccess A callback that will be called if the\n * operation was successful.\n * @param {Function} onError A callback that will be called if an\n * error occurred during the operation.\n * @private\n */\n _getAllCursor: function (getAllTransaction, store, onSuccess, onError) {\n var all = [],\n hasSuccess = false,\n result = null;\n\n getAllTransaction.oncomplete = function () {\n var callback = hasSuccess ? onSuccess : onError;\n callback(result);\n };\n getAllTransaction.onabort = onError;\n getAllTransaction.onerror = onError;\n\n var cursorRequest = store.openCursor();\n cursorRequest.onsuccess = function (event) {\n var cursor = event.target.result;\n if (cursor) {\n all.push(cursor.value);\n cursor['continue']();\n }\n else {\n hasSuccess = true;\n result = all;\n }\n };\n cursorRequest.onError = onError;\n },\n\n /**\n * Clears the store, i.e. deletes all entries in the store.\n *\n * @param {Function} [onSuccess] A callback that will be called if the\n * operation was successful.\n * @param {Function} [onError] A callback that will be called if an\n * error occurred during the operation.\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n clear: function (onSuccess, onError) {\n onError || (onError = defaultErrorHandler);\n onSuccess || (onSuccess = defaultSuccessHandler);\n\n var hasSuccess = false,\n result = null;\n\n var clearTransaction = this.db.transaction([this.storeName], this.consts.READ_WRITE);\n clearTransaction.oncomplete = function () {\n var callback = hasSuccess ? onSuccess : onError;\n callback(result);\n };\n clearTransaction.onabort = onError;\n clearTransaction.onerror = onError;\n\n var clearRequest = clearTransaction.objectStore(this.storeName).clear();\n clearRequest.onsuccess = function (event) {\n hasSuccess = true;\n result = event.target.result;\n };\n clearRequest.onerror = onError;\n\n return clearTransaction;\n },\n\n /**\n * Checks if an id property needs to present on a object and adds one if\n * necessary.\n *\n * @param {Object} dataObj The data object that is about to be stored\n * @private\n */\n _addIdPropertyIfNeeded: function (dataObj) {\n if (typeof dataObj[this.keyPath] == 'undefined') {\n dataObj[this.keyPath] = this._insertIdCount++ + Date.now();\n }\n },\n\n /************\n * indexing *\n ************/\n\n /**\n * Returns a DOMStringList of index names of the store.\n *\n * @return {DOMStringList} The list of index names\n */\n getIndexList: function () {\n return this.store.indexNames;\n },\n\n /**\n * Checks if an index with the given name exists in the store.\n *\n * @param {String} indexName The name of the index to look for\n * @return {Boolean} Whether the store contains an index with the given name\n */\n hasIndex: function (indexName) {\n return this.store.indexNames.contains(indexName);\n },\n\n /**\n * Normalizes an object containing index data and assures that all\n * properties are set.\n *\n * @param {Object} indexData The index data object to normalize\n * @param {String} indexData.name The name of the index\n * @param {String} [indexData.keyPath] The key path of the index\n * @param {Boolean} [indexData.unique] Whether the index is unique\n * @param {Boolean} [indexData.multiEntry] Whether the index is multi entry\n */\n normalizeIndexData: function (indexData) {\n indexData.keyPath = indexData.keyPath || indexData.name;\n indexData.unique = !!indexData.unique;\n indexData.multiEntry = !!indexData.multiEntry;\n },\n\n /**\n * Checks if an actual index complies with an expected index.\n *\n * @param {IDBIndex} actual The actual index found in the store\n * @param {Object} expected An Object describing an expected index\n * @return {Boolean} Whether both index definitions are identical\n */\n indexComplies: function (actual, expected) {\n var complies = ['keyPath', 'unique', 'multiEntry'].every(function (key) {\n // IE10 returns undefined for no multiEntry\n if (key == 'multiEntry' && actual[key] === undefined && expected[key] === false) {\n return true;\n }\n // Compound keys\n if (key == 'keyPath' && Object.prototype.toString.call(expected[key]) == '[object Array]') {\n var exp = expected.keyPath;\n var act = actual.keyPath;\n\n // IE10 can't handle keyPath sequences and stores them as a string.\n // The index will be unusable there, but let's still return true if\n // the keyPath sequence matches.\n if (typeof act == 'string') {\n return exp.toString() == act;\n }\n\n // Chrome/Opera stores keyPath squences as DOMStringList, Firefox\n // as Array\n if (!(typeof act.contains == 'function' || typeof act.indexOf == 'function')) {\n return false;\n }\n\n if (act.length !== exp.length) {\n return false;\n }\n\n for (var i = 0, m = exp.length; i < m; i++) {\n if (!( (act.contains && act.contains(exp[i])) || act.indexOf(exp[i] !== -1) )) {\n return false;\n }\n }\n return true;\n }\n return expected[key] == actual[key];\n });\n return complies;\n },\n\n /**********\n * cursor *\n **********/\n\n /**\n * Iterates over the store using the given options and calling onItem\n * for each entry matching the options.\n *\n * @param {Function} onItem A callback to be called for each match\n * @param {Object} [options] An object defining specific options\n * @param {String} [options.index=null] A name of an IDBIndex to operate on\n * @param {String} [options.order=ASC] The order in which to provide the\n * results, can be 'DESC' or 'ASC'\n * @param {Boolean} [options.autoContinue=true] Whether to automatically\n * iterate the cursor to the next result\n * @param {Boolean} [options.filterDuplicates=false] Whether to exclude\n * duplicate matches\n * @param {IDBKeyRange} [options.keyRange=null] An IDBKeyRange to use\n * @param {Boolean} [options.writeAccess=false] Whether grant write access\n * to the store in the onItem callback\n * @param {Function} [options.onEnd=null] A callback to be called after\n * iteration has ended\n * @param {Function} [options.onError=throw] A callback to be called\n * if an error occurred during the operation.\n * @param {Number} [options.limit=Infinity] Limit the number of returned\n * results to this number\n * @param {Number} [options.offset=0] Skip the provided number of results\n * in the resultset\n * @param {Boolean} [options.allowItemRejection=false] Allows the onItem\n * function to return a Boolean to accept or reject the current item\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n iterate: function (onItem, options) {\n options = mixin({\n index: null,\n order: 'ASC',\n autoContinue: true,\n filterDuplicates: false,\n keyRange: null,\n writeAccess: false,\n onEnd: null,\n onError: defaultErrorHandler,\n limit: Infinity,\n offset: 0,\n allowItemRejection: false\n }, options || {});\n\n var directionType = options.order.toLowerCase() == 'desc' ? 'PREV' : 'NEXT';\n if (options.filterDuplicates) {\n directionType += '_NO_DUPLICATE';\n }\n\n var hasSuccess = false;\n var cursorTransaction = this.db.transaction([this.storeName], this.consts[options.writeAccess ? 'READ_WRITE' : 'READ_ONLY']);\n var cursorTarget = cursorTransaction.objectStore(this.storeName);\n if (options.index) {\n cursorTarget = cursorTarget.index(options.index);\n }\n var recordCount = 0;\n\n cursorTransaction.oncomplete = function () {\n if (!hasSuccess) {\n options.onError(null);\n return;\n }\n if (options.onEnd) {\n options.onEnd();\n } else {\n onItem(null);\n }\n };\n cursorTransaction.onabort = options.onError;\n cursorTransaction.onerror = options.onError;\n\n var cursorRequest = cursorTarget.openCursor(options.keyRange, this.consts[directionType]);\n cursorRequest.onerror = options.onError;\n cursorRequest.onsuccess = function (event) {\n var cursor = event.target.result;\n if (cursor) {\n if (options.offset) {\n cursor.advance(options.offset);\n options.offset = 0;\n } else {\n var onItemReturn = onItem(cursor.value, cursor, cursorTransaction);\n if (!options.allowItemRejection || onItemReturn !== false) {\n recordCount++;\n }\n if (options.autoContinue) {\n if (recordCount + options.offset < options.limit) {\n cursor['continue']();\n } else {\n hasSuccess = true;\n }\n }\n }\n } else {\n hasSuccess = true;\n }\n };\n\n return cursorTransaction;\n },\n\n /**\n * Runs a query against the store and passes an array containing matched\n * objects to the success handler.\n *\n * @param {Function} onSuccess A callback to be called when the operation\n * was successful.\n * @param {Object} [options] An object defining specific options\n * @param {String} [options.index=null] A name of an IDBIndex to operate on\n * @param {String} [options.order=ASC] The order in which to provide the\n * results, can be 'DESC' or 'ASC'\n * @param {Boolean} [options.filterDuplicates=false] Whether to exclude\n * duplicate matches\n * @param {IDBKeyRange} [options.keyRange=null] An IDBKeyRange to use\n * @param {Function} [options.onError=throw] A callback to be called\n * if an error occurred during the operation.\n * @param {Number} [options.limit=Infinity] Limit the number of returned\n * results to this number\n * @param {Number} [options.offset=0] Skip the provided number of results\n * in the resultset\n * @param {Function} [options.filter=null] A custom filter function to\n * apply to query resuts before returning. Must return `false` to reject\n * an item. Can be combined with keyRanges.\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n query: function (onSuccess, options) {\n var result = [],\n processedItems = 0;\n options = options || {};\n options.autoContinue = true;\n options.writeAccess = false;\n options.allowItemRejection = !!options.filter;\n options.onEnd = function () {\n onSuccess(result, processedItems);\n };\n return this.iterate(function (item) {\n processedItems++;\n var accept = options.filter ? options.filter(item) : true;\n if (accept !== false) {\n result.push(item);\n }\n return accept;\n }, options);\n },\n\n /**\n *\n * Runs a query against the store, but only returns the number of matches\n * instead of the matches itself.\n *\n * @param {Function} onSuccess A callback to be called if the opration\n * was successful.\n * @param {Object} [options] An object defining specific options\n * @param {String} [options.index=null] A name of an IDBIndex to operate on\n * @param {IDBKeyRange} [options.keyRange=null] An IDBKeyRange to use\n * @param {Function} [options.onError=throw] A callback to be called if an error\n * occurred during the operation.\n * @returns {IDBTransaction} The transaction used for this operation.\n */\n count: function (onSuccess, options) {\n\n options = mixin({\n index: null,\n keyRange: null\n }, options || {});\n\n var onError = options.onError || defaultErrorHandler;\n\n var hasSuccess = false,\n result = null;\n\n var cursorTransaction = this.db.transaction([this.storeName], this.consts.READ_ONLY);\n cursorTransaction.oncomplete = function () {\n var callback = hasSuccess ? onSuccess : onError;\n callback(result);\n };\n cursorTransaction.onabort = onError;\n cursorTransaction.onerror = onError;\n\n var cursorTarget = cursorTransaction.objectStore(this.storeName);\n if (options.index) {\n cursorTarget = cursorTarget.index(options.index);\n }\n var countRequest = cursorTarget.count(options.keyRange);\n countRequest.onsuccess = function (evt) {\n hasSuccess = true;\n result = evt.target.result;\n };\n countRequest.onError = onError;\n\n return cursorTransaction;\n },\n\n /**************/\n /* key ranges */\n /**************/\n\n /**\n * Creates a key range using specified options. This key range can be\n * handed over to the count() and iterate() methods.\n *\n * Note: You must provide at least one or both of \"lower\" or \"upper\" value.\n *\n * @param {Object} options The options for the key range to create\n * @param {*} [options.lower] The lower bound\n * @param {Boolean} [options.excludeLower] Whether to exclude the lower\n * bound passed in options.lower from the key range\n * @param {*} [options.upper] The upper bound\n * @param {Boolean} [options.excludeUpper] Whether to exclude the upper\n * bound passed in options.upper from the key range\n * @param {*} [options.only] A single key value. Use this if you need a key\n * range that only includes one value for a key. Providing this\n * property invalidates all other properties.\n * @return {IDBKeyRange} The IDBKeyRange representing the specified options\n */\n makeKeyRange: function (options) {\n /*jshint onecase:true */\n var keyRange,\n hasLower = typeof options.lower != 'undefined',\n hasUpper = typeof options.upper != 'undefined',\n isOnly = typeof options.only != 'undefined';\n\n switch (true) {\n case isOnly:\n keyRange = this.keyRange.only(options.only);\n break;\n case hasLower && hasUpper:\n keyRange = this.keyRange.bound(options.lower, options.upper, options.excludeLower, options.excludeUpper);\n break;\n case hasLower:\n keyRange = this.keyRange.lowerBound(options.lower, options.excludeLower);\n break;\n case hasUpper:\n keyRange = this.keyRange.upperBound(options.upper, options.excludeUpper);\n break;\n default:\n throw new Error('Cannot create KeyRange. Provide one or both of \"lower\" or \"upper\" value, or an \"only\" value.');\n }\n\n return keyRange;\n\n }\n\n };\n\n /** helpers **/\n var empty = {};\n\n function mixin (target, source) {\n var name, s;\n for (name in source) {\n s = source[name];\n if (s !== empty[name] && s !== target[name]) {\n target[name] = s;\n }\n }\n return target;\n }\n\n IDBStore.prototype = proto;\n IDBStore.version = proto.version;\n\n return IDBStore;\n\n}, this);\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * IndexDB backend of the client store\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/store/indexdb',['lodash', 'core/promise', 'lib/store/idbstore'], function(_, Promise, IDBStore){\n 'use strict';\n\n /**\n * Prefix all databases\n */\n var prefix = 'tao-store-';\n\n /**\n * Open and access a store\n * @param {String} storeName - the store name to open\n * @returns {Object} the store backend\n * @throws {TypeError} without a storeName\n */\n var indexDbBackend = function indexDbBackend(storeName){\n\n //keep a ref of the running store\n var innerStore;\n\n /**\n * Get the store\n * @returns {Promise} with store instance in resolve\n */\n var getStore = function getStore(){\n if(innerStore){\n return Promise.resolve(innerStore);\n }\n return new Promise(function(resolve, reject){\n innerStore = new IDBStore({\n dbVersion: 1,\n storeName: storeName,\n storePrefix : prefix,\n keyPath: 'key',\n autoIncrement: true,\n onStoreReady: function(){\n resolve(innerStore);\n },\n onError : reject\n });\n });\n };\n\n //keep a ref to the promise actually writing\n var writePromise;\n\n /**\n * Ensure write promises are executed in series\n * @param {Function} getWritingPromise - the function that run the promise\n * @returns {Promise} the original one\n */\n var ensureSerie = function ensureSerie(getWritingPromise){\n\n //first promise, keep the ref\n if(!writePromise){\n writePromise = getWritingPromise();\n return writePromise;\n }\n\n //create a wrapping promise\n return new Promise(function(resolve, reject){\n //run the current request\n var runWrite = function(){\n var p = getWritingPromise();\n writePromise = p; //and keep the ref\n p.then(resolve).catch(reject);\n };\n\n //wait the previous to resolve or fail and run the current one\n writePromise.then(runWrite).catch(runWrite);\n });\n };\n\n if(_.isEmpty(storeName) || !_.isString(storeName)){\n throw new TypeError('The store name is required');\n }\n\n /**\n * The store\n */\n return {\n\n /**\n * Get an item with the given key\n * @param {String} key\n * @returns {Promise} with the result in resolve, undefined if nothing\n */\n getItem : function getItem(key){\n return ensureSerie(function getWritingPromise(){\n return getStore().then(function(store){\n return new Promise(function(resolve, reject){\n var success = function success(entry){\n if(!entry || !entry.value){\n return resolve(entry);\n }\n\n resolve(entry.value);\n };\n store.get(key, success, reject);\n });\n });\n });\n },\n\n /**\n * Set an item with the given key\n * @param {String} key - the item key\n * @param {*} value - the item value\n * @returns {Promise} with true in resolve if added/updated\n */\n setItem : function setItem(key, value){\n var entry = {\n key : key,\n value : value\n };\n\n return ensureSerie(function getWritingPromise(){\n return getStore().then(function(store){\n return new Promise(function(resolve, reject){\n var success = function success(returnKey){\n resolve(returnKey === key);\n };\n store.put(entry, success, reject);\n });\n });\n });\n },\n\n /**\n * Remove an item with the given key\n * @param {String} key - the item key\n * @returns {Promise} with true in resolve if removed\n */\n removeItem : function removeItem(key){\n return ensureSerie(function getWritingPromise(){\n return getStore().then(function(store){\n return new Promise(function(resolve, reject){\n var success = function success(result){\n resolve(result !== false);\n };\n store.remove(key, success, reject);\n });\n });\n });\n },\n\n /**\n * Clear the current store\n * @returns {Promise} with true in resolve once cleared\n */\n clear : function clear(){\n return ensureSerie(function getWritingPromise(){\n return getStore().then(function(store){\n return new Promise(function(resolve, reject){\n var success = function success(){\n resolve(true);\n };\n store.clear(success, reject);\n });\n });\n });\n }\n };\n };\n\n return indexDbBackend;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Browser storage, multiple backends\n *\n * @example\n * store('foo', store.backends.indexDb);\n * .setItem('hello', { who : 'world'))\n * .then(function(added){\n * //yeah!\n * })\n * .catch(function(err){\n * //OOops!\n * });\n *\n *\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/store',[\n 'lodash',\n 'core/promise',\n 'core/store/localstorage',\n 'core/store/indexdb'\n], function(_, Promise, localStorageBackend, indexDbBackend){\n 'use strict';\n\n var supportsIndexedDB = false;\n var dectectionDone = false;\n\n /**\n * Detect IndexDB support.\n * Due to a bug in firefox private mode, we need to try to open a database to be sure it's avaialable.\n * @returns {Promise} that resolve the result\n */\n var isIndexDBSupported = function isIndexDBSupported(){\n if(dectectionDone){\n return Promise.resolve(supportsIndexedDB);\n }\n return new Promise(function(resolve){\n var test, indexedDB;\n var done = function done(result){\n supportsIndexedDB = !!result;\n dectectionDone = true;\n return resolve(supportsIndexedDB);\n };\n try {\n indexedDB = window.indexedDB || window.webkitIndexedDB ||\n window.mozIndexedDB || window.OIndexedDB ||\n window.msIndexedDB;\n if(!indexedDB){\n return done(false);\n }\n\n //we need to try to open a db, for example FF in private browsing will fail.\n test = indexedDB.open('__feature_test', 1);\n test.onsuccess = function(){\n if(test.result){\n test.result.close();\n return done(true);\n }\n };\n //if we can't open a DB, we assume, we fallback\n test.onerror = function(e) {\n e.preventDefault();\n done(false);\n return false;\n };\n } catch(err) {\n //a sync err, we fallback\n done(false);\n }\n });\n };\n\n /**\n * Create a new store\n *\n * @param {String} storeName - the name of the store\n * @param {Function} backend - the storage\n * @returns {Promise} that resolves with the Storage a Storage Like instance\n */\n var store = function store(storeName, backend) {\n\n return isIndexDBSupported().then(function(hasIndexDB){\n\n return new Promise(function(resolve, reject){\n var storeInstance;\n backend = backend || store.backends.indexDb;\n\n if(!supportsIndexedDB){\n backend = store.backends.localStorage;\n }\n if(!_.isFunction(backend)){\n reject(new TypeError('No backend, no storage!'));\n }\n storeInstance = backend(storeName);\n\n if(_.some(['getItem', 'setItem', 'removeItem', 'clear'], function(method){\n return !_.isFunction(storeInstance[method]);\n })){\n reject(new TypeError('The backend does not comply with the Storage interface'));\n }\n\n resolve(storeInstance);\n });\n });\n };\n\n /**\n * The available backends,\n * exposed.\n */\n store.backends = {\n localStorage : localStorageBackend,\n indexDb : indexDbBackend\n };\n\n return store;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('core/cachedStore',[\n 'core/store'\n], function (store) {\n 'use strict';\n\n /**\n * The default name of the key storage indexing the persisted data\n * @type {String}\n */\n var defaultKey = 'cachedData';\n\n /**\n * Builds a cached store.\n *\n * Loads a data set from a storage, then maintains persistence of changed values.\n *\n * @param {String} storageName\n * @param {String} storageKey\n * @returns {Promise} Returns a promise that will be resolved with a data accessor\n */\n function cachedStoreFactory(storageName, storageKey) {\n\n storageKey = storageKey || defaultKey;\n\n return store(storageName).then(function(storage) {\n\n return storage.getItem(storageKey)\n .then(function(data) {\n // the persisted data set is always an object\n data = data || {};\n \n // just provide a data accessor that:\n // - immediately gets the values\n // - stores the changes through a promise.\n return {\n /**\n * Gets a value from the data\n * @param {String} name\n * @returns {Object}\n */\n getItem : function getItem(name) {\n return data[name];\n },\n\n /**\n * Sets a value in the data, then ensure the data will persist\n * @param {String} name\n * @param {Object} value\n * @returns {Promise} Returns a promise that will be resolved if the data have been successfully stored\n */\n setItem : function setItem(name, value) {\n data[name] = value;\n return storage.setItem(storageKey, data);\n },\n\n /**\n * Removes a value from the data, then synchronise the data set with the storage\n * @param {String} name\n * @returns {Promise} Returns a promise that will be resolved if the data have been successfully stored\n */\n removeItem : function removeItem(name) {\n data[name] = undefined;\n return storage.setItem(storageKey, data);\n },\n\n /**\n * Clears the full data set\n * @returns {Promise} Returns a promise that will be resolved if the data have been successfully erased\n */\n clear : function clear() {\n data = {};\n return storage.removeItem(storageKey);\n }\n };\n });\n });\n }\n\n return cachedStoreFactory;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technlogies SA\n *\n */\n\n/**\n * The area broker is a kind of areas hub, it gives the access to predefined areas.\n *\n *\n * @example\n * var broker = areaBroker(['content', 'panel'], $container);\n * broker.defineAreas({\n * content : $('.content', $container),\n * //...\n * });\n *\n * //then\n * var $content = broker.getArea('content');\n * var $content = broker.getContentArea();\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/areaBroker',[\n 'jquery',\n 'lodash'\n], function ($, _) {\n 'use strict';\n\n /**\n * Creates a new area broker.\n * @param {String[]} requireAreas - the list of required areas to map\n * @param {jQueryElement|HTMLElement|String} $container - the main container\n * @param {Object} mapping - keys are the area names, values are jQueryElement\n * @returns {broker} the broker\n * @throws {TypeError} without a valid container\n */\n return function areaBroker(requiredAreas, $container, mapping){\n\n var broker,\n areas;\n\n if(typeof $container === 'string' || $container instanceof HTMLElement){\n $container = $($container);\n }\n if(!$container || !$container.length){\n throw new TypeError('Please provide the areaBroker a container');\n }\n\n requiredAreas = requiredAreas || [];\n\n /**\n * The Area broker instance\n * @typedef broker\n */\n broker = {\n\n /**\n * Map the areas to elements.\n *\n * This method needs to be called before getting areas.\n * It's separated from the factory call in order to prepare the mapping in a separated step.\n *\n * @param {Object} mapping - keys are the area names, values are jQueryElement\n * @throws {TypeError} if the required areas are not part of the mapping\n */\n defineAreas : function defineAreas(mapping){\n var keys, required;\n\n if(!_.isPlainObject(mapping)){\n throw new TypeError('A mapping has the form of a plain object');\n }\n\n keys = _.keys(mapping);\n required = _.all(requiredAreas, function(val){\n return _.contains(keys, val);\n });\n if(!required){\n throw new TypeError('You have to define a mapping for at least : ' + requiredAreas.join(', '));\n }\n\n areas = mapping;\n },\n\n /**\n * Get the main container\n * @returns {jQueryElement} the container\n */\n getContainer : function getContainer(){\n return $container;\n },\n\n /**\n * Get the area element\n * @param {String} name - the area name\n * @returns {jQueryElement} the area element\n * @throws {Error} if the mapping hasn't been made previously\n */\n getArea : function getArea(name){\n if(!areas){\n throw new Error('Sorry areas have not been defined yet!');\n }\n return areas[name];\n }\n };\n\n broker.defineAreas(mapping);\n\n _.forEach(requiredAreas, function(area){\n broker['get' + area[0].toUpperCase() + area.slice(1) + 'Area'] = _.bind(_.partial(broker.getArea, area), broker);\n });\n\n return broker;\n };\n\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technlogies SA\n *\n */\n\n/**\n * The area broker is the object you need to define the Test Runner GUI areas.\n * You need to define some required areas so then everybody can attach elements to thos areas.\n * Each area is a jquery element.\n *\n * ! The mapping should be made prior to getting the areas !\n *\n * @example\n * var broker = areaBroker($container);\n * broker.defineAreas({\n * content : $('.content', $container),\n * //...\n * });\n * //then\n * var $content = broker.getArea('content');\n * var $content = broker.getContentArea();\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoTests/runner/areaBroker',[\n 'lodash',\n 'core/areaBroker'\n], function (_, areaBroker) {\n 'use strict';\n\n var requireAreas = [\n 'content', //where the content is renderer, for example an item\n 'toolbox', //the place to add arbitrary tools, like a zoom, a comment box, etc.\n 'navigation', //the navigation controls like next, previous, skip\n 'control', //the control center of the test, progress, timers, etc.\n 'header', //the area that could contains the test titles\n 'panel' //a panel to add more advanced GUI (item review, navigation pane, etc.)\n ];\n\n /**\n * Creates an area broker with the required areas for the test runner.\n *\n * @see core/areaBroker\n *\n * @param {jQueryElement|HTMLElement|String} $container - the main container\n * @param {Object} mapping - keys are the area names, values are jQueryElement\n * @returns {broker} the broker\n * @throws {TypeError} without a valid container\n */\n return _.partial(areaBroker, requireAreas);\n\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoTests/runner/proxy',[\n 'lodash',\n 'async',\n 'core/delegator',\n 'core/eventifier',\n 'core/promise',\n 'core/providerRegistry',\n 'core/tokenHandler'\n], function(_, async, delegator, eventifier, Promise, providerRegistry, tokenHandlerFactory) {\n 'use strict';\n\n var _defaults = {};\n\n var _slice = [].slice;\n\n /**\n * Defines a proxy bound to a particular adapter\n *\n * @param {String} proxyName - The name of the proxy adapter to use in the returned proxy instance\n * @param {Object} [config] - Some optional config depending of implementation,\n * this object will be forwarded to the proxy adapter\n * @returns {proxy} - The proxy instance, bound to the selected proxy adapter\n */\n function proxyFactory(proxyName, config) {\n\n var extraCallParams = {};\n var proxyAdapter = proxyFactory.getProvider(proxyName);\n var initConfig = _.defaults(config || {}, _defaults);\n var tokenHandler = tokenHandlerFactory();\n var middlewares = {};\n var delegateProxy, communicator, communicatorPromise;\n\n /**\n * Gets parameters merged with extra parameters\n * @param {Object} [params]\n * @return {Object}\n */\n function getParams(params) {\n var mergedParams = _.merge({}, params, extraCallParams);\n extraCallParams = {};\n return mergedParams;\n }\n\n /**\n * Gets the aggregated list of middlewares for a particular queue name\n * @param {String} queue - The name of the queue to get\n * @returns {Array}\n */\n function getMiddlewares(queue) {\n var list = middlewares[queue] || [];\n if (middlewares.all) {\n list = list.concat(middlewares.all);\n }\n return list;\n }\n\n /**\n * Applies the list of registered middlewares onto the received response\n * @param {Object} request - The request descriptor\n * @param {String} request.command - The name of the requested command\n * @param {Object} request.params - The map of provided parameters\n * @param {Object} response The response descriptor\n * @param {String} response.status The status of the response, can be either 'success' or 'error'\n * @param {Object} response.data The full response data\n * @returns {Promise}\n */\n function applyMiddlewares(request, response) {\n // wrap each middleware to provide parameters\n var list = _.map(getMiddlewares(request.command), function(middleware) {\n return function(next) {\n middleware(request, response, next);\n };\n });\n\n // apply each middleware in series, then resolve or reject the promise\n return new Promise(function(resolve, reject) {\n async.series(list, function(err) {\n // handle implicit error from response descriptor\n if (!err && 'error' === response.status) {\n err = response.data;\n }\n\n if (err) {\n proxy.trigger('error', err);\n reject(err);\n } else {\n proxy.trigger('receive', response.data, 'proxy');\n resolve(response.data);\n }\n });\n });\n }\n\n /**\n * Delegates the call to the proxy implementation and apply the middleware.\n *\n * @param {String} fnName - The name of the delegated method to call\n * @returns {Promise} - The delegated method must return a promise\n * @private\n * @throws Error\n */\n function delegate(fnName) {\n var request = {command: fnName, params: _slice.call(arguments, 1)};\n return delegateProxy.apply(null, arguments)\n .then(function(data) {\n // handle successful request\n return applyMiddlewares(request, {\n status: 'success',\n data: data\n });\n })\n .catch(function(data) {\n // handle failed request\n return applyMiddlewares(request, {\n status: 'error',\n data: data\n });\n });\n }\n\n /**\n * Defines the test runner proxy\n * @type {proxy}\n */\n var proxy = eventifier({\n /**\n * Add a middleware\n * @param {String} [command] The command queue in which add the middleware (default: 'all')\n * @param {Function} callback A middleware callback. Must accept 3 parameters: request, response, next.\n * @returns {proxy}\n */\n use: function use(command, callback) {\n var queue = command && _.isString(command) ? command : 'all';\n var list = middlewares[queue] || [];\n middlewares[queue] = list;\n\n _.each(arguments, function(callback) {\n if (_.isFunction(callback)) {\n list.push(callback);\n }\n });\n return this;\n },\n\n /**\n * Initializes the proxy\n * @returns {Promise} - Returns a promise. The proxy will be fully initialized on resolve.\n * Any error will be provided if rejected.\n * @fires init\n */\n init: function init() {\n /**\n * @event proxy#init\n * @param {Promise} promise\n * @param {Object} config\n * @param {Object} params\n */\n return delegate('init', initConfig, getParams());\n },\n\n /**\n * Uninstalls the proxy\n * @returns {Promise} - Returns a promise. The proxy will be fully uninstalled on resolve.\n * Any error will be provided if rejected.\n * @fires destroy\n */\n destroy: function destroy() {\n /**\n * @event proxy#destroy\n * @param {Promise} promise\n */\n return delegate('destroy').then(function() {\n // a communicator has been invoked and...\n if (communicatorPromise) {\n return new Promise(function(resolve, reject) {\n\n function destroyCommunicator() {\n communicator.destroy()\n .then(resolve)\n .catch(reject);\n }\n\n communicatorPromise\n // ... has been loaded successfully, then destroy it\n .then(function() {\n destroyCommunicator();\n })\n // ...has failed to be loaded, maybe no need to destroy it\n .catch(function() {\n if (communicator) {\n destroyCommunicator();\n } else {\n resolve();\n }\n });\n });\n }\n });\n },\n\n /**\n * Gets the security token handler\n * @returns {tokenHandler}\n */\n getTokenHandler : function getTokenHandler() {\n return tokenHandler;\n },\n\n /**\n * Gets access to the communication channel, load it if not present\n * @returns {Promise} Returns a promise that will resolve the communication channel\n */\n getCommunicator : function getCommunicator() {\n var self = this;\n if (!communicatorPromise) {\n communicatorPromise = new Promise(function(resolve, reject) {\n if (_.isFunction(proxyAdapter.loadCommunicator)) {\n communicator = proxyAdapter.loadCommunicator.call(self);\n if (communicator) {\n communicator\n .on('error', function(error) {\n self.trigger('error', error);\n })\n .on('receive', function(response) {\n self.trigger('receive', response, 'communicator');\n })\n .init()\n .then(function () {\n return communicator.open()\n .then(function() {\n resolve(communicator);\n })\n .catch(reject);\n })\n .catch(reject);\n } else {\n reject(new Error('No communicator has been set up!'));\n }\n } else {\n reject(new Error('The proxy provider does not have a loadCommunicator method'));\n }\n });\n }\n return communicatorPromise;\n },\n\n /**\n * Registers a listener on a particular channel\n * @param {String} name - The name of the channel to listen\n * @param {Function} handler - The listener callback\n * @returns {proxy}\n * @throws TypeError if the name is missing or the handler is not a callback\n */\n channel: function channel(name, handler) {\n this.getCommunicator()\n .then(function(communicator) {\n communicator.channel(name, handler);\n })\n // just an empty catch to avoid any error to be displayed in the console when the communicator is not enabled\n .catch(_.noop);\n return this;\n },\n\n /**\n * Sends an messages through the communication implementation.\n * @param {String} channel - The name of the communication channel to use\n * @param {Object} message - The message to send\n * @returns {Promise} The delegated provider's method must return a promise\n */\n send: function send(channel, message) {\n return this.getCommunicator()\n .then(function(communicator) {\n return communicator.send(channel, message);\n });\n },\n\n /**\n * Add extra parameters that will be added to the init or the next callTestAction or callItemAction\n * This enables plugins to place parameters for next calls\n * @param {Object} params - the extra parameters\n * @returns {proxy}\n */\n addCallActionParams : function addCallActionParams(params){\n if(_.isPlainObject(params)){\n _.merge(extraCallParams, params);\n }\n return this;\n },\n\n /**\n * Gets the test definition data\n * @returns {Promise} - Returns a promise. The test definition data will be provided on resolve.\n * Any error will be provided if rejected.\n * @fires getTestData\n */\n getTestData: function getTestData() {\n /**\n * @event proxy#getTestData\n * @param {Promise} promise\n */\n return delegate('getTestData');\n },\n\n /**\n * Gets the test context\n * @returns {Promise} - Returns a promise. The context object will be provided on resolve.\n * Any error will be provided if rejected.\n */\n getTestContext: function getTestContext() {\n /**\n * @event proxy#getTestContext\n * @param {Promise} promise\n */\n return delegate('getTestContext');\n },\n\n /**\n * Gets the test map\n * @returns {Promise} - Returns a promise. The test map object will be provided on resolve.\n * Any error will be provided if rejected.\n */\n getTestMap: function getTestMap() {\n /**\n * @event proxy#getTestMap\n * @param {Promise} promise\n */\n return delegate('getTestMap');\n },\n\n /**\n * Sends the test variables\n * @param {Object} variables\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n * @fires sendVariables\n */\n sendVariables: function sendVariables(variables) {\n /**\n * @event proxy#sendVariables\n * @param {Promise} promise\n */\n return delegate('sendVariables', variables);\n },\n\n /**\n * Calls an action related to the test\n * @param {String} action - The name of the action to call\n * @param {Object} [params] - Some optional parameters to join to the call\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n * @fires callTestAction\n */\n callTestAction: function callTestAction(action, params) {\n /**\n * @event proxy#callTestAction\n * @param {Promise} promise\n * @param {String} action\n * @param {Object} params\n */\n return delegate('callTestAction', action, getParams(params));\n },\n\n /**\n * Gets an item definition by its URI, also gets its current state\n * @param {String} uri - The URI of the item to get\n * @returns {Promise} - Returns a promise. The item data will be provided on resolve.\n * Any error will be provided if rejected.\n * @fires getItem\n */\n getItem: function getItem(uri) {\n /**\n * @event proxy#getItem\n * @param {Promise} promise\n * @param {String} uri\n */\n return delegate('getItem', uri);\n },\n\n /**\n * Submits the state and the response of a particular item\n * @param {String} uri - The URI of the item to update\n * @param {Object} state - The state to submit\n * @param {Object} response - The response object to submit\n * @param {Object} [params] - addtional params to be appended\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n * @fires submitItem\n */\n submitItem: function submitItem(uri, state, response, params) {\n\n /**\n * @event proxy#submitItem\n * @param {Promise} promise\n * @param {String} uri\n * @param {Object} state\n * @param {Object} response\n */\n return delegate('submitItem', uri, state, response, params);\n },\n\n /**\n * Calls an action related to a particular item\n * @param {String} uri - The URI of the item for which call the action\n * @param {String} action - The name of the action to call\n * @param {Object} [params] - Some optional parameters to join to the call\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n * @fires callItemAction\n */\n callItemAction: function callItemAction(uri, action, params) {\n /**\n * @event proxy#callItemAction\n * @param {Promise} promise\n * @param {String} uri\n * @param {String} action\n * @param {Object} params\n */\n return delegate('callItemAction', uri, action, getParams(params));\n },\n\n /**\n * Sends a telemetry signal\n * @param {String} uri - The URI of the item for which sends the telemetry signal\n * @param {String} signal - The name of the signal to send\n * @param {Object} [params] - Some optional parameters to join to the signal\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n * @fires telemetry\n */\n telemetry: function telemetry(uri, signal, params) {\n /**\n * @event proxy#telemetry\n * @param {Promise} promise\n * @param {String} uri\n * @param {String} signal\n * @param {Object} params\n */\n return delegate('telemetry', uri, signal, params);\n }\n });\n\n delegateProxy = delegator(proxy, proxyAdapter, {name: 'proxy'});\n\n return proxy;\n }\n\n return providerRegistry(proxyFactory);\n});\n\n","!function(a,b){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=b():\"function\"==typeof define&&define.amd?define('moment',b):a.moment=b()}(this,function(){\"use strict\";function a(){return Rd.apply(null,arguments)}function b(a){Rd=a}function c(a){return\"[object Array]\"===Object.prototype.toString.call(a)}function d(a){return a instanceof Date||\"[object Date]\"===Object.prototype.toString.call(a)}function e(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function f(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function g(a,b){for(var c in b)f(b,c)&&(a[c]=b[c]);return f(b,\"toString\")&&(a.toString=b.toString),f(b,\"valueOf\")&&(a.valueOf=b.valueOf),a}function h(a,b,c,d){return Da(a,b,c,d,!0).utc()}function i(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function j(a){return null==a._pf&&(a._pf=i()),a._pf}function k(a){if(null==a._isValid){var b=j(a);a._isValid=!(isNaN(a._d.getTime())||!(b.overflow<0)||b.empty||b.invalidMonth||b.invalidWeekday||b.nullInput||b.invalidFormat||b.userInvalidated),a._strict&&(a._isValid=a._isValid&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour)}return a._isValid}function l(a){var b=h(NaN);return null!=a?g(j(b),a):j(b).userInvalidated=!0,b}function m(a){return void 0===a}function n(a,b){var c,d,e;if(m(b._isAMomentObject)||(a._isAMomentObject=b._isAMomentObject),m(b._i)||(a._i=b._i),m(b._f)||(a._f=b._f),m(b._l)||(a._l=b._l),m(b._strict)||(a._strict=b._strict),m(b._tzm)||(a._tzm=b._tzm),m(b._isUTC)||(a._isUTC=b._isUTC),m(b._offset)||(a._offset=b._offset),m(b._pf)||(a._pf=j(b)),m(b._locale)||(a._locale=b._locale),Td.length>0)for(c in Td)d=Td[c],e=b[d],m(e)||(a[d]=e);return a}function o(b){n(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),Ud===!1&&(Ud=!0,a.updateOffset(this),Ud=!1)}function p(a){return a instanceof o||null!=a&&null!=a._isAMomentObject}function q(a){return 0>a?Math.ceil(a):Math.floor(a)}function r(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=q(b)),c}function s(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&r(a[d])!==r(b[d]))&&g++;return g+f}function t(){}function u(a){return a?a.toLowerCase().replace(\"_\",\"-\"):a}function v(a){for(var b,c,d,e,f=0;f<a.length;){for(e=u(a[f]).split(\"-\"),b=e.length,c=u(a[f+1]),c=c?c.split(\"-\"):null;b>0;){if(d=w(e.slice(0,b).join(\"-\")))return d;if(c&&c.length>=b&&s(e,c,!0)>=b-1)break;b--}f++}return null}function w(a){var b=null;if(!Vd[a]&&\"undefined\"!=typeof module&&module&&module.exports)try{b=Sd._abbr,require(\"./locale/\"+a),x(b)}catch(c){}return Vd[a]}function x(a,b){var c;return a&&(c=m(b)?z(a):y(a,b),c&&(Sd=c)),Sd._abbr}function y(a,b){return null!==b?(b.abbr=a,Vd[a]=Vd[a]||new t,Vd[a].set(b),x(a),Vd[a]):(delete Vd[a],null)}function z(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Sd;if(!c(a)){if(b=w(a))return b;a=[a]}return v(a)}function A(a,b){var c=a.toLowerCase();Wd[c]=Wd[c+\"s\"]=Wd[b]=a}function B(a){return\"string\"==typeof a?Wd[a]||Wd[a.toLowerCase()]:void 0}function C(a){var b,c,d={};for(c in a)f(a,c)&&(b=B(c),b&&(d[b]=a[c]));return d}function D(a){return a instanceof Function||\"[object Function]\"===Object.prototype.toString.call(a)}function E(b,c){return function(d){return null!=d?(G(this,b,d),a.updateOffset(this,c),this):F(this,b)}}function F(a,b){return a.isValid()?a._d[\"get\"+(a._isUTC?\"UTC\":\"\")+b]():NaN}function G(a,b,c){a.isValid()&&a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+b](c)}function H(a,b){var c;if(\"object\"==typeof a)for(c in a)this.set(c,a[c]);else if(a=B(a),D(this[a]))return this[a](b);return this}function I(a,b,c){var d=\"\"+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function J(a,b,c,d){var e=d;\"string\"==typeof d&&(e=function(){return this[d]()}),a&&($d[a]=e),b&&($d[b[0]]=function(){return I(e.apply(this,arguments),b[1],b[2])}),c&&($d[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function K(a){return a.match(/\\[[\\s\\S]/)?a.replace(/^\\[|\\]$/g,\"\"):a.replace(/\\\\/g,\"\")}function L(a){var b,c,d=a.match(Xd);for(b=0,c=d.length;c>b;b++)$d[d[b]]?d[b]=$d[d[b]]:d[b]=K(d[b]);return function(e){var f=\"\";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function M(a,b){return a.isValid()?(b=N(b,a.localeData()),Zd[b]=Zd[b]||L(b),Zd[b](a)):a.localeData().invalidDate()}function N(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Yd.lastIndex=0;d>=0&&Yd.test(a);)a=a.replace(Yd,c),Yd.lastIndex=0,d-=1;return a}function O(a,b,c){qe[a]=D(b)?b:function(a,d){return a&&c?c:b}}function P(a,b){return f(qe,a)?qe[a](b._strict,b._locale):new RegExp(Q(a))}function Q(a){return R(a.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function R(a){return a.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function S(a,b){var c,d=b;for(\"string\"==typeof a&&(a=[a]),\"number\"==typeof b&&(d=function(a,c){c[b]=r(a)}),c=0;c<a.length;c++)re[a[c]]=d}function T(a,b){S(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function U(a,b,c){null!=b&&f(re,a)&&re[a](b,c._a,c,a)}function V(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function W(a,b){return c(this._months)?this._months[a.month()]:this._months[Be.test(b)?\"format\":\"standalone\"][a.month()]}function X(a,b){return c(this._monthsShort)?this._monthsShort[a.month()]:this._monthsShort[Be.test(b)?\"format\":\"standalone\"][a.month()]}function Y(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=h([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp(\"^\"+this.months(e,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[d]=new RegExp(\"^\"+this.monthsShort(e,\"\").replace(\".\",\"\")+\"$\",\"i\")),c||this._monthsParse[d]||(f=\"^\"+this.months(e,\"\")+\"|^\"+this.monthsShort(e,\"\"),this._monthsParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"MMMM\"===b&&this._longMonthsParse[d].test(a))return d;if(c&&\"MMM\"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function Z(a,b){var c;return a.isValid()?\"string\"==typeof b&&(b=a.localeData().monthsParse(b),\"number\"!=typeof b)?a:(c=Math.min(a.date(),V(a.year(),b)),a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+\"Month\"](b,c),a):a}function $(b){return null!=b?(Z(this,b),a.updateOffset(this,!0),this):F(this,\"Month\")}function _(){return V(this.year(),this.month())}function aa(a){return this._monthsParseExact?(f(this,\"_monthsRegex\")||ca.call(this),a?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&a?this._monthsShortStrictRegex:this._monthsShortRegex}function ba(a){return this._monthsParseExact?(f(this,\"_monthsRegex\")||ca.call(this),a?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&a?this._monthsStrictRegex:this._monthsRegex}function ca(){function a(a,b){return b.length-a.length}var b,c,d=[],e=[],f=[];for(b=0;12>b;b++)c=h([2e3,b]),d.push(this.monthsShort(c,\"\")),e.push(this.months(c,\"\")),f.push(this.months(c,\"\")),f.push(this.monthsShort(c,\"\"));for(d.sort(a),e.sort(a),f.sort(a),b=0;12>b;b++)d[b]=R(d[b]),e[b]=R(e[b]),f[b]=R(f[b]);this._monthsRegex=new RegExp(\"^(\"+f.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+e.join(\"|\")+\")$\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+d.join(\"|\")+\")$\",\"i\")}function da(a){var b,c=a._a;return c&&-2===j(a).overflow&&(b=c[te]<0||c[te]>11?te:c[ue]<1||c[ue]>V(c[se],c[te])?ue:c[ve]<0||c[ve]>24||24===c[ve]&&(0!==c[we]||0!==c[xe]||0!==c[ye])?ve:c[we]<0||c[we]>59?we:c[xe]<0||c[xe]>59?xe:c[ye]<0||c[ye]>999?ye:-1,j(a)._overflowDayOfYear&&(se>b||b>ue)&&(b=ue),j(a)._overflowWeeks&&-1===b&&(b=ze),j(a)._overflowWeekday&&-1===b&&(b=Ae),j(a).overflow=b),a}function ea(b){a.suppressDeprecationWarnings===!1&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+b)}function fa(a,b){var c=!0;return g(function(){return c&&(ea(a+\"\\nArguments: \"+Array.prototype.slice.call(arguments).join(\", \")+\"\\n\"+(new Error).stack),c=!1),b.apply(this,arguments)},b)}function ga(a,b){Ge[a]||(ea(b),Ge[a]=!0)}function ha(a){var b,c,d,e,f,g,h=a._i,i=He.exec(h)||Ie.exec(h);if(i){for(j(a).iso=!0,b=0,c=Ke.length;c>b;b++)if(Ke[b][1].exec(i[1])){e=Ke[b][0],d=Ke[b][2]!==!1;break}if(null==e)return void(a._isValid=!1);if(i[3]){for(b=0,c=Le.length;c>b;b++)if(Le[b][1].exec(i[3])){f=(i[2]||\" \")+Le[b][0];break}if(null==f)return void(a._isValid=!1)}if(!d&&null!=f)return void(a._isValid=!1);if(i[4]){if(!Je.exec(i[4]))return void(a._isValid=!1);g=\"Z\"}a._f=e+(f||\"\")+(g||\"\"),wa(a)}else a._isValid=!1}function ia(b){var c=Me.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(ha(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))}function ja(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 100>a&&a>=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ka(a){var b=new Date(Date.UTC.apply(null,arguments));return 100>a&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function la(a){return ma(a)?366:365}function ma(a){return a%4===0&&a%100!==0||a%400===0}function na(){return ma(this.year())}function oa(a,b,c){var d=7+b-c,e=(7+ka(a,0,d).getUTCDay()-b)%7;return-e+d-1}function pa(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=oa(a,d,e),j=1+7*(b-1)+h+i;return 0>=j?(f=a-1,g=la(f)+j):j>la(a)?(f=a+1,g=j-la(a)):(f=a,g=j),{year:f,dayOfYear:g}}function qa(a,b,c){var d,e,f=oa(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return 1>g?(e=a.year()-1,d=g+ra(e,b,c)):g>ra(a.year(),b,c)?(d=g-ra(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function ra(a,b,c){var d=oa(a,b,c),e=oa(a+1,b,c);return(la(a)-d+e)/7}function sa(a,b,c){return null!=a?a:null!=b?b:c}function ta(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function ua(a){var b,c,d,e,f=[];if(!a._d){for(d=ta(a),a._w&&null==a._a[ue]&&null==a._a[te]&&va(a),a._dayOfYear&&(e=sa(a._a[se],d[se]),a._dayOfYear>la(e)&&(j(a)._overflowDayOfYear=!0),c=ka(e,0,a._dayOfYear),a._a[te]=c.getUTCMonth(),a._a[ue]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[ve]&&0===a._a[we]&&0===a._a[xe]&&0===a._a[ye]&&(a._nextDay=!0,a._a[ve]=0),a._d=(a._useUTC?ka:ja).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[ve]=24)}}function va(a){var b,c,d,e,f,g,h,i;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=sa(b.GG,a._a[se],qa(Ea(),1,4).year),d=sa(b.W,1),e=sa(b.E,1),(1>e||e>7)&&(i=!0)):(f=a._locale._week.dow,g=a._locale._week.doy,c=sa(b.gg,a._a[se],qa(Ea(),f,g).year),d=sa(b.w,1),null!=b.d?(e=b.d,(0>e||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f),1>d||d>ra(c,f,g)?j(a)._overflowWeeks=!0:null!=i?j(a)._overflowWeekday=!0:(h=pa(c,d,e,f,g),a._a[se]=h.year,a._dayOfYear=h.dayOfYear)}function wa(b){if(b._f===a.ISO_8601)return void ha(b);b._a=[],j(b).empty=!0;var c,d,e,f,g,h=\"\"+b._i,i=h.length,k=0;for(e=N(b._f,b._locale).match(Xd)||[],c=0;c<e.length;c++)f=e[c],d=(h.match(P(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&j(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),k+=d.length),$d[f]?(d?j(b).empty=!1:j(b).unusedTokens.push(f),U(f,d,b)):b._strict&&!d&&j(b).unusedTokens.push(f);j(b).charsLeftOver=i-k,h.length>0&&j(b).unusedInput.push(h),j(b).bigHour===!0&&b._a[ve]<=12&&b._a[ve]>0&&(j(b).bigHour=void 0),b._a[ve]=xa(b._locale,b._a[ve],b._meridiem),ua(b),da(b)}function xa(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function ya(a){var b,c,d,e,f;if(0===a._f.length)return j(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e<a._f.length;e++)f=0,b=n({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],wa(b),k(b)&&(f+=j(b).charsLeftOver,f+=10*j(b).unusedTokens.length,j(b).score=f,(null==d||d>f)&&(d=f,c=b));g(a,c||b)}function za(a){if(!a._d){var b=C(a._i);a._a=e([b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],function(a){return a&&parseInt(a,10)}),ua(a)}}function Aa(a){var b=new o(da(Ba(a)));return b._nextDay&&(b.add(1,\"d\"),b._nextDay=void 0),b}function Ba(a){var b=a._i,e=a._f;return a._locale=a._locale||z(a._l),null===b||void 0===e&&\"\"===b?l({nullInput:!0}):(\"string\"==typeof b&&(a._i=b=a._locale.preparse(b)),p(b)?new o(da(b)):(c(e)?ya(a):e?wa(a):d(b)?a._d=b:Ca(a),k(a)||(a._d=null),a))}function Ca(b){var f=b._i;void 0===f?b._d=new Date(a.now()):d(f)?b._d=new Date(+f):\"string\"==typeof f?ia(b):c(f)?(b._a=e(f.slice(0),function(a){return parseInt(a,10)}),ua(b)):\"object\"==typeof f?za(b):\"number\"==typeof f?b._d=new Date(f):a.createFromInputFallback(b)}function Da(a,b,c,d,e){var f={};return\"boolean\"==typeof c&&(d=c,c=void 0),f._isAMomentObject=!0,f._useUTC=f._isUTC=e,f._l=c,f._i=a,f._f=b,f._strict=d,Aa(f)}function Ea(a,b,c,d){return Da(a,b,c,d,!1)}function Fa(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return Ea();for(d=b[0],e=1;e<b.length;++e)(!b[e].isValid()||b[e][a](d))&&(d=b[e]);return d}function Ga(){var a=[].slice.call(arguments,0);return Fa(\"isBefore\",a)}function Ha(){var a=[].slice.call(arguments,0);return Fa(\"isAfter\",a)}function Ia(a){var b=C(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=z(),this._bubble()}function Ja(a){return a instanceof Ia}function Ka(a,b){J(a,0,0,function(){var a=this.utcOffset(),c=\"+\";return 0>a&&(a=-a,c=\"-\"),c+I(~~(a/60),2)+b+I(~~a%60,2)})}function La(a,b){var c=(b||\"\").match(a)||[],d=c[c.length-1]||[],e=(d+\"\").match(Re)||[\"-\",0,0],f=+(60*e[1])+r(e[2]);return\"+\"===e[0]?f:-f}function Ma(b,c){var e,f;return c._isUTC?(e=c.clone(),f=(p(b)||d(b)?+b:+Ea(b))-+e,e._d.setTime(+e._d+f),a.updateOffset(e,!1),e):Ea(b).local()}function Na(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Oa(b,c){var d,e=this._offset||0;return this.isValid()?null!=b?(\"string\"==typeof b?b=La(ne,b):Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Na(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,\"m\"),e!==b&&(!c||this._changeInProgress?cb(this,Za(b-e,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Na(this):null!=b?this:NaN}function Pa(a,b){return null!=a?(\"string\"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Qa(a){return this.utcOffset(0,a)}function Ra(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Na(this),\"m\")),this}function Sa(){return this._tzm?this.utcOffset(this._tzm):\"string\"==typeof this._i&&this.utcOffset(La(me,this._i)),this}function Ta(a){return this.isValid()?(a=a?Ea(a).utcOffset():0,(this.utcOffset()-a)%60===0):!1}function Ua(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Va(){if(!m(this._isDSTShifted))return this._isDSTShifted;var a={};if(n(a,this),a=Ba(a),a._a){var b=a._isUTC?h(a._a):Ea(a._a);this._isDSTShifted=this.isValid()&&s(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Wa(){return this.isValid()?!this._isUTC:!1}function Xa(){return this.isValid()?this._isUTC:!1}function Ya(){return this.isValid()?this._isUTC&&0===this._offset:!1}function Za(a,b){var c,d,e,g=a,h=null;return Ja(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:\"number\"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=Se.exec(a))?(c=\"-\"===h[1]?-1:1,g={y:0,d:r(h[ue])*c,h:r(h[ve])*c,m:r(h[we])*c,s:r(h[xe])*c,ms:r(h[ye])*c}):(h=Te.exec(a))?(c=\"-\"===h[1]?-1:1,g={y:$a(h[2],c),M:$a(h[3],c),d:$a(h[4],c),h:$a(h[5],c),m:$a(h[6],c),s:$a(h[7],c),w:$a(h[8],c)}):null==g?g={}:\"object\"==typeof g&&(\"from\"in g||\"to\"in g)&&(e=ab(Ea(g.from),Ea(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new Ia(g),Ja(a)&&f(a,\"_locale\")&&(d._locale=a._locale),d}function $a(a,b){var c=a&&parseFloat(a.replace(\",\",\".\"));return(isNaN(c)?0:c)*b}function _a(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,\"M\").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,\"M\"),c}function ab(a,b){var c;return a.isValid()&&b.isValid()?(b=Ma(b,a),a.isBefore(b)?c=_a(a,b):(c=_a(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function bb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(ga(b,\"moment().\"+b+\"(period, number) is deprecated. Please use moment().\"+b+\"(number, period).\"),f=c,c=d,d=f),c=\"string\"==typeof c?+c:c,e=Za(c,d),cb(this,e,a),this}}function cb(b,c,d,e){var f=c._milliseconds,g=c._days,h=c._months;b.isValid()&&(e=null==e?!0:e,f&&b._d.setTime(+b._d+f*d),g&&G(b,\"Date\",F(b,\"Date\")+g*d),h&&Z(b,F(b,\"Month\")+h*d),e&&a.updateOffset(b,g||h))}function db(a,b){var c=a||Ea(),d=Ma(c,this).startOf(\"day\"),e=this.diff(d,\"days\",!0),f=-6>e?\"sameElse\":-1>e?\"lastWeek\":0>e?\"lastDay\":1>e?\"sameDay\":2>e?\"nextDay\":7>e?\"nextWeek\":\"sameElse\",g=b&&(D(b[f])?b[f]():b[f]);return this.format(g||this.localeData().calendar(f,this,Ea(c)))}function eb(){return new o(this)}function fb(a,b){var c=p(a)?a:Ea(a);return this.isValid()&&c.isValid()?(b=B(m(b)?\"millisecond\":b),\"millisecond\"===b?+this>+c:+c<+this.clone().startOf(b)):!1}function gb(a,b){var c=p(a)?a:Ea(a);return this.isValid()&&c.isValid()?(b=B(m(b)?\"millisecond\":b),\"millisecond\"===b?+c>+this:+this.clone().endOf(b)<+c):!1}function hb(a,b,c){return this.isAfter(a,c)&&this.isBefore(b,c)}function ib(a,b){var c,d=p(a)?a:Ea(a);return this.isValid()&&d.isValid()?(b=B(b||\"millisecond\"),\"millisecond\"===b?+this===+d:(c=+d,+this.clone().startOf(b)<=c&&c<=+this.clone().endOf(b))):!1}function jb(a,b){return this.isSame(a,b)||this.isAfter(a,b)}function kb(a,b){return this.isSame(a,b)||this.isBefore(a,b)}function lb(a,b,c){var d,e,f,g;return this.isValid()?(d=Ma(a,this),d.isValid()?(e=6e4*(d.utcOffset()-this.utcOffset()),b=B(b),\"year\"===b||\"month\"===b||\"quarter\"===b?(g=mb(this,d),\"quarter\"===b?g/=3:\"year\"===b&&(g/=12)):(f=this-d,g=\"second\"===b?f/1e3:\"minute\"===b?f/6e4:\"hour\"===b?f/36e5:\"day\"===b?(f-e)/864e5:\"week\"===b?(f-e)/6048e5:f),c?g:q(g)):NaN):NaN}function mb(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,\"months\");return 0>b-f?(c=a.clone().add(e-1,\"months\"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,\"months\"),d=(b-f)/(c-f)),-(e+d)}function nb(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")}function ob(){var a=this.clone().utc();return 0<a.year()&&a.year()<=9999?D(Date.prototype.toISOString)?this.toDate().toISOString():M(a,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\"):M(a,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function pb(b){var c=M(this,b||a.defaultFormat);return this.localeData().postformat(c)}function qb(a,b){return this.isValid()&&(p(a)&&a.isValid()||Ea(a).isValid())?Za({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function rb(a){return this.from(Ea(),a)}function sb(a,b){return this.isValid()&&(p(a)&&a.isValid()||Ea(a).isValid())?Za({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function tb(a){return this.to(Ea(),a)}function ub(a){var b;return void 0===a?this._locale._abbr:(b=z(a),null!=b&&(this._locale=b),this)}function vb(){return this._locale}function wb(a){switch(a=B(a)){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}return\"week\"===a&&this.weekday(0),\"isoWeek\"===a&&this.isoWeekday(1),\"quarter\"===a&&this.month(3*Math.floor(this.month()/3)),this}function xb(a){return a=B(a),void 0===a||\"millisecond\"===a?this:this.startOf(a).add(1,\"isoWeek\"===a?\"week\":a).subtract(1,\"ms\")}function yb(){return+this._d-6e4*(this._offset||0)}function zb(){return Math.floor(+this/1e3)}function Ab(){return this._offset?new Date(+this):this._d}function Bb(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function Cb(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function Db(){return this.isValid()?this.toISOString():\"null\"}function Eb(){return k(this)}function Fb(){return g({},j(this))}function Gb(){return j(this).overflow}function Hb(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ib(a,b){J(0,[a,a.length],0,b)}function Jb(a){return Nb.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Kb(a){return Nb.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Lb(){return ra(this.year(),1,4)}function Mb(){var a=this.localeData()._week;return ra(this.year(),a.dow,a.doy)}function Nb(a,b,c,d,e){var f;return null==a?qa(this,d,e).year:(f=ra(a,d,e),b>f&&(b=f),Ob.call(this,a,b,c,d,e))}function Ob(a,b,c,d,e){var f=pa(a,b,c,d,e),g=ka(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Pb(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Qb(a){return qa(a,this._week.dow,this._week.doy).week}function Rb(){return this._week.dow}function Sb(){return this._week.doy}function Tb(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),\"d\")}function Ub(a){var b=qa(this,1,4).week;return null==a?b:this.add(7*(a-b),\"d\")}function Vb(a,b){return\"string\"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),\"number\"==typeof a?a:null):parseInt(a,10)}function Wb(a,b){return c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?\"format\":\"standalone\"][a.day()]}function Xb(a){return this._weekdaysShort[a.day()]}function Yb(a){return this._weekdaysMin[a.day()]}function Zb(a,b,c){var d,e,f;for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;7>d;d++){if(e=Ea([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp(\"^\"+this.weekdays(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysShort(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysMin(e,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[d]||(f=\"^\"+this.weekdays(e,\"\")+\"|^\"+this.weekdaysShort(e,\"\")+\"|^\"+this.weekdaysMin(e,\"\"),this._weekdaysParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"dddd\"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&\"ddd\"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&\"dd\"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function $b(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Vb(a,this.localeData()),this.add(a-b,\"d\")):b}function _b(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,\"d\")}function ac(a){return this.isValid()?null==a?this.day()||7:this.day(this.day()%7?a:a-7):null!=a?this:NaN}function bc(a){var b=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==a?b:this.add(a-b,\"d\")}function cc(){return this.hours()%12||12}function dc(a,b){J(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function ec(a,b){return b._meridiemParse}function fc(a){return\"p\"===(a+\"\").toLowerCase().charAt(0)}function gc(a,b,c){return a>11?c?\"pm\":\"PM\":c?\"am\":\"AM\"}function hc(a,b){b[ye]=r(1e3*(\"0.\"+a))}function ic(){return this._isUTC?\"UTC\":\"\"}function jc(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function kc(a){return Ea(1e3*a)}function lc(){return Ea.apply(null,arguments).parseZone()}function mc(a,b,c){var d=this._calendar[a];return D(d)?d.call(b,c):d}function nc(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function oc(){return this._invalidDate}function pc(a){return this._ordinal.replace(\"%d\",a)}function qc(a){return a}function rc(a,b,c,d){var e=this._relativeTime[c];return D(e)?e(a,b,c,d):e.replace(/%d/i,a)}function sc(a,b){var c=this._relativeTime[a>0?\"future\":\"past\"];return D(c)?c(b):c.replace(/%s/i,b)}function tc(a){var b,c;for(c in a)b=a[c],D(b)?this[c]=b:this[\"_\"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+\"|\"+/\\d{1,2}/.source)}function uc(a,b,c,d){var e=z(),f=h().set(d,b);return e[c](f,a)}function vc(a,b,c,d,e){if(\"number\"==typeof a&&(b=a,a=void 0),a=a||\"\",null!=b)return uc(a,b,c,e);var f,g=[];for(f=0;d>f;f++)g[f]=uc(a,f,c,e);return g}function wc(a,b){return vc(a,b,\"months\",12,\"month\")}function xc(a,b){return vc(a,b,\"monthsShort\",12,\"month\")}function yc(a,b){return vc(a,b,\"weekdays\",7,\"day\")}function zc(a,b){return vc(a,b,\"weekdaysShort\",7,\"day\")}function Ac(a,b){return vc(a,b,\"weekdaysMin\",7,\"day\")}function Bc(){var a=this._data;return this._milliseconds=qf(this._milliseconds),this._days=qf(this._days),this._months=qf(this._months),a.milliseconds=qf(a.milliseconds),a.seconds=qf(a.seconds),a.minutes=qf(a.minutes),a.hours=qf(a.hours),a.months=qf(a.months),a.years=qf(a.years),this}function Cc(a,b,c,d){var e=Za(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function Dc(a,b){return Cc(this,a,b,1)}function Ec(a,b){return Cc(this,a,b,-1)}function Fc(a){return 0>a?Math.floor(a):Math.ceil(a)}function Gc(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||0>=f&&0>=g&&0>=h||(f+=864e5*Fc(Ic(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=q(f/1e3),i.seconds=a%60,b=q(a/60),i.minutes=b%60,c=q(b/60),i.hours=c%24,g+=q(c/24),e=q(Hc(g)),h+=e,g-=Fc(Ic(e)),d=q(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function Hc(a){return 4800*a/146097}function Ic(a){return 146097*a/4800}function Jc(a){var b,c,d=this._milliseconds;if(a=B(a),\"month\"===a||\"year\"===a)return b=this._days+d/864e5,c=this._months+Hc(b),\"month\"===a?c:c/12;switch(b=this._days+Math.round(Ic(this._months)),a){case\"week\":return b/7+d/6048e5;case\"day\":return b+d/864e5;case\"hour\":return 24*b+d/36e5;case\"minute\":return 1440*b+d/6e4;case\"second\":return 86400*b+d/1e3;case\"millisecond\":return Math.floor(864e5*b)+d;default:throw new Error(\"Unknown unit \"+a)}}function Kc(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*r(this._months/12)}function Lc(a){return function(){return this.as(a)}}function Mc(a){return a=B(a),this[a+\"s\"]()}function Nc(a){return function(){return this._data[a]}}function Oc(){return q(this.days()/7)}function Pc(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function Qc(a,b,c){var d=Za(a).abs(),e=Gf(d.as(\"s\")),f=Gf(d.as(\"m\")),g=Gf(d.as(\"h\")),h=Gf(d.as(\"d\")),i=Gf(d.as(\"M\")),j=Gf(d.as(\"y\")),k=e<Hf.s&&[\"s\",e]||1>=f&&[\"m\"]||f<Hf.m&&[\"mm\",f]||1>=g&&[\"h\"]||g<Hf.h&&[\"hh\",g]||1>=h&&[\"d\"]||h<Hf.d&&[\"dd\",h]||1>=i&&[\"M\"]||i<Hf.M&&[\"MM\",i]||1>=j&&[\"y\"]||[\"yy\",j];return k[2]=b,k[3]=+a>0,k[4]=c,Pc.apply(null,k)}function Rc(a,b){return void 0===Hf[a]?!1:void 0===b?Hf[a]:(Hf[a]=b,!0)}function Sc(a){var b=this.localeData(),c=Qc(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function Tc(){var a,b,c,d=If(this._milliseconds)/1e3,e=If(this._days),f=If(this._months);a=q(d/60),b=q(a/60),d%=60,a%=60,c=q(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(0>m?\"-\":\"\")+\"P\"+(g?g+\"Y\":\"\")+(h?h+\"M\":\"\")+(i?i+\"D\":\"\")+(j||k||l?\"T\":\"\")+(j?j+\"H\":\"\")+(k?k+\"M\":\"\")+(l?l+\"S\":\"\"):\"P0D\"}\n//! moment.js locale configuration\n//! locale : belarusian (be)\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\nfunction Uc(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function Vc(a,b,c){var d={mm:b?\"хвіліна_хвіліны_хвілін\":\"хвіліну_хвіліны_хвілін\",hh:b?\"гадзіна_гадзіны_гадзін\":\"гадзіну_гадзіны_гадзін\",dd:\"дзень_дні_дзён\",MM:\"месяц_месяцы_месяцаў\",yy:\"год_гады_гадоў\"};return\"m\"===c?b?\"хвіліна\":\"хвіліну\":\"h\"===c?b?\"гадзіна\":\"гадзіну\":a+\" \"+Uc(d[c],+a)}\n//! moment.js locale configuration\n//! locale : breton (br)\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\nfunction Wc(a,b,c){var d={mm:\"munutenn\",MM:\"miz\",dd:\"devezh\"};return a+\" \"+Zc(d[c],a)}function Xc(a){switch(Yc(a)){case 1:case 3:case 4:case 5:case 9:return a+\" bloaz\";default:return a+\" vloaz\"}}function Yc(a){return a>9?Yc(a%10):a}function Zc(a,b){return 2===b?$c(a):a}function $c(a){var b={m:\"v\",b:\"v\",d:\"z\"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)}\n//! moment.js locale configuration\n//! locale : bosnian (bs)\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\nfunction _c(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}function ad(a){return a>1&&5>a&&1!==~~(a/10)}function bd(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"pár sekund\":\"pár sekundami\";case\"m\":return b?\"minuta\":d?\"minutu\":\"minutou\";case\"mm\":return b||d?e+(ad(a)?\"minuty\":\"minut\"):e+\"minutami\";break;case\"h\":return b?\"hodina\":d?\"hodinu\":\"hodinou\";case\"hh\":return b||d?e+(ad(a)?\"hodiny\":\"hodin\"):e+\"hodinami\";break;case\"d\":return b||d?\"den\":\"dnem\";case\"dd\":return b||d?e+(ad(a)?\"dny\":\"dní\"):e+\"dny\";break;case\"M\":return b||d?\"měsíc\":\"měsícem\";case\"MM\":return b||d?e+(ad(a)?\"měsíce\":\"měsíců\"):e+\"měsíci\";break;case\"y\":return b||d?\"rok\":\"rokem\";case\"yy\":return b||d?e+(ad(a)?\"roky\":\"let\"):e+\"lety\"}}\n//! moment.js locale configuration\n//! locale : austrian german (de-at)\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\nfunction cd(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}\n//! moment.js locale configuration\n//! locale : german (de)\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\nfunction dd(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}\n//! moment.js locale configuration\n//! locale : estonian (et)\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\nfunction ed(a,b,c,d){var e={s:[\"mõne sekundi\",\"mõni sekund\",\"paar sekundit\"],m:[\"ühe minuti\",\"üks minut\"],mm:[a+\" minuti\",a+\" minutit\"],h:[\"ühe tunni\",\"tund aega\",\"üks tund\"],hh:[a+\" tunni\",a+\" tundi\"],d:[\"ühe päeva\",\"üks päev\"],M:[\"kuu aja\",\"kuu aega\",\"üks kuu\"],MM:[a+\" kuu\",a+\" kuud\"],y:[\"ühe aasta\",\"aasta\",\"üks aasta\"],yy:[a+\" aasta\",a+\" aastat\"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function fd(a,b,c,d){var e=\"\";switch(c){case\"s\":return d?\"muutaman sekunnin\":\"muutama sekunti\";case\"m\":return d?\"minuutin\":\"minuutti\";case\"mm\":e=d?\"minuutin\":\"minuuttia\";break;case\"h\":return d?\"tunnin\":\"tunti\";case\"hh\":e=d?\"tunnin\":\"tuntia\";break;case\"d\":return d?\"päivän\":\"päivä\";case\"dd\":e=d?\"päivän\":\"päivää\";break;case\"M\":return d?\"kuukauden\":\"kuukausi\";case\"MM\":e=d?\"kuukauden\":\"kuukautta\";break;case\"y\":return d?\"vuoden\":\"vuosi\";case\"yy\":e=d?\"vuoden\":\"vuotta\"}return e=gd(a,d)+\" \"+e}function gd(a,b){return 10>a?b?fg[a]:eg[a]:a}\n//! moment.js locale configuration\n//! locale : hrvatski (hr)\n//! author : Bojan Marković : https://github.com/bmarkovic\nfunction hd(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}function id(a,b,c,d){var e=a;switch(c){case\"s\":return d||b?\"néhány másodperc\":\"néhány másodperce\";case\"m\":return\"egy\"+(d||b?\" perc\":\" perce\");case\"mm\":return e+(d||b?\" perc\":\" perce\");case\"h\":return\"egy\"+(d||b?\" óra\":\" órája\");case\"hh\":return e+(d||b?\" óra\":\" órája\");case\"d\":return\"egy\"+(d||b?\" nap\":\" napja\");case\"dd\":return e+(d||b?\" nap\":\" napja\");case\"M\":return\"egy\"+(d||b?\" hónap\":\" hónapja\");case\"MM\":return e+(d||b?\" hónap\":\" hónapja\");case\"y\":return\"egy\"+(d||b?\" év\":\" éve\");case\"yy\":return e+(d||b?\" év\":\" éve\")}return\"\"}function jd(a){return(a?\"\":\"[múlt] \")+\"[\"+pg[this.day()]+\"] LT[-kor]\"}\n//! moment.js locale configuration\n//! locale : icelandic (is)\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\nfunction kd(a){return a%100===11?!0:a%10===1?!1:!0}function ld(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"nokkrar sekúndur\":\"nokkrum sekúndum\";case\"m\":return b?\"mínúta\":\"mínútu\";case\"mm\":return kd(a)?e+(b||d?\"mínútur\":\"mínútum\"):b?e+\"mínúta\":e+\"mínútu\";case\"hh\":return kd(a)?e+(b||d?\"klukkustundir\":\"klukkustundum\"):e+\"klukkustund\";case\"d\":return b?\"dagur\":d?\"dag\":\"degi\";case\"dd\":return kd(a)?b?e+\"dagar\":e+(d?\"daga\":\"dögum\"):b?e+\"dagur\":e+(d?\"dag\":\"degi\");case\"M\":return b?\"mánuður\":d?\"mánuð\":\"mánuði\";case\"MM\":return kd(a)?b?e+\"mánuðir\":e+(d?\"mánuði\":\"mánuðum\"):b?e+\"mánuður\":e+(d?\"mánuð\":\"mánuði\");case\"y\":return b||d?\"ár\":\"ári\";case\"yy\":return kd(a)?e+(b||d?\"ár\":\"árum\"):e+(b||d?\"ár\":\"ári\")}}\n//! moment.js locale configuration\n//! locale : Luxembourgish (lb)\n//! author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz\nfunction md(a,b,c,d){var e={m:[\"eng Minutt\",\"enger Minutt\"],h:[\"eng Stonn\",\"enger Stonn\"],d:[\"een Dag\",\"engem Dag\"],M:[\"ee Mount\",\"engem Mount\"],y:[\"ee Joer\",\"engem Joer\"]};return b?e[c][0]:e[c][1]}function nd(a){var b=a.substr(0,a.indexOf(\" \"));return pd(b)?\"a \"+a:\"an \"+a}function od(a){var b=a.substr(0,a.indexOf(\" \"));return pd(b)?\"viru \"+a:\"virun \"+a}function pd(a){if(a=parseInt(a,10),isNaN(a))return!1;if(0>a)return!0;if(10>a)return a>=4&&7>=a?!0:!1;if(100>a){var b=a%10,c=a/10;return pd(0===b?c:b)}if(1e4>a){for(;a>=10;)a/=10;return pd(a)}return a/=1e3,pd(a)}function qd(a,b,c,d){return b?\"kelios sekundės\":d?\"kelių sekundžių\":\"kelias sekundes\"}function rd(a,b,c,d){return b?td(c)[0]:d?td(c)[1]:td(c)[2]}function sd(a){return a%10===0||a>10&&20>a}function td(a){return rg[a].split(\"_\")}function ud(a,b,c,d){var e=a+\" \";return 1===a?e+rd(a,b,c[0],d):b?e+(sd(a)?td(c)[1]:td(c)[0]):d?e+td(c)[1]:e+(sd(a)?td(c)[1]:td(c)[2])}function vd(a,b,c){return c?b%10===1&&11!==b?a[2]:a[3]:b%10===1&&11!==b?a[0]:a[1]}function wd(a,b,c){return a+\" \"+vd(sg[c],a,b)}function xd(a,b,c){return vd(sg[c],a,b)}function yd(a,b){return b?\"dažas sekundes\":\"dažām sekundēm\"}function zd(a,b,c,d){var e=\"\";if(b)switch(c){case\"s\":e=\"काही सेकंद\";break;case\"m\":e=\"एक मिनिट\";break;case\"mm\":e=\"%d मिनिटे\";break;case\"h\":e=\"एक तास\";break;case\"hh\":e=\"%d तास\";break;case\"d\":e=\"एक दिवस\";break;case\"dd\":e=\"%d दिवस\";break;case\"M\":e=\"एक महिना\";break;case\"MM\":e=\"%d महिने\";break;case\"y\":e=\"एक वर्ष\";break;case\"yy\":e=\"%d वर्षे\"}else switch(c){case\"s\":e=\"काही सेकंदां\";break;case\"m\":e=\"एका मिनिटा\";break;case\"mm\":e=\"%d मिनिटां\";break;case\"h\":e=\"एका तासा\";break;case\"hh\":e=\"%d तासां\";break;case\"d\":e=\"एका दिवसा\";break;case\"dd\":e=\"%d दिवसां\";break;case\"M\":e=\"एका महिन्या\";break;case\"MM\":e=\"%d महिन्यां\";break;case\"y\":e=\"एका वर्षा\";break;case\"yy\":e=\"%d वर्षां\"}return e.replace(/%d/i,a)}function Ad(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function Bd(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"minuta\":\"minutę\";case\"mm\":return d+(Ad(a)?\"minuty\":\"minut\");case\"h\":return b?\"godzina\":\"godzinę\";case\"hh\":return d+(Ad(a)?\"godziny\":\"godzin\");case\"MM\":return d+(Ad(a)?\"miesiące\":\"miesięcy\");case\"yy\":return d+(Ad(a)?\"lata\":\"lat\")}}\n//! moment.js locale configuration\n//! locale : romanian (ro)\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\nfunction Cd(a,b,c){var d={mm:\"minute\",hh:\"ore\",dd:\"zile\",MM:\"luni\",yy:\"ani\"},e=\" \";return(a%100>=20||a>=100&&a%100===0)&&(e=\" de \"),a+e+d[c]}\n//! moment.js locale configuration\n//! locale : russian (ru)\n//! author : Viktorminator : https://github.com/Viktorminator\n//! Author : Menelion Elensúle : https://github.com/Oire\nfunction Dd(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function Ed(a,b,c){var d={mm:b?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"часасаасов\",dd:\"день_дня_дней\",MM:\"месяц_месяцаесяцев\",yy:\"год_годает\"};return\"m\"===c?b?\"минута\":\"минуту\":a+\" \"+Dd(d[c],+a)}function Fd(a){return a>1&&5>a}function Gd(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"pár sekúnd\":\"pár sekundami\";case\"m\":return b?\"minúta\":d?\"minútu\":\"minútou\";case\"mm\":return b||d?e+(Fd(a)?\"minúty\":\"minút\"):e+\"minútami\";break;case\"h\":return b?\"hodina\":d?\"hodinu\":\"hodinou\";case\"hh\":return b||d?e+(Fd(a)?\"hodiny\":\"hodín\"):e+\"hodinami\";break;case\"d\":return b||d?\"deň\":\"dňom\";case\"dd\":return b||d?e+(Fd(a)?\"dni\":\"dní\"):e+\"dňami\";break;case\"M\":return b||d?\"mesiac\":\"mesiacom\";case\"MM\":return b||d?e+(Fd(a)?\"mesiace\":\"mesiacov\"):e+\"mesiacmi\";break;case\"y\":return b||d?\"rok\":\"rokom\";case\"yy\":return b||d?e+(Fd(a)?\"roky\":\"rokov\"):e+\"rokmi\"}}\n//! moment.js locale configuration\n//! locale : slovenian (sl)\n//! author : Robert Sedovšek : https://github.com/sedovsek\nfunction Hd(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"nekaj sekund\":\"nekaj sekundami\";case\"m\":return b?\"ena minuta\":\"eno minuto\";case\"mm\":return e+=1===a?b?\"minuta\":\"minuto\":2===a?b||d?\"minuti\":\"minutama\":5>a?b||d?\"minute\":\"minutami\":b||d?\"minut\":\"minutami\";case\"h\":return b?\"ena ura\":\"eno uro\";case\"hh\":return e+=1===a?b?\"ura\":\"uro\":2===a?b||d?\"uri\":\"urama\":5>a?b||d?\"ure\":\"urami\":b||d?\"ur\":\"urami\";case\"d\":return b||d?\"en dan\":\"enim dnem\";case\"dd\":return e+=1===a?b||d?\"dan\":\"dnem\":2===a?b||d?\"dni\":\"dnevoma\":b||d?\"dni\":\"dnevi\";case\"M\":return b||d?\"en mesec\":\"enim mesecem\";case\"MM\":return e+=1===a?b||d?\"mesec\":\"mesecem\":2===a?b||d?\"meseca\":\"mesecema\":5>a?b||d?\"mesece\":\"meseci\":b||d?\"mesecev\":\"meseci\";case\"y\":return b||d?\"eno leto\":\"enim letom\";case\"yy\":return e+=1===a?b||d?\"leto\":\"letom\":2===a?b||d?\"leti\":\"letoma\":5>a?b||d?\"leta\":\"leti\":b||d?\"let\":\"leti\"}}function Id(a){var b=a;return b=-1!==a.indexOf(\"jaj\")?b.slice(0,-3)+\"leS\":-1!==a.indexOf(\"jar\")?b.slice(0,-3)+\"waQ\":-1!==a.indexOf(\"DIS\")?b.slice(0,-3)+\"nem\":b+\" pIq\"}function Jd(a){var b=a;return b=-1!==a.indexOf(\"jaj\")?b.slice(0,-3)+\"Hu\":-1!==a.indexOf(\"jar\")?b.slice(0,-3)+\"wen\":-1!==a.indexOf(\"DIS\")?b.slice(0,-3)+\"ben\":b+\" ret\"}function Kd(a,b,c,d){var e=Ld(a);switch(c){case\"mm\":return e+\" tup\";case\"hh\":return e+\" rep\";case\"dd\":return e+\" jaj\";case\"MM\":return e+\" jar\";case\"yy\":return e+\" DIS\"}}function Ld(a){var b=Math.floor(a%1e3/100),c=Math.floor(a%100/10),d=a%10,e=\"\";return b>0&&(e+=Lg[b]+\"vatlh\"),c>0&&(e+=(\"\"!==e?\" \":\"\")+Lg[c]+\"maH\"),d>0&&(e+=(\"\"!==e?\" \":\"\")+Lg[d]),\"\"===e?\"pagh\":e}function Md(a,b,c,d){var e={s:[\"viensas secunds\",\"'iensas secunds\"],m:[\"'n míut\",\"'iens míut\"],mm:[a+\" míuts\",\"\"+a+\" míuts\"],h:[\"'n þora\",\"'iensa þora\"],hh:[a+\" þoras\",\"\"+a+\" þoras\"],d:[\"'n ziua\",\"'iensa ziua\"],dd:[a+\" ziuas\",\"\"+a+\" ziuas\"],M:[\"'n mes\",\"'iens mes\"],MM:[a+\" mesen\",\"\"+a+\" mesen\"],y:[\"'n ar\",\"'iens ar\"],yy:[a+\" ars\",\"\"+a+\" ars\"]};return d?e[c][0]:b?e[c][0]:e[c][1]}\n//! moment.js locale configuration\n//! locale : ukrainian (uk)\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\nfunction Nd(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function Od(a,b,c){var d={mm:b?\"хвилина_хвилини_хвилин\":\"хвилину_хвилини_хвилин\",hh:b?\"година_години_годин\":\"годину_години_годин\",dd:\"день_дні_днів\",MM:\"місяць_місяціісяців\",yy:\"рік_роки_років\"};return\"m\"===c?b?\"хвилина\":\"хвилину\":\"h\"===c?b?\"година\":\"годину\":a+\" \"+Nd(d[c],+a)}function Pd(a,b){var c={nominative:\"неділя_понеділок_вівторок_середаетвер_пятниця_субота\".split(\"_\"),accusative:\"неділю_понеділок_вівторок_середуетвер_пятницю_суботу\".split(\"_\"),genitive:\"неділі_понеділкаівторка_середи_четверга_пятниці_суботи\".split(\"_\")},d=/(\\[[ВвУу]\\]) ?dddd/.test(b)?\"accusative\":/\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(b)?\"genitive\":\"nominative\";return c[d][a.day()]}function Qd(a){return function(){return a+\"о\"+(11===this.hours()?\"б\":\"\")+\"] LT\"}}var Rd,Sd,Td=a.momentProperties=[],Ud=!1,Vd={},Wd={},Xd=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Yd=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Zd={},$d={},_d=/\\d/,ae=/\\d\\d/,be=/\\d{3}/,ce=/\\d{4}/,de=/[+-]?\\d{6}/,ee=/\\d\\d?/,fe=/\\d\\d\\d\\d?/,ge=/\\d\\d\\d\\d\\d\\d?/,he=/\\d{1,3}/,ie=/\\d{1,4}/,je=/[+-]?\\d{1,6}/,ke=/\\d+/,le=/[+-]?\\d+/,me=/Z|[+-]\\d\\d:?\\d\\d/gi,ne=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,oe=/[+-]?\\d+(\\.\\d{1,3})?/,pe=/[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i,qe={},re={},se=0,te=1,ue=2,ve=3,we=4,xe=5,ye=6,ze=7,Ae=8;J(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),J(\"MMM\",0,0,function(a){return this.localeData().monthsShort(this,a)}),J(\"MMMM\",0,0,function(a){return this.localeData().months(this,a)}),A(\"month\",\"M\"),O(\"M\",ee),O(\"MM\",ee,ae),O(\"MMM\",function(a,b){return b.monthsShortRegex(a)}),O(\"MMMM\",function(a,b){return b.monthsRegex(a)}),S([\"M\",\"MM\"],function(a,b){b[te]=r(a)-1}),S([\"MMM\",\"MMMM\"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[te]=e:j(c).invalidMonth=a});var Be=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/,Ce=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),De=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),Ee=pe,Fe=pe,Ge={};a.suppressDeprecationWarnings=!1;var He=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/,Ie=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/,Je=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Ke=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],Le=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],Me=/^\\/?Date\\((\\-?\\d+)/i;a.createFromInputFallback=fa(\"moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.\",function(a){a._d=new Date(a._i+(a._useUTC?\" UTC\":\"\"))}),J(\"Y\",0,0,function(){var a=this.year();return 9999>=a?\"\"+a:\"+\"+a}),J(0,[\"YY\",2],0,function(){return this.year()%100}),J(0,[\"YYYY\",4],0,\"year\"),J(0,[\"YYYYY\",5],0,\"year\"),J(0,[\"YYYYYY\",6,!0],0,\"year\"),A(\"year\",\"y\"),O(\"Y\",le),O(\"YY\",ee,ae),O(\"YYYY\",ie,ce),O(\"YYYYY\",je,de),O(\"YYYYYY\",je,de),S([\"YYYYY\",\"YYYYYY\"],se),S(\"YYYY\",function(b,c){c[se]=2===b.length?a.parseTwoDigitYear(b):r(b)}),S(\"YY\",function(b,c){c[se]=a.parseTwoDigitYear(b)}),S(\"Y\",function(a,b){b[se]=parseInt(a,10)}),a.parseTwoDigitYear=function(a){return r(a)+(r(a)>68?1900:2e3)};var Ne=E(\"FullYear\",!1);a.ISO_8601=function(){};var Oe=fa(\"moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548\",function(){var a=Ea.apply(null,arguments);return this.isValid()&&a.isValid()?this>a?this:a:l()}),Pe=fa(\"moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548\",function(){var a=Ea.apply(null,arguments);return this.isValid()&&a.isValid()?a>this?this:a:l()}),Qe=function(){return Date.now?Date.now():+new Date};Ka(\"Z\",\":\"),Ka(\"ZZ\",\"\"),O(\"Z\",ne),O(\"ZZ\",ne),S([\"Z\",\"ZZ\"],function(a,b,c){c._useUTC=!0,c._tzm=La(ne,a)});var Re=/([\\+\\-]|\\d\\d)/gi;a.updateOffset=function(){};var Se=/(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)\\.?(\\d{3})?)?/,Te=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Za.fn=Ia.prototype;var Ue=bb(1,\"add\"),Ve=bb(-1,\"subtract\");a.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\";var We=fa(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(a){return void 0===a?this.localeData():this.locale(a)});J(0,[\"gg\",2],0,function(){return this.weekYear()%100}),J(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),Ib(\"gggg\",\"weekYear\"),Ib(\"ggggg\",\"weekYear\"),Ib(\"GGGG\",\"isoWeekYear\"),Ib(\"GGGGG\",\"isoWeekYear\"),A(\"weekYear\",\"gg\"),A(\"isoWeekYear\",\"GG\"),O(\"G\",le),O(\"g\",le),O(\"GG\",ee,ae),O(\"gg\",ee,ae),O(\"GGGG\",ie,ce),O(\"gggg\",ie,ce),O(\"GGGGG\",je,de),O(\"ggggg\",je,de),T([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(a,b,c,d){b[d.substr(0,2)]=r(a)}),T([\"gg\",\"GG\"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),J(\"Q\",0,\"Qo\",\"quarter\"),A(\"quarter\",\"Q\"),O(\"Q\",_d),S(\"Q\",function(a,b){b[te]=3*(r(a)-1)}),J(\"w\",[\"ww\",2],\"wo\",\"week\"),J(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),A(\"week\",\"w\"),A(\"isoWeek\",\"W\"),O(\"w\",ee),O(\"ww\",ee,ae),O(\"W\",ee),O(\"WW\",ee,ae),T([\"w\",\"ww\",\"W\",\"WW\"],function(a,b,c,d){b[d.substr(0,1)]=r(a)});var Xe={dow:0,doy:6};J(\"D\",[\"DD\",2],\"Do\",\"date\"),A(\"date\",\"D\"),O(\"D\",ee),O(\"DD\",ee,ae),O(\"Do\",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),S([\"D\",\"DD\"],ue),S(\"Do\",function(a,b){b[ue]=r(a.match(ee)[0],10)});var Ye=E(\"Date\",!0);J(\"d\",0,\"do\",\"day\"),J(\"dd\",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),J(\"ddd\",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),J(\"dddd\",0,0,function(a){return this.localeData().weekdays(this,a)}),J(\"e\",0,0,\"weekday\"),J(\"E\",0,0,\"isoWeekday\"),A(\"day\",\"d\"),A(\"weekday\",\"e\"),A(\"isoWeekday\",\"E\"),O(\"d\",ee),O(\"e\",ee),O(\"E\",ee),O(\"dd\",pe),O(\"ddd\",pe),O(\"dddd\",pe),T([\"dd\",\"ddd\",\"dddd\"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:j(c).invalidWeekday=a}),T([\"d\",\"e\",\"E\"],function(a,b,c,d){b[d]=r(a)});var Ze=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),$e=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),_e=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\");J(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),A(\"dayOfYear\",\"DDD\"),O(\"DDD\",he),O(\"DDDD\",be),S([\"DDD\",\"DDDD\"],function(a,b,c){c._dayOfYear=r(a)}),J(\"H\",[\"HH\",2],0,\"hour\"),J(\"h\",[\"hh\",2],0,cc),J(\"hmm\",0,0,function(){return\"\"+cc.apply(this)+I(this.minutes(),2)}),J(\"hmmss\",0,0,function(){return\"\"+cc.apply(this)+I(this.minutes(),2)+I(this.seconds(),2)}),J(\"Hmm\",0,0,function(){return\"\"+this.hours()+I(this.minutes(),2)}),J(\"Hmmss\",0,0,function(){return\"\"+this.hours()+I(this.minutes(),2)+I(this.seconds(),2)}),dc(\"a\",!0),dc(\"A\",!1),A(\"hour\",\"h\"),O(\"a\",ec),O(\"A\",ec),O(\"H\",ee),O(\"h\",ee),O(\"HH\",ee,ae),O(\"hh\",ee,ae),O(\"hmm\",fe),O(\"hmmss\",ge),O(\"Hmm\",fe),O(\"Hmmss\",ge),S([\"H\",\"HH\"],ve),S([\"a\",\"A\"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),S([\"h\",\"hh\"],function(a,b,c){b[ve]=r(a),j(c).bigHour=!0}),S(\"hmm\",function(a,b,c){var d=a.length-2;b[ve]=r(a.substr(0,d)),b[we]=r(a.substr(d)),j(c).bigHour=!0}),S(\"hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[ve]=r(a.substr(0,d)),b[we]=r(a.substr(d,2)),b[xe]=r(a.substr(e)),j(c).bigHour=!0}),S(\"Hmm\",function(a,b,c){var d=a.length-2;b[ve]=r(a.substr(0,d)),b[we]=r(a.substr(d))}),S(\"Hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[ve]=r(a.substr(0,d)),b[we]=r(a.substr(d,2)),b[xe]=r(a.substr(e))});var af=/[ap]\\.?m?\\.?/i,bf=E(\"Hours\",!0);J(\"m\",[\"mm\",2],0,\"minute\"),A(\"minute\",\"m\"),O(\"m\",ee),O(\"mm\",ee,ae),S([\"m\",\"mm\"],we);var cf=E(\"Minutes\",!1);J(\"s\",[\"ss\",2],0,\"second\"),A(\"second\",\"s\"),O(\"s\",ee),O(\"ss\",ee,ae),S([\"s\",\"ss\"],xe);var df=E(\"Seconds\",!1);J(\"S\",0,0,function(){return~~(this.millisecond()/100)}),J(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),J(0,[\"SSS\",3],0,\"millisecond\"),J(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),J(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),J(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),J(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),J(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),J(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),A(\"millisecond\",\"ms\"),O(\"S\",he,_d),O(\"SS\",he,ae),O(\"SSS\",he,be);var ef;for(ef=\"SSSS\";ef.length<=9;ef+=\"S\")O(ef,ke);for(ef=\"S\";ef.length<=9;ef+=\"S\")S(ef,hc);var ff=E(\"Milliseconds\",!1);J(\"z\",0,0,\"zoneAbbr\"),J(\"zz\",0,0,\"zoneName\");var gf=o.prototype;gf.add=Ue,gf.calendar=db,gf.clone=eb,gf.diff=lb,gf.endOf=xb,gf.format=pb,gf.from=qb,gf.fromNow=rb,gf.to=sb,gf.toNow=tb,gf.get=H,gf.invalidAt=Gb,gf.isAfter=fb,gf.isBefore=gb,gf.isBetween=hb,gf.isSame=ib,gf.isSameOrAfter=jb,gf.isSameOrBefore=kb,gf.isValid=Eb,gf.lang=We,gf.locale=ub,gf.localeData=vb,gf.max=Pe,gf.min=Oe,gf.parsingFlags=Fb,gf.set=H,gf.startOf=wb,gf.subtract=Ve,gf.toArray=Bb,gf.toObject=Cb,gf.toDate=Ab,gf.toISOString=ob,gf.toJSON=Db,gf.toString=nb,gf.unix=zb,gf.valueOf=yb,gf.creationData=Hb,gf.year=Ne,gf.isLeapYear=na,gf.weekYear=Jb,gf.isoWeekYear=Kb,gf.quarter=gf.quarters=Pb,gf.month=$,gf.daysInMonth=_,gf.week=gf.weeks=Tb,gf.isoWeek=gf.isoWeeks=Ub,gf.weeksInYear=Mb,gf.isoWeeksInYear=Lb,gf.date=Ye,gf.day=gf.days=$b,gf.weekday=_b,gf.isoWeekday=ac,gf.dayOfYear=bc,gf.hour=gf.hours=bf,gf.minute=gf.minutes=cf,gf.second=gf.seconds=df,gf.millisecond=gf.milliseconds=ff,gf.utcOffset=Oa,gf.utc=Qa,gf.local=Ra,gf.parseZone=Sa,gf.hasAlignedHourOffset=Ta,gf.isDST=Ua,gf.isDSTShifted=Va,gf.isLocal=Wa,gf.isUtcOffset=Xa,gf.isUtc=Ya,gf.isUTC=Ya,gf.zoneAbbr=ic,gf.zoneName=jc,gf.dates=fa(\"dates accessor is deprecated. Use date instead.\",Ye),gf.months=fa(\"months accessor is deprecated. Use month instead\",$),gf.years=fa(\"years accessor is deprecated. Use year instead\",Ne),gf.zone=fa(\"moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779\",Pa);var hf=gf,jf={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},kf={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},lf=\"Invalid date\",mf=\"%d\",nf=/\\d{1,2}/,of={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},pf=t.prototype;pf._calendar=jf,pf.calendar=mc,pf._longDateFormat=kf,pf.longDateFormat=nc,pf._invalidDate=lf,pf.invalidDate=oc,pf._ordinal=mf,pf.ordinal=pc,pf._ordinalParse=nf,pf.preparse=qc,pf.postformat=qc,pf._relativeTime=of,pf.relativeTime=rc,pf.pastFuture=sc,pf.set=tc,pf.months=W,pf._months=Ce,pf.monthsShort=X,pf._monthsShort=De,pf.monthsParse=Y,pf._monthsRegex=Fe,pf.monthsRegex=ba,pf._monthsShortRegex=Ee,pf.monthsShortRegex=aa,pf.week=Qb,pf._week=Xe,pf.firstDayOfYear=Sb,pf.firstDayOfWeek=Rb,pf.weekdays=Wb,pf._weekdays=Ze,pf.weekdaysMin=Yb,pf._weekdaysMin=_e,pf.weekdaysShort=Xb,pf._weekdaysShort=$e,pf.weekdaysParse=Zb,pf.isPM=fc,pf._meridiemParse=af,pf.meridiem=gc,x(\"en\",{ordinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===r(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.lang=fa(\"moment.lang is deprecated. Use moment.locale instead.\",x),a.langData=fa(\"moment.langData is deprecated. Use moment.localeData instead.\",z);var qf=Math.abs,rf=Lc(\"ms\"),sf=Lc(\"s\"),tf=Lc(\"m\"),uf=Lc(\"h\"),vf=Lc(\"d\"),wf=Lc(\"w\"),xf=Lc(\"M\"),yf=Lc(\"y\"),zf=Nc(\"milliseconds\"),Af=Nc(\"seconds\"),Bf=Nc(\"minutes\"),Cf=Nc(\"hours\"),Df=Nc(\"days\"),Ef=Nc(\"months\"),Ff=Nc(\"years\"),Gf=Math.round,Hf={s:45,m:45,h:22,d:26,M:11},If=Math.abs,Jf=Ia.prototype;Jf.abs=Bc,Jf.add=Dc,Jf.subtract=Ec,Jf.as=Jc,Jf.asMilliseconds=rf,Jf.asSeconds=sf,Jf.asMinutes=tf,Jf.asHours=uf,Jf.asDays=vf,Jf.asWeeks=wf,Jf.asMonths=xf,Jf.asYears=yf,Jf.valueOf=Kc,Jf._bubble=Gc,Jf.get=Mc,Jf.milliseconds=zf,Jf.seconds=Af,Jf.minutes=Bf,Jf.hours=Cf,Jf.days=Df,Jf.weeks=Oc,Jf.months=Ef,Jf.years=Ff,Jf.humanize=Sc,Jf.toISOString=Tc,Jf.toString=Tc,Jf.toJSON=Tc,Jf.locale=ub,Jf.localeData=vb,Jf.toIsoString=fa(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",Tc),Jf.lang=We,J(\"X\",0,0,\"unix\"),J(\"x\",0,0,\"valueOf\"),O(\"x\",le),O(\"X\",oe),S(\"X\",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),S(\"x\",function(a,b,c){c._d=new Date(r(a))}),\n//! moment.js\n//! version : 2.11.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\na.version=\"2.11.1\",b(Ea),a.fn=hf,a.min=Ga,a.max=Ha,a.now=Qe,a.utc=h,a.unix=kc,a.months=wc,a.isDate=d,a.locale=x,a.invalid=l,a.duration=Za,a.isMoment=p,a.weekdays=yc,a.parseZone=lc,a.localeData=z,a.isDuration=Ja,a.monthsShort=xc,a.weekdaysMin=Ac,a.defineLocale=y,a.weekdaysShort=zc,a.normalizeUnits=B,a.relativeTimeThreshold=Rc,a.prototype=hf;var Kf=a,Lf=(Kf.defineLocale(\"af\",{months:\"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag\".split(\"_\"),weekdaysShort:\"Son_Maa_Din_Woe_Don_Vry_Sat\".split(\"_\"),weekdaysMin:\"So_Ma_Di_Wo_Do_Vr_Sa\".split(\"_\"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return 12>a?c?\"vm\":\"VM\":c?\"nm\":\"NM\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Vandag om] LT\",nextDay:\"[Môre om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[Gister om] LT\",lastWeek:\"[Laas] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"oor %s\",past:\"%s gelede\",s:\"'n paar sekondes\",m:\"'n minuut\",mm:\"%d minute\",h:\"'n uur\",hh:\"%d ure\",d:\"'n dag\",dd:\"%d dae\",M:\"'n maand\",MM:\"%d maande\",y:\"'n jaar\",yy:\"%d jaar\"},ordinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),Kf.defineLocale(\"ar-ma\",{months:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),weekdays:\"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:6,doy:12}}),{1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"}),Mf={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"},Nf=(Kf.defineLocale(\"ar-sa\",{months:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return Mf[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return Lf[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),Kf.defineLocale(\"ar-tn\",{months:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:1,doy:4}}),{1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"}),Of={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"},Pf=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},Qf={s:[\"أقل من ثانية\",\"ثانية واحدة\",[\"ثانيتان\",\"ثانيتين\"],\"%d ثوان\",\"%d ثانية\",\"%d ثانية\"],m:[\"أقل من دقيقة\",\"دقيقة واحدة\",[\"دقيقتان\",\"دقيقتين\"],\"%d دقائق\",\"%d دقيقة\",\"%d دقيقة\"],h:[\"أقل من ساعة\",\"ساعة واحدة\",[\"ساعتان\",\"ساعتين\"],\"%d ساعات\",\"%d ساعة\",\"%d ساعة\"],d:[\"أقل من يوم\",\"يوم واحد\",[\"يومان\",\"يومين\"],\"%d أيام\",\"%d يومًا\",\"%d يوم\"],M:[\"أقل من شهر\",\"شهر واحد\",[\"شهران\",\"شهرين\"],\"%d أشهر\",\"%d شهرا\",\"%d شهر\"],y:[\"أقل من عام\",\"عام واحد\",[\"عامان\",\"عامين\"],\"%d أعوام\",\"%d عامًا\",\"%d عام\"]},Rf=function(a){return function(b,c,d,e){var f=Pf(b),g=Qf[a][Pf(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},Sf=[\"كانون الثاني يناير\",\"شباط فبراير\",\"آذار مارس\",\"نيسان أبريل\",\"أيار مايو\",\"حزيران يونيو\",\"تموز يوليو\",\"آب أغسطس\",\"أيلول سبتمبر\",\"تشرين الأول أكتوبر\",\"تشرين الثاني نوفمبر\",\"كانون الأول ديسمبر\"],Tf=(Kf.defineLocale(\"ar\",{months:Sf,monthsShort:Sf,weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/M/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم عند الساعة] LT\",nextDay:\"[غدًا عند الساعة] LT\",nextWeek:\"dddd [عند الساعة] LT\",lastDay:\"[أمس عند الساعة] LT\",lastWeek:\"dddd [عند الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:Rf(\"s\"),m:Rf(\"m\"),mm:Rf(\"m\"),h:Rf(\"h\"),hh:Rf(\"h\"),d:Rf(\"d\"),dd:Rf(\"d\"),M:Rf(\"M\"),MM:Rf(\"M\"),y:Rf(\"y\"),yy:Rf(\"y\")},preparse:function(a){return a.replace(/\\u200f/g,\"\").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return Of[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return Nf[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),{1:\"-inci\",5:\"-inci\",8:\"-inci\",70:\"-inci\",80:\"-inci\",2:\"-nci\",7:\"-nci\",20:\"-nci\",50:\"-nci\",3:\"-üncü\",4:\"-üncü\",100:\"-üncü\",6:\"-ncı\",9:\"-uncu\",10:\"-uncu\",30:\"-uncu\",60:\"-ıncı\",90:\"-ıncı\"}),Uf=(Kf.defineLocale(\"az\",{months:\"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr\".split(\"_\"),monthsShort:\"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek\".split(\"_\"),weekdays:\"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə\".split(\"_\"),weekdaysShort:\"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən\".split(\"_\"),weekdaysMin:\"Bz_BE_ÇA_Çə_CA_Cü_Şə\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[sabah saat] LT\",nextWeek:\"[gələn həftə] dddd [saat] LT\",lastDay:\"[dünən] LT\",lastWeek:\"[keçən həftə] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s əvvəl\",s:\"birneçə saniyyə\",m:\"bir dəqiqə\",mm:\"%d dəqiqə\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir il\",yy:\"%d il\"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"gecə\":12>a?\"səhər\":17>a?\"gündüz\":\"axşam\"},ordinalParse:/\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)return a+\"-ıncı\";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(Tf[b]||Tf[c]||Tf[d])},week:{dow:1,doy:7}}),Kf.defineLocale(\"be\",{months:{format:\"студзеня_лютага_сакавікарасавікараўня_чэрвеня_ліпеня_жніўня_верасня_кастрычнікаістапада_снежня\".split(\"_\"),standalone:\"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань\".split(\"_\")},monthsShort:\"студ_лют_сак_красрав_чэрв_ліп_жнів_вераст_ліст_снеж\".split(\"_\"),weekdays:{format:\"нядзелю_панядзелак_аўторак_серадуацвер_пятніцу_суботу\".split(\"_\"),standalone:\"нядзеля_панядзелак_аўторак_серадаацвер_пятніца_субота\".split(\"_\"),isFormat:/\\[ ?[Вв] ?(?:мінулую|наступную)? ?\\] ?dddd/},weekdaysShort:\"нд_пн_ат_ср_чц_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_ат_ср_чц_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., HH:mm\",LLLL:\"dddd, D MMMM YYYY г., HH:mm\"},calendar:{sameDay:\"[Сёння ў] LT\",nextDay:\"[Заўтра ў] LT\",lastDay:\"[Учора ў] LT\",nextWeek:function(){return\"[У] dddd [ў] LT\"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return\"[У мінулую] dddd [ў] LT\";case 1:case 2:case 4:return\"[У мінулы] dddd [ў] LT\"}},sameElse:\"L\"},relativeTime:{future:\"праз %s\",past:\"%s таму\",s:\"некалькі секунд\",m:Vc,mm:Vc,h:Vc,hh:Vc,d:\"дзень\",dd:Vc,M:\"месяц\",MM:Vc,y:\"год\",yy:Vc},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночы\":12>a?\"раніцы\":17>a?\"дня\":\"вечара\"},ordinalParse:/\\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+\"-ы\":a+\"-і\";case\"D\":return a+\"-га\";default:return a}},week:{dow:1,doy:7}}),Kf.defineLocale(\"bg\",{months:\"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"янрев_мар_апрай_юни_юли_авг_сеп_окт_ноеек\".split(\"_\"),weekdays:\"неделя_понеделник_вторник_срядаетвъртък_петък_събота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_сря_чет_пет_съб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[Днес в] LT\",nextDay:\"[Утре в] LT\",nextWeek:\"dddd [в] LT\",lastDay:\"[Вчера в] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[В изминалата] dddd [в] LT\";case 1:case 2:case 4:case 5:return\"[В изминалия] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"след %s\",past:\"преди %s\",s:\"няколко секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дни\",M:\"месец\",MM:\"%d месеца\",y:\"година\",yy:\"%d години\"},ordinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&20>c?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}}),{1:\"১\",2:\"২\",3:\"৩\",4:\"\",5:\"৫\",6:\"৬\",7:\"\",8:\"৮\",9:\"৯\",0:\"\"}),Vf={\"১\":\"1\",\"২\":\"2\",\"৩\":\"3\",\"\":\"4\",\"৫\":\"5\",\"৬\":\"6\",\"\":\"7\",\"৮\":\"8\",\"৯\":\"9\",\"\":\"0\"},Wf=(Kf.defineLocale(\"bn\",{months:\"জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর\".split(\"_\"),monthsShort:\"জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্\".split(\"_\"),weekdays:\"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রবার_শনিবার\".split(\"_\"),weekdaysShort:\"রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্র_শনি\".split(\"_\"),weekdaysMin:\"রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি\".split(\"_\"),longDateFormat:{LT:\"A h:mm সময়\",LTS:\"A h:mm:ss সময়\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm সময়\",LLLL:\"dddd, D MMMM YYYY, A h:mm সময়\"},calendar:{sameDay:\"[আজ] LT\",nextDay:\"[আগামীকাল] LT\",nextWeek:\"dddd, LT\",lastDay:\"[গতকাল] LT\",lastWeek:\"[গত] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s পরে\",past:\"%s আগে\",s:\"কয়েক সেকেন্ড\",m:\"এক মিনিট\",mm:\"%d মিনিট\",h:\"এক ঘন্টা\",hh:\"%d ঘন্টা\",d:\"এক দিন\",dd:\"%d দিন\",M:\"এক মাস\",MM:\"%d মাস\",y:\"এক বছর\",yy:\"%d বছর\"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return Vf[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Uf[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,isPM:function(a){return/^(দুপুর|বিকাল|রাত)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"রাত\":10>a?\"সকাল\":17>a?\"দুপুর\":20>a?\"বিকাল\":\"রাত\"},week:{dow:0,doy:6}}),{1:\"༡\",2:\"༢\",3:\"༣\",4:\"༤\",5:\"༥\",6:\"༦\",7:\"༧\",8:\"༨\",9:\"༩\",0:\"༠\"}),Xf={\"༡\":\"1\",\"༢\":\"2\",\"༣\":\"3\",\"༤\":\"4\",\"༥\":\"5\",\"༦\":\"6\",\"༧\":\"7\",\"༨\":\"8\",\"༩\":\"9\",\"༠\":\"0\"},Yf=(Kf.defineLocale(\"bo\",{months:\"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ\".split(\"_\"),monthsShort:\"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ\".split(\"_\"),weekdays:\"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་\".split(\"_\"),weekdaysShort:\"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་\".split(\"_\"),weekdaysMin:\"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[དི་རིང] LT\",nextDay:\"[སང་ཉིན] LT\",nextWeek:\"[བདུན་ཕྲག་རྗེས་མ], LT\",lastDay:\"[ཁ་སང] LT\",lastWeek:\"[བདུན་ཕྲག་མཐའ་མ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s ལ་\",past:\"%s སྔན་ལ\",s:\"ལམ་སང\",m:\"སྐར་མ་གཅིག\",mm:\"%d སྐར་མ\",h:\"ཆུ་ཚོད་གཅིག\",hh:\"%d ཆུ་ཚོད\",d:\"ཉིན་གཅིག\",dd:\"%d ཉིན་\",M:\"ཟླ་བ་གཅིག\",MM:\"%d ཟླ་བ\",y:\"ལོ་གཅིག\",yy:\"%d ལོ\"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return Xf[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Wf[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,isPM:function(a){return/^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"མཚན་མོ\":10>a?\"ཞོགས་ཀས\":17>a?\"ཉིན་གུང\":20>a?\"དགོང་དག\":\"མཚན་མོ\"},week:{dow:0,doy:6}}),Kf.defineLocale(\"br\",{months:\"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu\".split(\"_\"),monthsShort:\"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker\".split(\"_\"),weekdays:\"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn\".split(\"_\"),weekdaysShort:\"Sul_Lun_Meu_Mer_Yao_Gwe_Sad\".split(\"_\"),weekdaysMin:\"Su_Lu_Me_Mer_Ya_Gw_Sa\".split(\"_\"),longDateFormat:{LT:\"h[e]mm A\",LTS:\"h[e]mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D [a viz] MMMM YYYY\",LLL:\"D [a viz] MMMM YYYY h[e]mm A\",LLLL:\"dddd, D [a viz] MMMM YYYY h[e]mm A\"},calendar:{sameDay:\"[Hiziv da] LT\",nextDay:\"[Warc'hoazh da] LT\",nextWeek:\"dddd [da] LT\",lastDay:\"[Dec'h da] LT\",lastWeek:\"dddd [paset da] LT\",sameElse:\"L\"},relativeTime:{future:\"a-benn %s\",past:\"%s 'zo\",s:\"un nebeud segondennoù\",m:\"ur vunutenn\",mm:Wc,h:\"un eur\",hh:\"%d eur\",d:\"un devezh\",dd:Wc,M:\"ur miz\",MM:Wc,y:\"ur bloaz\",yy:Xc},ordinalParse:/\\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?\"añ\":\"vet\";return a+b},week:{dow:1,doy:4}}),Kf.defineLocale(\"bs\",{months:\"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:_c,mm:_c,h:_c,hh:_c,d:\"dan\",dd:_c,M:\"mjesec\",MM:_c,y:\"godinu\",yy:_c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),Kf.defineLocale(\"ca\",{months:\"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre\".split(\"_\"),monthsShort:\"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.\".split(\"_\"),weekdays:\"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte\".split(\"_\"),weekdaysShort:\"dg._dl._dt._dc._dj._dv._ds.\".split(\"_\"),weekdaysMin:\"Dg_Dl_Dt_Dc_Dj_Dv_Ds\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd D MMMM YYYY H:mm\"},calendar:{sameDay:function(){return\"[avui a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextDay:function(){return\"[demà a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextWeek:function(){return\"dddd [a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastDay:function(){return\"[ahir a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [passat a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"fa %s\",s:\"uns segons\",m:\"un minut\",mm:\"%d minuts\",h:\"una hora\",hh:\"%d hores\",d:\"un dia\",dd:\"%d dies\",M:\"un mes\",MM:\"%d mesos\",y:\"un any\",yy:\"%d anys\"},ordinalParse:/\\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?\"r\":2===a?\"n\":3===a?\"r\":4===a?\"t\":\"è\";return(\"w\"===b||\"W\"===b)&&(c=\"a\"),a+c},week:{dow:1,doy:4}}),\"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec\".split(\"_\")),Zf=\"led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro\".split(\"_\"),$f=(Kf.defineLocale(\"cs\",{months:Yf,monthsShort:Zf,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(Yf,Zf),shortMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp(\"^\"+a[b]+\"$\",\"i\");return c}(Zf),longMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp(\"^\"+a[b]+\"$\",\"i\");return c}(Yf),weekdays:\"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota\".split(\"_\"),weekdaysShort:\"ne_po_út_st_čt_pá_so\".split(\"_\"),weekdaysMin:\"ne_po_út_st_čt_pá_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[dnes v] LT\",nextDay:\"[zítra v] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v neděli v] LT\";case 1:case 2:return\"[v] dddd [v] LT\";case 3:return\"[ve středu v] LT\";case 4:return\"[ve čtvrtek v] LT\";case 5:return\"[v pátek v] LT\";case 6:return\"[v sobotu v] LT\"}},lastDay:\"[včera v] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulou neděli v] LT\";case 1:case 2:return\"[minulé] dddd [v] LT\";case 3:return\"[minulou středu v] LT\";case 4:case 5:return\"[minulý] dddd [v] LT\";case 6:return\"[minulou sobotu v] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"před %s\",s:bd,m:bd,mm:bd,h:bd,hh:bd,d:bd,dd:bd,M:bd,MM:bd,y:bd,yy:bd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"cv\",{months:\"кӑрлач_нарӑс_пуш_акаай_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав\".split(\"_\"),monthsShort:\"кӑрар_пуш_акаай_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш\".split(\"_\"),weekdays:\"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун\".split(\"_\"),weekdaysShort:\"вырун_ытл_юн_кӗҫ_эрн_шӑм\".split(\"_\"),weekdaysMin:\"вр_тн_ыт_юн_кҫ_эр_шм\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]\",LLL:\"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm\",LLLL:\"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm\"},calendar:{sameDay:\"[Паян] LT [сехетре]\",nextDay:\"[Ыран] LT [сехетре]\",lastDay:\"[Ӗнер] LT [сехетре]\",nextWeek:\"[Ҫитес] dddd LT [сехетре]\",lastWeek:\"[Иртнӗ] dddd LT [сехетре]\",sameElse:\"L\"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?\"рен\":/ҫул$/i.exec(a)?\"тан\":\"ран\";return a+b},past:\"%s каялла\",s:\"пӗр-ик ҫеккунт\",m:\"пӗр минут\",mm:\"%d минут\",h:\"пӗр сехет\",hh:\"%d сехет\",d:\"пӗр кун\",dd:\"%d кун\",M:\"пӗр уйӑх\",MM:\"%d уйӑх\",y:\"пӗр ҫул\",yy:\"%d ҫул\"},ordinalParse:/\\d{1,2}-мӗш/,ordinal:\"%d-мӗш\",week:{dow:1,doy:7}}),Kf.defineLocale(\"cy\",{months:\"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr\".split(\"_\"),monthsShort:\"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag\".split(\"_\"),weekdays:\"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn\".split(\"_\"),weekdaysShort:\"Sul_Llun_Maw_Mer_Iau_Gwe_Sad\".split(\"_\"),weekdaysMin:\"Su_Ll_Ma_Me_Ia_Gw_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Heddiw am] LT\",nextDay:\"[Yfory am] LT\",nextWeek:\"dddd [am] LT\",lastDay:\"[Ddoe am] LT\",lastWeek:\"dddd [diwethaf am] LT\",sameElse:\"L\"},relativeTime:{future:\"mewn %s\",past:\"%s yn ôl\",s:\"ychydig eiliadau\",m:\"munud\",mm:\"%d munud\",h:\"awr\",hh:\"%d awr\",d:\"diwrnod\",dd:\"%d diwrnod\",M:\"mis\",MM:\"%d mis\",y:\"blwyddyn\",yy:\"%d flynedd\"},ordinalParse:/\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(a){var b=a,c=\"\",d=[\"\",\"af\",\"il\",\"ydd\",\"ydd\",\"ed\",\"ed\",\"ed\",\"fed\",\"fed\",\"fed\",\"eg\",\"fed\",\"eg\",\"eg\",\"fed\",\"eg\",\"eg\",\"fed\",\"eg\",\"fed\"];return b>20?c=40===b||50===b||60===b||80===b||100===b?\"fed\":\"ain\":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}}),Kf.defineLocale(\"da\",{months:\"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tir_ons_tor_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd [d.] D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[I dag kl.] LT\",nextDay:\"[I morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[I går kl.] LT\",lastWeek:\"[sidste] dddd [kl] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"få sekunder\",m:\"et minut\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dage\",M:\"en måned\",MM:\"%d måneder\",y:\"et år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"de-at\",{months:\"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:cd,mm:\"%d Minuten\",h:cd,hh:\"%d Stunden\",d:cd,dd:cd,M:cd,MM:cd,y:cd,yy:cd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"de\",{months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:dd,mm:\"%d Minuten\",h:dd,hh:\"%d Stunden\",d:dd,dd:dd,M:dd,MM:dd,y:dd,yy:dd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),[\"ޖެނުއަރީ\",\"ފެބްރުއަރީ\",\"މާރިޗު\",\"އޭޕްރީލު\",\"މޭ\",\"ޖޫން\",\"ޖުލައި\",\"އޯގަސްޓު\",\"ސެޕްޓެމްބަރު\",\"އޮކްޓޯބަރު\",\"ނޮވެމްބަރު\",\"ޑިސެމްބަރު\"]),_f=[\"އާދިއްތަ\",\"ހޯމަ\",\"އަންގާރަ\",\"ބުދަ\",\"ބުރާސްފަތި\",\"ހުކުރު\",\"ހޮނިހިރު\"],ag=(Kf.defineLocale(\"dv\",{months:$f,monthsShort:$f,weekdays:_f,weekdaysShort:_f,weekdaysMin:\"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/M/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/މކ|މފ/,isPM:function(a){return\"\"===a},meridiem:function(a,b,c){return 12>a?\"މކ\":\"މފ\"},calendar:{sameDay:\"[މިއަދު] LT\",nextDay:\"[މާދަމާ] LT\",nextWeek:\"dddd LT\",lastDay:\"[އިއްޔެ] LT\",lastWeek:\"[ފާއިތުވި] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"ތެރޭގައި %s\",past:\"ކުރިން %s\",s:\"ސިކުންތުކޮޅެއް\",m:\"މިނިޓެއް\",mm:\"މިނިޓު %d\",h:\"ގަޑިއިރެއް\",hh:\"ގަޑިއިރު %d\",d:\"ދުވަހެއް\",dd:\"ދުވަސް %d\",M:\"މަހެއް\",MM:\"މަސް %d\",y:\"އަހަރެއް\",yy:\"އަހަރު %d\"},preparse:function(a){return a.replace(/،/g,\",\")},postformat:function(a){return a.replace(/,/g,\"،\")},week:{dow:7,doy:12}}),Kf.defineLocale(\"el\",{monthsNominativeEl:\"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος\".split(\"_\"),monthsGenitiveEl:\"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου\".split(\"_\"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf(\"MMMM\")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:\"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ\".split(\"_\"),weekdays:\"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο\".split(\"_\"),weekdaysShort:\"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παραβ\".split(\"_\"),weekdaysMin:\"Κυ_Δε_Τρ_Τε_Πε_Παα\".split(\"_\"),meridiem:function(a,b,c){return a>11?c?\"μμ\":\"ΜΜ\":c?\"πμ\":\"ΠΜ\"},isPM:function(a){return\"μ\"===(a+\"\").toLowerCase()[0]},meridiemParse:/[ΠΜ]\\.?Μ?\\.?/i,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendarEl:{sameDay:\"[Σήμερα {}] LT\",nextDay:\"[Αύριο {}] LT\",nextWeek:\"dddd [{}] LT\",lastDay:\"[Χθες {}] LT\",lastWeek:function(){switch(this.day()){case 6:return\"[το προηγούμενο] dddd [{}] LT\";default:return\"[την προηγούμενη] dddd [{}] LT\"}},sameElse:\"L\"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return D(c)&&(c=c.apply(b)),c.replace(\"{}\",d%12===1?\"στη\":\"στις\")},relativeTime:{future:\"σε %s\",past:\"%s πριν\",s:\"λίγα δευτερόλεπτα\",m:\"ένα λεπτό\",mm:\"%d λεπτά\",h:\"μία ώρα\",hh:\"%d ώρες\",d:\"μία μέρα\",dd:\"%d μέρες\",M:\"ένας μήνας\",MM:\"%d μήνες\",y:\"ένας χρόνος\",yy:\"%d χρόνια\"},ordinalParse:/\\d{1,2}η/,ordinal:\"%dη\",week:{dow:1,doy:4}}),Kf.defineLocale(\"en-au\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),Kf.defineLocale(\"en-ca\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"YYYY-MM-DD\",LL:\"D MMMM, YYYY\",LLL:\"D MMMM, YYYY h:mm A\",LLLL:\"dddd, D MMMM, YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),Kf.defineLocale(\"en-gb\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),Kf.defineLocale(\"en-ie\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),Kf.defineLocale(\"en-nz\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),Kf.defineLocale(\"eo\",{months:\"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec\".split(\"_\"),weekdays:\"Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato\".split(\"_\"),\nweekdaysShort:\"Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Ĵa_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D[-an de] MMMM, YYYY\",LLL:\"D[-an de] MMMM, YYYY HH:mm\",LLLL:\"dddd, [la] D[-an de] MMMM, YYYY HH:mm\"},meridiemParse:/[ap]\\.t\\.m/i,isPM:function(a){return\"p\"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?\"p.t.m.\":\"P.T.M.\":c?\"a.t.m.\":\"A.T.M.\"},calendar:{sameDay:\"[Hodiaŭ je] LT\",nextDay:\"[Morgaŭ je] LT\",nextWeek:\"dddd [je] LT\",lastDay:\"[Hieraŭ je] LT\",lastWeek:\"[pasinta] dddd [je] LT\",sameElse:\"L\"},relativeTime:{future:\"je %s\",past:\"antaŭ %s\",s:\"sekundoj\",m:\"minuto\",mm:\"%d minutoj\",h:\"horo\",hh:\"%d horoj\",d:\"tago\",dd:\"%d tagoj\",M:\"monato\",MM:\"%d monatoj\",y:\"jaro\",yy:\"%d jaroj\"},ordinalParse:/\\d{1,2}a/,ordinal:\"%da\",week:{dow:1,doy:7}}),\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\")),bg=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\"),cg=(Kf.defineLocale(\"es\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?bg[a.month()]:ag[a.month()]},weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mi_ju_vi_sá\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY H:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY H:mm\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[mañana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),Kf.defineLocale(\"et\",{months:\"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember\".split(\"_\"),monthsShort:\"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets\".split(\"_\"),weekdays:\"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev\".split(\"_\"),weekdaysShort:\"P_E_T_K_N_R_L\".split(\"_\"),weekdaysMin:\"P_E_T_K_N_R_L\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[Täna,] LT\",nextDay:\"[Homme,] LT\",nextWeek:\"[Järgmine] dddd LT\",lastDay:\"[Eile,] LT\",lastWeek:\"[Eelmine] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s pärast\",past:\"%s tagasi\",s:ed,m:ed,mm:ed,h:ed,hh:ed,d:ed,dd:\"%d päeva\",M:ed,MM:ed,y:ed,yy:ed},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"eu\",{months:\"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua\".split(\"_\"),monthsShort:\"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.\".split(\"_\"),weekdays:\"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata\".split(\"_\"),weekdaysShort:\"ig._al._ar._az._og._ol._lr.\".split(\"_\"),weekdaysMin:\"ig_al_ar_az_og_ol_lr\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY[ko] MMMM[ren] D[a]\",LLL:\"YYYY[ko] MMMM[ren] D[a] HH:mm\",LLLL:\"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm\",l:\"YYYY-M-D\",ll:\"YYYY[ko] MMM D[a]\",lll:\"YYYY[ko] MMM D[a] HH:mm\",llll:\"ddd, YYYY[ko] MMM D[a] HH:mm\"},calendar:{sameDay:\"[gaur] LT[etan]\",nextDay:\"[bihar] LT[etan]\",nextWeek:\"dddd LT[etan]\",lastDay:\"[atzo] LT[etan]\",lastWeek:\"[aurreko] dddd LT[etan]\",sameElse:\"L\"},relativeTime:{future:\"%s barru\",past:\"duela %s\",s:\"segundo batzuk\",m:\"minutu bat\",mm:\"%d minutu\",h:\"ordu bat\",hh:\"%d ordu\",d:\"egun bat\",dd:\"%d egun\",M:\"hilabete bat\",MM:\"%d hilabete\",y:\"urte bat\",yy:\"%d urte\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),{1:\"۱\",2:\"۲\",3:\"۳\",4:\"۴\",5:\"۵\",6:\"۶\",7:\"۷\",8:\"۸\",9:\"۹\",0:\"۰\"}),dg={\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"۰\":\"0\"},eg=(Kf.defineLocale(\"fa\",{months:\"ژانویه_فوریهارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),monthsShort:\"ژانویه_فوریهارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),weekdays:\"یکشنبه_دوشنبههشنبههارشنبه_پنجشنبه_جمعه_شنبه\".split(\"_\"),weekdaysShort:\"یکشنبه_دوشنبههشنبههارشنبه_پنجشنبه_جمعه_شنبه\".split(\"_\"),weekdaysMin:\"ی_د_س_چ_پ_ج_ش\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?\"قبل از ظهر\":\"بعد از ظهر\"},calendar:{sameDay:\"[امروز ساعت] LT\",nextDay:\"[فردا ساعت] LT\",nextWeek:\"dddd [ساعت] LT\",lastDay:\"[دیروز ساعت] LT\",lastWeek:\"dddd [پیش] [ساعت] LT\",sameElse:\"L\"},relativeTime:{future:\"در %s\",past:\"%s پیش\",s:\"چندین ثانیه\",m:\"یک دقیقه\",mm:\"%d دقیقه\",h:\"یک ساعت\",hh:\"%d ساعت\",d:\"یک روز\",dd:\"%d روز\",M:\"یک ماه\",MM:\"%d ماه\",y:\"یک سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return dg[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return cg[a]}).replace(/,/g,\"،\")},ordinalParse:/\\d{1,2}م/,ordinal:\"%dم\",week:{dow:6,doy:12}}),\"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän\".split(\" \")),fg=[\"nolla\",\"yhden\",\"kahden\",\"kolmen\",\"neljän\",\"viiden\",\"kuuden\",eg[7],eg[8],eg[9]],gg=(Kf.defineLocale(\"fi\",{months:\"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu\".split(\"_\"),monthsShort:\"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu\".split(\"_\"),weekdays:\"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai\".split(\"_\"),weekdaysShort:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),weekdaysMin:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"Do MMMM[ta] YYYY\",LLL:\"Do MMMM[ta] YYYY, [klo] HH.mm\",LLLL:\"dddd, Do MMMM[ta] YYYY, [klo] HH.mm\",l:\"D.M.YYYY\",ll:\"Do MMM YYYY\",lll:\"Do MMM YYYY, [klo] HH.mm\",llll:\"ddd, Do MMM YYYY, [klo] HH.mm\"},calendar:{sameDay:\"[tänään] [klo] LT\",nextDay:\"[huomenna] [klo] LT\",nextWeek:\"dddd [klo] LT\",lastDay:\"[eilen] [klo] LT\",lastWeek:\"[viime] dddd[na] [klo] LT\",sameElse:\"L\"},relativeTime:{future:\"%s päästä\",past:\"%s sitten\",s:fd,m:fd,mm:fd,h:fd,hh:fd,d:fd,dd:fd,M:fd,MM:fd,y:fd,yy:fd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"fo\",{months:\"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur\".split(\"_\"),weekdaysShort:\"sun_mán_týs_mik_hós_frí_ley\".split(\"_\"),weekdaysMin:\"su_má_tý_mi_hó_fr_le\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D. MMMM, YYYY HH:mm\"},calendar:{sameDay:\"[Í dag kl.] LT\",nextDay:\"[Í morgin kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[Í gjár kl.] LT\",lastWeek:\"[síðstu] dddd [kl] LT\",sameElse:\"L\"},relativeTime:{future:\"um %s\",past:\"%s síðani\",s:\"fá sekund\",m:\"ein minutt\",mm:\"%d minuttir\",h:\"ein tími\",hh:\"%d tímar\",d:\"ein dagur\",dd:\"%d dagar\",M:\"ein mánaði\",MM:\"%d mánaðir\",y:\"eitt ár\",yy:\"%d ár\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"fr-ca\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?\"er\":\"e\")}}),Kf.defineLocale(\"fr-ch\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?\"er\":\"e\")},week:{dow:1,doy:4}}),Kf.defineLocale(\"fr\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?\"er\":\"\")},week:{dow:1,doy:4}}),\"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.\".split(\"_\")),hg=\"jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),ig=(Kf.defineLocale(\"fy\",{months:\"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?hg[a.month()]:gg[a.month()]},weekdays:\"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon\".split(\"_\"),weekdaysShort:\"si._mo._ti._wo._to._fr._so.\".split(\"_\"),weekdaysMin:\"Si_Mo_Ti_Wo_To_Fr_So\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[hjoed om] LT\",nextDay:\"[moarn om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[juster om] LT\",lastWeek:\"[ôfrûne] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"oer %s\",past:\"%s lyn\",s:\"in pear sekonden\",m:\"ien minút\",mm:\"%d minuten\",h:\"ien oere\",hh:\"%d oeren\",d:\"ien dei\",dd:\"%d dagen\",M:\"ien moanne\",MM:\"%d moannen\",y:\"ien jier\",yy:\"%d jierren\"},ordinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),[\"Am Faoilleach\",\"An Gearran\",\"Am Màrt\",\"An Giblean\",\"An Cèitean\",\"An t-Ògmhios\",\"An t-Iuchar\",\"An Lùnastal\",\"An t-Sultain\",\"An Dàmhair\",\"An t-Samhain\",\"An Dùbhlachd\"]),jg=[\"Faoi\",\"Gear\",\"Màrt\",\"Gibl\",\"Cèit\",\"Ògmh\",\"Iuch\",\"Lùn\",\"Sult\",\"Dàmh\",\"Samh\",\"Dùbh\"],kg=[\"Didòmhnaich\",\"Diluain\",\"Dimàirt\",\"Diciadain\",\"Diardaoin\",\"Dihaoine\",\"Disathairne\"],lg=[\"Did\",\"Dil\",\"Dim\",\"Dic\",\"Dia\",\"Dih\",\"Dis\"],mg=[\"Dò\",\"Lu\",\"Mà\",\"Ci\",\"Ar\",\"Ha\",\"Sa\"],ng=(Kf.defineLocale(\"gd\",{months:ig,monthsShort:jg,monthsParseExact:!0,weekdays:kg,weekdaysShort:lg,weekdaysMin:mg,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[An-diugh aig] LT\",nextDay:\"[A-màireach aig] LT\",nextWeek:\"dddd [aig] LT\",lastDay:\"[An-dè aig] LT\",lastWeek:\"dddd [seo chaidh] [aig] LT\",sameElse:\"L\"},relativeTime:{future:\"ann an %s\",past:\"bho chionn %s\",s:\"beagan diogan\",m:\"mionaid\",mm:\"%d mionaidean\",h:\"uair\",hh:\"%d uairean\",d:\"latha\",dd:\"%d latha\",M:\"mìos\",MM:\"%d mìosan\",y:\"bliadhna\",yy:\"%d bliadhna\"},ordinalParse:/\\d{1,2}(d|na|mh)/,ordinal:function(a){var b=1===a?\"d\":a%10===2?\"na\":\"mh\";return a+b},week:{dow:1,doy:4}}),Kf.defineLocale(\"gl\",{months:\"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro\".split(\"_\"),monthsShort:\"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.\".split(\"_\"),weekdays:\"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado\".split(\"_\"),weekdaysShort:\"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.\".split(\"_\"),weekdaysMin:\"Do_Lu_Ma_Mé_Xo_Ve_Sá\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd D MMMM YYYY H:mm\"},calendar:{sameDay:function(){return\"[hoxe \"+(1!==this.hours()?\"ás\":\"á\")+\"] LT\"},nextDay:function(){return\"[mañá \"+(1!==this.hours()?\"ás\":\"á\")+\"] LT\"},nextWeek:function(){return\"dddd [\"+(1!==this.hours()?\"ás\":\"a\")+\"] LT\"},lastDay:function(){return\"[onte \"+(1!==this.hours()?\"á\":\"a\")+\"] LT\"},lastWeek:function(){return\"[o] dddd [pasado \"+(1!==this.hours()?\"ás\":\"a\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:function(a){return\"uns segundos\"===a?\"nuns segundos\":\"en \"+a},past:\"hai %s\",s:\"uns segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"unha hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:7}}),Kf.defineLocale(\"he\",{months:\"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יוליוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר\".split(\"_\"),monthsShort:\"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יוליוג׳_ספט׳וק׳וב׳_דצמ׳\".split(\"_\"),weekdays:\"ראשון_שני_שלישי_רביעי_חמישיישי_שבת\".split(\"_\"),weekdaysShort:\"א׳׳׳׳׳_ו׳׳\".split(\"_\"),weekdaysMin:\"א_ב_ג_ד_ה_ו_ש\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [ב]MMMM YYYY\",LLL:\"D [ב]MMMM YYYY HH:mm\",LLLL:\"dddd, D [ב]MMMM YYYY HH:mm\",l:\"D/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd, D MMM YYYY HH:mm\"},calendar:{sameDay:\"[היום ב־]LT\",nextDay:\"[מחר ב־]LT\",nextWeek:\"dddd [בשעה] LT\",lastDay:\"[אתמול ב־]LT\",lastWeek:\"[ביום] dddd [האחרון בשעה] LT\",sameElse:\"L\"},relativeTime:{future:\"בעוד %s\",past:\"לפני %s\",s:\"מספר שניות\",m:\"דקה\",mm:\"%d דקות\",h:\"שעה\",hh:function(a){return 2===a?\"שעתיים\":a+\" שעות\"},d:\"יום\",dd:function(a){return 2===a?\"יומיים\":a+\" ימים\"},M:\"חודש\",MM:function(a){return 2===a?\"חודשיים\":a+\" חודשים\"},y:\"שנה\",yy:function(a){return 2===a?\"שנתיים\":a%10===0&&10!==a?a+\" שנה\":a+\" שנים\"}}}),{1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"\"}),og={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"\":\"0\"},pg=(Kf.defineLocale(\"hi\",{months:\"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर\".split(\"_\"),monthsShort:\"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.\".split(\"_\"),weekdays:\"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm बजे\",LTS:\"A h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm बजे\",LLLL:\"dddd, D MMMM YYYY, A h:mm बजे\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[कल] LT\",nextWeek:\"dddd, LT\",lastDay:\"[कल] LT\",lastWeek:\"[पिछले] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s में\",past:\"%s पहले\",s:\"कुछ ही क्षण\",m:\"एक मिनट\",mm:\"%d मिनट\",h:\"एक घंटा\",hh:\"%d घंटे\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महीने\",MM:\"%d महीने\",y:\"एक वर्ष\",yy:\"%d वर्ष\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return og[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return ng[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात\"===b?4>a?a:a+12:\"सुबह\"===b?a:\"दोपहर\"===b?a>=10?a:a+12:\"शाम\"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?\"रात\":10>a?\"सुबह\":17>a?\"दोपहर\":20>a?\"शाम\":\"रात\"},week:{dow:0,doy:6}}),Kf.defineLocale(\"hr\",{months:{format:\"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca\".split(\"_\"),standalone:\"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac\".split(\"_\")},monthsShort:\"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.\".split(\"_\"),weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:hd,mm:hd,h:hd,hh:hd,d:\"dan\",dd:hd,M:\"mjesec\",MM:hd,y:\"godinu\",yy:hd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),\"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton\".split(\" \")),qg=(Kf.defineLocale(\"hu\",{months:\"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december\".split(\"_\"),monthsShort:\"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec\".split(\"_\"),weekdays:\"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat\".split(\"_\"),weekdaysShort:\"vas_hét_kedd_sze_csüt_pén_szo\".split(\"_\"),weekdaysMin:\"v_h_k_sze_cs_p_szo\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY. MMMM D.\",LLL:\"YYYY. MMMM D. H:mm\",LLLL:\"YYYY. MMMM D., dddd H:mm\"},meridiemParse:/de|du/i,isPM:function(a){return\"u\"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?\"de\":\"DE\":c===!0?\"du\":\"DU\"},calendar:{sameDay:\"[ma] LT[-kor]\",nextDay:\"[holnap] LT[-kor]\",nextWeek:function(){return jd.call(this,!0)},lastDay:\"[tegnap] LT[-kor]\",lastWeek:function(){return jd.call(this,!1)},sameElse:\"L\"},relativeTime:{future:\"%s múlva\",past:\"%s\",s:id,m:id,mm:id,h:id,hh:id,d:id,dd:id,M:id,MM:id,y:id,yy:id},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),Kf.defineLocale(\"hy-am\",{months:{format:\"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի\".split(\"_\"),standalone:\"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր\".split(\"_\")},monthsShort:\"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ\".split(\"_\"),weekdays:\"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ\".split(\"_\"),weekdaysShort:\"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ\".split(\"_\"),weekdaysMin:\"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY թ.\",LLL:\"D MMMM YYYY թ., HH:mm\",LLLL:\"dddd, D MMMM YYYY թ., HH:mm\"},calendar:{sameDay:\"[այսօր] LT\",nextDay:\"[վաղը] LT\",lastDay:\"[երեկ] LT\",nextWeek:function(){return\"dddd [օրը ժամը] LT\"},lastWeek:function(){return\"[անցած] dddd [օրը ժամը] LT\"},sameElse:\"L\"},relativeTime:{future:\"%s հետո\",past:\"%s առաջ\",s:\"մի քանի վայրկյան\",m:\"րոպե\",mm:\"%d րոպե\",h:\"ժամ\",hh:\"%d ժամ\",d:\"օր\",dd:\"%d օր\",M:\"ամիս\",MM:\"%d ամիս\",y:\"տարի\",yy:\"%d տարի\"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return 4>a?\"գիշերվա\":12>a?\"առավոտվա\":17>a?\"ցերեկվա\":\"երեկոյան\"},ordinalParse:/\\d{1,2}|\\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case\"DDD\":case\"w\":case\"W\":case\"DDDo\":return 1===a?a+\"-ին\":a+\"-րդ\";default:return a}},week:{dow:1,doy:7}}),Kf.defineLocale(\"id\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Rab_Kam_Jum_Sab\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"siang\"===b?a>=11?a:a+12:\"sore\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?\"pagi\":15>a?\"siang\":19>a?\"sore\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Besok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kemarin pukul] LT\",lastWeek:\"dddd [lalu pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lalu\",s:\"beberapa detik\",m:\"semenit\",mm:\"%d menit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),Kf.defineLocale(\"is\",{months:\"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des\".split(\"_\"),weekdays:\"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur\".split(\"_\"),weekdaysShort:\"sun_mán_þri_mið_fim_fös_lau\".split(\"_\"),weekdaysMin:\"Su_Má_Þr_Mi_Fi_Fö_La\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] H:mm\",LLLL:\"dddd, D. MMMM YYYY [kl.] H:mm\"},calendar:{sameDay:\"[í dag kl.] LT\",nextDay:\"[á morgun kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[í gær kl.] LT\",lastWeek:\"[síðasta] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"eftir %s\",past:\"fyrir %s síðan\",s:ld,m:ld,mm:ld,h:\"klukkustund\",hh:ld,d:ld,dd:ld,M:ld,MM:ld,y:ld,yy:ld},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"it\",{months:\"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre\".split(\"_\"),monthsShort:\"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic\".split(\"_\"),weekdays:\"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato\".split(\"_\"),weekdaysShort:\"Dom_Lun_Mar_Mer_Gio_Ven_Sab\".split(\"_\"),weekdaysMin:\"Do_Lu_Ma_Me_Gi_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Oggi alle] LT\",nextDay:\"[Domani alle] LT\",nextWeek:\"dddd [alle] LT\",lastDay:\"[Ieri alle] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[la scorsa] dddd [alle] LT\";default:return\"[lo scorso] dddd [alle] LT\"}},sameElse:\"L\"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?\"tra\":\"in\")+\" \"+a},past:\"%s fa\",s:\"alcuni secondi\",m:\"un minuto\",mm:\"%d minuti\",h:\"un'ora\",hh:\"%d ore\",d:\"un giorno\",dd:\"%d giorni\",M:\"un mese\",MM:\"%d mesi\",y:\"un anno\",yy:\"%d anni\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),Kf.defineLocale(\"ja\",{months:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日\".split(\"_\"),weekdaysShort:\"日_月_火_水_木_金_土\".split(\"_\"),weekdaysMin:\"日_月_火_水_木_金_土\".split(\"_\"),longDateFormat:{LT:\"Ah時m分\",LTS:\"Ah時m分s秒\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah時m分\",LLLL:\"YYYY年M月D日Ah時m分 dddd\"},meridiemParse:/午前|午後/i,isPM:function(a){return\"午後\"===a},meridiem:function(a,b,c){return 12>a?\"午前\":\"午後\"},calendar:{sameDay:\"[今日] LT\",nextDay:\"[明日] LT\",nextWeek:\"[来週]dddd LT\",lastDay:\"[昨日] LT\",lastWeek:\"[前週]dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s後\",past:\"%s前\",s:\"数秒\",m:\"1分\",mm:\"%d分\",h:\"1時間\",hh:\"%d時間\",d:\"1日\",dd:\"%d日\",M:\"1ヶ月\",MM:\"%dヶ月\",y:\"1年\",yy:\"%d年\"}}),Kf.defineLocale(\"jv\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des\".split(\"_\"),weekdays:\"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Reb_Kem_Jem_Sep\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sp\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),\"enjing\"===b?a:\"siyang\"===b?a>=11?a:a+12:\"sonten\"===b||\"ndalu\"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?\"enjing\":15>a?\"siyang\":19>a?\"sonten\":\"ndalu\"},calendar:{sameDay:\"[Dinten puniko pukul] LT\",nextDay:\"[Mbenjang pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kala wingi pukul] LT\",lastWeek:\"dddd [kepengker pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"wonten ing %s\",past:\"%s ingkang kepengker\",s:\"sawetawis detik\",m:\"setunggal menit\",mm:\"%d menit\",h:\"setunggal jam\",hh:\"%d jam\",d:\"sedinten\",dd:\"%d dinten\",M:\"sewulan\",MM:\"%d wulan\",y:\"setaun\",yy:\"%d taun\"},week:{dow:1,doy:7}}),Kf.defineLocale(\"ka\",{months:{standalone:\"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი\".split(\"_\"),format:\"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს\".split(\"_\")},monthsShort:\"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ\".split(\"_\"),weekdays:{standalone:\"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი\".split(\"_\"),format:\"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს\".split(\"_\"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:\"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ\".split(\"_\"),weekdaysMin:\"კვ_ორ_სა_ოთ_ხუ_პა_შა\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[დღეს] LT[-ზე]\",nextDay:\"[ხვალ] LT[-ზე]\",lastDay:\"[გუშინ] LT[-ზე]\",nextWeek:\"[შემდეგ] dddd LT[-ზე]\",lastWeek:\"[წინა] dddd LT-ზე\",sameElse:\"L\"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,\"ში\"):a+\"ში\"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,\"ის წინ\"):/წელი/.test(a)?a.replace(/წელი$/,\"წლის წინ\"):void 0},s:\"რამდენიმე წამი\",m:\"წუთი\",mm:\"%d წუთი\",h:\"საათი\",hh:\"%d საათი\",d:\"დღე\",dd:\"%d დღე\",M:\"თვე\",MM:\"%d თვე\",y:\"წელი\",yy:\"%d წელი\"},ordinalParse:/0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+\"-ლი\":20>a||100>=a&&a%20===0||a%100===0?\"მე-\"+a:a+\"-ე\"},week:{dow:1,doy:7}}),{0:\"-ші\",1:\"-ші\",2:\"-ші\",3:\"-ші\",4:\"-ші\",5:\"-ші\",6:\"-шы\",7:\"-ші\",8:\"-ші\",9:\"-шы\",10:\"-шы\",20:\"-шы\",30:\"-шы\",40:\"-шы\",50:\"-ші\",60:\"-шы\",70:\"-ші\",80:\"-ші\",90:\"-шы\",100:\"-ші\"}),rg=(Kf.defineLocale(\"kk\",{months:\"Қаңтар_Ақпан_Наурыз_Сәуір_Мамыр_Маусым_Шілде_Тамыз_Қыркүйек_Қазан_Қарашаелтоқсан\".split(\"_\"),monthsShort:\"Қаң_Ақп_Нау_Сәу_Мам_Мауіл_Там_Қыраз_Қарел\".split(\"_\"),weekdays:\"Жексенбіүйсенбі_Сейсенбі_Сәрсенбіейсенбі_Жұма_Сенбі\".split(\"_\"),weekdaysShort:\"Жек_Дүй_Сей_Сәрей_Жұм_Сен\".split(\"_\"),weekdaysMin:\"Жк_Дй_Сй_Ср_Бй_Жм_Сн\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Бүгін сағат] LT\",nextDay:\"[Ертең сағат] LT\",nextWeek:\"dddd [сағат] LT\",lastDay:\"[Кеше сағат] LT\",lastWeek:\"[Өткен аптаның] dddd [сағат] LT\",sameElse:\"L\"},relativeTime:{future:\"%s ішінде\",past:\"%s бұрын\",s:\"бірнеше секунд\",m:\"бір минут\",mm:\"%d минут\",h:\"бір сағат\",hh:\"%d сағат\",d:\"бір күн\",dd:\"%d күн\",M:\"бір ай\",MM:\"%d ай\",y:\"бір жыл\",yy:\"%d жыл\"},ordinalParse:/\\d{1,2}-(ші|шы)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(qg[a]||qg[b]||qg[c])},week:{dow:1,doy:7}}),Kf.defineLocale(\"km\",{months:\"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ\".split(\"_\"),monthsShort:\"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ\".split(\"_\"),weekdays:\"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍\".split(\"_\"),weekdaysShort:\"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍\".split(\"_\"),weekdaysMin:\"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[ថ្ងៃនេះ ម៉ោង] LT\",nextDay:\"[ស្អែក ម៉ោង] LT\",nextWeek:\"dddd [ម៉ោង] LT\",lastDay:\"[ម្សិលមិញ ម៉ោង] LT\",lastWeek:\"dddd [សប្តាហ៍មុន] [ម៉ោង] LT\",sameElse:\"L\"},relativeTime:{future:\"%sទៀត\",past:\"%sមុន\",s:\"ប៉ុន្មានវិនាទី\",m:\"មួយនាទី\",mm:\"%d នាទី\",h:\"មួយម៉ោង\",hh:\"%d ម៉ោង\",d:\"មួយថ្ងៃ\",dd:\"%d ថ្ងៃ\",M:\"មួយខែ\",MM:\"%d ខែ\",y:\"មួយឆ្នាំ\",yy:\"%d ឆ្នាំ\"},week:{dow:1,doy:4}}),Kf.defineLocale(\"ko\",{months:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),monthsShort:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),weekdays:\"일요일_월요일_화요일_수요일_목요일_금요일_토요일\".split(\"_\"),weekdaysShort:\"일_월_화_수_목_금_토\".split(\"_\"),weekdaysMin:\"일_월_화_수_목_금_토\".split(\"_\"),longDateFormat:{LT:\"A h시 m분\",LTS:\"A h시 m분 s초\",L:\"YYYY.MM.DD\",LL:\"YYYY년 MMMM D일\",LLL:\"YYYY년 MMMM D일 A h시 m분\",LLLL:\"YYYY년 MMMM D일 dddd A h시 m분\"},calendar:{sameDay:\"오늘 LT\",nextDay:\"내일 LT\",nextWeek:\"dddd LT\",lastDay:\"어제 LT\",lastWeek:\"지난주 dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s 후\",past:\"%s 전\",s:\"몇초\",ss:\"%d초\",m:\"일분\",mm:\"%d분\",h:\"한시간\",hh:\"%d시간\",d:\"하루\",dd:\"%d일\",M:\"한달\",MM:\"%d달\",y:\"일년\",yy:\"%d년\"},ordinalParse:/\\d{1,2}일/,ordinal:\"%d일\",meridiemParse:/오전|오후/,isPM:function(a){return\"오후\"===a},meridiem:function(a,b,c){return 12>a?\"오전\":\"오후\"}}),Kf.defineLocale(\"lb\",{months:\"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg\".split(\"_\"),weekdaysShort:\"So._Mé._Dë._Më._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mé_Dë_Më_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"H:mm [Auer]\",LTS:\"H:mm:ss [Auer]\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm [Auer]\",LLLL:\"dddd, D. MMMM YYYY H:mm [Auer]\"},calendar:{sameDay:\"[Haut um] LT\",sameElse:\"L\",nextDay:\"[Muer um] LT\",nextWeek:\"dddd [um] LT\",lastDay:\"[Gëschter um] LT\",lastWeek:function(){switch(this.day()){case 2:case 4:return\"[Leschten] dddd [um] LT\";default:return\"[Leschte] dddd [um] LT\"}}},relativeTime:{future:nd,past:od,s:\"e puer Sekonnen\",m:md,mm:\"%d Minutten\",h:md,hh:\"%d Stonnen\",d:md,dd:\"%d Deeg\",M:md,MM:\"%d Méint\",y:md,yy:\"%d Joer\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"lo\",{months:\"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ\".split(\"_\"),monthsShort:\"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ\".split(\"_\"),weekdays:\"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ\".split(\"_\"),weekdaysShort:\"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ\".split(\"_\"),weekdaysMin:\"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"ວັນdddd D MMMM YYYY HH:mm\"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(a){return\"ຕອນແລງ\"===a},meridiem:function(a,b,c){return 12>a?\"ຕອນເຊົ້າ\":\"ຕອນແລງ\"},calendar:{sameDay:\"[ມື້ນີ້ເວລາ] LT\",nextDay:\"[ມື້ອື່ນເວລາ] LT\",nextWeek:\"[ວັນ]dddd[ໜ້າເວລາ] LT\",lastDay:\"[ມື້ວານນີ້ເວລາ] LT\",lastWeek:\"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT\",sameElse:\"L\"},relativeTime:{future:\"ອີກ %s\",past:\"%sຜ່ານມາ\",s:\"ບໍ່ເທົ່າໃດວິນາທີ\",m:\"1 ນາທີ\",mm:\"%d ນາທີ\",h:\"1 ຊົ່ວໂມງ\",hh:\"%d ຊົ່ວໂມງ\",d:\"1 ມື້\",dd:\"%d ມື້\",M:\"1 ເດືອນ\",MM:\"%d ເດືອນ\",y:\"1 ປີ\",yy:\"%d ປີ\"},ordinalParse:/(ທີ່)\\d{1,2}/,ordinal:function(a){\nreturn\"ທີ່\"+a}}),{m:\"minutė_minutės_minutę\",mm:\"minutės_minučių_minutes\",h:\"valanda_valandos_valandą\",hh:\"valandos_valandų_valandas\",d:\"diena_dienos_dieną\",dd:\"dienos_dienų_dienas\",M:\"mėnuo_mėnesio_mėnesį\",MM:\"mėnesiai_mėnesių_mėnesius\",y:\"metai_metų_metus\",yy:\"metai_metų_metus\"}),sg=(Kf.defineLocale(\"lt\",{months:{format:\"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio\".split(\"_\"),standalone:\"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis\".split(\"_\")},monthsShort:\"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd\".split(\"_\"),weekdays:{format:\"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį\".split(\"_\"),standalone:\"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis\".split(\"_\"),isFormat:/dddd HH:mm/},weekdaysShort:\"Sek_Pir_Ant_Tre_Ket_Pen_Šeš\".split(\"_\"),weekdaysMin:\"S_P_A_T_K_Pn_Š\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY [m.] MMMM D [d.]\",LLL:\"YYYY [m.] MMMM D [d.], HH:mm [val.]\",LLLL:\"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]\",l:\"YYYY-MM-DD\",ll:\"YYYY [m.] MMMM D [d.]\",lll:\"YYYY [m.] MMMM D [d.], HH:mm [val.]\",llll:\"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]\"},calendar:{sameDay:\"[Šiandien] LT\",nextDay:\"[Rytoj] LT\",nextWeek:\"dddd LT\",lastDay:\"[Vakar] LT\",lastWeek:\"[Praėjusį] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"po %s\",past:\"prieš %s\",s:qd,m:rd,mm:ud,h:rd,hh:ud,d:rd,dd:ud,M:rd,MM:ud,y:rd,yy:ud},ordinalParse:/\\d{1,2}-oji/,ordinal:function(a){return a+\"-oji\"},week:{dow:1,doy:4}}),{m:\"minūtes_minūtēm_minūte_minūtes\".split(\"_\"),mm:\"minūtes_minūtēm_minūte_minūtes\".split(\"_\"),h:\"stundas_stundām_stunda_stundas\".split(\"_\"),hh:\"stundas_stundām_stunda_stundas\".split(\"_\"),d:\"dienas_dienām_diena_dienas\".split(\"_\"),dd:\"dienas_dienām_diena_dienas\".split(\"_\"),M:\"mēneša_mēnešiem_mēnesis_mēneši\".split(\"_\"),MM:\"mēneša_mēnešiem_mēnesis_mēneši\".split(\"_\"),y:\"gada_gadiem_gads_gadi\".split(\"_\"),yy:\"gada_gadiem_gads_gadi\".split(\"_\")}),tg=(Kf.defineLocale(\"lv\",{months:\"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena\".split(\"_\"),weekdaysShort:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysMin:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY.\",LL:\"YYYY. [gada] D. MMMM\",LLL:\"YYYY. [gada] D. MMMM, HH:mm\",LLLL:\"YYYY. [gada] D. MMMM, dddd, HH:mm\"},calendar:{sameDay:\"[Šodien pulksten] LT\",nextDay:\"[Rīt pulksten] LT\",nextWeek:\"dddd [pulksten] LT\",lastDay:\"[Vakar pulksten] LT\",lastWeek:\"[Pagājušā] dddd [pulksten] LT\",sameElse:\"L\"},relativeTime:{future:\"pēc %s\",past:\"pirms %s\",s:yd,m:xd,mm:wd,h:xd,hh:wd,d:xd,dd:wd,M:xd,MM:wd,y:xd,yy:wd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),{words:{m:[\"jedan minut\",\"jednog minuta\"],mm:[\"minut\",\"minuta\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mjesec\",\"mjeseca\",\"mjeseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=tg.words[c];return 1===c.length?b?d[0]:d[1]:a+\" \"+tg.correctGrammaticalCase(a,d)}}),ug=(Kf.defineLocale(\"me\",{months:[\"januar\",\"februar\",\"mart\",\"april\",\"maj\",\"jun\",\"jul\",\"avgust\",\"septembar\",\"oktobar\",\"novembar\",\"decembar\"],monthsShort:[\"jan.\",\"feb.\",\"mar.\",\"apr.\",\"maj\",\"jun\",\"jul\",\"avg.\",\"sep.\",\"okt.\",\"nov.\",\"dec.\"],weekdays:[\"nedjelja\",\"ponedjeljak\",\"utorak\",\"srijeda\",\"četvrtak\",\"petak\",\"subota\"],weekdaysShort:[\"ned.\",\"pon.\",\"uto.\",\"sri.\",\"čet.\",\"pet.\",\"sub.\"],weekdaysMin:[\"ne\",\"po\",\"ut\",\"sr\",\"če\",\"pe\",\"su\"],longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sjutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedjelje] [u] LT\",\"[prošlog] [ponedjeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srijede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"nekoliko sekundi\",m:tg.translate,mm:tg.translate,h:tg.translate,hh:tg.translate,d:\"dan\",dd:tg.translate,M:\"mjesec\",MM:tg.translate,y:\"godinu\",yy:tg.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),Kf.defineLocale(\"mk\",{months:\"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"јан_фев_мар_апрај_јун_јул_авг_сеп_окт_ноеек\".split(\"_\"),weekdays:\"недела_понеделник_вторник_средаетврток_петок_сабота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_среет_пет_саб\".split(\"_\"),weekdaysMin:\"нe_пo_вт_сре_пе_сa\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[Денес во] LT\",nextDay:\"[Утре во] LT\",nextWeek:\"[Во] dddd [во] LT\",lastDay:\"[Вчера во] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[Изминатата] dddd [во] LT\";case 1:case 2:case 4:case 5:return\"[Изминатиот] dddd [во] LT\"}},sameElse:\"L\"},relativeTime:{future:\"после %s\",past:\"пред %s\",s:\"неколку секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дена\",M:\"месец\",MM:\"%d месеци\",y:\"година\",yy:\"%d години\"},ordinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&20>c?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}}),Kf.defineLocale(\"ml\",{months:\"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റബർ_ഒക്ടോബർ_നവബർ_ഡിസബർ\".split(\"_\"),monthsShort:\"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവ._ഡിസ.\".split(\"_\"),weekdays:\"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച\".split(\"_\"),weekdaysShort:\"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴ_വെള്ളി_ശനി\".split(\"_\"),weekdaysMin:\"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ\".split(\"_\"),longDateFormat:{LT:\"A h:mm -നു\",LTS:\"A h:mm:ss -നു\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm -നു\",LLLL:\"dddd, D MMMM YYYY, A h:mm -നു\"},calendar:{sameDay:\"[ഇന്ന്] LT\",nextDay:\"[നാളെ] LT\",nextWeek:\"dddd, LT\",lastDay:\"[ഇന്നലെ] LT\",lastWeek:\"[കഴിഞ്ഞ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s കഴിഞ്ഞ്\",past:\"%s മുൻപ്\",s:\"അൽപ നിമിഷങ്ങൾ\",m:\"ഒരു മിനിറ്റ്\",mm:\"%d മിനിറ്റ്\",h:\"ഒരു മണിക്കൂർ\",hh:\"%d മണിക്കൂർ\",d:\"ഒരു ദിവസം\",dd:\"%d ദിവസം\",M:\"ഒരു മാസം\",MM:\"%d മാസം\",y:\"ഒരു വർഷം\",yy:\"%d വർഷം\"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,isPM:function(a){return/^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"രാത്രി\":12>a?\"രാവിലെ\":17>a?\"ഉച്ച കഴിഞ്ഞ്\":20>a?\"വൈകുന്നേരം\":\"രാത്രി\"}}),{1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"\"}),vg={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"\":\"0\"},wg=(Kf.defineLocale(\"mr\",{months:\"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर\".split(\"_\"),monthsShort:\"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.\".split(\"_\"),weekdays:\"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm वाजता\",LTS:\"A h:mm:ss वाजता\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm वाजता\",LLLL:\"dddd, D MMMM YYYY, A h:mm वाजता\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[उद्या] LT\",nextWeek:\"dddd, LT\",lastDay:\"[काल] LT\",lastWeek:\"[मागील] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%sमध्ये\",past:\"%sपूर्वी\",s:zd,m:zd,mm:zd,h:zd,hh:zd,d:zd,dd:zd,M:zd,MM:zd,y:zd,yy:zd},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return vg[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return ug[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात्री\"===b?4>a?a:a+12:\"सकाळी\"===b?a:\"दुपारी\"===b?a>=10?a:a+12:\"सायंकाळी\"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?\"रात्री\":10>a?\"सकाळी\":17>a?\"दुपारी\":20>a?\"सायंकाळी\":\"रात्री\"},week:{dow:0,doy:6}}),Kf.defineLocale(\"ms-my\",{months:\"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis\".split(\"_\"),weekdays:\"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu\".split(\"_\"),weekdaysShort:\"Ahd_Isn_Sel_Rab_Kha_Jum_Sab\".split(\"_\"),weekdaysMin:\"Ah_Is_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"tengahari\"===b?a>=11?a:a+12:\"petang\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?\"pagi\":15>a?\"tengahari\":19>a?\"petang\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Esok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kelmarin pukul] LT\",lastWeek:\"dddd [lepas pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lepas\",s:\"beberapa saat\",m:\"seminit\",mm:\"%d minit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),Kf.defineLocale(\"ms\",{months:\"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis\".split(\"_\"),weekdays:\"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu\".split(\"_\"),weekdaysShort:\"Ahd_Isn_Sel_Rab_Kha_Jum_Sab\".split(\"_\"),weekdaysMin:\"Ah_Is_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"tengahari\"===b?a>=11?a:a+12:\"petang\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?\"pagi\":15>a?\"tengahari\":19>a?\"petang\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Esok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kelmarin pukul] LT\",lastWeek:\"dddd [lepas pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lepas\",s:\"beberapa saat\",m:\"seminit\",mm:\"%d minit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),{1:\"၁\",2:\"၂\",3:\"၃\",4:\"၄\",5:\"၅\",6:\"၆\",7:\"၇\",8:\"၈\",9:\"၉\",0:\"\"}),xg={\"၁\":\"1\",\"၂\":\"2\",\"၃\":\"3\",\"၄\":\"4\",\"၅\":\"5\",\"၆\":\"6\",\"၇\":\"7\",\"၈\":\"8\",\"၉\":\"9\",\"\":\"0\"},yg=(Kf.defineLocale(\"my\",{months:\"ဇန်နါရီ_ဖေဖော်ါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုင်ဘာ_ဒီဇင်ဘာ\".split(\"_\"),monthsShort:\"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ\".split(\"_\"),weekdays:\"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ\".split(\"_\"),weekdaysShort:\"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ\".split(\"_\"),weekdaysMin:\"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[ယနေ.] LT [မှာ]\",nextDay:\"[မနက်ဖြန်] LT [မှာ]\",nextWeek:\"dddd LT [မှာ]\",lastDay:\"[မနေ.က] LT [မှာ]\",lastWeek:\"[ပြီးခဲ့သော] dddd LT [မှာ]\",sameElse:\"L\"},relativeTime:{future:\"လာမည့် %s မှာ\",past:\"လွန်ခဲ့သော %s က\",s:\"စက္ကန်.အနည်းငယ်\",m:\"တစ်မိနစ်\",mm:\"%d မိနစ်\",h:\"တစ်နာရီ\",hh:\"%d နာရီ\",d:\"တစ်ရက်\",dd:\"%d ရက်\",M:\"တစ်လ\",MM:\"%d လ\",y:\"တစ်နှစ်\",yy:\"%d နှစ်\"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return xg[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return wg[a]})},week:{dow:1,doy:4}}),Kf.defineLocale(\"nb\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"sø._ma._ti._on._to._fr._lø.\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] HH:mm\",LLLL:\"dddd D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[i går kl.] LT\",lastWeek:\"[forrige] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"for %s siden\",s:\"noen sekunder\",m:\"ett minutt\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dager\",M:\"en måned\",MM:\"%d måneder\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),{1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"\"}),zg={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"\":\"0\"},Ag=(Kf.defineLocale(\"ne\",{months:\"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर\".split(\"_\"),monthsShort:\"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.\".split(\"_\"),weekdays:\"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार\".split(\"_\"),weekdaysShort:\"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.\".split(\"_\"),weekdaysMin:\"आ._सो._मं._बु._बि._शु._श.\".split(\"_\"),longDateFormat:{LT:\"Aको h:mm बजे\",LTS:\"Aको h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, Aको h:mm बजे\",LLLL:\"dddd, D MMMM YYYY, Aको h:mm बजे\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return zg[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return yg[a]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(a,b){return 12===a&&(a=0),\"राति\"===b?4>a?a:a+12:\"बिहान\"===b?a:\"दिउँसो\"===b?a>=10?a:a+12:\"साँझ\"===b?a+12:void 0},meridiem:function(a,b,c){return 3>a?\"राति\":12>a?\"बिहान\":16>a?\"दिउँसो\":20>a?\"साँझ\":\"राति\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[भोलि] LT\",nextWeek:\"[आउँदो] dddd[,] LT\",lastDay:\"[हिजो] LT\",lastWeek:\"[गएको] dddd[,] LT\",sameElse:\"L\"},relativeTime:{future:\"%sमा\",past:\"%s अगाडि\",s:\"केही क्षण\",m:\"एक मिनेट\",mm:\"%d मिनेट\",h:\"एक घण्टा\",hh:\"%d घण्टा\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महिना\",MM:\"%d महिना\",y:\"एक बर्ष\",yy:\"%d बर्ष\"},week:{dow:0,doy:6}}),\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\")),Bg=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),Cg=(Kf.defineLocale(\"nl\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?Bg[a.month()]:Ag[a.month()]},weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"Zo_Ma_Di_Wo_Do_Vr_Za\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"één minuut\",mm:\"%d minuten\",h:\"één uur\",hh:\"%d uur\",d:\"één dag\",dd:\"%d dagen\",M:\"één maand\",MM:\"%d maanden\",y:\"één jaar\",yy:\"%d jaar\"},ordinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),Kf.defineLocale(\"nn\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag\".split(\"_\"),weekdaysShort:\"sun_mån_tys_ons_tor_fre_lau\".split(\"_\"),weekdaysMin:\"su_må_ty_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] H:mm\",LLLL:\"dddd D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[I dag klokka] LT\",nextDay:\"[I morgon klokka] LT\",nextWeek:\"dddd [klokka] LT\",lastDay:\"[I går klokka] LT\",lastWeek:\"[Føregåande] dddd [klokka] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"for %s sidan\",s:\"nokre sekund\",m:\"eit minutt\",mm:\"%d minutt\",h:\"ein time\",hh:\"%d timar\",d:\"ein dag\",dd:\"%d dagar\",M:\"ein månad\",MM:\"%d månader\",y:\"eit år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień\".split(\"_\")),Dg=\"stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia\".split(\"_\"),Eg=(Kf.defineLocale(\"pl\",{months:function(a,b){return\"\"===b?\"(\"+Dg[a.month()]+\"|\"+Cg[a.month()]+\")\":/D MMMM/.test(b)?Dg[a.month()]:Cg[a.month()]},monthsShort:\"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru\".split(\"_\"),weekdays:\"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota\".split(\"_\"),weekdaysShort:\"nie_pon_wt_śr_czw_pt_sb\".split(\"_\"),weekdaysMin:\"Nd_Pn_Wt_Śr_Cz_Pt_So\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Dziś o] LT\",nextDay:\"[Jutro o] LT\",nextWeek:\"[W] dddd [o] LT\",lastDay:\"[Wczoraj o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[W zeszłą niedzielę o] LT\";case 3:return\"[W zeszłą środę o] LT\";case 6:return\"[W zeszłą sobotę o] LT\";default:return\"[W zeszły] dddd [o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"%s temu\",s:\"kilka sekund\",m:Bd,mm:Bd,h:Bd,hh:Bd,d:\"1 dzień\",dd:\"%d dni\",M:\"miesiąc\",MM:Bd,y:\"rok\",yy:Bd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"pt-br\",{months:\"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ter_Qua_Qui_Sex_Sáb\".split(\"_\"),weekdaysMin:\"Dom_2ª_3ª_4ª_5ª_6ª_Sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY [às] HH:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY [às] HH:mm\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"%s atrás\",s:\"poucos segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\"}),Kf.defineLocale(\"pt\",{months:\"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ter_Qua_Qui_Sex_Sáb\".split(\"_\"),weekdaysMin:\"Dom_2ª_3ª_4ª_5ª_6ª_Sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY HH:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY HH:mm\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"há %s\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),Kf.defineLocale(\"ro\",{months:\"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie\".split(\"_\"),monthsShort:\"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.\".split(\"_\"),weekdays:\"duminică_luni_marți_miercuri_joi_vineri_sâmbătă\".split(\"_\"),weekdaysShort:\"Dum_Lun_Mar_Mie_Joi_Vin_Sâm\".split(\"_\"),weekdaysMin:\"Du_Lu_Ma_Mi_Jo_Vi_Sâ\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[azi la] LT\",nextDay:\"[mâine la] LT\",nextWeek:\"dddd [la] LT\",lastDay:\"[ieri la] LT\",lastWeek:\"[fosta] dddd [la] LT\",sameElse:\"L\"},relativeTime:{future:\"peste %s\",past:\"%s în urmă\",s:\"câteva secunde\",m:\"un minut\",mm:Cd,h:\"o oră\",hh:Cd,d:\"o zi\",dd:Cd,M:\"o lună\",MM:Cd,y:\"un an\",yy:Cd},week:{dow:1,doy:7}}),[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i]),Fg=(Kf.defineLocale(\"ru\",{months:{format:\"Января_Февраля_Марта_Апреля_Мая_Июня_Июля_Августа_Сентября_Октября_Ноября_Декабря\".split(\"_\"),standalone:\"Январь_Февраль_Март_Апрель_Май_Июнь_Июль_Август_Сентябрь_Октябрь_Ноябрь_Декабрь\".split(\"_\")},monthsShort:{format:\"янв_фев_мар_апрая_июня_июля_авг_сен_окт_ноя_дек\".split(\"_\"),standalone:\"янв_фев_март_апрай_июнь_июль_авг_сен_окт_ноя_дек\".split(\"_\")},weekdays:{standalone:\"Воскресеньеонедельник_Вторник_Средаетверг_Пятница_Суббота\".split(\"_\"),format:\"Воскресеньеонедельник_Вторник_Средуетверг_Пятницу_Субботу\".split(\"_\"),isFormat:/\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/},weekdaysShort:\"Вс_Пн_Вт_Ср_Чт_Пт_Сб\".split(\"_\"),weekdaysMin:\"Вс_Пн_Вт_Ср_Чт_Пт_Сб\".split(\"_\"),monthsParse:Eg,longMonthsParse:Eg,shortMonthsParse:Eg,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., HH:mm\",LLLL:\"dddd, D MMMM YYYY г., HH:mm\"},calendar:{sameDay:\"[Сегодня в] LT\",nextDay:\"[Завтра в] LT\",lastDay:\"[Вчера в] LT\",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В следующее] dddd [в] LT\";case 1:case 2:case 4:return\"[В следующий] dddd [в] LT\";case 3:case 5:case 6:return\"[В следующую] dddd [в] LT\"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В прошлое] dddd [в] LT\";case 1:case 2:case 4:return\"[В прошлый] dddd [в] LT\";case 3:case 5:case 6:return\"[В прошлую] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:Ed,mm:Ed,h:\"час\",hh:Ed,d:\"день\",dd:Ed,M:\"месяц\",MM:Ed,y:\"год\",yy:Ed},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночи\":12>a?\"утра\":17>a?\"дня\":\"вечера\"},ordinalParse:/\\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":return a+\"-й\";case\"D\":return a+\"-го\";case\"w\":case\"W\":return a+\"-я\";default:return a}},week:{dow:1,doy:7}}),Kf.defineLocale(\"se\",{months:\"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu\".split(\"_\"),monthsShort:\"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov\".split(\"_\"),weekdays:\"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat\".split(\"_\"),weekdaysShort:\"sotn_vuos_maŋ_gask_duor_bear_láv\".split(\"_\"),weekdaysMin:\"s_v_m_g_d_b_L\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"MMMM D. [b.] YYYY\",LLL:\"MMMM D. [b.] YYYY [ti.] HH:mm\",LLLL:\"dddd, MMMM D. [b.] YYYY [ti.] HH:mm\"},calendar:{sameDay:\"[otne ti] LT\",nextDay:\"[ihttin ti] LT\",nextWeek:\"dddd [ti] LT\",lastDay:\"[ikte ti] LT\",lastWeek:\"[ovddit] dddd [ti] LT\",sameElse:\"L\"},relativeTime:{future:\"%s geažes\",past:\"maŋit %s\",s:\"moadde sekunddat\",m:\"okta minuhta\",mm:\"%d minuhtat\",h:\"okta diimmu\",hh:\"%d diimmut\",d:\"okta beaivi\",dd:\"%d beaivvit\",M:\"okta mánnu\",MM:\"%d mánut\",y:\"okta jahki\",yy:\"%d jagit\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"si\",{months:\"ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්\".split(\"_\"),monthsShort:\"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ\".split(\"_\"),weekdays:\"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා\".split(\"_\"),weekdaysShort:\"ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන\".split(\"_\"),weekdaysMin:\"ඉ_ස_අ_බ_බ්ර_සි_සෙ\".split(\"_\"),longDateFormat:{LT:\"a h:mm\",LTS:\"a h:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY MMMM D\",LLL:\"YYYY MMMM D, a h:mm\",LLLL:\"YYYY MMMM D [වැනි] dddd, a h:mm:ss\"},calendar:{sameDay:\"[අද] LT[ට]\",nextDay:\"[හෙට] LT[ට]\",nextWeek:\"dddd LT[ට]\",lastDay:\"[ඊයේ] LT[ට]\",lastWeek:\"[පසුගිය] dddd LT[ට]\",sameElse:\"L\"},relativeTime:{future:\"%sකින්\",past:\"%sකට පෙර\",s:\"තත්පර කිහිපය\",m:\"මිනිත්තුව\",mm:\"මිනිත්තු %d\",h:\"පැය\",hh:\"පැය %d\",d:\"දිනය\",dd:\"දින %d\",M:\"මාසය\",MM:\"මාස %d\",y:\"වසර\",yy:\"වසර %d\"},ordinalParse:/\\d{1,2} වැනි/,ordinal:function(a){return a+\" වැනි\"},meridiem:function(a,b,c){return a>11?c?\"ප.ව.\":\"පස් වරු\":c?\"පෙ.ව.\":\"පෙර වරු\"}}),\"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december\".split(\"_\")),Gg=\"jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec\".split(\"_\"),Hg=(Kf.defineLocale(\"sk\",{months:Fg,monthsShort:Gg,weekdays:\"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota\".split(\"_\"),weekdaysShort:\"ne_po_ut_st_št_pi_so\".split(\"_\"),weekdaysMin:\"ne_po_ut_st_št_pi_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[dnes o] LT\",nextDay:\"[zajtra o] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v nedeľu o] LT\";case 1:case 2:return\"[v] dddd [o] LT\";case 3:return\"[v stredu o] LT\";case 4:return\"[vo štvrtok o] LT\";case 5:return\"[v piatok o] LT\";case 6:return\"[v sobotu o] LT\"}},lastDay:\"[včera o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulú nedeľu o] LT\";case 1:case 2:return\"[minulý] dddd [o] LT\";case 3:return\"[minulú stredu o] LT\";case 4:case 5:return\"[minulý] dddd [o] LT\";case 6:return\"[minulú sobotu o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pred %s\",s:Gd,m:Gd,mm:Gd,h:Gd,hh:Gd,d:Gd,dd:Gd,M:Gd,MM:Gd,y:Gd,yy:Gd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"sl\",{months:\"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.\".split(\"_\"),weekdays:\"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota\".split(\"_\"),weekdaysShort:\"ned._pon._tor._sre._čet._pet._sob.\".split(\"_\"),weekdaysMin:\"ne_po_to_sr_če_pe_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danes ob] LT\",nextDay:\"[jutri ob] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v] [nedeljo] [ob] LT\";case 3:return\"[v] [sredo] [ob] LT\";case 6:return\"[v] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[v] dddd [ob] LT\"}},lastDay:\"[včeraj ob] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[prejšnjo] [nedeljo] [ob] LT\";case 3:return\"[prejšnjo] [sredo] [ob] LT\";case 6:return\"[prejšnjo] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[prejšnji] dddd [ob] LT\"}},sameElse:\"L\"},relativeTime:{future:\"čez %s\",past:\"pred %s\",s:Hd,m:Hd,mm:Hd,h:Hd,hh:Hd,d:Hd,dd:Hd,M:Hd,MM:Hd,y:Hd,yy:Hd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),Kf.defineLocale(\"sq\",{months:\"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor\".split(\"_\"),monthsShort:\"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj\".split(\"_\"),weekdays:\"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë\".split(\"_\"),weekdaysShort:\"Die_Hën_Mar_Mër_Enj_Pre_Sht\".split(\"_\"),weekdaysMin:\"D_H_Ma_Më_E_P_Sh\".split(\"_\"),meridiemParse:/PD|MD/,isPM:function(a){return\"M\"===a.charAt(0)},meridiem:function(a,b,c){return 12>a?\"PD\":\"MD\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Sot në] LT\",nextDay:\"[Nesër në] LT\",nextWeek:\"dddd [në] LT\",lastDay:\"[Dje në] LT\",lastWeek:\"dddd [e kaluar në] LT\",sameElse:\"L\"},relativeTime:{future:\"në %s\",past:\"%s më parë\",s:\"disa sekonda\",m:\"një minutë\",mm:\"%d minuta\",h:\"një orë\",hh:\"%d orë\",d:\"një ditë\",dd:\"%d ditë\",M:\"një muaj\",MM:\"%d muaj\",y:\"një vit\",yy:\"%d vite\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),{words:{m:[\"један минут\",\"једне минуте\"],mm:[\"минут\",\"минуте\",\"минута\"],h:[\"један сат\",\"једног сата\"],hh:[\"сат\",\"сата\",\"сати\"],dd:[\"дан\",\"дана\",\"дана\"],MM:[\"месец\",\"месеца\",\"месеци\"],yy:[\"година\",\"године\",\"година\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=Hg.words[c];return 1===c.length?b?d[0]:d[1]:a+\" \"+Hg.correctGrammaticalCase(a,d)}}),Ig=(Kf.defineLocale(\"sr-cyrl\",{months:[\"јануар\",\"фебруар\",\"март\",\"април\",\"мај\",\"јун\",\"јул\",\"август\",\"септембар\",\"октобар\",\"новембар\",\"децембар\"],monthsShort:[\"јан.\",\"феб.\",\"мар.\",\"апр.\",\"мај\",\"јун\",\"јул\",\"авг.\",\"сеп.\",\"окт.\",\"нов.\",\"дец.\"],weekdays:[\"недеља\",\"понедељак\",\"уторак\",\"среда\",\"четвртак\",\"петак\",\"субота\"],weekdaysShort:[\"нед.\",\"пон.\",\"уто.\",\"сре.\",\"чет.\",\"пет.\",\"суб.\"],weekdaysMin:[\"не\",\"по\",\"ут\",\"ср\",\"че\",\"пе\",\"су\"],longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[данас у] LT\",nextDay:\"[сутра у] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[у] [недељу] [у] LT\";case 3:return\"[у] [среду] [у] LT\";case 6:return\"[у] [суботу] [у] LT\";case 1:case 2:case 4:case 5:return\"[у] dddd [у] LT\"}},lastDay:\"[јуче у] LT\",lastWeek:function(){var a=[\"[прошле] [недеље] [у] LT\",\"[прошлог] [понедељка] [у] LT\",\"[прошлог] [уторка] [у] LT\",\"[прошле] [среде] [у] LT\",\"[прошлог] [четвртка] [у] LT\",\"[прошлог] [петка] [у] LT\",\"[прошле] [суботе] [у] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"пре %s\",s:\"неколико секунди\",m:Hg.translate,mm:Hg.translate,h:Hg.translate,hh:Hg.translate,d:\"дан\",dd:Hg.translate,M:\"месец\",MM:Hg.translate,y:\"годину\",yy:Hg.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),{words:{m:[\"jedan minut\",\"jedne minute\"],mm:[\"minut\",\"minute\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mesec\",\"meseca\",\"meseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=Ig.words[c];return 1===c.length?b?d[0]:d[1]:a+\" \"+Ig.correctGrammaticalCase(a,d)}}),Jg=(Kf.defineLocale(\"sr\",{months:[\"januar\",\"februar\",\"mart\",\"april\",\"maj\",\"jun\",\"jul\",\"avgust\",\"septembar\",\"oktobar\",\"novembar\",\"decembar\"],monthsShort:[\"jan.\",\"feb.\",\"mar.\",\"apr.\",\"maj\",\"jun\",\"jul\",\"avg.\",\"sep.\",\"okt.\",\"nov.\",\"dec.\"],weekdays:[\"nedelja\",\"ponedeljak\",\"utorak\",\"sreda\",\"četvrtak\",\"petak\",\"subota\"],weekdaysShort:[\"ned.\",\"pon.\",\"uto.\",\"sre.\",\"čet.\",\"pet.\",\"sub.\"],weekdaysMin:[\"ne\",\"po\",\"ut\",\"sr\",\"če\",\"pe\",\"su\"],longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedelju] [u] LT\";case 3:return\"[u] [sredu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedelje] [u] LT\",\"[prošlog] [ponedeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pre %s\",s:\"nekoliko sekundi\",m:Ig.translate,mm:Ig.translate,h:Ig.translate,hh:Ig.translate,d:\"dan\",dd:Ig.translate,M:\"mesec\",MM:Ig.translate,y:\"godinu\",yy:Ig.translate\n},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),Kf.defineLocale(\"sv\",{months:\"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag\".split(\"_\"),weekdaysShort:\"sön_mån_tis_ons_tor_fre_lör\".split(\"_\"),weekdaysMin:\"sö_må_ti_on_to_fr_lö\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Idag] LT\",nextDay:\"[Imorgon] LT\",lastDay:\"[Igår] LT\",nextWeek:\"[På] dddd LT\",lastWeek:\"[I] dddd[s] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"för %s sedan\",s:\"några sekunder\",m:\"en minut\",mm:\"%d minuter\",h:\"en timme\",hh:\"%d timmar\",d:\"en dag\",dd:\"%d dagar\",M:\"en månad\",MM:\"%d månader\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"e\":1===b?\"a\":2===b?\"a\":\"e\";return a+c},week:{dow:1,doy:4}}),Kf.defineLocale(\"sw\",{months:\"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi\".split(\"_\"),weekdaysShort:\"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos\".split(\"_\"),weekdaysMin:\"J2_J3_J4_J5_Al_Ij_J1\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[leo saa] LT\",nextDay:\"[kesho saa] LT\",nextWeek:\"[wiki ijayo] dddd [saat] LT\",lastDay:\"[jana] LT\",lastWeek:\"[wiki iliyopita] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s baadaye\",past:\"tokea %s\",s:\"hivi punde\",m:\"dakika moja\",mm:\"dakika %d\",h:\"saa limoja\",hh:\"masaa %d\",d:\"siku moja\",dd:\"masiku %d\",M:\"mwezi mmoja\",MM:\"miezi %d\",y:\"mwaka mmoja\",yy:\"miaka %d\"},week:{dow:1,doy:7}}),{1:\"௧\",2:\"௨\",3:\"௩\",4:\"௪\",5:\"௫\",6:\"௬\",7:\"௭\",8:\"௮\",9:\"௯\",0:\"\"}),Kg={\"௧\":\"1\",\"௨\":\"2\",\"௩\":\"3\",\"௪\":\"4\",\"௫\":\"5\",\"௬\":\"6\",\"௭\":\"7\",\"௮\":\"8\",\"௯\":\"9\",\"\":\"0\"},Lg=(Kf.defineLocale(\"ta\",{months:\"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்\".split(\"_\"),monthsShort:\"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்\".split(\"_\"),weekdays:\"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை\".split(\"_\"),weekdaysShort:\"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி\".split(\"_\"),weekdaysMin:\"ஞா_தி_செ_பு_வி_வெ_ச\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, HH:mm\",LLLL:\"dddd, D MMMM YYYY, HH:mm\"},calendar:{sameDay:\"[இன்று] LT\",nextDay:\"[நாளை] LT\",nextWeek:\"dddd, LT\",lastDay:\"[நேற்று] LT\",lastWeek:\"[கடந்த வாரம்] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s இல்\",past:\"%s முன்\",s:\"ஒரு சில விநாடிகள்\",m:\"ஒரு நிமிடம்\",mm:\"%d நிமிடங்கள்\",h:\"ஒரு மணி நேரம்\",hh:\"%d மணி நேரம்\",d:\"ஒரு நாள்\",dd:\"%d நாட்கள்\",M:\"ஒரு மாதம்\",MM:\"%d மாதங்கள்\",y:\"ஒரு வருடம்\",yy:\"%d ஆண்டுகள்\"},ordinalParse:/\\d{1,2}வது/,ordinal:function(a){return a+\"வது\"},preparse:function(a){return a.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(a){return Kg[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Jg[a]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return 2>a?\" யாமம்\":6>a?\" வைகறை\":10>a?\" காலை\":14>a?\" நண்பகல்\":18>a?\" எற்பாடு\":22>a?\" மாலை\":\" யாமம்\"},meridiemHour:function(a,b){return 12===a&&(a=0),\"யாமம்\"===b?2>a?a:a+12:\"வைகறை\"===b||\"காலை\"===b?a:\"நண்பகல்\"===b&&a>=10?a:a+12},week:{dow:0,doy:6}}),Kf.defineLocale(\"te\",{months:\"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెబర్_అక్టోబర్_నవబర్_డిసెబర్\".split(\"_\"),monthsShort:\"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.\".split(\"_\"),weekdays:\"ఆదివార_సోమవార_మగళవార_బుధవార_గురువార_శుక్రవార_శనివార\".split(\"_\"),weekdaysShort:\"ఆది_సోమ_మగళ_బుధ_గురు_శుక్ర_శని\".split(\"_\"),weekdaysMin:\"ఆ_సో_మ_బు_గు_శు_శ\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[నేడు] LT\",nextDay:\"[రేపు] LT\",nextWeek:\"dddd, LT\",lastDay:\"[నిన్న] LT\",lastWeek:\"[గత] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s లో\",past:\"%s క్రితం\",s:\"కొన్ని క్షణాలు\",m:\"ఒక నిమిషం\",mm:\"%d నిమిషాలు\",h:\"ఒక గంట\",hh:\"%d గంటలు\",d:\"ఒక రోజు\",dd:\"%d రోజులు\",M:\"ఒక నెల\",MM:\"%d నెలలు\",y:\"ఒక సంవత్సరం\",yy:\"%d సంవత్సరాలు\"},ordinalParse:/\\d{1,2}వ/,ordinal:\"%dవ\",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(a,b){return 12===a&&(a=0),\"రాత్రి\"===b?4>a?a:a+12:\"ఉదయం\"===b?a:\"మధ్యాహ్నం\"===b?a>=10?a:a+12:\"సాయంత్రం\"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?\"రాత్రి\":10>a?\"ఉదయం\":17>a?\"మధ్యాహ్నం\":20>a?\"సాయంత్రం\":\"రాత్రి\"},week:{dow:0,doy:6}}),Kf.defineLocale(\"th\",{months:\"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม\".split(\"_\"),monthsShort:\"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา\".split(\"_\"),weekdays:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์\".split(\"_\"),weekdaysShort:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์\".split(\"_\"),weekdaysMin:\"อา._จ._อ._พ._พฤ._ศ._ส.\".split(\"_\"),longDateFormat:{LT:\"H นาฬิกา m นาที\",LTS:\"H นาฬิกา m นาที s วินาที\",L:\"YYYY/MM/DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY เวลา H นาฬิกา m นาที\",LLLL:\"วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที\"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return\"หลังเที่ยง\"===a},meridiem:function(a,b,c){return 12>a?\"ก่อนเที่ยง\":\"หลังเที่ยง\"},calendar:{sameDay:\"[วันนี้ เวลา] LT\",nextDay:\"[พรุ่งนี้ เวลา] LT\",nextWeek:\"dddd[หน้า เวลา] LT\",lastDay:\"[เมื่อวานนี้ เวลา] LT\",lastWeek:\"[วัน]dddd[ที่แล้ว เวลา] LT\",sameElse:\"L\"},relativeTime:{future:\"อีก %s\",past:\"%sที่แล้ว\",s:\"ไม่กี่วินาที\",m:\"1 นาที\",mm:\"%d นาที\",h:\"1 ชั่วโมง\",hh:\"%d ชั่วโมง\",d:\"1 วัน\",dd:\"%d วัน\",M:\"1 เดือน\",MM:\"%d เดือน\",y:\"1 ปี\",yy:\"%d ปี\"}}),Kf.defineLocale(\"tl-ph\",{months:\"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre\".split(\"_\"),monthsShort:\"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis\".split(\"_\"),weekdays:\"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado\".split(\"_\"),weekdaysShort:\"Lin_Lun_Mar_Miy_Huw_Biy_Sab\".split(\"_\"),weekdaysMin:\"Li_Lu_Ma_Mi_Hu_Bi_Sab\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"MM/D/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY HH:mm\",LLLL:\"dddd, MMMM DD, YYYY HH:mm\"},calendar:{sameDay:\"[Ngayon sa] LT\",nextDay:\"[Bukas sa] LT\",nextWeek:\"dddd [sa] LT\",lastDay:\"[Kahapon sa] LT\",lastWeek:\"dddd [huling linggo] LT\",sameElse:\"L\"},relativeTime:{future:\"sa loob ng %s\",past:\"%s ang nakalipas\",s:\"ilang segundo\",m:\"isang minuto\",mm:\"%d minuto\",h:\"isang oras\",hh:\"%d oras\",d:\"isang araw\",dd:\"%d araw\",M:\"isang buwan\",MM:\"%d buwan\",y:\"isang taon\",yy:\"%d taon\"},ordinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),\"pagh_wa_cha_wej_loS_vagh_jav_Soch_chorgh_Hut\".split(\"_\")),Mg=(Kf.defineLocale(\"tlh\",{months:\"tera jar wa_tera jar cha_tera jar wej_tera jar loS_tera jar vagh_tera jar jav_tera jar Soch_tera jar chorgh_tera jar Hut_tera jar wamaH_tera jar wamaH wa_tera jar wamaH cha\".split(\"_\"),monthsShort:\"jar wa_jar cha_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wamaH_jar wamaH wa_jar wamaH cha\".split(\"_\"),weekdays:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),weekdaysShort:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),weekdaysMin:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[DaHjaj] LT\",nextDay:\"[waleS] LT\",nextWeek:\"LLL\",lastDay:\"[waHu] LT\",lastWeek:\"LLL\",sameElse:\"L\"},relativeTime:{future:Id,past:Jd,s:\"puS lup\",m:\"wa tup\",mm:Kd,h:\"wa rep\",hh:Kd,d:\"wa jaj\",dd:Kd,M:\"wa jar\",MM:Kd,y:\"wa DIS\",yy:Kd},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),{1:\"'inci\",5:\"'inci\",8:\"'inci\",70:\"'inci\",80:\"'inci\",2:\"'nci\",7:\"'nci\",20:\"'nci\",50:\"'nci\",3:\"'üncü\",4:\"'üncü\",100:\"'üncü\",6:\"'ncı\",9:\"'uncu\",10:\"'uncu\",30:\"'uncu\",60:\"'ıncı\",90:\"'ıncı\"}),Ng=(Kf.defineLocale(\"tr\",{months:\"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık\".split(\"_\"),monthsShort:\"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara\".split(\"_\"),weekdays:\"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi\".split(\"_\"),weekdaysShort:\"Paz_Pts_Sal_Çar_Per_Cum_Cts\".split(\"_\"),weekdaysMin:\"Pz_Pt_Sa_Ça_Pe_Cu_Ct\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[yarın saat] LT\",nextWeek:\"[haftaya] dddd [saat] LT\",lastDay:\"[dün] LT\",lastWeek:\"[geçen hafta] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s önce\",s:\"birkaç saniye\",m:\"bir dakika\",mm:\"%d dakika\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir yıl\",yy:\"%d yıl\"},ordinalParse:/\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+\"'ıncı\";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(Mg[b]||Mg[c]||Mg[d])},week:{dow:1,doy:7}}),Kf.defineLocale(\"tzl\",{months:\"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec\".split(\"_\"),weekdays:\"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi\".split(\"_\"),weekdaysShort:\"Súl_Lún_Mai_Már_Xhú_Vié_Sát\".split(\"_\"),weekdaysMin:\"Sú_Lú_Ma_Má_Xh_Vi_Sá\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM [dallas] YYYY\",LLL:\"D. MMMM [dallas] YYYY HH.mm\",LLLL:\"dddd, [li] D. MMMM [dallas] YYYY HH.mm\"},meridiem:function(a,b,c){return a>11?c?\"d'o\":\"D'O\":c?\"d'a\":\"D'A\"},calendar:{sameDay:\"[oxhi à] LT\",nextDay:\"[demà à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[ieiri à] LT\",lastWeek:\"[sür el] dddd [lasteu à] LT\",sameElse:\"L\"},relativeTime:{future:\"osprei %s\",past:\"ja%s\",s:Md,m:Md,mm:Md,h:Md,hh:Md,d:Md,dd:Md,M:Md,MM:Md,y:Md,yy:Md},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),Kf.defineLocale(\"tzm-latn\",{months:\"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir\".split(\"_\"),monthsShort:\"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir\".split(\"_\"),weekdays:\"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas\".split(\"_\"),weekdaysShort:\"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas\".split(\"_\"),weekdaysMin:\"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[asdkh g] LT\",nextDay:\"[aska g] LT\",nextWeek:\"dddd [g] LT\",lastDay:\"[assant g] LT\",lastWeek:\"dddd [g] LT\",sameElse:\"L\"},relativeTime:{future:\"dadkh s yan %s\",past:\"yan %s\",s:\"imik\",m:\"minuḍ\",mm:\"%d minuḍ\",h:\"saɛa\",hh:\"%d tassaɛin\",d:\"ass\",dd:\"%d ossan\",M:\"ayowr\",MM:\"%d iyyirn\",y:\"asgas\",yy:\"%d isgasn\"},week:{dow:6,doy:12}}),Kf.defineLocale(\"tzm\",{months:\"ⵉⴰⵢ_ⴱⴰⵢ_ⵎⴰⵚ_ⵉⴱ_ⵎⴰⵢⵢⵓ_ⵢⵓⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⴱⵉ_ⴽⵟⵓⴱ_ⵓⵡⴰⴱⵉ_ⴷⵓⵊⴱⵉ\".split(\"_\"),monthsShort:\"ⵉⴰⵢ_ⴱⴰⵢ_ⵎⴰⵚ_ⵉⴱ_ⵎⴰⵢⵢⵓ_ⵢⵓⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⴱⵉ_ⴽⵟⵓⴱ_ⵓⵡⴰⴱⵉ_ⴷⵓⵊⴱⵉ\".split(\"_\"),weekdays:\"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⴰⵙ_ⴰⵙⵉⴰⵙ_ⴰⴽⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⵢⴰⵙ\".split(\"_\"),weekdaysShort:\"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⴰⵙ_ⴰⵙⵉⴰⵙ_ⴰⴽⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⵢⴰⵙ\".split(\"_\"),weekdaysMin:\"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⴰⵙ_ⴰⵙⵉⴰⵙ_ⴰⴽⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⵢⴰⵙ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[ⴰⵙⴷⵅ ⴴ] LT\",nextDay:\"[ⴰⵙⴽⴰ ⴴ] LT\",nextWeek:\"dddd [ⴴ] LT\",lastDay:\"[ⴰⵚⴰⵏⵜ ⴴ] LT\",lastWeek:\"dddd [ⴴ] LT\",sameElse:\"L\"},relativeTime:{future:\"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s\",past:\"ⵢⴰⵏ %s\",s:\"ⵉⵎⵉⴽ\",m:\"ⵎⵉⵏⵓⴺ\",mm:\"%d ⵎⵉⵏⵓⴺ\",h:\"ⵙⴰⵄⴰ\",hh:\"%d ⵜⴰⵙⵙⴰⵄⵉⵏ\",d:\"ⴰⵙⵙ\",dd:\"%d oⵙⵙⴰ\",M:\"ⴰⵢoⵓ\",MM:\"%d ⵉⵢⵢⵉⵔⵏ\",y:\"ⴰⵙⴳⴰⵙ\",yy:\"%d ⵉⵙⴳⴰⵙⵏ\"},week:{dow:6,doy:12}}),Kf.defineLocale(\"uk\",{months:{format:\"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня\".split(\"_\"),standalone:\"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень\".split(\"_\")},monthsShort:\"січ_лют_бер_квіт_трав_черв_лип_серп_веровт_лист_груд\".split(\"_\"),weekdays:Pd,weekdaysShort:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY р.\",LLL:\"D MMMM YYYY р., HH:mm\",LLLL:\"dddd, D MMMM YYYY р., HH:mm\"},calendar:{sameDay:Qd(\"[Сьогодні \"),nextDay:Qd(\"[Завтра \"),lastDay:Qd(\"[Вчора \"),nextWeek:Qd(\"[У] dddd [\"),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return Qd(\"[Минулої] dddd [\").call(this);case 1:case 2:case 4:return Qd(\"[Минулого] dddd [\").call(this)}},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"%s тому\",s:\"декілька секунд\",m:Od,mm:Od,h:\"годину\",hh:Od,d:\"день\",dd:Od,M:\"місяць\",MM:Od,y:\"рік\",yy:Od},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночі\":12>a?\"ранку\":17>a?\"дня\":\"вечора\"},ordinalParse:/\\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a+\"-й\";case\"D\":return a+\"-го\";default:return a}},week:{dow:1,doy:7}}),Kf.defineLocale(\"uz\",{months:\"январеврал_март_апрел_май_июн_июл_август_сентябр_октяброябрекабр\".split(\"_\"),monthsShort:\"янв_фев_мар_апрай_июн_июл_авг_сен_окт_ноя_дек\".split(\"_\"),weekdays:\"Якшанбаушанба_Сешанбаоршанбаайшанбаумаанба\".split(\"_\"),weekdaysShort:\"Якш_Душ_Сеш_Чорай_Жум_Шан\".split(\"_\"),weekdaysMin:\"Як_Ду_Сеоауа\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"D MMMM YYYY, dddd HH:mm\"},calendar:{sameDay:\"[Бугун соат] LT [да]\",nextDay:\"[Эртага] LT [да]\",nextWeek:\"dddd [куни соат] LT [да]\",lastDay:\"[Кеча соат] LT [да]\",lastWeek:\"[Утган] dddd [куни соат] LT [да]\",sameElse:\"L\"},relativeTime:{future:\"Якин %s ичида\",past:\"Бир неча %s олдин\",s:\"фурсат\",m:\"бир дакика\",mm:\"%d дакика\",h:\"бир соат\",hh:\"%d соат\",d:\"бир кун\",dd:\"%d кун\",M:\"бир ой\",MM:\"%d ой\",y:\"бир йил\",yy:\"%d йил\"},week:{dow:1,doy:7}}),Kf.defineLocale(\"vi\",{months:\"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12\".split(\"_\"),monthsShort:\"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12\".split(\"_\"),weekdays:\"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy\".split(\"_\"),weekdaysShort:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysMin:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM [năm] YYYY\",LLL:\"D MMMM [năm] YYYY HH:mm\",LLLL:\"dddd, D MMMM [năm] YYYY HH:mm\",l:\"DD/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd, D MMM YYYY HH:mm\"},calendar:{sameDay:\"[Hôm nay lúc] LT\",nextDay:\"[Ngày mai lúc] LT\",nextWeek:\"dddd [tuần tới lúc] LT\",lastDay:\"[Hôm qua lúc] LT\",lastWeek:\"dddd [tuần rồi lúc] LT\",sameElse:\"L\"},relativeTime:{future:\"%s tới\",past:\"%s trước\",s:\"vài giây\",m:\"một phút\",mm:\"%d phút\",h:\"một giờ\",hh:\"%d giờ\",d:\"một ngày\",dd:\"%d ngày\",M:\"một tháng\",MM:\"%d tháng\",y:\"một năm\",yy:\"%d năm\"},ordinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),Kf.defineLocale(\"zh-cn\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah点mm分\",LTS:\"Ah点m分s秒\",L:\"YYYY-MM-DD\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日Ah点mm分\",LLLL:\"YYYY年MMMD日ddddAh点mm分\",l:\"YYYY-MM-DD\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日Ah点mm分\",llll:\"YYYY年MMMD日ddddAh点mm分\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"下午\"===b||\"晚上\"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?\"凌晨\":900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:function(){return 0===this.minutes()?\"[今天]Ah[点整]\":\"[今天]LT\"},nextDay:function(){return 0===this.minutes()?\"[明天]Ah[点整]\":\"[明天]LT\"},lastDay:function(){return 0===this.minutes()?\"[昨天]Ah[点整]\":\"[昨天]LT\"},nextWeek:function(){var a,b;return a=Kf().startOf(\"week\"),b=this.unix()-a.unix()>=604800?\"[下]\":\"[本]\",0===this.minutes()?b+\"dddAh点整\":b+\"dddAh点mm\"},lastWeek:function(){var a,b;return a=Kf().startOf(\"week\"),b=this.unix()<a.unix()?\"[上]\":\"[本]\",0===this.minutes()?b+\"dddAh点整\":b+\"dddAh点mm\"},sameElse:\"LL\"},ordinalParse:/\\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"周\";default:return a}},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},week:{dow:1,doy:4}}),Kf.defineLocale(\"zh-tw\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"週日_週一_週二_週三_週四_週五_週六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah點mm分\",LTS:\"Ah點m分s秒\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日Ah點mm分\",LLLL:\"YYYY年MMMD日ddddAh點mm分\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日Ah點mm分\",llll:\"YYYY年MMMD日ddddAh點mm分\"},meridiemParse:/早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"早上\"===b||\"上午\"===b?a:\"中午\"===b?a>=11?a:a+12:\"下午\"===b||\"晚上\"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},ordinalParse:/\\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"週\";default:return a}},relativeTime:{future:\"%s內\",past:\"%s前\",s:\"幾秒\",m:\"一分鐘\",mm:\"%d分鐘\",h:\"一小時\",hh:\"%d小時\",d:\"一天\",dd:\"%d天\",M:\"一個月\",MM:\"%d個月\",y:\"一年\",yy:\"%d年\"}}),Kf);return Ng.locale(\"en\"),Ng});\n","//! moment-timezone.js\n//! version : 0.5.0\n//! author : Tim Wood\n//! license : MIT\n//! github.com/moment/moment-timezone\n!function(a,b){\"use strict\";\"function\"==typeof define&&define.amd?define('lib/moment-timezone.min',[\"moment\"],b):\"object\"==typeof module&&module.exports?module.exports=b(require(\"moment\")):b(a.moment)}(this,function(a){\"use strict\";function b(a){return a>96?a-87:a>64?a-29:a-48}function c(a){var c,d=0,e=a.split(\".\"),f=e[0],g=e[1]||\"\",h=1,i=0,j=1;for(45===a.charCodeAt(0)&&(d=1,j=-1),d;d<f.length;d++)c=b(f.charCodeAt(d)),i=60*i+c;for(d=0;d<g.length;d++)h/=60,c=b(g.charCodeAt(d)),i+=c*h;return i*j}function d(a){for(var b=0;b<a.length;b++)a[b]=c(a[b])}function e(a,b){for(var c=0;b>c;c++)a[c]=Math.round((a[c-1]||0)+6e4*a[c]);a[b-1]=1/0}function f(a,b){var c,d=[];for(c=0;c<b.length;c++)d[c]=a[b[c]];return d}function g(a){var b=a.split(\"|\"),c=b[2].split(\" \"),g=b[3].split(\"\"),h=b[4].split(\" \");return d(c),d(g),d(h),e(h,g.length),{name:b[0],abbrs:f(b[1].split(\" \"),g),offsets:f(c,g),untils:h,population:0|b[5]}}function h(a){a&&this._set(g(a))}function i(a){var b=a.toTimeString(),c=b.match(/\\(.+\\)/);c=c&&c[0]?c[0].match(/[A-Z]/g).join(\"\"):b.match(/[A-Z]{3,5}/g)[0],\"GMT\"===c&&(c=void 0),this.at=+a,this.abbr=c,this.offset=a.getTimezoneOffset()}function j(a){this.zone=a,this.offsetScore=0,this.abbrScore=0}function k(a,b){for(var c,d;d=6e4*((b.at-a.at)/12e4|0);)c=new i(new Date(a.at+d)),c.offset===a.offset?a=c:b=c;return a}function l(){var a,b,c,d=(new Date).getFullYear()-2,e=new i(new Date(d,0,1)),f=[e];for(c=1;48>c;c++)b=new i(new Date(d,c,1)),b.offset!==e.offset&&(a=k(e,b),f.push(a),f.push(new i(new Date(a.at+6e4)))),e=b;for(c=0;4>c;c++)f.push(new i(new Date(d+c,0,1))),f.push(new i(new Date(d+c,6,1)));return f}function m(a,b){return a.offsetScore!==b.offsetScore?a.offsetScore-b.offsetScore:a.abbrScore!==b.abbrScore?a.abbrScore-b.abbrScore:b.zone.population-a.zone.population}function n(a,b){var c,e;for(d(b),c=0;c<b.length;c++)e=b[c],I[e]=I[e]||{},I[e][a]=!0}function o(a){var b,c,d,e=a.length,f={},g=[];for(b=0;e>b;b++){d=I[a[b].offset]||{};for(c in d)d.hasOwnProperty(c)&&(f[c]=!0)}for(b in f)f.hasOwnProperty(b)&&g.push(H[b]);return g}function p(){var a,b,c,d=l(),e=d.length,f=o(d),g=[];for(b=0;b<f.length;b++){for(a=new j(t(f[b]),e),c=0;e>c;c++)a.scoreOffsetAt(d[c]);g.push(a)}return g.sort(m),g.length>0?g[0].zone.name:void 0}function q(a){return(!D||a)&&(D=p()),D}function r(a){return(a||\"\").toLowerCase().replace(/\\//g,\"_\")}function s(a){var b,c,d,e;for(\"string\"==typeof a&&(a=[a]),b=0;b<a.length;b++)d=a[b].split(\"|\"),c=d[0],e=r(c),F[e]=a[b],H[e]=c,d[5]&&n(e,d[2].split(\" \"))}function t(a,b){a=r(a);var c,d=F[a];return d instanceof h?d:\"string\"==typeof d?(d=new h(d),F[a]=d,d):G[a]&&b!==t&&(c=t(G[a],t))?(d=F[a]=new h,d._set(c),d.name=H[a],d):null}function u(){var a,b=[];for(a in H)H.hasOwnProperty(a)&&(F[a]||F[G[a]])&&H[a]&&b.push(H[a]);return b.sort()}function v(a){var b,c,d,e;for(\"string\"==typeof a&&(a=[a]),b=0;b<a.length;b++)c=a[b].split(\"|\"),d=r(c[0]),e=r(c[1]),G[d]=e,H[d]=c[0],G[e]=d,H[e]=c[1]}function w(a){s(a.zones),v(a.links),A.dataVersion=a.version}function x(a){return x.didShowError||(x.didShowError=!0,z(\"moment.tz.zoneExists('\"+a+\"') has been deprecated in favor of !moment.tz.zone('\"+a+\"')\")),!!t(a)}function y(a){return!(!a._a||void 0!==a._tzm)}function z(a){\"undefined\"!=typeof console&&\"function\"==typeof console.error&&console.error(a)}function A(b){var c=Array.prototype.slice.call(arguments,0,-1),d=arguments[arguments.length-1],e=t(d),f=a.utc.apply(null,c);return e&&!a.isMoment(b)&&y(f)&&f.add(e.parse(f),\"minutes\"),f.tz(d),f}function B(a){return function(){return this._z?this._z.abbr(this):a.call(this)}}function C(a){return function(){return this._z=null,a.apply(this,arguments)}}if(void 0!==a.tz)return z(\"Moment Timezone \"+a.tz.version+\" was already loaded \"+(a.tz.dataVersion?\"with data from \":\"without any data\")+a.tz.dataVersion),a;var D,E=\"0.5.0\",F={},G={},H={},I={},J=a.version.split(\".\"),K=+J[0],L=+J[1];(2>K||2===K&&6>L)&&z(\"Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js \"+a.version+\". See momentjs.com\"),h.prototype={_set:function(a){this.name=a.name,this.abbrs=a.abbrs,this.untils=a.untils,this.offsets=a.offsets,this.population=a.population},_index:function(a){var b,c=+a,d=this.untils;for(b=0;b<d.length;b++)if(c<d[b])return b},parse:function(a){var b,c,d,e,f=+a,g=this.offsets,h=this.untils,i=h.length-1;for(e=0;i>e;e++)if(b=g[e],c=g[e+1],d=g[e?e-1:e],c>b&&A.moveAmbiguousForward?b=c:b>d&&A.moveInvalidForward&&(b=d),f<h[e]-6e4*b)return g[e];return g[i]},abbr:function(a){return this.abbrs[this._index(a)]},offset:function(a){return this.offsets[this._index(a)]}},j.prototype.scoreOffsetAt=function(a){this.offsetScore+=Math.abs(this.zone.offset(a.at)-a.offset),this.zone.abbr(a.at).match(/[A-Z]/g).join(\"\")!==a.abbr&&this.abbrScore++},A.version=E,A.dataVersion=\"\",A._zones=F,A._links=G,A._names=H,A.add=s,A.link=v,A.load=w,A.zone=t,A.zoneExists=x,A.guess=q,A.names=u,A.Zone=h,A.unpack=g,A.unpackBase60=c,A.needsOffset=y,A.moveInvalidForward=!0,A.moveAmbiguousForward=!1;var M=a.fn;a.tz=A,a.defaultZone=null,a.updateOffset=function(b,c){var d,e=a.defaultZone;void 0===b._z&&(e&&y(b)&&!b._isUTC&&(b._d=a.utc(b._a)._d,b.utc().add(e.parse(b),\"minutes\")),b._z=e),b._z&&(d=b._z.offset(b),Math.abs(d)<16&&(d/=60),void 0!==b.utcOffset?b.utcOffset(-d,c):b.zone(d,c))},M.tz=function(b){return b?(this._z=t(b),this._z?a.updateOffset(this):z(\"Moment Timezone has no data for \"+b+\". See http://momentjs.com/timezone/docs/#/data-loading/.\"),this):this._z?this._z.name:void 0},M.zoneName=B(M.zoneName),M.zoneAbbr=B(M.zoneAbbr),M.utc=C(M.utc),a.tz.setDefault=function(b){return(2>K||2===K&&9>L)&&z(\"Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js \"+a.version+\".\"),a.defaultZone=b?t(b):null,a};var N=a.momentProperties;return\"[object Array]\"===Object.prototype.toString.call(N)?(N.push(\"_z\"),N.push(\"_a\")):N&&(N._z=null),w({version:\"2015g\",zones:[\"Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5\",\"Africa/Accra|LMT GMT GHST|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE|41e5\",\"Africa/Nairobi|LMT EAT BEAT BEAUT|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ|47e5\",\"Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5\",\"Africa/Lagos|LMT WAT|-d.A -10|01|-22y0d.A|17e6\",\"Africa/Bissau|LMT WAT GMT|12.k 10 0|012|-2ldWV.E 2xonV.E|39e4\",\"Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5\",\"Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6\",\"Africa/Casablanca|LMT WET WEST CET|u.k 0 -10 -10|0121212121212121213121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0|32e5\",\"Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18o0 3I00 17c0 1fA0 1a00 1io0 1a00 1y7p0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3\",\"Africa/El_Aaiun|LMT WAT WET WEST|Q.M 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0|20e4\",\"Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5\",\"Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|01212121212121212121212121212121213|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0|51e5\",\"Africa/Monrovia|MMT LRT GMT|H.8 I.u 0|012|-23Lzg.Q 29s01.m|11e5\",\"Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5\",\"Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5\",\"Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5\",\"Africa/Windhoek|SWAT SAST SAST CAT WAT WAST|-1u -20 -30 -20 -10 -20|012134545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2GJdu 1Ajdu 1cL0 1SqL0 9NA0 11D0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0|32e4\",\"America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326\",\"America/Anchorage|CAT CAWT CAPT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4\",\"America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3\",\"America/Araguaina|LMT BRT BRST|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4\",\"America/Argentina/Buenos_Aires|CMT ART ARST ART ARST|4g.M 40 30 30 20|0121212121212121212121212121212121212121213434343434343234343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 g0p0 10M0 j3c0 uL0 1qN0 WL0\",\"America/Argentina/Catamarca|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|0121212121212121212121212121212121212121213434343454343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 g0p0 10M0 ako0 7B0 8zb0 uL0\",\"America/Argentina/Cordoba|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|0121212121212121212121212121212121212121213434343454343234343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 g0p0 10M0 j3c0 uL0 1qN0 WL0\",\"America/Argentina/Jujuy|CMT ART ARST ART ARST WART WARST|4g.M 40 30 30 20 40 30|01212121212121212121212121212121212121212134343456543432343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 g0p0 10M0 j3c0 uL0\",\"America/Argentina/La_Rioja|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|01212121212121212121212121212121212121212134343434534343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 g0p0 10M0 ako0 7B0 8zb0 uL0\",\"America/Argentina/Mendoza|CMT ART ARST ART ARST WART WARST|4g.M 40 30 30 20 40 30|0121212121212121212121212121212121212121213434345656543235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 g0p0 10M0 agM0 Op0 7TX0 uL0\",\"America/Argentina/Rio_Gallegos|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|0121212121212121212121212121212121212121213434343434343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 g0p0 10M0 ako0 7B0 8zb0 uL0\",\"America/Argentina/Salta|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|01212121212121212121212121212121212121212134343434543432343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 g0p0 10M0 j3c0 uL0\",\"America/Argentina/San_Juan|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|01212121212121212121212121212121212121212134343434534343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 g0p0 10M0 ak00 m10 8lb0 uL0\",\"America/Argentina/San_Luis|CMT ART ARST ART ARST WART WARST|4g.M 40 30 30 20 40 30|01212121212121212121212121212121212121212134343456536353465653|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 kin0 10M0 ak00 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0\",\"America/Argentina/Tucuman|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|012121212121212121212121212121212121212121343434345434323534343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 g0p0 10M0 ako0 4N0 8BX0 uL0 1qN0 WL0\",\"America/Argentina/Ushuaia|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|0121212121212121212121212121212121212121213434343434343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 g0p0 10M0 ajA0 8p0 8zb0 uL0\",\"America/Curacao|LMT ANT AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4\",\"America/Asuncion|AMT PYT PYT PYST|3O.E 40 30 30|012131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5\",\"America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2\",\"America/Bahia|LMT BRT BRST|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5\",\"America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3\",\"America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4\",\"America/Belem|LMT BRT BRST|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5\",\"America/Belize|LMT CST CHDT CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0|57e3\",\"America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2\",\"America/Boa_Vista|LMT AMT AMST|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2\",\"America/Bogota|BMT COT COST|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5\",\"America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4\",\"America/Cambridge_Bay|zzz MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2\",\"America/Campo_Grande|LMT AMT AMST|3C.s 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0|77e4\",\"America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4\",\"America/Caracas|CMT VET VET|4r.E 4u 40|0121|-2kV7w.k 28KM2.k 1IwOu|29e5\",\"America/Cayenne|LMT GFT GFT|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3\",\"America/Cayman|KMT EST EDT|57.b 50 40|0121212121212121212121212121212121212121212121|-2l1uQ.N 4duNQ.N 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|58e3\",\"America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5\",\"America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4\",\"America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5\",\"America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2\",\"America/Cuiaba|LMT AMT AMST|3I.k 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0|54e4\",\"America/Danmarkshavn|LMT WGT WGST GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8\",\"America/Dawson|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|13e2\",\"America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3\",\"America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5\",\"America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|01234252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 Jy10 SL0 dnB0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5\",\"America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|01212121212121341212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 LFB0 1cL0 3Cp0 1cL0 66N0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5\",\"America/Eirunepe|LMT ACT ACST AMT|4D.s 50 40 40|0121212121212121212121212121212131|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3\",\"America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5\",\"America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOP0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5\",\"America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2\",\"America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Fortaleza|LMT BRT BRST|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5\",\"America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"America/Godthab|LMT WGT WGST|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3\",\"America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2\",\"America/Grand_Turk|KMT EST EDT AST|57.b 50 40 40|0121212121212121212121212121212121212121212121212121212121212121212121212123|-2l1uQ.N 2HHBQ.N 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2\",\"America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5\",\"America/Guayaquil|QMT ECT|5e 50|01|-1yVSK|27e5\",\"America/Guyana|LMT GBGT GYT GYT GYT|3Q.E 3J 3J 30 40|01234|-2dvU7.k 24JzQ.k mlc0 Bxbf|80e4\",\"America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4\",\"America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5\",\"America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4\",\"America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Inuvik|zzz PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2\",\"America/Iqaluit|zzz EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2\",\"America/Jamaica|KMT EST EDT|57.b 50 40|0121212121212121212121|-2l1uQ.N 2uM1Q.N 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4\",\"America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3\",\"America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 Bb0 10N0 2bB0 8in0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/La_Paz|CMT BOST BOT|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5\",\"America/Lima|LMT PET PEST|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6\",\"America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp0 1Vb0 3dB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6\",\"America/Maceio|LMT BRT BRST|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4\",\"America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5\",\"America/Manaus|LMT AMT AMST|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5\",\"America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4\",\"America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4\",\"America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4\",\"America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2\",\"America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5\",\"America/Metlakatla|PST PWT PPT PDT|80 70 70 70|0120303030303030303030303030303030|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|14e2\",\"America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6\",\"America/Miquelon|LMT AST PMST PMDT|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2\",\"America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3\",\"America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5\",\"America/Montevideo|MMT UYT UYHST UYST UYT UYHST|3I.I 3u 30 20 30 2u|012121212121212121212121213434343434345454543453434343434343434343434343434343434343434|-20UIf.g 8jzJ.g 1cLu 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1qMu WLu 1qMu 11zu 1o0u 11zu NAu 11bu 2iMu zWu Dq10 19X0 pd0 jz0 cm10 19X0 1fB0 1on0 11d0 1oL0 1nB0 1fzu 1aou 1fzu 1aou 1fzu 3nAu Jb0 3MN0 1SLu 4jzu 2PB0 Lb0 3Dd0 1pb0 ixd0 An0 1MN0 An0 1wp0 On0 1wp0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5\",\"America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5\",\"America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4\",\"America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6\",\"America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2\",\"America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2\",\"America/Noronha|LMT FNT FNST|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2\",\"America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3\",\"America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5\",\"America/Pangnirtung|zzz AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Paramaribo|LMT PMT PMT NEGT SRT SRT|3E.E 3E.Q 3E.A 3u 3u 30|012345|-2nDUj.k Wqo0.c qanX.I 1dmLN.o lzc0|24e4\",\"America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5\",\"America/Port-au-Prince|PPMT EST EDT|4N 50 40|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Rio_Branco|LMT ACT ACST AMT|4v.c 50 40 40|01212121212121212121212121212131|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4\",\"America/Porto_Velho|LMT AMT AMST|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4\",\"America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5\",\"America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842\",\"America/Rankin_Inlet|zzz CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2\",\"America/Recife|LMT BRT BRST|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5\",\"America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4\",\"America/Resolute|zzz CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229\",\"America/Santa_Isabel|LMT MST PST PDT PWT PPT|7D.s 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOP0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|23e3\",\"America/Santarem|LMT AMT AMST BRT|3C.M 40 30 30|0121212121212121212121212121213|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4\",\"America/Santiago|SMT CLT CLT CLST CLST CLT|4G.K 50 40 40 30 30|01020313131313121242124242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424245|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 1wn0|62e5\",\"America/Santo_Domingo|SDMT EST EDT EHDT AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5\",\"America/Sao_Paulo|LMT BRT BRST|36.s 30 20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0|20e6\",\"America/Scoresbysund|LMT CGT CGST EGST EGT|1r.Q 20 10 0 10|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452\",\"America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2\",\"America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3\",\"America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5\",\"America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656\",\"America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Whitehorse|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3\",\"America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4\",\"America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642\",\"America/Yellowknife|zzz MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"Antarctica/Casey|zzz AWST CAST|0 -80 -b0|012121|-2q00 1DjS0 T90 40P0 KL0|10\",\"Antarctica/Davis|zzz DAVT DAVT|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70\",\"Antarctica/DumontDUrville|zzz PMT DDUT|0 -a0 -a0|0102|-U0o0 cfq0 bFm0|80\",\"Antarctica/Macquarie|AEST AEDT zzz MIST|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0|1\",\"Antarctica/Mawson|zzz MAWT MAWT|0 -60 -50|012|-CEo0 2fyk0|60\",\"Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5\",\"Antarctica/Palmer|zzz ARST ART ART ARST CLT CLST CLT|0 30 40 30 20 40 30 30|012121212123435656565656565656565656565656565656565656565656565656565656565656567|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 1wn0|40\",\"Antarctica/Rothera|zzz ROTT|0 30|01|gOo0|130\",\"Antarctica/Syowa|zzz SYOT|0 -30|01|-vs00|20\",\"Antarctica/Troll|zzz UTC CEST|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40\",\"Antarctica/Vostok|zzz VOST|0 -60|01|-tjA0|25\",\"Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4\",\"Asia/Riyadh|LMT AST|-36.Q -30|01|-TvD6.Q|57e5\",\"Asia/Almaty|LMT ALMT ALMT ALMST|-57.M -50 -60 -70|0123232323232323232323232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3Cl0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5\",\"Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5\",\"Asia/Anadyr|LMT ANAT ANAT ANAST ANAST ANAST ANAT|-bN.U -c0 -d0 -e0 -d0 -c0 -b0|01232414141414141414141561414141414141414141414141414141414141561|-1PcbN.U eUnN.U 23CL0 1db0 1cN0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qN0 WM0|13e3\",\"Asia/Aqtau|LMT FORT FORT SHET SHET SHEST AQTT AQTST AQTST AQTT|-3l.4 -40 -50 -50 -60 -60 -50 -60 -50 -40|012345353535353535353536767676898989898989898989896|-1Pc3l.4 eUnl.4 1jcL0 JDc0 1cL0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2UK0 Fz0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cN0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 RW0|15e4\",\"Asia/Aqtobe|LMT AKTT AKTT AKTST AKTT AQTT AQTST|-3M.E -40 -50 -60 -60 -50 -60|01234323232323232323232565656565656565656565656565|-1Pc3M.E eUnM.E 23CL0 1db0 1cM0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2UK0 Fz0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4\",\"Asia/Ashgabat|LMT ASHT ASHT ASHST ASHST TMT TMT|-3R.w -40 -50 -60 -50 -40 -50|012323232323232323232324156|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 ba0 xC0|41e4\",\"Asia/Baghdad|BMT AST ADT|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5\",\"Asia/Qatar|LMT GST AST|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4\",\"Asia/Baku|LMT BAKT BAKT BAKST BAKST AZST AZT AZT AZST|-3j.o -30 -40 -50 -40 -40 -30 -40 -50|0123232323232323232323245657878787878787878787878787878787878787878787878787878787878787878787878787878787878787|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 10K0 c30 1cJ0 1cL0 8wu0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5\",\"Asia/Bangkok|BMT ICT|-6G.4 -70|01|-218SG.4|15e6\",\"Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5\",\"Asia/Bishkek|LMT FRUT FRUT FRUST FRUST KGT KGST KGT|-4W.o -50 -60 -70 -60 -50 -60 -60|01232323232323232323232456565656565656565656565656567|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 11c0 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 T8u|87e4\",\"Asia/Brunei|LMT BNT BNT|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4\",\"Asia/Kolkata|HMT BURT IST IST|-5R.k -6u -5u -6u|01232|-18LFR.k 1unn.k HB0 7zX0|15e6\",\"Asia/Chita|LMT YAKT YAKT YAKST YAKST YAKT IRKT|-7x.Q -80 -90 -a0 -90 -a0 -80|012323232323232323232324123232323232323232323232323232323232323256|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|33e4\",\"Asia/Choibalsan|LMT ULAT ULAT CHOST CHOT CHOT CHOST|-7C -70 -80 -a0 -90 -80 -90|0123434343434343434343434343434343434343434343456565656565656565656565656565656565656565656565|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0|38e3\",\"Asia/Shanghai|CST CDT|-80 -90|01010101010101010|-1c1I0 LX0 16p0 1jz0 1Myp0 Rb0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6\",\"Asia/Colombo|MMT IST IHST IST LKT LKT|-5j.w -5u -60 -6u -6u -60|01231451|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5\",\"Asia/Dhaka|HMT BURT IST DACT BDT BDST|-5R.k -6u -5u -60 -60 -70|01213454|-18LFR.k 1unn.k HB0 m6n0 LqMu 1x6n0 1i00|16e6\",\"Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5\",\"Asia/Dili|LMT TLT JST TLT WITA|-8m.k -80 -90 -90 -80|012343|-2le8m.k 1dnXm.k 8HA0 1ew00 Xld0|19e4\",\"Asia/Dubai|LMT GST|-3F.c -40|01|-21JfF.c|39e5\",\"Asia/Dushanbe|LMT DUST DUST DUSST DUSST TJT|-4z.c -50 -60 -70 -60 -50|0123232323232323232323245|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 14N0|76e4\",\"Asia/Gaza|EET EET EEST IST IDT|-20 -30 -30 -20 -30|010101010102020202020202020202023434343434343434343434343430202020202020202020202020202020202020202020202020202020202020202020202020202020202020|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0|18e5\",\"Asia/Hebron|EET EET EEST IST IDT|-20 -30 -30 -20 -30|01010101010202020202020202020202343434343434343434343434343020202020202020202020202020202020202020202020202020202020202020202020202020202020202020|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0|25e4\",\"Asia/Ho_Chi_Minh|LMT PLMT ICT IDT JST|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5\",\"Asia/Hong_Kong|LMT HKT HKST JST|-7A.G -80 -90 -90|0121312121212121212121212121212121212121212121212121212121212121212121|-2CFHA.G 1sEP6.G 1cL0 ylu 93X0 1qQu 1tX0 Rd0 1In0 NB0 1cL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1kL0 14N0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5\",\"Asia/Hovd|LMT HOVT HOVT HOVST|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0|81e3\",\"Asia/Irkutsk|IMT IRKT IRKT IRKST IRKST IRKT|-6V.5 -70 -80 -90 -80 -90|012323232323232323232324123232323232323232323232323232323232323252|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Europe/Istanbul|IMT EET EEST TRST TRT|-1U.U -20 -30 -40 -30|012121212121212121212121212121212121212121212121212121234343434342121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSp0 CL0 mN0 1Vz0 1gN0 1pz0 5Rd0 1fz0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1jB0 18L0 1ip0 17z0 qdd0 xX0 3S10 Tz0 dA10 11z0 1o10 11z0 1qN0 11z0 1ze0 11B0 WM0 1qO0 WI0 1nX0 1rB0 10L0 11B0 1in0 17d0 1in0 2pX0 19E0 1fU0 16Q0 1iI0 16Q0 1iI0 1Vd0 pb0 3Kp0 14o0 1df0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e6\",\"Asia/Jakarta|BMT JAVT WIB JST WIB WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6\",\"Asia/Jayapura|LMT WIT ACST|-9m.M -90 -9u|0121|-1uu9m.M sMMm.M L4nu|26e4\",\"Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212132121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4\",\"Asia/Kabul|AFT AFT|-40 -4u|01|-10Qs0|46e5\",\"Asia/Kamchatka|LMT PETT PETT PETST PETST|-ay.A -b0 -c0 -d0 -c0|01232323232323232323232412323232323232323232323232323232323232412|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qN0 WM0|18e4\",\"Asia/Karachi|LMT IST IST KART PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy01 1cL0 dK0X 11b0 1610 1jX0|24e6\",\"Asia/Urumqi|LMT XJT|-5O.k -60|01|-1GgtO.k|32e5\",\"Asia/Kathmandu|LMT IST NPT|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5\",\"Asia/Khandyga|LMT YAKT YAKT YAKST YAKST VLAT VLAST VLAT YAKT|-92.d -80 -90 -a0 -90 -a0 -b0 -b0 -a0|01232323232323232323232412323232323232323232323232565656565656565782|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2\",\"Asia/Krasnoyarsk|LMT KRAT KRAT KRAST KRAST KRAT|-6b.q -60 -70 -80 -70 -80|012323232323232323232324123232323232323232323232323232323232323252|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5\",\"Asia/Kuala_Lumpur|SMT MALT MALST MALT MALT JST MYT|-6T.p -70 -7k -7k -7u -90 -80|01234546|-2Bg6T.p 17anT.p 7hXE dM00 17bO 8Fyu 1so1u|71e5\",\"Asia/Kuching|LMT BORT BORT BORTST JST MYT|-7l.k -7u -80 -8k -90 -80|01232323232323232425|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0 1so10|13e4\",\"Asia/Macau|LMT MOT MOST CST|-7y.k -80 -90 -80|0121212121212121212121212121212121212121213|-2le7y.k 1XO34.k 1wn0 Rd0 1wn0 R9u 1wqu U10 1tz0 TVu 1tz0 17gu 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cOu 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cL0 KEp0|57e4\",\"Asia/Magadan|LMT MAGT MAGT MAGST MAGST MAGT|-a3.c -a0 -b0 -c0 -b0 -c0|012323232323232323232324123232323232323232323232323232323232323251|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|95e3\",\"Asia/Makassar|LMT MMT WITA JST|-7V.A -7V.A -80 -90|01232|-21JjV.A vfc0 myLV.A 8ML0|15e5\",\"Asia/Manila|PHT PHST JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6\",\"Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4\",\"Asia/Novokuznetsk|LMT KRAT KRAT KRAST KRAST NOVST NOVT NOVT|-5M.M -60 -70 -80 -70 -70 -60 -70|012323232323232323232324123232323232323232323232323232323232325672|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qN0 WM0 8Hz0|55e4\",\"Asia/Novosibirsk|LMT NOVT NOVT NOVST NOVST|-5v.E -60 -70 -80 -70|0123232323232323232323241232341414141414141414141414141414141414121|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|15e5\",\"Asia/Omsk|LMT OMST OMST OMSST OMSST OMST|-4R.u -50 -60 -70 -60 -70|012323232323232323232324123232323232323232323232323232323232323252|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5\",\"Asia/Oral|LMT URAT URAT URAST URAT URAST ORAT ORAST ORAT|-3p.o -40 -50 -60 -60 -50 -40 -50 -50|012343232323232323251516767676767676767676767676768|-1Pc3p.o eUnp.o 23CL0 1db0 1cM0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 2UK0 Fz0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 RW0|27e4\",\"Asia/Pontianak|LMT PMT WIB JST WIB WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4\",\"Asia/Pyongyang|LMT KST JCST JST KST|-8n -8u -90 -90 -90|012341|-2um8n 97XR 12FXu jdA0 2Onc0|29e5\",\"Asia/Qyzylorda|LMT KIZT KIZT KIZST KIZT QYZT QYZT QYZST|-4l.Q -40 -50 -60 -60 -50 -60 -70|012343232323232323232325676767676767676767676767676|-1Pc4l.Q eUol.Q 23CL0 1db0 1cM0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2UK0 dC0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|73e4\",\"Asia/Rangoon|RMT BURT JST MMT|-6o.E -6u -90 -6u|0123|-21Jio.E SmnS.E 7j9u|48e5\",\"Asia/Sakhalin|LMT JCST JST SAKT SAKST SAKST SAKT|-9u.M -90 -90 -b0 -c0 -b0 -a0|0123434343434343434343435634343434343565656565656565656565656565636|-2AGVu.M 1iaMu.M je00 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o10 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|58e4\",\"Asia/Samarkand|LMT SAMT SAMT SAMST TAST UZST UZT|-4r.R -40 -50 -60 -60 -60 -50|01234323232323232323232356|-1Pc4r.R eUor.R 23CL0 1db0 1cM0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 11x0 bf0|36e4\",\"Asia/Seoul|LMT KST JCST JST KST KDT KDT|-8r.Q -8u -90 -90 -90 -9u -a0|01234151515151515146464|-2um8r.Q 97XV.Q 12FXu jjA0 kKo0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6\",\"Asia/Singapore|SMT MALT MALST MALT MALT JST SGT SGT|-6T.p -70 -7k -7k -7u -90 -7u -80|012345467|-2Bg6T.p 17anT.p 7hXE dM00 17bO 8Fyu Mspu DTA0|56e5\",\"Asia/Srednekolymsk|LMT MAGT MAGT MAGST MAGST MAGT SRET|-ae.Q -a0 -b0 -c0 -b0 -c0 -b0|012323232323232323232324123232323232323232323232323232323232323256|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2\",\"Asia/Taipei|JWST JST CST CDT|-80 -90 -80 -90|01232323232323232323232323232323232323232|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5\",\"Asia/Tashkent|LMT TAST TAST TASST TASST UZST UZT|-4B.b -50 -60 -70 -60 -60 -50|01232323232323232323232456|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 11y0 bf0|23e5\",\"Asia/Tbilisi|TBMT TBIT TBIT TBIST TBIST GEST GET GET GEST|-2X.b -30 -40 -50 -40 -40 -30 -40 -50|0123232323232323232323245656565787878787878787878567|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 3y0 19f0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cM0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5\",\"Asia/Tehran|LMT TMT IRST IRST IRDT IRDT|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6\",\"Asia/Thimphu|LMT IST BTT|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3\",\"Asia/Tokyo|JCST JST JDT|-90 -90 -a0|0121212121|-1iw90 pKq0 QL0 1lB0 13X0 1zB0 NX0 1zB0 NX0|38e6\",\"Asia/Ulaanbaatar|LMT ULAT ULAT ULAST|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0|12e5\",\"Asia/Ust-Nera|LMT YAKT YAKT MAGST MAGT MAGST MAGT MAGT VLAT VLAT|-9w.S -80 -90 -c0 -b0 -b0 -a0 -c0 -b0 -a0|0123434343434343434343456434343434343434343434343434343434343434789|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2\",\"Asia/Vladivostok|LMT VLAT VLAT VLAST VLAST VLAT|-8L.v -90 -a0 -b0 -a0 -b0|012323232323232323232324123232323232323232323232323232323232323252|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Asia/Yakutsk|LMT YAKT YAKT YAKST YAKST YAKT|-8C.W -80 -90 -a0 -90 -a0|012323232323232323232324123232323232323232323232323232323232323252|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4\",\"Asia/Yekaterinburg|LMT PMT SVET SVET SVEST SVEST YEKT YEKST YEKT|-42.x -3J.5 -40 -50 -60 -50 -50 -60 -60|0123434343434343434343435267676767676767676767676767676767676767686|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5\",\"Asia/Yerevan|LMT YERT YERT YERST YERST AMST AMT AMT AMST|-2W -30 -40 -50 -40 -40 -30 -40 -50|0123232323232323232323245656565657878787878787878787878787878787|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1am0 2r0 1cJ0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fb0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5\",\"Atlantic/Azores|HMT AZOT AZOST AZOMT AZOT AZOST WET|1S.w 20 10 0 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545456545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldW5.s aPX5.s Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4\",\"Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3\",\"Atlantic/Canary|LMT CANT WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Atlantic/Cape_Verde|LMT CVT CVST CVT|1y.4 20 10 10|01213|-2xomp.U 1qOMp.U 7zX0 1djf0|50e4\",\"Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3\",\"Atlantic/Madeira|FMT MADT MADST MADMT WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldWQ.o aPWQ.o Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4\",\"Atlantic/Reykjavik|LMT IST ISST GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4\",\"Atlantic/South_Georgia|GST|20|0||30\",\"Atlantic/Stanley|SMT FKT FKST FKT FKST|3P.o 40 30 30 20|0121212121212134343212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 U10 1qM0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2\",\"Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5\",\"Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5\",\"Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5\",\"Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3\",\"Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|746\",\"Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0|12e4\",\"Australia/Eucla|ACWST ACWDT|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368\",\"Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4\",\"Australia/Lord_Howe|AEST LHST LHDT LHDT|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347\",\"Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10\",\"Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5\",\"Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5\",\"CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00\",\"CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"Pacific/Easter|EMT EAST EASST EAST EASST EAST|7h.s 70 60 60 50 50|012121212121212121212121212123434343434343434343434343434343434343434343434343434343434343434345|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 1wn0|30e2\",\"EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00\",\"EST|EST|50|0|\",\"EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g5X0 14p0 1wn0 17d0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Etc/GMT+0|GMT|0|0|\",\"Etc/GMT+1|GMT+1|10|0|\",\"Etc/GMT+10|GMT+10|a0|0|\",\"Etc/GMT+11|GMT+11|b0|0|\",\"Etc/GMT+12|GMT+12|c0|0|\",\"Etc/GMT+2|GMT+2|20|0|\",\"Etc/GMT+3|GMT+3|30|0|\",\"Etc/GMT+4|GMT+4|40|0|\",\"Etc/GMT+5|GMT+5|50|0|\",\"Etc/GMT+6|GMT+6|60|0|\",\"Etc/GMT+7|GMT+7|70|0|\",\"Etc/GMT+8|GMT+8|80|0|\",\"Etc/GMT+9|GMT+9|90|0|\",\"Etc/GMT-1|GMT-1|-10|0|\",\"Etc/GMT-10|GMT-10|-a0|0|\",\"Etc/GMT-11|GMT-11|-b0|0|\",\"Etc/GMT-12|GMT-12|-c0|0|\",\"Etc/GMT-13|GMT-13|-d0|0|\",\"Etc/GMT-14|GMT-14|-e0|0|\",\"Etc/GMT-2|GMT-2|-20|0|\",\"Etc/GMT-3|GMT-3|-30|0|\",\"Etc/GMT-4|GMT-4|-40|0|\",\"Etc/GMT-5|GMT-5|-50|0|\",\"Etc/GMT-6|GMT-6|-60|0|\",\"Etc/GMT-7|GMT-7|-70|0|\",\"Etc/GMT-8|GMT-8|-80|0|\",\"Etc/GMT-9|GMT-9|-90|0|\",\"Etc/UCT|UCT|0|0|\",\"Etc/UTC|UTC|0|0|\",\"Europe/Amsterdam|AMT NST NEST NET CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5\",\"Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3\",\"Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5\",\"Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6\",\"Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5\",\"Europe/Prague|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 16M0 1lc0 1tA0 17A0 11c0 1io0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5\",\"Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5\",\"Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5\",\"Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4\",\"Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|0123232323232323232345454676767676767676767623232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1ty0 2bD0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4\",\"Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3\",\"Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Kaliningrad|CET CEST CET CEST MSK MSD EEST EET FET|-10 -20 -20 -30 -30 -40 -30 -20 -30|0101010101010232454545454545454545454676767676767676767676767676767676767676787|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 Am0 Lb0 1en0 op0 1pNz0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1cJ0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4\",\"Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5\",\"Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ldXn.f aPWn.f Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5\",\"Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|01010101010101010101010121212121234343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-28dd0 11A0 1go0 19A0 1co0 1dA0 b1A0 18o0 3I00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 iyo0 Rc0 18o0 1hc0 1io0 1a00 14o0 5aL0 MM0 1vc0 17A0 1i00 1bc0 1eo0 17d0 1in0 17A0 6hA0 10N0 XIL0 1a10 1in0 17d0 19X0 1cN0 1fz0 1a10 1fX0 1cp0 1cO0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5\",\"Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2as10 M00 1cM0 1cM0 14o0 1o00 WM0 1qM0 17c0 1cM0 M3A0 5M20 WM0 1fA0 1cM0 1cM0 1cM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 Lz0 1C10 Lz0 1EN0 Lz0 1C10 Lz0 1zd0 Oo0 1C00 On0 1cp0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Minsk|MMT EET MSK CEST CET MSD EEST FET|-1O -20 -30 -20 -10 -40 -30 -30|012343432525252525252525252616161616161616161616161616161616161616172|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cK0 1cM0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hy0|19e5\",\"Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3\",\"Europe/Moscow|MMT MMT MST MDST MSD MSK MSM EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c20 imv.j 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6\",\"Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6\",\"Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4\",\"Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2as10 M00 1cM0 1cM0 14o0 1o00 WM0 1qM0 17c0 1cM0 M3A0 5M20 WM0 1fA0 1cM0 16K0 1iO0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 Lz0 1C10 Lz0 1EN0 Lz0 1C10 Lz0 1zd0 Oo0 1C00 On0 1C10 Lz0 1zd0 On0 1C10 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5\",\"Europe/Samara|LMT SAMT SAMT KUYT KUYST MSD MSK EEST KUYT SAMST SAMST|-3k.k -30 -40 -40 -50 -40 -30 -30 -30 -50 -40|012343434343434343435656782929292929292929292929292929292929292a12|-22WNk.k qHak.k bcn0 1Qqo0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cN0 8o0 14j0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qN0 WM0|12e5\",\"Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4\",\"Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5\",\"Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4\",\"Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4\",\"Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1a00 1cM0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5\",\"Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646464647373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Volgograd|LMT TSAT STAT STAT VOLT VOLST VOLST VOLT MSD MSK MSK|-2V.E -30 -30 -40 -40 -50 -40 -30 -40 -30 -40|0123454545454545454546767489898989898989898989898989898989898989a9|-21IqV.E cLXV.E cEM0 1gqn0 Lco0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 2pz0 1cJ0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5\",\"Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zaporozhye|CUT EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4\",\"HST|HST|a0|0|\",\"Indian/Chagos|LMT IOT IOT|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2\",\"Indian/Christmas|CXT|-70|0||21e2\",\"Indian/Cocos|CCT|-6u|0||596\",\"Indian/Kerguelen|zzz TFT|0 -50|01|-MG00|130\",\"Indian/Mahe|LMT SCT|-3F.M -40|01|-2yO3F.M|79e3\",\"Indian/Maldives|MMT MVT|-4S -50|01|-olgS|35e4\",\"Indian/Mauritius|LMT MUT MUST|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4\",\"Indian/Reunion|LMT RET|-3F.Q -40|01|-2mDDF.Q|84e4\",\"Pacific/Kwajalein|MHT KWAT MHT|-b0 c0 -c0|012|-AX0 W9X0|14e3\",\"MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00\",\"MST|MST|70|0|\",\"MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"Pacific/Chatham|CHAST CHAST CHADT|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600\",\"PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0\",\"Pacific/Apia|LMT WSST SST SDT WSDT WSST|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3\",\"Pacific/Bougainville|PGT JST BST|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4\",\"Pacific/Chuuk|CHUT|-a0|0||49e3\",\"Pacific/Efate|LMT VUT VUST|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3\",\"Pacific/Enderbury|PHOT PHOT PHOT|c0 b0 -d0|012|nIc0 B8n0|1\",\"Pacific/Fakaofo|TKT TKT|b0 -d0|01|1Gfn0|483\",\"Pacific/Fiji|LMT FJT FJST|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1SM0 uM0|88e4\",\"Pacific/Funafuti|TVT|-c0|0||45e2\",\"Pacific/Galapagos|LMT ECT GALT|5W.o 50 60|012|-1yVS1.A 2dTz1.A|25e3\",\"Pacific/Gambier|LMT GAMT|8X.M 90|01|-2jof0.c|125\",\"Pacific/Guadalcanal|LMT SBT|-aD.M -b0|01|-2joyD.M|11e4\",\"Pacific/Guam|GST ChST|-a0 -a0|01|1fpq0|17e4\",\"Pacific/Honolulu|HST HDT HST|au 9u a0|010102|-1thLu 8x0 lef0 8Pz0 46p0|37e4\",\"Pacific/Kiritimati|LINT LINT LINT|aE a0 -e0|012|nIaE B8nk|51e2\",\"Pacific/Kosrae|KOST KOST|-b0 -c0|010|-AX0 1bdz0|66e2\",\"Pacific/Majuro|MHT MHT|-b0 -c0|01|-AX0|28e3\",\"Pacific/Marquesas|LMT MART|9i 9u|01|-2joeG|86e2\",\"Pacific/Pago_Pago|LMT NST BST SST|bm.M b0 b0 b0|0123|-2nDMB.c 2gVzB.c EyM0|37e2\",\"Pacific/Nauru|LMT NRT JST NRT|-b7.E -bu -90 -c0|01213|-1Xdn7.E PvzB.E 5RCu 1ouJu|10e3\",\"Pacific/Niue|NUT NUT NUT|bk bu b0|012|-KfME 17y0a|12e2\",\"Pacific/Norfolk|NMT NFT NFST NFT|-bc -bu -cu -b0|01213|-Kgbc W01G On0 1COp0|25e4\",\"Pacific/Noumea|LMT NCT NCST|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3\",\"Pacific/Palau|PWT|-90|0||21e3\",\"Pacific/Pitcairn|PNT PST|8u 80|01|18Vku|56\",\"Pacific/Pohnpei|PONT|-b0|0||34e3\",\"Pacific/Port_Moresby|PGT|-a0|0||25e4\",\"Pacific/Rarotonga|CKT CKHST CKT|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3\",\"Pacific/Tahiti|LMT TAHT|9W.g a0|01|-2joe1.I|18e4\",\"Pacific/Tarawa|GILT|-c0|0||29e3\",\"Pacific/Tongatapu|TOT TOT TOST|-ck -d0 -e0|01212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0|75e3\",\"Pacific/Wake|WAKT|-c0|0||16e3\",\"Pacific/Wallis|WFT|-c0|0||94\",\"WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00\"],\nlinks:[\"Africa/Abidjan|Africa/Bamako\",\"Africa/Abidjan|Africa/Banjul\",\"Africa/Abidjan|Africa/Conakry\",\"Africa/Abidjan|Africa/Dakar\",\"Africa/Abidjan|Africa/Freetown\",\"Africa/Abidjan|Africa/Lome\",\"Africa/Abidjan|Africa/Nouakchott\",\"Africa/Abidjan|Africa/Ouagadougou\",\"Africa/Abidjan|Africa/Sao_Tome\",\"Africa/Abidjan|Africa/Timbuktu\",\"Africa/Abidjan|Atlantic/St_Helena\",\"Africa/Cairo|Egypt\",\"Africa/Johannesburg|Africa/Maseru\",\"Africa/Johannesburg|Africa/Mbabane\",\"Africa/Khartoum|Africa/Juba\",\"Africa/Lagos|Africa/Bangui\",\"Africa/Lagos|Africa/Brazzaville\",\"Africa/Lagos|Africa/Douala\",\"Africa/Lagos|Africa/Kinshasa\",\"Africa/Lagos|Africa/Libreville\",\"Africa/Lagos|Africa/Luanda\",\"Africa/Lagos|Africa/Malabo\",\"Africa/Lagos|Africa/Niamey\",\"Africa/Lagos|Africa/Porto-Novo\",\"Africa/Maputo|Africa/Blantyre\",\"Africa/Maputo|Africa/Bujumbura\",\"Africa/Maputo|Africa/Gaborone\",\"Africa/Maputo|Africa/Harare\",\"Africa/Maputo|Africa/Kigali\",\"Africa/Maputo|Africa/Lubumbashi\",\"Africa/Maputo|Africa/Lusaka\",\"Africa/Nairobi|Africa/Addis_Ababa\",\"Africa/Nairobi|Africa/Asmara\",\"Africa/Nairobi|Africa/Asmera\",\"Africa/Nairobi|Africa/Dar_es_Salaam\",\"Africa/Nairobi|Africa/Djibouti\",\"Africa/Nairobi|Africa/Kampala\",\"Africa/Nairobi|Africa/Mogadishu\",\"Africa/Nairobi|Indian/Antananarivo\",\"Africa/Nairobi|Indian/Comoro\",\"Africa/Nairobi|Indian/Mayotte\",\"Africa/Tripoli|Libya\",\"America/Adak|America/Atka\",\"America/Adak|US/Aleutian\",\"America/Anchorage|US/Alaska\",\"America/Argentina/Buenos_Aires|America/Buenos_Aires\",\"America/Argentina/Catamarca|America/Argentina/ComodRivadavia\",\"America/Argentina/Catamarca|America/Catamarca\",\"America/Argentina/Cordoba|America/Cordoba\",\"America/Argentina/Cordoba|America/Rosario\",\"America/Argentina/Jujuy|America/Jujuy\",\"America/Argentina/Mendoza|America/Mendoza\",\"America/Atikokan|America/Coral_Harbour\",\"America/Chicago|US/Central\",\"America/Curacao|America/Aruba\",\"America/Curacao|America/Kralendijk\",\"America/Curacao|America/Lower_Princes\",\"America/Denver|America/Shiprock\",\"America/Denver|Navajo\",\"America/Denver|US/Mountain\",\"America/Detroit|US/Michigan\",\"America/Edmonton|Canada/Mountain\",\"America/Fort_Wayne|America/Indiana/Indianapolis\",\"America/Fort_Wayne|America/Indianapolis\",\"America/Fort_Wayne|US/East-Indiana\",\"America/Halifax|Canada/Atlantic\",\"America/Havana|Cuba\",\"America/Indiana/Knox|America/Knox_IN\",\"America/Indiana/Knox|US/Indiana-Starke\",\"America/Jamaica|Jamaica\",\"America/Kentucky/Louisville|America/Louisville\",\"America/Los_Angeles|US/Pacific\",\"America/Los_Angeles|US/Pacific-New\",\"America/Manaus|Brazil/West\",\"America/Mazatlan|Mexico/BajaSur\",\"America/Mexico_City|Mexico/General\",\"America/New_York|US/Eastern\",\"America/Noronha|Brazil/DeNoronha\",\"America/Phoenix|US/Arizona\",\"America/Port_of_Spain|America/Anguilla\",\"America/Port_of_Spain|America/Antigua\",\"America/Port_of_Spain|America/Dominica\",\"America/Port_of_Spain|America/Grenada\",\"America/Port_of_Spain|America/Guadeloupe\",\"America/Port_of_Spain|America/Marigot\",\"America/Port_of_Spain|America/Montserrat\",\"America/Port_of_Spain|America/St_Barthelemy\",\"America/Port_of_Spain|America/St_Kitts\",\"America/Port_of_Spain|America/St_Lucia\",\"America/Port_of_Spain|America/St_Thomas\",\"America/Port_of_Spain|America/St_Vincent\",\"America/Port_of_Spain|America/Tortola\",\"America/Port_of_Spain|America/Virgin\",\"America/Regina|Canada/East-Saskatchewan\",\"America/Regina|Canada/Saskatchewan\",\"America/Rio_Branco|America/Porto_Acre\",\"America/Rio_Branco|Brazil/Acre\",\"America/Santiago|Chile/Continental\",\"America/Sao_Paulo|Brazil/East\",\"America/St_Johns|Canada/Newfoundland\",\"America/Tijuana|America/Ensenada\",\"America/Tijuana|Mexico/BajaNorte\",\"America/Toronto|America/Montreal\",\"America/Toronto|Canada/Eastern\",\"America/Vancouver|Canada/Pacific\",\"America/Whitehorse|Canada/Yukon\",\"America/Winnipeg|Canada/Central\",\"Asia/Ashgabat|Asia/Ashkhabad\",\"Asia/Bangkok|Asia/Phnom_Penh\",\"Asia/Bangkok|Asia/Vientiane\",\"Asia/Dhaka|Asia/Dacca\",\"Asia/Dubai|Asia/Muscat\",\"Asia/Ho_Chi_Minh|Asia/Saigon\",\"Asia/Hong_Kong|Hongkong\",\"Asia/Jerusalem|Asia/Tel_Aviv\",\"Asia/Jerusalem|Israel\",\"Asia/Kathmandu|Asia/Katmandu\",\"Asia/Kolkata|Asia/Calcutta\",\"Asia/Macau|Asia/Macao\",\"Asia/Makassar|Asia/Ujung_Pandang\",\"Asia/Nicosia|Europe/Nicosia\",\"Asia/Qatar|Asia/Bahrain\",\"Asia/Riyadh|Asia/Aden\",\"Asia/Riyadh|Asia/Kuwait\",\"Asia/Seoul|ROK\",\"Asia/Shanghai|Asia/Chongqing\",\"Asia/Shanghai|Asia/Chungking\",\"Asia/Shanghai|Asia/Harbin\",\"Asia/Shanghai|PRC\",\"Asia/Singapore|Singapore\",\"Asia/Taipei|ROC\",\"Asia/Tehran|Iran\",\"Asia/Thimphu|Asia/Thimbu\",\"Asia/Tokyo|Japan\",\"Asia/Ulaanbaatar|Asia/Ulan_Bator\",\"Asia/Urumqi|Asia/Kashgar\",\"Atlantic/Faroe|Atlantic/Faeroe\",\"Atlantic/Reykjavik|Iceland\",\"Australia/Adelaide|Australia/South\",\"Australia/Brisbane|Australia/Queensland\",\"Australia/Broken_Hill|Australia/Yancowinna\",\"Australia/Darwin|Australia/North\",\"Australia/Hobart|Australia/Tasmania\",\"Australia/Lord_Howe|Australia/LHI\",\"Australia/Melbourne|Australia/Victoria\",\"Australia/Perth|Australia/West\",\"Australia/Sydney|Australia/ACT\",\"Australia/Sydney|Australia/Canberra\",\"Australia/Sydney|Australia/NSW\",\"Etc/GMT+0|Etc/GMT\",\"Etc/GMT+0|Etc/GMT-0\",\"Etc/GMT+0|Etc/GMT0\",\"Etc/GMT+0|Etc/Greenwich\",\"Etc/GMT+0|GMT\",\"Etc/GMT+0|GMT+0\",\"Etc/GMT+0|GMT-0\",\"Etc/GMT+0|GMT0\",\"Etc/GMT+0|Greenwich\",\"Etc/UCT|UCT\",\"Etc/UTC|Etc/Universal\",\"Etc/UTC|Etc/Zulu\",\"Etc/UTC|UTC\",\"Etc/UTC|Universal\",\"Etc/UTC|Zulu\",\"Europe/Belgrade|Europe/Ljubljana\",\"Europe/Belgrade|Europe/Podgorica\",\"Europe/Belgrade|Europe/Sarajevo\",\"Europe/Belgrade|Europe/Skopje\",\"Europe/Belgrade|Europe/Zagreb\",\"Europe/Chisinau|Europe/Tiraspol\",\"Europe/Dublin|Eire\",\"Europe/Helsinki|Europe/Mariehamn\",\"Europe/Istanbul|Asia/Istanbul\",\"Europe/Istanbul|Turkey\",\"Europe/Lisbon|Portugal\",\"Europe/London|Europe/Belfast\",\"Europe/London|Europe/Guernsey\",\"Europe/London|Europe/Isle_of_Man\",\"Europe/London|Europe/Jersey\",\"Europe/London|GB\",\"Europe/London|GB-Eire\",\"Europe/Moscow|W-SU\",\"Europe/Oslo|Arctic/Longyearbyen\",\"Europe/Oslo|Atlantic/Jan_Mayen\",\"Europe/Prague|Europe/Bratislava\",\"Europe/Rome|Europe/San_Marino\",\"Europe/Rome|Europe/Vatican\",\"Europe/Warsaw|Poland\",\"Europe/Zurich|Europe/Busingen\",\"Europe/Zurich|Europe/Vaduz\",\"Pacific/Auckland|Antarctica/McMurdo\",\"Pacific/Auckland|Antarctica/South_Pole\",\"Pacific/Auckland|NZ\",\"Pacific/Chatham|NZ-CHAT\",\"Pacific/Chuuk|Pacific/Truk\",\"Pacific/Chuuk|Pacific/Yap\",\"Pacific/Easter|Chile/EasterIsland\",\"Pacific/Guam|Pacific/Saipan\",\"Pacific/Honolulu|Pacific/Johnston\",\"Pacific/Honolulu|US/Hawaii\",\"Pacific/Kwajalein|Kwajalein\",\"Pacific/Pago_Pago|Pacific/Midway\",\"Pacific/Pago_Pago|Pacific/Samoa\",\"Pacific/Pago_Pago|US/Samoa\",\"Pacific/Pohnpei|Pacific/Ponape\"]}),a});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technlogies SA\n *\n */\n\n/**\n * The probeOverseer let's you define probes that will listen for events and record logs\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoTests/runner/probeOverseer',[\n 'lodash',\n 'core/promise',\n 'core/store',\n 'moment',\n 'lib/uuid',\n 'lib/moment-timezone.min'\n], function (_, Promise, store, moment, uuid){\n 'use strict';\n\n var timeZone = moment.tz.guess();\n\n var slice = Array.prototype.slice;\n\n /**\n * Create the overseer intance\n * @param {String} testIdentifier - a unique id for a test execution\n * @param {runner} runner - a insance of a test runner\n * @returns {probeOverseer} the new probe overseer\n * @throws TypeError if something goes wrong\n */\n return function probeOverseerFactory(testIdentifier, runner){\n\n // the created instance\n var overseer;\n\n // the list of registered probes\n var probes = [];\n\n //temp queue\n var queue = [];\n\n /**\n * @type {Storage} to store the collected events\n */\n var storage;\n\n //current write promise\n var writing;\n\n //is the overseer started\n var started = false;\n\n /**\n * Register the collection event of a probe against a runner\n * @param {Object} probe - a valid probe\n */\n var collectEvent = function collectEvent(probe){\n\n var eventNs = '.probe-' + probe.name;\n\n //event handler registered to collect data\n var probeHandler = function probeHandler(){\n var now = moment();\n var data = {\n id : uuid(8, 16),\n type : probe.name,\n timestamp : now.format('x') / 1000,\n timezone : now.tz(timeZone).format('Z')\n };\n if(typeof probe.capture === 'function'){\n data.context = probe.capture.apply(probe, [runner].concat(slice.call(arguments)));\n }\n overseer.push(data);\n };\n\n //fallback\n if(probe.latency){\n return collectLatencyEvent(probe);\n }\n\n _.forEach(probe.events, function(eventName){\n var listen = eventName.indexOf('.') > 0 ? eventName : eventName + eventNs;\n runner.on(listen, _.partial(probeHandler, eventName));\n });\n };\n\n var collectLatencyEvent = function collectLatencyEvent(probe){\n\n var eventNs = '.probe-' + probe.name;\n\n //start event handler registered to collect data\n var startHandler = function startHandler(){\n var now = moment();\n var data = {\n id: uuid(8, 16),\n marker: 'start',\n type : probe.name,\n timestamp : now.format('x') / 1000,\n timezone : now.tz(timeZone).format('Z')\n };\n\n if(typeof probe.capture === 'function'){\n data.context = probe.capture.apply(probe, [runner].concat(slice.call(arguments)));\n }\n overseer.push(data);\n };\n\n //stop event handler registered to collect data\n var stopHandler = function stopHandler(){\n var now = moment();\n var last;\n var data = {\n type : probe.name,\n timestamp : now.format('x') / 1000,\n timezone : now.tz(timeZone).format('Z')\n };\n var args = slice.call(arguments);\n overseer.getQueue().then(function(queue){\n last = _.findLast(queue, { type : probe.name, marker : 'start' });\n if(last && !_.findLast(queue, { type : probe.name, marker : 'stop', id : last.id })){\n data.id = last.id;\n data.marker = 'end';\n if(typeof probe.capture === 'function'){\n data.context = probe.capture.apply(probe, [runner].concat(args));\n }\n overseer.push(data);\n }\n });\n };\n\n //fallback\n if(!probe.latency){\n return collectEvent(probe);\n }\n\n _.forEach(probe.startEvents, function(eventName){\n var listen = eventName.indexOf('.') > 0 ? eventName : eventName + eventNs;\n runner.on(listen, _.partial(startHandler, eventName));\n });\n _.forEach(probe.stopEvents, function(eventName){\n var listen = eventName.indexOf('.') > 0 ? eventName : eventName + eventNs;\n runner.on(listen, _.partial(stopHandler, eventName));\n });\n };\n\n /**\n * Get the storaget instance\n * @returns {Promise} that resolves with the storage\n */\n var getStorage = function getStorage(){\n if(storage){\n return Promise.resolve(storage);\n }\n return store('test-probe-' + testIdentifier).then(function(newStorage){\n storage = newStorage;\n return Promise.resolve(storage);\n });\n };\n\n //argument validation\n if(_.isEmpty(testIdentifier)){\n throw new TypeError('Please set a test identifier');\n }\n if(!_.isPlainObject(runner) || !_.isFunction(runner.init) || !_.isFunction(runner.on)){\n throw new TypeError('Please set a test runner');\n }\n\n /**\n * @typedef {probeOverseer}\n */\n overseer = {\n\n /**\n * Add a new probe\n * @param {Object} probe\n * @param {String} probe.name - the probe name\n * @param {Boolean} [probe.latency = false] - simple or latency mode\n * @param {String[]} [probe.events] - the list of events to listen (simple mode)\n * @param {String[]} [probe.startEvents] - the list of events to mark the start (lantency mode)\n * @param {String[]} [probe.stopEvents] - the list of events to mark the end (latency mode)\n * @param {Function} [probe.capture] - lambda fn to define the data context, it receive the test runner and the event parameters\n * @returns {probeOverseer} chains\n * @throws TypeError if the probe is not well formatted\n */\n add: function add(probe){\n\n // probe structure strict validation\n\n if(!_.isPlainObject(probe)){\n throw new TypeError('A probe is a plain object');\n }\n if(!_.isString(probe.name) || _.isEmpty(probe.name)){\n throw new TypeError('A probe must have a name');\n }\n if(_.where(probes, {name : probe.name }).length > 0){\n throw new TypeError('A probe with this name is already regsitered');\n }\n\n if(probe.latency){\n if(_.isString(probe.startEvents) && !_.isEmpty(probe.startEvents)){\n probe.startEvents = [probe.startEvents];\n }\n if(_.isString(probe.stopEvents) && !_.isEmpty(probe.stopEvents)){\n probe.stopEvents = [probe.stopEvents];\n }\n if(!probe.startEvents.length || !probe.stopEvents.length){\n throw new TypeError('Latency based probes must have startEvents and stopEvents defined');\n }\n\n //if already started we register the events on addition\n if(started){\n collectLatencyEvent(probe);\n }\n } else {\n if(_.isString(probe.events) && !_.isEmpty(probe.events)){\n probe.events = [probe.events];\n }\n if(!_.isArray(probe.events) || probe.events.length === 0){\n throw new TypeError('A probe must define events');\n }\n\n //if already started we register the events on addition\n if(started){\n collectEvent(probe);\n }\n }\n\n probes.push(probe);\n\n return this;\n },\n\n\n /**\n * Get the time entries queue\n * @returns {Promise} with the data in parameterj\n */\n getQueue : function getQueue(){\n return getStorage().then(function(storage){\n return storage.getItem('queue');\n });\n },\n\n /**\n * Get the list of defined probes\n * @returns {Object[]} the probes collection\n */\n getProbes : function getProbes(){\n return probes;\n },\n\n /**\n * Push an time entry to the queue\n * @param {Object} entry - the time entry\n */\n push : function push(entry){\n queue.push(entry);\n\n //ensure the queue is pushed to the store consistently and atomically\n if(writing){\n writing.then(function(){\n return getStorage().then(function(storage){\n return storage.setItem('queue', queue);\n });\n });\n } else {\n writing = getStorage().then(function(storage){\n return storage.setItem('queue', queue);\n });\n }\n },\n\n /**\n * Flush the queue and get the entries\n * @returns {Promise} with the data in parameter\n */\n flush: function flush(){\n var self = this;\n return getStorage().then(function(storage){\n return new Promise(function(resolve){\n storage.getItem('queue').then(function(flushed){\n queue = [];\n return storage.setItem('queue', queue).then(function(){\n resolve(flushed);\n });\n });\n });\n });\n },\n\n /**\n * Start the probes\n * @returns {Promise} once started\n */\n start : function start(){\n return getStorage().then(function(storage){\n return storage.getItem('queue').then(function(savedQueue){\n if(_.isArray(savedQueue)){\n queue = savedQueue;\n }\n _.forEach(probes, collectEvent);\n started = true;\n });\n });\n },\n\n\n /**\n * Stop the probes\n * Be carefull, stop will also clear the store and the queue\n * @returns {Promise} once stopped\n */\n stop : function stop(){\n started = false;\n _.forEach(probes, function(probe){\n var eventNs = '.probe-' + probe.name;\n var removeHandler = function removeHandler(eventName){\n runner.off(eventName + eventNs);\n };\n\n _.forEach(probe.startEvents, removeHandler);\n _.forEach(probe.stopEvents, removeHandler);\n _.forEach(probe.events, removeHandler);\n });\n\n queue = [];\n return getStorage().then(function(storage){\n return storage.clear();\n });\n }\n };\n return overseer;\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/helpers/map',[\n 'lodash'\n], function (_) {\n 'use strict';\n\n /**\n * Gets an empty stats record\n * @returns {Object}\n */\n function getEmptyStats() {\n return {\n answered: 0,\n flagged: 0,\n viewed: 0,\n total: 0\n };\n }\n\n /**\n * Defines a helper that provides extractors for an assessment test map\n */\n return {\n /**\n * Gets the jumps table\n * @param {Object} map - The assessment test map\n * @returns {Object}\n */\n getJumps: function getJumps(map) {\n return map && map.jumps;\n },\n\n /**\n * Gets the parts table\n * @param {Object} map - The assessment test map\n * @returns {Object}\n */\n getParts: function getParts(map) {\n return map && map.parts;\n },\n\n /**\n * Gets the jump at a particular position\n * @param {Object} map - The assessment test map\n * @param {Number} position - The position of the item\n * @returns {Object}\n */\n getJump: function getJump(map, position) {\n var jumps = this.getJumps(map);\n return jumps && jumps[position];\n },\n\n /**\n * Gets a test part by its identifier\n * @param {Object} map - The assessment test map\n * @param {String} partName - The identifier of the test part\n * @returns {Object}\n */\n getPart: function getPart(map, partName) {\n var parts = this.getParts(map);\n return parts && parts[partName];\n },\n\n /**\n * Gets a test section by its identifier\n * @param {Object} map - The assessment test map\n * @param {String} sectionName - The identifier of the test section\n * @returns {Object}\n */\n getSection: function getSection(map, sectionName) {\n var parts = this.getParts(map);\n var section = null;\n _.forEach(parts, function (part) {\n var sections = part.sections;\n if (sections && sections[sectionName]) {\n section = sections[sectionName];\n return false;\n }\n });\n return section;\n },\n\n /**\n * Gets a test item by its identifier\n * @param {Object} map - The assessment test map\n * @param {String} itemName - The identifier of the test item\n * @returns {Object}\n */\n getItem: function getItem(map, itemName) {\n var jump = _.find(this.getJumps(map), {identifier: itemName});\n return this.getItemAt(map, jump && jump.position);\n },\n\n /**\n * Gets the global stats of the assessment test\n * @param {Object} map - The assessment test map\n * @returns {Object}\n */\n getTestStats: function getTestStats(map) {\n return map && map.stats;\n },\n\n /**\n * Gets the stats of the test part containing a particular position\n * @param {Object} map - The assessment test map\n * @param {String} partName - The identifier of the test part\n * @returns {Object}\n */\n getPartStats: function getPartStats(map, partName) {\n var part = this.getPart(map, partName);\n return part && part.stats;\n },\n\n /**\n * Gets the stats of the test section containing a particular position\n * @param {Object} map - The assessment test map\n * @param {String} sectionName - The identifier of the test section\n * @returns {Object}\n */\n getSectionStats: function getSectionStats(map, sectionName) {\n var section = this.getSection(map, sectionName);\n return section && section.stats;\n },\n\n /**\n * Gets the stats related to a particular scope\n * @param {Object} map - The assessment test map\n * @param {Number} position - The current position\n * @param {String} [scope] - The name of the scope. Can be: test, part, section (default: test)\n * @returns {Object}\n */\n getScopeStats: function getScopeStats(map, position, scope) {\n var jump = this.getJump(map, position);\n\n switch (scope) {\n case 'section':\n return this.getSectionStats(map, jump && jump.section);\n\n case 'part':\n return this.getPartStats(map, jump && jump.part);\n\n default:\n case 'test':\n return this.getTestStats(map);\n }\n },\n\n /**\n * Gets the test part containing a particular position\n * @param {Object} map - The assessment test map\n * @param {Number} position - The position of the item\n * @returns {Object}\n */\n getItemPart: function getItemPart(map, position) {\n var jump = this.getJump(map, position);\n return this.getPart(map, jump && jump.part);\n },\n\n /**\n * Gets the test section containing a particular position\n * @param {Object} map - The assessment test map\n * @param {Number} position - The position of the item\n * @returns {Object}\n */\n getItemSection: function getItemSection(map, position) {\n var jump = this.getJump(map, position);\n var part = this.getPart(map, jump && jump.part);\n var sections = part && part.sections;\n return sections && sections[jump && jump.section];\n },\n\n /**\n * Gets the item located at a particular position\n * @param {Object} map - The assessment test map\n * @param {Number} position - The position of the item\n * @returns {Object}\n */\n getItemAt: function getItemAt(map, position) {\n var jump = this.getJump(map, position);\n var part = this.getPart(map, jump && jump.part);\n var sections = part && part.sections;\n var section = sections && sections[jump && jump.section];\n var items = section && section.items;\n return items && items[jump && jump.identifier];\n },\n\n /**\n * Update the map stats from a particular item\n * @param {Object} map - The assessment test map\n * @param {Number} position - The position of the item\n * @returns {Object}\n */\n updateItemStats: function updateItemStats(map, position) {\n var jump = this.getJump(map, position);\n var part = this.getPart(map, jump && jump.part);\n var sections = part && part.sections;\n var section = sections && sections[jump && jump.section];\n\n section.stats = this.computeItemStats(section.items);\n part.stats = this.computeStats(part.sections);\n map.stats = this.computeStats(this.getParts(map));\n\n return map;\n },\n\n /**\n * Computes the stats for a list of items\n * @param {Object} items\n * @returns {Object}\n */\n computeItemStats: function computeItemStats(items) {\n return _.reduce(items, function accStats(acc, item) {\n if (item.answered) {\n acc.answered++;\n }\n if (item.flagged) {\n acc.flagged++;\n }\n if (item.viewed) {\n acc.viewed++;\n }\n acc.total++;\n return acc;\n }, getEmptyStats());\n },\n\n /**\n * Computes the global stats of a collection of stats\n * @param {Array} collection\n * @returns {Object}\n */\n computeStats: function computeStats(collection) {\n return _.reduce(collection, function accStats(acc, item) {\n acc.answered += item.stats.answered;\n acc.flagged += item.stats.flagged;\n acc.viewed += item.stats.viewed;\n acc.total += item.stats.total;\n return acc;\n }, getEmptyStats());\n }\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n * Utility library that helps you to manipulate URLs.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('util/url',[\n 'lodash'\n], function(_){\n 'use strict';\n\n\n var parsers = {\n absolute: /^(?:[a-z]+:)?\\/\\//i,\n base64: /^data:[^\\/]+\\/[^;]+(;charset=[\\w]+)?;base64,/,\n query: /(?:^|&)([^&=]*)=?([^&]*)/g,\n url: /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?))?((((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n };\n\n /**\n * The Url util\n * @exports util/url\n */\n var urlUtil = {\n\n /*\n * The parse method is a adaptation of parseUri from\n * Steven Levithan <stevenlevithan.com> under the MIT License\n */\n\n /**\n * Parse the given URL and create an object with each URL chunks.\n *\n * BE CAREFUL! This util is different from UrlParser.\n * This one works only from the given string, when UrlParser work from window.location.\n * It means UrlParser will resolve the host of a relative URL using the host of the current window.\n *\n * @param {String} url - the URL to parse\n * @returns {Object} parsedUrl with the properties available in key below and query that contains query string key/values.\n */\n parse : function parse (url) {\n var matches;\n var\tkeys = [\"source\",\"protocol\",\"authority\",\"userInfo\",\"user\",\"password\",\"host\",\"port\",\"relative\",\"path\",\"directory\",\"file\",\"queryString\",\"hash\"];\n var i = keys.length;\n var parsed = Object.create({\n toString : function(){\n return this.source;\n }\n });\n\n parsed.base64 = parsers.base64.test(url);\n\n if(parsed.base64){\n parsed.source = url;\n } else {\n\n matches = parsers.url.exec(url);\n while (i--) {\n parsed[keys[i]] = matches[i] || \"\";\n }\n parsed.query = {};\n parsed.queryString.replace(parsers.query, function ($0, $1, $2) {\n if ($1) {\n parsed.query[$1] = $2;\n }\n });\n }\n return parsed;\n },\n\n /**\n * Check whether an URL is absolute\n * @param {String|Object} url - the url to check. It can be a parsed URL (result of {@link util/url#parse})\n * @returns {Boolean|undefined} true if the url is absolute, or undefined if the URL cannot be checked\n */\n isAbsolute : function isAbsolute(url){\n\n\n //url from parse\n if(typeof url === 'object' && url.hasOwnProperty('source')){\n return url.source !== url.relative;\n }\n if(typeof url === 'string'){\n return parsers.absolute.test(url);\n }\n },\n\n /**\n * Check whether an URL is relative\n * @param {String|Object} url - the url to check. It can be a parsed URL (result of {@link util/url#parse})\n * @returns {Boolean|undefined} true if the url is relative, or undefined if the URL cannot be checked\n */\n isRelative : function isRelative(url) {\n var absolute = this.isAbsolute(url);\n if(typeof absolute === 'boolean'){\n return !absolute;\n }\n },\n\n /**\n * Check whether an URL is encoded in base64\n * @param {String|Object} url - the url to check. It can be a parsed URL (result of {@link util/url#parse})\n * @returns {Boolean|undefined} true if the url is base64, or undefined if the URL cannot be checked\n */\n isBase64 : function isBase64(url){\n\n if(typeof url === 'object' && url.hasOwnProperty('source')){\n return url.base64;\n }\n if(typeof url === 'string'){\n return parsers.base64.test(url);\n }\n },\n\n /**\n * Determine whether encoding is required to match XML standards for attributes\n * @param {String} url\n * @returns {String}\n */\n encodeAsXmlAttr : function encodeAsXmlAttr(uri) {\n return (/[<>&']+/.test(uri)) ? encodeURIComponent(uri) : uri;\n },\n\n /**\n * Build a URL.\n * It does not take case about baseURL.\n *\n * @param {String|Array} path - the URL path. Clean concat if an array (no dupe slashes)\n * @param {Object} [params] - params to add to the URL\n * @returns {String} the URL\n */\n build : function build(path, params){\n\n var url;\n\n if(path){\n if(_.isString(path)){\n url = path;\n }\n if(_.isArray(path)){\n url = '';\n _.forEach(path, function(chunk){\n if(/\\/$/.test(url) && /^\\//.test(chunk)){\n url += chunk.substr(1);\n } else if (url !== '' && !/\\/$/.test(url) && !/^\\//.test(chunk)){\n url += '/' + chunk;\n } else {\n url += chunk;\n }\n });\n }\n if(_.isPlainObject(params)){\n if(url.indexOf('?') === -1){\n url += '?';\n }\n url = _.reduce(params, function(acc, value, key){\n acc += '&' + encodeURIComponent(key) + '=' + encodeURIComponent(value);\n return acc;\n }, url);\n }\n }\n\n return url;\n }\n };\n\n return urlUtil;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n * The asset manager proposes you to resolve your asset URLs for you!\n * You need to add the resolution strategies, it will then evaluate each strategy until the right one is found\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoItems/assets/manager',[\n 'lodash',\n 'util/url'\n], function(_, urlUtil){\n 'use strict';\n\n /**\n * @typedef AssetStrategy Defines a way to resolve an asset path\n * @property {String} name - the strategy name\n * @property {assetStrategyHandle} handle - how to resolve the strategy.\n */\n\n /**\n * @callback assetStrategyHandle\n * @param {String|Object} url - the URL to resolved. If parseUrl, it's an object that contains host, port, search, queryString, etc.\n * @param {Object} data - the context data\n * @returns {String?} falsy if not resolved otherwise the resolved URL\n */\n\n\n /**\n * The assetManagerFactory create a new assetManager with the given resolution stratgies and a data context.\n *\n * @example\n * //define AssetStrategies with a name and a handle method\n * var strategies = [{\n * name : 'external',\n * handle : function(url, data){\n * if(/^http/.test(url)){\n * return path;\n * }\n * }\n * }, {\n * name : 'relative',\n * handle : function(url, data){\n * if(/^((\\.\\/)|(\\w\\/))/){\n * return data.baseUrl + '/' + url ;\n * }\n * }\n * }]);\n *\n * var assetManager = assetManagerFactory(strategies, { baseUrl : 'http://t.oa/public/assets/' });\n * assetManager.resolve('http://foo/bar.png'); //will resolved using external\n * assetManager.resolve('bar.png'); //will resolved using relative strategy\n *\n * @param {AssetStrategy[]} strategies - the strategies\n * @param {Object} data - the context data\n * @param {Object} [options] - the manager options\n * @param {Boolean} [options.parseUrl = true] - If the URL to give to the stragies should be parsed or given as it is.\n * @param {Boolean} [options.cache] - resolve the same URL only once and store the result in memory.\n *\n * @exports taoItems/assets/manager\n * @namespace assetManagerFactory\n */\n var assetManagerFactory = function assetManagerFactory(strategies, data, options) {\n\n var cache = {};\n\n strategies = _.isArray(strategies) ? strategies : [strategies];\n data = data || {};\n options = _.defaults(options || {}, {\n parseUrl : true\n });\n\n /**\n * A brand new asset manager is created by the factory\n */\n var assetManager = {\n\n /**\n * The stack of strategies that would be used to resolve the asset path\n * @type {AssetStrategy[]}\n */\n _strategies : [],\n\n /**\n * Add an asset resolution strategy.\n * The strategies will be evaluated in the order they've been added.\n * @param {AssetStrategy} strategy - the strategy to add\n * @throws {TypeError} if the strategy isn't defined correctly\n */\n addStrategy : function addStrategy (strategy){\n\n if(!_.isPlainObject(strategy) || !_.isFunction(strategy.handle) || !_.isString(strategy.name)){\n throw new TypeError('An asset resolution strategy is an object with a handle method and a name');\n }\n\n this._strategies.push(strategy);\n },\n\n /**\n * Change the strategies\n * @param {AssetStrategy[]} strategies - the strategies\n * @throws {TypeError} if the strategy isn't defined correctly\n */\n setStrategies : function setStrategies(newStrategies){\n var self = this;\n\n this._strategies = [];\n\n //assign the strategies to the assetManager\n _.forEach(newStrategies, function(strategy){\n\n //if it's an object we add it directly\n if(_.isPlainObject(strategy)){\n assetManager.addStrategy(strategy);\n\n //if it's a function, we create the strategy with a generated name\n } else if(_.isFunction(strategy)){\n self.addStrategy({\n name : 'strategy_' + (self._strategies.length + 1),\n handle : strategy\n });\n }\n });\n },\n\n /**\n * Set context data\n * @param {String|Object} [key] - the key of the data to set or the data values if it's an object\n * @param {*} [value] - the value to set if a key is given\n */\n setData : function setData(key, value){\n if(_.isString(key) && typeof value !== 'undefined'){\n data[key] = value;\n } else if(_.isPlainObject(key)){\n data = key;\n }\n },\n\n /**\n * Get context data\n * @param {String} [key] - if we want the value of a particuar key\n * @returns {Object|*} all the data or the proprety value if key is given\n */\n getData : function getData(key){\n if(_.isString(key)){\n return data[key];\n }\n return data;\n },\n\n /**\n * Resolve the given URL against the strategies\n * @param {String} url - the URL to resolve\n * @returns {String?} the resolved URL or nothing\n */\n resolve : function resolve(url){\n var resolved;\n var inputUrl;\n\n //if caching try to load the value from the cache\n if(options.cache && cache.hasOwnProperty(url)){\n return cache[url];\n }\n\n //parse the url ?\n inputUrl = options.parseUrl ? urlUtil.parse(url) : url;\n\n //call strategies handlers, in their order until once returns somethin\n _.forEach(this._strategies, function(strategy){\n var result = strategy.handle(inputUrl, data);\n if(result){\n resolved = result;\n return false;\n }\n });\n\n resolved = resolved || '';\n\n if(options.cache){\n cache[url] = resolved;\n }\n\n return resolved;\n },\n\n /**\n * Resolve the given URL against the strategy identified by the given name\n * @param {String} name - the strategy name\n * @param {String} url - the URL to resolve\n * @returns {String?} the resolved URL or nothing\n */\n resolveBy : function resolveBy(name, url){\n var inputUrl;\n var resolved = '';\n var strategy = _.find(this._strategies, {name : name});\n if(strategy){\n //parse the url ?\n inputUrl = options.parseUrl ? urlUtil.parse(url) : url;\n resolved = strategy.handle(inputUrl, data);\n }\n return resolved;\n },\n\n /**\n * When the cache is used, it could be useful to clear the cache\n */\n clearCache : function clearCache(){\n if(options.cache){\n cache = {};\n }\n }\n };\n\n assetManager.setStrategies(strategies);\n\n return assetManager;\n };\n\n return assetManagerFactory;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoItems/runner/api/itemRunner',[\n 'jquery',\n 'lodash',\n 'core/eventifier',\n 'taoItems/assets/manager'\n], function($, _, eventifier, assetManagerFactory){\n 'use strict';\n\n /**\n *\n * Builds a brand new {@link itemRunner}.\n *\n * <strong>The factory is an internal mechanism to create encapsulated contexts.\n * I suggest you to use directly the name <i>itemRunner</i> when you require this module.</strong>\n *\n * @example require(['itemRunner'], function(itemRunner){\n itemRunner({itemId : 12})\n * .on('statechange', function(state){\n *\n * })\n * .on('ready', function(){\n *\n * })\n * .on('response', function(){\n *\n * })\n * .init()\n * .render($('.item-container'));\n * });\n *\n * @exports itemRunner\n * @namespace itemRunnerFactory\n *\n * @param {String} [providerName] - the name of a provider previously registered see {@link itemRunnerFactory#register}\n * @param {Object} [data] - the data of the item to run\n *\n * @returns {itemRunner}\n */\n var itemRunnerFactory = function itemRunnerFactory(providerName, data, options){\n\n var provider,\n providers,\n assetManager;\n\n //contains the bound events.\n var events = {};\n\n //flow structure to manage sync calls in an async context.\n var flow = {\n init : {\n done: false,\n pending : []\n },\n render : {\n done: false,\n pending : []\n }\n };\n\n //optional params based on type\n if(_.isPlainObject(providerName)){\n data = providerName;\n providerName = undefined;\n }\n\n data = data || {};\n options = options || {};\n\n /*\n * Select the provider\n */\n providers = itemRunnerFactory.providers;\n\n //check a provider is available\n if(!providers || _.size(providers) === 0){\n throw new Error('No provider regitered');\n }\n\n if(_.isString(providerName) && providerName.length > 0){\n provider = providers[providerName];\n } else if(_.size(providers) === 1) {\n\n //if there is only one provider, then we take this one\n providerName = _.keys(providers)[0];\n provider = providers[providerName];\n }\n\n //now we should have a provider\n if(!provider){\n throw new Error('No candidate found for the provider');\n }\n\n //set up a default assetManager using a \"do nothing\" strategy\n assetManager = options.assetManager || assetManagerFactory(function defaultStrategy(url){\n return url.toString();\n });\n\n\n /**\n * The itemRunner\n * @typedef {Object} itemRunner\n */\n\n /**\n * @type {itemRunner}\n * @lends itemRunnerFactory\n */\n return eventifier({\n\n /**\n * Items container\n * @type {HTMLElement}\n */\n container : null,\n\n /**\n * The asset manager used to resolve asset\n * @see taoItems/asset/manager\n * @type {AssetManager}\n */\n assetManager : assetManager,\n\n /**\n * To give options to the item runner provider\n * @type {Object}\n */\n options : options,\n\n /**\n * Initialize the runner.\n * @param {Object} [newData] - just in case you want to change item data (it should not occurs in most case)\n * @returns {itemRunner} to chain calls\n *\n * @fires itemRunner#init\n */\n init : function(newData){\n var self = this;\n\n /**\n * Call back when init is done\n */\n var initDone = function initDone(){\n\n //manage pending tasks the first time\n if(flow.init.done === false){\n flow.init.done = true;\n\n _.forEach(flow.init.pending, function(pendingTask){\n if(_.isFunction(pendingTask)){\n pendingTask.call(self);\n }\n });\n flow.init.pending = [];\n }\n\n /**\n * the runner has initialized correclty the item\n * @event itemRunner#init\n */\n self.trigger('init');\n };\n\n //merge data\n if(newData){\n data = _.merge(data, newData);\n }\n\n if(_.isFunction(provider.init)){\n\n /**\n * Calls provider's initialization with item data.\n * @callback InitItemProvider\n * @param {Object} data - the item data\n * @param {Function} done - call once the initialization is done\n */\n provider.init.call(this, data, initDone);\n\n } else {\n initDone();\n }\n\n return this;\n },\n\n /**\n * Configure the assetManager\n * @see taoItems/assets/manager\n * @param {AssetStrategy[]} strategies - the resolving strategies\n * @param {Object} [data] - the context data\n * @param {Object} [options] - the asset manager options\n * @returns {itemRunner} to chain calls\n */\n assets : function assets(strategies, data, options){\n\n try{\n this.assetManager = assetManagerFactory(strategies, data, options);\n } catch( err ){\n this.trigger('error', 'Something was wrong while configuring the asset manager : ' + err);\n }\n\n return this;\n },\n\n /**\n * Initialize the current item.\n *\n * @param {HTMLElement|jQueryElement} elt - the DOM element that is going to contain the rendered item.\n * @returns {itemRunner} to chain calls\n *\n * @fires itemRunner#ready\n * @fires itemRunner#render\n * @fires itemRunner#error if the elt isn't valid\n *\n * @fires itemRunner#statechange the provider is reponsible to trigger this event\n * @fires itemRunner#responsechange the provider is reponsible to trigger this event\n */\n render : function(elt){\n var self = this;\n\n /**\n * Call back when render is done\n */\n var renderDone = function renderDone (){\n\n //manage pending tasks the first time\n if(flow.render.done === false){\n flow.render.done = true;\n\n _.forEach(flow.render.pending, function(pendingTask){\n if(_.isFunction(pendingTask)){\n pendingTask.call(self);\n }\n });\n flow.render.pending = [];\n }\n\n /**\n * The item is rendered\n * @event itemRunner#render\n */\n self.trigger('render');\n\n /**\n * The item is ready.\n * Alias of {@link itemRunner#render}\n * @event itemRunner#ready\n */\n self.trigger('ready');\n };\n\n //check elt\n if( !(elt instanceof HTMLElement) && !(elt instanceof $) ){\n return self.trigger('error', 'A valid HTMLElement (or a jquery element) at least is required to render the item');\n }\n\n if(flow.init.done === false){\n flow.init.pending.push(function(){\n this.render(elt);\n });\n } else {\n\n //we keep a reference to the container\n if(elt instanceof $){\n this.container = elt.get(0);\n } else {\n this.container = elt;\n }\n\n //the state will be applied only when the rendering is made\n\n if(_.isFunction(provider.render)){\n\n /**\n * Calls the provider's render\n * @callback RendertItemProvider\n * @param {HTMLElement} elt - the element to render inside\n * @param {Function} done - call once the render is done\n */\n provider.render.call(this, this.container, renderDone);\n\n } else {\n renderDone();\n }\n }\n\n return this;\n },\n\n /**\n * Clear the running item.\n * @returns {itemRunner}\n *\n * @fires itemRunner#clear\n */\n clear : function(){\n var self = this;\n\n /**\n * Call back when clear is done\n */\n var clearDone = function clearDone (){\n\n //events = {};\n\n /**\n * The item is ready.\n * @event itemRunner#clear\n */\n self.trigger('clear');\n };\n if(_.isFunction(provider.clear)){\n\n /**\n * Calls the provider's clear\n * @callback ClearItemProvider\n * @param {HTMLElement} elt - item's container\n * @param {Function} done - call once the initialization is done\n */\n provider.clear.call(this, this.container, clearDone);\n\n } else {\n clearDone();\n }\n\n return this;\n },\n\n /**\n * Get the current state of the running item.\n *\n * @returns {Object|Null} state\n */\n getState : function(){\n var state = null;\n if(_.isFunction(provider.getState)){\n\n /**\n * Calls the provider's getState\n * @callback GetStateItemProvider\n * @returns {Object} the state\n */\n state = provider.getState.call(this);\n }\n return state;\n },\n\n /**\n * Set the current state of the running item.\n * This should have the effect to restore the item state.\n *\n * @param {Object} state - the new state\n * @returns {itemRunner}\n *\n * @fires itemRunner#error if the state type doesn't match\n */\n setState : function(state){\n\n if(!_.isPlainObject(state)){\n return this.trigger('error', \"The item's state must be a JavaScript Plain Object: \" + (typeof state) + ' given');\n }\n\n //the state will be applied only when the rendering is made\n if(flow.render.done === false){\n flow.render.pending.push(function(){\n this.setState(state);\n });\n } else {\n\n if(_.isFunction(provider.setState)){\n\n /**\n * Calls the provider's setState\n * @callback SetStateItemProvider\n * @param {Object} state - the state to set\n */\n provider.setState.call(this, state);\n }\n }\n return this;\n },\n\n /**\n * Get the responses of the running item.\n *\n * @returns {Object} the item's responses\n */\n getResponses : function(){\n var responses = {};\n if(_.isFunction(provider.getResponses)){\n\n /**\n * Calls the provider's getResponses\n * @callback GetResponsesItemProvider\n * @returns {Object} the responses\n */\n responses = provider.getResponses.call(this);\n }\n return responses;\n }\n });\n };\n\n /**\n * Register an <i>Item Runtime Provider</i> into the item runner.\n * The provider provides the behavior required by the item runner.\n *\n * @param {String} name - the provider name will be used to select the provider while instantiating the runner\n *\n * @param {Object} provider - the Item Runtime Provider as a plain object. The itemRunner forwards encapsulate and delegate calls to the provider.\n * @param {InitItemProvider} provider.init - the provider initializes the item from it's data, for example loading libraries, add some listeners, etc.\n * @param {RenderItemProvider} provider.render - the provider renders the item within the given container element.\n * @param {ClearItemProvider} [provider.clear] - the provider clears the item.\n * @param {GetStateItemProvider} [provider.getState] - the provider get the item's state.\n * @param {SetStateItemProvider} [provider.setState] - the provider restore the item to the given state.\n * @param {GetRespnsesItemProvider} [provider.getResponses] - the provider gives the current responses.\n *\n * @throws TypeError when a wrong provider is given or an empty name.\n */\n itemRunnerFactory.register = function registerProvider(name, provider){\n //type checking\n if(!_.isString(name) || name.length <= 0){\n throw new TypeError('It is required to give a name to your provider.');\n }\n if(!_.isPlainObject(provider) || (!_.isFunction(provider.init) && !_.isFunction(provider.render))){\n throw new TypeError('A provider is an object that contains at least an init function or a render function.');\n }\n\n this.providers = this.providers || {};\n this.providers[name] = provider;\n };\n\n return itemRunnerFactory;\n});\n\n","/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n */\n// Inspired by base2 and Prototype\nvar initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\\b_super\\b/ : /.*/;\n\n// The base Class implementation (does nothing)\nClass = function() {};\n\n// Create a new Class that inherits from this class\nClass.extend = function(prop) {\n var _super = this.prototype;\n\n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n initializing = true;\n var prototype = new this();\n initializing = false;\n\n // Copy the properties over onto the new prototype\n for (var name in prop) {\n // Check if we're overwriting an existing function\n prototype[name] = typeof prop[name] == \"function\" &&\n typeof _super[name] == \"function\" && fnTest.test(prop[name]) ?\n (function(name, fn){\n return function() {\n var tmp = this._super;\n\n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n\n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n var ret = fn.apply(this, arguments);\n this._super = tmp;\n\n return ret;\n };\n })(name, prop[name]) :\n prop[name];\n }\n\n // The dummy class constructor\n Class = function () {\n // All construction is actually done in the init method\n if ( !initializing && this.init )\n this.init.apply(this, arguments);\n }\n\n // Populate our constructed prototype object\n Class.prototype = prototype;\n\n // Enforce the constructor to be what we expect\n Class.constructor = Class;\n\n // And make this class extendable\n Class.extend = arguments.callee;\n\n return Class;\n};\n\nif(!(typeof exports === 'undefined')) {\n exports.Class = Class;\n};\ndefine(\"class\", (function (global) {\n return function () {\n var ret, fn;\n return ret || global.Class;\n };\n}(this)));\n\n","define('taoQtiItem/qtiItem/core/qtiClasses',[], function(){\n return {\n '_container' : 'taoQtiItem/qtiItem/core/Container',\n 'assessmentItem' : 'taoQtiItem/qtiItem/core/Item',\n 'responseProcessing' : 'taoQtiItem/qtiItem/core/ResponseProcessing',\n '_simpleFeedbackRule' : 'taoQtiItem/qtiItem/core/response/SimpleFeedbackRule',\n 'stylesheet' : 'taoQtiItem/qtiItem/core/Stylesheet',\n 'math' : 'taoQtiItem/qtiItem/core/Math',\n 'img' : 'taoQtiItem/qtiItem/core/Img',\n 'object' : 'taoQtiItem/qtiItem/core/Object',\n 'outcomeDeclaration' : 'taoQtiItem/qtiItem/core/variables/OutcomeDeclaration',\n 'responseDeclaration' : 'taoQtiItem/qtiItem/core/variables/ResponseDeclaration',\n 'rubricBlock' : 'taoQtiItem/qtiItem/core/RubricBlock',\n 'associableHotspot' : 'taoQtiItem/qtiItem/core/choices/AssociableHotspot',\n 'gap' : 'taoQtiItem/qtiItem/core/choices/Gap',\n 'gapImg' : 'taoQtiItem/qtiItem/core/choices/GapImg',\n 'gapText' : 'taoQtiItem/qtiItem/core/choices/GapText',\n 'hotspotChoice' : 'taoQtiItem/qtiItem/core/choices/HotspotChoice',\n 'hottext' : 'taoQtiItem/qtiItem/core/choices/Hottext',\n 'inlineChoice' : 'taoQtiItem/qtiItem/core/choices/InlineChoice',\n 'simpleAssociableChoice' : 'taoQtiItem/qtiItem/core/choices/SimpleAssociableChoice',\n 'simpleChoice' : 'taoQtiItem/qtiItem/core/choices/SimpleChoice',\n 'associateInteraction' : 'taoQtiItem/qtiItem/core/interactions/AssociateInteraction',\n 'choiceInteraction' : 'taoQtiItem/qtiItem/core/interactions/ChoiceInteraction',\n 'endAttemptInteraction' : 'taoQtiItem/qtiItem/core/interactions/EndAttemptInteraction',\n 'extendedTextInteraction' : 'taoQtiItem/qtiItem/core/interactions/ExtendedTextInteraction',\n 'gapMatchInteraction' : 'taoQtiItem/qtiItem/core/interactions/GapMatchInteraction',\n 'graphicAssociateInteraction' : 'taoQtiItem/qtiItem/core/interactions/GraphicAssociateInteraction',\n 'graphicGapMatchInteraction' : 'taoQtiItem/qtiItem/core/interactions/GraphicGapMatchInteraction',\n 'graphicOrderInteraction' : 'taoQtiItem/qtiItem/core/interactions/GraphicOrderInteraction',\n 'hotspotInteraction' : 'taoQtiItem/qtiItem/core/interactions/HotspotInteraction',\n 'hottextInteraction' : 'taoQtiItem/qtiItem/core/interactions/HottextInteraction',\n 'inlineChoiceInteraction' : 'taoQtiItem/qtiItem/core/interactions/InlineChoiceInteraction',\n 'matchInteraction' : 'taoQtiItem/qtiItem/core/interactions/MatchInteraction',\n 'mediaInteraction' : 'taoQtiItem/qtiItem/core/interactions/MediaInteraction',\n 'orderInteraction' : 'taoQtiItem/qtiItem/core/interactions/OrderInteraction',\n 'prompt' : 'taoQtiItem/qtiItem/core/interactions/Prompt',\n 'selectPointInteraction' : 'taoQtiItem/qtiItem/core/interactions/SelectPointInteraction',\n 'sliderInteraction' : 'taoQtiItem/qtiItem/core/interactions/SliderInteraction',\n 'textEntryInteraction' : 'taoQtiItem/qtiItem/core/interactions/TextEntryInteraction',\n 'uploadInteraction' : 'taoQtiItem/qtiItem/core/interactions/UploadInteraction',\n 'feedbackBlock' : 'taoQtiItem/qtiItem/core/feedbacks/FeedbackBlock',\n 'feedbackInline' : 'taoQtiItem/qtiItem/core/feedbacks/FeedbackInline',\n 'modalFeedback' : 'taoQtiItem/qtiItem/core/feedbacks/ModalFeedback',\n 'customInteraction' : 'taoQtiItem/qtiItem/core/interactions/CustomInteraction',\n 'infoControl' : 'taoQtiItem/qtiItem/core/PortableInfoControl',\n 'include' : 'taoQtiItem/qtiItem/core/Include'\n };\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\n\n/**\n * Common basic util functions\n */\ndefine('taoQtiItem/qtiItem/helper/util',['lodash'], function(_){\n 'use strict';\n\n var util = {\n\n buildSerial : function buildSerial(prefix){\n var id = prefix || '';\n var chars = \"abcdefghijklmnopqrstuvwxyz0123456789\";\n for(var i = 0; i < 22; i++){\n id += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return id;\n },\n\n /**\n * Generates an id for a Qti element (the generation is different from identifier)\n * @param {Object} item - the element related item\n * @param {String} prefix - identifier prefix\n * @returns {String} the identifier\n * @throws {TypeError} if there is no item\n */\n buildId : function buildId(item, prefix){\n var id;\n var usedIds;\n var i = 1;\n var suffix = '';\n var exists = false;\n\n if(!item){\n throw new TypeError('A item is required to generate a unique identifier');\n }\n\n usedIds = item.getUsedIds();\n\n do{\n exists = false;\n id = prefix + suffix;\n if(_.contains(usedIds, id)){\n exists = true;\n suffix = '_' + i;\n i++;\n }\n } while(exists);\n\n return id;\n },\n\n /**\n * Generates an identifier for a Qti element\n * @param {Object} item - the element related item\n * @param {String} prefix - identifier prefix\n * @param {Boolean} [useSuffix = true] - add a \"_ + index\" to the identifier\n * @returns {String} the identifier\n * @throws {TypeError} if there is no item\n */\n buildIdentifier : function buildIdentifier(item, prefix, useSuffix){\n\n var id;\n var usedIds;\n var suffix = '';\n var i = 1;\n var exists = false;\n\n if(!item){\n throw new TypeError('A item is required to generate a unique identifier');\n }\n\n usedIds = item.getUsedIdentifiers();\n useSuffix = _.isUndefined(useSuffix) ? true : useSuffix;\n\n if(prefix){\n prefix = prefix.replace(/_[0-9]+$/ig, '_') //detect incremental id of type choice_12, response_3, etc.\n .replace(/[^a-zA-Z0-9_]/ig, '_')\n .replace(/(_)+/ig, '_');\n if(useSuffix){\n suffix = '_' + i;\n }\n } else {\n prefix = this.qtiClass;\n suffix = '_' + i;\n }\n\n do{\n exists = false;\n id = prefix + suffix;\n if(usedIds[id]){\n exists = true;\n suffix = '_' + i;\n i++;\n }\n } while(exists);\n\n return id;\n },\n\n findInCollection : function findInCollection(element, collectionNames, searchedSerial){\n\n var found = null;\n\n if(_.isString(collectionNames)){\n collectionNames = [collectionNames];\n }\n\n if(_.isArray(collectionNames)){\n\n _.each(collectionNames, function(collectionName){\n\n //get collection to search in (resolving case like interaction.choices.0\n var collection = element;\n _.each(collectionName.split('.'), function(nameToken){\n collection = collection[nameToken];\n });\n var elt = collection[searchedSerial];\n\n if(elt){\n found = {'parent' : element, 'element' : elt};\n return false;//break the each loop\n }\n\n //search inside each elements:\n _.each(collection, function(elt){\n\n if(_.isFunction(elt.find)){\n found = elt.find(searchedSerial);\n if(found){\n return false;//break the each loop\n }\n }\n\n });\n\n if(found){\n return false;//break the each loop\n }\n\n });\n\n }else{\n\n throw new Error('invalid argument : collectionNames must be an array or a string');\n }\n\n return found;\n },\n addMarkupNamespace : function addMarkupNamespace(markup, ns){\n if(ns) {\n markup = markup.replace(/<(\\/)?([a-z:]+)(\\s?)([^><]*)>/g, function($0, $1, $2, $3, $4){\n if($2.indexOf(':')>0){\n return $0;\n }\n $1 = $1 || '';\n $3 = $3 || '';\n return '<'+ $1 + ns + ':'+$2+$3+$4+'>';\n });\n return markup;\n }\n return markup;\n\n },\n removeMarkupNamespaces : function removeMarkupNamespace(markup){\n return markup.replace(/<(\\/)?(\\w*):([^>]*)>/g, '<$1$3>');\n },\n getMarkupUsedNamespaces : function getMarkupUsedNamespaces(markup){\n var namespaces = [];\n markup.replace(/<(\\/)?(\\w*):([^>]*)>/g, function(original, slash, ns, node){\n namespaces.push(ns);\n return '<'+slash+node+'>';\n });\n return _.uniq(namespaces);\n }\n };\n\n return util;\n});\n\n","define('taoQtiItem/qtiItem/helper/rendererConfig',['lodash', 'jquery'], function(_, $){\n\n var rendererConfigHelper = {};\n\n rendererConfigHelper.getOptionsFromArguments = function(args){\n\n var options = {\n data : {},\n placeholder : null,\n subclass : '',\n renderer : null\n };\n \n _.each(args, function(arg){\n if(arg){\n if(arg.isRenderer){\n options.renderer = arg;\n }else if(arg instanceof $ && arg.length){\n options.placeholder = arg;\n }else if(_.isString(arg)){\n options.subclass = arg;\n }else if(_.isPlainObject(arg)){\n options.data = arg;\n }else{\n console.log('invalid arg', arg, args);\n }\n }\n });\n \n return options;\n };\n \n return rendererConfigHelper;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\ndefine('taoQtiItem/qtiItem/core/Element',[\n 'jquery',\n 'lodash',\n 'class',\n 'taoQtiItem/qtiItem/helper/util',\n 'taoQtiItem/qtiItem/helper/rendererConfig'\n], function($, _, Class, util, rendererConfig){\n 'use strict';\n\n var _instances = {};\n\n var Element = Class.extend({\n qtiClass : '',\n serial : '',\n relatedItem : null,\n init : function(serial, attributes){\n\n //init own attributes\n this.attributes = {};\n\n //system properties, for item creator internal use only\n this.metaData = {};\n\n //init call in the format init(attributes)\n if(typeof (serial) === 'object'){\n attributes = serial;\n serial = '';\n }\n\n if(!serial){\n serial = util.buildSerial(this.qtiClass + '_');\n }\n\n if(serial && (typeof serial !== 'string' || !serial.match(/^[a-z_0-9]*$/i))){\n throw 'invalid QTI serial : (' + (typeof serial) + ') ' + serial;\n }\n\n if(!_instances[serial]){\n _instances[serial] = this;\n this.serial = serial;\n this.setAttributes(attributes || {});\n }else{\n throw 'a QTI Element with the same serial already exists ' + serial;\n }\n\n if(typeof this.initContainer === 'function'){\n this.initContainer(arguments[2] || '');\n }\n if(typeof this.initObject === 'function'){\n this.initObject();\n }\n },\n is : function(qtiClass){\n return (qtiClass === this.qtiClass);\n },\n placeholder : function(){\n return '{{' + this.serial + '}}';\n },\n getSerial : function(){\n return this.serial;\n },\n getUsedIdentifiers : function(){\n var usedIds = {};\n var elts = this.getComposingElements();\n for(var i in elts){\n var elt = elts[i];\n var id = elt.attr('identifier');\n if(id){\n //warning: simplistic implementation, allow only one unique identifier in the item no matter the element class/type\n usedIds[id] = elt;\n }\n }\n return usedIds;\n },\n\n /**\n * Get the ids in use. (id is different from identifier)\n * @returns {Array} of the ids in use\n */\n getUsedIds : function getUsedIds(){\n var usedIds = [];\n _.forEach(this.getComposingElements(), function(elt){\n var id = elt.attr('id');\n if(id && !_.contains(usedIds, id)){\n usedIds.push(id);\n }\n });\n return usedIds;\n },\n\n attr : function(name, value){\n if(name){\n if(value !== undefined){\n this.attributes[name] = value;\n }else{\n if(typeof (name) === 'object'){\n for(var prop in name){\n this.attr(prop, name[prop]);\n }\n }else if(typeof (name) === 'string'){\n if(this.attributes[name] === undefined){\n return undefined;\n }else{\n return this.attributes[name];\n }\n }\n }\n }\n return this;\n },\n data : function(name, value){\n if(name){\n if(value !== undefined){\n this.metaData[name] = value;\n $(document).trigger('metaChange.qti-widget', {element : this, key : name, value : value});\n }else{\n if(typeof (name) === 'object'){\n for(var prop in name){\n this.data(prop, name[prop]);\n }\n }else if(typeof (name) === 'string'){\n if(this.metaData[name] === undefined){\n return undefined;\n }else{\n return this.metaData[name];\n }\n }\n }\n }\n return this;\n },\n removeData : function(name){\n delete this.metaData[name];\n return this;\n },\n removeAttr : function(name){\n return this.removeAttributes(name);\n },\n setAttributes : function(attributes){\n this.attributes = attributes;\n return this;\n },\n getAttributes : function(){\n return _.clone(this.attributes);\n },\n removeAttributes : function(attrNames){\n if(typeof (attrNames) === 'string'){\n attrNames = [attrNames];\n }\n for(var i in attrNames){\n delete this.attributes[attrNames[i]];\n }\n return this;\n },\n getComposingElements : function(){\n var elts = {};\n function append(element){\n elts[element.getSerial()] = element;//pass individual object by ref, instead of the whole list(object)\n elts = _.extend(elts, element.getComposingElements());\n }\n if(typeof this.initContainer === 'function'){\n append(this.getBody());\n }\n if(typeof this.initObject === 'function'){\n append(this.getObject());\n }\n _.each(this.metaData, function(v){\n if(Element.isA(v, '_container')){\n append(v);\n }else if(_.isArray(v)){\n _.each(v, function(v){\n if(Element.isA(v, '_container')){\n append(v);\n }\n });\n }\n });\n return elts;\n },\n getUsedClasses : function(){\n\n var ret = [this.qtiClass],\n composingElts = this.getComposingElements();\n\n _.each(composingElts, function(elt){\n ret.push(elt.qtiClass);\n });\n\n return _.uniq(ret);\n },\n find : function(serial){\n\n var found = null;\n\n if(typeof this.initObject === 'function'){\n var object = this.getObject();\n if(object.serial === serial){\n found = {'parent' : this, 'element' : object, 'location' : 'object'};\n }\n }\n\n if(!found && typeof this.initContainer === 'function'){\n found = this.getBody().find(serial, this);\n }\n\n return found;\n },\n parent : function(){\n var item = this.getRelatedItem();\n if(item){\n var found = item.find(this.getSerial());\n if(found){\n return found.parent;\n }\n }\n return null;\n },\n setRelatedItem : function(item, recursive){\n\n recursive = (typeof recursive === 'undefined') ? true : recursive;\n\n if(Element.isA(item, 'assessmentItem')){\n this.relatedItem = item;\n var composingElts = this.getComposingElements();\n for(var i in composingElts){\n composingElts[i].setRelatedItem(item, false);\n }\n }\n\n },\n getRelatedItem : function(){\n var ret = null;\n if(Element.isA(this.relatedItem, 'assessmentItem')){\n ret = this.relatedItem;\n }\n return ret;\n },\n setRenderer : function(renderer){\n if(renderer && renderer.isRenderer){\n this.renderer = renderer;\n var elts = this.getComposingElements();\n for(var serial in elts){\n elts[serial].setRenderer(renderer);\n }\n }else{\n throw 'invalid qti rendering engine';\n }\n },\n getRenderer : function(){\n return this.renderer;\n },\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments);\n var _renderer = args.renderer || this.getRenderer();\n\n var tplData = {},\n defaultData = {\n 'tag' : this.qtiClass,\n 'serial' : this.serial,\n 'attributes' : this.getAttributes()\n };\n\n if(!_renderer){\n throw 'render: no renderer found for the element ' + this.qtiClass + ':' + this.serial;\n }\n\n if(typeof this.initContainer === 'function'){\n //allow body to have a different renderer if it has its own renderer set\n defaultData.body = this.getBody().render(args.renderer);\n }\n if(typeof this.initObject === 'function'){\n defaultData.object = {\n attributes : this.object.getAttributes()\n };\n defaultData.object.attributes.data = _renderer.resolveUrl(this.object.attr('data'));\n }\n\n tplData = _.merge(defaultData, args.data || {});\n tplData = _renderer.getData(this, tplData, args.subclass);\n var rendering = _renderer.renderTpl(this, tplData, args.subclass);\n if(args.placeholder){\n args.placeholder.replaceWith(rendering);\n }\n\n return rendering;\n },\n postRender : function(data, altClassName, renderer){\n\n var postRenderers = [];\n var _renderer = renderer || this.getRenderer();\n\n if(typeof this.initContainer === 'function'){\n //allow body to have a different renderer if it has its own renderer set\n postRenderers = this.getBody().postRender({}, '', renderer);\n }\n\n if(_renderer){\n postRenderers.push(_renderer.postRender(this, data, altClassName));\n }else{\n throw 'postRender: no renderer found for the element ' + this.qtiClass + ':' + this.serial;\n }\n\n return _.compact(postRenderers);\n },\n getContainer : function($scope, subclass){\n var renderer = this.getRenderer();\n if(renderer){\n return renderer.getContainer(this, $scope, subclass);\n }else{\n throw 'getContainer: no renderer found for the element ' + this.qtiClass + ':' + this.serial;\n }\n },\n toArray : function(){\n var arr = {\n serial : this.serial,\n type : this.qtiClass,\n attributes : this.getAttributes()\n };\n\n if(typeof this.initContainer === 'function'){\n arr.body = this.getBody().toArray();\n }\n if(typeof this.initObject === 'function'){\n arr.object = this.object.toArray();\n }\n\n return arr;\n },\n isEmpty : function(){\n //tells whether the element should be considered empty or not, from the rendering point of view\n return false;\n },\n addClass : function(className){\n var clazz = this.attr('class') || '';\n if(!_containClass(clazz, className)){\n this.attr('class', clazz + (clazz.length ? ' ' : '') + className);\n }\n },\n hasClass : function(className){\n return _containClass(this.attr('class'), className);\n },\n removeClass : function(className){\n\n var clazz = this.attr('class') || '';\n if(clazz){\n\n var regex = new RegExp('(?:^|\\\\s)' + className + '(?:\\\\s|$)');\n clazz = clazz.replace(regex, ' ').trim();\n\n if(clazz){\n this.attr('class', clazz);\n }else{\n this.removeAttr('class');\n }\n }\n },\n /**\n * Add or remove class. Setting the optional state will force addition/removal.\n * State is here to keep the jQuery syntax\n *\n * @param {String} className\n * @param {Boolean} [state]\n */\n toggleClass : function(className, state) {\n\n if(typeof state === 'boolean') {\n return state ? this.addClass(className) : this.removeClass(className);\n }\n\n if(this.hasClass(className)) {\n return this.removeClass(className);\n }\n return this.addClass(className);\n },\n isset : function(){\n return Element.issetElement(this.serial);\n },\n unset : function(){\n return Element.unsetElement(this.serial);\n }\n });\n\n var _containClass = function(allClassStr, className){\n var regex = new RegExp('(?:^|\\\\s)' + className + '(?:\\\\s|$)', '');\n return allClassStr && regex.test(allClassStr);\n };\n\n //helpers\n Element.isA = function(qtiElement, qtiClass){\n return (qtiElement instanceof Element && qtiElement.is(qtiClass));\n };\n\n Element.getElementBySerial = function(serial){\n return _instances[serial];\n };\n\n Element.issetElement = function(serial){\n return !!_instances[serial];\n };\n\n /**\n * Unset a registered element from it's serial\n * @param {String} serial - the element serial\n * @returns {Boolean} true if unset\n */\n Element.unsetElement = function(serial){\n\n var element = Element.getElementBySerial(serial);\n\n if(element){\n\n var composingElements = element.getComposingElements();\n _.each(composingElements, function(elt){\n delete _instances[elt.serial];\n });\n delete _instances[element.serial];\n\n return true;\n }\n return false;\n };\n\n return Element;\n});\n\n\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n *\n */\n//@todo : move this to the ../helper directory\ndefine('taoQtiItem/qtiItem/core/Loader',['lodash', 'class', 'taoQtiItem/qtiItem/core/qtiClasses', 'taoQtiItem/qtiItem/core/Element'], function(_, Class, qtiClasses, Element){\n\n var Loader = Class.extend({\n init : function(item, classesLocation){\n\n this.qti = {}; //loaded qti classes are store here\n this.classesLocation = {};\n\n this.item = item || null;//starts either from scratch or with an existing item object\n this.setClassesLocation(classesLocation || qtiClasses);//load default location for qti classes model\n },\n setClassesLocation : function(qtiClasses){\n _.extend(this.classesLocation, qtiClasses);\n return this;\n },\n getRequiredClasses : function(data){\n var ret = [];\n for(var i in data){\n if(i === 'qtiClass' && data[i] !== '_container' && i !== 'relatedItem'){//although a _container is a concrete class in TAO, it is not defined in QTI standard\n ret.push(data[i]);\n }else if(typeof(data[i]) === 'object' && i !== 'responseRules'){ //responseRules should'nt be part of the parsing\n ret = _.union(ret, this.getRequiredClasses(data[i]));\n }\n }\n return ret;\n },\n loadRequiredClasses : function(data, callback, reload){\n\n var requiredClasses = this.getRequiredClasses(data, reload), required = [];\n\n for(var i in requiredClasses){\n var requiredClass = requiredClasses[i];\n if(this.classesLocation[requiredClass]){\n required.push(this.classesLocation[requiredClass]);\n }else{\n throw new Error('missing qti class location declaration : ' + requiredClass);\n }\n }\n\n var _this = this;\n require(required, function(){\n _.each(arguments, function(QtiClass){\n _this.qti[QtiClass.prototype.qtiClass] = QtiClass;\n });\n callback.call(_this, _this.qti);\n });\n },\n getLoadedClasses : function(){\n return _.keys(this.qti);\n },\n loadItemData : function(data, callback){\n\n var _this = this;\n _this.loadRequiredClasses(data, function(Qti){\n var i;\n if(typeof(data) === 'object' && data.qtiClass === 'assessmentItem'){\n\n //unload an item from it's serial (in case of a reload)\n if(data.serial){\n Element.unsetElement(data.serial);\n }\n\n _this.item = new Qti.assessmentItem(data.serial, data.attributes || {});\n _this.loadContainer(_this.item.getBody(), data.body);\n\n for(i in data.outcomes){\n var outcome = _this.buildOutcome(data.outcomes[i]);\n if(outcome){\n _this.item.addOutcomeDeclaration(outcome);\n }\n }\n for(i in data.feedbacks){\n var feedback = _this.buildElement(data.feedbacks[i]);\n if(feedback){\n _this.item.addModalFeedback(feedback);\n }\n }\n for(i in data.stylesheets){\n var stylesheet = _this.buildElement(data.stylesheets[i]);\n if(stylesheet){\n _this.item.addStylesheet(stylesheet);\n }\n }\n \n //important : build responses after all modal feedbacks and outcomes has been loaded, because the simple feedback rules need to reference them\n for(i in data.responses){\n var response = _this.buildResponse(data.responses[i]);\n if(response){\n _this.item.addResponseDeclaration(response);\n\n var feedbackRules = data.responses[i].feedbackRules;\n if(feedbackRules){\n _.forIn(feedbackRules, function(fbData, serial){\n response.feedbackRules[serial] = _this.buildSimpleFeedbackRule(fbData, response);\n });\n }\n }\n }\n \n if(data.responseProcessing){\n _this.item.setResponseProcessing(_this.buildResponseProcessing(data.responseProcessing));\n }\n _this.item.setNamespaces(data.namespaces);\n _this.item.setSchemaLocations(data.schemaLocations);\n _this.item.setApipAccessibility(data.apipAccessibility);\n }\n\n if(typeof(callback) === 'function'){\n callback.call(_this, _this.item);\n }\n });\n },\n loadAndBuildElement : function(data, callback){\n\n var _this = this;\n\n _this.loadRequiredClasses(data, function(Qti){\n\n var element = _this.buildElement(data);\n\n if(typeof(callback) === 'function'){\n callback.call(_this, element);\n }\n });\n },\n loadElement : function(element, data, callback){\n\n var _this = this;\n this.loadRequiredClasses(data, function(){\n _this.loadElementData(element, data);\n if(typeof(callback) === 'function'){\n callback.call(_this, element);\n }\n });\n },\n /**\n * Load ALL given elements into existing loaded item\n *\n * @todo to be renamed to loadItemElements\n * @param {object} data\n * @param {function} callback\n * @returns {undefined}\n */\n loadElements : function(data, callback){\n\n var _this = this;\n\n if(_this.item){\n\n this.loadRequiredClasses(data, function(){\n\n var allElements = _this.item.getComposingElements();\n\n for(var i in data){\n var elementData = data[i];\n if(elementData && elementData.qtiClass && elementData.serial){\n //find and update element\n if(allElements[elementData.serial]){\n _this.loadElementData(allElements[elementData.serial], elementData);\n }\n }\n }\n\n if(typeof(callback) === 'function'){\n callback.call(_this, _this.item);\n }\n });\n }else{\n throw 'QtiLoader : cannot load elements in empty item';\n }\n\n },\n buildResponse : function(data){\n\n var response = this.buildElement(data);\n\n response.template = data.howMatch || null;\n response.defaultValue = data.defaultValue || null;\n response.correctResponse = data.correctResponses || null;\n\n if(_.size(data.mapping)){\n response.mapEntries = data.mapping;\n }else if(_.size(data.areaMapping)){\n response.mapEntries = data.areaMapping;\n }else{\n response.mapEntries = {};\n }\n\n response.mappingAttributes = data.mappingAttributes || {};\n\n return response;\n },\n buildSimpleFeedbackRule : function(data, response){\n\n var feedbackRule = this.buildElement(data);\n \n feedbackRule.setCondition(response, data.condition, data.comparedValue || null);\n \n// feedbackRule.comparedOutcome = this.item.responses[data.comparedOutcome] || null;\n feedbackRule.feedbackOutcome = this.item.outcomes[data.feedbackOutcome] || null;\n feedbackRule.feedbackThen = this.item.modalFeedbacks[data.feedbackThen] || null;\n feedbackRule.feedbackElse = this.item.modalFeedbacks[data.feedbackElse] || null;\n \n //associate the compared outcome to the feedbacks if applicable\n var response = feedbackRule.comparedOutcome;\n if(feedbackRule.feedbackThen){\n feedbackRule.feedbackThen.data('relatedResponse', response);\n }\n if(feedbackRule.feedbackElse){\n feedbackRule.feedbackElse.data('relatedResponse', response);\n }\n \n return feedbackRule;\n },\n buildOutcome : function(data){\n var outcome = this.buildElement(data);\n outcome.defaultValue = data.defaultValue || null;\n return outcome;\n },\n buildResponseProcessing : function(data){\n var rp = this.buildElement(data);\n if(data && data.processingType){\n if(data.processingType === 'custom'){\n rp.xml = data.data;\n rp.processingType = 'custom';\n }else{\n rp.processingType = 'templateDriven';\n }\n }\n return rp;\n },\n loadContainer : function(bodyObject, bodyData){\n if(!Element.isA(bodyObject, '_container')){\n throw 'bodyObject must be a QTI Container';\n }\n\n if(bodyData && typeof bodyData.body === 'string' && (typeof bodyData.elements === 'array' || typeof bodyData.elements === 'object')){\n for(var serial in bodyData.elements){\n var eltData = bodyData.elements[serial];\n //check if class is loaded:\n var element = this.buildElement(eltData);\n if(element){\n bodyObject.setElement(element, bodyData.body);\n }\n }\n bodyObject.body(bodyData.body);\n }else{\n throw 'wrong bodydata format';\n }\n },\n buildElement : function(elementData){\n var elt = null;\n if(elementData && elementData.qtiClass && elementData.serial){\n var className = elementData.qtiClass;\n if(this.qti[className]){\n elt = new this.qti[className](elementData.serial);\n this.loadElementData(elt, elementData);\n }else{\n throw 'the qti element class does not exist: ' + className;\n }\n }else{\n throw 'wrong elementData format';\n }\n return elt;\n },\n loadElementData : function(element, data){\n\n //merge attributes when loading element data\n var attributes = _.defaults(data.attributes || {}, element.attributes || {});\n element.setAttributes(attributes);\n\n if(element.body && data.body){\n if(element.bdy){\n this.loadContainer(element.getBody(), data.body);\n }\n }\n\n if(element.object && data.object){\n if(element.object){\n this.loadObjectData(element.object, data.object);\n }\n }\n\n if(Element.isA(element, 'interaction')){\n this.loadInteractionData(element, data);\n }else if(Element.isA(element, 'choice')){\n this.loadChoiceData(element, data);\n }else if(Element.isA(element, 'math')){\n this.loadMathData(element, data);\n }else if(Element.isA(element, 'infoControl')){\n this.loadPicData(element, data);\n }\n\n return element;\n },\n loadInteractionData : function(interaction, data){\n if(Element.isA(interaction, 'blockInteraction')){\n if(data.prompt){\n this.loadContainer(interaction.prompt.getBody(), data.prompt);\n }\n }\n\n this.buildInteractionChoices(interaction, data);\n\n if(Element.isA(interaction, 'customInteraction')){\n this.loadPciData(interaction, data);\n }\n },\n buildInteractionChoices : function(interaction, data){\n\n //note: Qti.ContainerInteraction (Qti.GapMatchInteraction and Qti.HottextInteraction) has already been parsed by builtElement(interacionData);\n if(data.choices){\n if(Element.isA(interaction, 'matchInteraction')){\n for(var set = 0; set < 2; set++){\n if(!data.choices[set]){\n throw 'missing match set #' + set;\n }\n var matchSet = data.choices[set];\n for(var serial in matchSet){\n var choice = this.buildElement(matchSet[serial]);\n if(choice){\n interaction.addChoice(choice, set);\n }\n }\n }\n }else{\n for(var serial in data.choices){\n var choice = this.buildElement(data.choices[serial]);\n if(choice){\n interaction.addChoice(choice);\n }\n }\n }\n\n if(Element.isA(interaction, 'graphicGapMatchInteraction')){\n if(data.gapImgs){\n for(var serial in data.gapImgs){\n var gapImg = this.buildElement(data.gapImgs[serial]);\n if(gapImg){\n interaction.addGapImg(gapImg);\n }\n }\n }\n }\n\n }\n\n },\n loadChoiceData : function(choice, data){\n if(Element.isA(choice, 'textVariableChoice')){\n choice.val(data.text);\n }else if(Element.isA(choice, 'gapImg')){\n //has already been taken care of in buildElement()\n }else if(Element.isA(choice, 'containerChoice')){\n //has already been taken care of in buildElement()\n }\n },\n loadObjectData : function(object, data){\n object.setAttributes(data.attributes);\n //@todo: manage object like a container\n if(data._alt){\n if(data._alt.qtiClass === 'object'){\n object._alt = Loader.buildElement(data._alt);\n }else{\n object._alt = data._alt;\n }\n }\n },\n loadMathData : function(math, data){\n math.ns = data.ns || {};\n math.setMathML(data.mathML || '');\n _.forIn(data.annotations || {}, function(value, encoding){\n math.setAnnotation(encoding, value);\n });\n },\n loadPciData : function(pci, data){\n loadPortableCustomElementData(pci, data);\n },\n loadPicData : function(pic, data){\n loadPortableCustomElementData(pic, data);\n }\n });\n\n function loadPortableCustomElementData(portableElement, data){\n portableElement.typeIdentifier = data.typeIdentifier;\n portableElement.markup = data.markup;\n portableElement.entryPoint = data.entryPoint;\n portableElement.properties = data.properties;\n portableElement.libraries = data.libraries;\n }\n\n return Loader;\n});\n\n","/**\n * Common helper functions\n */\ndefine('taoQtiItem/qtiItem/helper/interactionHelper',['lodash', 'taoQtiItem/qtiItem/core/Element'], function(_, Element){\n return {\n convertChoices : function(choices, outputType){\n\n var ret = [], _this = this;\n\n _.each(choices, function(c){\n if(Element.isA(c, 'choice')){\n switch(outputType){\n case 'serial':\n ret.push(c.getSerial());\n break;\n case 'identifier':\n ret.push(c.id());\n break;\n default:\n ret.push(c);\n }\n\n }else if(_.isArray(c)){\n ret.push(_this.convertChoices(c, outputType));\n }\n });\n\n return ret;\n },\n findChoices : function(interaction, choices, inputType){\n\n var ret = [], _this = this;\n\n _.each(choices, function(c){\n var choice;\n if(_.isString(c)){\n if(inputType === 'serial'){\n choice = interaction.getChoice(c);\n if(choice){\n ret.push(choice);\n }\n }else if(inputType === 'identifier'){\n choice = interaction.getChoiceByIdentifier(c);\n if(choice){\n ret.push(choice);\n }\n }else{\n ret.push(c);\n }\n }else if(_.isArray(c)){\n ret.push(_this.findChoices(interaction, c, inputType));\n }else{\n ret.push(c);\n }\n });\n\n return ret;\n },\n shuffleChoices : function(choices){\n var r = [], //returned array\n f = {}, //fixed choices array\n j = 0;\n\n for(var i in choices){\n if(Element.isA(choices[i], 'choice')){\n var choice = choices[i];\n if(choice.attr('fixed')){\n f[j] = choice;\n }\n r.push(choice);\n j++;\n }else{\n throw 'invalid element in array: is not a qti choice';\n }\n }\n\n for(var n = 0; n < r.length - 1; n++){\n if(f[n]){\n continue;\n }\n var k = -1;\n do{\n k = n + Math.floor(Math.random() * (r.length - n));\n }while(f[k]);\n var tmp = r[k];\n r[k] = r[n];\n r[n] = tmp;\n }\n\n return r;\n },\n serialToIdentifier : function(interaction, choiceSerial){\n var choice = interaction.getChoice(choiceSerial);\n if(choice){\n return choice.id();\n }else{\n return '';\n }\n }\n }\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * Helps you to load and change item runner themes at runtime\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('ui/themeLoader',['jquery', 'lodash'], function($, _){\n 'use strict';\n\n //used to differentiate the stylesheets\n var prefix = 'custom-theme-';\n\n //where to attach the stylesheets\n var $container = $('head').length ? $('head') : $('body');\n\n var ns = 'themeloader';\n\n /**\n * @typedef Theme\n * @property {String} id - theme identifier (unique)\n * @property {String} path - theme location\n * @property {String} [name] - name to display\n */\n\n\n /**\n * Trigger a theme change that is slightly delayed to be\n * reasonably sure all styles have been applied.\n *\n * @param themeId\n */\n\n var triggerThemeChange = function triggerThemeChange(themeId) {\n _.delay(function() {\n $(document).trigger('themechange.' + ns, [themeId]);\n }, 200);\n };\n\n\n /**\n * Create a stylesheet tag\n * @param {Theme} theme - the theme\n * @return {jQueryElement} the link node\n */\n var createStyleSheet = function createStyleSheet(theme){\n var type = (theme.id === 'base') ? prefix + 'base' : prefix + 'theme';\n return $('<link>')\n .attr({\n rel : 'stylesheet',\n type : 'text/css',\n href : theme.path,\n 'data-type' : type,\n 'data-name' : theme.name || theme.id,\n 'data-id' : theme.id\n });\n };\n\n /**\n * Get the stylesheet\n * @param {String} id - the theme identifier\n * @returns {jQueryElement} the link\n */\n var getLink = function getLink(id){\n return $('link[data-id=\"' + id + '\"][data-type^=\"' + prefix + '\"]', $container);\n };\n\n /**\n * Is the stylesheet attached to the container ?\n * @param {String} id - the theme identifier\n * @param {Boolean} [disabled = false] - is the stylesheet disabled\n */\n var isAttached = function isAttached(id){\n return getLink(id).length > 0;\n };\n\n /**\n * Enable some nodes\n * @param {jQueryElement} $nodes - the nodes to enable\n * @returns {jQueryElement}\n */\n var enable = function enable($nodes){\n $nodes.prop('disabled', false)\n .removeProp('disabled')\n .removeAttr('disabled');\n };\n\n /**\n * Disable some nodes\n * @param {jQueryElement} $nodes - the nodes to disable\n * @returns {jQueryElement}\n */\n var disable = function enable($nodes){\n return $nodes.prop('disabled', true)\n .attr('disabled', true); //add attr only for easiest inspection\n };\n\n /**\n * The themeLoader is a factory that returns a loader. Configured to load the given styles.\n *\n * @param {Object} config - the themes configuration\n * @param {String} config.base - the location of the base style\n * @param {String} [config.default] - the name of the default theme (one of the key of the available list )\n * @param {Theme[]} config.available - the list of available themes\n * @returns {Object} the loader\n * @throws TypeError if the config hasn't the correct form\n */\n var themeLoader = function themeLoader(config){\n\n var defaultTheme;\n var activeTheme;\n var styles = {};\n var themes;\n var i;\n\n\n\n /*\n * validate config\n */\n if(!_.isPlainObject(config)){\n throw new TypeError('Theme loader configuration is required');\n }\n\n if(!_.isString(config.base)){\n throw new TypeError('Theme loader configuration is an object with a base property configuration');\n }\n\n if(!_.isArray(config.available) || !config.available.length ){\n throw new TypeError('No theme declared in the configuration');\n }\n\n for(i in config.available){\n if(!_.isPlainObject(config.available[i]) || _.isEmpty(config.available[i].id) || _.isEmpty(config.available[i].path)){\n throw new TypeError('There is a theme that does not contain an id or a path');\n }\n }\n\n /*\n * Extract data from config\n */\n defaultTheme = config.default || _.first(_.pluck(config.available, 'id'));\n\n activeTheme = defaultTheme;\n\n themes = [{\n id : 'base',\n path : config.base,\n name : 'TAO'\n }];\n themes = themes.concat(config.available);\n\n _.forEach(themes, function(theme){\n if(isAttached(theme.id)){\n styles[theme.id] = getLink(theme.id);\n } else {\n styles[theme.id] = createStyleSheet(theme);\n }\n });\n\n\n /**\n * The loader instance\n */\n return {\n\n /**\n * Load the themes\n * @returns {Object} chains\n */\n load : function load(){\n _.forEach(styles, function($link, id){\n if(!isAttached(id)){\n if (id === activeTheme) {\n $link.on('load', function() {\n triggerThemeChange(id);\n });\n }\n disable($link);\n $container.append($link);\n }\n if(id !== 'base' && id !== defaultTheme){\n disable($link);\n } else {\n enable($link);\n\n activeTheme = id;\n triggerThemeChange(activeTheme);\n }\n });\n return this;\n },\n\n /**\n * Unload the stylesheets (disable them)\n * @returns {Object} chains\n */\n unload : function unload(){\n disable($('link[data-type^=\"' + prefix + '\"]', $container));\n\n return this;\n },\n\n /**\n * Change the current theme\n * @param {String} id - the theme id to use\n * @returns {Object} chains\n */\n change : function change(id){\n\n //support to change to the \"default\" theme regardless it's id\n if(_.contains(['base', 'default'], id) && !isAttached(id)){\n id = defaultTheme;\n }\n\n if(isAttached(id)){\n //disable all\n disable($('link[data-type=\"' + prefix + 'theme\"]', $container));\n\n //enable the theme only\n enable(getLink(id));\n\n activeTheme = id;\n triggerThemeChange(activeTheme);\n\n }\n return this;\n },\n\n /**\n * Return the current theme\n * @returns {String} activeTheme\n */\n getActiveTheme : function getActiveTheme() {\n return activeTheme;\n }\n };\n };\n\n /**\n * @exports ui/themeLoader\n */\n return themeLoader;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * A factory to create a QTI renderer.\n *\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiRunner/core/Renderer',[\n 'lodash',\n 'jquery',\n 'handlebars',\n 'core/promise',\n 'taoQtiItem/qtiItem/core/Element',\n 'taoQtiItem/qtiItem/helper/interactionHelper',\n 'ui/themeLoader'\n], function(_, $, Handlebars, Promise, Element, interactionHelper, themeLoader){\n 'use strict';\n\n var _isValidRenderer = function(renderer){\n\n var valid = true;\n\n if(typeof (renderer) !== 'object'){\n return false;\n }\n\n var classCorrect = false;\n if(renderer.qtiClass){\n if(_.indexOf(_renderableClasses, renderer.qtiClass) >= 0){\n classCorrect = true;\n }else{\n var pos = renderer.qtiClass.indexOf('.');\n if(pos > 0){\n var qtiClass = renderer.qtiClass.slice(0, pos);\n var subClass = renderer.qtiClass.slice(pos + 1);\n if(_renderableSubclasses[qtiClass] && _.indexOf(_renderableSubclasses[qtiClass], subClass) >= 0){\n classCorrect = true;\n }\n }\n }\n }\n if(!classCorrect){\n valid = false;\n throw new Error('invalid qti class name in renderer declaration : ' + renderer.qtiClass);\n }\n\n if(!renderer.template){\n valid = false;\n throw new Error('missing template in renderer declaration : ' + renderer.qtiClass);\n }\n\n return valid;\n };\n\n var _renderableClasses = [\n '_container',\n 'assessmentItem',\n 'stylesheet',\n 'responseDeclaration',\n 'outcomeDeclaration',\n 'responseProcessing',\n '_simpleFeedbackRule',\n 'img',\n 'math',\n 'object',\n 'modalFeedback',\n 'rubricBlock',\n 'associateInteraction',\n 'choiceInteraction',\n 'extendedTextInteraction',\n 'gapMatchInteraction',\n 'graphicAssociateInteraction',\n 'graphicGapMatchInteraction',\n 'graphicOrderInteraction',\n 'hotspotInteraction',\n 'hottextInteraction',\n 'inlineChoiceInteraction',\n 'matchInteraction',\n 'mediaInteraction',\n 'orderInteraction',\n 'selectPointInteraction',\n 'sliderInteraction',\n 'textEntryInteraction',\n 'uploadInteraction',\n 'endAttemptInteraction',\n 'customInteraction',\n 'prompt',\n 'associableHotspot',\n 'gap',\n 'gapImg',\n 'gapText',\n 'hotspotChoice',\n 'hottext',\n 'inlineChoice',\n 'simpleAssociableChoice',\n 'simpleChoice',\n 'infoControl',\n 'include'\n ];\n\n /**\n * The list of qti element dependencies. It is used internally to load dependent qti classes\n */\n var _dependencies = {\n assessmentItem : ['stylesheet', '_container', 'prompt', 'modalFeedback'],\n rubricBlock : ['_container'],\n associateInteraction : ['simpleAssociableChoice'],\n choiceInteraction : ['simpleChoice'],\n gapMatchInteraction : ['gap', 'gapText'],\n graphicAssociateInteraction : ['associableHotspot'],\n graphicGapMatchInteraction : ['associableHotspot', 'gapImg'],\n graphicOrderInteraction : ['hotspotChoice'],\n hotspotInteraction : ['hotspotChoice'],\n hottextInteraction : ['hottext'],\n inlineChoiceInteraction : ['inlineChoice'],\n matchInteraction : ['simpleAssociableChoice'],\n orderInteraction : ['simpleChoice']\n };\n\n /**\n * The list of supported qti subclasses.\n */\n var _renderableSubclasses = {\n 'simpleAssociableChoice' : ['associateInteraction', 'matchInteraction'],\n 'simpleChoice' : ['choiceInteraction', 'orderInteraction']\n };\n\n /**\n * List of the default properties for the item\n */\n var _defaults = {\n shuffleChoices : true\n };\n\n /**\n * Get the location of the document, useful to define a baseUrl for the required context\n * @returns {String}\n */\n function getDocumentBaseUrl(){\n return window.location.protocol + '//' + window.location.host + window.location.pathname.replace(/([^\\/]*)$/, '');\n }\n\n /**\n * The built Renderer class\n * @constructor\n * @param {Object} [options] - the renderer options\n * @param {AssetManager} [options.assetManager] - The renderer needs an AssetManager to resolve URLs (see {@link taoItems/assets/manager})\n * @param {Boolean} [options.shuffleChoices = true] - Does the renderer take care of the shuffling\n * @param {Object} [options.decorators] - to set up rendering decorator\n * @param {preRenderDecorator} [options.decorators.before] - to set up a pre decorator\n * @param {postRenderDecorator} [options.decorators.after] - to set up a post decorator\n */\n var Renderer = function(options){\n\n /**\n * Store the registered renderer location\n */\n var _locations = {};\n\n /**\n * Store loaded renderers\n */\n var _renderers = {};\n\n options = _.defaults(options || {}, _defaults);\n\n this.isRenderer = true;\n\n this.name = '';\n\n //store shuffled choice here\n this.shuffledChoices = [];\n\n /**\n * Get the actual renderer of the give qti class or subclass:\n * e.g. simplceChoice, simpleChoice.choiceInteraction, simpleChoice.orderInteraction\n */\n var _getClassRenderer = function(qtiClass){\n var ret = null;\n if(_renderers[qtiClass]){\n ret = _renderers[qtiClass];\n }else{\n var pos = qtiClass.indexOf('.');\n if(pos > 0){\n qtiClass = qtiClass.slice(0, pos);\n if(_renderers[qtiClass]){\n ret = _renderers[qtiClass];\n }\n }\n }\n return ret;\n };\n\n /**\n * Set the renderer options\n * @param {String} key - the name of the option\n * @param {*} value - the option vallue\n * @returns {Renderer} for chaining\n */\n this.setOption = function(key, value){\n if(typeof (key) === 'string'){\n options[key] = value;\n }\n return this;\n };\n\n /**\n * Set the renderer options\n * @param {Object} opts - the options\n * @returns {Renderer} for chaining\n */\n this.setOptions = function(opts){\n options = _.extend(options, opts);\n return this;\n };\n\n /**\n * Get the renderer option\n * @param {String} key - the name of the option\n * @returns {*|null} the option vallue\n */\n this.getOption = function(key){\n if(typeof (key) === 'string' && options[key]){\n return options[key];\n }\n return null;\n };\n\n /**\n * Get the bound assetManager\n * @returns {AssetManager} the assetManager\n */\n this.getAssetManager = function getAssetManager(){\n return options.assetManager;\n };\n\n /**\n * Get the bound theme loader\n * @returns {Object} the themeLoader\n */\n this.getThemeLoader = function getThemeLoader(){\n return this.themeLoader;\n };\n\n\n /**\n * Renders the template\n * @param {Object} element - the QTI model element\n * @param {Object} data - the data to give to the template\n * @param {String} [qtiSubclass] - to get the render of the element subclass (when element's qtiClass is abstract)\n * @returns {String} the template results\n * @throws {Error} if the renderer is not set or has no template bound\n */\n this.renderTpl = function(element, data, qtiSubclass){\n\n var res;\n var ret = '';\n var tplFound = false;\n var qtiClass = qtiSubclass || element.qtiClass;\n var renderer = _getClassRenderer(qtiClass);\n var decorators = this.getOption('decorators');\n\n if(!renderer || !_.isFunction(renderer.template)){\n throw new Error('no renderer template loaded under the class name : ' + qtiClass);\n }\n\n //pre rendering decoration\n if(_.isObject(decorators) && _.isFunction(decorators.before)){\n\n /**\n * @callback preRenderDecoractor\n * @param {Object} element - the QTI model element\n * @param {String} [qtiSubclass] - to get the render of the element subclass (when element's qtiClass is abstract)\n * @returns {String} the decorator result\n */\n res = decorators.before(element, qtiSubclass);\n if(_.isString(res)){\n ret += res;\n }\n }\n\n //render the template\n ret += renderer.template(data);\n\n\n //post rendering decoration\n if(_.isObject(decorators) && _.isFunction(decorators.after)){\n\n /**\n * @callback postRenderDecoractor\n * @param {Object} element - the QTI model element\n * @param {String} [qtiSubclass] - to get the render of the element subclass (when element's qtiClass is abstract)\n * @returns {String} the decorator result\n */\n res = decorators.after(element, qtiSubclass);\n if(_.isString(res)){\n ret += res;\n }\n }\n return ret;\n };\n\n this.getData = function(element, data, qtiSubclass){\n\n var ret = data,\n qtiClass = qtiSubclass || element.qtiClass,\n renderer = _getClassRenderer(qtiClass);\n\n if(renderer){\n if(typeof (renderer.getData) === 'function'){\n ret = renderer.getData.call(this, element, data);\n }\n }\n\n return ret;\n };\n\n this.renderDirect = function(tpl, data){\n return Handlebars.compile(tpl)(data);\n };\n\n this.getContainer = function(qtiElement, $scope, qtiSubclass){\n\n var ret = null,\n qtiClass = qtiSubclass || qtiElement.qtiClass,\n renderer = _getClassRenderer(qtiClass);\n\n if(renderer){\n ret = renderer.getContainer(qtiElement, $scope);\n }else{\n throw 'no renderer found for the class : ' + qtiElement.qtiClass;\n }\n return ret;\n };\n\n this.postRender = function(qtiElement, data, qtiSubclass){\n\n var qtiClass = qtiSubclass || qtiElement.qtiClass;\n var renderer = _getClassRenderer(qtiClass);\n\n if(renderer && typeof (renderer.render) === 'function') {\n return renderer.render.call(this, qtiElement, data);\n }\n };\n\n this.setResponse = function(qtiInteraction, response, qtiSubclass){\n\n var ret = false,\n qtiClass = qtiSubclass || qtiInteraction.qtiClass,\n renderer = _getClassRenderer(qtiClass);\n\n if(renderer){\n if(typeof (renderer.setResponse) === 'function'){\n ret = renderer.setResponse.call(this, qtiInteraction, response);\n var $container = renderer.getContainer.call(this, qtiInteraction);\n if($container instanceof $ && $container.length){\n $container.trigger('responseSet', [qtiInteraction, response]);\n }\n }\n }else{\n throw 'no renderer registered under the name : ' + qtiClass;\n }\n return ret;\n };\n\n this.getResponse = function(qtiInteraction, qtiSubclass){\n\n var ret = false,\n qtiClass = qtiSubclass || qtiInteraction.qtiClass,\n renderer = _getClassRenderer(qtiClass);\n\n if(renderer){\n if(typeof (renderer.getResponse) === 'function'){\n ret = renderer.getResponse.call(this, qtiInteraction);\n }\n }else{\n throw 'no renderer registered under the name : ' + qtiClass;\n }\n return ret;\n };\n\n this.resetResponse = function(qtiInteraction, qtiSubclass){\n\n var ret = false,\n qtiClass = qtiSubclass || qtiInteraction.qtiClass,\n renderer = _getClassRenderer(qtiClass);\n\n if(renderer){\n if(typeof (renderer.resetResponse) === 'function'){\n ret = renderer.resetResponse.call(this, qtiInteraction);\n }\n }else{\n throw 'no renderer registered under the name : ' + qtiClass;\n }\n return ret;\n };\n\n /**\n * Retrieve the state of the interaction.\n * If the renderer has no state management, it falls back to the response management.\n *\n * @param {Object} qtiInteraction - the interaction\n * @param {String} [qtiSubClass] - (not sure of the type and how it is used - Sam ? )\n * @returns {Object} the interaction's state\n *\n * @throws {Error} if no renderer is registered\n */\n this.getState = function(qtiInteraction, qtiSubclass){\n\n var ret = false;\n var qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n var renderer = _getClassRenderer(qtiClass);\n\n if(renderer){\n if(_.isFunction(renderer.getState)){\n ret = renderer.getState.call(this, qtiInteraction);\n } else {\n ret = renderer.getResponse.call(this, qtiInteraction);\n }\n }else{\n throw 'no renderer registered under the name : ' + qtiClass;\n }\n return ret;\n };\n\n /**\n * Retrieve the state of the interaction.\n * If the renderer has no state management, it falls back to the response management.\n *\n * @param {Object} qtiInteraction - the interaction\n * @param {Object} state - the interaction's state\n * @param {String} [qtiSubClass] - (not sure of the type and how it is used - Sam ? )\n *\n * @throws {Error} if no renderer is found\n */\n this.setState = function(qtiInteraction, state, qtiSubclass){\n\n var qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n var renderer = _getClassRenderer(qtiClass);\n\n if(renderer){\n if(_.isFunction(renderer.setState)){\n renderer.setState.call(this, qtiInteraction, state);\n } else {\n renderer.resetResponse.call(this, qtiInteraction);\n renderer.setResponse.call(this, qtiInteraction, state);\n }\n }else{\n throw 'no renderer registered under the name : ' + qtiClass;\n }\n };\n\n /**\n * Calls the renderer destroy.\n * Ask the renderer to run destroy if exists.\n *\n * @throws {Error} if no renderer is found\n */\n this.destroy = function(qtiInteraction, qtiSubclass){\n\n var ret = false,\n qtiClass = qtiSubclass || qtiInteraction.qtiClass,\n renderer = _getClassRenderer(qtiClass);\n\n if(renderer){\n if(_.isFunction(renderer.destroy)){\n ret = renderer.destroy.call(this, qtiInteraction);\n }\n }else{\n throw 'no renderer registered under the name : ' + qtiClass;\n }\n return ret;\n };\n\n this.getLoadedRenderers = function(){\n return _renderers;\n };\n\n this.register = function(renderersLocations){\n _.extend(_locations, renderersLocations);\n };\n\n this.load = function(callback, requiredClasses){\n var self = this;\n var required = [];\n\n if(options.themes){\n\n //resolve themes paths\n options.themes.base = this.resolveUrl(options.themes.base);\n _.forEach(options.themes.available, function(theme, index){\n options.themes.available[index].path = self.resolveUrl(theme.path);\n });\n this.themeLoader = themeLoader(options.themes).load();\n }\n\n if(requiredClasses){\n if(_.isArray(requiredClasses)){\n\n //exclude abstract classes\n requiredClasses = _.intersection(requiredClasses, _renderableClasses);\n\n //add dependencies\n _.each(requiredClasses, function(reqClass){\n var deps = _dependencies[reqClass];\n if(deps){\n requiredClasses = _.union(requiredClasses, deps);\n }\n });\n\n _.forEach(requiredClasses, function(qtiClass){\n\n if(_renderableSubclasses[qtiClass]){\n var requiredSubClasses = _.intersection(requiredClasses, _renderableSubclasses[qtiClass]);\n _.each(requiredSubClasses, function(subclass){\n if(_locations[qtiClass + '.' + subclass]){\n required.push(_locations[qtiClass + '.' + subclass]);\n }else if(_locations[qtiClass]){\n required.push(_locations[qtiClass]);\n }else{\n throw new Error(self.name + ' : missing qti class location declaration: ' + qtiClass + ', subclass: ' + subclass);\n }\n });\n } else {\n if(_locations[qtiClass] === false){\n _renderers[qtiClass] = false;//mark this class as not renderable\n }else if(_locations[qtiClass]){\n required.push(_locations[qtiClass]);\n }else{\n throw new Error(self.name + ' : missing qti class location declaration: ' + qtiClass);\n }\n }\n });\n } else {\n throw new Error('invalid argument type: expected array for arg \"requireClasses\"');\n }\n\n }else{\n required = _.values(_locations);\n }\n\n var _this = this;\n require(required, function(){\n\n _.each(arguments, function(clazz){\n if(_isValidRenderer(clazz)){\n _renderers[clazz.qtiClass] = clazz;\n }\n });\n\n if(typeof (callback) === 'function'){\n callback.call(_this, _renderers);\n }\n });\n\n return this;\n };\n\n /**\n * Unload the renderer\n */\n this.unload = function unload(){\n if(this.themeLoader){\n themeLoader(options.themes).unload();\n }\n return this;\n };\n\n /**\n * Define the shuffling manually\n *\n * @param {Object} interaction - the interaction\n * @param {Array} choices - the shuffled choices\n * @param {String} identificationType -\n */\n this.setShuffledChoices = function(interaction, choices, identificationType){\n if(Element.isA(interaction, 'interaction')){\n this.shuffledChoices[interaction.getSerial()] = _.pluck(interactionHelper.findChoices(interaction, choices, identificationType), 'serial');\n }\n };\n\n /**\n * Get the choices shuffled for this interaction.\n *\n * @param {Object} interaction - the interaction\n * @param {Boolean} reshuffle - by default choices are shuffled only once and store, but if true you can force shuffling again\n * @param {String} returnedType - the choice type\n * @returns {Array} the choices\n */\n this.getShuffledChoices = function(interaction, reshuffle, returnedType){\n var choices = [];\n var shuffled = [];\n var serial, i;\n\n if(Element.isA(interaction, 'interaction')){\n serial = interaction.getSerial();\n\n //1st time, we shuffle (or asked to force shuffling)\n if(!this.shuffledChoices[serial] || reshuffle){\n if(Element.isA(interaction, 'matchInteraction')){\n this.shuffledChoices[serial] = [];\n for(i = 0; i < 2; i++){\n choices[i] = interactionHelper.shuffleChoices(interaction.getChoices(i));\n this.shuffledChoices[serial][i] = _.pluck(choices[i], 'serial');\n }\n } else {\n choices = interactionHelper.shuffleChoices(interaction.getChoices());\n this.shuffledChoices[serial] = _.pluck(choices, 'serial');\n }\n\n //otherwise get the choices from the serials\n } else {\n if(Element.isA(interaction, 'matchInteraction')){\n _.forEach(choices, function(choice, index){\n if(index < 2){\n _.forEach(this.shuffledChoices[serial][i], function(choiceSerial){\n choice.push(interaction.getChoice(choiceSerial));\n });\n }\n });\n } else {\n _.forEach(this.shuffledChoices[serial], function(choiceSerial){\n choices.push(interaction.getChoice(choiceSerial));\n });\n }\n }\n\n //do some type convertion\n if(returnedType === 'serial' || returnedType === 'identifier'){\n return interactionHelper.convertChoices(choices, returnedType);\n }\n\n //pass value only, not ref\n return _.clone(choices);\n }\n\n return [];\n };\n\n this.getRenderers = function(){\n return _renderers;\n };\n\n this.getLocations = function(){\n return _locations;\n };\n\n /**\n * Resolve URLs using the defined assetManager's strategies\n * @param {String} url - the URL to resolve\n * @returns {String} the resolved URL\n */\n this.resolveUrl = function resolveUrl(url){\n if(!options.assetManager){\n return url;\n }\n if(typeof url === 'string' && url.length > 0){\n return options.assetManager.resolve(url);\n }\n };\n\n /**\n * @deprecated in favor of resolveUrl\n */\n this.getAbsoluteUrl = function(relUrl){\n\n //let until method is removed\n console.warn('DEPRECATED used getAbsoluteUrl with ', arguments);\n\n //allow relative url output only if explicitely said so\n if(this.getOption('userRelativeUrl')){\n return relUrl.replace(/^\\.?\\//, '');\n }\n\n if(/^http(s)?:\\/\\//i.test(relUrl) || /^data:[^\\/]+\\/[^;]+(;charset=[\\w]+)?;base64,/.test(relUrl)){\n //already absolute or base64 encoded\n return relUrl;\n }else{\n\n var absUrl = '';\n var runtimeLocations = this.getOption('runtimeLocations');\n\n if(runtimeLocations && _.size(runtimeLocations)){\n _.forIn(runtimeLocations, function(runtimeLocation, typeIdentifier){\n if(relUrl.indexOf(typeIdentifier) === 0){\n absUrl = relUrl.replace(typeIdentifier, runtimeLocation);\n return false;//break\n }\n });\n }\n\n if(absUrl){\n return absUrl;\n }else{\n var baseUrl = this.getOption('baseUrl') || getDocumentBaseUrl();\n return baseUrl + relUrl;\n }\n\n }\n };\n };\n\n /**\n * Expose the renderer's factory\n * @exports taoQtiItem/qtiRunner/core/Renderer\n */\n return {\n\n /**\n * Creates a new Renderer by extending the Renderer's prototype\n * @param {Object} renderersLocations -\n * @param {String} [name] - the new renderer name\n * @param {Object} [defaultOptions] - the renderer options\n */\n build : function(renderersLocations, name, defaultOptions){\n var NewRenderer = function(){\n var options = _.isPlainObject(arguments[0]) ? arguments[0] : {};\n\n Renderer.apply(this);\n\n this.register(renderersLocations);\n this.name = name || '';\n this.setOptions(_.defaults(options, defaultOptions || {}));\n };\n NewRenderer.prototype = Renderer.prototype;\n return NewRenderer;\n }\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\n\n/**\n * Themes configuration, enables you to access the available themes.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('ui/themes',[\n 'lodash',\n 'module'\n], function(_, module){\n 'use strict';\n\n var config = module.config();\n\n /**\n * Let's you access to platform themes\n * @exports ui/themes\n */\n return {\n\n /**\n * Get the themes config for.\n *\n * @example themes().get('items');\n *\n * @param {String} what - themes are classified, what is the theme for ?\n * @returns {Object?} the themes config\n */\n get : function get(what){\n if(_.isPlainObject(config[what])){\n return config[what];\n }\n },\n\n /**\n * Get the list of available themes.\n *\n * @example themes().getAvailable('items');\n *\n * @param {String} what - themes are classified, what is the theme for ?\n * @returns {Array} the themes\n */\n getAvailable : function getAvailable(what){\n var available = [];\n var themes = this.get(what);\n if(themes && _.isArray(themes.available)){\n available = themes.available;\n }\n return available;\n }\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n * Provides common strategies to resolved assets\n * that may be used by any type of items.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoItems/assets/strategies',[\n 'util/url'\n], function(urlUtil){\n 'use strict';\n\n /**\n * Unrelated strategies accessible by there name.\n * Remember to not use the whole object, but each one in an array since the order matters.\n *\n * @exports taoItems/assets/strategies\n */\n var strategies = {\n\n //the baseUrl concats the baseUrl in data if the url is relative\n baseUrl : {\n name : 'baseUrl',\n handle : function handleBaseUrl(url, data){\n if(typeof data.baseUrl === 'string' && (urlUtil.isRelative(url)) ){\n\n //is slashcat we manage slash concact\n if(data.slashcat === true){\n return data.baseUrl.replace(/\\/$/, '') + '/' + url.directory.replace(/^\\.\\//, '').replace(/^\\//, '')\n + encodeURIComponent(url.file.replace(/^\\.\\//, '').replace(/^\\//, ''));\n }\n\n return data.baseUrl + url.directory.replace(/^\\.?\\//, '') + encodeURIComponent(url.file.replace(/^\\.?\\//, ''));\n }\n }\n },\n\n //absolute URL are just left intact\n external : {\n name : 'external',\n handle : function handleExternal(url, data){\n if(urlUtil.isAbsolute(url)){\n return url.toString();\n }\n }\n },\n\n //the base64 encoded resources are also left intact\n base64 : {\n name : 'base64',\n handle : function handleB64(url){\n if(urlUtil.isBase64(url)){\n return url.toString();\n }\n }\n },\n\n //special tao media protocol\n taomedia : {\n name : 'taomedia',\n handle : function handleTaoMedia(url, data){\n //either a baseUrl is given or if empty, taomedia resources are managed as relative resources\n var baseUrl = data.baseUrl || './';\n if( (typeof url === 'object' && url.protocol === 'taomedia') ||\n (/^taomedia:\\/\\//.test(url.toString())) ){\n return baseUrl + url.toString();\n }\n }\n }\n };\n return strategies;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n */\n\ndefine('taoQtiItem/qtiCommonRenderer/renderers/config',[\n 'lodash',\n 'context',\n 'ui/themes',\n 'taoItems/assets/manager',\n 'taoItems/assets/strategies',\n 'module'\n], function(_, context, themes, assetManagerFactory, assetStrategies, module){\n 'use strict';\n\n var itemThemes = themes.get('items');\n\n //stratgy to resolve portable info control and portable interactions paths.\n //It should never be reached in the stack the ususal way and should be called only using resolveBy.\n var portableAssetStrategy = {\n name : 'portableElementLocation',\n handle : function handlePortableElementLocation(url){\n if(url.source === url.relative){\n return window.location.pathname.replace(/([^\\/]*)$/, '') + url.toString() + '/';\n }\n }\n };\n\n //Create asset manager stack\n var assetManager = assetManagerFactory([{\n name : 'theme',\n handle : function handleTheme(url){\n if(itemThemes && url.path && (url.path === itemThemes.base || _.contains(_.pluck(itemThemes.available, 'path'), url.path))){\n return context.root_url + url.toString();\n }\n }\n },\n assetStrategies.taomedia,\n assetStrategies.external,\n assetStrategies.base64,\n assetStrategies.baseUrl,\n portableAssetStrategy\n ], {baseUrl : ''});\n\n //renderers locations\n var locations = {\n 'assessmentItem' : 'taoQtiItem/qtiCommonRenderer/renderers/Item',\n '_container' : 'taoQtiItem/qtiCommonRenderer/renderers/Container',\n '_simpleFeedbackRule' : false,\n 'stylesheet' : 'taoQtiItem/qtiCommonRenderer/renderers/Stylesheet',\n 'outcomeDeclaration' : false,\n 'responseDeclaration' : false,\n 'responseProcessing' : false,\n 'img' : 'taoQtiItem/qtiCommonRenderer/renderers/Img',\n 'math' : 'taoQtiItem/qtiCommonRenderer/renderers/Math',\n 'object' : 'taoQtiItem/qtiCommonRenderer/renderers/Object',\n 'rubricBlock' : 'taoQtiItem/qtiCommonRenderer/renderers/RubricBlock',\n 'modalFeedback' : 'taoQtiItem/qtiCommonRenderer/renderers/ModalFeedback',\n 'prompt' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/Prompt',\n 'choiceInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/ChoiceInteraction',\n 'extendedTextInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/ExtendedTextInteraction',\n 'orderInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/OrderInteraction',\n 'associateInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/AssociateInteraction',\n 'matchInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/MatchInteraction',\n 'textEntryInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/TextEntryInteraction',\n 'sliderInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/SliderInteraction',\n 'inlineChoiceInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/InlineChoiceInteraction',\n 'simpleChoice.choiceInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.ChoiceInteraction',\n 'simpleChoice.orderInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.OrderInteraction',\n 'hottext' : 'taoQtiItem/qtiCommonRenderer/renderers/choices/Hottext',\n 'gap' : 'taoQtiItem/qtiCommonRenderer/renderers/choices/Gap',\n 'gapText' : 'taoQtiItem/qtiCommonRenderer/renderers/choices/GapText',\n 'simpleAssociableChoice.matchInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.MatchInteraction',\n 'simpleAssociableChoice.associateInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.AssociateInteraction',\n 'inlineChoice' : 'taoQtiItem/qtiCommonRenderer/renderers/choices/InlineChoice',\n 'hottextInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/HottextInteraction',\n 'hotspotInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/HotspotInteraction',\n 'hotspotChoice' : false,\n 'gapMatchInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GapMatchInteraction',\n 'selectPointInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/SelectPointInteraction',\n 'graphicOrderInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicOrderInteraction',\n 'mediaInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/MediaInteraction',\n 'uploadInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/UploadInteraction',\n 'graphicGapMatchInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicGapMatchInteraction',\n 'gapImg' : 'taoQtiItem/qtiCommonRenderer/renderers/choices/GapImg',\n 'graphicAssociateInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicAssociateInteraction',\n 'associableHotspot' : false,\n 'customInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/PortableCustomInteraction',\n 'infoControl' : 'taoQtiItem/qtiCommonRenderer/renderers/PortableInfoControl',\n 'include' : 'taoQtiItem/qtiCommonRenderer/renderers/Include',\n 'endAttemptInteraction' : 'taoQtiItem/qtiCommonRenderer/renderers/interactions/EndAttemptInteraction'\n };\n\n return {\n name:'commonRenderer',\n locations: locations,\n options: {\n assetManager: assetManager,\n themes : itemThemes,\n enableDragAndDrop: {\n associate: !!module.config().associateDragAndDrop,\n gapMatch: !!module.config().gapMatchDragAndDrop,\n graphicGapMatch: !!module.config().graphicGapMatchDragAndDrop,\n order: !!module.config().orderDragAndDrop\n }\n }\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n */\n\n/**\n * Define the Qti Item Common Renderer\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/Renderer',[\n 'taoQtiItem/qtiRunner/core/Renderer',\n 'taoQtiItem/qtiCommonRenderer/renderers/config'\n], function(Renderer, config){\n 'use strict';\n\n return Renderer.build(config.locations, config.name, config.options);\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiItem/runner/provider/manager/picManager',[\n 'jquery',\n 'lodash',\n 'taoQtiItem/qtiItem/core/Element'\n], function ($, _, Element) {\n 'use strict';\n\n /**\n * The template of a PicManager instance\n * @type {picManager}\n */\n var picManager = {\n /**\n * Creates a manager for a particular PIC\n *\n * @param {Object} pic\n * @param {QtiItem} item\n * @returns {picManager}\n */\n init : function init(pic, item) {\n if (Element.isA(pic, 'infoControl')) {\n this._pic = pic;\n }\n\n if (Element.isA(item, 'assessmentItem')) {\n this._item = item;\n }\n\n return this;\n },\n\n /**\n * Gets the managed PIC\n *\n * @returns {Object} the descriptor of the PIC\n */\n getPic : function getPic() {\n return this._pic;\n },\n\n /**\n * Gets the related Item\n *\n * @returns {QtiItem} the Item\n */\n getItem : function getItem() {\n return this._item;\n },\n\n /**\n * Gets the PIC serial\n * @returns {String}\n */\n getSerial : function getSerial() {\n return this._pic && this._pic.serial;\n },\n\n /**\n * Gets the PIC type identifier\n * @returns {String}\n */\n getTypeIdentifier : function getTypeIdentifier() {\n return this._pic && this._pic.typeIdentifier;\n },\n\n /**\n * Gets the underlying DOM element of the managed PIC\n * @returns {{pic: (jQuery), tool: (jQuery), button: (jQuery), broken: (Boolean))}|*} An object providing the underlying DOM elements of the PIC and its tool\n */\n getDom : function getDom() {\n if (!this._dom) {\n var serial = this.getSerial();\n var pic, tool;\n\n if (serial) {\n pic = $('[data-serial=\"' + serial + '\"]');\n if (pic.length) {\n tool = $('[data-pic-serial=\"' + serial + '\"]');\n\n if (!tool.length) {\n tool = pic.children().first();\n }\n\n this._dom = {\n pic : pic,\n tool : tool,\n button : tool.find('.sts-button'),\n broken : pic.is(':empty') // tells if the tool has been moved outside of the PIC\n };\n }\n }\n }\n\n return this._dom;\n },\n\n /**\n * Enables the PIC.\n * @fires enable\n * @returns {picManager}\n */\n enable : function enable() {\n // @todo: find a better solution for disabling/enabling a PIC\n var dom = this.getDom();\n if (dom) {\n // just remove the disabled state and destroy the disable mask\n dom.button.removeClass('disabled');\n dom.tool.find('.sts-button-disable-mask').remove();\n\n this.disabled = false;\n this.trigger('enable');\n }\n\n return this;\n },\n\n /**\n * Disables the PIC\n * @fires disable\n * @returns {picManager}\n */\n disable : function disable() {\n // @todo: find a better solution for disabling/enabling a PIC\n var dom = this.getDom();\n var button;\n if (dom) {\n // set a disabled state by adding a CSS class, then mask the button with a top-level element\n button = dom.button.addClass('disabled');\n\n $('<div class=\"sts-button-disable-mask\" style=\"position:absolute;z-index:10000000000000\"></div>')\n .appendTo(dom.tool)\n .offset(button.offset())\n .width(button.outerWidth())\n .height(button.outerHeight());\n\n // also hide any sub component\n dom.tool.find('.sts-container, .sts-menu-container').addClass('sts-hidden-container');\n\n this.disabled = true;\n this.trigger('disable');\n }\n\n return this;\n },\n\n /**\n * Shows the PIC\n * @fires show\n * @returns {picManager}\n */\n show : function show() {\n var dom = this.getDom();\n if (dom) {\n dom.tool.show();\n\n this.trigger('show');\n }\n\n return this;\n },\n\n /**\n * Hides the PIC\n * @fires hide\n * @returns {picManager}\n */\n hide : function hide() {\n var dom = this.getDom();\n if (dom) {\n dom.tool.hide();\n\n this.trigger('hide');\n }\n\n return this;\n },\n\n /**\n * Triggers an event on the underlying DOM element\n * @param {String} eventName\n * @returns {picManager}\n */\n trigger : function trigger(eventName) {\n var dom = this.getDom();\n var args = _.rest(arguments, 1);\n\n args.unshift(this);\n\n if (dom) {\n // trigger the event, if the tool has been moved outside of the PIC, trigger also the event on the PIC\n dom.tool.trigger(eventName, args);\n if (dom.broken) {\n dom.pic.trigger(eventName, args);\n }\n }\n\n return this;\n }\n };\n\n /**\n * The template of a PicManagerCollection instance\n * @type {picManagerCollection}\n */\n var picManagerCollection = {\n /**\n * Creates the collection of PIC from an Item\n *\n * @param {QtiItem} item\n * @returns {picManagerCollection}\n */\n init : function init(item) {\n if (Element.isA(item, 'assessmentItem')) {\n this._item = item;\n }\n\n return this;\n },\n\n /**\n * Gets the list of PIC managers for the PIC provided by the running item.\n *\n * @param {Boolean} [force] Force a list rebuild\n * @returns {Array} Returns the list of managers for the provided PIC\n */\n getList : function getList(force) {\n var self = this;\n\n // build the list if empty\n if (force || !self._list) {\n self._map = {};\n self._list = [];\n if (self._item) {\n _.forEach(self._item.getElements(), function(element) {\n var manager;\n\n if (Element.isA(element, 'infoControl')) {\n manager = managerFactory(element, self._item);\n self._list.push(manager);\n self._map[element.serial] = manager;\n self._map[element.typeIdentifier] = manager;\n }\n });\n }\n }\n\n return this._list;\n },\n\n /**\n * Gets the manager of the first PIC matching the identifier from the list provided by the running item.\n *\n * @param {String} picId The PIC typeIdentifier or serial\n * @returns {Object} The manager of the PIC\n */\n getPic : function getPic(picId) {\n this.getList();\n return this._map[picId];\n },\n\n /**\n * Executes an action on a particular PIC from the running item.\n * @param {String} picId The PIC typeIdentifier or serial\n * @param {String} action The name of the action to call\n * @returns {*} Returns the action result\n */\n execute : function execute(picId, action) {\n var pic = this.getPic(picId);\n if (pic && pic[action]) {\n return pic[action].apply(pic, _.rest(arguments, 2));\n }\n },\n\n /**\n * Executes an action on each PIC provided by the running item.\n * @param {String} action The name of the action to call\n * @param {Function} [filter] An optional filter to reduce the list\n * @returns {picManagerCollection}\n */\n executeAll : function executeAll(action, filter) {\n var args = _.rest(arguments, 2);\n var cb;\n\n if (typeof filter === 'function') {\n cb = function(pic) {\n if (filter.call(pic, pic) && pic[action]) {\n pic[action].apply(pic, args);\n }\n };\n } else {\n cb = function(pic) {\n if (pic[action]) {\n pic[action].apply(pic, args);\n }\n };\n }\n\n return this.each(cb);\n },\n\n /**\n * Calls a callback function on each listed PIC from the running item.\n * @param {Function} cb The callback function to apply on each listed PIC\n * @returns {picManagerCollection}\n */\n each : function each(cb) {\n _.forEach(this.getList(), cb);\n return this;\n },\n\n /**\n * Enables a PIC provided by the running item.\n *\n * @param {String} picId The PIC typeIdentifier or serial\n * @returns {picManagerCollection}\n */\n enablePic : function enablePic(picId) {\n this.execute(picId, 'enable');\n return this;\n },\n\n /**\n * Disables a PIC provided by the running item.\n *\n * @param {String} picId The PIC typeIdentifier or serial\n * @returns {picManagerCollection}\n */\n disablePic : function disablePic(picId) {\n this.execute(picId, 'disable');\n return this;\n },\n\n /**\n * Shows a PIC provided by the running item.\n *\n * @param {String} picId The PIC typeIdentifier or serial\n * @returns {picManagerCollection}\n */\n showPic : function showPic(picId) {\n this.execute(picId, 'show');\n return this;\n },\n\n /**\n * Hides a PIC provided by the running item.\n *\n * @param {String} picId The PIC typeIdentifier or serial\n * @returns {picManagerCollection}\n */\n hidePic : function hidePic(picId) {\n this.execute(picId, 'hide');\n return this;\n },\n\n /**\n * Enables all PIC provided by the running item.\n *\n * @param {Function} [filter] An optional filter to reduce the list of PIC to enable\n * @returns {picManagerCollection}\n */\n enableAll : function enableAll(filter) {\n this.executeAll('enable', filter);\n return this;\n },\n\n /**\n * Disables all PIC provided by the running item.\n *\n * @param {Function} [filter] An optional filter to reduce the list of PIC to disable\n * @returns {picManagerCollection}\n */\n disableAll : function disableAll(filter) {\n this.executeAll('disable', filter);\n return this;\n },\n\n /**\n * Shows all PIC provided by the running item.\n *\n * @param {Function} [filter] An optional filter to reduce the list of PIC to show\n * @returns {picManagerCollection}\n */\n showAll : function showAll(filter) {\n this.executeAll('show', filter);\n return this;\n },\n\n /**\n * Hides all PIC provided by the running item.\n *\n * @param {Function} [filter] An optional filter to reduce the list of PIC to hide\n * @returns {picManagerCollection}\n */\n hideAll : function hideAll(filter) {\n this.executeAll('hide', filter);\n return this;\n }\n };\n\n /**\n * Creates a PIC manager for a particular Item.\n * @param {Object} pic\n * @param {QtiItem} item\n * @returns {picManager} Returns the instance of the PIC manager\n */\n var managerFactory = function managerFactory(pic, item) {\n var manager = _.clone(picManager, true);\n return manager.init(pic, item);\n };\n\n /**\n * Creates a PIC manager for a particular Item.\n * @param {QtiItem} item\n * @returns {picManager} Returns the instance of the PIC manager\n */\n var collectionFactory = function collectionFactory(item) {\n var collection = _.clone(picManagerCollection, true);\n return collection.init(item);\n };\n\n return {\n collection: collectionFactory,\n manager: managerFactory\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/runner/provider/qti',[\n 'jquery',\n 'lodash',\n 'context',\n 'core/promise',\n 'taoQtiItem/qtiItem/core/Loader',\n 'taoQtiItem/qtiItem/core/Element',\n 'taoQtiItem/qtiCommonRenderer/renderers/Renderer',\n 'taoQtiItem/runner/provider/manager/picManager',\n 'taoItems/assets/manager'\n], function($, _, context, Promise, QtiLoader, Element, QtiRenderer, picManager, assetManagerFactory){\n 'use strict';\n\n var timeout = (context.timeout > 0 ? context.timeout + 1 : 30) * 1000;\n\n /**\n * @exports taoQtiItem/runner/provider/qti\n */\n var qtiItemRuntimeProvider = {\n\n init : function(itemData, done){\n var self = this;\n\n var rendererOptions = {\n assetManager : this.assetManager\n };\n if(this.options.themes){\n rendererOptions.themes = this.options.themes;\n }\n\n this._renderer = new QtiRenderer(rendererOptions);\n this._loader = new QtiLoader();\n\n this._loader.loadItemData(itemData, function(item){\n if(!item){\n return self.trigger('error', 'Unable to load item from the given data.');\n }\n\n self._item = item;\n self._renderer.load(function(){\n self._item.setRenderer(this);\n\n done();\n }, this.getLoadedClasses());\n });\n\n /**\n * This \"special\" event has to be called on the IR to show a modal feedback\n * @event itemRunner#feedback\n * @param {Objtec} feedbackData - the feedback item data, loaded only on demand (hidden to the user)\n * @param {Object} itemSession - the itemSession to decide which feedback to display\n * @param {Function} done - what to do once the modal feedback is closed\n */\n this.on('feedback', function(feedbackData, itemSession, done){\n //modal feedback data is\n if(feedbackData && itemSession){\n self._loader.loadElements(feedbackData, function(item){\n self._renderer.load(function(){\n var queue = [];\n\n _.forEach(item.modalFeedbacks, function(feedback){\n\n var outcomeIdentifier = feedback.attr('outcomeIdentifier');\n if(itemSession[outcomeIdentifier].base.identifier === feedback.id()){\n queue.push(new Promise(function(resolve){\n var $feedbackContent = $(feedback.render());\n\n //FIXME the IR should not be responsible of the modal rendering, i\n //the container selection should be part of the renderer\n $('#modalFeedbacks').append($feedbackContent);\n feedback.postRender({\n callback : function(){\n $feedbackContent.remove();\n resolve();\n }\n });\n }));\n }\n });\n\n //execute the done callback once all modals are closed\n Promise.all(queue).then(done);\n\n }, this.getLoadedClasses());\n });\n } else {\n done();\n }\n });\n },\n\n render : function(elt, done){\n var self = this;\n var current = 0;\n\n if(this._item){\n\n try {\n //render item html\n elt.innerHTML = this._item.render({});\n } catch(e){\n self.trigger('error', 'Error in template rendering : ' + e.message);\n }\n try {\n // Race between postRendering and timeout\n // postRendering waits for everything to be resolved or one reject\n Promise.race([\n Promise.all(this._item.postRender()),\n new Promise(function(resolve, reject){\n _.delay(reject, timeout, new Error('Post rendering ran out of time.'));\n })\n ])\n .then(function(){\n $(elt)\n .off('responseChange')\n .on('responseChange', function(){\n self.trigger('statechange', self.getState());\n self.trigger('responsechange', self.getResponses());\n })\n .off('endattempt')\n .on('endattempt', function(e, responseIdentifier){\n self.trigger('endattempt', responseIdentifier || e.originalEvent.detail);\n })\n .off('themechange')\n .on('themechange', function(e, themeName){\n var themeLoader = self._renderer.getThemeLoader();\n themeName = themeName || e.originalEvent.detail;\n if(themeLoader){\n themeLoader.change(themeName);\n }\n });\n\n /**\n * Lists the PIC provided by this item.\n * @event qti#listpic\n */\n self.trigger('listpic', picManager.collection(self._item));\n\n done();\n\n }).catch(function(err){\n self.trigger('error', 'Error in post rendering : ' + err.message);\n });\n } catch(err){\n self.trigger('error', 'Error in post rendering : ' + err.message);\n }\n }\n },\n\n /**\n * Clean up stuffs\n */\n clear : function(elt, done){\n if(this._item){\n\n _.invoke(this._item.getInteractions(), 'clear');\n this._item.clear();\n\n $(elt).off('responseChange')\n .off('endattempt')\n .off('themechange')\n .off('feedback')\n .empty();\n\n if(this._renderer){\n this._renderer.unload();\n }\n }\n done();\n },\n\n /**\n * Get state implementation.\n * @returns {Object} that represents the state\n */\n getState : function getState(){\n var state = {};\n if(this._item){\n\n //get the state from interactions\n _.forEach(this._item.getInteractions(), function(interaction){\n state[interaction.attr('responseIdentifier')] = interaction.getState();\n });\n\n //get the state from infoControls\n _.forEach(this._item.getElements(), function(element) {\n if (Element.isA(element, 'infoControl') && element.attr('id')) {\n state.pic = state.pic || {};\n state.pic[element.attr('id')] = element.getState();\n }\n });\n }\n return state;\n },\n\n /**\n * Set state implementation.\n * @param {Object} state - the state\n */\n setState : function setState(state){\n if(this._item && state){\n\n //set interaction state\n _.forEach(this._item.getInteractions(), function(interaction){\n var id = interaction.attr('responseIdentifier');\n if(id && state[id]){\n interaction.setState(state[id]);\n }\n });\n\n //set info control state\n if(state.pic){\n _.forEach(this._item.getElements(), function(element) {\n if (Element.isA(element, 'infoControl') && state.pic[element.attr('id')]) {\n element.setState(state.pic[element.attr('id')]);\n }\n });\n }\n }\n },\n\n getResponses : function(){\n var responses = {};\n if(this._item){\n _.reduce(this._item.getInteractions(), function(res, interaction){\n responses[interaction.attr('responseIdentifier')] = interaction.getResponse();\n return responses;\n }, responses);\n }\n return responses;\n }\n };\n\n return qtiItemRuntimeProvider;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/runner/qtiItemRunner',['taoItems/runner/api/itemRunner', 'taoQtiItem/runner/provider/qti'], function(itemRunner, qtiRuntimeProvider){\n 'use strict';\n\n //register the QTI Provider\n itemRunner.register('qti', qtiRuntimeProvider);\n\n /**\n * Expose the itemRunner with the QTI provider registered\n * @exports taoQtiItem/runner/qtiItemRunner\n */\n return itemRunner;\n});\n\n","\ndefine('tpl!taoQtiTest/runner/provider/layout', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n \n\n\n return \"<main class=\\\"test-runner-scope QQQQQQ\\\">\\n <div class=\\\"action-bar content-action-bar horizontal-action-bar top-action-bar\\\">\\n <div class=\\\"control-box size-wrapper\\\"></div>\\n </div>\\n\\n <div class=\\\"test-runner-sections\\\">\\n\\n <aside class=\\\"test-sidebar test-sidebar-left\\\"></aside>\\n\\n <section class=\\\"content-wrapper\\\">\\n <div id=\\\"qti-content\\\"></div>\\n </section>\\n </div>\\n\\n <nav class=\\\"action-bar content-action-bar horizontal-action-bar bottom-action-bar\\\">\\n <div class=\\\"control-box size-wrapper\\\">\\n <div class=\\\"lft tools-box\\\">\\n <ul class=\\\"plain tools-box-list\\\"></ul>\\n </div>\\n <div class=\\\"rgt navi-box\\\">\\n <ul class=\\\"plain navi-box-list\\\"></ul>\\n </div>\\n </div>\\n </nav>\\n\\n</main>\\n\";\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * Test Runner provider for QTI Tests.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/provider/qti',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'core/cachedStore',\n 'taoTests/runner/areaBroker',\n 'taoTests/runner/proxy',\n 'taoTests/runner/probeOverseer',\n 'taoQtiTest/runner/helpers/map',\n 'taoQtiItem/runner/qtiItemRunner',\n 'taoItems/assets/manager',\n 'taoItems/assets/strategies',\n 'tpl!taoQtiTest/runner/provider/layout'\n], function($, _, __, Promise, cachedStore, areaBroker, proxyFactory, probeOverseer, mapHelper, qtiItemRunner, assetManagerFactory, assetStrategies, layoutTpl) {\n 'use strict';\n\n // asset strategy for portable elements\n var assetPortableElement = {\n name : 'portableElementLocation',\n handle : assetStrategies.baseUrl.handle\n };\n\n //the asset strategies\n var assetManager = assetManagerFactory([\n assetStrategies.external,\n assetStrategies.base64,\n assetStrategies.baseUrl,\n assetPortableElement\n ], { baseUrl: '' });\n\n /**\n * A Test runner provider to be registered againt the runner\n */\n var qtiProvider = {\n\n //provider name\n name : 'qti',\n\n /**\n * Initialize and load the area broker with a correct mapping\n * @returns {areaBroker}\n */\n loadAreaBroker : function loadAreaBroker(){\n var $layout = $(layoutTpl());\n return areaBroker($layout, {\n content: $('#qti-content', $layout),\n toolbox: $('.tools-box-list', $layout),\n navigation: $('.navi-box-list', $layout),\n control: $('.top-action-bar .control-box', $layout),\n panel: $('.test-sidebar-left', $layout),\n header: $('.title-box', $layout)\n });\n },\n\n /**\n * Initialize and load the test runner proxy\n * @returns {proxy}\n */\n loadProxy : function loadProxy(){\n var config = this.getConfig();\n\n var proxyConfig = _.pick(config, [\n 'testDefinition',\n 'testCompilation',\n 'serviceCallId',\n 'bootstrap'\n ]);\n\n return proxyFactory('qtiServiceProxy', proxyConfig);\n },\n\n /**\n * Initialize and load the probe overseer\n * @returns {probeOverseer}\n */\n loadProbeOverseer : function loadProbeOverseer(){\n var config = this.getConfig();\n\n //the test run needs to be identified uniquely\n var identifier = config.serviceCallId || 'test-' + Date.now();\n return probeOverseer(identifier, this);\n },\n\n /**\n * Loads the persistent states storage\n *\n * @returns {Promise}\n */\n loadPersistentStates : function loadPersistentStates() {\n var self = this;\n var config = this.getConfig();\n var persistencePromise = cachedStore('test-states-' + config.serviceCallId, 'states');\n\n persistencePromise.catch(function(err) {\n self.trigger('error', err);\n });\n\n return persistencePromise\n .then(function(storage) {\n self.stateStorage = storage;\n });\n },\n\n /**\n * Checks a runner persistent state\n *\n * @param {String} name - the state name\n * @returns {Boolean} if active, false if not set\n */\n getPersistentState : function getPersistentState(name) {\n if (this.stateStorage) {\n return this.stateStorage.getItem(name);\n }\n },\n\n /**\n * Defines a runner persistent state\n *\n * @param {String} name - the state name\n * @param {Boolean} active - is the state active\n * @returns {Promise} Returns a promise that:\n * - will be resolved once the state is fully stored\n * - will be rejected if any error occurs or if the state name is not a valid string\n */\n setPersistentState : function setPersistentState(name, active) {\n var self = this;\n var setPromise;\n\n if (this.stateStorage) {\n setPromise = this.stateStorage.setItem(name, active);\n\n setPromise.catch(function(err) {\n self.trigger('error', err);\n });\n\n return setPromise;\n }\n },\n\n /**\n * Initialization of the provider, called during test runner init phase.\n *\n * We install behaviors during this phase (ie. even handlers)\n * and we call proxy.init.\n *\n * @this {runner} the runner context, not the provider\n * @returns {Promise} to chain proxy.init\n */\n init : function init(){\n var self = this;\n\n /**\n * Compute the next item for the given action\n * @param {String} action - item action like move/next, skip, etc.\n * @param {Object} [params] - the item action additionnal params\n */\n var computeNext = function computeNext(action, params){\n\n var context = self.getTestContext();\n\n //to be sure load start after unload...\n //we add an intermediate ns event on unload\n self.on('unloaditem.' + action, function(){\n self.off('.'+action);\n\n self.getProxy()\n .callItemAction(context.itemUri, action, params)\n .then(function(results){\n\n self.setTestContext(results.testContext);\n\n if (results.testMap) {\n self.setTestMap(results.testMap);\n } else {\n updateStats();\n }\n\n load();\n });\n })\n .unloadItem(context.itemUri);\n };\n\n /**\n * Load the next action: load the current item or call finish based the test state\n */\n var load = function load(){\n\n var context = self.getTestContext();\n var states = self.getTestData().states;\n if(context.state <= states.interacting){\n self.loadItem(context.itemUri);\n } else if (context.state === states.closed){\n self.finish();\n }\n };\n\n /**\n * Store the item state and responses, if needed\n * @returns {Promise} - resolve with a boolean at true if the response is submitd\n */\n var submit = function submit(){\n\n var context = self.getTestContext();\n var states = self.getTestData().itemStates;\n var itemRunner = self.itemRunner;\n var itemAttemptId = context.itemIdentifier + '#' + context.attempt;\n var params = {};\n\n var performSubmit = function performSubmit(){\n //we submit the responses\n return self.getProxy().submitItem(context.itemUri, itemRunner.getState(), itemRunner.getResponses(), params)\n .then(function(result){\n return new Promise(function(resolve){\n //if the submit results contains modal feedback we ask (gently) the IR to display them\n if(result.success) {\n if (result.itemSession) {\n context.itemAnswered = result.itemSession.itemAnswered;\n }\n\n if(result.displayFeedbacks === true && itemRunner){\n return itemRunner.trigger('feedback', result.feedbacks, result.itemSession, resolve);\n }\n }\n return resolve();\n });\n });\n };\n\n if(context.itemSessionState >= states.closed) {\n return Promise.resolve(false);\n }\n\n //if the duration plugin is installed,\n //we load the duration using an event\n if(self.getPlugin('duration')){\n return new Promise(function(resolve, reject){\n //trigger the get event to retrieve the duration for that attempt\n self.getPlugin('duration').trigger('get', itemAttemptId, function receiver(p){\n p.then(function(duration){\n params.itemDuration = 0;\n if(_.isNumber(duration) && duration > 0){\n params.itemDuration = duration;\n }\n return resolve(performSubmit());\n }).catch(reject);\n });\n });\n }\n\n return performSubmit();\n };\n\n /**\n * Update the stats on the TestMap\n */\n var updateStats = function updateStats(){\n\n var context = self.getTestContext();\n var testMap = self.getTestMap();\n var states = self.getTestData().states;\n var item = mapHelper.getItemAt(testMap, context.itemPosition);\n\n if(context.state !== states.interacting){\n return;\n }\n\n //flag as viewed, always\n item.viewed = true;\n\n //flag as answered only if a response has been set\n if (undefined !== context.itemAnswered) {\n item.answered = context.itemAnswered;\n }\n\n //update the map stats, then reassign the map\n self.setTestMap(mapHelper.updateItemStats(testMap, context.itemPosition));\n };\n\n\n /*\n * Install behavior on events\n */\n this.on('ready', function(){\n //load the 1st item\n load();\n })\n .on('move', function(direction, scope, position){\n\n //ask to move:\n // 1. try to submit state and responses\n // 2. update stats on the map\n // 3. compute the next item to load\n\n var computeNextMove = _.partial(computeNext, 'move', {\n direction : direction,\n scope : scope || 'item',\n ref : position\n });\n\n\n this.trigger('disablenav disabletools');\n\n submit()\n .then(updateStats)\n .then(computeNextMove)\n .catch(function (err) {\n self.trigger('error', err);\n });\n })\n .on('skip', function(scope){\n\n this.trigger('disablenav disabletools');\n\n computeNext('skip', {\n scope : scope || 'item'\n });\n\n })\n .on('exit', function(why){\n var context = self.getTestContext();\n self.disableItem(context.itemUri);\n\n submit()\n .then(function() {\n return self.getProxy()\n .callTestAction('exitTest', {reason: why})\n .then(function(){\n return self.finish();\n });\n })\n .catch(function(err){\n self.trigger('error', err);\n });\n })\n .on('timeout', function(scope, ref){\n\n var context = self.getTestContext();\n\n context.isTimeout = true;\n\n self.disableItem(context.itemUri);\n\n submit()\n .then(updateStats)\n .then(function() {\n self.trigger('alert', __('Time limit reached, this part of the test has ended.'), function() {\n computeNext('timeout', {\n scope: scope,\n ref: ref\n });\n });\n })\n .catch(function(err){\n self.trigger('error', err);\n });\n })\n .on('pause', function(){\n self.setPersistentState('paused', true).then(function() {\n self.trigger('leave', {\n code: self.getTestData().states.suspended\n });\n })\n .catch(function(err){\n self.trigger('error', err);\n });\n })\n .on('renderitem', function(itemRef){\n\n var context = this.getTestContext();\n var states = this.getTestData().itemStates;\n var warning = false;\n\n /**\n * Get the label of the current item\n * @returns {String} the label (fallback to the item identifier);\n */\n var getItemLabel = function getItemLabel(){\n var item = mapHelper.getItem(self.getTestMap(), context.itemIdentifier);\n return item && item.label ? item.label : context.itemIdentifier;\n };\n\n this.trigger('enablenav enabletools');\n\n\n //The item is rendered but in a state that prevents us from interacting\n if (context.isTimeout) {\n warning = __('Time limit reached for item \"%s\".', getItemLabel());\n\n } else if (context.itemSessionState > states.interacting) {\n\n if (context.remainingAttempts === 0) {\n warning = __('No more attempts allowed for item \"%s\".', getItemLabel());\n } else {\n warning = __('Item \"%s\" is completed.', getItemLabel());\n }\n }\n\n //we disable the item and warn the user\n if (warning) {\n self.disableItem(context.itemUri);\n self.trigger('warning', warning);\n }\n })\n .on('disableitem', function(){\n this.trigger('disabletools');\n })\n .on('enableitem', function(){\n this.trigger('enabletools');\n })\n .on('error', function(){\n this.trigger('disabletools enablenav');\n })\n .on('finish', function () {\n this.flush();\n })\n .on('leave', function () {\n this.flush();\n })\n .on('flush', function () {\n this.destroy();\n });\n\n //starts the event collection\n if(this.getProbeOverseer()){\n this.getProbeOverseer().start();\n }\n\n //load data and current context in parallel at initialization\n return this.getProxy().init()\n .then(function(results){\n self.setTestData(results.testData);\n self.setTestContext(results.testContext);\n self.setTestMap(results.testMap);\n });\n },\n\n /**\n * Rendering phase of the test runner\n *\n * Attach the test runner to the DOM\n *\n * @this {runner} the runner context, not the provider\n */\n render : function render(){\n\n var config = this.getConfig();\n var broker = this.getAreaBroker();\n\n config.renderTo.append(broker.getContainer());\n },\n\n /**\n * LoadItem phase of the test runner\n *\n * We call the proxy in order to get the item data\n *\n * @this {runner} the runner context, not the provider\n * @returns {Promise} that calls in parallel the state and the item data\n */\n loadItem : function loadItem(itemRef){\n var self = this;\n\n return self.getProxy().getItem(itemRef)\n .then(function(data){\n //aggregate the results\n return {\n content : data.itemData,\n baseUrl : data.baseUrl,\n state : data.itemState,\n rubrics : data.rubrics\n };\n });\n },\n\n /**\n * RenderItem phase of the test runner\n *\n * Here we iniitialize the item runner and wrap it's call to the test runner\n *\n * @this {runner} the runner context, not the provider\n * @returns {Promise} resolves when the item is ready\n */\n renderItem : function renderItem(itemRef, itemData){\n var self = this;\n\n var changeState = function changeState(){\n self.setItemState(itemRef, 'changed', true);\n };\n\n if (itemData.rubrics) {\n this.trigger('loadrubricblock', itemData.rubrics);\n }\n\n return new Promise(function(resolve, reject){\n assetManager.setData('baseUrl', itemData.baseUrl);\n\n self.itemRunner = qtiItemRunner(itemData.content.type, itemData.content.data, {\n assetManager: assetManager\n })\n .on('error', function(err){\n self.trigger('enablenav');\n reject(err);\n })\n .on('init', function(){\n if(itemData.state){\n this.setState(itemData.state);\n }\n this.render(self.getAreaBroker().getContentArea());\n })\n .on('render', function(){\n\n this.on('responsechange', changeState);\n this.on('statechange', changeState);\n\n resolve();\n })\n .init();\n });\n },\n\n /**\n * UnloadItem phase of the test runner\n *\n * Item clean up\n *\n * @this {runner} the runner context, not the provider\n * @returns {Promise} resolves when the item is cleared\n */\n unloadItem : function unloadItem(itemRef){\n var self = this;\n\n self.trigger('disablenav disabletools');\n\n return new Promise(function(resolve, reject){\n if(self.itemRunner){\n self.itemRunner\n .on('clear', resolve)\n .clear();\n return;\n }\n resolve();\n });\n },\n\n /**\n * Finish phase of the test runner\n *\n * Calls proxy.finish to close the testj\n *\n * @this {runner} the runner context, not the provider\n * @returns {Promise} proxy.finish\n */\n finish : function finish(){\n var self = this;\n\n this.trigger('disablenav disabletools')\n .trigger('endsession', 'finish');\n\n // will be executed after the runner has been flushed\n // use the \"before\" queue to ensure the query will be fully processed before destroying\n // we do not use the \"destroy\" event because the proxy is destroyed before this event is triggered\n this.before('flush', function(e) {\n var done = e.done();\n this.getProxy().callTestAction('finish').then(function() {\n if (self.stateStorage) {\n self.stateStorage.clear()\n .then(done)\n .catch(function(err) {\n self.trigger('error', err);\n })\n } else {\n done();\n }\n });\n });\n },\n\n /**\n * Flushes the test variables before leaving the runner\n *\n * Clean up\n *\n * @this {runner} the runner context, not the provider\n */\n flush : function flush(){\n var self = this;\n var probeOverseer = this.getProbeOverseer();\n\n //if there is trace data collected by the probes\n if(probeOverseer && !this.getState('disconnected')){\n return probeOverseer.flush()\n .then(function(data){\n\n //we reformat the time set into a trace variables\n if(data && data.length){\n var traceData = {};\n _.forEach(data, function(entry){\n var id = entry.type + '-' + entry.id;\n\n if(entry.marker){\n id = entry.marker + '-' + id;\n }\n traceData[id] = entry;\n });\n //and send them\n return self.getProxy().sendVariables(traceData);\n }\n })\n .then(function(){\n probeOverseer.stop();\n });\n }\n },\n\n /**\n * Destroy phase of the test runner\n *\n * Clean up\n *\n * @this {runner} the runner context, not the provider\n */\n destroy : function destroy(){\n // prevent the item to be displayed while test runner is destroying\n if (this.itemRunner) {\n this.itemRunner.clear();\n }\n this.itemRunner = null;\n }\n };\n\n return qtiProvider;\n});\n\n","define('jqueryui',['jquery'], function(jQuery){\n/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.core.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if(\"area\"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!==\"map\"?!1:(h=a(\"img[usemap=#\"+g+\"]\")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:\"a\"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,\"visibility\")===\"hidden\"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:\"1.8.23\",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b==\"number\"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css(\"position\"))||/absolute/.test(this.css(\"position\"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,\"position\",1))&&/(auto|scroll)/.test(a.curCSS(this,\"overflow\",1)+a.curCSS(this,\"overflow-y\",1)+a.curCSS(this,\"overflow-x\",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,\"overflow\",1)+a.curCSS(this,\"overflow-y\",1)+a.curCSS(this,\"overflow-x\",1))}).eq(0),/fixed/.test(this.css(\"position\"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css(\"zIndex\",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css(\"position\");if(e===\"absolute\"||e===\"relative\"||e===\"fixed\"){f=parseInt(d.css(\"zIndex\"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?\"selectstart\":\"mousedown\")+\".ui-disableSelection\",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(\".ui-disableSelection\")}}),a(\"<a>\").outerWidth(1).jquery||a.each([\"Width\",\"Height\"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,\"padding\"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,\"border\"+this+\"Width\",!0))||0),f&&(c-=parseFloat(a.curCSS(b,\"margin\"+this,!0))||0)}),c}var e=d===\"Width\"?[\"Left\",\"Right\"]:[\"Top\",\"Bottom\"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn[\"inner\"+d]=function(c){return c===b?g[\"inner\"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+\"px\")})},a.fn[\"outer\"+d]=function(b,c){return typeof b!=\"number\"?g[\"outer\"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+\"px\")})}}),a.extend(a.expr[\":\"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,\"tabindex\")))},tabbable:function(b){var d=a.attr(b,\"tabindex\"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement(\"div\"));c.offsetHeight,a.extend(c.style,{minHeight:\"100px\",height:\"auto\",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart=\"onselectstart\"in c,b.removeChild(c).style.display=\"none\"}),a.curCSS||(a.curCSS=a.css),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css(\"overflow\")===\"hidden\")return!1;var d=c&&c===\"left\"?\"scrollLeft\":\"scrollTop\",e=!1;return b[d]>0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.widget.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler(\"remove\")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){return c||(!b||a.filter(b,[this]).length)&&a(\"*\",this).add([this]).each(function(){try{a(this).triggerHandler(\"remove\")}catch(b){}}),d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(\".\")[0],f;b=b.split(\".\")[1],f=e+\"-\"+b,d||(d=c,c=a.Widget),a.expr[\":\"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e==\"string\",g=Array.prototype.slice.call(arguments,1),h=this;return e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e,f&&e.charAt(0)===\"_\"?h:(f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b)return h=f,!1}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))}),h)}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:\"widget\",widgetEventPrefix:\"\",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind(\"remove.\"+this.widgetName,function(){d.destroy()}),this._create(),this._trigger(\"create\"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind(\".\"+this.widgetName).removeData(this.widgetName),this.widget().unbind(\".\"+this.widgetName).removeAttr(\"aria-disabled\").removeClass(this.widgetBaseClass+\"-disabled \"+\"ui-state-disabled\")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c==\"string\"){if(d===b)return this.options[c];e={},e[c]=d}return this._setOptions(e),this},_setOptions:function(b){var c=this;return a.each(b,function(a,b){c._setOption(a,b)}),this},_setOption:function(a,b){return this.options[a]=b,a===\"disabled\"&&this.widget()[b?\"addClass\":\"removeClass\"](this.widgetBaseClass+\"-disabled\"+\" \"+\"ui-state-disabled\").attr(\"aria-disabled\",b),this},enable:function(){return this._setOption(\"disabled\",!1)},disable:function(){return this._setOption(\"disabled\",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.mouse.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget(\"ui.mouse\",{options:{cancel:\":input,option\",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind(\"mousedown.\"+this.widgetName,function(a){return b._mouseDown(a)}).bind(\"click.\"+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+\".preventClickEvent\"))return a.removeData(c.target,b.widgetName+\".preventClickEvent\"),c.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind(\".\"+this.widgetName),this._mouseMoveDelegate&&a(document).unbind(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).unbind(\"mouseup.\"+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(b){if(c)return;this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel==\"string\"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted)return b.preventDefault(),!0}return!0===a.data(b.target,this.widgetName+\".preventClickEvent\")&&a.removeData(b.target,this.widgetName+\".preventClickEvent\"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).bind(\"mouseup.\"+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0,!0},_mouseMove:function(b){return!a.browser.msie||document.documentMode>=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).unbind(\"mouseup.\"+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+\".preventClickEvent\",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.position.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e=\"center\",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||\"flip\").split(\" \"),k=b.offset?b.offset.split(\" \"):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at=\"left top\",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each([\"my\",\"at\"],function(){var a=(b[this]||\"\").split(\" \");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]===\"right\"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]===\"bottom\"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,\"marginLeft\",!0))||0,i=parseInt(a.curCSS(this,\"marginTop\",!0))||0,o=d+h+(parseInt(a.curCSS(this,\"marginRight\",!0))||0),p=g+i+(parseInt(a.curCSS(this,\"marginBottom\",!0))||0),q=a.extend({},n),r;b.my[0]===\"right\"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]===\"bottom\"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each([\"left\",\"top\"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]===\"left\"?-c.elemWidth:c.my[0]===\"right\"?c.elemWidth:0,h=c.at[0]===\"left\"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]===\"top\"?-c.elemHeight:c.my[1]===\"bottom\"?c.elemHeight:0,h=c.at[1]===\"top\"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,\"position\"))&&(b.style.position=\"relative\");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,\"top\",!0),10)||0,g=parseInt(a.curCSS(b,\"left\",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};\"using\"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?a.isFunction(b)?this.each(function(c){a(this).offset(b.call(this,c,a(this).offset()))}):this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),a.curCSS||(a.curCSS=a.css),function(){var b=document.getElementsByTagName(\"body\")[0],c=document.createElement(\"div\"),d,e,g,h,i;d=document.createElement(b?\"div\":\"body\"),g={visibility:\"hidden\",width:0,height:0,border:0,margin:0,background:\"none\"},b&&a.extend(g,{position:\"absolute\",left:\"-1000px\",top:\"-1000px\"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText=\"position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;\",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML=\"\",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.draggable.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.widget(\"ui.draggable\",a.ui.mouse,{widgetEventPrefix:\"drag\",options:{addClasses:!0,appendTo:\"parent\",axis:!1,connectToSortable:!1,containment:!1,cursor:\"auto\",cursorAt:!1,grid:!1,handle:!1,helper:\"original\",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:\"default\",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:\"both\",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper==\"original\"&&!/^(?:r|a|f)/.test(this.element.css(\"position\"))&&(this.element[0].style.position=\"relative\"),this.options.addClasses&&this.element.addClass(\"ui-draggable\"),this.options.disabled&&this.element.addClass(\"ui-draggable-disabled\"),this._mouseInit()},destroy:function(){if(!this.element.data(\"draggable\"))return;return this.element.removeData(\"draggable\").unbind(\".draggable\").removeClass(\"ui-draggable ui-draggable-dragging ui-draggable-disabled\"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(\".ui-resizable-handle\")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?\"iframe\":c.iframeFix).each(function(){a('<div class=\"ui-draggable-iframeFix\" style=\"background: #fff;\"></div>').css({width:this.offsetWidth+\"px\",height:this.offsetHeight+\"px\",position:\"absolute\",opacity:\"0.001\",zIndex:1e3}).css(a(this).offset()).appendTo(\"body\")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass(\"ui-draggable-dragging\"),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css(\"position\"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger(\"start\",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo(\"absolute\");if(!c){var d=this._uiHash();if(this._trigger(\"drag\",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!=\"y\")this.helper[0].style.left=this.position.left+\"px\";if(!this.options.axis||this.options.axis!=\"x\")this.helper[0].style.top=this.position.top+\"px\";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper===\"original\")return!1;if(this.options.revert==\"invalid\"&&!c||this.options.revert==\"valid\"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger(\"stop\",b)!==!1&&f._clear()})}else this._trigger(\"stop\",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a(\"div.ui-draggable-iframeFix\").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(\".ui-draggable-dragging\")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find(\"*\").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper==\"clone\"?this.element.clone().removeAttr(\"id\"):this.element;return d.parents(\"body\").length||d.appendTo(c.appendTo==\"parent\"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css(\"position\"))&&d.css(\"position\",\"absolute\"),d},_adjustOffsetFromHelper:function(b){typeof b==\"string\"&&(b=b.split(\" \")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),\"left\"in b&&(this.offset.click.left=b.left+this.margins.left),\"right\"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),\"top\"in b&&(this.offset.click.top=b.top+this.margins.top),\"bottom\"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition==\"absolute\"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()==\"html\"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css(\"borderTopWidth\"),10)||0),left:b.left+(parseInt(this.offsetParent.css(\"borderLeftWidth\"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==\"relative\"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css(\"top\"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css(\"left\"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css(\"marginLeft\"),10)||0,top:parseInt(this.element.css(\"marginTop\"),10)||0,right:parseInt(this.element.css(\"marginRight\"),10)||0,bottom:parseInt(this.element.css(\"marginBottom\"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment==\"parent\"&&(b.containment=this.helper[0].parentNode);if(b.containment==\"document\"||b.containment==\"window\")this.containment=[b.containment==\"document\"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment==\"document\"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment==\"document\"?0:a(window).scrollLeft())+a(b.containment==\"document\"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment==\"document\"?0:a(window).scrollTop())+(a(b.containment==\"document\"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css(\"overflow\")!=\"hidden\";this.containment=[(parseInt(a(d).css(\"borderLeftWidth\"),10)||0)+(parseInt(a(d).css(\"paddingLeft\"),10)||0),(parseInt(a(d).css(\"borderTopWidth\"),10)||0)+(parseInt(a(d).css(\"paddingTop\"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css(\"borderLeftWidth\"),10)||0)-(parseInt(a(d).css(\"paddingRight\"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css(\"borderTopWidth\"),10)||0)-(parseInt(a(d).css(\"paddingBottom\"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b==\"absolute\"?1:-1,e=this.options,f=this.cssPosition==\"absolute\"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition==\"fixed\"?0:(this.cssPosition==\"fixed\"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition==\"fixed\"?0:(this.cssPosition==\"fixed\"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition==\"absolute\"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.left<h[0]&&(f=h[0]+this.offset.click.left),b.pageY-this.offset.click.top<h[1]&&(g=h[1]+this.offset.click.top),b.pageX-this.offset.click.left>h[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.top<h[1]||j-this.offset.click.top>h[3]?j-this.offset.click.top<h[1]?j+c.grid[1]:j-c.grid[1]:j:j;var k=c.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0]:this.originalPageX;f=h?k-this.offset.click.left<h[0]||k-this.offset.click.left>h[2]?k-this.offset.click.left<h[0]?k+c.grid[0]:k-c.grid[0]:k:k}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition==\"fixed\"?0:this.cssPosition==\"fixed\"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<526&&this.cssPosition==\"fixed\"?0:this.cssPosition==\"fixed\"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_clear:function(){this.helper.removeClass(\"ui-draggable-dragging\"),this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(b,c,d){return d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d]),b==\"drag\"&&(this.positionAbs=this._convertPositionTo(\"absolute\")),a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(a){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.extend(a.ui.draggable,{version:\"1.8.23\"}),a.ui.plugin.add(\"draggable\",\"connectToSortable\",{start:function(b,c){var d=a(this).data(\"draggable\"),e=d.options,f=a.extend({},c,{item:d.element});d.sortables=[],a(e.connectToSortable).each(function(){var c=a.data(this,\"sortable\");c&&!c.options.disabled&&(d.sortables.push({instance:c,shouldRevert:c.options.revert}),c.refreshPositions(),c._trigger(\"activate\",b,f))})},stop:function(b,c){var d=a(this).data(\"draggable\"),e=a.extend({},c,{item:d.element});a.each(d.sortables,function(){this.instance.isOver?(this.instance.isOver=0,d.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(b),this.instance.options.helper=this.instance.options._helper,d.options.helper==\"original\"&&this.instance.currentItem.css({top:\"auto\",left:\"auto\"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger(\"deactivate\",b,e))})},drag:function(b,c){var d=a(this).data(\"draggable\"),e=this,f=function(b){var c=this.offset.click.top,d=this.offset.click.left,e=this.positionAbs.top,f=this.positionAbs.left,g=b.height,h=b.width,i=b.top,j=b.left;return a.ui.isOver(e+c,f+d,i,j,g,h)};a.each(d.sortables,function(f){this.instance.positionAbs=d.positionAbs,this.instance.helperProportions=d.helperProportions,this.instance.offset.click=d.offset.click,this.instance._intersectsWith(this.instance.containerCache)?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=a(e).clone().removeAttr(\"id\").appendTo(this.instance.element).data(\"sortable-item\",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return c.helper[0]},b.target=this.instance.currentItem[0],this.instance._mouseCapture(b,!0),this.instance._mouseStart(b,!0,!0),this.instance.offset.click.top=d.offset.click.top,this.instance.offset.click.left=d.offset.click.left,this.instance.offset.parent.left-=d.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=d.offset.parent.top-this.instance.offset.parent.top,d._trigger(\"toSortable\",b),d.dropped=this.instance.element,d.currentItem=d.element,this.instance.fromOutside=d),this.instance.currentItem&&this.instance._mouseDrag(b)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger(\"out\",b,this.instance._uiHash(this.instance)),this.instance._mouseStop(b,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),d._trigger(\"fromSortable\",b),d.dropped=!1)})}}),a.ui.plugin.add(\"draggable\",\"cursor\",{start:function(b,c){var d=a(\"body\"),e=a(this).data(\"draggable\").options;d.css(\"cursor\")&&(e._cursor=d.css(\"cursor\")),d.css(\"cursor\",e.cursor)},stop:function(b,c){var d=a(this).data(\"draggable\").options;d._cursor&&a(\"body\").css(\"cursor\",d._cursor)}}),a.ui.plugin.add(\"draggable\",\"opacity\",{start:function(b,c){var d=a(c.helper),e=a(this).data(\"draggable\").options;d.css(\"opacity\")&&(e._opacity=d.css(\"opacity\")),d.css(\"opacity\",e.opacity)},stop:function(b,c){var d=a(this).data(\"draggable\").options;d._opacity&&a(c.helper).css(\"opacity\",d._opacity)}}),a.ui.plugin.add(\"draggable\",\"scroll\",{start:function(b,c){var d=a(this).data(\"draggable\");d.scrollParent[0]!=document&&d.scrollParent[0].tagName!=\"HTML\"&&(d.overflowOffset=d.scrollParent.offset())},drag:function(b,c){var d=a(this).data(\"draggable\"),e=d.options,f=!1;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!=\"HTML\"){if(!e.axis||e.axis!=\"x\")d.overflowOffset.top+d.scrollParent[0].offsetHeight-b.pageY<e.scrollSensitivity?d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop+e.scrollSpeed:b.pageY-d.overflowOffset.top<e.scrollSensitivity&&(d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop-e.scrollSpeed);if(!e.axis||e.axis!=\"y\")d.overflowOffset.left+d.scrollParent[0].offsetWidth-b.pageX<e.scrollSensitivity?d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft+e.scrollSpeed:b.pageX-d.overflowOffset.left<e.scrollSensitivity&&(d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft-e.scrollSpeed)}else{if(!e.axis||e.axis!=\"x\")b.pageY-a(document).scrollTop()<e.scrollSensitivity?f=a(document).scrollTop(a(document).scrollTop()-e.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<e.scrollSensitivity&&(f=a(document).scrollTop(a(document).scrollTop()+e.scrollSpeed));if(!e.axis||e.axis!=\"y\")b.pageX-a(document).scrollLeft()<e.scrollSensitivity?f=a(document).scrollLeft(a(document).scrollLeft()-e.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<e.scrollSensitivity&&(f=a(document).scrollLeft(a(document).scrollLeft()+e.scrollSpeed))}f!==!1&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,b)}}),a.ui.plugin.add(\"draggable\",\"snap\",{start:function(b,c){var d=a(this).data(\"draggable\"),e=d.options;d.snapElements=[],a(e.snap.constructor!=String?e.snap.items||\":data(draggable)\":e.snap).each(function(){var b=a(this),c=b.offset();this!=d.element[0]&&d.snapElements.push({item:this,width:b.outerWidth(),height:b.outerHeight(),top:c.top,left:c.left})})},drag:function(b,c){var d=a(this).data(\"draggable\"),e=d.options,f=e.snapTolerance,g=c.offset.left,h=g+d.helperProportions.width,i=c.offset.top,j=i+d.helperProportions.height;for(var k=d.snapElements.length-1;k>=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f<g&&g<m+f&&n-f<i&&i<o+f||l-f<g&&g<m+f&&n-f<j&&j<o+f||l-f<h&&h<m+f&&n-f<i&&i<o+f||l-f<h&&h<m+f&&n-f<j&&j<o+f)){d.snapElements[k].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=!1;continue}if(e.snapMode!=\"inner\"){var p=Math.abs(n-j)<=f,q=Math.abs(o-i)<=f,r=Math.abs(l-h)<=f,s=Math.abs(m-g)<=f;p&&(c.position.top=d._convertPositionTo(\"relative\",{top:n-d.helperProportions.height,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo(\"relative\",{top:o,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo(\"relative\",{top:0,left:l-d.helperProportions.width}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo(\"relative\",{top:0,left:m}).left-d.margins.left)}var t=p||q||r||s;if(e.snapMode!=\"outer\"){var p=Math.abs(n-i)<=f,q=Math.abs(o-j)<=f,r=Math.abs(l-g)<=f,s=Math.abs(m-h)<=f;p&&(c.position.top=d._convertPositionTo(\"relative\",{top:n,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo(\"relative\",{top:o-d.helperProportions.height,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo(\"relative\",{top:0,left:l}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo(\"relative\",{top:0,left:m-d.helperProportions.width}).left-d.margins.left)}!d.snapElements[k].snapping&&(p||q||r||s||t)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=p||q||r||s||t}}}),a.ui.plugin.add(\"draggable\",\"stack\",{start:function(b,c){var d=a(this).data(\"draggable\").options,e=a.makeArray(a(d.stack)).sort(function(b,c){return(parseInt(a(b).css(\"zIndex\"),10)||0)-(parseInt(a(c).css(\"zIndex\"),10)||0)});if(!e.length)return;var f=parseInt(e[0].style.zIndex)||0;a(e).each(function(a){this.style.zIndex=f+a}),this[0].style.zIndex=f+e.length}}),a.ui.plugin.add(\"draggable\",\"zIndex\",{start:function(b,c){var d=a(c.helper),e=a(this).data(\"draggable\").options;d.css(\"zIndex\")&&(e._zIndex=d.css(\"zIndex\")),d.css(\"zIndex\",e.zIndex)},stop:function(b,c){var d=a(this).data(\"draggable\").options;d._zIndex&&a(c.helper).css(\"zIndex\",d._zIndex)}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.droppable.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.widget(\"ui.droppable\",{widgetEventPrefix:\"drop\",options:{accept:\"*\",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:\"default\",tolerance:\"intersect\"},_create:function(){var b=this.options,c=b.accept;this.isover=0,this.isout=1,this.accept=a.isFunction(c)?c:function(a){return a.is(c)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},a.ui.ddmanager.droppables[b.scope]=a.ui.ddmanager.droppables[b.scope]||[],a.ui.ddmanager.droppables[b.scope].push(this),b.addClasses&&this.element.addClass(\"ui-droppable\")},destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];for(var c=0;c<b.length;c++)b[c]==this&&b.splice(c,1);return this.element.removeClass(\"ui-droppable ui-droppable-disabled\").removeData(\"droppable\").unbind(\".droppable\"),this},_setOption:function(b,c){b==\"accept\"&&(this.accept=a.isFunction(c)?c:function(a){return a.is(c)}),a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),c&&this._trigger(\"activate\",b,this.ui(c))},_deactivate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),c&&this._trigger(\"deactivate\",b,this.ui(c))},_over:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger(\"over\",b,this.ui(c)))},_out:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger(\"out\",b,this.ui(c)))},_drop:function(b,c){var d=c||a.ui.ddmanager.current;if(!d||(d.currentItem||d.element)[0]==this.element[0])return!1;var e=!1;return this.element.find(\":data(droppable)\").not(\".ui-draggable-dragging\").each(function(){var b=a.data(this,\"droppable\");if(b.options.greedy&&!b.options.disabled&&b.options.scope==d.options.scope&&b.accept.call(b.element[0],d.currentItem||d.element)&&a.ui.intersect(d,a.extend(b,{offset:b.element.offset()}),b.options.tolerance))return e=!0,!1}),e?!1:this.accept.call(this.element[0],d.currentItem||d.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger(\"drop\",b,this.ui(d)),this.element):!1},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}}),a.extend(a.ui.droppable,{version:\"1.8.23\"}),a.ui.intersect=function(b,c,d){if(!c.offset)return!1;var e=(b.positionAbs||b.position.absolute).left,f=e+b.helperProportions.width,g=(b.positionAbs||b.position.absolute).top,h=g+b.helperProportions.height,i=c.offset.left,j=i+c.proportions.width,k=c.offset.top,l=k+c.proportions.height;switch(d){case\"fit\":return i<=e&&f<=j&&k<=g&&h<=l;case\"intersect\":return i<e+b.helperProportions.width/2&&f-b.helperProportions.width/2<j&&k<g+b.helperProportions.height/2&&h-b.helperProportions.height/2<l;case\"pointer\":var m=(b.positionAbs||b.position.absolute).left+(b.clickOffset||b.offset.click).left,n=(b.positionAbs||b.position.absolute).top+(b.clickOffset||b.offset.click).top,o=a.ui.isOver(n,m,k,i,c.proportions.height,c.proportions.width);return o;case\"touch\":return(g>=k&&g<=l||h>=k&&h<=l||g<k&&h>l)&&(e>=i&&e<=j||f>=i&&f<=j||e<i&&f>j);default:return!1}},a.ui.ddmanager={current:null,droppables:{\"default\":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(\":data(droppable)\").andSelf();g:for(var h=0;h<d.length;h++){if(d[h].options.disabled||b&&!d[h].accept.call(d[h].element[0],b.currentItem||b.element))continue;for(var i=0;i<f.length;i++)if(f[i]==d[h].element[0]){d[h].proportions.height=0;continue g}d[h].visible=d[h].element.css(\"display\")!=\"none\";if(!d[h].visible)continue;e==\"mousedown\"&&d[h]._activate.call(d[h],c),d[h].offset=d[h].element.offset(),d[h].proportions={width:d[h].element[0].offsetWidth,height:d[h].element[0].offsetHeight}}},drop:function(b,c){var d=!1;return a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(!this.options)return;!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance)&&(d=this._drop.call(this,c)||d),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],b.currentItem||b.element)&&(this.isout=1,this.isover=0,this._deactivate.call(this,c))}),d},dragStart:function(b,c){b.element.parents(\":not(body,html)\").bind(\"scroll.droppable\",function(){b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)})},drag:function(b,c){b.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(b,c),a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(this.options.disabled||this.greedyChild||!this.visible)return;var d=a.ui.intersect(b,this,this.options.tolerance),e=!d&&this.isover==1?\"isout\":d&&this.isover==0?\"isover\":null;if(!e)return;var f;if(this.options.greedy){var g=this.element.parents(\":data(droppable):eq(0)\");g.length&&(f=a.data(g[0],\"droppable\"),f.greedyChild=e==\"isover\"?1:0)}f&&e==\"isover\"&&(f.isover=0,f.isout=1,f._out.call(f,c)),this[e]=1,this[e==\"isout\"?\"isover\":\"isout\"]=0,this[e==\"isover\"?\"_over\":\"_out\"].call(this,c),f&&e==\"isout\"&&(f.isout=0,f.isover=1,f._over.call(f,c))})},dragStop:function(b,c){b.element.parents(\":not(body,html)\").unbind(\"scroll.droppable\"),b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)}}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.resizable.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.widget(\"ui.resizable\",a.ui.mouse,{widgetEventPrefix:\"resize\",options:{alsoResize:!1,animate:!1,animateDuration:\"slow\",animateEasing:\"swing\",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:\"e,s,se\",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass(\"ui-resizable\"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||\"ui-resizable-helper\":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('<div class=\"ui-wrapper\" style=\"overflow: hidden;\"></div>').css({position:this.element.css(\"position\"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css(\"top\"),left:this.element.css(\"left\")})),this.element=this.element.parent().data(\"resizable\",this.element.data(\"resizable\")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css(\"marginLeft\"),marginTop:this.originalElement.css(\"marginTop\"),marginRight:this.originalElement.css(\"marginRight\"),marginBottom:this.originalElement.css(\"marginBottom\")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css(\"resize\"),this.originalElement.css(\"resize\",\"none\"),this._proportionallyResizeElements.push(this.originalElement.css({position:\"static\",zoom:1,display:\"block\"})),this.originalElement.css({margin:this.originalElement.css(\"margin\")}),this._proportionallyResize()),this.handles=c.handles||(a(\".ui-resizable-handle\",this.element).length?{n:\".ui-resizable-n\",e:\".ui-resizable-e\",s:\".ui-resizable-s\",w:\".ui-resizable-w\",se:\".ui-resizable-se\",sw:\".ui-resizable-sw\",ne:\".ui-resizable-ne\",nw:\".ui-resizable-nw\"}:\"e,s,se\");if(this.handles.constructor==String){this.handles==\"all\"&&(this.handles=\"n,e,s,w,se,sw,ne,nw\");var d=this.handles.split(\",\");this.handles={};for(var e=0;e<d.length;e++){var f=a.trim(d[e]),g=\"ui-resizable-\"+f,h=a('<div class=\"ui-resizable-handle '+g+'\"></div>');h.css({zIndex:c.zIndex}),\"se\"==f&&h.addClass(\"ui-icon ui-icon-gripsmall-diagonal-se\"),this.handles[f]=\".ui-resizable-\"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=[\"padding\",/ne|nw|n/.test(c)?\"Top\":/se|sw|s/.test(c)?\"Bottom\":/^e$/.test(c)?\"Right\":\"Left\"].join(\"\");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(\".ui-resizable-handle\",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:\"se\"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass(\"ui-resizable-autohide\").hover(function(){if(c.disabled)return;a(this).removeClass(\"ui-resizable-autohide\"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass(\"ui-resizable-autohide\"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass(\"ui-resizable ui-resizable-disabled ui-resizable-resizing\").removeData(\"resizable\").unbind(\".resizable\").find(\".ui-resizable-handle\").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css(\"position\"),width:c.outerWidth(),height:c.outerHeight(),top:c.css(\"top\"),left:c.css(\"left\")})).remove()}return this.originalElement.css(\"resize\",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(\".ui-draggable\")||/absolute/.test(f.css(\"position\")))&&f.css({position:\"absolute\",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css(\"left\")),h=c(this.helper.css(\"top\"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio==\"number\"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(\".ui-resizable-\"+this.axis).css(\"cursor\");return a(\"body\").css(\"cursor\",i==\"auto\"?this.axis+\"-resize\":i),f.addClass(\"ui-resizable-resizing\"),this._propagate(\"start\",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate(\"resize\",b),c.css({top:this.position.top+\"px\",left:this.position.left+\"px\",width:this.size.width+\"px\",height:this.size.height+\"px\"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger(\"resize\",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],\"left\")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css(\"left\"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css(\"top\"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a(\"body\").css(\"cursor\",\"auto\"),this.element.removeClass(\"ui-resizable-resizing\"),this._propagate(\"stop\",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),e<h.maxWidth&&(h.maxWidth=e),g<h.maxHeight&&(h.maxHeight=g);this._vBoundaries=h},_updateCache:function(a){var b=this.options;this.offset=this.helper.offset(),d(a.left)&&(this.position.left=a.left),d(a.top)&&(this.position.top=a.top),d(a.height)&&(this.size.height=a.height),d(a.width)&&(this.size.width=a.width)},_updateRatio:function(a,b){var c=this.options,e=this.position,f=this.size,g=this.axis;return d(a.height)?a.width=a.height*this.aspectRatio:d(a.width)&&(a.height=a.width/this.aspectRatio),g==\"sw\"&&(a.left=e.left+(f.width-a.width),a.top=null),g==\"nw\"&&(a.top=e.top+(f.height-a.height),a.left=e.left+(f.width-a.width)),a},_respectSize:function(a,b){var c=this.helper,e=this._vBoundaries,f=this._aspectRatio||b.shiftKey,g=this.axis,h=d(a.width)&&e.maxWidth&&e.maxWidth<a.width,i=d(a.height)&&e.maxHeight&&e.maxHeight<a.height,j=d(a.width)&&e.minWidth&&e.minWidth>a.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d<this._proportionallyResizeElements.length;d++){var e=this._proportionallyResizeElements[d];if(!this.borderDif){var f=[e.css(\"borderTopWidth\"),e.css(\"borderRightWidth\"),e.css(\"borderBottomWidth\"),e.css(\"borderLeftWidth\")],g=[e.css(\"paddingTop\"),e.css(\"paddingRight\"),e.css(\"paddingBottom\"),e.css(\"paddingLeft\")];this.borderDif=a.map(f,function(a,b){var c=parseInt(a,10)||0,d=parseInt(g[b],10)||0;return c+d})}if(!a.browser.msie||!a(c).is(\":hidden\")&&!a(c).parents(\":hidden\").length)e.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0});else continue}},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset();if(this._helper){this.helper=this.helper||a('<div style=\"overflow:hidden;\"></div>');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:\"absolute\",left:this.elementOffset.left-e+\"px\",top:this.elementOffset.top-e+\"px\",zIndex:++c.zIndex}),this.helper.appendTo(\"body\").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!=\"resize\"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:\"1.8.23\"}),a.ui.plugin.add(\"resizable\",\"alsoResize\",{start:function(b,c){var d=a(this).data(\"resizable\"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data(\"resizable-alsoresize\",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css(\"left\"),10),top:parseInt(b.css(\"top\"),10)})})};typeof e.alsoResize==\"object\"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data(\"resizable\"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data(\"resizable-alsoresize\"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?[\"width\",\"height\"]:[\"width\",\"height\",\"top\",\"left\"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize==\"object\"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData(\"resizable-alsoresize\")}}),a.ui.plugin.add(\"resizable\",\"animate\",{stop:function(b,c){var d=a(this).data(\"resizable\"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],\"left\")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css(\"left\"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css(\"top\"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css(\"width\"),10),height:parseInt(d.element.css(\"height\"),10),top:parseInt(d.element.css(\"top\"),10),left:parseInt(d.element.css(\"left\"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate(\"resize\",b)}})}}),a.ui.plugin.add(\"resizable\",\"containment\",{start:function(b,d){var e=a(this).data(\"resizable\"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a([\"Top\",\"Right\",\"Left\",\"Bottom\"]).each(function(a,b){k[a]=c(j.css(\"padding\"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,\"left\")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data(\"resizable\"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css(\"position\"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css(\"position\"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data(\"resizable\"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css(\"position\"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css(\"position\"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add(\"resizable\",\"ghost\",{start:function(b,c){var d=a(this).data(\"resizable\"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:\"block\",position:\"relative\",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass(\"ui-resizable-ghost\").addClass(typeof e.ghost==\"string\"?e.ghost:\"\"),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data(\"resizable\"),e=d.options;d.ghost&&d.ghost.css({position:\"relative\",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data(\"resizable\"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add(\"resizable\",\"grid\",{resize:function(b,c){var d=a(this).data(\"resizable\"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid==\"number\"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.selectable.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.widget(\"ui.selectable\",a.ui.mouse,{options:{appendTo:\"body\",autoRefresh:!0,distance:0,filter:\"*\",tolerance:\"touch\"},_create:function(){var b=this;this.element.addClass(\"ui-selectable\"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass(\"ui-selectee\"),c.each(function(){var b=a(this),c=b.offset();a.data(this,\"selectable-item\",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass(\"ui-selected\"),selecting:b.hasClass(\"ui-selecting\"),unselecting:b.hasClass(\"ui-unselecting\")})})},this.refresh(),this.selectees=c.addClass(\"ui-selectee\"),this._mouseInit(),this.helper=a(\"<div class='ui-selectable-helper'></div>\")},destroy:function(){return this.selectees.removeClass(\"ui-selectee\").removeData(\"selectable-item\"),this.element.removeClass(\"ui-selectable ui-selectable-disabled\").removeData(\"selectable\").unbind(\".selectable\"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger(\"start\",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(\".ui-selected\").each(function(){var d=a.data(this,\"selectable-item\");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass(\"ui-selected\"),d.selected=!1,d.$element.addClass(\"ui-unselecting\"),d.unselecting=!0,c._trigger(\"unselecting\",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,\"selectable-item\");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass(\"ui-selected\");return d.$element.removeClass(e?\"ui-unselecting\":\"ui-selected\").addClass(e?\"ui-selecting\":\"ui-unselecting\"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger(\"selecting\",b,{selecting:d.element}):c._trigger(\"unselecting\",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,\"selectable-item\");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance==\"touch\"?j=!(i.left>g||i.right<e||i.top>h||i.bottom<f):d.tolerance==\"fit\"&&(j=i.left>e&&i.right<g&&i.top>f&&i.bottom<h),j?(i.selected&&(i.$element.removeClass(\"ui-selected\"),i.selected=!1),i.unselecting&&(i.$element.removeClass(\"ui-unselecting\"),i.unselecting=!1),i.selecting||(i.$element.addClass(\"ui-selecting\"),i.selecting=!0,c._trigger(\"selecting\",b,{selecting:i.element}))):(i.selecting&&((b.metaKey||b.ctrlKey)&&i.startselected?(i.$element.removeClass(\"ui-selecting\"),i.selecting=!1,i.$element.addClass(\"ui-selected\"),i.selected=!0):(i.$element.removeClass(\"ui-selecting\"),i.selecting=!1,i.startselected&&(i.$element.addClass(\"ui-unselecting\"),i.unselecting=!0),c._trigger(\"unselecting\",b,{unselecting:i.element}))),i.selected&&!b.metaKey&&!b.ctrlKey&&!i.startselected&&(i.$element.removeClass(\"ui-selected\"),i.selected=!1,i.$element.addClass(\"ui-unselecting\"),i.unselecting=!0,c._trigger(\"unselecting\",b,{unselecting:i.element})))}),!1},_mouseStop:function(b){var c=this;this.dragged=!1;var d=this.options;return a(\".ui-unselecting\",this.element[0]).each(function(){var d=a.data(this,\"selectable-item\");d.$element.removeClass(\"ui-unselecting\"),d.unselecting=!1,d.startselected=!1,c._trigger(\"unselected\",b,{unselected:d.element})}),a(\".ui-selecting\",this.element[0]).each(function(){var d=a.data(this,\"selectable-item\");d.$element.removeClass(\"ui-selecting\").addClass(\"ui-selected\"),d.selecting=!1,d.selected=!0,d.startselected=!0,c._trigger(\"selected\",b,{selected:d.element})}),this._trigger(\"stop\",b),this.helper.remove(),!1}}),a.extend(a.ui.selectable,{version:\"1.8.23\"})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.sortable.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.widget(\"ui.sortable\",a.ui.mouse,{widgetEventPrefix:\"sort\",ready:!1,options:{appendTo:\"parent\",axis:!1,connectWith:!1,containment:!1,cursor:\"auto\",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:\"original\",items:\"> *\",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:\"default\",tolerance:\"intersect\",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass(\"ui-sortable\"),this.refresh(),this.floating=this.items.length?a.axis===\"x\"||/left|right/.test(this.items[0].item.css(\"float\"))||/inline|table-cell/.test(this.items[0].item.css(\"display\")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass(\"ui-sortable ui-sortable-disabled\"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+\"-item\");return this},_setOption:function(b,c){b===\"disabled\"?(this.options[b]=c,this.widget()[c?\"addClass\":\"removeClass\"](\"ui-sortable-disabled\")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type==\"static\")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+\"-item\")==f)return e=a(this),!1});a.data(b.target,d.widgetName+\"-item\")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find(\"*\").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css(\"position\",\"absolute\"),this.cssPosition=this.helper.css(\"position\"),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a(\"body\").css(\"cursor\")&&(this._storedCursor=a(\"body\").css(\"cursor\")),a(\"body\").css(\"cursor\",e.cursor)),e.opacity&&(this.helper.css(\"opacity\")&&(this._storedOpacity=this.helper.css(\"opacity\")),this.helper.css(\"opacity\",e.opacity)),e.zIndex&&(this.helper.css(\"zIndex\")&&(this._storedZIndex=this.helper.css(\"zIndex\")),this.helper.css(\"zIndex\",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!=\"HTML\"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger(\"start\",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger(\"activate\",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass(\"ui-sortable-helper\"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo(\"absolute\"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!=\"HTML\"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY<c.scrollSensitivity?this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop+c.scrollSpeed:b.pageY-this.overflowOffset.top<c.scrollSensitivity&&(this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop-c.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-b.pageX<c.scrollSensitivity?this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft+c.scrollSpeed:b.pageX-this.overflowOffset.left<c.scrollSensitivity&&(this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft-c.scrollSpeed)):(b.pageY-a(document).scrollTop()<c.scrollSensitivity?d=a(document).scrollTop(a(document).scrollTop()-c.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<c.scrollSensitivity&&(d=a(document).scrollTop(a(document).scrollTop()+c.scrollSpeed)),b.pageX-a(document).scrollLeft()<c.scrollSensitivity?d=a(document).scrollLeft(a(document).scrollLeft()-c.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<c.scrollSensitivity&&(d=a(document).scrollLeft(a(document).scrollLeft()+c.scrollSpeed))),d!==!1&&a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b)}this.positionAbs=this._convertPositionTo(\"absolute\");if(!this.options.axis||this.options.axis!=\"y\")this.helper[0].style.left=this.position.left+\"px\";if(!this.options.axis||this.options.axis!=\"x\")this.helper[0].style.top=this.position.top+\"px\";for(var e=this.items.length-1;e>=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?\"next\":\"prev\"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type==\"semi-dynamic\"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?\"down\":\"up\";if(this.options.tolerance==\"pointer\"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger(\"change\",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger(\"sort\",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper==\"original\"?this.currentItem.css(this._storedCSS).removeClass(\"ui-sortable-helper\"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger(\"deactivate\",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger(\"out\",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!=\"original\"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||\"id\")||\"\").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+\"[]\")+\"=\"+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+\"=\"),d.join(\"&\")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||\"id\")||\"\")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+j<i&&b+k>f&&b+k<g;return this.options.tolerance==\"pointer\"||this.options.forcePointerForContainers||this.options.tolerance!=\"pointer\"&&this.helperProportions[this.floating?\"width\":\"height\"]>a[this.floating?\"width\":\"height\"]?l:f<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<g&&h<d+this.helperProportions.height/2&&e-this.helperProportions.height/2<i},_intersectsWithPointer:function(b){var c=this.options.axis===\"x\"||a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top,b.height),d=this.options.axis===\"y\"||a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left,b.width),e=c&&d,f=this._getDragVerticalDirection(),g=this._getDragHorizontalDirection();return e?this.floating?g&&g==\"right\"||f==\"down\"?2:1:f&&(f==\"down\"?2:1):!1},_intersectsWithSides:function(b){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top+b.height/2,b.height),d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left+b.width/2,b.width),e=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();return this.floating&&f?f==\"right\"&&d||f==\"left\"&&!d:e&&(e==\"down\"&&c||e==\"up\"&&!c)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?\"down\":\"up\")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?\"right\":\"left\")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(\":data(\"+this.widgetName+\"-item)\");for(var b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(b){this.items=[],this.containers=[this];var c=this.items,d=this,e=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]],f=this._connectWith();if(f&&this.ready)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i<m;i++){var n=a(l[i]);n.data(this.widgetName+\"-item\",k),c.push({item:n,instance:k,width:0,height:0,left:0,top:0})}}},refreshPositions:function(b){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());for(var c=this.items.length-1;c>=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+\" ui-sortable-placeholder\").removeClass(\"ui-sortable-helper\")[0];return e||(b.style.visibility=\"hidden\"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css(\"paddingTop\")||0,10)-parseInt(c.currentItem.css(\"paddingBottom\")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css(\"paddingLeft\")||0,10)-parseInt(c.currentItem.css(\"paddingRight\")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger(\"out\",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger(\"over\",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?\"left\":\"top\"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.containers[d].floating?this.items[i].item.offset().left:this.items[i].item.offset().top;Math.abs(j-h)<f&&(f=Math.abs(j-h),g=this.items[i],this.direction=j-h>0?\"down\":\"up\")}if(!g&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[d],g?this._rearrange(b,g,null,!0):this._rearrange(b,null,this.containers[d].element,!0),this._trigger(\"change\",b,this._uiHash()),this.containers[d]._trigger(\"change\",b,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[d]._trigger(\"over\",b,this._uiHash(this)),this.containers[d].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):c.helper==\"clone\"?this.currentItem.clone():this.currentItem;return d.parents(\"body\").length||a(c.appendTo!=\"parent\"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css(\"position\"),top:this.currentItem.css(\"top\"),left:this.currentItem.css(\"left\")}),(d[0].style.width==\"\"||c.forceHelperSize)&&d.width(this.currentItem.width()),(d[0].style.height==\"\"||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){typeof b==\"string\"&&(b=b.split(\" \")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),\"left\"in b&&(this.offset.click.left=b.left+this.margins.left),\"right\"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),\"top\"in b&&(this.offset.click.top=b.top+this.margins.top),\"bottom\"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition==\"absolute\"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()==\"html\"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css(\"borderTopWidth\"),10)||0),left:b.left+(parseInt(this.offsetParent.css(\"borderLeftWidth\"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==\"relative\"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css(\"top\"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css(\"left\"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css(\"marginLeft\"),10)||0,top:parseInt(this.currentItem.css(\"marginTop\"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment==\"parent\"&&(b.containment=this.helper[0].parentNode);if(b.containment==\"document\"||b.containment==\"window\")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(b.containment==\"document\"?document:window).width()-this.helperProportions.width-this.margins.left,(a(b.containment==\"document\"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)){var c=a(b.containment)[0],d=a(b.containment).offset(),e=a(c).css(\"overflow\")!=\"hidden\";this.containment=[d.left+(parseInt(a(c).css(\"borderLeftWidth\"),10)||0)+(parseInt(a(c).css(\"paddingLeft\"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css(\"borderTopWidth\"),10)||0)+(parseInt(a(c).css(\"paddingTop\"),10)||0)-this.margins.top,d.left+(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css(\"borderLeftWidth\"),10)||0)-(parseInt(a(c).css(\"paddingRight\"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css(\"borderTopWidth\"),10)||0)-(parseInt(a(c).css(\"paddingBottom\"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(b,c){c||(c=this.position);var d=b==\"absolute\"?1:-1,e=this.options,f=this.cssPosition==\"absolute\"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&this.cssPosition==\"fixed\"?0:(this.cssPosition==\"fixed\"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&this.cssPosition==\"fixed\"?0:(this.cssPosition==\"fixed\"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition==\"absolute\"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName);this.cssPosition==\"relative\"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var f=b.pageX,g=b.pageY;if(this.originalPosition){this.containment&&(b.pageX-this.offset.click.left<this.containment[0]&&(f=this.containment[0]+this.offset.click.left),b.pageY-this.offset.click.top<this.containment[1]&&(g=this.containment[1]+this.offset.click.top),b.pageX-this.offset.click.left>this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.top<this.containment[1]||h-this.offset.click.top>this.containment[3]?h-this.offset.click.top<this.containment[1]?h+c.grid[1]:h-c.grid[1]:h:h;var i=this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0];f=this.containment?i-this.offset.click.left<this.containment[0]||i-this.offset.click.left>this.containment[2]?i-this.offset.click.left<this.containment[0]?i+c.grid[0]:i-c.grid[0]:i:i}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition==\"fixed\"?0:this.cssPosition==\"fixed\"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition==\"fixed\"?0:this.cssPosition==\"fixed\"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_rearrange:function(a,b,c,d){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction==\"down\"?b.item[0]:b.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var e=this,f=this.counter;window.setTimeout(function(){f==e.counter&&e.refreshPositions(!d)},0)},_clear:function(b,c){this.reverting=!1;var d=[],e=this;!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var f in this._storedCSS)if(this._storedCSS[f]==\"auto\"||this._storedCSS[f]==\"static\")this._storedCSS[f]=\"\";this.currentItem.css(this._storedCSS).removeClass(\"ui-sortable-helper\")}else this.currentItem.show();this.fromOutside&&!c&&d.push(function(a){this._trigger(\"receive\",a,this._uiHash(this.fromOutside))}),(this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(\".ui-sortable-helper\")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!c&&d.push(function(a){this._trigger(\"update\",a,this._uiHash())});if(!a.ui.contains(this.element[0],this.currentItem[0])){c||d.push(function(a){this._trigger(\"remove\",a,this._uiHash())});for(var f=this.containers.length-1;f>=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger(\"receive\",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger(\"update\",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger(\"deactivate\",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger(\"out\",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a(\"body\").css(\"cursor\",this._storedCursor),this._storedOpacity&&this.helper.css(\"opacity\",this._storedOpacity),this._storedZIndex&&this.helper.css(\"zIndex\",this._storedZIndex==\"auto\"?\"\":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger(\"beforeStop\",b,this._uiHash());for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger(\"stop\",b,this._uiHash())}return this.fromOutside=!1,!1}c||this._trigger(\"beforeStop\",b,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!=this.currentItem[0]&&this.helper.remove(),this.helper=null;if(!c){for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger(\"stop\",b,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(b){var c=b||this;return{helper:c.helper,placeholder:c.placeholder||a([]),position:c.position,originalPosition:c.originalPosition,offset:c.positionAbs,item:c.currentItem,sender:b?b.element:null}}}),a.extend(a.ui.sortable,{version:\"1.8.23\"})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.accordion.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.widget(\"ui.accordion\",{options:{active:0,animated:\"slide\",autoHeight:!0,clearStyle:!1,collapsible:!1,event:\"click\",fillSpace:!1,header:\"> li > :first-child,> :not(li):even\",icons:{header:\"ui-icon-triangle-1-e\",headerSelected:\"ui-icon-triangle-1-s\"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass(\"ui-accordion ui-widget ui-helper-reset\").children(\"li\").addClass(\"ui-accordion-li-fix\"),b.headers=b.element.find(c.header).addClass(\"ui-accordion-header ui-helper-reset ui-state-default ui-corner-all\").bind(\"mouseenter.accordion\",function(){if(c.disabled)return;a(this).addClass(\"ui-state-hover\")}).bind(\"mouseleave.accordion\",function(){if(c.disabled)return;a(this).removeClass(\"ui-state-hover\")}).bind(\"focus.accordion\",function(){if(c.disabled)return;a(this).addClass(\"ui-state-focus\")}).bind(\"blur.accordion\",function(){if(c.disabled)return;a(this).removeClass(\"ui-state-focus\")}),b.headers.next().addClass(\"ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom\");if(c.navigation){var d=b.element.find(\"a\").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(\".ui-accordion-header\");e.length?b.active=e:b.active=d.closest(\".ui-accordion-content\").prev()}}b.active=b._findActive(b.active||c.active).addClass(\"ui-state-default ui-state-active\").toggleClass(\"ui-corner-all\").toggleClass(\"ui-corner-top\"),b.active.next().addClass(\"ui-accordion-content-active\"),b._createIcons(),b.resize(),b.element.attr(\"role\",\"tablist\"),b.headers.attr(\"role\",\"tab\").bind(\"keydown.accordion\",function(a){return b._keydown(a)}).next().attr(\"role\",\"tabpanel\"),b.headers.not(b.active||\"\").attr({\"aria-expanded\":\"false\",\"aria-selected\":\"false\",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({\"aria-expanded\":\"true\",\"aria-selected\":\"true\",tabIndex:0}):b.headers.eq(0).attr(\"tabIndex\",0),a.browser.safari||b.headers.find(\"a\").attr(\"tabIndex\",-1),c.event&&b.headers.bind(c.event.split(\" \").join(\".accordion \")+\".accordion\",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a(\"<span></span>\").addClass(\"ui-icon \"+b.icons.header).prependTo(this.headers),this.active.children(\".ui-icon\").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),this.element.addClass(\"ui-accordion-icons\"))},_destroyIcons:function(){this.headers.children(\".ui-icon\").remove(),this.element.removeClass(\"ui-accordion-icons\")},destroy:function(){var b=this.options;this.element.removeClass(\"ui-accordion ui-widget ui-helper-reset\").removeAttr(\"role\"),this.headers.unbind(\".accordion\").removeClass(\"ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top\").removeAttr(\"role\").removeAttr(\"aria-expanded\").removeAttr(\"aria-selected\").removeAttr(\"tabIndex\"),this.headers.find(\"a\").removeAttr(\"tabIndex\"),this._destroyIcons();var c=this.headers.next().css(\"display\",\"\").removeAttr(\"role\").removeClass(\"ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled\");return(b.autoHeight||b.fillHeight)&&c.css(\"height\",\"\"),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==\"active\"&&this.activate(c),b==\"icons\"&&(this._destroyIcons(),c&&this._createIcons()),b==\"disabled\"&&this.headers.add(this.headers.next())[c?\"addClass\":\"removeClass\"](\"ui-accordion-disabled ui-state-disabled\")},_keydown:function(b){if(this.options.disabled||b.altKey||b.ctrlKey)return;var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}return f?(a(b.target).attr(\"tabIndex\",-1),a(f).attr(\"tabIndex\",0),f.focus(),!1):!0},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css(\"overflow\");this.element.parent().css(\"overflow\",\"hidden\")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css(\"overflow\",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css(\"overflow\",\"auto\")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height(\"\").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];return this._clickHandler({target:b},b),this},_findActive:function(b){return b?typeof b==\"number\"?this.headers.filter(\":eq(\"+b+\")\"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(\":eq(0)\")},_clickHandler:function(b,c){var d=this.options;if(d.disabled)return;if(!b.target){if(!d.collapsible)return;this.active.removeClass(\"ui-state-active ui-corner-top\").addClass(\"ui-state-default ui-corner-all\").children(\".ui-icon\").removeClass(d.icons.headerSelected).addClass(d.icons.header),this.active.next().addClass(\"ui-accordion-content-active\");var e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.removeClass(\"ui-state-active ui-corner-top\").addClass(\"ui-state-default ui-corner-all\").children(\".ui-icon\").removeClass(d.icons.headerSelected).addClass(d.icons.header),i||(h.removeClass(\"ui-state-default ui-corner-all\").addClass(\"ui-state-active ui-corner-top\").children(\".ui-icon\").removeClass(d.icons.header).addClass(d.icons.headerSelected),h.next().addClass(\"ui-accordion-content-active\"));return},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!g)return;return g._completed.apply(g,arguments)};g._trigger(\"changestart\",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m=\"slide\"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({\"aria-expanded\":\"false\",\"aria-selected\":\"false\",tabIndex:-1}).blur(),b.prev().attr({\"aria-expanded\":\"true\",\"aria-selected\":\"true\",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(this.running)return;this.options.clearStyle&&this.toShow.add(this.toHide).css({height:\"\",overflow:\"\"}),this.toHide.removeClass(\"ui-accordion-content-active\"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger(\"change\",null,this.data)}}),a.extend(a.ui.accordion,{version:\"1.8.23\",animations:{slide:function(b,c){b=a.extend({easing:\"swing\",duration:300},b,c);if(!b.toHide.size()){b.toShow.animate({height:\"show\",paddingTop:\"show\",paddingBottom:\"show\"},b);return}if(!b.toShow.size()){b.toHide.animate({height:\"hide\",paddingTop:\"hide\",paddingBottom:\"hide\"},b);return}var d=b.toShow.css(\"overflow\"),e=0,f={},g={},h=[\"height\",\"paddingTop\",\"paddingBottom\"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css(\"paddingLeft\"))-parseFloat(j.css(\"paddingRight\"))-(parseFloat(j.css(\"borderLeftWidth\"))||0)-(parseFloat(j.css(\"borderRightWidth\"))||0)),a.each(h,function(c,d){g[d]=\"hide\";var e=(\"\"+a.css(b.toShow[0],d)).match(/^([\\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||\"px\"}}),b.toShow.css({height:0,overflow:\"hidden\"}).show(),b.toHide.filter(\":hidden\").each(b.complete).end().filter(\":visible\").animate(g,{step:function(a,c){c.prop==\"height\"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css(\"height\",\"\"),b.toShow.css({width:i,overflow:d}),b.complete()}})},bounceslide:function(a){this.slide(a,{easing:a.down?\"easeOutBounce\":\"swing\",duration:a.down?1e3:200})}}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.autocomplete.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){var c=0;a.widget(\"ui.autocomplete\",{options:{appendTo:\"body\",autoFocus:!1,delay:300,minLength:1,position:{my:\"left top\",at:\"left bottom\",collision:\"none\"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.isMultiLine=this.element.is(\"textarea\"),this.element.addClass(\"ui-autocomplete-input\").attr(\"autocomplete\",\"off\").attr({role:\"textbox\",\"aria-autocomplete\":\"list\",\"aria-haspopup\":\"true\"}).bind(\"keydown.autocomplete\",function(c){if(b.options.disabled||b.element.propAttr(\"readOnly\"))return;d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move(\"previousPage\",c);break;case e.PAGE_DOWN:b._move(\"nextPage\",c);break;case e.UP:b._keyEvent(\"previous\",c);break;case e.DOWN:b._keyEvent(\"next\",c);break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}).bind(\"keypress.autocomplete\",function(a){d&&(d=!1,a.preventDefault())}).bind(\"focus.autocomplete\",function(){if(b.options.disabled)return;b.selectedItem=null,b.previous=b.element.val()}).bind(\"blur.autocomplete\",function(a){if(b.options.disabled)return;clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150)}),this._initSource(),this.menu=a(\"<ul></ul>\").addClass(\"ui-autocomplete\").appendTo(a(this.options.appendTo||\"body\",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(\".ui-menu-item\").length||setTimeout(function(){a(document).one(\"mousedown\",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data(\"item.autocomplete\");!1!==b._trigger(\"focus\",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data(\"item.autocomplete\"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger(\"select\",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(\":visible\")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data(\"menu\"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr(\"autocomplete\")},a(window).bind(\"beforeunload\",b.beforeunloadHandler)},destroy:function(){this.element.removeClass(\"ui-autocomplete-input\").removeAttr(\"autocomplete\").removeAttr(\"role\").removeAttr(\"aria-autocomplete\").removeAttr(\"aria-haspopup\"),this.menu.element.remove(),a(window).unbind(\"beforeunload\",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b===\"source\"&&this._initSource(),b===\"appendTo\"&&this.menu.element.appendTo(a(c||\"body\",this.element[0].ownerDocument)[0]),b===\"disabled\"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,c,d;a.isArray(this.options.source)?(c=this.options.source,this.source=function(b,d){d(a.ui.autocomplete.filter(c,b.term))}):typeof this.options.source==\"string\"?(d=this.options.source,this.source=function(c,e){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:d,data:c,dataType:\"json\",success:function(a,b){e(a)},error:function(){e([])}})}):this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val(),this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger(\"search\",b)===!1)return;return this._search(a)},_search:function(a){this.pending++,this.element.addClass(\"ui-autocomplete-loading\"),this.source({term:a},this._response())},_response:function(){var a=this,b=++c;return function(d){b===c&&a.__response(d),a.pending--,a.pending||a.element.removeClass(\"ui-autocomplete-loading\")}},__response:function(a){!this.options.disabled&&a&&a.length?(a=this._normalize(a),this._suggest(a),this._trigger(\"open\")):this.close()},close:function(a){clearTimeout(this.closing),this.menu.element.is(\":visible\")&&(this.menu.element.hide(),this.menu.deactivate(),this._trigger(\"close\",a))},_change:function(a){this.previous!==this.element.val()&&this._trigger(\"change\",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return typeof b==\"string\"?{label:b,value:b}:a.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(b){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(c,b),this.menu.deactivate(),this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(new a.Event(\"mouseover\"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width(\"\").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItem(b,c)})},_renderItem:function(b,c){return a(\"<li></li>\").data(\"item.autocomplete\",c).append(a(\"<a></a>\").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(\":visible\")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(\":visible\"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),\"i\");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})})(jQuery),function(a){a.widget(\"ui.menu\",{_create:function(){var b=this;this.element.addClass(\"ui-menu ui-widget ui-widget-content ui-corner-all\").attr({role:\"listbox\",\"aria-activedescendant\":\"ui-active-menuitem\"}).click(function(c){if(!a(c.target).closest(\".ui-menu-item a\").length)return;c.preventDefault(),b.select(c)}),this.refresh()},refresh:function(){var b=this,c=this.element.children(\"li:not(.ui-menu-item):has(a)\").addClass(\"ui-menu-item\").attr(\"role\",\"menuitem\");c.children(\"a\").addClass(\"ui-corner-all\").attr(\"tabindex\",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children(\"a\").addClass(\"ui-state-hover\").attr(\"id\",\"ui-active-menuitem\").end(),this._trigger(\"focus\",a,{item:b})},deactivate:function(){if(!this.active)return;this.active.children(\"a\").removeClass(\"ui-state-hover\").removeAttr(\"id\"),this._trigger(\"blur\"),this.active=null},next:function(a){this.move(\"next\",\".ui-menu-item:first\",a)},previous:function(a){this.move(\"prev\",\".ui-menu-item:last\",a)},first:function(){return this.active&&!this.active.prevAll(\".ui-menu-item\").length},last:function(){return this.active&&!this.active.nextAll(\".ui-menu-item\").length},move:function(a,b,c){if(!this.active){this.activate(c,this.element.children(b));return}var d=this.active[a+\"All\"](\".ui-menu-item\").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(\".ui-menu-item:first\"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(\".ui-menu-item\").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(\".ui-menu-item:last\")),this.activate(b,e)}else this.activate(b,this.element.children(\".ui-menu-item\").filter(!this.active||this.last()?\":first\":\":last\"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(\".ui-menu-item:last\"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(\".ui-menu-item\").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(\".ui-menu-item:first\")),this.activate(b,e)}else this.activate(b,this.element.children(\".ui-menu-item\").filter(!this.active||this.first()?\":last\":\":first\"))},hasScroll:function(){return this.element.height()<this.element[a.fn.prop?\"prop\":\"attr\"](\"scrollHeight\")},select:function(a){this._trigger(\"selected\",a,{item:this.active})}})}(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.button.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){var c,d,e,f,g=\"ui-button ui-widget ui-state-default ui-corner-all\",h=\"ui-state-hover ui-state-active \",i=\"ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only\",j=function(){var b=a(this).find(\":ui-button\");setTimeout(function(){b.button(\"refresh\")},1)},k=function(b){var c=b.name,d=b.form,e=a([]);return c&&(d?e=a(d).find(\"[name='\"+c+\"']\"):e=a(\"[name='\"+c+\"']\",b.ownerDocument).filter(function(){return!this.form})),e};a.widget(\"ui.button\",{options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest(\"form\").unbind(\"reset.button\").bind(\"reset.button\",j),typeof this.options.disabled!=\"boolean\"?this.options.disabled=!!this.element.propAttr(\"disabled\"):this.element.propAttr(\"disabled\",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr(\"title\");var b=this,h=this.options,i=this.type===\"checkbox\"||this.type===\"radio\",l=\"ui-state-hover\"+(i?\"\":\" ui-state-active\"),m=\"ui-state-focus\";h.label===null&&(h.label=this.buttonElement.html()),this.buttonElement.addClass(g).attr(\"role\",\"button\").bind(\"mouseenter.button\",function(){if(h.disabled)return;a(this).addClass(\"ui-state-hover\"),this===c&&a(this).addClass(\"ui-state-active\")}).bind(\"mouseleave.button\",function(){if(h.disabled)return;a(this).removeClass(l)}).bind(\"click.button\",function(a){h.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this.element.bind(\"focus.button\",function(){b.buttonElement.addClass(m)}).bind(\"blur.button\",function(){b.buttonElement.removeClass(m)}),i&&(this.element.bind(\"change.button\",function(){if(f)return;b.refresh()}),this.buttonElement.bind(\"mousedown.button\",function(a){if(h.disabled)return;f=!1,d=a.pageX,e=a.pageY}).bind(\"mouseup.button\",function(a){if(h.disabled)return;if(d!==a.pageX||e!==a.pageY)f=!0})),this.type===\"checkbox\"?this.buttonElement.bind(\"click.button\",function(){if(h.disabled||f)return!1;a(this).toggleClass(\"ui-state-active\"),b.buttonElement.attr(\"aria-pressed\",b.element[0].checked)}):this.type===\"radio\"?this.buttonElement.bind(\"click.button\",function(){if(h.disabled||f)return!1;a(this).addClass(\"ui-state-active\"),b.buttonElement.attr(\"aria-pressed\",\"true\");var c=b.element[0];k(c).not(c).map(function(){return a(this).button(\"widget\")[0]}).removeClass(\"ui-state-active\").attr(\"aria-pressed\",\"false\")}):(this.buttonElement.bind(\"mousedown.button\",function(){if(h.disabled)return!1;a(this).addClass(\"ui-state-active\"),c=this,a(document).one(\"mouseup\",function(){c=null})}).bind(\"mouseup.button\",function(){if(h.disabled)return!1;a(this).removeClass(\"ui-state-active\")}).bind(\"keydown.button\",function(b){if(h.disabled)return!1;(b.keyCode==a.ui.keyCode.SPACE||b.keyCode==a.ui.keyCode.ENTER)&&a(this).addClass(\"ui-state-active\")}).bind(\"keyup.button\",function(){a(this).removeClass(\"ui-state-active\")}),this.buttonElement.is(\"a\")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption(\"disabled\",h.disabled),this._resetButton()},_determineButtonType:function(){this.element.is(\":checkbox\")?this.type=\"checkbox\":this.element.is(\":radio\")?this.type=\"radio\":this.element.is(\"input\")?this.type=\"input\":this.type=\"button\";if(this.type===\"checkbox\"||this.type===\"radio\"){var a=this.element.parents().filter(\":last\"),b=\"label[for='\"+this.element.attr(\"id\")+\"']\";this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass(\"ui-helper-hidden-accessible\");var c=this.element.is(\":checked\");c&&this.buttonElement.addClass(\"ui-state-active\"),this.buttonElement.attr(\"aria-pressed\",c)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass(\"ui-helper-hidden-accessible\"),this.buttonElement.removeClass(g+\" \"+h+\" \"+i).removeAttr(\"role\").removeAttr(\"aria-pressed\").html(this.buttonElement.find(\".ui-button-text\").html()),this.hasTitle||this.buttonElement.removeAttr(\"title\"),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b===\"disabled\"){c?this.element.propAttr(\"disabled\",!0):this.element.propAttr(\"disabled\",!1);return}this._resetButton()},refresh:function(){var b=this.element.is(\":disabled\");b!==this.options.disabled&&this._setOption(\"disabled\",b),this.type===\"radio\"?k(this.element[0]).each(function(){a(this).is(\":checked\")?a(this).button(\"widget\").addClass(\"ui-state-active\").attr(\"aria-pressed\",\"true\"):a(this).button(\"widget\").removeClass(\"ui-state-active\").attr(\"aria-pressed\",\"false\")}):this.type===\"checkbox\"&&(this.element.is(\":checked\")?this.buttonElement.addClass(\"ui-state-active\").attr(\"aria-pressed\",\"true\"):this.buttonElement.removeClass(\"ui-state-active\").attr(\"aria-pressed\",\"false\"))},_resetButton:function(){if(this.type===\"input\"){this.options.label&&this.element.val(this.options.label);return}var b=this.buttonElement.removeClass(i),c=a(\"<span></span>\",this.element[0].ownerDocument).addClass(\"ui-button-text\").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push(\"ui-button-text-icon\"+(e?\"s\":d.primary?\"-primary\":\"-secondary\")),d.primary&&b.prepend(\"<span class='ui-button-icon-primary ui-icon \"+d.primary+\"'></span>\"),d.secondary&&b.append(\"<span class='ui-button-icon-secondary ui-icon \"+d.secondary+\"'></span>\"),this.options.text||(f.push(e?\"ui-button-icons-only\":\"ui-button-icon-only\"),this.hasTitle||b.attr(\"title\",c))):f.push(\"ui-button-text-only\"),b.addClass(f.join(\" \"))}}),a.widget(\"ui.buttonset\",{options:{items:\":button, :submit, :reset, :checkbox, :radio, a, :data(button)\"},_create:function(){this.element.addClass(\"ui-buttonset\")},_init:function(){this.refresh()},_setOption:function(b,c){b===\"disabled\"&&this.buttons.button(\"option\",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css(\"direction\")===\"rtl\";this.buttons=this.element.find(this.options.items).filter(\":ui-button\").button(\"refresh\").end().not(\":ui-button\").button().end().map(function(){return a(this).button(\"widget\")[0]}).removeClass(\"ui-corner-all ui-corner-left ui-corner-right\").filter(\":first\").addClass(b?\"ui-corner-right\":\"ui-corner-left\").end().filter(\":last\").addClass(b?\"ui-corner-left\":\"ui-corner-right\").end().end()},destroy:function(){this.element.removeClass(\"ui-buttonset\"),this.buttons.map(function(){return a(this).button(\"widget\")[0]}).removeClass(\"ui-corner-left ui-corner-right\").end().button(\"destroy\"),a.Widget.prototype.destroy.call(this)}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.dialog.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){var c=\"ui-dialog ui-widget ui-widget-content ui-corner-all \",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};a.widget(\"ui.dialog\",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:\"close\",dialogClass:\"\",draggable:!0,hide:null,height:\"auto\",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:\"center\",at:\"center\",collision:\"fit\",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css(\"top\",b.top-c)}},resizable:!0,show:null,stack:!0,title:\"\",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr(\"title\"),typeof this.originalTitle!=\"string\"&&(this.originalTitle=\"\"),this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||\"&#160;\",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a(\"<div></div>\")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr(\"tabIndex\",-1).css(\"outline\",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:\"dialog\",\"aria-labelledby\":f}).mousedown(function(a){b.moveToTop(!1,a)}),h=b.element.show().removeAttr(\"title\").addClass(\"ui-dialog-content ui-widget-content\").appendTo(g),i=(b.uiDialogTitlebar=a(\"<div></div>\")).addClass(\"ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix\").prependTo(g),j=a('<a href=\"#\"></a>').addClass(\"ui-dialog-titlebar-close ui-corner-all\").attr(\"role\",\"button\").hover(function(){j.addClass(\"ui-state-hover\")},function(){j.removeClass(\"ui-state-hover\")}).focus(function(){j.addClass(\"ui-state-focus\")}).blur(function(){j.removeClass(\"ui-state-focus\")}).click(function(a){return b.close(a),!1}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a(\"<span></span>\")).addClass(\"ui-icon ui-icon-closethick\").text(d.closeText).appendTo(j),l=a(\"<span></span>\").addClass(\"ui-dialog-title\").attr(\"id\",f).html(e).prependTo(i);a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find(\"*\").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(\".dialog\").removeData(\"dialog\").removeClass(\"ui-dialog-content ui-widget-content\").hide().appendTo(\"body\"),a.uiDialog.remove(),a.originalTitle&&a.element.attr(\"title\",a.originalTitle),a},widget:function(){return this.uiDialog},close:function(b){var c=this,d,e;if(!1===c._trigger(\"beforeClose\",b))return;return c.overlay&&c.overlay.destroy(),c.uiDialog.unbind(\"keypress.ui-dialog\"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger(\"close\",b)}):(c.uiDialog.hide(),c._trigger(\"close\",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(\".ui-dialog\").each(function(){this!==c.uiDialog[0]&&(e=a(this).css(\"z-index\"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;return e.modal&&!b||!e.stack&&!e.modal?d._trigger(\"focus\",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css(\"z-index\",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css(\"z-index\",a.ui.dialog.maxZ),d.element.attr(f),d._trigger(\"focus\",c),d)},open:function(){if(this._isOpen)return;var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind(\"keydown.ui-dialog\",function(b){if(b.keyCode!==a.ui.keyCode.TAB)return;var c=a(\":tabbable\",this),d=c.filter(\":first\"),e=c.filter(\":last\");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}),a(b.element.find(\":tabbable\").get().concat(d.find(\".ui-dialog-buttonpane :tabbable\").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger(\"open\"),b},_createButtons:function(b){var c=this,d=!1,e=a(\"<div></div>\").addClass(\"ui-dialog-buttonpane ui-widget-content ui-helper-clearfix\"),f=a(\"<div></div>\").addClass(\"ui-dialog-buttonset\").appendTo(e);c.uiDialog.find(\".ui-dialog-buttonpane\").remove(),typeof b==\"object\"&&b!==null&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('<button type=\"button\"></button>').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(f);a.each(d,function(a,b){if(a===\"click\")return;a in e?e[a](b):e.attr(a,b)}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var b=this,c=b.options,d=a(document),e;b.uiDialog.draggable({cancel:\".ui-dialog-content, .ui-dialog-titlebar-close\",handle:\".ui-dialog-titlebar\",containment:\"document\",start:function(d,g){e=c.height===\"auto\"?\"auto\":a(this).height(),a(this).height(a(this).height()).addClass(\"ui-dialog-dragging\"),b._trigger(\"dragStart\",d,f(g))},drag:function(a,c){b._trigger(\"drag\",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass(\"ui-dialog-dragging\").height(e),b._trigger(\"dragStop\",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css(\"position\"),g=typeof c==\"string\"?c:\"n,e,s,w,se,sw,ne,nw\";d.uiDialog.resizable({cancel:\".ui-dialog-content\",containment:\"document\",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass(\"ui-dialog-resizing\"),d._trigger(\"resizeStart\",b,h(c))},resize:function(a,b){d._trigger(\"resize\",a,h(b))},stop:function(b,c){a(this).removeClass(\"ui-dialog-resizing\"),e.height=a(this).height(),e.width=a(this).width(),d._trigger(\"resizeStop\",b,h(c)),a.ui.dialog.overlay.resize()}}).css(\"position\",f).find(\".ui-resizable-se\").addClass(\"ui-icon ui-icon-grip-diagonal-se\")},_minHeight:function(){var a=this.options;return a.height===\"auto\"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var c=[],d=[0,0],e;if(b){if(typeof b==\"string\"||typeof b==\"object\"&&\"0\"in b)c=b.split?b.split(\" \"):[b[0],b[1]],c.length===1&&(c[1]=c[0]),a.each([\"left\",\"top\"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(\" \"),at:c.join(\" \"),offset:d.join(\" \")};b=a.extend({},a.ui.dialog.prototype.options.position,b)}else b=a.ui.dialog.prototype.options.position;e=this.uiDialog.is(\":visible\"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(\":data(resizable)\")&&this.uiDialog.resizable(\"option\",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case\"beforeclose\":b=\"beforeClose\";break;case\"buttons\":e._createButtons(d);break;case\"closeText\":e.uiDialogTitlebarCloseText.text(\"\"+d);break;case\"dialogClass\":f.removeClass(e.options.dialogClass).addClass(c+d);break;case\"disabled\":d?f.addClass(\"ui-dialog-disabled\"):f.removeClass(\"ui-dialog-disabled\");break;case\"draggable\":var g=f.is(\":data(draggable)\");g&&!d&&f.draggable(\"destroy\"),!g&&d&&e._makeDraggable();break;case\"position\":e._position(d);break;case\"resizable\":var h=f.is(\":data(resizable)\");h&&!d&&f.resizable(\"destroy\"),h&&typeof d==\"string\"&&f.resizable(\"option\",\"handles\",d),!h&&d!==!1&&e._makeResizable(d);break;case\"title\":a(\".ui-dialog-title\",e.uiDialogTitlebar).html(\"\"+(d||\"&#160;\"))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var b=this.options,c,d,e=this.uiDialog.is(\":visible\");this.element.show().css({width:\"auto\",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:\"auto\",width:b.width}).height(),d=Math.max(0,b.minHeight-c);if(b.height===\"auto\")if(a.support.minHeight)this.element.css({minHeight:d,height:\"auto\"});else{this.uiDialog.show();var f=this.element.css(\"height\",\"auto\").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(\":data(resizable)\")&&this.uiDialog.resizable(\"option\",\"minHeight\",this._minHeight())}}),a.extend(a.ui.dialog,{version:\"1.8.23\",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr(\"id\");return b||(this.uuid+=1,b=this.uuid),\"ui-dialog-title-\"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map(\"focus,mousedown,mouseup,keydown,keypress,click\".split(\",\"),function(a){return a+\".dialog-overlay\"}).join(\" \"),create:function(b){this.instances.length===0&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()<a.ui.dialog.overlay.maxZ)return!1})},1),a(document).bind(\"keydown.dialog-overlay\",function(c){b.options.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}),a(window).bind(\"resize.dialog-overlay\",a.ui.dialog.overlay.resize));var c=(this.oldInstances.pop()||a(\"<div></div>\").addClass(\"ui-widget-overlay\")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);c!=-1&&this.oldInstances.push(this.instances.splice(c,1)[0]),this.instances.length===0&&a([document,window]).unbind(\".dialog-overlay\"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css(\"z-index\"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),b<c?a(window).height()+\"px\":b+\"px\"):a(document).height()+\"px\"},width:function(){var b,c;return a.browser.msie?(b=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),c=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),b<c?a(window).width()+\"px\":b+\"px\"):a(document).width()+\"px\"},resize:function(){var b=a([]);a.each(a.ui.dialog.overlay.instances,function(){b=b.add(this)}),b.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}}),a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.slider.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){var c=5;a.widget(\"ui.slider\",a.ui.mouse,{widgetEventPrefix:\"slide\",options:{animate:!1,distance:0,max:100,min:0,orientation:\"horizontal\",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(\".ui-slider-handle\").addClass(\"ui-state-default ui-corner-all\"),f=\"<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>\",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass(\"ui-slider ui-slider-\"+this.orientation+\" ui-widget\"+\" ui-widget-content\"+\" ui-corner-all\"+(d.disabled?\" ui-slider-disabled ui-disabled\":\"\")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&d.values.length!==2&&(d.values=[d.values[0],d.values[0]])),this.range=a(\"<div></div>\").appendTo(this.element).addClass(\"ui-slider-range ui-widget-header\"+(d.range===\"min\"||d.range===\"max\"?\" ui-slider-range-\"+d.range:\"\")));for(var i=e.length;i<g;i+=1)h.push(f);this.handles=e.add(a(h.join(\"\")).appendTo(b.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter(\"a\").click(function(a){a.preventDefault()}).hover(function(){d.disabled||a(this).addClass(\"ui-state-hover\")},function(){a(this).removeClass(\"ui-state-hover\")}).focus(function(){d.disabled?a(this).blur():(a(\".ui-slider .ui-state-focus\").removeClass(\"ui-state-focus\"),a(this).addClass(\"ui-state-focus\"))}).blur(function(){a(this).removeClass(\"ui-state-focus\")}),this.handles.each(function(b){a(this).data(\"index.ui-slider-handle\",b)}),this.handles.keydown(function(d){var e=a(this).data(\"index.ui-slider-handle\"),f,g,h,i;if(b.options.disabled)return;switch(d.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:d.preventDefault();if(!b._keySliding){b._keySliding=!0,a(this).addClass(\"ui-state-active\"),f=b._start(d,e);if(f===!1)return}}i=b.options.step,b.options.values&&b.options.values.length?g=h=b.values(e):g=h=b.value();switch(d.keyCode){case a.ui.keyCode.HOME:h=b._valueMin();break;case a.ui.keyCode.END:h=b._valueMax();break;case a.ui.keyCode.PAGE_UP:h=b._trimAlignValue(g+(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(g-(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g===b._valueMax())return;h=b._trimAlignValue(g+i);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g===b._valueMin())return;h=b._trimAlignValue(g-i)}b._slide(d,e,h)}).keyup(function(c){var d=a(this).data(\"index.ui-slider-handle\");b._keySliding&&(b._keySliding=!1,b._stop(c,d),b._change(c,d),a(this).removeClass(\"ui-state-active\"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass(\"ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all\").removeData(\"slider\").unbind(\".slider\"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options,d,e,f,g,h,i,j,k,l;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),d={x:b.pageX,y:b.pageY},e=this._normValueFromMouse(d),f=this._valueMax()-this._valueMin()+1,h=this,this.handles.each(function(b){var c=Math.abs(e-h.values(b));f>c&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass(\"ui-state-active\").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(\".ui-slider-handle\"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css(\"borderTopWidth\"),10)||0)-(parseInt(g.css(\"borderBottomWidth\"),10)||0)+(parseInt(g.css(\"marginTop\"),10)||0)},this.handles.hasClass(\"ui-state-hover\")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass(\"ui-state-active\"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation===\"vertical\"?\"vertical\":\"horizontal\"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation===\"horizontal\"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation===\"vertical\"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger(\"start\",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c<d)&&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger(\"slide\",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c,!0))):c!==this.value()&&(f=this._trigger(\"slide\",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger(\"stop\",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger(\"change\",a,c)}},value:function(a){if(arguments.length){this.options.value=this._trimAlignValue(a),this._refreshValue(),this._change(null,0);return}return this._value()},values:function(b,c){var d,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()},_setOption:function(b,c){var d,e=0;a.isArray(this.options.values)&&(e=this.options.values.length),a.Widget.prototype._setOption.apply(this,arguments);switch(b){case\"disabled\":c?(this.handles.filter(\".ui-state-focus\").blur(),this.handles.removeClass(\"ui-state-hover\"),this.handles.propAttr(\"disabled\",!0),this.element.addClass(\"ui-disabled\")):(this.handles.propAttr(\"disabled\",!1),this.element.removeClass(\"ui-disabled\"));break;case\"orientation\":this._detectOrientation(),this.element.removeClass(\"ui-slider-horizontal ui-slider-vertical\").addClass(\"ui-slider-\"+this.orientation),this._refreshValue();break;case\"value\":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case\"values\":this._animateOff=!0,this._refreshValue();for(d=0;d<e;d+=1)this._change(null,d);this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a),a},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b),b;c=this.options.values.slice();for(d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation===\"horizontal\"?\"left\":\"bottom\"]=f+\"%\",a(this).stop(1,1)[e?\"animate\":\"css\"](g,c.animate),d.options.range===!0&&(d.orientation===\"horizontal\"?(b===0&&d.range.stop(1,1)[e?\"animate\":\"css\"]({left:f+\"%\"},c.animate),b===1&&d.range[e?\"animate\":\"css\"]({width:f-h+\"%\"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?\"animate\":\"css\"]({bottom:f+\"%\"},c.animate),b===1&&d.range[e?\"animate\":\"css\"]({height:f-h+\"%\"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation===\"horizontal\"?\"left\":\"bottom\"]=f+\"%\",this.handle.stop(1,1)[e?\"animate\":\"css\"](g,c.animate),b===\"min\"&&this.orientation===\"horizontal\"&&this.range.stop(1,1)[e?\"animate\":\"css\"]({width:f+\"%\"},c.animate),b===\"max\"&&this.orientation===\"horizontal\"&&this.range[e?\"animate\":\"css\"]({width:100-f+\"%\"},{queue:!1,duration:c.animate}),b===\"min\"&&this.orientation===\"vertical\"&&this.range.stop(1,1)[e?\"animate\":\"css\"]({height:f+\"%\"},c.animate),b===\"max\"&&this.orientation===\"vertical\"&&this.range[e?\"animate\":\"css\"]({height:100-f+\"%\"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:\"1.8.23\"})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.tabs.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){function e(){return++c}function f(){return++d}var c=0,d=0;a.widget(\"ui.tabs\",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:\"click\",fx:null,idPrefix:\"ui-tabs-\",load:null,panelTemplate:\"<div></div>\",remove:null,select:null,show:null,spinner:\"<em>Loading&#8230;</em>\",tabTemplate:\"<li><a href='#{href}'><span>#{label}</span></a></li>\"},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a==\"selected\"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\\s/g,\"_\").replace(/[^\\w\\u00c0-\\uFFFF-]/g,\"\")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,\"\\\\:\")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||\"ui-tabs-\"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(\".ui-state-processing\").removeClass(\"ui-state-processing\").find(\"span:data(label.tabs)\").each(function(){var b=a(this);b.html(b.data(\"label.tabs\")).removeData(\"label.tabs\")})},_tabify:function(c){function m(b,c){b.css(\"display\",\"\"),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute(\"filter\")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find(\"ol,ul\").eq(0),this.lis=a(\" > li:has(a[href])\",this.list),this.anchors=this.lis.map(function(){return a(\"a\",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr(\"href\"),h=g.split(\"#\")[0],i;h&&(h===location.toString().split(\"#\")[0]||(i=a(\"base\")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!==\"#\"){a.data(c,\"href.tabs\",g),a.data(c,\"load.tabs\",g.replace(/#.*$/,\"\"));var j=d._tabId(c);c.href=\"#\"+j;var k=d.element.find(\"#\"+j);k.length||(k=a(e.panelTemplate).attr(\"id\",j).addClass(\"ui-tabs-panel ui-widget-content ui-corner-bottom\").insertAfter(d.panels[b-1]||d.list),k.data(\"destroy.tabs\",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass(\"ui-tabs ui-widget ui-widget-content ui-corner-all\"),this.list.addClass(\"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all\"),this.lis.addClass(\"ui-state-default ui-corner-top\"),this.panels.addClass(\"ui-tabs-panel ui-widget-content ui-corner-bottom\"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash)return e.selected=a,!1}),typeof e.selected!=\"number\"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!=\"number\"&&this.lis.filter(\".ui-tabs-selected\").length&&(e.selected=this.lis.index(this.lis.filter(\".ui-tabs-selected\"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(\".ui-state-disabled\"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass(\"ui-tabs-hide\"),this.lis.removeClass(\"ui-tabs-selected ui-state-active\"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass(\"ui-tabs-hide\"),this.lis.eq(e.selected).addClass(\"ui-tabs-selected ui-state-active\"),d.element.queue(\"tabs\",function(){d._trigger(\"show\",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind(\"unload\",function(){d.lis.add(d.anchors).unbind(\".tabs\"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(\".ui-tabs-selected\")),this.element[e.collapsible?\"addClass\":\"removeClass\"](\"ui-tabs-collapsible\"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass(\"ui-tabs-selected\")?\"addClass\":\"removeClass\"](\"ui-state-disabled\");e.cache===!1&&this.anchors.removeData(\"cache.tabs\"),this.lis.add(this.anchors).unbind(\".tabs\");if(e.event!==\"mouseover\"){var i=function(a,b){b.is(\":not(.ui-state-disabled)\")&&b.addClass(\"ui-state-\"+a)},j=function(a,b){b.removeClass(\"ui-state-\"+a)};this.lis.bind(\"mouseover.tabs\",function(){i(\"hover\",a(this))}),this.lis.bind(\"mouseout.tabs\",function(){j(\"hover\",a(this))}),this.anchors.bind(\"focus.tabs\",function(){i(\"focus\",a(this).closest(\"li\"))}),this.anchors.bind(\"blur.tabs\",function(){j(\"focus\",a(this).closest(\"li\"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest(\"li\").addClass(\"ui-tabs-selected ui-state-active\"),c.hide().removeClass(\"ui-tabs-hide\").animate(l,l.duration||\"normal\",function(){m(c,l),d._trigger(\"show\",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest(\"li\").addClass(\"ui-tabs-selected ui-state-active\"),c.removeClass(\"ui-tabs-hide\"),d._trigger(\"show\",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||\"normal\",function(){d.lis.removeClass(\"ui-tabs-selected ui-state-active\"),b.addClass(\"ui-tabs-hide\"),m(b,k),d.element.dequeue(\"tabs\")})}:function(a,b,c){d.lis.removeClass(\"ui-tabs-selected ui-state-active\"),b.addClass(\"ui-tabs-hide\"),d.element.dequeue(\"tabs\")};this.anchors.bind(e.event+\".tabs\",function(){var b=this,c=a(b).closest(\"li\"),f=d.panels.filter(\":not(.ui-tabs-hide)\"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass(\"ui-tabs-selected\")&&!e.collapsible||c.hasClass(\"ui-state-disabled\")||c.hasClass(\"ui-state-processing\")||d.panels.filter(\":animated\").length||d._trigger(\"select\",null,d._ui(this,g[0]))===!1)return this.blur(),!1;e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass(\"ui-tabs-selected\"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue(\"tabs\",function(){o(b,f)}).dequeue(\"tabs\"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue(\"tabs\",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue(\"tabs\",function(){o(b,f)}),d.element.queue(\"tabs\",function(){n(b,g)}),d.load(d.anchors.index(this));else throw\"jQuery UI Tabs: Mismatching fragment identifier.\";a.browser.msie&&this.blur()}),this.anchors.bind(\"click.tabs\",function(){return!1})},_getIndex:function(a){return typeof a==\"string\"&&(a=this.anchors.index(this.anchors.filter(\"[href$='\"+a+\"']\"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(\".tabs\").removeClass(\"ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible\").removeData(\"tabs\"),this.list.removeClass(\"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all\"),this.anchors.each(function(){var b=a.data(this,\"href.tabs\");b&&(this.href=b);var c=a(this).unbind(\".tabs\");a.each([\"href\",\"load\",\"cache\"],function(a,b){c.removeData(b+\".tabs\")})}),this.lis.unbind(\".tabs\").add(this.panels).each(function(){a.data(this,\"destroy.tabs\")?a(this).remove():a(this).removeClass([\"ui-state-default\",\"ui-corner-top\",\"ui-tabs-selected\",\"ui-state-active\",\"ui-state-hover\",\"ui-state-focus\",\"ui-state-disabled\",\"ui-tabs-panel\",\"ui-widget-content\",\"ui-corner-bottom\",\"ui-tabs-hide\"].join(\" \"))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\\{href\\}/g,c).replace(/#\\{label\\}/g,d)),i=c.indexOf(\"#\")?this._tabId(a(\"a\",h)[0]):c.replace(\"#\",\"\");h.addClass(\"ui-state-default ui-corner-top\").data(\"destroy.tabs\",!0);var j=f.element.find(\"#\"+i);return j.length||(j=a(g.panelTemplate).attr(\"id\",i).data(\"destroy.tabs\",!0)),j.addClass(\"ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide\"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass(\"ui-tabs-selected ui-state-active\"),j.removeClass(\"ui-tabs-hide\"),this.element.queue(\"tabs\",function(){f._trigger(\"show\",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger(\"add\",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass(\"ui-tabs-selected\")&&this.anchors.length>1&&this.select(b+(b+1<this.anchors.length?1:-1)),c.disabled=a.map(a.grep(c.disabled,function(a,c){return a!=b}),function(a,c){return a>=b?--a:a}),this._tabify(),this._trigger(\"remove\",null,this._ui(d.find(\"a\")[0],e[0])),this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)==-1)return;return this.lis.eq(b).removeClass(\"ui-state-disabled\"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger(\"enable\",null,this._ui(this.anchors[b],this.panels[b])),this},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass(\"ui-state-disabled\"),c.disabled.push(a),c.disabled.sort(),this._trigger(\"disable\",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;return this.anchors.eq(a).trigger(this.options.event+\".tabs\"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,\"load.tabs\");this.abort();if(!f||this.element.queue(\"tabs\").length!==0&&a.data(e,\"cache.tabs\")){this.element.dequeue(\"tabs\");return}this.lis.eq(b).addClass(\"ui-state-processing\");if(d.spinner){var g=a(\"span\",e);g.data(\"label.tabs\",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,\"cache.tabs\",!0),c._trigger(\"load\",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger(\"load\",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue(\"tabs\"),this},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue(\"tabs\",this.element.queue(\"tabs\").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData(\"cache.tabs\").data(\"load.tabs\",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:\"1.8.23\"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a<c.anchors.length?a:0)},a),b&&b.stopPropagation()}),f=c._unrotate||(c._unrotate=b?function(a){e()}:function(a){a.clientX&&c.rotate(null)});return a?(this.element.bind(\"tabsshow\",e),this.anchors.bind(d.event+\".tabs\",f),e()):(clearTimeout(c.rotation),this.element.unbind(\"tabsshow\",e),this.anchors.unbind(d.event+\".tabs\",f),delete this._rotate,delete this._unrotate),this}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.ui.datepicker.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function($,undefined){function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId=\"ui-datepicker-div\",this._inlineClass=\"ui-datepicker-inline\",this._appendClass=\"ui-datepicker-append\",this._triggerClass=\"ui-datepicker-trigger\",this._dialogClass=\"ui-datepicker-dialog\",this._disableClass=\"ui-datepicker-disabled\",this._unselectableClass=\"ui-datepicker-unselectable\",this._currentClass=\"ui-datepicker-current-day\",this._dayOverClass=\"ui-datepicker-days-cell-over\",this.regional=[],this.regional[\"\"]={closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"mm/dd/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"},this._defaults={showOn:\"focus\",showAnim:\"fadeIn\",showOptions:{},defaultDate:null,appendText:\"\",buttonText:\"...\",buttonImage:\"\",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:\"c-10:c+10\",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:\"+10\",minDate:null,maxDate:null,duration:\"fast\",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:\"\",altFormat:\"\",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[\"\"]),this.dpDiv=bindHover($('<div id=\"'+this._mainDivId+'\" class=\"ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all\"></div>'))}function bindHover(a){var b=\"button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a\";return a.bind(\"mouseout\",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass(\"ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover\")}).bind(\"mouseover\",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(\".ui-datepicker-calendar\").find(\"a\").removeClass(\"ui-state-hover\"),d.addClass(\"ui-state-hover\"),d.hasClass(\"ui-datepicker-prev\")&&d.addClass(\"ui-datepicker-prev-hover\"),d.hasClass(\"ui-datepicker-next\")&&d.addClass(\"ui-datepicker-next-hover\")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a==\"object\"&&a.length||a.constructor&&a.constructor.toString().match(/\\Array\\(\\)/))}$.extend($.ui,{datepicker:{version:\"1.8.23\"}});var PROP_NAME=\"datepicker\",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:\"hasDatepicker\",maxRows:4,log:function(){this.debug&&console.log.apply(\"\",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute(\"date:\"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName==\"div\"||nodeName==\"span\";target.id||(this.uuid+=1,target.id=\"dp\"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName==\"input\"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,\"\\\\\\\\$1\");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('<div class=\"'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all\"></div>')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind(\"setData.datepicker\",function(a,c,d){b.settings[c]=d}).bind(\"getData.datepicker\",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,\"appendText\"),d=this._get(b,\"isRTL\");b.append&&b.append.remove(),c&&(b.append=$('<span class=\"'+this._appendClass+'\">'+c+\"</span>\"),a[d?\"before\":\"after\"](b.append)),a.unbind(\"focus\",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,\"showOn\");(e==\"focus\"||e==\"both\")&&a.focus(this._showDatepicker);if(e==\"button\"||e==\"both\"){var f=this._get(b,\"buttonText\"),g=this._get(b,\"buttonImage\");b.trigger=$(this._get(b,\"buttonImageOnly\")?$(\"<img/>\").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('<button type=\"button\"></button>').addClass(this._triggerClass).html(g==\"\"?f:$(\"<img/>\").attr({src:g,alt:f,title:f}))),a[d?\"before\":\"after\"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,\"autoSize\")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,\"dateFormat\");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;d<a.length;d++)a[d].length>b&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?\"monthNames\":\"monthNamesShort\"))),b.setDate(d(this._get(a,c.match(/DD/)?\"dayNames\":\"dayNamesShort\"))+20-b.getDay())}a.input.attr(\"size\",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind(\"setData.datepicker\",function(a,c,d){b.settings[c]=d}).bind(\"getData.datepicker\",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css(\"display\",\"block\")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g=\"dp\"+this.uuid;this._dialogInput=$('<input type=\"text\" id=\"'+g+'\" style=\"position: absolute; top: -100px; width: 0px;\"/>'),this._dialogInput.keydown(this._doKeyDown),$(\"body\").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css(\"left\",this._pos[0]+20+\"px\").css(\"top\",this._pos[1]+\"px\"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d==\"input\"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind(\"focus\",this._showDatepicker).unbind(\"keydown\",this._doKeyDown).unbind(\"keypress\",this._doKeyPress).unbind(\"keyup\",this._doKeyUp)):(d==\"div\"||d==\"span\")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d==\"input\")a.disabled=!1,c.trigger.filter(\"button\").each(function(){this.disabled=!1}).end().filter(\"img\").css({opacity:\"1.0\",cursor:\"\"});else if(d==\"div\"||d==\"span\"){var e=b.children(\".\"+this._inlineClass);e.children().removeClass(\"ui-state-disabled\"),e.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").removeAttr(\"disabled\")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d==\"input\")a.disabled=!0,c.trigger.filter(\"button\").each(function(){this.disabled=!0}).end().filter(\"img\").css({opacity:\"0.5\",cursor:\"default\"});else if(d==\"div\"||d==\"span\"){var e=b.children(\".\"+this._inlineClass);e.children().addClass(\"ui-state-disabled\"),e.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").attr(\"disabled\",\"disabled\")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw\"Missing instance data for this datepicker\"}},_optionDatepicker:function(a,b,c){var d=this._getInst(a);if(arguments.length==2&&typeof b==\"string\")return b==\"defaults\"?$.extend({},$.datepicker._defaults):d?b==\"all\"?$.extend({},d.settings):this._get(d,b):null;var e=b||{};typeof b==\"string\"&&(e={},e[b]=c);if(d){this._curInst==d&&this._hideDatepicker();var f=this._getDateDatepicker(a,!0),g=this._getMinMaxDate(d,\"min\"),h=this._getMinMaxDate(d,\"max\");extendRemove(d.settings,e),g!==null&&e.dateFormat!==undefined&&e.minDate===undefined&&(d.settings.minDate=this._formatDate(d,g)),h!==null&&e.dateFormat!==undefined&&e.maxDate===undefined&&(d.settings.maxDate=this._formatDate(d,h)),this._attachments($(a),d),this._autoSize(d),this._setDate(d,f),this._updateAlternate(d),this._updateDatepicker(d)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(a){var b=$.datepicker._getInst(a.target),c=!0,d=b.dpDiv.is(\".ui-datepicker-rtl\");b._keyEvent=!0;if($.datepicker._datepickerShowing)switch(a.keyCode){case 9:$.datepicker._hideDatepicker(),c=!1;break;case 13:var e=$(\"td.\"+$.datepicker._dayOverClass+\":not(.\"+$.datepicker._currentClass+\")\",b.dpDiv);e[0]&&$.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,e[0]);var f=$.datepicker._get(b,\"onSelect\");if(f){var g=$.datepicker._formatDate(b);f.apply(b.input?b.input[0]:null,[g,b])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,\"stepBigMonths\"):-$.datepicker._get(b,\"stepMonths\"),\"M\");break;case 34:$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,\"stepBigMonths\"):+$.datepicker._get(b,\"stepMonths\"),\"M\");break;case 35:(a.ctrlKey||a.metaKey)&&$.datepicker._clearDate(a.target),c=a.ctrlKey||a.metaKey;break;case 36:(a.ctrlKey||a.metaKey)&&$.datepicker._gotoToday(a.target),c=a.ctrlKey||a.metaKey;break;case 37:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?1:-1,\"D\"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,\"stepBigMonths\"):-$.datepicker._get(b,\"stepMonths\"),\"M\");break;case 38:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,-7,\"D\"),c=a.ctrlKey||a.metaKey;break;case 39:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?-1:1,\"D\"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,\"stepBigMonths\"):+$.datepicker._get(b,\"stepMonths\"),\"M\");break;case 40:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,7,\"D\"),c=a.ctrlKey||a.metaKey;break;default:c=!1}else a.keyCode==36&&a.ctrlKey?$.datepicker._showDatepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyPress:function(a){var b=$.datepicker._getInst(a.target);if($.datepicker._get(b,\"constrainInput\")){var c=$.datepicker._possibleChars($.datepicker._get(b,\"dateFormat\")),d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||d<\" \"||!c||c.indexOf(d)>-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,\"dateFormat\"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!=\"input\"&&(a=$(\"input\",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,\"beforeShow\"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=\"\"),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css(\"position\")==\"fixed\",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:\"absolute\",display:\"block\",top:\"-1000px\"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?\"static\":e?\"fixed\":\"absolute\",display:\"none\",left:f.left+\"px\",top:f.top+\"px\"});if(!b.inline){var g=$.datepicker._get(b,\"showAnim\"),h=$.datepicker._get(b,\"duration\"),i=function(){var a=b.dpDiv.find(\"iframe.ui-datepicker-cover\");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,\"showOptions\"),h,i):b.dpDiv[g||\"show\"](g?h:null,i),(!g||!h)&&i(),b.input.is(\":visible\")&&!b.input.is(\":disabled\")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a)),this._attachHandlers(a);var d=a.dpDiv.find(\"iframe.ui-datepicker-cover\");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find(\".\"+this._dayOverClass+\" a\").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass(\"ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4\").width(\"\"),f>1&&a.dpDiv.addClass(\"ui-datepicker-multi-\"+f).css(\"width\",g*f+\"em\"),a.dpDiv[(e[0]!=1||e[1]!=1?\"add\":\"remove\")+\"Class\"](\"ui-datepicker-multi\"),a.dpDiv[(this._get(a,\"isRTL\")?\"add\":\"remove\")+\"Class\"](\"ui-datepicker-rtl\"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(\":visible\")&&!a.input.is(\":disabled\")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find(\"select.ui-datepicker-year:first\").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css(\"border-left-width\"))),parseFloat(b(a.css(\"border-top-width\")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+(c?0:$(document).scrollLeft()),i=document.documentElement.clientHeight+(c?0:$(document).scrollTop());return b.left-=this._get(a,\"isRTL\")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,\"isRTL\");while(a&&(a.type==\"hidden\"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?\"previousSibling\":\"nextSibling\"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,\"showAnim\"),d=this._get(b,\"duration\"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,\"showOptions\"),d,e):b.dpDiv[c==\"slideDown\"?\"slideUp\":c==\"fadeIn\"?\"fadeOut\":\"hide\"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,\"onClose\");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():\"\",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:\"absolute\",left:\"0\",top:\"-100px\"}),$.blockUI&&($.unblockUI(),$(\"body\").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(\".ui-datepicker-calendar\")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents(\"#\"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest(\".\"+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c==\"M\"?this._get(e,\"showCurrentAtPos\"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,\"gotoCurrent\")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e[\"selected\"+(c==\"M\"?\"Month\":\"Year\")]=e[\"draw\"+(c==\"M\"?\"Month\":\"Year\")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$(\"a\",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,\"\")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,\"onSelect\");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger(\"change\"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!=\"object\"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,\"altField\");if(b){var c=this._get(a,\"altFormat\")||this._get(a,\"dateFormat\"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,\"\"]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw\"Invalid arguments\";b=typeof b==\"object\"?b.toString():b+\"\";if(b==\"\")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!=\"string\"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1<a.length&&a.charAt(s+1)==b;return c&&s++,c},o=function(a){var c=n(a),d=a==\"@\"?14:a==\"!\"?20:a==\"y\"&&c?4:a==\"o\"?3:2,e=new RegExp(\"^\\\\d{1,\"+d+\"}\"),f=b.substring(r).match(e);if(!f)throw\"Missing number at position \"+r;return r+=f[0].length,parseInt(f[0],10)},p=function(a,c,d){var e=$.map(n(a)?d:c,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)}),f=-1;$.each(e,function(a,c){var d=c[1];if(b.substr(r,d.length).toLowerCase()==d.toLowerCase())return f=c[0],r+=d.length,!1});if(f!=-1)return f+1;throw\"Unknown name at position \"+r},q=function(){if(b.charAt(r)!=a.charAt(s))throw\"Unexpected literal at position \"+r;r++},r=0;for(var s=0;s<a.length;s++)if(m)a.charAt(s)==\"'\"&&!n(\"'\")?m=!1:q();else switch(a.charAt(s)){case\"d\":k=o(\"d\");break;case\"D\":p(\"D\",e,f);break;case\"o\":l=o(\"o\");break;case\"m\":j=o(\"m\");break;case\"M\":j=p(\"M\",g,h);break;case\"y\":i=o(\"y\");break;case\"@\":var t=new Date(o(\"@\"));i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case\"!\":var t=new Date((o(\"!\")-this._ticksTo1970)/1e4);i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case\"'\":n(\"'\")?q():m=!0;break;default:q()}if(r<b.length)throw\"Extra/unparsed characters found in date: \"+b.substring(r);i==-1?i=(new Date).getFullYear():i<100&&(i+=(new Date).getFullYear()-(new Date).getFullYear()%100+(i<=d?0:-100));if(l>-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw\"Invalid date\";return t},ATOM:\"yy-mm-dd\",COOKIE:\"D, dd M yy\",ISO_8601:\"yy-mm-dd\",RFC_822:\"D, d M y\",RFC_850:\"DD, dd-M-y\",RFC_1036:\"D, d M y\",RFC_1123:\"D, d M yy\",RFC_2822:\"D, d M yy\",RSS:\"D, d M y\",TICKS:\"!\",TIMESTAMP:\"@\",W3C:\"yy-mm-dd\",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return\"\";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+1<a.length&&a.charAt(m+1)==b;return c&&m++,c},i=function(a,b,c){var d=\"\"+b;if(h(a))while(d.length<c)d=\"0\"+d;return d},j=function(a,b,c,d){return h(a)?d[b]:c[b]},k=\"\",l=!1;if(b)for(var m=0;m<a.length;m++)if(l)a.charAt(m)==\"'\"&&!h(\"'\")?l=!1:k+=a.charAt(m);else switch(a.charAt(m)){case\"d\":k+=i(\"d\",b.getDate(),2);break;case\"D\":k+=j(\"D\",b.getDay(),d,e);break;case\"o\":k+=i(\"o\",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864e5),3);break;case\"m\":k+=i(\"m\",b.getMonth()+1,2);break;case\"M\":k+=j(\"M\",b.getMonth(),f,g);break;case\"y\":k+=h(\"y\")?b.getFullYear():(b.getYear()%100<10?\"0\":\"\")+b.getYear()%100;break;case\"@\":k+=b.getTime();break;case\"!\":k+=b.getTime()*1e4+this._ticksTo1970;break;case\"'\":h(\"'\")?k+=\"'\":l=!0;break;default:k+=a.charAt(m)}return k},_possibleChars:function(a){var b=\"\",c=!1,d=function(b){var c=e+1<a.length&&a.charAt(e+1)==b;return c&&e++,c};for(var e=0;e<a.length;e++)if(c)a.charAt(e)==\"'\"&&!d(\"'\")?c=!1:b+=a.charAt(e);else switch(a.charAt(e)){case\"d\":case\"m\":case\"y\":case\"@\":b+=\"0123456789\";break;case\"D\":case\"M\":return null;case\"'\":d(\"'\")?b+=\"'\":c=!0;break;default:b+=a.charAt(e)}return b},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()==a.lastVal)return;var c=this._get(a,\"dateFormat\"),d=a.lastVal=a.input?a.input.val():null,e,f;e=f=this._getDefaultDate(a);var g=this._getFormatConfig(a);try{e=this.parseDate(c,d,g)||f}catch(h){this.log(h),d=b?\"\":d}a.selectedDay=e.getDate(),a.drawMonth=a.selectedMonth=e.getMonth(),a.drawYear=a.selectedYear=e.getFullYear(),a.currentDay=d?e.getDate():0,a.currentMonth=d?e.getMonth():0,a.currentYear=d?e.getFullYear():0,this._adjustInstDate(a)},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,\"defaultDate\"),new Date))},_determineDate:function(a,b,c){var d=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},e=function(b){try{return $.datepicker.parseDate($.datepicker._get(a,\"dateFormat\"),b,$.datepicker._getFormatConfig(a))}catch(c){}var d=(b.toLowerCase().match(/^c/)?$.datepicker._getDate(a):null)||new Date,e=d.getFullYear(),f=d.getMonth(),g=d.getDate(),h=/([+-]?[0-9]+)\\s*(d|D|w|W|m|M|y|Y)?/g,i=h.exec(b);while(i){switch(i[2]||\"d\"){case\"d\":case\"D\":g+=parseInt(i[1],10);break;case\"w\":case\"W\":g+=parseInt(i[1],10)*7;break;case\"m\":case\"M\":f+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f));break;case\"y\":case\"Y\":e+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f))}i=h.exec(b)}return new Date(e,f,g)},f=b==null||b===\"\"?c:typeof b==\"string\"?e(b):typeof b==\"number\"?isNaN(b)?c:d(b):new Date(b.getTime());return f=f&&f.toString()==\"Invalid Date\"?c:f,f&&(f.setHours(0),f.setMinutes(0),f.setSeconds(0),f.setMilliseconds(0)),this._daylightSavingAdjust(f)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?\"\":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==\"\"?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_attachHandlers:function(a){var b=this._get(a,\"stepMonths\"),c=\"#\"+a.id.replace(/\\\\\\\\/g,\"\\\\\");a.dpDiv.find(\"[data-handler]\").map(function(){var a={prev:function(){window[\"DP_jQuery_\"+dpuuid].datepicker._adjustDate(c,-b,\"M\")},next:function(){window[\"DP_jQuery_\"+dpuuid].datepicker._adjustDate(c,+b,\"M\")},hide:function(){window[\"DP_jQuery_\"+dpuuid].datepicker._hideDatepicker()},today:function(){window[\"DP_jQuery_\"+dpuuid].datepicker._gotoToday(c)},selectDay:function(){return window[\"DP_jQuery_\"+dpuuid].datepicker._selectDay(c,+this.getAttribute(\"data-month\"),+this.getAttribute(\"data-year\"),this),!1},selectMonth:function(){return window[\"DP_jQuery_\"+dpuuid].datepicker._selectMonthYear(c,this,\"M\"),!1},selectYear:function(){return window[\"DP_jQuery_\"+dpuuid].datepicker._selectMonthYear(c,this,\"Y\"),!1}};$(this).bind(this.getAttribute(\"data-event\"),a[this.getAttribute(\"data-handler\")])})},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,\"isRTL\"),d=this._get(a,\"showButtonPanel\"),e=this._get(a,\"hideIfNoPrevNext\"),f=this._get(a,\"navigationAsDateFormat\"),g=this._getNumberOfMonths(a),h=this._get(a,\"showCurrentAtPos\"),i=this._get(a,\"stepMonths\"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,\"min\"),m=this._getMinMaxDate(a,\"max\"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&p<l?l:p;while(this._daylightSavingAdjust(new Date(o,n,1))>p)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,\"prevText\");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?'<a class=\"ui-datepicker-prev ui-corner-all\" data-handler=\"prev\" data-event=\"click\" title=\"'+q+'\"><span class=\"ui-icon ui-icon-circle-triangle-'+(c?\"e\":\"w\")+'\">'+q+\"</span></a>\":e?\"\":'<a class=\"ui-datepicker-prev ui-corner-all ui-state-disabled\" title=\"'+q+'\"><span class=\"ui-icon ui-icon-circle-triangle-'+(c?\"e\":\"w\")+'\">'+q+\"</span></a>\",s=this._get(a,\"nextText\");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?'<a class=\"ui-datepicker-next ui-corner-all\" data-handler=\"next\" data-event=\"click\" title=\"'+s+'\"><span class=\"ui-icon ui-icon-circle-triangle-'+(c?\"w\":\"e\")+'\">'+s+\"</span></a>\":e?\"\":'<a class=\"ui-datepicker-next ui-corner-all ui-state-disabled\" title=\"'+s+'\"><span class=\"ui-icon ui-icon-circle-triangle-'+(c?\"w\":\"e\")+'\">'+s+\"</span></a>\",u=this._get(a,\"currentText\"),v=this._get(a,\"gotoCurrent\")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?\"\":'<button type=\"button\" class=\"ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all\" data-handler=\"hide\" data-event=\"click\">'+this._get(a,\"closeText\")+\"</button>\",x=d?'<div class=\"ui-datepicker-buttonpane ui-widget-content\">'+(c?w:\"\")+(this._isInRange(a,v)?'<button type=\"button\" class=\"ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all\" data-handler=\"today\" data-event=\"click\">'+u+\"</button>\":\"\")+(c?\"\":w)+\"</div>\":\"\",y=parseInt(this._get(a,\"firstDay\"),10);y=isNaN(y)?0:y;var z=this._get(a,\"showWeek\"),A=this._get(a,\"dayNames\"),B=this._get(a,\"dayNamesShort\"),C=this._get(a,\"dayNamesMin\"),D=this._get(a,\"monthNames\"),E=this._get(a,\"monthNamesShort\"),F=this._get(a,\"beforeShowDay\"),G=this._get(a,\"showOtherMonths\"),H=this._get(a,\"selectOtherMonths\"),I=this._get(a,\"calculateWeek\")||this.iso8601Week,J=this._getDefaultDate(a),K=\"\";for(var L=0;L<g[0];L++){var M=\"\";this.maxRows=4;for(var N=0;N<g[1];N++){var O=this._daylightSavingAdjust(new Date(o,n,a.selectedDay)),P=\" ui-corner-all\",Q=\"\";if(j){Q+='<div class=\"ui-datepicker-group';if(g[1]>1)switch(N){case 0:Q+=\" ui-datepicker-group-first\",P=\" ui-corner-\"+(c?\"right\":\"left\");break;case g[1]-1:Q+=\" ui-datepicker-group-last\",P=\" ui-corner-\"+(c?\"left\":\"right\");break;default:Q+=\" ui-datepicker-group-middle\",P=\"\"}Q+='\">'}Q+='<div class=\"ui-datepicker-header ui-widget-header ui-helper-clearfix'+P+'\">'+(/all|left/.test(P)&&L==0?c?t:r:\"\")+(/all|right/.test(P)&&L==0?c?r:t:\"\")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'</div><table class=\"ui-datepicker-calendar\"><thead>'+\"<tr>\";var R=z?'<th class=\"ui-datepicker-week-col\">'+this._get(a,\"weekHeader\")+\"</th>\":\"\";for(var S=0;S<7;S++){var T=(S+y)%7;R+=\"<th\"+((S+y+6)%7>=5?' class=\"ui-datepicker-week-end\"':\"\")+\">\"+'<span title=\"'+A[T]+'\">'+C[T]+\"</span></th>\"}Q+=R+\"</tr></thead><tbody>\";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z<X;Z++){Q+=\"<tr>\";var _=z?'<td class=\"ui-datepicker-week-col\">'+this._get(a,\"calculateWeek\")(Y)+\"</td>\":\"\";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,\"\"],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Y<l||m&&Y>m;_+='<td class=\"'+((S+y+6)%7>=5?\" ui-datepicker-week-end\":\"\")+(bb?\" ui-datepicker-other-month\":\"\")+(Y.getTime()==O.getTime()&&n==a.selectedMonth&&a._keyEvent||J.getTime()==Y.getTime()&&J.getTime()==O.getTime()?\" \"+this._dayOverClass:\"\")+(bc?\" \"+this._unselectableClass+\" ui-state-disabled\":\"\")+(bb&&!G?\"\":\" \"+ba[1]+(Y.getTime()==k.getTime()?\" \"+this._currentClass:\"\")+(Y.getTime()==b.getTime()?\" ui-datepicker-today\":\"\"))+'\"'+((!bb||G)&&ba[2]?' title=\"'+ba[2]+'\"':\"\")+(bc?\"\":' data-handler=\"selectDay\" data-event=\"click\" data-month=\"'+Y.getMonth()+'\" data-year=\"'+Y.getFullYear()+'\"')+\">\"+(bb&&!G?\"&#xa0;\":bc?'<span class=\"ui-state-default\">'+Y.getDate()+\"</span>\":'<a class=\"ui-state-default'+(Y.getTime()==b.getTime()?\" ui-state-highlight\":\"\")+(Y.getTime()==k.getTime()?\" ui-state-active\":\"\")+(bb?\" ui-priority-secondary\":\"\")+'\" href=\"#\">'+Y.getDate()+\"</a>\")+\"</td>\",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+\"</tr>\"}n++,n>11&&(n=0,o++),Q+=\"</tbody></table>\"+(j?\"</div>\"+(g[0]>0&&N==g[1]-1?'<div class=\"ui-datepicker-row-break\"></div>':\"\"):\"\"),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src=\"javascript:false;\" class=\"ui-datepicker-cover\" frameborder=\"0\"></iframe>':\"\"),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,\"changeMonth\"),j=this._get(a,\"changeYear\"),k=this._get(a,\"showMonthAfterYear\"),l='<div class=\"ui-datepicker-title\">',m=\"\";if(f||!i)m+='<span class=\"ui-datepicker-month\">'+g[b]+\"</span>\";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='<select class=\"ui-datepicker-month\" data-handler=\"selectMonth\" data-event=\"change\">';for(var p=0;p<12;p++)(!n||p>=d.getMonth())&&(!o||p<=e.getMonth())&&(m+='<option value=\"'+p+'\"'+(p==b?' selected=\"selected\"':\"\")+\">\"+h[p]+\"</option>\");m+=\"</select>\"}k||(l+=m+(f||!i||!j?\"&#xa0;\":\"\"));if(!a.yearshtml){a.yearshtml=\"\";if(f||!j)l+='<span class=\"ui-datepicker-year\">'+c+\"</span>\";else{var q=this._get(a,\"yearRange\").split(\":\"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||\"\"));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='<select class=\"ui-datepicker-year\" data-handler=\"selectYear\" data-event=\"change\">';for(;t<=u;t++)a.yearshtml+='<option value=\"'+t+'\"'+(t==c?' selected=\"selected\"':\"\")+\">\"+t+\"</option>\";a.yearshtml+=\"</select>\",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,\"yearSuffix\"),k&&(l+=(f||!i||!j?\"&#xa0;\":\"\")+m),l+=\"</div>\",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c==\"Y\"?b:0),e=a.drawMonth+(c==\"M\"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c==\"D\"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c==\"M\"||c==\"Y\")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,\"min\"),d=this._getMinMaxDate(a,\"max\"),e=c&&b<c?c:b;return e=d&&e>d?d:e,e},_notifyChange:function(a){var b=this._get(a,\"onChangeMonthYear\");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,\"numberOfMonths\");return b==null?[1,1]:typeof b==\"number\"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+\"Date\"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,\"min\"),d=this._getMinMaxDate(a,\"max\");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,\"shortYearCutoff\");return b=typeof b!=\"string\"?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,\"dayNamesShort\"),dayNames:this._get(a,\"dayNames\"),monthNamesShort:this._get(a,\"monthNamesShort\"),monthNames:this._get(a,\"monthNames\")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b==\"object\"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,\"dateFormat\"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find(\"body\").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!=\"string\"||a!=\"isDisabled\"&&a!=\"getDate\"&&a!=\"widget\"?a==\"option\"&&arguments.length==2&&typeof arguments[1]==\"string\"?$.datepicker[\"_\"+a+\"Datepicker\"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a==\"string\"?$.datepicker[\"_\"+a+\"Datepicker\"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker[\"_\"+a+\"Datepicker\"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version=\"1.8.23\",window[\"DP_jQuery_\"+dpuuid]=$})(jQuery);;\n/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.core.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\njQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array&&b.length==3?b:(c=/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(b))?[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)]:(c=/rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.exec(b))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))?[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))?[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)]:(c=/rgba\\(0, 0, 0, 0\\)/.exec(b))?e.transparent:e[a.trim(b).toLowerCase()]}function d(b,d){var e;do{e=(a.curCSS||a.css)(b,d);if(e!=\"\"&&e!=\"transparent\"||a.nodeName(b,\"body\"))break;d=\"backgroundColor\"}while(b=b.parentNode);return c(e)}function h(){var a=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,b={},c,d;if(a&&a.length&&a[0]&&a[a[0]]){var e=a.length;while(e--)c=a[e],typeof a[c]==\"string\"&&(d=c.replace(/\\-(\\w)/g,function(a,b){return b.toUpperCase()}),b[d]=a[c])}else for(c in a)typeof a[c]==\"string\"&&(b[c]=a[c]);return b}function i(b){var c,d;for(c in b)d=b[c],(d==null||a.isFunction(d)||c in g||/scrollbar/.test(c)||!/color/i.test(c)&&isNaN(parseFloat(d)))&&delete b[c];return b}function j(a,b){var c={_:0},d;for(d in b)a[d]!=b[d]&&(c[d]=b[d]);return c}function k(b,c,d,e){typeof b==\"object\"&&(e=c,d=null,c=b,b=c.effect),a.isFunction(c)&&(e=c,d=null,c={});if(typeof c==\"number\"||a.fx.speeds[c])e=d,d=c,c={};return a.isFunction(d)&&(e=d,d=null),c=c||{},d=d||c.duration,d=a.fx.off?0:typeof d==\"number\"?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,e=e||c.complete,[b,c,d,e]}function l(b){return!b||typeof b==\"number\"||a.fx.speeds[b]?!0:typeof b==\"string\"&&!a.effects[b]?!0:!1}a.effects={},a.each([\"backgroundColor\",\"borderBottomColor\",\"borderLeftColor\",\"borderRightColor\",\"borderTopColor\",\"borderColor\",\"color\",\"outlineColor\"],function(b,e){a.fx.step[e]=function(a){a.colorInit||(a.start=d(a.elem,e),a.end=c(a.end),a.colorInit=!0),a.elem.style[e]=\"rgb(\"+Math.max(Math.min(parseInt(a.pos*(a.end[0]-a.start[0])+a.start[0],10),255),0)+\",\"+Math.max(Math.min(parseInt(a.pos*(a.end[1]-a.start[1])+a.start[1],10),255),0)+\",\"+Math.max(Math.min(parseInt(a.pos*(a.end[2]-a.start[2])+a.start[2],10),255),0)+\")\"}});var e={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},f=[\"add\",\"remove\",\"toggle\"],g={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),this.queue(function(){var g=a(this),k=g.attr(\"style\")||\" \",l=i(h.call(this)),m,n=g.attr(\"class\")||\"\";a.each(f,function(a,c){b[c]&&g[c+\"Class\"](b[c])}),m=i(h.call(this)),g.attr(\"class\",n),g.animate(j(l,m),{queue:!1,duration:c,easing:d,complete:function(){a.each(f,function(a,c){b[c]&&g[c+\"Class\"](b[c])}),typeof g.attr(\"style\")==\"object\"?(g.attr(\"style\").cssText=\"\",g.attr(\"style\").cssText=k):g.attr(\"style\",k),e&&e.apply(this,arguments),a.dequeue(this)}})})},a.fn.extend({_addClass:a.fn.addClass,addClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{add:b},c,d,e]):this._addClass(b)},_removeClass:a.fn.removeClass,removeClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{remove:b},c,d,e]):this._removeClass(b)},_toggleClass:a.fn.toggleClass,toggleClass:function(c,d,e,f,g){return typeof d==\"boolean\"||d===b?e?a.effects.animateClass.apply(this,[d?{add:c}:{remove:c},e,f,g]):this._toggleClass(c,d):a.effects.animateClass.apply(this,[{toggle:c},d,e,f])},switchClass:function(b,c,d,e,f){return a.effects.animateClass.apply(this,[{add:c,remove:b},d,e,f])}}),a.extend(a.effects,{version:\"1.8.23\",save:function(a,b){for(var c=0;c<b.length;c++)b[c]!==null&&a.data(\"ec.storage.\"+b[c],a[0].style[b[c]])},restore:function(a,b){for(var c=0;c<b.length;c++)b[c]!==null&&a.css(b[c],a.data(\"ec.storage.\"+b[c]))},setMode:function(a,b){return b==\"toggle\"&&(b=a.is(\":hidden\")?\"show\":\"hide\"),b},getBaseline:function(a,b){var c,d;switch(a[0]){case\"top\":c=0;break;case\"middle\":c=.5;break;case\"bottom\":c=1;break;default:c=a[0]/b.height}switch(a[1]){case\"left\":d=0;break;case\"center\":d=.5;break;case\"right\":d=1;break;default:d=a[1]/b.width}return{x:d,y:c}},createWrapper:function(b){if(b.parent().is(\".ui-effects-wrapper\"))return b.parent();var c={width:b.outerWidth(!0),height:b.outerHeight(!0),\"float\":b.css(\"float\")},d=a(\"<div></div>\").addClass(\"ui-effects-wrapper\").css({fontSize:\"100%\",background:\"transparent\",border:\"none\",margin:0,padding:0}),e=document.activeElement;try{e.id}catch(f){e=document.body}return b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css(\"position\")==\"static\"?(d.css({position:\"relative\"}),b.css({position:\"relative\"})):(a.extend(c,{position:b.css(\"position\"),zIndex:b.css(\"z-index\")}),a.each([\"top\",\"left\",\"bottom\",\"right\"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]=\"auto\")}),b.css({position:\"relative\",top:0,left:0,right:\"auto\",bottom:\"auto\"})),d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;return b.parent().is(\".ui-effects-wrapper\")?(c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus(),c):b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];return a.fx.off||!i?h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)}):i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode=\"show\",this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode=\"hide\",this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b==\"boolean\"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);return c[1].mode=\"toggle\",this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];return a.each([\"em\",\"px\",\"%\",\"pt\"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}});var m={};a.each([\"Quad\",\"Cubic\",\"Quart\",\"Quint\",\"Expo\"],function(a,b){m[b]=function(b){return Math.pow(b,a+2)}}),a.extend(m,{Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a){return a===0||a===1?a:-Math.pow(2,8*(a-1))*Math.sin(((a-1)*80-7.5)*Math.PI/15)},Back:function(a){return a*a*(3*a-2)},Bounce:function(a){var b,c=4;while(a<((b=Math.pow(2,--c))-1)/11);return 1/Math.pow(4,3-c)-7.5625*Math.pow((b*3-2)/22-a,2)}}),a.each(m,function(b,c){a.easing[\"easeIn\"+b]=c,a.easing[\"easeOut\"+b]=function(a){return 1-c(1-a)},a.easing[\"easeInOut\"+b]=function(a){return a<.5?c(a*2)/2:c(a*-2+2)/-2+1}})}(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.blind.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.blind=function(b){return this.queue(function(){var c=a(this),d=[\"position\",\"top\",\"bottom\",\"left\",\"right\"],e=a.effects.setMode(c,b.options.mode||\"hide\"),f=b.options.direction||\"vertical\";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:\"hidden\"}),h=f==\"vertical\"?\"height\":\"width\",i=f==\"vertical\"?g.height():g.width();e==\"show\"&&g.css(h,0);var j={};j[h]=e==\"show\"?i:0,g.animate(j,b.duration,b.options.easing,function(){e==\"hide\"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.bounce.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.bounce=function(b){return this.queue(function(){var c=a(this),d=[\"position\",\"top\",\"bottom\",\"left\",\"right\"],e=a.effects.setMode(c,b.options.mode||\"effect\"),f=b.options.direction||\"up\",g=b.options.distance||20,h=b.options.times||5,i=b.duration||250;/show|hide/.test(e)&&d.push(\"opacity\"),a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f==\"up\"||f==\"down\"?\"top\":\"left\",k=f==\"up\"||f==\"left\"?\"pos\":\"neg\",g=b.options.distance||(j==\"top\"?c.outerHeight(!0)/3:c.outerWidth(!0)/3);e==\"show\"&&c.css(\"opacity\",0).css(j,k==\"pos\"?-g:g),e==\"hide\"&&(g=g/(h*2)),e!=\"hide\"&&h--;if(e==\"show\"){var l={opacity:1};l[j]=(k==\"pos\"?\"+=\":\"-=\")+g,c.animate(l,i/2,b.options.easing),g=g/2,h--}for(var m=0;m<h;m++){var n={},p={};n[j]=(k==\"pos\"?\"-=\":\"+=\")+g,p[j]=(k==\"pos\"?\"+=\":\"-=\")+g,c.animate(n,i/2,b.options.easing).animate(p,i/2,b.options.easing),g=e==\"hide\"?g*2:g/2}if(e==\"hide\"){var l={opacity:0};l[j]=(k==\"pos\"?\"-=\":\"+=\")+g,c.animate(l,i/2,b.options.easing,function(){c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)})}else{var n={},p={};n[j]=(k==\"pos\"?\"-=\":\"+=\")+g,p[j]=(k==\"pos\"?\"+=\":\"-=\")+g,c.animate(n,i/2,b.options.easing).animate(p,i/2,b.options.easing,function(){a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)})}c.queue(\"fx\",function(){c.dequeue()}),c.dequeue()})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.clip.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.clip=function(b){return this.queue(function(){var c=a(this),d=[\"position\",\"top\",\"bottom\",\"left\",\"right\",\"height\",\"width\"],e=a.effects.setMode(c,b.options.mode||\"hide\"),f=b.options.direction||\"vertical\";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:\"hidden\"}),h=c[0].tagName==\"IMG\"?g:c,i={size:f==\"vertical\"?\"height\":\"width\",position:f==\"vertical\"?\"top\":\"left\"},j=f==\"vertical\"?h.height():h.width();e==\"show\"&&(h.css(i.size,0),h.css(i.position,j/2));var k={};k[i.size]=e==\"show\"?j:0,k[i.position]=e==\"show\"?0:j/2,h.animate(k,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e==\"hide\"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.drop.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.drop=function(b){return this.queue(function(){var c=a(this),d=[\"position\",\"top\",\"bottom\",\"left\",\"right\",\"opacity\"],e=a.effects.setMode(c,b.options.mode||\"hide\"),f=b.options.direction||\"left\";a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var g=f==\"up\"||f==\"down\"?\"top\":\"left\",h=f==\"up\"||f==\"left\"?\"pos\":\"neg\",i=b.options.distance||(g==\"top\"?c.outerHeight(!0)/2:c.outerWidth(!0)/2);e==\"show\"&&c.css(\"opacity\",0).css(g,h==\"pos\"?-i:i);var j={opacity:e==\"show\"?1:0};j[g]=(e==\"show\"?h==\"pos\"?\"+=\":\"-=\":h==\"pos\"?\"-=\":\"+=\")+i,c.animate(j,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e==\"hide\"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.explode.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.explode=function(b){return this.queue(function(){var c=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3,d=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;b.options.mode=b.options.mode==\"toggle\"?a(this).is(\":visible\")?\"hide\":\"show\":b.options.mode;var e=a(this).show().css(\"visibility\",\"hidden\"),f=e.offset();f.top-=parseInt(e.css(\"marginTop\"),10)||0,f.left-=parseInt(e.css(\"marginLeft\"),10)||0;var g=e.outerWidth(!0),h=e.outerHeight(!0);for(var i=0;i<c;i++)for(var j=0;j<d;j++)e.clone().appendTo(\"body\").wrap(\"<div></div>\").css({position:\"absolute\",visibility:\"visible\",left:-j*(g/d),top:-i*(h/c)}).parent().addClass(\"ui-effects-explode\").css({position:\"absolute\",overflow:\"hidden\",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode==\"show\"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode==\"show\"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode==\"show\"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode==\"show\"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode==\"show\"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode==\"show\"?1:0},b.duration||500);setTimeout(function(){b.options.mode==\"show\"?e.css({visibility:\"visible\"}):e.css({visibility:\"visible\"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a(\"div.ui-effects-explode\").remove()},b.duration||500)})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.fade.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||\"hide\");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.fold.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=[\"position\",\"top\",\"bottom\",\"left\",\"right\"],e=a.effects.setMode(c,b.options.mode||\"hide\"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:\"hidden\"}),j=e==\"show\"!=g,k=j?[\"width\",\"height\"]:[\"height\",\"width\"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e==\"hide\"?0:1]),e==\"show\"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e==\"show\"?l[0]:f,p[k[1]]=e==\"show\"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e==\"hide\"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.highlight.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=[\"backgroundImage\",\"backgroundColor\",\"opacity\"],e=a.effects.setMode(c,b.options.mode||\"show\"),f={backgroundColor:c.css(\"backgroundColor\")};e==\"hide\"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:\"none\",backgroundColor:b.options.color||\"#ffff99\"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e==\"hide\"&&c.hide(),a.effects.restore(c,d),e==\"show\"&&!a.support.opacity&&this.style.removeAttribute(\"filter\"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.pulsate.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||\"show\"),e=(b.options.times||5)*2-1,f=b.duration?b.duration/2:a.fx.speeds._default/2,g=c.is(\":visible\"),h=0;g||(c.css(\"opacity\",0).show(),h=1),(d==\"hide\"&&g||d==\"show\"&&!g)&&e--;for(var i=0;i<e;i++)c.animate({opacity:h},f,b.options.easing),h=(h+1)%2;c.animate({opacity:h},f,b.options.easing,function(){h==0&&c.hide(),b.callback&&b.callback.apply(this,arguments)}),c.queue(\"fx\",function(){c.dequeue()}).dequeue()})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.scale.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.puff=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||\"hide\"),e=parseInt(b.options.percent,10)||150,f=e/100,g={height:c.height(),width:c.width()};a.extend(b.options,{fade:!0,mode:d,percent:d==\"hide\"?e:100,from:d==\"hide\"?g:{height:g.height*f,width:g.width*f}}),c.effect(\"scale\",b.options,b.duration,b.callback),c.dequeue()})},a.effects.scale=function(b){return this.queue(function(){var c=a(this),d=a.extend(!0,{},b.options),e=a.effects.setMode(c,b.options.mode||\"effect\"),f=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:e==\"hide\"?0:100),g=b.options.direction||\"both\",h=b.options.origin;e!=\"effect\"&&(d.origin=h||[\"middle\",\"center\"],d.restore=!0);var i={height:c.height(),width:c.width()};c.from=b.options.from||(e==\"show\"?{height:0,width:0}:i);var j={y:g!=\"horizontal\"?f/100:1,x:g!=\"vertical\"?f/100:1};c.to={height:i.height*j.y,width:i.width*j.x},b.options.fade&&(e==\"show\"&&(c.from.opacity=0,c.to.opacity=1),e==\"hide\"&&(c.from.opacity=1,c.to.opacity=0)),d.from=c.from,d.to=c.to,d.mode=e,c.effect(\"size\",d,b.duration,b.callback),c.dequeue()})},a.effects.size=function(b){return this.queue(function(){var c=a(this),d=[\"position\",\"top\",\"bottom\",\"left\",\"right\",\"width\",\"height\",\"overflow\",\"opacity\"],e=[\"position\",\"top\",\"bottom\",\"left\",\"right\",\"overflow\",\"opacity\"],f=[\"width\",\"height\",\"overflow\"],g=[\"fontSize\"],h=[\"borderTopWidth\",\"borderBottomWidth\",\"paddingTop\",\"paddingBottom\"],i=[\"borderLeftWidth\",\"borderRightWidth\",\"paddingLeft\",\"paddingRight\"],j=a.effects.setMode(c,b.options.mode||\"effect\"),k=b.options.restore||!1,l=b.options.scale||\"both\",m=b.options.origin,n={height:c.height(),width:c.width()};c.from=b.options.from||n,c.to=b.options.to||n;if(m){var p=a.effects.getBaseline(m,n);c.from.top=(n.height-c.from.height)*p.y,c.from.left=(n.width-c.from.width)*p.x,c.to.top=(n.height-c.to.height)*p.y,c.to.left=(n.width-c.to.width)*p.x}var q={from:{y:c.from.height/n.height,x:c.from.width/n.width},to:{y:c.to.height/n.height,x:c.to.width/n.width}};if(l==\"box\"||l==\"both\")q.from.y!=q.to.y&&(d=d.concat(h),c.from=a.effects.setTransition(c,h,q.from.y,c.from),c.to=a.effects.setTransition(c,h,q.to.y,c.to)),q.from.x!=q.to.x&&(d=d.concat(i),c.from=a.effects.setTransition(c,i,q.from.x,c.from),c.to=a.effects.setTransition(c,i,q.to.x,c.to));(l==\"content\"||l==\"both\")&&q.from.y!=q.to.y&&(d=d.concat(g),c.from=a.effects.setTransition(c,g,q.from.y,c.from),c.to=a.effects.setTransition(c,g,q.to.y,c.to)),a.effects.save(c,k?d:e),c.show(),a.effects.createWrapper(c),c.css(\"overflow\",\"hidden\").css(c.from);if(l==\"content\"||l==\"both\")h=h.concat([\"marginTop\",\"marginBottom\"]).concat(g),i=i.concat([\"marginLeft\",\"marginRight\"]),f=d.concat(h).concat(i),c.find(\"*[width]\").each(function(){var c=a(this);k&&a.effects.save(c,f);var d={height:c.height(),width:c.width()};c.from={height:d.height*q.from.y,width:d.width*q.from.x},c.to={height:d.height*q.to.y,width:d.width*q.to.x},q.from.y!=q.to.y&&(c.from=a.effects.setTransition(c,h,q.from.y,c.from),c.to=a.effects.setTransition(c,h,q.to.y,c.to)),q.from.x!=q.to.x&&(c.from=a.effects.setTransition(c,i,q.from.x,c.from),c.to=a.effects.setTransition(c,i,q.to.x,c.to)),c.css(c.from),c.animate(c.to,b.duration,b.options.easing,function(){k&&a.effects.restore(c,f)})});c.animate(c.to,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){c.to.opacity===0&&c.css(\"opacity\",c.from.opacity),j==\"hide\"&&c.hide(),a.effects.restore(c,k?d:e),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.shake.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.shake=function(b){return this.queue(function(){var c=a(this),d=[\"position\",\"top\",\"bottom\",\"left\",\"right\"],e=a.effects.setMode(c,b.options.mode||\"effect\"),f=b.options.direction||\"left\",g=b.options.distance||20,h=b.options.times||3,i=b.duration||b.options.duration||140;a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f==\"up\"||f==\"down\"?\"top\":\"left\",k=f==\"up\"||f==\"left\"?\"pos\":\"neg\",l={},m={},n={};l[j]=(k==\"pos\"?\"-=\":\"+=\")+g,m[j]=(k==\"pos\"?\"+=\":\"-=\")+g*2,n[j]=(k==\"pos\"?\"-=\":\"+=\")+g*2,c.animate(l,i,b.options.easing);for(var p=1;p<h;p++)c.animate(m,i,b.options.easing).animate(n,i,b.options.easing);c.animate(m,i,b.options.easing).animate(l,i/2,b.options.easing,function(){a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)}),c.queue(\"fx\",function(){c.dequeue()}),c.dequeue()})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.slide.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.slide=function(b){return this.queue(function(){var c=a(this),d=[\"position\",\"top\",\"bottom\",\"left\",\"right\"],e=a.effects.setMode(c,b.options.mode||\"show\"),f=b.options.direction||\"left\";a.effects.save(c,d),c.show(),a.effects.createWrapper(c).css({overflow:\"hidden\"});var g=f==\"up\"||f==\"down\"?\"top\":\"left\",h=f==\"up\"||f==\"left\"?\"pos\":\"neg\",i=b.options.distance||(g==\"top\"?c.outerHeight(!0):c.outerWidth(!0));e==\"show\"&&c.css(g,h==\"pos\"?isNaN(i)?\"-\"+i:-i:i);var j={};j[g]=(e==\"show\"?h==\"pos\"?\"+=\":\"-=\":h==\"pos\"?\"-=\":\"+=\")+i,c.animate(j,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e==\"hide\"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15\n* https://github.com/jquery/jquery-ui\n* Includes: jquery.effects.transfer.js\n* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */\n(function(a,b){a.effects.transfer=function(b){return this.queue(function(){var c=a(this),d=a(b.options.to),e=d.offset(),f={top:e.top,left:e.left,height:d.innerHeight(),width:d.innerWidth()},g=c.offset(),h=a('<div class=\"ui-effects-transfer\"></div>').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:\"absolute\"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);\n});\n\n","/*\r\n * Helpers\r\n */\r\ndefine('helpers',[\r\n 'lodash',\r\n 'jquery',\r\n 'context',\r\n 'layout/loading-bar',\r\n 'jqueryui'\r\n], function (_, $, context, loadingBar) {\r\n\r\n\r\n var Helpers = {\r\n init: function () {\r\n /**\r\n * Extends the JQuery post method for convenience use with Json\r\n * @param {String} url\r\n * @param {Object} data\r\n * @param {Function} callback\r\n */\r\n $.postJson = function (url, data, callback) {\r\n $.post(url, data, callback, \"json\");\r\n };\r\n },\r\n\r\n getMainContainer: function () {\r\n console.warn('deprecated, use section instead');\r\n var sectionId,\r\n sectionIndex;\r\n if (!context.section) {\r\n sectionIndex = $('.section-container').tabs('options', 'selected');\r\n $('.content-panel').eq(sectionIndex).find('.content-block');\r\n }\r\n return $('#panel-' + context.section + ' .content-block');\r\n },\r\n\r\n /**\r\n * @return {String} the current main container jQuery selector (from the opened tab)\r\n */\r\n getMainContainerSelector: function ($tabs) {\r\n console.warn('deprecated, use section instead');\r\n var $container = this.getMainContainer();\r\n if ($container && $container.length > 0) {\r\n return $container.selector;\r\n }\r\n return false;\r\n },\r\n\r\n /**\r\n * @param {String} name the name of the tab to select\r\n */\r\n selectTabByName: function (name) {\r\n console.warn('deprecated, use section instead');\r\n $(\"#\" + name).click();\r\n },\r\n\r\n /**\r\n * get the index of the tab identified by name\r\n * @param {String} name\r\n * @return the index or -1 if not found\r\n */\r\n getTabIndexByName: function (name) {\r\n console.warn('deprecated, use section instead');\r\n var elts = $(\"div#tabs ul.ui-tabs-nav li a\");\r\n var i = 0;\r\n while (i < elts.length) {\r\n var elt = elts[i];\r\n if (elt && elt.id && elt.id === name) {\r\n return i;\r\n }\r\n i++;\r\n }\r\n return -1;\r\n },\r\n\r\n openTab: function (title, url, open) {\r\n console.warn('deprecated, use section instead');\r\n open = open || true;\r\n var idx = this.getTabIndexByUrl(url),\r\n $tabs = $('#tabs');\r\n if (idx == -1) {\r\n $tabs.tabs(\"add\", url, title);\r\n idx = $tabs.tabs(\"length\") - 1;\r\n }\r\n //If control pressed, not select\r\n if (open) {\r\n $tabs.tabs(\"select\", idx);\r\n }\r\n },\r\n\r\n getTabIndexByUrl: function (url) {\r\n console.warn('deprecated, use section instead');\r\n var elts = $(\"#tabs ul.ui-tabs-nav li a\");\r\n var i = 0;\r\n var ret = -1;\r\n elts.each(function () {\r\n var href = $.data(this, 'href.tabs');\r\n if (url === href) {\r\n ret = i;\r\n return;\r\n }\r\n i++;\r\n });\r\n return ret;\r\n },\r\n\r\n closeTab: function (index) {\r\n console.warn('deprecated, use section instead');\r\n if (index > -1) {\r\n $('#tabs').tabs(\"remove\", index);\r\n }\r\n },\r\n\r\n /**\r\n * Add parameters to a tab\r\n * @param {Object} tabObj\r\n * @param {String} tabName\r\n * @param {Object} parameters\r\n */\r\n updateTabUrl: function (tabObj, tabName, url) {\r\n console.warn('deprecated, use section instead');\r\n var index = this.getTabIndexByName(tabName);\r\n tabObj.tabs('url', index, url);\r\n tabObj.tabs('enable', index);\r\n },\r\n\r\n /*\r\n * Navigation and ajax helpers\r\n */\r\n\r\n /**\r\n * Begin an async request, while loading:\r\n * - show the loader img\r\n * - disable the submit buttons\r\n */\r\n loading: function () {\r\n console.warn('deprecated, this should be automated');\r\n $(window).on('click', function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n loadingBar.start();\r\n },\r\n\r\n /**\r\n * Complete an async request, once loaded:\r\n * - hide the loader img\r\n * - enable back the submit buttons\r\n */\r\n loaded: function () {\r\n console.warn('deprecated, this should be automated');\r\n $(window).off('click');\r\n loadingBar.stop();\r\n },\r\n\r\n /**\r\n * Load url asyncly into selector container\r\n * @param {String} selector\r\n * @param {String} url\r\n */\r\n _load: function (selector, url, data) {\r\n\r\n url = url || '';\r\n\r\n if (data) {\r\n data.nc = new Date().getTime();\r\n }\r\n else {\r\n data = {nc: new Date().getTime()};\r\n }\r\n $(selector).hide().empty().show();\r\n if (url.indexOf('?') === -1) {\r\n $(selector).load(url, data);\r\n }\r\n else {\r\n url += '&' + ($.param(data));\r\n $(selector).load(url);\r\n }\r\n },\r\n\r\n /**\r\n * Make a nocache url, using a timestamp\r\n * @param {String} ref\r\n */\r\n _href: function (ref) {\r\n return (ref.indexOf('?') > -1) ? ref + '&nc=' + new Date().getTime() : ref + '?nc=' + new Date().getTime();\r\n },\r\n\r\n /*\r\n * others\r\n */\r\n\r\n /**\r\n * apply effect to elements that are only present\r\n */\r\n _autoFx: function () {\r\n \r\n console.warn('deprecated');\r\n setTimeout(function () {\r\n $(\".auto-highlight\").effect(\"highlight\", {color: \"#9FC9FF\"}, 2500);\r\n }, 1000);\r\n setTimeout(function () {\r\n $(\".auto-hide\").fadeOut(\"slow\");\r\n }, 3000);\r\n setTimeout(function () {\r\n $(\".auto-slide\").slideUp(1500);\r\n }, 11000);\r\n },\r\n\r\n /**\r\n * Check and cut the text of the selector container only if the text is longer than the maxLength parameter\r\n * @param {String} selector JQuery selector\r\n * @param {int} maxLength\r\n */\r\n textCutter: function (selector, maxLength) {\r\n console.warn('deprecated, use css instead');\r\n if (!maxLength) {\r\n maxLength = 100;\r\n }\r\n $(selector).each(function () {\r\n if ($(this).text().length > maxLength && !$(this).hasClass(\"text-cutted\")) {\r\n $(this).prop('title', $(this).text());\r\n $(this).css('cursor', 'pointer');\r\n $(this).html($(this).text().substring(0, maxLength) + \"[...<img src='\" + context.taobase_www + \"img/bullet_add.png' />]\");\r\n $(this).addClass(\"text-cutted\");\r\n }\r\n });\r\n },\r\n\r\n createMessage: function (message) {\r\n console.warn('deprecated, use feedback instead');\r\n if (!$('#info-box').length) {\r\n $(\"body\").append(\"<div id='info-box' class='ui-widget-header ui-corner-all auto-slide' >\" + message + \"</div>\")\r\n }\r\n else {\r\n $('#info-box').html(message).show();\r\n }\r\n this._autoFx();\r\n },\r\n\r\n /**\r\n * Create a error popup to display an error message\r\n * @param {String} message\r\n */\r\n createErrorMessage: function (message) {\r\n this.createMessage(message);\r\n $('#info-box').addClass('ui-state-error');\r\n },\r\n\r\n /**\r\n * Create an info popup to display a message\r\n * @param {String} message\r\n */\r\n createInfoMessage: function (message) {\r\n this.createMessage(message);\r\n $('#info-box').removeClass('ui-state-error');\r\n },\r\n\r\n /**\r\n * Check if a flahs player is found in the plugins list\r\n * @return {boolean}\r\n */\r\n isFlashPluginEnabled: function () {\r\n return (typeof navigator.plugins !== \"undefined\" && typeof navigator.plugins[\"Shockwave Flash\"] === \"object\") || \r\n (window.ActiveXObject && (new window.ActiveXObject(\"ShockwaveFlash.ShockwaveFlash\")) !== false);\r\n },\r\n\r\n //http://requirejs.org/docs/faq-advanced.html\r\n loadCss: function (url) {\r\n console.warn('deprecated');\r\n var link = document.createElement(\"link\");\r\n link.type = \"text/css\";\r\n link.rel = \"stylesheet\";\r\n link.href = url;\r\n document.getElementsByTagName(\"head\")[0].appendChild(link);\r\n },\r\n\r\n /**\r\n * simple _url implementation, requires layout_header to set some global variables\r\n */\r\n _url: function (action, controller, extension, params) {\r\n \r\n var url;\r\n\r\n if(typeof action !== 'string' || typeof controller !== 'string' || typeof extension !== 'string'){\r\n throw new TypeError('All parts are required to build an URL');\r\n }\r\n\r\n url = context.root_url + extension + '/' + controller + '/' + action;\r\n\r\n if(_.isString(params)) {\r\n url += '?' + params;\r\n } else if (_.isPlainObject(params)) {\r\n url += '?' + $.param(params);\r\n }\r\n return url;\r\n }\r\n };\r\n\r\n return Helpers;\r\n});\r\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/config/qtiServiceConfig',[\n 'lodash',\n 'helpers'\n], function(_, helpers) {\n 'use strict';\n\n /**\n * Some default config values\n * @type {Object}\n * @private\n */\n var _defaults = {\n bootstrap : {\n serviceController : 'Runner',\n serviceExtension : 'taoQtiTest'\n }\n };\n\n /**\n * The list of handled config entries. Each required entry is set to true, while optional entries are set to false.\n * @type {Object}\n * @private\n */\n var _entries = {\n testDefinition : true,\n testCompilation : true,\n serviceCallId : true,\n bootstrap : false,\n timeout : false\n };\n\n /**\n * Extract the handled config entries.\n * @param {Object} config\n * @returns {Object}\n * @throws Error if a required entry is missing\n */\n function getConfig(config) {\n var storage = {};\n _.forEach(_entries, function(value, name) {\n if ('undefined' !== typeof config[name]) {\n storage[name] = config[name];\n } else if (value) {\n throw new Error('The config entry \"' + name + '\" is required!');\n }\n });\n return _.defaults(storage, _defaults);\n }\n\n /**\n * Creates a config object for the proxy implementation\n * @param {Object} config - Some required and optional config\n * @param {String} config.testDefinition - The URI of the test\n * @param {String} config.testCompilation - The URI of the compiled delivery\n * @param {String} config.serviceCallId - The URI of the service call\n * @param {String} [config.serviceController] - The name of the service controller\n * @param {String} [config.serviceExtension] - The name of the extension containing the service controller\n * @returns {Object}\n */\n function configFactory(config) {\n // protected storage\n var storage = getConfig(config);\n\n // convert some values from seconds to milliseconds\n if (storage.timeout) {\n storage.timeout *= 1000;\n } else {\n storage.timeout = undefined;\n }\n\n // returns only a proxy storage object : no direct access to data is provided\n return {\n /**\n * Gets the URI of the test\n * @returns {String}\n */\n getTestDefinition : function getTestDefinition() {\n return storage.testDefinition;\n },\n\n /**\n * Gets the URI of the compiled delivery\n * @returns {String}\n */\n getTestCompilation : function getTestCompilation() {\n return storage.testCompilation;\n },\n\n /**\n * Gets the URI of the service call\n * @returns {String}\n */\n getServiceCallId : function getServiceCallId() {\n return storage.serviceCallId;\n },\n\n /**\n * Gets the name of the service controller\n * @returns {String}\n */\n getServiceController : function getServiceController() {\n return storage.bootstrap.serviceController || _defaults.bootstrap.serviceController;\n },\n\n /**\n * Gets the name of the extension containing the service controller\n * @returns {String}\n */\n getServiceExtension : function getServiceExtension() {\n return storage.bootstrap.serviceExtension || _defaults.bootstrap.serviceExtension;\n },\n\n /**\n * Gets an URL of a service action related to the test\n * @param {String} action - the name of the action to request\n * @returns {String} - Returns the URL\n */\n getTestActionUrl : function getTestActionUrl(action) {\n return helpers._url(action, this.getServiceController(), this.getServiceExtension(), {\n testDefinition : this.getTestDefinition(),\n testCompilation : this.getTestCompilation(),\n serviceCallId : this.getServiceCallId()\n });\n },\n\n /**\n * Gets an URL of a service action related to a particular item\n * @param {String} uri - The URI of the item\n * @param {String} action - the name of the action to request\n * @returns {String} - Returns the URL\n */\n getItemActionUrl : function getItemActionUrl(uri, action) {\n return helpers._url(action, this.getServiceController(), this.getServiceExtension(), {\n testDefinition : this.getTestDefinition(),\n testCompilation : this.getTestCompilation(),\n testServiceCallId : this.getServiceCallId(),\n itemDefinition : uri\n });\n },\n\n /**\n * Gets an URL of a telemetry signal related to a particular item\n * @param {String} uri - The URI of the item\n * @param {String} signal - the name of the signal to request\n * @returns {String} - Returns the URL\n */\n getTelemetryUrl : function getTelemetryUrl(uri, signal) {\n return helpers._url(signal, this.getServiceController(), this.getServiceExtension(), {\n testDefinition : this.getTestDefinition(),\n testCompilation : this.getTestCompilation(),\n testServiceCallId : this.getServiceCallId(),\n itemDefinition : uri\n });\n },\n\n /**\n * Gets the request timeout\n * @returns {Number}\n */\n getTimeout : function getTimeout() {\n return storage.timeout;\n },\n\n /**\n * Gets the config for the communication channel\n * @returns {Object}\n */\n getCommunicationConfig : function getCommunicationConfig() {\n var communication = storage.bootstrap.communication || {};\n var extension = communication.extension || this.getServiceExtension();\n var controller = communication.controller || this.getServiceController();\n var action = communication.action;\n\n // build the service address from the provided config\n // it can be overwritten by a full url from the config\n var service = helpers._url(action, controller, extension, {\n testDefinition : this.getTestDefinition(),\n testCompilation : this.getTestCompilation(),\n serviceCallId : this.getServiceCallId()\n });\n\n // append the address of the remote service to target\n var params = _.merge(communication.params || {}, {\n service: communication.service || service\n });\n\n // convert some values from seconds to milliseconds\n if (params.timeout) {\n params.timeout *= 1000;\n } else {\n params.timeout = storage.timeout;\n }\n if (params.interval) {\n params.interval *= 1000;\n }\n\n return {\n enabled: communication.enabled,\n type: communication.type,\n params: params\n };\n }\n };\n }\n\n return configFactory;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/proxy/qtiServiceProxy',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'core/communicator',\n 'helpers',\n 'taoQtiTest/runner/config/qtiServiceConfig'\n], function($, _, __, Promise, communicatorFactory, helpers, configFactory) {\n 'use strict';\n\n /**\n * Proxy request function. Returns a promise\n * Applied options: asynchronous call, JSON data, no cache\n * @param {proxy} proxy\n * @param {String} url\n * @param {Object} [params]\n * @param {String} [contentType] - to force the content type\n * @param {Boolean} [noToken] - to disable the token\n * @returns {Promise}\n */\n function request(proxy, url, params, contentType, noToken) {\n\n //run the request Promise\n var requestPromise = function requestPromise(){\n return new Promise(function(resolve, reject) {\n var headers = {};\n var tokenHandler = proxy.getTokenHandler();\n var token;\n if (!noToken) {\n token = tokenHandler.getToken();\n if (token) {\n headers['X-Auth-Token'] = token;\n }\n }\n $.ajax({\n url: url,\n type: params ? 'POST' : 'GET',\n cache: false,\n data: params,\n headers: headers,\n async: true,\n dataType: 'json',\n contentType : contentType || undefined,\n timeout: proxy.configStorage.getTimeout()\n })\n .done(function(data) {\n if (data && data.token) {\n tokenHandler.setToken(data.token);\n }\n\n if (data && data.success) {\n resolve(data);\n } else {\n reject(data);\n }\n })\n .fail(function(jqXHR, textStatus, errorThrown) {\n var data;\n try {\n data = JSON.parse(jqXHR.responseText);\n } catch (e) {\n data = {\n success: false,\n source: 'network',\n purpose: 'proxy',\n context: this,\n code: jqXHR.status,\n type: textStatus || 'error',\n message: errorThrown || __('An error occurred!')\n };\n }\n\n if (data.token) {\n tokenHandler.setToken(data.token);\n }\n\n reject(data);\n });\n });\n };\n\n //no token protection, run the request\n if(noToken === true){\n return requestPromise();\n }\n\n //first promise, keep the ref\n if(!proxy._runningPromise){\n proxy._runningPromise = requestPromise();\n return proxy._runningPromise;\n }\n\n //create a wrapping promise\n return new Promise(function(resolve, reject){\n //run the current request\n var runRequest = function(){\n var p = requestPromise();\n proxy._runningPromise = p; //and keep the ref\n p.then(resolve).catch(reject);\n };\n\n //wait the previous to resolve or fail and run the current one\n proxy._runningPromise.then(runRequest).catch(runRequest);\n });\n }\n\n /**\n * QTI proxy definition\n * Related to remote services calls\n * @type {Object}\n */\n var qtiServiceProxy = {\n\n /**\n * Keep a reference of the last running promise to\n * ensure the tokened protected called are chained\n * @type {Promise}\n */\n _runningPromise : null,\n\n\n /**\n * Initializes the proxy\n * @param {Object} config - The config provided to the proxy factory\n * @param {String} config.testDefinition - The URI of the test\n * @param {String} config.testCompilation - The URI of the compiled delivery\n * @param {String} config.serviceCallId - The URI of the service call\n * @param {Object} [params] - Some optional parameters to join to the call\n * @returns {Promise} - Returns a promise. The proxy will be fully initialized on resolve.\n * Any error will be provided if rejected.\n */\n init: function init(config, params) {\n var initConfig = config || {};\n\n // store config in a dedicated configStorage\n this.configStorage = configFactory(initConfig);\n\n // request for initialization\n return request(this, this.configStorage.getTestActionUrl('init'), params);\n },\n\n /**\n * Uninstalls the proxy\n * @returns {Promise} - Returns a promise. The proxy will be fully uninstalled on resolve.\n * Any error will be provided if rejected.\n */\n destroy: function destroy() {\n // no request, just a resources cleaning\n this.configStorage = null;\n this._runningPromise = null;\n\n // the method must return a promise\n return Promise.resolve();\n },\n\n /**\n * Gets the test definition data\n * @returns {Promise} - Returns a promise. The test definition data will be provided on resolve.\n * Any error will be provided if rejected.\n */\n getTestData: function getTestData() {\n return request(this, this.configStorage.getTestActionUrl('getTestData'));\n },\n\n /**\n * Gets the test context\n * @returns {Promise} - Returns a promise. The context object will be provided on resolve.\n * Any error will be provided if rejected.\n */\n getTestContext: function getTestContext() {\n return request(this, this.configStorage.getTestActionUrl('getTestContext'));\n },\n\n /**\n * Gets the test map\n * @returns {Promise} - Returns a promise. The test map object will be provided on resolve.\n * Any error will be provided if rejected.\n */\n getTestMap: function getTestMap() {\n return request(this, this.configStorage.getTestActionUrl('getTestMap'));\n },\n\n /**\n * Sends the test variables\n * @param {Object} variables\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n * @fires sendVariables\n */\n sendVariables: function sendVariables(variables) {\n return request(this, this.configStorage.getTestActionUrl('storeTraceData'), { traceData : JSON.stringify(variables) });\n },\n\n /**\n * Calls an action related to the test\n * @param {String} action - The name of the action to call\n * @param {Object} [params] - Some optional parameters to join to the call\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n */\n callTestAction: function callTestAction(action, params) {\n return request(this, this.configStorage.getTestActionUrl(action), params);\n },\n\n /**\n * Gets an item definition by its URI, also gets its current state\n * @param {String} uri - The URI of the item to get\n * @returns {Promise} - Returns a promise. The item data will be provided on resolve.\n * Any error will be provided if rejected.\n */\n getItem: function getItem(uri) {\n return request(this, this.configStorage.getItemActionUrl(uri, 'getItem'));\n },\n\n /**\n * Submits the state and the response of a particular item\n * @param {String} uri - The URI of the item to update\n * @param {Object} state - The state to submit\n * @param {Object} response - The response object to submit\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n */\n submitItem: function submitItem(uri, state, response, params) {\n var body = JSON.stringify( _.merge({\n itemState : state,\n itemResponse : response\n }, params || {}));\n\n return request(this, this.configStorage.getItemActionUrl(uri, 'submitItem'), body, 'application/json');\n },\n\n /**\n * Calls an action related to a particular item\n * @param {String} uri - The URI of the item for which call the action\n * @param {String} action - The name of the action to call\n * @param {Object} [params] - Some optional parameters to join to the call\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n */\n callItemAction: function callItemAction(uri, action, params) {\n return request(this, this.configStorage.getItemActionUrl(uri, action), params);\n },\n\n /**\n * Sends a telemetry signal\n * @param {String} uri - The URI of the item for which sends the telemetry signal\n * @param {String} signal - The name of the signal to send\n * @param {Object} [params] - Some optional parameters to join to the signal\n * @returns {Promise} - Returns a promise. The result of the request will be provided on resolve.\n * Any error will be provided if rejected.\n * @fires telemetry\n */\n telemetry: function telemetry(uri, signal, params) {\n return request(this, this.configStorage.getTelemetryUrl(uri, signal), params, null, true);\n },\n\n /**\n * Builds the communication channel\n * @returns {communicator|null} the communication channel\n */\n loadCommunicator: function loadCommunicator() {\n var config = this.configStorage.getCommunicationConfig();\n if (config.enabled) {\n return communicatorFactory(config.type, config.params);\n }\n return null;\n }\n };\n\n return qtiServiceProxy;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Loads plugins\n *\n * It provides 2 distinct way of loading plugins :\n * 1. The \"required\" plugins that are necessary. Provided as factory (function)\n * 2. The \"dynamic\" plugins that are loaded on demand, they are provided as AMD modules. The module is loaded using the load method.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/pluginLoader',[\n 'lodash',\n 'core/promise'\n], function(_, Promise) {\n 'use strict';\n\n /**\n * Creates a loader with the list of required plugins\n * @param {String: Function[]} requiredPlugins - where the key is the category and the value are an array of plugins\n * @returns {loader} the plugin loader\n * @throws TypeError if something is not well formated\n */\n return function pluginLoader(requiredPlugins) {\n\n var plugins = {};\n var modules = {};\n var excludes = [];\n\n /**\n * The plugin loader\n * @typedef {loader}\n */\n var loader = {\n\n /**\n * Add a new dynamic plugin\n * @param {String} module - AMD module name of the plugin\n * @param {String} category - the plugin category\n * @param {String|Number} [position = 'append'] - append, prepend or plugin position within the category\n * @returns {loader} chains\n * @throws {TypeError} misuse\n */\n add: function add(module, category, position) {\n if(!_.isString(module)){\n throw new TypeError('An AMD module must be defined');\n }\n if(!_.isString(category)){\n throw new TypeError('Plugins must belong to a category');\n }\n\n modules[category] = modules[category] || [];\n\n if(_.isNumber(position)){\n modules[category][position] = module;\n }\n else if(position === 'prepend' || position === 'before'){\n modules[category].unshift(module);\n } else {\n modules[category].push(module);\n }\n\n return this;\n },\n\n /**\n * Append a new dynamic plugin to a category\n * @param {String} module - AMD module name of the plugin\n * @param {String} category - the plugin category\n * @returns {loader} chains\n * @throws {TypeError} misuse\n */\n append: function append(module, category) {\n return this.add(module, category);\n },\n\n /**\n * Prepend a new dynamic plugin to a category\n * @param {String} module - AMD module name of the plugin\n * @param {String} category - the plugin category\n * @returns {loader} chains\n * @throws {TypeError} misuse\n */\n prepend: function prepend(module, category) {\n return this.add(module, category, 'before');\n },\n\n /**\n * Remove a plugin from the loading stack\n * @param {String} name - the plugin's module\n * @returns {loader} chains\n * @throws {TypeError} misuse\n */\n remove : function remove(module){\n excludes.push(module);\n return this;\n },\n\n /**\n * Loads the dynamic plugins : trigger the dependency resolution\n * @returns {Promise}\n */\n load: function load() {\n return new Promise(function(resolve, reject){\n\n var dependencies = _(modules).values().flatten().uniq().difference(excludes).value();\n\n if(dependencies.length){\n\n require(dependencies, function(){\n var loadedModules = [].slice.call(arguments);\n _.forEach(dependencies, function(dependency, index){\n var plugin = loadedModules[index];\n var category = _.findKey(modules, function(val){\n return _.contains(val, dependency);\n });\n if(_.isFunction(plugin) && _.isString(category)){\n plugins[category] = plugins[category] || [];\n plugins[category].push(plugin);\n }\n });\n resolve();\n\n }, reject);\n return;\n }\n resolve();\n });\n },\n\n /**\n * Get the resolved plugin list.\n * Load needs to be called before to have the dynamic plugins.\n * @param {String} [category] - to get the plugins for a given category, if not set, we get everything\n * @returns {Function[]} the plugins\n */\n getPlugins: function getPlugins(category) {\n if(_.isString(category)){\n return plugins[category] || [];\n }\n return _(plugins).values().flatten().uniq().value();\n },\n\n /**\n * Get the plugin categories\n * @returns {String[]} the categories\n */\n getCategories: function getCategories(){\n return _.keys(plugins);\n }\n };\n\n //verify and add the required plugins\n _.forEach(requiredPlugins, function(pluginList, category){\n if(!_.isString(category)){\n throw new TypeError('Plugins must belong to a category');\n }\n\n if(!_.isArray(pluginList) || !_.all(pluginList, _.isFunction)){\n throw new TypeError('A plugin must be an array of function');\n }\n\n if(plugins[category]){\n plugins[category] = plugins[category].concat(pluginList);\n } else {\n plugins[category] = pluginList;\n }\n });\n\n return loader;\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * This helps you to show hide elements in a more reliable way than using jQuery.show/hide methods\n * by simply using a css class that has the display: none property in TAO.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('ui/hider',[\n 'jquery',\n 'lodash',\n 'core/eventifier'\n], function ($, _) {\n 'use strict';\n\n var hiddenClass = 'hidden';\n\n /**\n * Wrap an element to ensure it's a jquery elt.\n * @private\n * @param {jQueryElement|HTMLElement|String} element - the element/node/selector\n * @returns {jQueryElement} the element\n */\n function jqWrap(element){\n return element instanceof $ ? element : $(element);\n }\n\n /**\n * The hider object\n */\n return {\n\n /**\n * Show the given element (let say unhide)\n * @param {jQueryElement|HTMLElement|String} element - the element/node/selector\n * @returns {jQueryElement} the element\n */\n show : function show(element){\n return jqWrap(element).removeClass(hiddenClass);\n },\n\n /**\n * Hide the given element\n * @param {jQueryElement|HTMLElement|String} element - the element/node/selector\n * @returns {jQueryElement} the element\n */\n hide : function hide(element){\n return jqWrap(element).addClass(hiddenClass);\n },\n\n /**\n * Toggle (show if hidden / hide if shown) the given element\n * @param {jQueryElement|HTMLElement|String} element - the element/node/selector\n * @returns {jQueryElement} the element\n */\n toggle : function toggle(element){\n return jqWrap(element).toggleClass(hiddenClass);\n },\n\n\n /**\n * Check whether the given element is hidden\n * @param {jQueryElement|HTMLElement|String} element - the element/node/selector\n * @param {Boolean} [real = false] - if the check takes in account the real display/visibility status.\n * @returns {jQueryElement} the element\n */\n isHidden : function isHidden(element, real){\n var $elt = jqWrap(element);\n if(!real){\n return $elt.hasClass(hiddenClass);\n }\n return $elt.hasClass(hiddenClass) || $elt.css('display') === 'none' || $elt.css('visibility') === 'hidden';\n }\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * Plugin modelisation :\n * - helps you to create plugin's definition\n * - helps you to bind plugin's behavior to the host\n * - have it's own state and lifecycle convention (install -> init -> render -> finish -> destroy)\n * - promise based\n *\n * @example\n *\n * 1. create the plugin definition\n * var factory = pluginFactory({\n * name : 'foo',\n * init(){\n * console.log('foo');\n * }\n * });\n *\n * 2.instiantiate it\n * var plugin = factory(myPluginHost);\n *\n * 3. Link it to your host lifecycle\n * myPluginHost({\n * init(){\n * plugin.init();\n * }\n * });\n *\n *\n * @author Sam <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/plugin',[\n 'lodash',\n 'core/delegator',\n 'core/promise'\n], function (_, delegator, Promise){\n 'use strict';\n\n /**\n * Meta factory for plugins. Let's you create a plugin definition.\n *\n * @param {Object} provider - the plugin provider\n * @param {String} provider.name - the plugin name\n * @param {Function} provider.init - the plugin initialization method\n * @param {Function} [provider.install] - plugin installer called after the instance has been bound with its host\n * @param {Function} [provider.render] - plugin rendering behavior\n * @param {Function} [provider.finish] - plugin finish behavior\n * @param {Function} [provider.destroy] - plugin destroy behavior\n * @param {Function} [provider.show] - plugin show behavior\n * @param {Function} [provider.hide] - plugin hide behavior\n * @param {Function} [provider.enable] - plugin enable behavior\n * @param {Function} [provider.disable] - plugin disable behavior\n * @param {Object} defaults - default configuration to be assigned\n * @param {String} [defaults.hostName] - the name of the host, used to alias the getHost method to getHostName\n * @returns {Function} - the generated plugin factory\n */\n function pluginFactory(provider, defaults){\n var pluginName;\n\n if(!_.isPlainObject(provider) || !_.isString(provider.name) || _.isEmpty(provider.name) || !_.isFunction(provider.init)){\n throw new TypeError('A plugin should be defined at least by a name property and an init method');\n }\n\n pluginName = provider.name;\n\n defaults = defaults || {};\n\n /**\n * The configured plugin factory\n *\n * @param {host} host - the plugin host instance\n * @param {areaBroker} [areaBroker] - an instance of an areaBroker. This should be your access point to GUI.\n * @param {Object} [config] - plugin configuration\n * @returns {plugin} the plugin instance\n */\n return function instanciatePlugin(host, areaBroker, config){\n var plugin, delegate;\n\n var states = {};\n\n var pluginContent = {};\n\n //basic checking for the host\n if(!_.isObject(host) || !_.isFunction(host.on) || !_.isFunction(host.trigger)){\n throw new TypeError('A plugin host should be a valid eventified object');\n }\n\n config = _.defaults(config || {}, defaults);\n\n /**\n * The plugin instance.\n * @typedef {plugin}\n */\n plugin = {\n\n /**\n * Called when the host is installing the plugins\n * @returns {Promise} to resolve async delegation\n */\n install : function install(){\n var self = this;\n\n return delegate('install').then(function(){\n self.trigger('install');\n });\n },\n\n /**\n * Called when the host is initializing\n * @param {Object|*} [content] the plugin content\n * @returns {Promise} to resolve async delegation\n */\n init : function init(content){\n var self = this;\n states = {};\n\n if(content){\n pluginContent = content;\n }\n\n return delegate('init', content).then(function(){\n self.setState('init', true)\n .trigger('init');\n });\n },\n\n /**\n * Called when the host is rendering\n * @returns {Promise} to resolve async delegation\n */\n render : function render(){\n var self = this;\n\n return delegate('render').then(function(){\n self.setState('ready', true)\n .trigger('render')\n .trigger('ready');\n });\n },\n\n /**\n * Called when the host is finishing\n * @returns {Promise} to resolve async delegation\n */\n finish : function finish(){\n var self = this;\n\n return delegate('finish').then(function(){\n self.setState('finish', true)\n .trigger('finish');\n });\n },\n\n /**\n * Called when the host is destroying\n * @returns {Promise} to resolve async delegation\n */\n destroy : function destroy(){\n var self = this;\n\n return delegate('destroy').then(function(){\n\n config = {};\n states = {};\n\n self.setState('init', false);\n self.trigger('destroy');\n });\n },\n\n /**\n * Triggers the events on the host using the pluginName as namespace\n * and prefixed by plugin-\n * For example trigger('foo') will trigger('plugin-foo.pluginA') on the host\n *\n * @param {String} name - the event name\n * @param {...} args - additional args are given to the event\n * @returns {plugin} chains\n */\n trigger : function trigger(name){\n var args = [].slice.call(arguments, 1);\n host.trigger.apply(host, ['plugin-' + name + '.' + pluginName, plugin].concat(args));\n return this;\n },\n\n /**\n * Get the plugin host\n * @returns {host} the plugins's host\n */\n getHost : function getHost(){\n return host;\n },\n\n /**\n * Get the host's areaBroker\n * @returns {areaBroker} the areaBroker\n */\n getAreaBroker : function getAreaBroker(){\n return areaBroker;\n },\n\n /**\n * Get the config\n * @returns {Object} config\n */\n getConfig : function getConfig(){\n return config;\n },\n\n /**\n * Set a config entry\n * @param {String|Object} name - the entry name or an object to merge\n * @param {*} [value] - the config value if name is an entry\n * @returns {plugin} chains\n */\n setConfig : function setConfig(name, value){\n if(_.isPlainObject(name)){\n config = _.defaults(name, config);\n }else{\n config[name] = value;\n }\n return this;\n },\n\n /**\n * Get a state of the plugin\n *\n * @param {String} name - the state name\n * @returns {Boolean} if active, false if not set\n */\n getState : function getState(name){\n return !!states[name];\n },\n\n /**\n * Set a state to the plugin\n *\n * @param {String} name - the state name\n * @param {Boolean} active - is the state active\n * @returns {plugin} chains\n * @throws {TypeError} if the state name is not a valid string\n */\n setState : function setState(name, active){\n if(!_.isString(name) || _.isEmpty(name)){\n throw new TypeError('The state must have a name');\n }\n states[name] = !!active;\n\n return this;\n },\n\n /**\n * Get the plugin content\n *\n * @returns {Object|*} the content\n */\n getContent : function getContent(){\n return pluginContent;\n },\n\n\n /**\n * Set the plugin content\n *\n * @param {Object|*} [content] - the plugin content\n * @returns {plugin} chains\n */\n setContent : function setContent(content){\n pluginContent = content;\n\n return this;\n },\n\n /**\n * Get the plugin name\n *\n * @returns {String} the name\n */\n getName : function getName(){\n return pluginName;\n },\n\n /**\n * Shows the component related to this plugin\n * @returns {Promise} to resolve async delegation\n */\n show : function show(){\n var self = this;\n\n return delegate('show').then(function(){\n self.setState('visible', true)\n .trigger('show');\n });\n },\n\n /**\n * Hides the component related to this plugin\n * @returns {Promise} to resolve async delegation\n */\n hide : function hide(){\n var self = this;\n\n return delegate('hide').then(function(){\n self.setState('visible', false)\n .trigger('hide');\n });\n },\n\n /**\n * Enables the plugin\n * @returns {Promise} to resolve async delegation\n */\n enable : function enable(){\n var self = this;\n\n return delegate('enable').then(function(){\n self.setState('enabled', true)\n .trigger('enable');\n });\n },\n\n /**\n * Disables the plugin\n * @returns {Promise} to resolve async delegation\n */\n disable : function disable(){\n var self = this;\n\n return delegate('disable').then(function(){\n self.setState('enabled', false)\n .trigger('disable');\n });\n }\n };\n\n /**\n * Delegate a function call to the provider\n *\n * @param {String} fnName - the function name\n * @param {...} args - additional args are given to the provider\n * @returns {*} up to the provider\n */\n delegate = delegator(plugin, provider, {\n eventifier: false,\n wrapper: function pluginWrapper(response){\n return Promise.resolve(response);\n }\n });\n\n //add a convenience method that alias getHost using the hostName\n if(_.isString(defaults.hostName) && !_.isEmpty(defaults.hostName)){\n plugin['get' + defaults.hostName.charAt(0).toUpperCase() + defaults.hostName.slice(1)] = plugin.getHost;\n }\n\n return plugin;\n };\n }\n\n return pluginFactory;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\ndefine('taoTests/runner/plugin',['lodash', 'core/plugin'], function(_, pluginFactory){\n 'use strict';\n\n /**\n * A pluginFactory configured for the test runner\n * @returns {Function} the preconfigured plugin factory\n */\n return _.partialRight(pluginFactory, {\n //alias getHost to getTestRunner\n hostName : 'testRunner'\n });\n});\n\n","\ndefine('tpl!taoQtiTest/runner/plugins/content/rubricBlock/rubricBlock', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n \n\n\n return \"<div id=\\\"qti-rubrics\\\"></div>\\n\";\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Content Plugin : RubricBlock\n *\n * TODO require mathjax on demand\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/content/rubricBlock/rubricBlock',[\n 'jquery',\n 'i18n',\n 'ui/hider',\n 'taoTests/runner/plugin',\n 'tpl!taoQtiTest/runner/plugins/content/rubricBlock/rubricBlock'\n], function ($, __, hider, pluginFactory, containerTpl){\n 'use strict';\n\n /**\n * Ensure the <a> links opens to blank pages\n * @param {jQueryElement} $container - lookup scope\n */\n var blankifyLinks = function blankifyLinks($container){\n $('a', $container).attr('target', '_blank');\n };\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n name : 'rubricBlock',\n\n /**\n * Initialize the plugin (called during runner's init)\n */\n init : function init(){\n var self = this;\n var testRunner = this.getTestRunner();\n\n this.$element = $(containerTpl());\n\n this.hide();\n\n //change plugin state\n testRunner\n .on('ready', function(){\n self.hide();\n })\n .on('loadrubricblock', function(rubrics){\n if(rubrics){\n self.$element.html(rubrics);\n blankifyLinks(self.$element);\n\n // notify that the rubric blocks are loaded\n testRunner.trigger('rubricblock');\n }\n })\n .on('renderitem', function(){\n self.show();\n })\n .on('unloaditem', function(){\n self.hide();\n self.$element.empty();\n });\n },\n\n /**\n * Called during the runner's render phase\n */\n render : function render(){\n\n //attach the element before the content area\n var $container = this.getAreaBroker().getContentArea();\n $container.before(this.$element);\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy (){\n this.$element.remove();\n },\n\n /**\n * Enable the container\n */\n enable : function enable (){\n this.$element.removeProp('disabled')\n .removeClass('disabled');\n },\n\n /**\n * Disable the container\n */\n disable : function disable (){\n this.$element.prop('disabled', true)\n .addClass('disabled');\n },\n\n /**\n * Show the container\n */\n show: function show(){\n hider.show(this.$element);\n },\n\n /**\n * Hide the container\n */\n hide: function hide(){\n hider.hide(this.$element);\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Content Plugin : Overlay\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/content/overlay/overlay',[\n 'jquery',\n 'i18n',\n 'taoTests/runner/plugin'\n], function ($, __, pluginFactory){\n 'use strict';\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n name : 'overlay',\n\n /**\n * Initialize the plugin (called during runner's init)\n */\n init : function init(){\n var self = this;\n var testRunner = this.getTestRunner();\n\n this.$element = $('<div />');\n this.$element.on('click mousedown mouseup touchstart touchend keyup keydow keypress scroll drop', function(e){\n e.stopImmediatePropagation();\n e.stopPropagation();\n });\n\n var shield = function shield(){\n self.enable();\n };\n var unshield = function unshield(itemRef){\n self.disable();\n };\n\n //change plugin state\n testRunner\n .on('disableitem', shield)\n .on('enableitem unloaditem', unshield);\n },\n\n /**\n * Called during the runner's render phase\n */\n render : function render (){\n var $contentArea = this.getTestRunner().getAreaBroker().getContentArea();\n $contentArea.after(this.$element);\n },\n\n\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy (){\n this.$element.remove();\n },\n\n /**\n * Enable the overlay\n */\n enable : function enable (){\n var testRunner = this.getTestRunner();\n var testData = testRunner.getTestData() || {};\n var testConfig = testData.config || {};\n var pluginsConfig = testConfig.plugins || {};\n var overlayConfig = pluginsConfig.overlay || {};\n\n this.$element.addClass('overlay');\n\n if (overlayConfig.full) {\n this.$element.addClass('overlay-full');\n }\n },\n\n /**\n * Disable the overlay\n */\n disable : function disable (){\n this.$element.removeClass('overlay overlay-full');\n },\n\n /**\n * Show the overlay\n */\n show: function show(){\n this.enable();\n },\n\n /**\n * Hide the overlay\n */\n hide: function hide(){\n this.disable();\n }\n });\n});\n\n","\ndefine('tpl!ui/dialog/tpl/body', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n <div class=\\\"content\\\">\";\n if (helper = helpers.content) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.content); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</div>\\n \";\n return buffer;\n }\n\n buffer += \"<div class=\\\"preview-modal-feedback modal\\\">\\n <div class=\\\"modal-body clearfix\\\">\\n <p class=\\\"message\\\">\";\n if (helper = helpers.message) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.message); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</p>\\n\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.content), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n\\n <div class=\\\"buttons rgt\\\"></div>\\n </div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","\ndefine('tpl!ui/dialog/tpl/buttons', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n <button class=\\\"btn-\";\n if (helper = helpers.type) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.type); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \" small \";\n if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-control=\\\"\";\n if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" type=\\\"button\\\">\";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</button>\\n\";\n return buffer;\n }\nfunction program2(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"<span class=\\\"icon-\";\n if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\"></span> \";\n return buffer;\n }\n\n stack1 = helpers.each.call(depth0, (depth0 && depth0.buttons), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n\";\n return buffer;\n });\n});\n\n","/**\n * Used to register jquery plugins\n *\n * !!! Prefer component to jQuery plugins !!!\n *\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n * @requires jquery\n * @requires lodash\n */\ndefine('core/pluginifier',['jquery', 'lodash'], function($, _){\n 'use strict';\n\n /**\n * Abstract plugin used to provide common behavior to the plugins\n */\n var basePlugin = {\n\n /**\n * Set options of the plugin\n *\n * @example $('selector').pluginName('options', { key: value });\n * @param {String} dataNs - the data namespace\n * @param {String} ns - the event namespace\n * @param {Object} options - the options to set\n */\n options : function(dataNs, ns, options){\n return this.each(function(){\n var $elt = $(this);\n var currentOptions = $elt.data(dataNs);\n if(currentOptions){\n $elt.data(dataNs, _.merge(currentOptions, options));\n }\n });\n },\n\n /**\n * Disable the component.\n *\n * It can be called prior to the plugin initilization.\n *\n * Called the jQuery way once registered by the Pluginifier.\n * @example $('selector').pluginName('disable');\n * @param {String} dataNs - the data namespace\n * @param {String} ns - the event namespace\n * @fires basePlugin#disable.ns\n */\n disable : function(dataNs, ns){\n return this.each(function(){\n var $elt = $(this);\n var options = $elt.data(dataNs);\n if(options){\n $elt.addClass(options.disableClass || 'disabled')\n .trigger('disable.'+ ns);\n }\n });\n },\n\n /**\n * Enable the component.\n *\n * Called the jQuery way once registered by the Pluginifier.\n * @example $('selector').pluginName('enable');\n * @param {String} dataNs - the data namespace\n * @param {String} ns - the event namespace\n * @fires basePlugin#enable.ns\n */\n enable : function(dataNs, ns){\n return this.each(function(){\n var $elt = $(this);\n var options = $elt.data(dataNs);\n if(options){\n $elt.removeClass(options.disableClass || 'disabled')\n .trigger('enable.'+ ns);\n }\n });\n },\n };\n\n /**\n * Helps you to create a jQuery plugin, the Cards way\n * @exports core/pluginifer\n */\n var Pluginifier = {\n\n /**\n * Regsiter a new jQuery plugin, the Cards way\n * @param {string} pluginName - the name of the plugin to regsiter. ie $('selector').pluginName();\n * @param {Object} plugin - the plugin as a plain object\n * @param {Function} plugin.init - the entry point of the plugin is always an init method\n * @param {Object} [config] - plugin configuration\n * @param {String} [config.ns = pluginName] - plugin namespace (used for events and data-attr)\n * @param {String} [config.dataNs = ui.pluginName] - plugin namespace (used for events and data-attr)\n * @param {Array<String>} [config.expose] - list of methods to expose\n */\n register : function(pluginName, plugin, config){\n config = config || {};\n var ns = config.ns || pluginName.toLowerCase();\n var dataNs = config.dataNs || 'ui.' + ns;\n var expose = config.expose || [];\n\n //checks\n if(_.isFunction($.fn[pluginName])){\n return $.error('A plugin named ' + pluginName + ' is already registered');\n }\n if(!_.isPlainObject(plugin) || !_.isFunction(plugin.init)){\n return $.error('The object to register as a jQuery plugin must be a plain object with an `init` method.');\n }\n\n //configure and augments the plugin\n _.assign(plugin, _.transform(basePlugin, function(result, prop, key){\n if(_.isFunction(prop)){\n result[key] = _.partial(basePlugin[key], dataNs, ns);\n }\n }));\n\n //set up public methods to wrap privates the jquery way\n _.forEach(expose, function(toExposeName){\n var privateMethod = toExposeName;\n var publicMethod = toExposeName;\n if(!/^_/.test(expose)){\n privateMethod = '_' + privateMethod;\n } else {\n publicMethod = publicMethod.replace(/^_/, '');\n }\n\n //do not override if exists\n if(_.isFunction(plugin[privateMethod]) && !_.isFunction(plugin[publicMethod])){\n plugin[publicMethod] = function(){\n var returnValue;\n var args = Array.prototype.slice.call(arguments, 0);\n this.each(function(){\n //call plugin._method($element, [remainingArgs...]);\n returnValue = plugin[privateMethod].apply(plugin, [$(this)].concat(args));\n });\n return returnValue || this;\n };\n }\n });\n\n // map $('selector').pluginName() to plugin.init\n // map $('selector').pluginName('method', params) to plugin.method(params) to plugin._method($elt, params);\n // disable direct call to private (starting with _) methods\n $.fn[pluginName] = function(method){\n if(plugin[method]){\n if(/^_/.test(method)){\n $.error( 'Trying to call a private method `' + method + '`' );\n } else {\n return plugin[method].apply( this, Array.prototype.slice.call( arguments, 1 ));\n }\n } else if ( typeof method === 'object' || ! method) {\n return plugin.init.apply( this, arguments );\n }\n $.error( 'Method ' + method + ' does not exist on plugin' );\n };\n }\n };\n\n return Pluginifier;\n});\n\n\n","/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n * @requires jquery\n * @requires lodash\n */\ndefine('core/dataattrhandler',['jquery', 'lodash'], function($, _){\n 'use strict';\n \n var defaults = {\n container : false,\n listenerEvent : 'click',\n useTarget: true,\n bubbled: false \n };\n \n\n \n var letDefaultOn = [\n ':radio', ':checkbox'\n ];\n \n /**\n * Some elements (listed in letDefaultOn) need the usual action to be triggered, check that\n * @param {jQueryElement} $elt\n * @returns {boolean}\n */\n var shouldPreventDefault = function shouldPreventDefault($elt){\n return !($elt.is(letDefaultOn.join(',')));\n };\n \n /**\n * This callback is used either to perform actions on data-attr element\n * @callback dataAttrCallback\n * @params {jQueryElmement} $elt - the element that contains the data-attr\n * @params {jQueryElmement} $target - the element targeted by the data-attr\n */\n \n /**\n * The DataAttrHandler helps you to listen events from data attribute elements \n * and bound a jQuery plugin behavior.\n * @exports core/dataattrhandler\n * \n * @contructor\n * @param {string} attrName - the name of the attribute, ie. `toggle` for `data-toggle`\n * @param {Object} options - the handler options\n * @param {string} options.namespace - the jQuery plugin namespace\n * @param {jQueryElement|boolean} [options.container = false] - the root context to listen in\n * @param {string} [options.listenerEvent = 'click'] - the event to listen on\n * @param {boolean} [options.preventDefault = true] - to prevent the default event to be fired\n * @param {string} [options.inner] - a selector inside the element to bind the event to\n * @param {boolean} [options.useTarget = true] - if the content of the data-attr is as target or not\n * @param {boolean} [options.bubbled = false] - handle the event if bubbled from a child\n */\n var DataAttrHandler = function construct(attrName, options){\n \n var self = this;\n this.options = _.defaults(options, defaults);\n var selector = '[data-' + attrName + ']';\n \n //check namespace\n if(!_.has(this.options, 'namespace') || !_.isString(this.options.namespace)){\n return $.error('The plugin data namespace option is required');\n }\n \n if(this.options.container && this.options.container.selector){\n selector = this.options.container.selector + ' ' + selector;\n }\n \n if(this.options.inner){\n selector += ' ' + this.options.inner;\n }\n \n //listen for events on selector (the listening works even though the DOM changes).\n $(document)\n .off(this.options.listenerEvent, selector)\n .on(this.options.listenerEvent, selector, function(e){\n \n var $elt = $(e.target);\n if(self.options.bubbled === true || $elt.is(selector)){\n var $target, $outer;\n \n if ($elt.data(attrName) === undefined && (self.options.inner || self.options.bubbled)){\n $outer = $elt;\n $elt = $elt.parents('[data-' + attrName + ']');\n }\n \n $target = (self.options.useTarget === true) ? DataAttrHandler.getTarget(attrName, $elt) : (self.options.inner ? $outer : undefined);\n\n //check if the plugin is already bound to the element\n if(!$elt.data(self.options.namespace)){\n if(typeof self.createPlugin === 'function'){\n self.createPlugin($elt, $target);\n }\n\n //for radio bind also the method call to the group...\n if($elt.is(':radio') && $elt.attr('name')){\n $(':radio[name=\"' + $elt.attr('name') +'\"]').not($elt).on(self.options.listenerEvent, function(e){\n if(typeof self.callPluginMethod === 'function'){\n self.callPluginMethod($elt, $target);\n }\n if(shouldPreventDefault($elt)){\n e.preventDefault();\n }\n });\n }\n }\n\n //call the method bound to this event\n if(typeof self.callPluginMethod === 'function'){\n self.callPluginMethod($elt, $target);\n } /*else {\n //if there is no action to call we top listening (init plugin only)\n $(document).off(self.options.listenerEvent, selector);\n }*/\n\n if(shouldPreventDefault($elt)){\n e.preventDefault();\n }\n }\n });\n };\n \n /**\n * Add the callback used to initialise the plugin, \n * the cb will be executed only once\n * @param {dataAttrCallback} cb - callback\n * @returns {DataAttrHandler} for chaining\n */\n DataAttrHandler.prototype.init = function(cb){\n \n this.createPlugin = cb;\n\n return this;\n };\n\n /**\n * Add the callback used to trigger an action each time the event is fired.\n * @param {dataAttrCallback} cb - callback\n * @returns {DataAttrHandler} for chaining\n */\n DataAttrHandler.prototype.trigger = function(cb){\n\n this.callPluginMethod = cb;\n\n return this;\n };\n\n /**\n * Loads the target element from the data-attr (and fallback to href or a named attribute).\n * The value of the data-attr is a CSS selector, it will be applied directly or with $elt as context.\n * \n * @param {String} attrName - the name of the attribute, ie. `toggle` for `data-toggle`\n * @param {jQueryElement} $elt - the element that holds the data attr\n * @returns {jQueryElement} the target\n */\n DataAttrHandler.getTarget = function getTarget(attrName, $elt){\n var relativeRegex = /^(\\+|>|~|:parent|<)/;\n var $target = [];\n var targetSelector = $elt.attr('data-' + attrName) || $elt.attr('href') || $elt.attr('attrName');\n if(!_.isEmpty(targetSelector)){\n //try to contextualize from the current element before selcting globally\n var matches = relativeRegex.exec(targetSelector);\n if(matches !== null){\n var selector = targetSelector.replace(relativeRegex, '');\n if(matches[0] === ':parent' || matches[0] === '<'){\n $target = $elt.parents(selector);\n } else if (matches[0] === '~'){\n $target = $elt.siblings(selector);\n } else if (matches[0] === '+'){\n $target = $elt.next(selector);\n } else {\n $target = $(selector, $elt);\n }\n }else {\n $target = $(targetSelector);\n }\n }\n return $target;\n };\n\n //expose the handler\n return DataAttrHandler;\n});\n\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA ;\n */\ndefine('ui/modal',['jquery', 'core/pluginifier', 'core/dataattrhandler'], function ($, Pluginifier, DataAttrHandler) {\n 'use strict';\n\n /**\n * jQuery modal is an easy to use plugin\n * which allows you to create modal windows\n * @example $('#modal-window').modal();\n *\n * @require jquery >= 1.7.0 [http://jquery.com/]\n */\n\n var pluginName = 'modal';\n var dataNs = 'ui.' + pluginName;\n\n var defaults = {\n modalCloseClass: 'modal-close',\n modalOverlayClass: 'modal-bg',\n startClosed: false,\n disableClosing: false,\n width: 'responsive',\n minWidth: 0,\n minHeight: 0,\n vCenter: true,\n $context: null,\n animate: 400\n };\n\n // the duration difference between modal and overlay animates (overlay is animated faster than modal)\n var animateDiff = 100;\n\n var modal = {\n /**\n * Initialize the modal dialog\n * @param {Object} [options] - plugin options\n * @param {String} [options.modalClose = 'modal-close'] - the css class for the modal closer\n * @param {String} [options.modalOverlay = 'modal-bg'] - the css class for the modal overlay element\n * @param {Boolean} [options .disableClosing = false] - to disable the default closers\n * @param {String|Number|Boolean} [options.width = 'responsive'] - the width behavior, responsive or a fixed value, or default if false\n * @param {Number} [options.minWidth = 0] - the minimum width of the modal\n * @param {Number} [options.minHeight = 0] - the minimum height of the modal\n * @param {Boolean} [options.vCenter = true] - if the modal should be centered vertically\n * @param {jQueryElement} [options.$context = null] - give the context the modal overlay should be append to, if none give, it would be on the window\n * @param {Number|Boolean} [options.animate = 400] - display the modal using animation\n * @returns {jQueryElement} for chaining\n * @fires modal#create.modal\n */\n init: function (options) {\n\n //extend the options using defaults\n options = $.extend(true, {}, defaults, options);\n\n // default animation duration\n if (options.animate) {\n if ('number' !== typeof options.animate) {\n options.animate = defaults.animate;\n } else {\n options.animate = Math.max(animateDiff, options.animate);\n }\n }\n\n return $(this).each(function () {\n var $modal = $(this);\n\n options.modalOverlay = '__modal-bg-' + ($modal.attr('id') || new Date().getTime());\n\n //add data to the element\n $modal.data(dataNs, options);\n\n //Initialize the overlay for the modal dialog\n if ($('#' + options.modalOverlay).length === 0) {\n var $overlay = $('<div/>').attr({'id': options.modalOverlay, 'class': options.modalOverlayClass});\n if (options.$context instanceof $ && options.$context.length) {\n //when a $context is given, position the modal overlay relative to that context\n $overlay.css('position', 'absolute');\n options.$context.append($overlay);\n } else {\n //the modal overlay is absolute to the window\n $modal.after($overlay);\n }\n }\n\n //Initialize the close button for the modal dialog\n if ($('.' + options.modalCloseClass, $modal).length === 0 && !options.disableClosing) {\n $('<div class=\"' + options.modalCloseClass + '\"><span class=\"icon-close\"></span></div>').appendTo($modal);\n }\n\n if (!options.startClosed) {\n modal._open($modal);\n }\n\n /**\n * The plugin have been created.\n * @event modal#create.modal\n */\n $modal.trigger('create.' + pluginName);\n });\n },\n\n /**\n * Destroys the modal\n * @param {jQuery object} $element\n * @fires modal#destroyed.modal\n */\n _destroy: function ($element) {\n return $element.each(function () {\n var $modal = $(this);\n var options = $modal.data(dataNs);\n\n $modal.removeData(dataNs);\n $('#' + options.modalOverlay).remove();\n $modal.hide();\n\n /**\n * The target has been opened.\n * @event modal#opened.modal\n */\n $element.trigger('destroyed.' + pluginName);\n });\n },\n\n /**\n * Bind events\n * @param {jQuery object} $element\n * @returns {undefined}\n */\n _bindEvents: function ($element) {\n var options = $element.data(dataNs);\n\n if (options) {\n if (options.width === 'responsive') {\n $(window).on('resize.' + pluginName, function (e) {\n e.preventDefault();\n modal._resize($element);\n });\n }\n\n if (!options.disableClosing) {\n $('.' + options.modalCloseClass, $element).on('click.' + pluginName, function (e) {\n e.preventDefault();\n modal._close($element);\n });\n\n $('#' + options.modalOverlay).on('click.' + pluginName, function (e) {\n e.preventDefault();\n modal._close($element);\n });\n\n $(document).on('keydown.' + pluginName, function (e) {\n if (e.keyCode === 27) {\n e.preventDefault();\n modal._close($element);\n }\n });\n }\n }\n },\n\n /**\n * Unbind events\n * @param {jQuery object} $element\n * @returns {undefined}\n */\n _unBindEvents: function ($element) {\n var options = $element.data(dataNs);\n\n if (options && options.width === 'responsive') {\n $(window).off('resize.' + pluginName);\n }\n\n $element.off('click.' + pluginName);\n\n if (options && !options.disableClosing) {\n $('.' + options.modalCloseClass, $element).off('click.' + pluginName);\n $('#' + options.modalOverlay).off('click.' + pluginName);\n $(document).off('keydown.' + pluginName);\n }\n },\n\n /**\n * Open the modal dialog\n * @param {jQuery object} $element\n * @returns {jQuery object}\n * @fires modal#opened.modal\n */\n _open: function ($element) {\n var modalHeight = $element.outerHeight(),\n windowHeight = $(window).height(),\n options = $element.data(dataNs),\n topOffset, onOpen, $overlay, to;\n\n if (typeof options !== 'undefined') {\n // Called when the modal is fully opened\n onOpen = function () {\n $element.addClass('opened');\n modal._bindEvents($element);\n\n /**\n * The target has been opened.\n * @event modal#opened.modal\n */\n $element.trigger('opened.' + pluginName);\n };\n\n //Calculate the top offset\n topOffset = (options.vCenter || modalHeight > windowHeight) ? 40 : (windowHeight - modalHeight) / 2;\n to = {\n 'opacity': '1',\n 'top': topOffset + 'px'\n };\n\n modal._resize($element);\n\n $overlay = $('#' + options.modalOverlay);\n\n $element.show();\n\n if (options.animate && $element.is(':visible')) {\n $element.css({\n 'top': '-' + modalHeight + 'px',\n 'display': 'block'\n });\n\n $overlay.fadeIn(options.animate - animateDiff);\n $element.animate(to, options.animate, onOpen);\n } else {\n $overlay.show();\n $element.css(to);\n onOpen();\n }\n }\n },\n\n /**\n * Close the modal dialog\n * @param {jQuery object} $element\n * @fires modal#closed.modal\n */\n _close: function ($element) {\n var options = $element.data(dataNs);\n var $overlay = $('#' + options.modalOverlay);\n var onClose = function() {\n $element.removeClass('opened');\n $element.css('display', 'none');\n\n /**\n * The target has been closed/removed.\n * @event modal#closed.modal\n */\n $element.trigger('closed.' + pluginName);\n };\n\n modal._unBindEvents($element);\n\n if (options.animate && $element.is(':visible')){\n $overlay.fadeOut(options.animate - animateDiff);\n $element.animate({'opacity': '0', 'top': '-1000px'}, options.animate, onClose);\n } else {\n $overlay.hide();\n $element.hide();\n onClose();\n }\n },\n\n /**\n * Resize the modal window\n * @param {jQuery object} $element\n * @returns {undefined}\n */\n _resize: function ($element) {\n\n var options = $element.data(dataNs);\n var windowWidth = parseInt($(window).width(), 10);\n var css = {};\n\n //calculate the final width and height\n var modalWidth = options.width === 'responsive' ? windowWidth * 0.7 : parseInt(options.width, 10);\n css.width = Math.max(modalWidth, options.minWidth);\n if (options.minHeight) {\n css.minHeight = parseInt(options.minHeight) + 'px';\n }\n\n //apply style\n $element.css(css);\n }\n };\n\n\n //Register the modal to behave as a jQuery plugin.\n Pluginifier.register(pluginName, modal, {\n expose: ['open', 'close', 'destroy']\n });\n\n /**\n * The only exposed function is used to start listening on data-attr\n *\n * @public\n * @example define(['ui/modal'], function(modal){ modal($('rootContainer')); });\n * @param {jQueryElement} $container - the root context to listen in\n */\n return function listenDataAttr($container) {\n new DataAttrHandler('modal', {\n container: $container,\n listenerEvent: 'click',\n namespace: dataNs\n }).init(function ($elt, $target) {\n $target.modal();\n });\n };\n\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n/**\n * Create a modal dialog component\n *\n *\n * TODO move to ui/component\n * TODO use core/eventifier\n *\n *\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('ui/dialog',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'tpl!ui/dialog/tpl/body',\n 'tpl!ui/dialog/tpl/buttons',\n 'ui/modal'\n], function ($, _, __, bodyTpl, buttonsTpl) {\n 'use strict';\n\n /**\n * The scope of events names\n * @type {string}\n */\n var _scope = '.modal';\n\n /**\n * A list of predefined buttons\n * @type {Object}\n */\n var _definedButtons = {\n ok: {\n id : 'ok',\n type : 'info',\n label : __('Ok'),\n close: true\n },\n\n cancel: {\n id : 'cancel',\n type : 'regular',\n label : __('Cancel'),\n close: true\n },\n\n yes: {\n id : 'yes',\n type : 'info',\n label : __('Yes'),\n close: true\n },\n\n no: {\n id : 'no',\n type : 'regular',\n label : __('No'),\n close: true\n }\n };\n\n /**\n * The defaults fields values\n * @type {Object}\n */\n var _defaults = {\n message : '',\n content : '',\n width : 500,\n animate : false,\n autoRender: false,\n autoDestroy: false,\n renderTo : 'body',\n buttons : 'cancel,ok'\n };\n\n /**\n * Define a dialog box\n * @type {Object}\n */\n var dialog = {\n\n /**\n * Initialise the dialog box.\n * @param {Object} options - A list of options.\n * @param {String} options.message - The message to display.\n * @param {String} options.content - An optional content to display under the displayed message.\n * @param {Array|Object|String} options.buttons - A list of buttons to display (default: 'cancel,ok'). Can be:\n * - a string: the button names separated by commas\n * - an array: an array of button names or an array of button definitions\n * - an object: a unique button definition, containing:\n * - id: The button's id\n * - type: A display type (regular, info, warning, error)\n * - label: The button's caption\n * - icon: An optional icon\n * - close: A boolean value telling if the dialog must be closed after the button has been activated\n * @param {String|jQuery|HTMLElement} options.renderTo - A container in which renders the dialog (default: 'body').\n * @param {Boolean} options.autoRender - Allow the dialog to be immediately rendered after initialise.\n * @param {Boolean} options.autoDestroy - Allow the dialog to be immediately destroyed when closing.\n * @param {Number} options.width - The dialog box width in pixels (default: 500).\n * @param {Number|Boolean} options.animate - The dialog box animate duration (default: false).\n * @param {Function} options.onXYZbtn - An event handler assigned to a particular button (XYZ).\n * @returns {dialog}\n */\n init : function init(options) {\n // split options to events\n var self = this;\n var events = {};\n var initOptions = _.omit(options || {}, function(value, key) {\n var omit = false;\n if (key.length > 2 && 'on' === key.substr(0, 2)) {\n events[key.substr(2)] = value;\n omit = true;\n }\n return omit;\n });\n\n // assign default values and options\n _.defaults(this, initOptions, _defaults);\n\n // pre-render the dialog box\n this.$html = $(bodyTpl(this));\n this.$buttons = this.$html.find('.buttons');\n this.rendered = false;\n this.destroyed = false;\n\n // install the buttons and bind the actions\n this.$buttons.on('click' + _scope, 'button', this._onButtonClick.bind(this));\n this.setButtons(this.buttons);\n\n // install the events extracted from the options\n _.forEach(events, function(callback, eventName) {\n if (eventName.indexOf('.') < 0) {\n eventName += _scope;\n }\n self.on(eventName.toLowerCase(), callback);\n });\n\n if (this.autoRender) {\n this.render();\n }\n\n return this;\n },\n\n /**\n * Destroys the dialog box\n * @returns {dialog}\n * @fires dialog#destroy.modal\n */\n destroy: function destroy() {\n if (!this.destroyed) {\n this._destroy();\n\n // reset the context\n this.rendered = false;\n this.destroyed = true;\n\n this.trigger('destroy' + _scope);\n\n // disable events and remove DOM\n this.$buttons.off(_scope);\n this.$html.off(_scope).remove();\n this.$html = null;\n this.$buttons = null;\n }\n\n return this;\n },\n\n /**\n * Set the action buttons\n * @param {Object|Array|String} buttons\n * @returns {dialog}\n */\n setButtons : function setButtons(buttons) {\n var self = this;\n\n if (!this.destroyed) {\n if (!buttons) {\n buttons = _defaults.buttons;\n }\n\n if (!_.isArray(buttons)) {\n // buttons can be set as a list of names\n if (_.isString(buttons)) {\n buttons = buttons.split(',');\n } else {\n buttons = [buttons];\n }\n }\n\n // bind the buttons with\n this.buttons = {};\n _.forEach(buttons, function(btn) {\n if (_.isString(btn)) {\n btn = btn.trim();\n btn = _definedButtons[btn] || {\n id: btn,\n type: 'info',\n label: btn\n };\n }\n if (!btn.type) {\n btn.type = 'regular';\n }\n self.buttons[btn.id] = btn;\n });\n\n this.$buttons.html(buttonsTpl(this));\n }\n\n return this;\n },\n\n /**\n * Renders and shows the dialog box\n * @param {String|HTMLElement|jQuery} [to]\n * @returns {dialog}\n * @fires modal#create.modal\n */\n render : function render(to) {\n if (!this.destroyed) {\n $(to || this.renderTo).append(this.$html);\n this._install();\n this.rendered = true;\n }\n return this;\n },\n\n /**\n * Shows the dialog box. Also renders if needed.\n * @returns {dialog}\n * @fires modal#opened.modal\n */\n show : function show() {\n if (!this.destroyed) {\n if (!this.rendered) {\n this.render();\n } else {\n this._open();\n }\n }\n return this;\n },\n\n /**\n * Hides the dialog box. Does nothing if the dialog box has not been rendered.\n * @returns {dialog}\n * @fires modal#closed.modal\n */\n hide : function hide() {\n if (!this.destroyed && this.rendered) {\n this._close();\n\n if (this.autoDestroy) {\n this.destroy();\n }\n }\n return this;\n },\n\n /**\n * Install an event handler on the underlying DOM element\n * @param {String} eventName\n * @returns {dialog}\n */\n on : function on(eventName) {\n var dom = this.$html;\n if (dom) {\n dom.on.apply(dom, arguments);\n }\n\n return this;\n },\n\n /**\n * Uninstall an event handler from the underlying DOM element\n * @param {String} eventName\n * @returns {dialog}\n */\n off : function off(eventName) {\n var dom = this.$html;\n if (dom) {\n dom.off.apply(dom, arguments);\n }\n\n return this;\n },\n\n /**\n * Triggers an event on the underlying DOM element\n * @param {String} eventName\n * @param {Array|Object} extraParameters\n * @returns {dialog}\n */\n trigger : function trigger(eventName, extraParameters) {\n var dom = this.$html;\n\n if (dom) {\n if (undefined === extraParameters) {\n extraParameters = [];\n }\n if (!_.isArray(extraParameters)) {\n extraParameters = [extraParameters];\n }\n\n extraParameters = Array.prototype.slice.call(extraParameters);\n extraParameters.push(this);\n\n dom.trigger(eventName, extraParameters);\n }\n\n return this;\n },\n\n /**\n * Gets the underlying DOM element\n * @returns {jQuery}\n */\n getDom : function getDom() {\n return this.$html;\n },\n\n /**\n * Called when button is clicked.\n * Executes a button related action\n * @param {Event} event\n * @private\n */\n _onButtonClick : function(event) {\n var $btn = $(event.target);\n var id = $btn.data('control');\n var btn = this.buttons[id];\n\n if (btn) {\n this._execute(btn);\n }\n },\n\n /**\n * Execute a button related action\n * @param {Object} btn\n * @private\n * @fires dialog#[button.id]btn.modal\n */\n _execute : function(btn) {\n // call the optional callback\n if (btn.action) {\n btn.action.apply(this, [btn, this]);\n }\n\n /**\n * Fires the event based on the button name\n * @event dialog#[button.id]btn.modal\n * @param {Object} btn - The related button\n */\n this.trigger(btn.id + 'btn' + _scope, [btn]);\n\n // auto close the dialog box if the button allows it\n if (btn.close) {\n this.hide();\n }\n },\n\n _setFocusOnModal: function _setFocusOnModal(){\n var $btnOk, $btn;\n // default OK button (for enter key)\n $btnOk = $('button.ok', this.$buttons);\n if ($btnOk.length) {\n $btnOk.focus();\n } else {\n // other button\n $btn = $('button', this.$buttons).first();\n if ($btn.length) {\n $btn.focus();\n }\n }\n },\n \n /**\n * Installs the dialog box\n * @private\n */\n _install : function() {\n this.$html.modal({\n width: this.width,\n animate: this.animate\n });\n \n this._setFocusOnModal();\n },\n\n /**\n * Opens the dialog box\n * @private\n */\n _open : function() {\n this.$html.modal('open');\n },\n\n /**\n * Closes the dialog box\n * @private\n */\n _close : function() {\n this.$html.modal('close');\n },\n\n /**\n * Destroys the dialog box\n * @private\n */\n _destroy : function() {\n this.$html.modal('destroy');\n }\n };\n\n /**\n * Builds a dialog box instance\n * @param {Object} options\n * @returns {dialog}\n */\n var dialogFactory = function dialogFactory(options) {\n var instance = _.clone(dialog, true);\n instance.init(options);\n return instance;\n };\n\n return dialogFactory;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('ui/dialog/alert',['lodash', 'ui/dialog'], function (_, dialog) {\n 'use strict';\n\n /**\n * Displays an alert message\n * @param {String} message - The displayed message\n * @param {Function} action - An action called when the alert is closed\n * @returns {dialog} - Returns the dialog instance\n */\n return function dialogAlert(message, action) {\n var dlg = dialog({\n message: message,\n buttons: 'ok',\n autoRender: true,\n autoDestroy: true\n });\n\n if (_.isFunction(action)) {\n dlg.on('closed.modal', action);\n }\n return dlg;\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('ui/dialog/confirm',['lodash', 'ui/dialog'], function (_, dialog) {\n 'use strict';\n\n /**\n * Displays a confirm message\n * @param {String} message - The displayed message\n * @param {Function} accept - An action called when the message is accepted\n * @param {Function} refuse - An action called when the message is refused\n * @returns {dialog} - Returns the dialog instance\n */\n return function dialogConfirm(message, accept, refuse) {\n var accepted = false;\n var dlg = dialog({\n message: message,\n buttons: 'cancel,ok',\n autoRender: true,\n autoDestroy: true,\n onOkBtn: function() {\n accepted = true;\n if (_.isFunction(accept)) {\n accept.call(this);\n }\n }\n });\n\n if (_.isFunction(refuse)) {\n dlg.on('closed.modal', function() {\n if (!accepted) {\n refuse.call(this);\n }\n });\n }\n return dlg;\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Content Plugin : Overlay\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/content/dialog/dialog',[\n 'jquery',\n 'i18n',\n 'taoTests/runner/plugin',\n 'ui/dialog/alert',\n 'ui/dialog/confirm',\n], function ($, __, pluginFactory, dialogAlert, dialogConfirm){\n 'use strict';\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n name : 'dialog',\n\n /**\n * Initialize the plugin (called during runner's init)\n */\n init : function init(){\n var self = this;\n var testRunner = this.getTestRunner();\n\n //change plugin state\n testRunner\n .on('alert', dialogAlert)\n .on('confirm', dialogConfirm);\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/plugins/content/dialog/exitMessages',[\n 'lodash',\n 'taoTests/runner/plugin'\n], function (_, pluginFactory) {\n 'use strict';\n\n /**\n * Creates the testState plugin.\n * Displays exit message, then leaves the runner once the user has acknowledged\n */\n return pluginFactory({\n\n name: 'exitMessages',\n\n /**\n * Initializes the plugin (called during runner's init)\n */\n init: function init() {\n // this function is mandatory\n },\n\n /**\n * Installs the plugin (called when the runner bind the plugin)\n */\n install: function install() {\n var testRunner = this.getTestRunner();\n\n // intercepts the `leave` event,\n // then if a message needs to be displayed displays it and waits the user acknowledges it\n testRunner.before('leave', function leave(e, data) {\n // safely stop the communicator to prevent inconsistent communication while leaving\n testRunner.getProxy().getCommunicator()\n .then(function (communicator) {\n return communicator.close();\n })\n // Silently catch the potential errors to avoid polluting the console.\n // The code above is present to close an already open communicator in order to avoid later\n // communication while the test is destroying. So if any error occurs here it is not very important,\n // the most time it will be a missing communicator error, due to disabled config.\n .catch(_.noop);\n\n if (_.isObject(data) && data.message) {\n var done = e.done();\n var context = testRunner.getTestContext();\n\n // the leave can occurs when the runner is in inconsistent state (i.e. error)\n // prevent side error with item disabling\n if (context && context.itemUri) {\n testRunner.disableItem(context.itemUri);\n }\n\n // wait for the message acknowledge before leaving the runner\n testRunner.trigger('alert', data.message, function () {\n testRunner.trigger('endsession', 'teststate', data.code);\n done();\n });\n }\n });\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/plugins/content/loading/loading',[\n 'layout/loading-bar',\n 'taoTests/runner/plugin'\n], function (loadingBar, pluginFactory) {\n 'use strict';\n\n /**\n * Creates the loading bar plugin.\n * Displays a loading bar when a blocking task is running\n */\n return pluginFactory({\n\n name: 'loading',\n\n /**\n * Initializes the plugin (called during runner's init)\n */\n init: function init() {\n var testRunner = this.getTestRunner();\n testRunner\n .on('unloaditem', function () {\n loadingBar.start();\n })\n .on('renderitem', function () {\n loadingBar.stop();\n });\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Content Plugin : Feedback\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/content/feedback/feedback',[\n 'jquery',\n 'i18n',\n 'taoTests/runner/plugin',\n 'ui/feedback'\n], function ($, __, pluginFactory, feedback){\n 'use strict';\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n name : 'feedback',\n\n /**\n * Initialize the plugin (called during runner's init)\n */\n init : function init(){\n var self = this;\n\n //keep a ref of the feedbacks\n var currentFeedback;\n\n var testRunner = this.getTestRunner();\n\n /**\n * Close the current feedback\n */\n var closeCurrent = function closeCurrent(){\n if(currentFeedback){\n currentFeedback.close();\n }\n };\n\n //change plugin state\n testRunner\n .on('error', function(err){\n var message = err;\n var type = 'error';\n\n if ('object' === typeof err) {\n message = err.message;\n type = err.type;\n }\n\n if (!message) {\n switch (type) {\n case 'TestState':\n message = __('The test has been closed/suspended!');\n break;\n\n case 'FileNotFound':\n message = __('File not found!');\n break;\n\n default:\n message = __('An error occurred!');\n }\n }\n\n currentFeedback = feedback().error(message);\n })\n .on('danger', function(message){\n currentFeedback = feedback().danger(message);\n })\n .on('warning', function(message){\n currentFeedback = feedback().warning(message);\n })\n .on('info', function(message){\n currentFeedback = feedback().info(message);\n })\n .on('alert confirm unloaditem', closeCurrent);\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/plugins/controls/connectivity/connectivity',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'taoTests/runner/plugin'\n], function ($, _, __, pluginFactory) {\n 'use strict';\n\n /**\n * Creates the connectivity plugin.\n * Detects connectivity issues\n */\n return pluginFactory({\n\n name: 'connectivity',\n\n /**\n * Initializes the plugin (called during runner's init)\n */\n init: function init() {\n // this function is mandatory\n },\n\n /**\n * Installs the plugin (called when the runner bind the plugin)\n */\n install: function install() {\n\n var testRunner = this.getTestRunner();\n\n function disconnect() {\n if (!testRunner.getState('disconnected')) {\n testRunner.trigger('disconnect');\n }\n }\n\n function reconnect() {\n if (testRunner.getState('disconnected')) {\n testRunner.trigger('reconnect');\n }\n }\n\n // immediate detection of connectivity loss using Offline API\n $(window).on('offline.connectivity', function() {\n disconnect();\n });\n\n // immediate detection of connectivity back using Offline API\n $(window).on('online.connectivity', function() {\n reconnect();\n });\n\n testRunner\n .on('disconnect', function() {\n testRunner.setState('disconnected', true);\n })\n .on('reconnect', function() {\n testRunner.setState('disconnected', false);\n })\n .before('error', function(e, error) {\n // detect connectivity errors as network error without error code\n if (_.isObject(error) && error.source === 'network' && !error.code) {\n disconnect();\n\n // prevent default error handling\n return false;\n }\n });\n\n testRunner.getProxy()\n .on('receive', function() {\n // any message received, state the runner is connected\n reconnect();\n });\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy (){\n $(window).off('offline.connectivity');\n $(window).off('online.connectivity');\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/plugins/controls/testState/testState',[\n 'taoTests/runner/plugin'\n], function (pluginFactory) {\n 'use strict';\n\n /**\n * Creates the testState plugin.\n * Handle particular states of the assessment test\n */\n return pluginFactory({\n\n name: 'testState',\n\n /**\n * Installs the plugin (called when the runner bind the plugin)\n */\n install: function install() {\n var testRunner = this.getTestRunner();\n\n // middleware invoked on every requests\n testRunner.getProxy()\n .use(function qtiFilter(req, res, next) {\n var data = res && res.data;\n\n // test has been closed/suspended => redirect to the index page after message acknowledge\n if (data && data.type && data.type === 'TestState') {\n // spread the world about the reason of the leave\n testRunner.setState('closedOrSuspended', true);\n\n if (!testRunner.getState('ready')) {\n // if we open an inconsistent test just leave\n // should happen if we refresh an auto paused test\n testRunner.trigger('destroy');\n } else {\n testRunner.trigger('leave', data);\n }\n // break the chain to avoid uncaught exception in promise...\n // this will lead to unresolved promise, but the browser will be redirected soon!\n return;\n }\n next();\n });\n },\n\n /**\n * Initializes the plugin (called during runner's init)\n */\n init: function init() {\n var testRunner = this.getTestRunner();\n\n // immediate handling of proctor's actions\n testRunner.getProxy()\n .channel('teststate', function (data) {\n if (data && ('close' === data.type || 'pause' === data.type)) {\n testRunner.trigger('leave', data);\n }\n });\n }\n });\n});\n\n","// @license http://opensource.org/licenses/MIT\n// copyright Paul Irish 2015\n\n\n// Date.now() is supported everywhere except IE8. For IE8 we use the Date.now polyfill\n// github.com/Financial-Times/polyfill-service/blob/master/polyfills/Date.now/polyfill.js\n// as Safari 6 doesn't have support for NavigationTiming, we use a Date.now() timestamp for relative values\n\n// if you want values similar to what you'd get with real perf.now, place this towards the head of the page\n// but in reality, you're just getting the delta between now() calls, so it's not terribly important where it's placed\n\n\n//changes (AMDify, style guide matching) by Bertrand Chevrier <bertrand@taotesting.com> for OAT S.A.\ndefine('lib/polyfill/performance-now',[], function() {\n 'use strict';\n\n if ( !(\"performance\" in window) ){\n window.performance = {};\n }\n\n Date.now = (Date.now || function() { // thanks IE8\n return new Date().getTime();\n });\n\n if ( !(\"now\" in window.performance)) {\n\n var nowOffset = Date.now();\n\n if (window.performance.timing && window.performance.timing.navigationStart) {\n nowOffset = window.performance.timing.navigationStart;\n }\n\n window.performance.now = function now() {\n return Date.now() - nowOffset;\n };\n }\n});\n\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('core/timer',['lib/polyfill/performance-now'], function () {\n 'use strict';\n\n /**\n * Gets a timer\n * @param {Object|Boolean} config - The init config\n * @param {Boolean} [config.autoStart] - Auto start the timer (default: true)\n * @param {Number} [config.startDuration] - Initial duration (default: 0)\n * @returns {timer}\n */\n function timerFactory(config) {\n var initConfig = config || {};\n var begin = now();\n var last = begin;\n var duration = initConfig.startDuration || 0;\n var state = {};\n var disableAutoStart = false === initConfig.autoStart;\n\n /**\n * The timer instance\n * @type {timer}\n */\n var timer = {\n /**\n * Starts the timer\n * @param {Number} [startDuration] - Initial duration (default: 0)\n * @returns {timer}\n */\n start : function start(startDuration) {\n begin = now();\n last = begin;\n duration = startDuration || 0;\n state.running = true;\n state.started = true;\n\n return this;\n },\n\n /**\n * Gets the time elapsed since the last tick\n * @returns {number}\n */\n tick : function tick() {\n var timestamp = now();\n var elapsed;\n if(state.running){\n elapsed = timestamp - last;\n last = timestamp;\n }\n return elapsed;\n },\n\n /**\n * Pause the timer\n * @returns {timer}\n */\n pause : function pause() {\n if (state.running) {\n duration += now() - begin;\n state.running = false;\n }\n\n return this;\n },\n\n /**\n * Resume the timer\n * @returns {timer}\n */\n resume : function resume() {\n if (!state.running) {\n begin = now();\n last = begin;\n state.started = true;\n state.running = true;\n }\n\n return this;\n },\n\n /**\n * Stops the timer\n * @returns {timer}\n */\n stop : function stop() {\n if (state.running) {\n duration += now() - begin;\n }\n\n state.running = false;\n state.started = false;\n\n return this;\n },\n\n /**\n * Gets the time elapsed since the last start.\n * If the timer is stopped, gets the total duration between start and stop.\n * @returns {number}\n */\n getDuration : function getDuration() {\n if (state.running) {\n return duration + (now() - begin);\n }\n return duration;\n },\n\n /**\n * Checks if the timer is in a particular state\n * @param {String} stateName\n * @returns {Boolean}\n */\n is : function is(stateName) {\n return !!state[stateName];\n },\n\n /**\n * Add time to the timer\n * @param {Number} time\n * @returns {timer}\n */\n add : function add(time) {\n time = parseFloat(time);\n duration += time;\n last -= time;\n return this;\n },\n\n /**\n * Remove time from the timer\n * @param {Number} time\n * @returns {timer}\n */\n sub : function sub(time) {\n time = parseFloat(time);\n duration -= time;\n last += time;\n return this;\n }\n };\n\n /**\n * Simple wrapper around the time provider\n * @returns {Number}\n */\n function now() {\n return window.performance.now();\n }\n\n if (!disableAutoStart) {\n timer.start(initConfig.startDuration);\n }\n\n return timer;\n }\n\n return timerFactory;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Control Plugin : Duration (record exact spent time duration)\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/controls/duration/duration',[\n 'lodash',\n 'core/polling',\n 'core/timer',\n 'core/store',\n 'core/promise',\n 'taoTests/runner/plugin',\n], function (_, pollingFactory, timerFactory, store, Promise, pluginFactory) {\n 'use strict';\n\n /**\n * Time interval between duration capture in ms\n * @type {Number}\n */\n var refresh = 1000;\n\n\n /**\n * Creates the timer plugin\n */\n return pluginFactory({\n\n name: 'duration',\n\n /**\n * Initializes the plugin (called during runner's init)\n */\n init: function init() {\n\n var self = this;\n var testRunner = this.getTestRunner();\n var initContext = testRunner.getTestContext();\n var initItemAttemptId = initContext.itemIdentifier + '#' + initContext.attempt;\n\n //where the duration of attempts are stored\n return store('duration-' + testRunner.getConfig().serviceCallId).then(function(durationStore){\n\n //one stopwatch to count the time\n self.stopwatch = timerFactory({\n autoStart : false\n });\n\n return durationStore.getItem(initItemAttemptId)\n .then(function(initDuration){\n initDuration = _.isNumber(initDuration) ? initDuration : 0;\n\n // if the current item attempt duration is empty in the client storage,\n // the test has probably been started in another browser or computer and a crash occurred,\n // so take the server provided duration to take care of elapsed time on the same attempt\n if (!initDuration && initContext.attemptDuration) {\n return durationStore.setItem(initItemAttemptId, initContext.attemptDuration || 0);\n }\n })\n .then(function(){\n //update the duration on a regular basis\n self.polling = pollingFactory({\n\n action : function updateDuration() {\n\n //how many time elapsed from the last tick ?\n var elapsed = self.stopwatch.tick();\n var context = testRunner.getTestContext();\n\n //store by attempt\n var itemAttemptId = context.itemIdentifier + '#' + context.attempt;\n\n durationStore.getItem(itemAttemptId).then(function(duration){\n duration = _.isNumber(duration) ? duration : 0;\n elapsed = _.isNumber(elapsed) && elapsed > 0 ? (elapsed / 1000) : 0;\n\n //store the last duration\n durationStore.setItem(itemAttemptId, duration + elapsed);\n });\n },\n interval : refresh,\n autoStart : false\n });\n\n //change plugin state\n testRunner\n\n .after('renderitem enableitem', function(){\n self.enable();\n })\n\n .before('move disableitem skip error', function(e){\n if (self.getState('enabled')) {\n self.disable();\n }\n })\n\n /**\n * @event duration.get\n * @param {String} attemptId - the attempt id to get the duration for\n * @param {getDuration} getDuration - a receiver callback\n */\n .on('plugin-get.duration', function(e, attemptId, getDuration){\n if(_.isFunction(getDuration)){\n if(!/^(.*)+#+\\d+$/.test(attemptId)){\n return getDuration(Promise.reject(new Error('Is it really an attempt id, like \"itemid#attempt\"')));\n }\n\n /**\n * @callback getDuration\n * @param {Promise} p - that resolve with the duration value\n */\n getDuration(durationStore.getItem(attemptId));\n }\n })\n\n .before('finish', function(e){\n var done = e.done();\n\n durationStore.clear()\n .then(done)\n .catch(done);\n });\n });\n });\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy (){\n this.polling.stop();\n this.stopwatch.stop();\n },\n\n /**\n * Enables the duration count\n */\n enable : function enable (){\n this.polling.start();\n this.stopwatch.resume();\n },\n\n /**\n * Disables the duration count\n */\n disable : function disable (){\n this.polling.stop();\n this.stopwatch.pause();\n }\n });\n});\n\n","\ndefine('tpl!taoQtiTest/runner/plugins/controls/title/title', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n <span data-control=\\\"\";\n if (helper = helpers.control) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.control); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" class=\\\"qti-controls\\\" title=\\\"\";\n if (helper = helpers.text) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.text); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\";\n stack1 = helpers.unless.call(depth0, (data == null || data === false ? data : data.first), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n if (helper = helpers.text) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.text); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</span>\\n \";\n return buffer;\n }\nfunction program2(depth0,data) {\n \n \n return \" - \";\n }\n\n buffer += \"<div class=\\\"title-box truncate\\\">\\n \";\n stack1 = helpers.each.call(depth0, (depth0 && depth0.titles), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Control Plugin : Title\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/controls/title/title',[\n 'jquery',\n 'i18n',\n 'taoTests/runner/plugin',\n 'tpl!taoQtiTest/runner/plugins/controls/title/title'\n], function ($, __, pluginFactory, titleTpl){\n 'use strict';\n\n return pluginFactory({\n name : 'title',\n init : function init(){\n var self = this;\n var testRunner = this.getTestRunner();\n var testData = testRunner.getTestData();\n\n var createElement = function(){\n\n var context = testRunner.getTestContext();\n var titles = [{\n control : 'qti-test-title',\n text : testData.title\n }];\n if(context.isDeepestSectionVisible){\n titles.push({\n control : 'qti-test-position', //WTF !? isn't it the section title... ?\n text : context.sectionTitle\n });\n }\n\n return $(titleTpl({ titles : titles }));\n };\n\n this.$element = createElement();\n\n\n testRunner\n .after('renderitem', function(){\n var $element = createElement();\n self.$element.replaceWith($element);\n self.$element = $element;\n });\n\n },\n render : function render(){\n var $container = this.getAreaBroker().getControlArea();\n $container.append(this.$element);\n }\n });\n});\n\n","define('core/encoder/time',['moment'], function(moment){\n \n var format = \"HH:mm:ss\";\n \n return {\n \n encode : function(modelValue){\n \n //seconds to hh:mm:ss\n var seconds = parseInt(modelValue, 10);\n if(isNaN(seconds)){\n seconds = 0;\n }\n var time = moment.duration(seconds, 'seconds');\n var h = time.get('hours') >= 10 ? time.get('hours') : '0' + time.get('hours');\n var m = time.get('minutes') >= 10 ? time.get('minutes') : '0' + time.get('minutes');\n var s = time.get('seconds') >= 10 ? time.get('seconds') : '0' + time.get('seconds');\n return h + ':' + m + ':' + s;\n },\n \n decode : function(nodeValue){\n //hh:mm:ss to seconds\n var time = moment(nodeValue, format);\n return time.seconds() + (time.minutes() * 60) + (time.hours() * 3600);\n }\n };\n});\n\n\n\n","\ndefine('tpl!taoQtiTest/runner/plugins/controls/timer/timer', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n \n return \" disabled\";\n }\n\n buffer += \"<span class=\\\"qti-timer qti-timer__type-\";\n if (helper = helpers.type) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.type); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \" qti-controls \";\n stack1 = helpers.unless.call(depth0, (depth0 && depth0.running), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-control=\\\"\";\n if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" title=\\\"\";\n if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <span class=\\\"qti-timer_label truncate\\\">\";\n if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</span>\\n <span class=\\\"qti-timer_time\\\"></span>\\n</span>\\n\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Component that controls the display of a timer (countdown/stopwatch like) into a QTI Test.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/controls/timer/timerComponent',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'moment',\n 'core/encoder/time',\n 'tpl!taoQtiTest/runner/plugins/controls/timer/timer'\n], function ($, _, __, moment, timeEncoder, timerTpl) {\n 'use strict';\n\n var hasAnimationFrame = 'requestAnimationFrame' in window;\n\n /**\n * Duration of a second in the timer's base unit\n * @type {Number}\n */\n var precision = 1000;\n\n /**\n * In a Qti context timers could be associated to those elements\n */\n var timerTypes = {\n test: 'assessmentTest',\n testPart: 'testPart',\n section: 'assessmentSection',\n item: 'assessmentItemRef'\n };\n\n /**\n * Create a new timer component\n * @param {Object} config - the timer config\n * @param {String} config.id - used to identified the timer\n * @param {String} config.type - the associated type (from timerTypes above)\n * @param {String} [config.label] - the label to display next to the timer\n * @param {Number} [config.remaining = 0] - the remaining time\n * @param {Number|Boolean} [config.warning = false] - to warn the user their is only the specified amount of time left\n * @param {Boolean} [config.running = true] - timer state\n * @returns {timerComponent} the timer component\n * @throws {TypeError} if the config is not correct\n */\n var timerComponentFactory = function timerComponentFactory(config){\n var data;\n\n if(!_.isPlainObject(config)){\n throw new TypeError('A timer needs to be configured using a config object');\n }\n if(_.isEmpty(config.id)){\n throw new TypeError('A timer needs and identifier');\n }\n if(!_.contains(timerTypes, config.type)){\n throw new TypeError('Invalid type configured');\n }\n\n data = _.defaults(config, {\n label: '',\n remaining: 0,\n warnings: {},\n running: true\n });\n\n /**\n * @typedef {timerComponent} the component to manage the timer\n */\n return {\n\n /**\n * Initialize the component\n * @returns {timerComponent} chains\n */\n init : function init(){\n this.$element = $(timerTpl(data));\n this.$display = $('.qti-timer_time', this.$element);\n return this;\n },\n\n /**\n * Attach the component to the DOM\n * @param {jQueryElement} $container - where to append the component\n * @returns {timerComponent} chains\n */\n render : function render($container){\n $container.append(this.$element);\n return this;\n },\n\n /**\n * Destroy the component\n * @returns {timerComponent} chains\n */\n destroy : function destroy(){\n this.$element.remove();\n return this;\n },\n\n /**\n * Refresh the display\n * @returns {timerComponent} chains\n */\n refresh : function refresh(){\n var self = this;\n var update = function update(){\n self.$display.text( timeEncoder.encode( data.remaining / precision) );\n };\n if(hasAnimationFrame){\n window.requestAnimationFrame(update);\n } else {\n update();\n }\n\n return this;\n },\n\n /**\n * Warn about time remaining\n * @returns {Object} the warning message and type of popup\n */\n warn : function warn() {\n var remaining,\n message = {},\n warning = _.findLast(data.warnings, { showed: false });\n\n if (!_.isEmpty(warning)\n && _.isFinite(warning.point)\n && data.remaining <= warning.point\n ) {\n remaining = moment.duration(data.remaining / precision, \"seconds\").humanize();\n this.$display.removeClass('txt-info txt-warning txt-danger').addClass('txt-' + warning.type);\n switch (data.type) {\n case 'assessmentItemRef':\n message.text = __(\"Warning You have %s remaining to complete this item.\", remaining);\n break;\n\n case 'assessmentSection':\n message.text = __(\"Warning You have %s remaining to complete this section.\", remaining);\n break;\n\n case 'testPart':\n message.text = __(\"Warning You have %s remaining to complete this test part.\", remaining);\n break;\n\n case 'assessmentTest':\n message.text = __(\"Warning You have %s remaining to complete the test.\", remaining);\n break;\n }\n\n var showed = _.find(data.warnings, { point: warning.point });\n if (showed && showed.point && data.warnings[showed.point / precision]) {\n data.warnings[showed.point / precision].showed = true;\n }\n\n message.type = warning.type;\n }\n\n return message;\n },\n\n\n /**\n * Get the timer id\n * @returns {String} the id\n */\n id : function id(){\n return data.id;\n },\n\n /**\n * Get/set the current/remaining value\n * @param {Number} [value] - only as a setter\n * @returns {Number|timerComponent} the value as a getter, or chains as a setter\n */\n val : function val(value){\n if(typeof value !== 'undefined'){\n data.remaining = value;\n return this;\n }\n return data.remaining;\n },\n\n /**\n * Get/set the running state\n * @param {Boolean} [value] - only as a setter\n * @returns {Boolean|timerComponent} the value as a getter, or chains as a setter\n */\n running : function running(value){\n if(typeof value !== 'undefined'){\n data.running = !!value;\n return this;\n }\n return !!data.running;\n }\n };\n };\n\n return timerComponentFactory;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/helpers/messages',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'taoQtiTest/runner/helpers/map'\n], function ($, _, __, mapHelper) {\n 'use strict';\n\n /**\n * Tells is the current item has been answered or not\n * The item is considered answered when at least one response has been set to not empty {base : null}\n *\n * @returns {Boolean}\n */\n function isCurrentItemAnswered(runner) {\n var answered = false;\n _.forEach(runner.itemRunner && runner.itemRunner.getState(), function (state) {\n var response = state && state.response;\n\n if (_.isObject(response)) {\n // base or record defined: the interaction has a response, so the item is responded\n if (_.isObject(response.base) || _.isObject(response.record) || _.isArray(response.record)) {\n answered = true;\n }\n else if (_.isObject(response.list)) {\n _.forEach(response.list, function(entry) {\n // list defined, and something is listed: the interaction has a response, so the item is responded\n if (_.isArray(entry) && entry.length) {\n answered = true;\n return false;\n }\n });\n }\n\n if (answered) {\n return false;\n }\n }\n });\n\n return answered;\n }\n\n /**\n * Completes an exit message\n * @param {String} message\n * @param {Object} runner\n * @returns {String} Returns the message text\n */\n function getExitMessage(message, scope, runner) {\n var map = runner.getTestMap();\n var context = runner.getTestContext();\n var stats = mapHelper.getScopeStats(map, context.itemPosition, scope);\n var unansweredCount = stats && (stats.total - stats.answered);\n var flaggedCount = stats && stats.flagged;\n var itemsCountMessage = '';\n var isItemCurrentlyAnswered;\n\n if (unansweredCount){\n isItemCurrentlyAnswered = isCurrentItemAnswered(runner);\n\n if (!isItemCurrentlyAnswered && context.itemAnswered) {\n unansweredCount++;\n }\n\n if (isItemCurrentlyAnswered && !context.itemAnswered) {\n unansweredCount--;\n }\n }\n\n\n if (flaggedCount && unansweredCount) {\n itemsCountMessage = __('You have %s unanswered question(s) and have %s item(s) marked for review.',\n unansweredCount.toString(),\n flaggedCount.toString()\n );\n } else {\n if (flaggedCount) {\n itemsCountMessage = __('You have %s item(s) marked for review.', flaggedCount.toString());\n }\n\n if (unansweredCount) {\n itemsCountMessage = __('You have %s unanswered question(s).', unansweredCount.toString());\n }\n }\n\n return (itemsCountMessage + ' ' + message).trim();\n }\n\n return {\n getExitMessage: getExitMessage\n };\n});\n\n","\ndefine('tpl!taoQtiTest/runner/plugins/controls/timer/timers', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n \n\n\n return \"<div class=\\\"timer-box\\\"></div>\\n\";\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Control Plugin : Timer\n *\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/plugins/controls/timer/timer',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/polling',\n 'core/timer',\n 'core/store',\n 'ui/hider',\n 'taoTests/runner/plugin',\n 'taoQtiTest/runner/plugins/controls/timer/timerComponent',\n 'taoQtiTest/runner/helpers/messages',\n 'tpl!taoQtiTest/runner/plugins/controls/timer/timers'\n], function ($, _, __, pollingFactory, timerFactory, store, hider, pluginFactory, timerComponentFactory, messages, timerBoxTpl) {\n 'use strict';\n\n /**\n * Time interval between timer refreshes, in milliseconds\n * @type {Number}\n */\n var timerRefresh = 1000;\n\n /**\n * Duration of a second in the timer's base unit\n * @type {Number}\n */\n var precision = 1000;\n\n /**\n * The message to display when exiting\n */\n var exitMessage = __('After you complete the section it would be impossible to return to this section to make changes. Are you sure you want to end the section?');\n\n\n var timerTypes = {\n test: 'assessmentTest',\n testPart: 'testPart',\n section: 'assessmentSection',\n item: 'assessmentItemRef'\n };\n\n /**\n * Are we in a timed section\n * @param {Object} context - the current test context\n * @returns {Boolean}\n */\n var isTimedSection = function isTimedSection(context){\n var timeConstraints = context.timeConstraints || [];\n return _.some(timeConstraints, function(constraint){\n return constraint.qtiClassName === 'assessmentSection';\n });\n };\n\n\n /**\n * Creates the timer plugin\n */\n return pluginFactory({\n\n name: 'timer',\n\n /**\n * Initializes the plugin (called during runner's init)\n */\n init: function init() {\n\n var self = this;\n var testRunner = this.getTestRunner();\n var testData = testRunner.getTestData() || {};\n var itemStates = testData.itemStates || {};\n var timerWarning = testData.config && testData.config.timerWarning || {};\n\n var currentTimers = {};\n\n /**\n * Load the configuration of a timer from the current context\n * @param {String} type - the timer type/qtiClass\n * @returns {Object} the timer config if there's one for the given type\n */\n var getTimerConfig = function getTimerConfig(type) {\n var timeConstraint;\n var timer;\n var context = testRunner.getTestContext();\n\n // get the config of each timer\n if (!context.isTimeout && context.itemSessionState === itemStates.interacting) {\n timeConstraint = _.findLast(context.timeConstraints, { qtiClassName : type });\n if(timeConstraint){\n timer = {\n label: timeConstraint.label,\n type: timeConstraint.qtiClassName,\n remaining: timeConstraint.seconds * precision,\n id: timeConstraint.source,\n running: true,\n warnings: {}\n };\n\n _(timerWarning[timeConstraint.qtiClassName]).forEach(function (value, key) {\n if (_.contains(['info', 'warning', 'danger'], value)) {\n timer.warnings[key] = {\n type: value,\n showed: timer.remaining / precision <= key,\n point: parseInt(key, 10) * precision\n };\n }\n });\n\n var closestPreviousWarning = _.find(timer.warnings, { showed: true });\n if (!_.isEmpty(closestPreviousWarning) && closestPreviousWarning.point && timer.warnings[closestPreviousWarning.point / precision]) {\n timer.warnings[closestPreviousWarning.point / precision].showed = false;\n }\n }\n }\n return timer;\n };\n\n //TODO this kind of function is generic enough to be moved to a util/helper\n var leaveTimedSection = function leaveTimedSection(type, scope, position){\n var context = testRunner.getTestContext();\n var map = testRunner.getTestMap();\n\n var section = map.parts[context.testPartId].sections[context.sectionId];\n var nbItems = _.size(section.items);\n var item = _.find(section.items, { position : context.itemPosition });\n\n if (!context.isTimeout && context.itemSessionState !== itemStates.closed && isTimedSection(context) && item ){\n\n return !!( (type === 'next' && (scope === 'assessmentSection' || ((item.positionInSection + 1) === nbItems) )) ||\n (type === 'previous' && item.positionInSection === 0) ||\n (type === 'jump' && position > 0 && (position < section.position || position >= section.position + nbItems)) );\n\n }\n return false;\n };\n\n /**\n * Remove a timer from the current ones\n * @param {String} type - the timer type to remove\n */\n var removeTimer = function removeTimer(type){\n if(currentTimers[type]){\n self.storage.removeItem(currentTimers[type].id());\n\n currentTimers[type].destroy();\n currentTimers = _.omit(currentTimers, type);\n }\n };\n\n /**\n * Add and initialize a timer of the given type\n * @param {Object} config - the timer config\n * @param {String} type - the timer type to remove\n */\n var addTimer = function addTimer(type, config){\n if(config){\n currentTimers[type] = timerComponentFactory(config);\n currentTimers[type]\n .init()\n .render(self.$element);\n }\n };\n\n /**\n * Update the timers.\n * It will remove, let, add or update the current timers based on the current context.\n */\n var updateTimers = function updateTimers(checkStorage){\n\n _.forEach(timerTypes, function(type){\n var timerConfig = getTimerConfig(type);\n\n if(currentTimers[type]){\n if(!timerConfig){\n removeTimer(type);\n } else if(currentTimers[type].id() !== timerConfig.id){\n removeTimer(type);\n addTimer(type, timerConfig);\n }\n } else if(timerConfig){\n\n if(checkStorage){\n\n //check for the last value in the storage\n self.storage.getItem(timerConfig.id).then(function(savedTime){\n if(_.isNumber(savedTime) && savedTime >= 0){\n timerConfig.remaining = savedTime;\n }\n addTimer(type, timerConfig);\n }).catch(function(err){\n //add the timer even if the storage doesn't work\n addTimer(type, timerConfig);\n });\n\n } else {\n addTimer(type, timerConfig);\n }\n }\n });\n };\n\n return store('timer-' + testRunner.getConfig().serviceCallId).then(function(timeStore){\n\n //the timer's storage\n self.storage = timeStore;\n\n //the element that'll contain the timers\n self.$element = $(timerBoxTpl());\n\n //one stopwatch to count the time\n self.stopwatch = timerFactory({\n autoStart : false\n });\n\n //update the timers at regular intervals\n self.polling = pollingFactory({\n\n /**\n * The polling action consists in updating each timers,\n * checking timeout and warnings\n */\n action : function updateTime() {\n\n //how many time elapsed from the last tick ?\n var elapsed = self.stopwatch.tick();\n var timeout = false;\n var timeoutScope, timeoutRef;\n\n _.forEach(currentTimers, function(timer, type) {\n var currentVal,\n warning;\n var runTimeout = function runTimeout(){\n testRunner.timeout(timeoutScope, timeoutRef);\n };\n\n if (timer.running()) {\n currentVal = Math.max(timer.val() - elapsed, 0);\n timer\n .val(currentVal)\n .refresh();\n\n if (currentVal <= 0) {\n timer.running(false);\n timeout = true;\n timeoutRef = timer.id();\n timeoutScope = type;\n\n self.storage.setItem(timer.id(), 0)\n .then(runTimeout)\n .catch(runTimeout);\n\n } else {\n self.storage.setItem(timer.id(), currentVal);\n warning = timer.warn();\n if (!_.isEmpty(warning)) {\n testRunner.trigger(warning.type, warning.text);\n }\n }\n }\n });\n if (timeout) {\n self.disable();\n }\n },\n interval : timerRefresh,\n autoStart : false\n });\n\n\n\n //change plugin state\n testRunner\n\n .on('loaditem', function(){\n\n //check for new timers\n updateTimers(true);\n })\n\n .on('enableitem', function() {\n self.enable();\n })\n .on('disableitem', function() {\n self.disable();\n })\n\n .after('renderitem', function(){\n //start timers\n self.enable();\n })\n\n .on('disconnect', function() {\n //pause the timers when the connection is lost\n if (self.getState('enabled')) {\n self.disable();\n }\n })\n\n .before('move', function(e, type, scope, position){\n var done = e.done();\n\n var doMove = function doMove(){\n removeTimer(timerTypes.item);\n done();\n };\n\n var cancelMove = function cancelMove() {\n testRunner.trigger('enableitem enablenav');\n e.prevent();\n };\n\n //pause the timers\n if (self.getState('enabled')) {\n self.disable();\n }\n\n //display a mesage if we exit a timed section\n if(leaveTimedSection(type, scope, position)){\n testRunner.trigger('confirm', messages.getExitMessage(exitMessage, 'section', testRunner), doMove, cancelMove);\n } else {\n doMove();\n }\n })\n\n .before('finish', function(e){\n var done = e.done();\n\n //clean up the storage at the end\n self.storage.clear()\n .then(done)\n .catch(done);\n });\n });\n },\n\n /**\n * Called during the runner's render phase\n */\n render: function render() {\n var $container = this.getAreaBroker().getControlArea();\n $container.append(this.$element);\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy (){\n this.polling.stop();\n this.stopwatch.stop();\n this.$element.remove();\n },\n\n /**\n * Enables the timers\n */\n enable : function enable (){\n this.polling.start();\n this.stopwatch.resume();\n },\n\n /**\n * Disables the timers\n */\n disable : function disable (){\n this.polling.stop();\n this.stopwatch.pause();\n },\n\n /**\n * Shows the timers\n */\n show: function show(){\n hider.show(this.$element);\n },\n\n /**\n * Hides the timers\n */\n hide: function hide(){\n hider.hide(this.$element);\n }\n });\n});\n\n","\ndefine('tpl!taoQtiTest/runner/plugins/controls/progressbar/progressbar', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n \n\n\n return \"<div class=\\\"progress-box\\\">\\n <div data-control=\\\"progress-bar\\\" class=\\\"qti-controls progressbar info\\\"></div>\\n <div data-control=\\\"progress-label\\\" class=\\\"qti-controls\\\"></div>\\n</div>\\n\";\n });\n});\n\n","/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n * @requires jquery\n * @requires lodash\n * @requires core/pluginifier\n */\ndefine('ui/progressbar',['jquery', 'lodash', 'core/pluginifier'],\nfunction($, _, Pluginifier){\n 'use strict';\n\n var ns = 'progressbar';\n var dataNs = 'ui.' + ns;\n\n\n var defaults = {\n disableClass : 'disabled',\n style : 'info',\n value : 0,\n showProgress: false\n };\n\n /**\n * The Progressbar component.\n * @exports ui/progressbar\n */\n var progressBar = {\n\n /**\n * Initialize the plugin.\n *\n * Called the jQuery way once registered by the Pluginifier.\n * @example $('selector').progressbar({ value : 15 });\n *\n * @constructor\n * @param {Object} [options] - the plugin options\n * @param {Number} [options.value] - the progress value in %\n * @param {String} [options.style = 'info'] - the progress bar style in info, success, warning, error\n *\n * @fires progressBar#create.progressbar\n * @returns {jQueryElement} for chaining\n */\n init : function(options){\n options = _.defaults(options || {}, defaults);\n\n return this.each(function() {\n var $elt = $(this);\n var $pgElt, percent;\n\n if(!$elt.data(dataNs)){\n\n options.value = parseInt(options.value, 10);\n\n //add data to the element\n $elt.data(dataNs, options);\n\n percent = options.value + '%';\n\n $pgElt = $('<span></span>')\n .width(percent)\n .attr('title', percent);\n\n\n if(options.showProgress){\n $pgElt.text(percent);\n }\n\n $elt.addClass('progressbar')\n .addClass(options.style)\n .empty()\n .append($pgElt);\n\n /**\n * The plugin have been created.\n * @event progressBar#create.progressbar\n */\n $elt.trigger('create.' + ns);\n }\n });\n },\n\n /**\n * Trigger the progress value\n *\n * Called the jQuery way once registered by the Pluginifier.\n *\n * @example $('selector').progressbar('update', 50);\n *\n * @param {jQueryElement} $elt - plugin's element\n * @param {Number} value - the new value\n *\n * @fires progressBar#update.progressbar\n */\n _update : function($elt, value){\n var options = $elt.data(dataNs);\n var $pgElt, percent;\n\n value = parseInt(value, 10);\n if(value >= 0 && value <= 100){\n percent = value + '%';\n $pgElt = $elt.children('span');\n\n $pgElt.width( value + '%')\n .attr('title', percent);\n\n if(options.showProgress){\n $pgElt.text(percent);\n }\n\n options.value = value;\n $elt.data(dataNs, options);\n\n /**\n * The progress value has been updated\n * @event progressBar#create.progressbar\n */\n $elt.trigger('update.' + ns, value);\n }\n },\n\n /**\n * Get/Set the value\n *\n * Called the jQuery way once registered by the Pluginifier.\n *\n * @example var value = $('selector').progressbar('value');\n *\n * @param {jQueryElement} $elt - plugin's element\n * @param {Number} [value] - the new value in setter mode only\n * @returns {Number} the value in getter mode\n */\n _value : function($elt, value){\n var options = $elt.data(dataNs);\n if(typeof value !== 'undefined'){\n return progressBar._update($elt, value);\n }\n\n return options.value;\n },\n\n /**\n * Destroy completely the plugin.\n *\n * Called the jQuery way once registered by the Pluginifier.\n * @example $('selector').progressbar('destroy');\n *\n * @fires progressBar#destroy.progressbar\n */\n destroy : function(){\n return this.each(function() {\n var $elt = $(this);\n var options = $elt.data(dataNs);\n if(options){\n\n $elt.removeClass('progressbar')\n .empty()\n .removeData(dataNs);\n\n /**\n * The plugin have been destroyed.\n * @event progressBar#destroy.progressbar\n */\n $elt.trigger('destroy.' + ns);\n }\n });\n }\n };\n\n //Register the toggler to behave as a jQuery plugin.\n Pluginifier.register(ns, progressBar, {\n expose : ['update', 'value']\n });\n});\n\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Control Plugin : Progress Bar\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/controls/progressbar/progressbar',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'taoTests/runner/plugin',\n 'tpl!taoQtiTest/runner/plugins/controls/progressbar/progressbar',\n 'ui/progressbar'\n], function ($, _, __, pluginFactory, progressTpl){\n 'use strict';\n\n /**\n * Calculate progression based on the current context\n *\n * @param {Object} testContext - The current test context\n * @param {Object} testMap - The items organization map\n * @param {String} progressIndicator - to select the progression type\n * @param {String} [progressScope] - the progression scope\n * @returns {Object} the progression with a label and a ratio\n */\n var progressUpdater = function progressUpdater(testContext, testMap, progressIndicator, progressScope){\n\n /**\n * Provide progression calculation based on the type of indicator\n */\n var updater = {\n\n /**\n * Updates the progress bar displaying the percentage\n * @param {Object} testContext The progression context\n * @returns {{ratio: number, label: string}}\n */\n percentage : function percentage() {\n var total = Math.max(1, testContext.numberItems);\n var ratio = Math.floor(testContext.numberCompleted / total * 100);\n return {\n ratio : ratio,\n label : ratio + '%'\n };\n },\n\n /**\n * Updates the progress bar displaying the position\n * @param {Object} testContext The progression context\n * @returns {{ratio: number, label: string}}\n */\n position : function position() {\n\n //get the current test part in the map\n var getTestPart = function getTestPart(){\n if(testMap && testMap.parts){\n return testMap.parts[testContext.testPartId];\n }\n };\n\n //get the current test section in the map\n var getTestSection = function getTestSection(){\n var testPart = getTestPart();\n if(testPart && testPart.sections){\n return testPart.sections[testContext.sectionId];\n }\n };\n\n //provides you the methods to get total and position by scope\n var progressScopeCounter = {\n test : {\n total : function(){\n return Math.max(1, testContext.numberItems);\n },\n position : function(){\n return testContext.itemPosition + 1;\n }\n },\n testPart : {\n total : function(){\n var testPart = getTestPart();\n if(testPart){\n return _.reduce(testMap.parts[testContext.testPartId].sections, function(acc, section){\n return acc + _.size(section.items);\n }, 0);\n }\n return 0;\n },\n position : function(){\n var testSection = getTestSection();\n if(testSection){\n return testSection.items[testContext.itemIdentifier].positionInPart + 1;\n }\n return 0;\n }\n },\n testSection : {\n total : function(){\n var testSection = getTestSection();\n if(testSection){\n return _.size(testSection.items);\n }\n return 0;\n },\n position : function(){\n var testSection = getTestSection();\n if(testSection){\n return testSection.items[testContext.itemIdentifier].positionInSection + 1;\n }\n return 0;\n }\n }\n };\n\n var counter = progressScopeCounter[progressScope] || progressScopeCounter.test;\n var total = counter.total();\n var currentPosition = counter.position();\n\n return {\n ratio : total > 0 ? Math.floor(currentPosition / total * 100) : 0,\n label : __('Item %d of %d', currentPosition, total)\n };\n }\n };\n return updater[progressIndicator]();\n };\n\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n\n name : 'progressBar',\n\n /**\n * Initialize the plugin (called during runner's init)\n */\n init : function init(){\n var $progressLabel,\n $progressControl;\n var testRunner = this.getTestRunner();\n var testData = testRunner.getTestData();\n var config = testData.config.progressIndicator || {};\n var progressIndicator = config.type || 'percentage';\n var progressScope = config.scope || 'test';\n\n /**\n * Updae the progress bar\n */\n var update = function update (){\n var progressData = progressUpdater(testRunner.getTestContext(), testRunner.getTestMap(), progressIndicator, progressScope);\n if(progressData && $progressLabel && $progressControl){\n $progressLabel.text(progressData.label);\n $progressControl.progressbar('value', progressData.ratio);\n }\n };\n\n //create the progressbar\n this.$element = $(progressTpl());\n\n //store the controls\n $progressLabel = $('[data-control=\"progress-label\"]', this.$element);\n $progressControl = $('[data-control=\"progress-bar\"]', this.$element);\n\n //and initialize the progress bar component\n $progressControl.progressbar();\n\n //let update the progression\n update();\n\n testRunner\n .on('ready', update)\n .on('loaditem', update);\n },\n\n /**\n * Called during the runner's render phase\n */\n render : function render(){\n var $container = this.getAreaBroker().getControlArea();\n $container.append(this.$element);\n }\n });\n});\n\n","\ndefine('tpl!ui/component/tpl/component', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n \n\n\n return \"<div class=\\\"component\\\"></div>\";\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('ui/component',[\n 'jquery',\n 'lodash',\n 'core/eventifier',\n 'tpl!ui/component/tpl/component'\n], function ($, _, eventifier, defaultTpl) {\n 'use strict';\n\n var _slice = [].slice;\n\n /**\n * Builds a component from a base skeleton\n * @param {Object} [specs] - Some extra methods to assign to the component instance\n * @param {Object} [defaults] - Some default config entries\n * @returns {component}\n */\n var component = function component(specs, defaults) {\n\n // the template is a private property\n var componentTpl = defaultTpl;\n\n //contains the states of the components\n var componentState = {};\n\n //where the component is added\n var $container;\n\n // base skeleton\n var componentApi = {\n /**\n * Initializes the component\n * @param {Object} config\n * @param {jQuery|HTMLElement|String} [config.renderTo] - An optional container in which renders the component\n * @param {Boolean} [config.replace] - When the component is appended to its container, clears the place before\n * @returns {component}\n * @fires component#init\n */\n init : function init(config) {\n var self = this;\n\n this.config = _(config || {})\n .omit(function(value){\n return value === null || value === undefined;\n })\n .defaults(defaults || {})\n .value();\n \n componentState = {};\n\n /**\n * Executes extra init tasks\n * @event component#init\n */\n this.trigger('init');\n\n if (this.config.renderTo) {\n $container = $(this.config.renderTo);\n this.render();\n }\n\n return this;\n },\n\n /**\n * Uninstalls the component\n * @returns {component}\n * @fires component#destroy\n */\n destroy : function destroy() {\n /**\n * Executes extra destroy tasks\n * @event component#destroy\n */\n this.trigger('destroy');\n\n if (this.$component) {\n this.$component.remove();\n }\n\n this.$component = null;\n componentState = {};\n\n return this;\n },\n\n /**\n * Renders the component\n * @param {jQuery|HTMLElement|String} [container] - where the component is rendered\n * @returns {component}\n * @fires component#render\n */\n render : function render(container) {\n if(container){\n $container = $(container);\n }\n this.$component = $(componentTpl(this.config));\n\n if ($container) {\n if (this.config.replace) {\n $container.empty();\n }\n $container.append(this.$component);\n }\n\n this.setState('rendered', true);\n\n /**\n * Executes extra render tasks\n * @event component#render\n * @param {jQuery} $component\n */\n this.trigger('render', this.$component);\n\n return this;\n },\n\n /**\n * Shows the component\n * @returns {component}\n * @fires component#show\n */\n show : function show() {\n /**\n * Executes extra tasks on show\n * @event component#show\n * @param {component} component\n */\n this.trigger('show', this);\n\n return this.setState('hidden', false);\n },\n\n /**\n * Hides the component\n * @returns {component}\n * @fires component#hide\n */\n hide : function hide() {\n /**\n * Executes extra tasks on hide\n * @event component#hide\n * @param {component} component\n */\n this.trigger('hide', this);\n\n return this.setState('hidden', true);\n },\n\n /**\n * Enables the component\n * @returns {component}\n * @fires component#enable\n */\n enable : function enable() {\n /**\n * Executes extra tasks on enable\n * @event component#enable\n * @param {component} component\n */\n this.trigger('enable', this);\n\n return this.setState('disabled', false);\n },\n\n /**\n * Disables the component\n * @returns {component}\n * @fires component#disable\n */\n disable : function disable() {\n /**\n * Executes extra tasks on disable\n * @event component#disable\n * @param {component} component\n */\n this.trigger('disable', this);\n\n return this.setState('disabled', true);\n },\n\n /**\n * Checks if the component has a particular state\n * @param {String} state\n * @returns {Boolean}\n */\n is : function is(state) {\n return !!componentState[state];\n },\n\n /**\n * Sets the component to a particular state\n * @param {String} state\n * @param {Boolean} flag\n * @returns {component}\n * @fires component#state\n */\n setState : function setState(state, flag) {\n flag = !!flag;\n componentState[state] = flag;\n\n if (this.$component) {\n this.$component.toggleClass(state, flag);\n }\n\n /**\n * Executes extra tasks on state change\n * @event component#state\n * @param {String} state\n * @param {Boolean} flag\n * @param {component} component\n */\n this.trigger('state', state, flag, this);\n\n return this;\n },\n\n /**\n * Gets the underlying DOM element\n * @returns {jQuery}\n */\n getContainer : function getContainer() {\n return $container;\n },\n\n\n /**\n * Gets the underlying DOM element\n * @returns {jQuery}\n */\n getElement : function getElement() {\n return this.$component;\n },\n\n /**\n * Gets the template used to render this component\n * @returns {Function}\n */\n getTemplate : function getTemplate() {\n return componentTpl;\n },\n\n /**\n * Sets the template used to render this component\n * @param {Function} template\n * @returns {componentApi}\n * @fires component#template\n */\n setTemplate : function setTemplate(template) {\n var tpl = template || defaultTpl;\n componentTpl = tpl;\n\n // ensure the template is defined as a function\n if (!_.isFunction(componentTpl)) {\n componentTpl = function() {\n return tpl;\n };\n }\n\n /**\n * Executes extra tasks on template change\n * @event component#template\n * @param {function} componentTpl\n */\n this.trigger('template', componentTpl);\n\n return this;\n }\n };\n\n // let's extend the instance with extra methods\n if (specs) {\n _(specs).functions().forEach(function(method){\n componentApi[method] = function delegate(){\n return specs[method].apply(componentApi, _slice.call(arguments));\n };\n });\n }\n\n return eventifier(componentApi);\n };\n\n return component;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('ui/autoscroll',[\n 'jquery',\n 'core/promise'\n], function ($, Promise) {\n 'use strict';\n\n /**\n * Keep a component element visible inside a container.\n * If the element is outside the container viewport, scroll to display it.\n * @param {String|jQuery|HTMLElement} element\n * @param {String|jQuery|HTMLElement} container\n * @returns {Promise} Returns a Promise that will always be resolved when the scroll is done\n */\n function autoscroll(element, container) {\n return new Promise(function(resolve) {\n var $element = $(element);\n var $container = $(container || $element.parent());\n var currentScrollTop, minScrollTop, maxScrollTop, scrollTop;\n\n if ($element.length && $container.length) {\n currentScrollTop = $container.scrollTop();\n maxScrollTop = $element.offset().top - $container.offset().top + currentScrollTop;\n minScrollTop = maxScrollTop - $container.height() + $element.outerHeight();\n\n scrollTop = Math.max(Math.min(maxScrollTop, currentScrollTop), minScrollTop);\n if (scrollTop !== currentScrollTop) {\n $container.animate({scrollTop:scrollTop}).promise().done(resolve);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n\n return autoscroll;\n});\n\n","\ndefine('tpl!taoQtiTest/runner/plugins/controls/review/navigator', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, self=this, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;\n\nfunction program1(depth0,data) {\n \n \n return \" hidden\";\n }\n\n buffer += \"<div class=\\\"qti-panel qti-navigator\";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.hidden), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\">\\n <div class=\\\"qti-navigator-collapsible\\\">\\n <span class=\\\"qti-navigator-collapse icon icon-left\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Collapse the review panel\", options) : helperMissing.call(depth0, \"__\", \"Collapse the review panel\", options)))\n + \"\\\"></span>\\n <span class=\\\"qti-navigator-expand icon icon-right\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Expand the review panel\", options) : helperMissing.call(depth0, \"__\", \"Expand the review panel\", options)))\n + \"\\\"></span>\\n </div>\\n\\n <div class=\\\"qti-navigator-info collapsible\\\">\\n <span class=\\\"qti-navigator-label\\\">\\n <span class=\\\"qti-navigator-text\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Test status\", options) : helperMissing.call(depth0, \"__\", \"Test status\", options)))\n + \"</span>\\n <span class=\\\"icon-up\\\"></span>\\n <span class=\\\"icon-down\\\"></span>\\n </span>\\n <ul class=\\\"collapsible-panel plain\\\">\\n <li class=\\\"qti-navigator-viewed\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Viewed items\", options) : helperMissing.call(depth0, \"__\", \"Viewed items\", options)))\n + \"\\\">\\n <span class=\\\"qti-navigator-label\\\">\\n <span class=\\\"qti-navigator-icon icon-viewed\\\"></span>\\n <span class=\\\"qti-navigator-text\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Viewed\", options) : helperMissing.call(depth0, \"__\", \"Viewed\", options)))\n + \"</span>\\n <span class=\\\"qti-navigator-counter\\\">-/-</span>\\n </span>\\n </li>\\n <li class=\\\"qti-navigator-answered\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Completed items\", options) : helperMissing.call(depth0, \"__\", \"Completed items\", options)))\n + \"\\\">\\n <span class=\\\"qti-navigator-label\\\">\\n <span class=\\\"qti-navigator-icon icon-answered\\\"></span>\\n <span class=\\\"qti-navigator-text\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Answered\", options) : helperMissing.call(depth0, \"__\", \"Answered\", options)))\n + \"</span>\\n <span class=\\\"qti-navigator-counter\\\">-/-</span>\\n </span>\\n </li>\\n <li class=\\\"qti-navigator-unanswered\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Unanswered items\", options) : helperMissing.call(depth0, \"__\", \"Unanswered items\", options)))\n + \"\\\">\\n <span class=\\\"qti-navigator-label\\\">\\n <span class=\\\"qti-navigator-icon icon-unanswered\\\"></span>\\n <span class=\\\"qti-navigator-text\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Unanswered\", options) : helperMissing.call(depth0, \"__\", \"Unanswered\", options)))\n + \"</span>\\n <span class=\\\"qti-navigator-counter\\\">-/-</span>\\n </span>\\n </li>\\n <li class=\\\"qti-navigator-flagged\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Items marked for later review\", options) : helperMissing.call(depth0, \"__\", \"Items marked for later review\", options)))\n + \"\\\">\\n <span class=\\\"qti-navigator-label\\\">\\n <span class=\\\"qti-navigator-icon icon-flagged\\\"></span>\\n <span class=\\\"qti-navigator-text\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Flagged\", options) : helperMissing.call(depth0, \"__\", \"Flagged\", options)))\n + \"</span>\\n <span class=\\\"qti-navigator-counter\\\">-/-</span>\\n </span>\\n </li>\\n </ul>\\n </div>\\n\\n <div class=\\\"qti-navigator-filters\\\">\\n <ul class=\\\"plain clearfix\\\">\\n <li class=\\\"qti-navigator-filter active\\\" data-mode=\\\"all\\\">\\n <span title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Reset filters\", options) : helperMissing.call(depth0, \"__\", \"Reset filters\", options)))\n + \"\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"All\", options) : helperMissing.call(depth0, \"__\", \"All\", options)))\n + \"</span>\\n </li>\\n <li class=\\\"qti-navigator-filter\\\" data-mode=\\\"unanswered\\\">\\n <span class=\\\"icon-unanswered\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Only display the unanswered items\", options) : helperMissing.call(depth0, \"__\", \"Only display the unanswered items\", options)))\n + \"\\\"></span>\\n </li>\\n <li class=\\\"qti-navigator-filter\\\" data-mode=\\\"flagged\\\">\\n <span class=\\\"icon-flagged\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Only display the items marked for review\", options) : helperMissing.call(depth0, \"__\", \"Only display the items marked for review\", options)))\n + \"\\\"></span>\\n </li>\\n </ul>\\n </div>\\n\\n <nav class=\\\"qti-navigator-tree\\\"></nav>\\n\\n <div id=\\\"qti-navigator-linear\\\" class=\\\"qti-navigator-linear\\\">\\n <span class=\\\"icon icon-info\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"In this part of the test navigation is not allowed.\", options) : helperMissing.call(depth0, \"__\", \"In this part of the test navigation is not allowed.\", options)))\n + \"\\\"></span>\\n <p class=\\\"qti-navigator-message\\\">\\n \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"In this part of the test navigation is not allowed.\", options) : helperMissing.call(depth0, \"__\", \"In this part of the test navigation is not allowed.\", options)))\n + \"\\n </p>\\n </div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","\ndefine('tpl!taoQtiTest/runner/plugins/controls/review/navigatorTree', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, functionType=\"function\", self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n <li class=\\\"qti-navigator-part collapsible \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.active), {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-id=\\\"\";\n if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <span class=\\\"qti-navigator-label\\\" title=\\\"\";\n if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <span class=\\\"qti-navigator-text\\\">\";\n if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</span>\\n <span class=\\\"icon-up\\\"></span>\\n <span class=\\\"icon-down\\\"></span>\\n </span>\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.isLinear), {hash:{},inverse:self.program(8, program8, data),fn:self.program(6, program6, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </li>\\n \";\n return buffer;\n }\nfunction program2(depth0,data) {\n \n \n return \"active\";\n }\n\nfunction program4(depth0,data) {\n \n \n return \"collapsed\";\n }\n\nfunction program6(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n <div class=\\\"qti-navigator-linear-part collapsible-panel\\\">\\n <span class=\\\"icon icon-info\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"In this part of the test navigation is not allowed.\", options) : helperMissing.call(depth0, \"__\", \"In this part of the test navigation is not allowed.\", options)))\n + \"\\\"></span>\\n <p class=\\\"qti-navigator-message\\\">\\n \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"In this part of the test navigation is not allowed.\", options) : helperMissing.call(depth0, \"__\", \"In this part of the test navigation is not allowed.\", options)))\n + \"\\n </p>\\n <p class=\\\"qti-navigator-actions\\\">\\n <button class=\\\"btn-info small\\\" data-position=\\\"\";\n if (helper = helpers.position) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.position); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Start Test-part\", options) : helperMissing.call(depth0, \"__\", \"Start Test-part\", options)))\n + \"\\\">\\n <span class=\\\"qti-navigator-text\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Start Test-part\", options) : helperMissing.call(depth0, \"__\", \"Start Test-part\", options)))\n + \"</span>\\n <span class=\\\"icon-play r\\\"></span>\\n </button>\\n </p>\\n </div>\\n \";\n return buffer;\n }\n\nfunction program8(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n <ul class=\\\"qti-navigator-sections collapsible-panel plain\\\">\\n \";\n stack1 = helpers.each.call(depth0, (depth0 && depth0.sections), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </ul>\\n \";\n return buffer;\n }\nfunction program9(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n <li class=\\\"qti-navigator-section collapsible \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.active), {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-id=\\\"\";\n if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <span class=\\\"qti-navigator-label\\\" title=\\\"\";\n if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <span class=\\\"qti-navigator-text\\\">\";\n if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</span>\\n <span class=\\\"qti-navigator-counter\\\">\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.stats)),stack1 == null || stack1 === false ? stack1 : stack1.answered)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"/\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.stats)),stack1 == null || stack1 === false ? stack1 : stack1.total)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"</span>\\n </span>\\n <ul class=\\\"qti-navigator-items collapsible-panel plain\\\">\\n \";\n stack1 = helpers.each.call(depth0, (depth0 && depth0.items), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </ul>\\n </li>\\n \";\n return buffer;\n }\nfunction program10(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n <li class=\\\"qti-navigator-item\";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.active), {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.flagged), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.answered), {hash:{},inverse:self.noop,fn:self.program(15, program15, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.viewed), {hash:{},inverse:self.program(19, program19, data),fn:self.program(17, program17, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-id=\\\"\";\n if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-position=\\\"\";\n if (helper = helpers.position) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.position); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <span class=\\\"qti-navigator-label truncate\\\" title=\\\"\";\n if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <span class=\\\"qti-navigator-icon icon-\";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.flagged), {hash:{},inverse:self.program(23, program23, data),fn:self.program(21, program21, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\"></span>\\n <span class=\\\"qti-navigator-number\\\">\";\n if (helper = helpers.index) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.index); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</span>\\n \";\n if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\n </span>\\n </li>\\n \";\n return buffer;\n }\nfunction program11(depth0,data) {\n \n \n return \" active\";\n }\n\nfunction program13(depth0,data) {\n \n \n return \" flagged\";\n }\n\nfunction program15(depth0,data) {\n \n \n return \" answered\";\n }\n\nfunction program17(depth0,data) {\n \n \n return \" viewed\";\n }\n\nfunction program19(depth0,data) {\n \n \n return \" unseen\";\n }\n\nfunction program21(depth0,data) {\n \n \n return \"flagged\";\n }\n\nfunction program23(depth0,data) {\n \n var stack1;\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.answered), {hash:{},inverse:self.program(26, program26, data),fn:self.program(24, program24, data),data:data});\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\nfunction program24(depth0,data) {\n \n \n return \"answered\";\n }\n\nfunction program26(depth0,data) {\n \n var stack1;\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.viewed), {hash:{},inverse:self.program(29, program29, data),fn:self.program(27, program27, data),data:data});\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\nfunction program27(depth0,data) {\n \n \n return \"viewed\";\n }\n\nfunction program29(depth0,data) {\n \n \n return \"unseen\";\n }\n\n buffer += \"<ul class=\\\"qti-navigator-parts plain\\\">\\n \";\n stack1 = helpers.each.call(depth0, (depth0 && depth0.parts), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n</ul>\\n\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/plugins/controls/review/navigator',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'ui/component',\n 'ui/autoscroll',\n 'taoQtiTest/runner/helpers/map',\n 'tpl!taoQtiTest/runner/plugins/controls/review/navigator',\n 'tpl!taoQtiTest/runner/plugins/controls/review/navigatorTree'\n], function ($, _, __, component, autoscroll, mapHelper, navigatorTpl, navigatorTreeTpl) {\n 'use strict';\n\n /**\n * Some default values\n * @type {Object}\n * @private\n */\n var _defaults = {\n scope: 'test',\n canCollapse: false,\n preventsUnseen: true,\n hidden: false\n };\n\n /**\n * List of CSS classes\n * @type {Object}\n * @private\n */\n var _cssCls = {\n active: 'active',\n collapsed: 'collapsed',\n collapsible: 'collapsible',\n hidden: 'hidden',\n disabled: 'disabled',\n flagged: 'flagged',\n answered: 'answered',\n viewed: 'viewed',\n unseen: 'unseen',\n icon: 'qti-navigator-icon',\n scope: {\n test: 'scope-test',\n testPart: 'scope-test-part',\n testSection: 'scope-test-section'\n }\n };\n\n /**\n * List of icon CSS classes\n * @type {Array}\n * @private\n */\n var _iconCls = [\n _cssCls.flagged,\n _cssCls.answered,\n _cssCls.viewed\n ];\n\n /**\n * List of common CSS selectors\n * @type {Object}\n * @private\n */\n var _selectors = {\n component: '.qti-navigator',\n filterBar: '.qti-navigator-filters',\n tree: '.qti-navigator-tree',\n collapseHandle: '.qti-navigator-collapsible',\n linearState: '.qti-navigator-linear',\n infoAnswered: '.qti-navigator-answered .qti-navigator-counter',\n infoViewed: '.qti-navigator-viewed .qti-navigator-counter',\n infoUnanswered: '.qti-navigator-unanswered .qti-navigator-counter',\n infoFlagged: '.qti-navigator-flagged .qti-navigator-counter',\n infoPanel: '.qti-navigator-info',\n infoPanelLabels: '.qti-navigator-info > .qti-navigator-label',\n parts: '.qti-navigator-part',\n partLabels: '.qti-navigator-part > .qti-navigator-label',\n sections: '.qti-navigator-section',\n sectionLabels: '.qti-navigator-section > .qti-navigator-label',\n items: '.qti-navigator-item',\n itemLabels: '.qti-navigator-item > .qti-navigator-label',\n itemIcons: '.qti-navigator-item > .qti-navigator-icon',\n activeItem: '.qti-navigator-item.active',\n icons: '.qti-navigator-icon',\n linearStart: '.qti-navigator-linear-part button',\n counters: '.qti-navigator-counter',\n actives: '.active',\n collapsible: '.collapsible',\n collapsiblePanels: '.collapsible-panel',\n unseen: '.unseen',\n answered: '.answered',\n flagged: '.flagged',\n notFlagged: ':not(.flagged)',\n notAnswered: ':not(.answered)',\n hidden: '.hidden'\n };\n\n /**\n * Maps the filter mode to filter criteria.\n * Each filter criteria is a CSS selector used to find and mask the items to be discarded by the filter.\n * @type {Object}\n * @private\n */\n var _filterMap = {\n all: \"\",\n unanswered: _selectors.answered,\n flagged: _selectors.notFlagged,\n answered: _selectors.notAnswered,\n filtered: _selectors.hidden\n };\n\n /**\n *\n * @type {Object}\n */\n var navigatorApi = {\n /**\n * Updates the stats on the flagged items in the current map\n * @param {Number} position\n * @param {Boolean} flag\n */\n updateStats: function updateStats(position, flag) {\n var map = this.map;\n var item;\n\n if (map) {\n item = mapHelper.getItemAt(map, position);\n\n if (item) {\n item.flagged = flag;\n mapHelper.updateItemStats(map, position);\n }\n }\n },\n\n /**\n * Set the marked state of an item\n * @param {Number|String|jQuery} position\n * @param {Boolean} flag\n */\n setItemFlag: function setItemFlag(position, flag) {\n var $item = position && position.jquery ? position : this.controls.$tree.find('[data-position=' + position + ']');\n var progression = this.progression;\n var icon;\n\n // update the map stats\n this.updateStats(position, flag);\n\n // update the item flag\n $item.toggleClass(_cssCls.flagged, flag);\n\n // set the item icon according to its state\n icon = _.find(_iconCls, _.bind($item.hasClass, $item)) || _cssCls.unseen;\n $item.find(_selectors.icons).attr('class', _cssCls.icon + ' icon-' + icon);\n\n // update the info panel\n progression.flagged = this.controls.$tree.find(_selectors.flagged).length;\n this.writeCount(this.controls.$infoFlagged, progression.flagged, progression.total);\n\n // recompute the filters\n this.filter(this.currentFilter);\n },\n\n /**\n * Filters the items by a criteria\n * @param {String} criteria\n */\n filter: function filter(criteria) {\n var self = this;\n\n // remove the current filter by restoring all items\n var $items = this.controls.$tree.find(_selectors.items).removeClass(_cssCls.hidden);\n\n // filter the items according to the provided criteria\n var filter = _filterMap[criteria];\n var filtered = _filterMap[filter ? 'filtered' : 'answered'];\n if (filter) {\n $items.filter(filter).addClass(_cssCls.hidden);\n }\n\n // update the section counters\n this.controls.$tree.find(_selectors.sections).each(function () {\n var $section = $(this);\n var $items = $section.find(_selectors.items);\n var $filtered = $items.filter(filtered);\n var total = $items.length;\n var nb = total - $filtered.length;\n self.writeCount($section.find(_selectors.counters), nb, total);\n });\n this.currentFilter = criteria;\n },\n\n /**\n * Update the config\n * @param {Object} [config]\n * @returns {navigatorApi}\n */\n updateConfig: function updateConfig(config) {\n var $component = this.getElement();\n var scopeClass = _cssCls.scope[this.config.scope || _defaults.scope];\n\n // apply the new config\n config = _.merge(this.config, config || {});\n\n // enable/disable the collapsing of the panel\n $component.toggleClass(_cssCls.collapsible, config.canCollapse);\n\n // update the component CSS class according to the scope\n $component.removeClass(scopeClass);\n scopeClass = _cssCls.scope[this.config.scope || _defaults.scope];\n $component.addClass(scopeClass);\n\n // update component visibility\n if (config.hidden) {\n this.hide();\n } else {\n this.show();\n }\n\n return this;\n },\n\n /**\n * Keep the active item visible, auto scroll if needed\n */\n autoScroll: function autoScroll() {\n autoscroll(this.controls.$tree.find(_selectors.activeItem), this.controls.$tree);\n },\n\n /**\n * Updates the review screen\n * @param {Object} map The current test map\n * @param {Object} context The current test context\n * @returns {navigatorApi}\n */\n update: function update(map, context) {\n var scopedMap = this.getScopedMap(map, context);\n var progression = scopedMap.stats || {\n answered: 0,\n flagged: 0,\n viewed: 0,\n total: 0\n };\n\n this.map = map;\n this.progression = progression;\n\n // update the info panel\n this.writeCount(this.controls.$infoAnswered, progression.answered, progression.total);\n this.writeCount(this.controls.$infoUnanswered, progression.total - progression.answered, progression.total);\n this.writeCount(this.controls.$infoViewed, progression.viewed, progression.total);\n this.writeCount(this.controls.$infoFlagged, progression.flagged, progression.total);\n\n // rebuild the tree\n if (!context.isLinear) {\n this.controls.$filterBar.show();\n this.controls.$linearState.hide();\n this.controls.$tree.html(navigatorTreeTpl(scopedMap));\n\n this.autoScroll();\n\n this.setState('prevents-unseen', this.config.preventsUnseen);\n if (this.config.preventsUnseen) {\n // disables all unseen items to prevent the test taker has access to.\n this.controls.$tree.find(_selectors.unseen).addClass(_cssCls.disabled);\n }\n } else {\n this.controls.$filterBar.hide();\n this.controls.$linearState.show();\n this.controls.$tree.empty();\n }\n\n // apply again the current filter\n this.filter(this.controls.$filters.filter(_selectors.actives).data('mode'));\n\n return this;\n },\n\n /**\n * Gets the scoped map\n * @param {Object} map The current test map\n * @param {Object} context The current test context\n * @returns {object} The scoped map\n */\n getScopedMap: function getScopedMap(map, context) {\n // need a clone of the map as we will change some properties\n var scopedMap = _.cloneDeep(map || {});\n\n // gets the current part/section/item\n var testPart = scopedMap.parts[context.testPartId] || {};\n var section = testPart.sections && testPart.sections[context.sectionId] || {};\n var item = section.items && section.items[context.itemIdentifier] || {};\n\n // set the active part/section/item\n testPart.active = true;\n section.active = true;\n item.active = true;\n\n // select the scoped map fragment\n switch (this.config.scope) {\n case 'testSection':\n // build a scoped map containing only the current part, the current section and its items\n scopedMap = {\n parts: {},\n stats: section.stats\n };\n testPart.sections = {};\n testPart.sections[context.sectionId] = section;\n scopedMap.parts[context.testPartId] = testPart;\n break;\n\n case 'testPart':\n // build a scoped map containing only the current part and its sections\n scopedMap = {\n parts: {},\n stats: testPart.stats\n };\n scopedMap.parts[context.testPartId] = testPart;\n break;\n\n default:\n case 'test':\n // keep the whole map\n break;\n }\n\n return scopedMap;\n },\n\n /**\n * Updates a counter\n * @param {jQuery} $place\n * @param {Number} count\n * @param {Number} total\n * @private\n */\n writeCount: function writeCount($place, count, total) {\n $place.text(count + '/' + total);\n },\n\n /**\n * Selects an item\n * @param {String|jQuery} position The item's position\n * @param {Boolean} [open] Forces the tree to be opened on the selected item\n * @returns {jQuery} Returns the selected item\n */\n select: function select(position, open) {\n // find the item to select and extract its hierarchy\n var $tree = this.controls.$tree;\n var selected = position && position.jquery ? position : $tree.find('[data-position=' + position + ']');\n var hierarchy = selected.parentsUntil($tree);\n\n // collapse the full tree and open only the hierarchy of the selected item\n if (open) {\n this.openOnly(hierarchy);\n }\n\n // select the item\n $tree.find(_selectors.actives).removeClass(_cssCls.active);\n hierarchy.add(selected).addClass(_cssCls.active);\n return selected;\n },\n\n /**\n * Opens the tree on the selected item only\n * @returns {jQuery} Returns the selected item\n */\n openSelected: function openSelected() {\n // find the selected item and extract its hierarchy\n var $tree = this.controls.$tree;\n var selected = $tree.find(_selectors.items + _selectors.actives);\n var hierarchy = selected.parentsUntil($tree);\n\n // collapse the full tree and open only the hierarchy of the selected item\n this.openOnly(hierarchy);\n\n return selected;\n },\n\n /**\n * Collapses the full tree and opens only the provided branch\n * @param {jQuery} opened The element to be opened\n * @param {jQuery} [root] The root element from which collapse the panels\n */\n openOnly: function openOnly(opened, root) {\n (root || this.controls.$tree).find(_selectors.collapsible).addClass(_cssCls.collapsed);\n opened.removeClass(_cssCls.collapsed);\n },\n\n /**\n * Toggles a panel\n * @param {jQuery} panel The panel to toggle\n * @param {String} [collapseSelector] Selector of panels to collapse\n * @returns {Boolean} Returns `true` if the panel just expanded now\n */\n togglePanel: function togglePanel(panel, collapseSelector) {\n var collapsed = panel.hasClass(_cssCls.collapsed);\n\n if (collapseSelector) {\n this.controls.$tree.find(collapseSelector).addClass(_cssCls.collapsed);\n }\n\n if (collapsed) {\n panel.removeClass(_cssCls.collapsed);\n } else {\n panel.addClass(_cssCls.collapsed);\n }\n return collapsed;\n },\n\n /**\n * Toggles the display state of the component\n * @param {Boolean} [show] External condition that's tells if the component must be shown or hidden\n * @returns {navigatorApi}\n */\n toggle: function toggle(show) {\n if (undefined === show) {\n show = this.is('hidden');\n }\n\n if (show) {\n this.show();\n } else {\n this.hide();\n }\n\n return this;\n }\n };\n\n /**\n *\n * @param {Object} config\n * @param {String} [config.scope] Limit the review screen to a particular scope: test, testPart, testSection\n * @param {Boolean} [config.preventsUnseen] Prevents the test taker to access unseen items\n * @param {Boolean} [config.canCollapse] Allow the test taker to collapse the component\n * @param {Boolean} [config.canFlag] Allow the test taker to flag items\n * @param {Boolean} [config.hidden] Hide the component at init\n * @param {Object} map The current test map\n * @param {Object} context The current test context\n * @returns {*}\n */\n function navigatorFactory(config, map, context) {\n /**\n * Flags an item\n * @param {jQuery} $item\n */\n function flagItem($item) {\n var position = $item.data('position');\n var flagged = !$item.hasClass(_cssCls.flagged);\n\n // update the display\n navigator.setItemFlag(position, flagged);\n\n /**\n * An item is flagged\n * @event navigator#flag\n * @param {Number} position - The item position on which jump\n * @param {Boolean} flag - Tells whether the item is marked for review or not\n */\n navigator.trigger('flag', position, flagged);\n }\n\n /**\n * Jumps to an item\n * @param {jQuery} $item\n * @private\n */\n function jump($item) {\n var position = $item.data('position');\n\n /**\n * A jump to a particular item is required\n * @event navigator#jump\n * @param {Number} position - The item position on which jump\n */\n navigator.trigger('jump', position);\n }\n\n var navigator = component(navigatorApi, _defaults)\n .setTemplate(navigatorTpl)\n\n // post init\n .on('init', function () {\n if (!this.is('rendered')) {\n this.render();\n }\n\n this.update(map, context);\n })\n\n // uninstalls the component\n .on('destroy', function () {\n this.controls = null;\n })\n\n // keep the activ item visible\n .on('show', function () {\n this.autoScroll();\n })\n\n // renders the component\n .on('render', function () {\n var self = this;\n\n // main component elements\n var $component = this.getElement();\n var $filterBar = $component.find(_selectors.filterBar);\n var $filters = $filterBar.find('li');\n var $tree = $component.find(_selectors.tree);\n\n // links the component to the underlying DOM elements\n this.controls = {\n // access to info panel displaying counters\n $infoAnswered: $component.find(_selectors.infoAnswered),\n $infoViewed: $component.find(_selectors.infoViewed),\n $infoUnanswered: $component.find(_selectors.infoUnanswered),\n $infoFlagged: $component.find(_selectors.infoFlagged),\n\n // access to filter switches\n $filterBar: $filterBar,\n $filters: $filters,\n\n // access to the tree of parts/sections/items\n $tree: $tree,\n\n // access to the panel displayed when a linear part is reached\n $linearState: $component.find(_selectors.linearState)\n };\n\n // apply options\n this.updateConfig();\n\n // click on the collapse handle: collapse/expand the review panel\n $component.on('click' + _selectors.component, _selectors.collapseHandle, function () {\n if (!self.is('disabled')) {\n $component.toggleClass(_cssCls.collapsed);\n if ($component.hasClass(_cssCls.collapsed)) {\n self.openSelected();\n }\n }\n });\n\n // click on the info panel title: toggle the related panel\n $component.on('click' + _selectors.component, _selectors.infoPanelLabels, function () {\n if (!self.is('disabled')) {\n self.togglePanel($(this).closest(_selectors.infoPanel), _selectors.infoPanel);\n }\n });\n\n // click on a part title: toggle the related panel\n $tree.on('click' + _selectors.component, _selectors.partLabels, function () {\n var $panel;\n\n if (!self.is('disabled')) {\n $panel = $(this).closest(_selectors.parts);\n\n if (self.togglePanel($panel, _selectors.parts)) {\n if ($panel.hasClass(_cssCls.active)) {\n self.openSelected();\n } else {\n self.openOnly($panel.find(_selectors.sections).first(), $panel);\n }\n }\n }\n\n });\n\n // click on a section title: toggle the related panel\n $tree.on('click' + _selectors.component, _selectors.sectionLabels, function () {\n if (!self.is('disabled')) {\n self.togglePanel($(this).closest(_selectors.sections), _selectors.sections);\n }\n });\n\n // click on an item: jump to the position\n $tree.on('click' + _selectors.component, _selectors.itemLabels, function (event) {\n var $item, $target;\n\n if (!self.is('disabled')) {\n $item = $(this).closest(_selectors.items);\n\n if (!$item.hasClass(_cssCls.disabled)) {\n $target = $(event.target);\n if (self.config.canFlag && $target.is(_selectors.icons) && !$component.hasClass(_cssCls.collapsed)) {\n // click on the icon, just flag the item, unless the panel is collapsed\n if (!$item.hasClass(_cssCls.unseen)) {\n flagItem($item);\n }\n } else {\n // go to the selected item\n self.select($item);\n jump($item);\n }\n }\n }\n });\n\n // click on the start button inside a linear part: jump to the position\n $tree.on('click' + _selectors.component, _selectors.linearStart, function () {\n var $btn;\n\n if (!self.is('disabled')) {\n $btn = $(this);\n\n // go to the first item of the linear part\n if (!$btn.hasClass(_cssCls.disabled)) {\n $btn.addClass(_cssCls.disabled);\n jump($btn);\n }\n }\n\n });\n\n // click on a filter button\n $filterBar.on('click' + _selectors.component, 'li', function () {\n var $btn, mode;\n\n if (!self.is('disabled')) {\n $btn = $(this);\n mode = $btn.data('mode');\n\n // select the button\n $filters.removeClass(_cssCls.active);\n $component.removeClass(_cssCls.collapsed);\n $btn.addClass(_cssCls.active);\n\n // filter the items\n self.filter(mode);\n }\n });\n });\n\n // set default filter\n navigator.currentFilter = 'all';\n\n // the component will be ready\n return navigator.init(config);\n }\n\n return navigatorFactory;\n});\n\n","\ndefine('tpl!taoQtiTest/runner/plugins/navigation/button', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<li data-control=\\\"\";\n if (helper = helpers.control) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.control); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" class=\\\"small btn-info action\\\" title=\\\"\";\n if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <a class=\\\"li-inner\\\" href=\\\"#\\\">\\n <span class=\\\"icon icon-\";\n if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\"></span>\\n <span class=\\\"text\\\">\";\n if (helper = helpers.text) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.text); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</span>\\n </a>\\n</li>\\n\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Control Plugin : Review panel\n *\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/plugins/controls/review/review',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'ui/hider',\n 'taoTests/runner/plugin',\n 'taoQtiTest/runner/plugins/controls/review/navigator',\n 'tpl!taoQtiTest/runner/plugins/navigation/button'\n], function ($, _, __, hider, pluginFactory, navigator, buttonTpl) {\n 'use strict';\n\n /**\n * The display states of the buttons\n */\n var buttonData = {\n setFlag: {\n control: 'set-item-flag',\n title: __('Mark the current item for later review'),\n icon: 'anchor',\n text: __('Mark for review')\n },\n unsetFlag: {\n control: 'unset-item-flag',\n title: __('Do not mark the current item for later review'),\n icon: 'anchor',\n text: __('Unmark for review')\n },\n showReview: {\n control: 'show-review',\n title: __('Show the review screen'),\n icon: 'mobile-menu',\n text: __('Show review')\n },\n hideReview: {\n control: 'hide-review',\n title: __('Hide the review screen'),\n icon: 'mobile-menu',\n text: __('Hide review')\n }\n };\n\n /**\n * Gets the definition of the flagItem button related to the context\n * @param {Object} context - the test context\n * @returns {Object}\n */\n function getFlagItemButtonData(context) {\n var dataType = context.itemFlagged ? 'unsetFlag' : 'setFlag';\n return buttonData[dataType];\n }\n\n /**\n * Gets the definition of the toggleNavigator button related to the context\n * @param {Object} navigator - the navigator component\n * @returns {Object}\n */\n function getToggleButtonData(navigator) {\n var dataType = navigator.is('hidden') ? 'showReview' : 'hideReview';\n return buttonData[dataType];\n }\n\n /**\n * Create a button based on the provided data\n * @param {Object} data - the button data\n * @param {Function} action - action called when the button is clicked\n * @returns {jQuery} the button\n */\n function createButton(data, action) {\n return $(buttonTpl(data)).on('click', action);\n }\n\n /**\n * Update the button based on the provided data\n * @param {jQuery} $button - the element to update\n * @param {Object} data - the button data\n */\n function updateButton($button, data) {\n if ($button.data('control') !== data.control) {\n $button\n .data('control', data.control)\n .attr('title', data.title);\n\n $button.find('.icon').attr('icon ' + data.icon);\n $button.find('.text').text(data.text);\n }\n }\n\n /**\n * Creates the timer plugin\n */\n return pluginFactory({\n name: 'review',\n\n /**\n * Initializes the plugin (called during runner's init)\n */\n init: function init() {\n var self = this;\n var testRunner = this.getTestRunner();\n var testData = testRunner.getTestData();\n var context = testRunner.getTestContext();\n var map = testRunner.getTestMap();\n var navigatorConfig = testData.config.review || {};\n\n /**\n * Tells if the component is enabled\n * @returns {Boolean}\n */\n function isEnabled() {\n var context = testRunner.getTestContext();\n return navigatorConfig.enabled && context && context.options && context.options.reviewScreen;\n }\n\n /**\n * Mark an item for review\n * @param {Number} position\n * @param {Boolean} flag\n * @returns {Promise}\n */\n function flagItem(position, flag) {\n self.disable();\n\n return testRunner.getProxy()\n .callTestAction('flagItem', {\n position: position,\n flag: flag\n })\n .then(function () {\n var context = testRunner.getTestContext();\n\n // update the state in the context if the flagged item is the current one\n if (context.itemPosition === position) {\n context.itemFlagged = flag;\n }\n\n // update the display of the flag button\n updateButton(self.$flagItemButton, getFlagItemButtonData(context));\n\n // update the item state\n self.navigator.setItemFlag(position, flag);\n self.enable();\n })\n .catch(function () {\n // rollback on the item flag\n self.navigator.setItemFlag(position, !flag);\n self.enable();\n });\n }\n\n this.navigator = navigator(navigatorConfig, map, context)\n .on('jump', function (position) {\n if (self.getState('enabled') !== false) {\n self.disable();\n testRunner.jump(position, 'item');\n }\n })\n .on('flag', function (position, flag) {\n if (self.getState('enabled') !== false) {\n flagItem(position, flag);\n }\n });\n\n this.$flagItemButton = createButton(getFlagItemButtonData(context), function (e) {\n var context;\n e.preventDefault();\n if (self.getState('enabled') !== false) {\n context = testRunner.getTestContext();\n flagItem(context.itemPosition, !context.itemFlagged);\n }\n });\n\n this.$toggleButton = createButton(getToggleButtonData(this.navigator), function (e) {\n e.preventDefault();\n if (self.getState('enabled') !== false) {\n if (self.navigator.is('hidden')) {\n self.navigator.show();\n } else {\n self.navigator.hide();\n }\n\n updateButton(self.$toggleButton, getToggleButtonData(self.navigator));\n }\n });\n\n //disabled by default\n this.disable();\n\n if (!isEnabled()) {\n this.hide();\n }\n\n //change plugin state\n testRunner\n .on('loaditem', function () {\n var context = testRunner.getTestContext();\n var map = testRunner.getTestMap();\n\n if (isEnabled()) {\n updateButton(self.$flagItemButton, getFlagItemButtonData(context));\n self.navigator\n .update(map, context)\n .updateConfig({\n canFlag: !context.isLinear && context.options.markReview\n });\n self.show();\n updateButton(self.$toggleButton, getToggleButtonData(self.navigator));\n } else {\n self.hide();\n }\n })\n .on('enabletools', function () {\n if (isEnabled()) {\n self.enable();\n }\n })\n .on('disabletools', function () {\n if (isEnabled()) {\n self.disable();\n }\n });\n },\n\n /**\n * Called during the runner's render phase\n */\n render: function render() {\n var areaBroker = this.getAreaBroker();\n var $toolboxContainer = areaBroker.getToolboxArea();\n var $panelContainer = areaBroker.getPanelArea();\n\n $toolboxContainer.append(this.$toggleButton);\n $toolboxContainer.append(this.$flagItemButton);\n $panelContainer.append(this.navigator.getElement());\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy: function destroy() {\n this.$flagItemButton.remove();\n this.$toggleButton.remove();\n this.navigator.destroy();\n },\n\n /**\n * Enables the button\n */\n enable: function enable() {\n this.$flagItemButton.removeClass('disabled')\n .removeProp('disabled');\n this.$toggleButton.removeClass('disabled')\n\n .removeProp('disabled');\n this.navigator.enable();\n },\n\n /**\n * Disables the button\n */\n disable: function disable() {\n this.$flagItemButton.addClass('disabled')\n .prop('disabled', true);\n this.$toggleButton.addClass('disabled')\n .prop('disabled', true);\n this.navigator.disable();\n },\n\n /**\n * Shows the button\n */\n show: function show() {\n var testRunner = this.getTestRunner();\n var context = testRunner.getTestContext();\n if(!context.isLinear && context.options.markReview){\n hider.show(this.$flagItemButton);\n } else {\n hider.hide(this.$flagItemButton);\n }\n hider.show(this.$toggleButton);\n this.navigator.show();\n },\n\n /**\n * Hides the button\n */\n hide: function hide() {\n hider.hide(this.$flagItemButton);\n hider.hide(this.$toggleButton);\n this.navigator.hide();\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Navigation Plugin : Next\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/navigation/next',[\n 'jquery',\n 'i18n',\n 'ui/hider',\n 'taoTests/runner/plugin',\n 'tpl!taoQtiTest/runner/plugins/navigation/button'\n], function ($, __, hider, pluginFactory, buttonTpl){\n 'use strict';\n\n /**\n * The display of the next button\n */\n var buttonData = {\n next : {\n control : 'move-forward',\n title : __('Submit and go to the next item'),\n icon : 'forward',\n text : __('Next')\n },\n end : {\n control : 'move-end',\n title : __('Submit and go to the end of the test'),\n icon : 'fast-forward',\n text : __('End test')\n }\n };\n\n /**\n * Create the button based on the current context\n * @param {Object} context - the test context\n * @returns {jQueryElement} the button\n */\n var createElement = function createElement(context){\n var dataType = !!context.isLast ? 'end' : 'next';\n return $(buttonTpl(buttonData[dataType]));\n };\n\n /**\n * Update the button based on the context\n * @param {jQueryElement} $element - the element to update\n * @param {Object} context - the test context\n */\n var updateElement = function updateElement($element, context){\n var dataType = !!context.isLast ? 'end' : 'next';\n if($element.data('control') !== buttonData[dataType].control){\n\n $element.data('control', buttonData[dataType].control)\n .attr('title', buttonData[dataType].title)\n .find('.text').text(buttonData[dataType].text);\n\n if(dataType === 'next'){\n $element.find('.icon-' + buttonData.end.icon)\n .removeClass('icon-' + buttonData.end.icon)\n .addClass('icon-' + buttonData.next.icon);\n } else {\n $element.find('.icon-' + buttonData.next.icon)\n .removeClass('icon-' + buttonData.next.icon)\n .addClass('icon-' + buttonData.end.icon);\n }\n }\n };\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n name : 'next',\n\n /**\n * Initialize the plugin (called during runner's init)\n */\n init : function init(){\n var self = this;\n var testRunner = this.getTestRunner();\n\n //create the button (detached)\n this.$element = createElement(testRunner.getTestContext());\n\n //plugin behavior\n this.$element.on('click', function(e){\n e.preventDefault();\n\n if(self.getState('enabled') !== false){\n self.disable();\n if($(this).data('control') === 'move-end'){\n self.trigger('end');\n }\n testRunner.next();\n }\n });\n\n //disabled by default\n this.disable();\n\n //change plugin state\n testRunner\n .on('loaditem', function(){\n updateElement(self.$element, testRunner.getTestContext());\n })\n .on('enablenav', function(){\n self.enable();\n })\n .on('disablenav', function(){\n self.disable();\n });\n },\n\n /**\n * Called during the runner's render phase\n */\n render : function render(){\n\n //attach the element to the navigation area\n var $container = this.getAreaBroker().getNavigationArea();\n $container.append(this.$element);\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy (){\n this.$element.remove();\n },\n\n /**\n * Enable the button\n */\n enable : function enable (){\n this.$element.removeProp('disabled')\n .removeClass('disabled');\n },\n\n /**\n * Disable the button\n */\n disable : function disable (){\n this.$element.prop('disabled', true)\n .addClass('disabled');\n },\n\n /**\n * Show the button\n */\n show: function show(){\n hider.show(this.$element);\n },\n\n /**\n * Hide the button\n */\n hide: function hide(){\n hider.hide(this.$element);\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Navigation Plugin : Previous\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/navigation/previous',[\n 'jquery',\n 'i18n',\n 'ui/hider',\n 'taoTests/runner/plugin',\n 'tpl!taoQtiTest/runner/plugins/navigation/button'\n], function ($, __, hider, pluginFactory, buttonTpl){\n 'use strict';\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n\n name : 'previous',\n\n /**\n * Initialize the plugin (called during runner's init)\n */\n init : function init(){\n var self = this;\n\n var testRunner = this.getTestRunner();\n\n /**\n * Can we move backward ? if not, then we hide the plugin\n */\n var toggle = function toggle(){\n var context = testRunner.getTestContext();\n if(context.navigationMode === 1 && context.canMoveBackward){\n self.show();\n } else {\n self.hide();\n }\n };\n\n //build element (detached)\n this.$element = $(buttonTpl({\n control : 'move-backward',\n title : __('Submit and go to the previous item'),\n icon : 'backward',\n text : __('Previous')\n }));\n\n //attach behavior\n this.$element.on('click', function(e){\n e.preventDefault();\n if(self.getState('enabled') !== false){\n self.disable();\n\n testRunner.previous();\n }\n });\n\n //start disabled\n toggle();\n self.disable();\n\n //update plugin state based on changes\n testRunner\n .on('loaditem', toggle)\n .on('enablenav', function(){\n self.enable();\n })\n .on('disablenav', function(){\n self.disable();\n });\n },\n\n /**\n * Called during the runner's render phase\n */\n render : function render(){\n var $container = this.getAreaBroker().getNavigationArea();\n $container.append(this.$element);\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy (){\n this.$element.remove();\n },\n\n /**\n * Enable the button\n */\n enable : function enable (){\n this.$element.removeProp('disabled')\n .removeClass('disabled');\n },\n\n /**\n * Disable the button\n */\n disable : function disable (){\n this.$element.prop('disabled', true)\n .addClass('disabled');\n },\n\n /**\n * Show the button\n */\n show: function show(){\n hider.show(this.$element);\n },\n\n /**\n * Hide the button\n */\n hide: function hide(){\n hider.hide(this.$element);\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Navigation Plugin : Next Section\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/navigation/nextSection',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'ui/hider',\n 'taoTests/runner/plugin',\n 'taoQtiTest/runner/helpers/messages',\n 'tpl!taoQtiTest/runner/plugins/navigation/button'\n], function ($, _, __, hider, pluginFactory, messages, buttonTpl){\n 'use strict';\n\n return pluginFactory({\n name : 'nextsection',\n init : function init(){\n var self = this;\n var testRunner = this.getTestRunner();\n var testConfig = testRunner.getTestData().config;\n\n function toggle(){\n var options = testRunner.getTestContext().options;\n if(testConfig.nextSection && (options.nextSection || options.nextSectionWarning)){\n self.show();\n } else {\n self.hide();\n }\n }\n\n function nextSection() {\n testRunner.next('section');\n }\n\n this.$element = $(buttonTpl({\n control : 'next-section',\n title : __('Skip to the next section'),\n icon : 'fast-forward',\n text : __('Next Section')\n }));\n\n this.$element.on('click', function(e){\n var context = testRunner.getTestContext();\n var enable = _.bind(self.enable, self);\n e.preventDefault();\n if(self.getState('enabled') !== false){\n self.disable();\n\n if(context.options.nextSectionWarning){\n testRunner.trigger(\n 'confirm',\n messages.getExitMessage(\n __('After you complete the section it would be impossible to return to this section to make changes. Are you sure you want to end the section?'),\n 'section', testRunner),\n nextSection, // if the test taker accept\n enable // if the test taker refuse\n );\n } else {\n nextSection();\n }\n }\n });\n\n this.disable();\n toggle();\n\n testRunner\n .on('loaditem', toggle)\n .on('enablenav', function(){\n self.enable();\n })\n .on('disablenav', function(){\n self.disable();\n });\n },\n\n /**\n * Called during the runner's render phase\n */\n render : function render(){\n\n //attach the element to the navigation area\n var $container = this.getAreaBroker().getNavigationArea();\n $container.append(this.$element);\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy (){\n this.$element.remove();\n },\n\n /**\n * Enable the button\n */\n enable : function enable (){\n this.$element.removeProp('disabled')\n .removeClass('disabled');\n },\n\n /**\n * Disable the button\n */\n disable : function disable (){\n this.$element.prop('disabled', true)\n .addClass('disabled');\n },\n\n /**\n * Show the button\n */\n show: function show(){\n hider.show(this.$element);\n },\n\n /**\n * Hide the button\n */\n hide: function hide(){\n hider.hide(this.$element);\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Navigation Plugin : Skip\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/navigation/skip',[\n 'jquery',\n 'i18n',\n 'ui/hider',\n 'taoTests/runner/plugin',\n 'tpl!taoQtiTest/runner/plugins/navigation/button'\n], function ($, __, hider, pluginFactory, buttonTpl){\n 'use strict';\n\n /**\n * The display of the skip\n */\n var buttonData = {\n skip : {\n control : 'skip',\n title : __('Skip and go to the next item'),\n icon : 'external',\n text : __('Skip')\n },\n end : {\n control : 'skip-end',\n title : __('Skip and go to the end of the test'),\n icon : 'external',\n text : __('Skip and end test')\n }\n };\n\n /**\n * Create the button based on the current context\n * @param {Object} context - the test context\n * @returns {jQueryElement} the button\n */\n var createElement = function createElement(context){\n var dataType = context.isLast ? 'end' : 'skip';\n return $(buttonTpl(buttonData[dataType]));\n };\n\n /**\n * Update the button based on the context\n * @param {jQueryElement} $element - the element to update\n * @param {Object} context - the test context\n */\n var updateElement = function updateElement($element, context){\n var dataType = context.isLast ? 'end' : 'skip';\n if($element.data('control') !== buttonData[dataType].control){\n\n $element.data('control', buttonData[dataType].control)\n .attr('title', buttonData[dataType].title)\n .find('.text').text(buttonData[dataType].title);\n }\n };\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n\n name : 'skip',\n\n /**\n * Initialize the plugin (called during runner's init)\n */\n init : function init(){\n var self = this;\n var testRunner = this.getTestRunner();\n\n var toggle = function toggle(){\n var context = testRunner.getTestContext();\n if(context.options.allowSkipping === true){\n self.show();\n return true;\n }\n\n self.hide();\n return false;\n };\n\n this.$element = createElement(testRunner.getTestContext());\n\n this.$element.on('click', function(e){\n e.preventDefault();\n\n if(self.getState('enabled') !== false){\n self.disable();\n\n testRunner.skip();\n }\n });\n\n toggle();\n self.disable();\n\n testRunner\n .on('loaditem', function(){\n if(toggle()){\n updateElement(self.$element, testRunner.getTestContext());\n }\n })\n .on('enablenav', function(){\n self.enable();\n })\n .on('disablenav', function(){\n self.disable();\n });\n },\n\n /**\n * Called during the runner's render phase\n */\n render : function render(){\n var $container = this.getAreaBroker().getNavigationArea();\n $container.append(this.$element);\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy (){\n this.$element.remove();\n },\n\n /**\n * Enable the button\n */\n enable : function enable (){\n this.$element.removeProp('disabled')\n .removeClass('disabled');\n },\n\n /**\n * Disable the button\n */\n disable : function disable (){\n this.$element.prop('disabled', true)\n .addClass('disabled');\n },\n\n /**\n * Show the button\n */\n show: function show(){\n hider.show(this.$element);\n },\n\n /**\n * Hide the button\n */\n hide: function hide(){\n hider.hide(this.$element);\n }\n });\n});\n\n","\ndefine('tpl!taoQtiTest/runner/plugins/tools/comment/comment', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", helper, options, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div data-control=\\\"qti-comment\\\" class=\\\"hidden\\\">\\n <textarea data-control=\\\"qti-comment-text\\\" placeholder=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Your comment…\", options) : helperMissing.call(depth0, \"__\", \"Your comment…\", options)))\n + \"\\\"></textarea>\\n <button data-control=\\\"qti-comment-cancel\\\" class=\\\"btn-info small\\\"></span>\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Cancel\", options) : helperMissing.call(depth0, \"__\", \"Cancel\", options)))\n + \"</button>\\n <button data-control=\\\"qti-comment-send\\\" class=\\\"btn-info small\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Send\", options) : helperMissing.call(depth0, \"__\", \"Send\", options)))\n + \"</button>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Tool Plugin : Comment form\n *\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiTest/runner/plugins/tools/comment/comment',[\n 'jquery',\n 'i18n',\n 'taoTests/runner/plugin',\n 'ui/hider',\n 'tpl!taoQtiTest/runner/plugins/navigation/button',\n 'tpl!taoQtiTest/runner/plugins/tools/comment/comment'\n], function ($, __, pluginFactory, hider, buttonTpl, commentTpl) {\n 'use strict';\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n\n name: 'comment',\n\n /**\n * Initialize the plugin (called during runner's init)\n */\n init: function init() {\n var self = this;\n\n var testRunner = this.getTestRunner();\n\n /**\n * Can we comment ? if not, then we hide the plugin\n */\n function togglePlugin() {\n var context = testRunner.getTestContext();\n if (context.options.allowComment) {\n self.show();\n } else {\n self.hide();\n }\n }\n\n //build element (detached)\n this.$button = $(buttonTpl({\n control: 'comment',\n title: __('Leave a comment'),\n icon: 'tag',\n text: __('Comment')\n }));\n\n //get access to controls\n this.$form = $(commentTpl()).appendTo(this.$button);\n this.$input = this.$button.find('[data-control=\"qti-comment-text\"]');\n this.$cancel = this.$button.find('[data-control=\"qti-comment-cancel\"]');\n this.$submit = this.$button.find('[data-control=\"qti-comment-send\"]');\n\n //attach behavior\n this.$button.on('click', function (e) {\n //prevent action if the click is made inside the form which is a sub part of the button\n if ($(e.target).closest('[data-control=\"qti-comment\"]').length) {\n return;\n }\n\n e.preventDefault();\n\n if (self.getState('enabled') !== false) {\n //just show/hide the form\n hider.toggle(self.$form);\n if (!hider.isHidden(self.$form)) {\n //reset the form on each display\n self.$input.val('').focus();\n }\n }\n });\n\n //hide the form without submit\n this.$cancel.on('click', function () {\n hider.hide(self.$form);\n });\n\n //submit the comment, then hide the form\n this.$submit.on('click', function () {\n var comment = self.$input.val();\n\n if (comment) {\n self.disable();\n\n testRunner.getProxy()\n .callTestAction('comment', {\n comment: comment\n })\n .then(function () {\n hider.hide(self.$form);\n self.enable();\n })\n .catch(function () {\n hider.hide(self.$form);\n self.enable();\n });\n }\n });\n\n //start disabled\n togglePlugin();\n this.disable();\n\n //update plugin state based on changes\n testRunner\n .on('loaditem', togglePlugin)\n .on('renderitem', function () {\n self.enable();\n })\n .on('unloaditem', function () {\n self.disable();\n });\n },\n\n /**\n * Called during the runner's render phase\n */\n render: function render() {\n var $container = this.getAreaBroker().getToolboxArea();\n $container.append(this.$button);\n },\n\n /**\n * Called during the runner's destroy phase\n */\n destroy: function destroy() {\n this.$button.remove();\n },\n\n /**\n * Enable the button\n */\n enable: function enable() {\n this.$button.removeProp('disabled')\n .removeClass('disabled');\n },\n\n /**\n * Disable the button\n */\n disable: function disable() {\n hider.hide(this.$form);\n this.$button.prop('disabled', true)\n .addClass('disabled');\n },\n\n /**\n * Show the button\n */\n show: function show() {\n hider.show(this.$button);\n },\n\n /**\n * Hide the button\n */\n hide: function hide() {\n hider.hide(this.$form);\n hider.hide(this.$button);\n }\n });\n});\n\n","/**\n * interact.js v1.2.6\n *\n * Copyright (c) 2012-2015 Taye Adeyemi <dev@taye.me>\n * Open source under the MIT License.\n * https://raw.github.com/taye/interact.js/master/LICENSE\n */\n(function (realWindow) {\n 'use strict';\n\n // return early if there's no window to work with (eg. Node.js)\n if (!realWindow) { return; }\n\n var // get wrapped window if using Shadow DOM polyfill\n window = (function () {\n // create a TextNode\n var el = realWindow.document.createTextNode('');\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== realWindow.document\n && typeof realWindow.wrap === 'function'\n && realWindow.wrap(el) === el) {\n // return wrapped window\n return realWindow.wrap(realWindow);\n }\n\n // no Shadow DOM polyfil or native implementation\n return realWindow;\n }()),\n\n document = window.document,\n DocumentFragment = window.DocumentFragment || blank,\n SVGElement = window.SVGElement || blank,\n SVGSVGElement = window.SVGSVGElement || blank,\n SVGElementInstance = window.SVGElementInstance || blank,\n HTMLElement = window.HTMLElement || window.Element,\n\n PointerEvent = (window.PointerEvent || window.MSPointerEvent),\n pEventTypes,\n\n hypot = Math.hypot || function (x, y) { return Math.sqrt(x * x + y * y); },\n\n tmpXY = {}, // reduce object creation in getXY()\n\n documents = [], // all documents being listened to\n\n interactables = [], // all set interactables\n interactions = [], // all interactions\n\n dynamicDrop = false,\n\n // {\n // type: {\n // selectors: ['selector', ...],\n // contexts : [document, ...],\n // listeners: [[listener, useCapture], ...]\n // }\n // }\n delegatedEvents = {},\n\n defaultOptions = {\n base: {\n accept : null,\n actionChecker : null,\n styleCursor : true,\n preventDefault: 'auto',\n origin : { x: 0, y: 0 },\n deltaSource : 'page',\n allowFrom : null,\n ignoreFrom : null,\n _context : document,\n dropChecker : null\n },\n\n drag: {\n enabled: false,\n manualStart: true,\n max: Infinity,\n maxPerElement: 1,\n\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n axis: 'xy'\n },\n\n drop: {\n enabled: false,\n accept: null,\n overlap: 'pointer'\n },\n\n resize: {\n enabled: false,\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none'\n },\n\n gesture: {\n manualStart: false,\n enabled: false,\n max: Infinity,\n maxPerElement: 1,\n\n restrict: null\n },\n\n perAction: {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n\n snap: {\n enabled : false,\n endOnly : false,\n range : Infinity,\n targets : null,\n offsets : null,\n\n relativePoints: null\n },\n\n restrict: {\n enabled: false,\n endOnly: false\n },\n\n autoScroll: {\n enabled : false,\n container : null, // the item that is scrolled (Window or HTMLElement)\n margin : 60,\n speed : 300 // the scroll speed in pixels per second\n },\n\n inertia: {\n enabled : false,\n resistance : 10, // the lambda in exponential decay\n minSpeed : 100, // target speed must be above this for inertia to start\n endSpeed : 10, // the speed at which inertia is slow enough to stop\n allowResume : true, // allow resuming an action in inertia phase\n zeroResumeDelta : true, // if an action is resumed after launch, set dx/dy to 0\n smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia\n }\n },\n\n _holdDuration: 600\n },\n\n // Things related to autoScroll\n autoScroll = {\n interaction: null,\n i: null, // the handle returned by window.setInterval\n x: 0, y: 0, // Direction each pulse is to scroll in\n\n // scroll the window by the values in scroll.x/y\n scroll: function () {\n var options = autoScroll.interaction.target.options[autoScroll.interaction.prepared.name].autoScroll,\n container = options.container || getWindow(autoScroll.interaction.element),\n now = new Date().getTime(),\n // change in time in seconds\n dtx = (now - autoScroll.prevTimeX) / 1000,\n dty = (now - autoScroll.prevTimeY) / 1000,\n vx, vy, sx, sy;\n\n // displacement\n if (options.velocity) {\n vx = options.velocity.x;\n vy = options.velocity.y;\n }\n else {\n vx = vy = options.speed\n }\n\n sx = vx * dtx;\n sy = vy * dty;\n\n if (sx >= 1 || sy >= 1) {\n if (isWindow(container)) {\n container.scrollBy(autoScroll.x * sx, autoScroll.y * sy);\n }\n else if (container) {\n container.scrollLeft += autoScroll.x * sx;\n container.scrollTop += autoScroll.y * sy;\n }\n\n if (sx >=1) autoScroll.prevTimeX = now;\n if (sy >= 1) autoScroll.prevTimeY = now;\n }\n\n if (autoScroll.isScrolling) {\n cancelFrame(autoScroll.i);\n autoScroll.i = reqFrame(autoScroll.scroll);\n }\n },\n\n isScrolling: false,\n prevTimeX: 0,\n prevTimeY: 0,\n\n start: function (interaction) {\n autoScroll.isScrolling = true;\n cancelFrame(autoScroll.i);\n\n autoScroll.interaction = interaction;\n autoScroll.prevTimeX = new Date().getTime();\n autoScroll.prevTimeY = new Date().getTime();\n autoScroll.i = reqFrame(autoScroll.scroll);\n },\n\n stop: function () {\n autoScroll.isScrolling = false;\n cancelFrame(autoScroll.i);\n }\n },\n\n // Does the browser support touch input?\n supportsTouch = (('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch),\n\n // Does the browser support PointerEvents\n supportsPointerEvent = !!PointerEvent,\n\n // Less Precision with touch input\n margin = supportsTouch || supportsPointerEvent? 20: 10,\n\n pointerMoveTolerance = 1,\n\n // for ignoring browser's simulated mouse events\n prevTouchTime = 0,\n\n // Allow this many interactions to happen simultaneously\n maxInteractions = Infinity,\n\n // Check if is IE9 or older\n actionCursors = (document.all && !window.atob) ? {\n drag : 'move',\n resizex : 'e-resize',\n resizey : 's-resize',\n resizexy: 'se-resize',\n\n resizetop : 'n-resize',\n resizeleft : 'w-resize',\n resizebottom : 's-resize',\n resizeright : 'e-resize',\n resizetopleft : 'se-resize',\n resizebottomright: 'se-resize',\n resizetopright : 'ne-resize',\n resizebottomleft : 'ne-resize',\n\n gesture : ''\n } : {\n drag : 'move',\n resizex : 'ew-resize',\n resizey : 'ns-resize',\n resizexy: 'nwse-resize',\n\n resizetop : 'ns-resize',\n resizeleft : 'ew-resize',\n resizebottom : 'ns-resize',\n resizeright : 'ew-resize',\n resizetopleft : 'nwse-resize',\n resizebottomright: 'nwse-resize',\n resizetopright : 'nesw-resize',\n resizebottomleft : 'nesw-resize',\n\n gesture : ''\n },\n\n actionIsEnabled = {\n drag : true,\n resize : true,\n gesture: true\n },\n\n // because Webkit and Opera still use 'mousewheel' event type\n wheelEvent = 'onmousewheel' in document? 'mousewheel': 'wheel',\n\n eventTypes = [\n 'dragstart',\n 'dragmove',\n 'draginertiastart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dropactivate',\n 'dropdeactivate',\n 'dropmove',\n 'drop',\n 'resizestart',\n 'resizemove',\n 'resizeinertiastart',\n 'resizeend',\n 'gesturestart',\n 'gesturemove',\n 'gestureinertiastart',\n 'gestureend',\n\n 'down',\n 'move',\n 'up',\n 'cancel',\n 'tap',\n 'doubletap',\n 'hold'\n ],\n\n globalEvents = {},\n\n // Opera Mobile must be handled differently\n isOperaMobile = navigator.appName == 'Opera' &&\n supportsTouch &&\n navigator.userAgent.match('Presto'),\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n isIOS7 = (/iP(hone|od|ad)/.test(navigator.platform)\n && /OS 7[^\\d]/.test(navigator.appVersion)),\n\n // prefix matchesSelector\n prefixedMatchesSelector = 'matches' in Element.prototype?\n 'matches': 'webkitMatchesSelector' in Element.prototype?\n 'webkitMatchesSelector': 'mozMatchesSelector' in Element.prototype?\n 'mozMatchesSelector': 'oMatchesSelector' in Element.prototype?\n 'oMatchesSelector': 'msMatchesSelector',\n\n // will be polyfill function if browser is IE8\n ie8MatchesSelector,\n\n // native requestAnimationFrame or polyfill\n reqFrame = realWindow.requestAnimationFrame,\n cancelFrame = realWindow.cancelAnimationFrame,\n\n // Events wrapper\n events = (function () {\n var useAttachEvent = ('attachEvent' in window) && !('addEventListener' in window),\n addEvent = useAttachEvent? 'attachEvent': 'addEventListener',\n removeEvent = useAttachEvent? 'detachEvent': 'removeEventListener',\n on = useAttachEvent? 'on': '',\n\n elements = [],\n targets = [],\n attachedListeners = [];\n\n function add (element, type, listener, useCapture) {\n var elementIndex = indexOf(elements, element),\n target = targets[elementIndex];\n\n if (!target) {\n target = {\n events: {},\n typeCount: 0\n };\n\n elementIndex = elements.push(element) - 1;\n targets.push(target);\n\n attachedListeners.push((useAttachEvent ? {\n supplied: [],\n wrapped : [],\n useCount: []\n } : null));\n }\n\n if (!target.events[type]) {\n target.events[type] = [];\n target.typeCount++;\n }\n\n if (!contains(target.events[type], listener)) {\n var ret;\n\n if (useAttachEvent) {\n var listeners = attachedListeners[elementIndex],\n listenerIndex = indexOf(listeners.supplied, listener);\n\n var wrapped = listeners.wrapped[listenerIndex] || function (event) {\n if (!event.immediatePropagationStopped) {\n event.target = event.srcElement;\n event.currentTarget = element;\n\n event.preventDefault = event.preventDefault || preventDef;\n event.stopPropagation = event.stopPropagation || stopProp;\n event.stopImmediatePropagation = event.stopImmediatePropagation || stopImmProp;\n\n if (/mouse|click/.test(event.type)) {\n event.pageX = event.clientX + getWindow(element).document.documentElement.scrollLeft;\n event.pageY = event.clientY + getWindow(element).document.documentElement.scrollTop;\n }\n\n listener(event);\n }\n };\n\n ret = element[addEvent](on + type, wrapped, Boolean(useCapture));\n\n if (listenerIndex === -1) {\n listeners.supplied.push(listener);\n listeners.wrapped.push(wrapped);\n listeners.useCount.push(1);\n }\n else {\n listeners.useCount[listenerIndex]++;\n }\n }\n else {\n ret = element[addEvent](type, listener, useCapture || false);\n }\n target.events[type].push(listener);\n\n return ret;\n }\n }\n\n function remove (element, type, listener, useCapture) {\n var i,\n elementIndex = indexOf(elements, element),\n target = targets[elementIndex],\n listeners,\n listenerIndex,\n wrapped = listener;\n\n if (!target || !target.events) {\n return;\n }\n\n if (useAttachEvent) {\n listeners = attachedListeners[elementIndex];\n listenerIndex = indexOf(listeners.supplied, listener);\n wrapped = listeners.wrapped[listenerIndex];\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(element, type, 'all');\n }\n }\n return;\n }\n\n if (target.events[type]) {\n var len = target.events[type].length;\n\n if (listener === 'all') {\n for (i = 0; i < len; i++) {\n remove(element, type, target.events[type][i], Boolean(useCapture));\n }\n return;\n } else {\n for (i = 0; i < len; i++) {\n if (target.events[type][i] === listener) {\n element[removeEvent](on + type, wrapped, useCapture || false);\n target.events[type].splice(i, 1);\n\n if (useAttachEvent && listeners) {\n listeners.useCount[listenerIndex]--;\n if (listeners.useCount[listenerIndex] === 0) {\n listeners.supplied.splice(listenerIndex, 1);\n listeners.wrapped.splice(listenerIndex, 1);\n listeners.useCount.splice(listenerIndex, 1);\n }\n }\n\n break;\n }\n }\n }\n\n if (target.events[type] && target.events[type].length === 0) {\n target.events[type] = null;\n target.typeCount--;\n }\n }\n\n if (!target.typeCount) {\n targets.splice(elementIndex, 1);\n elements.splice(elementIndex, 1);\n attachedListeners.splice(elementIndex, 1);\n }\n }\n\n function preventDef () {\n this.returnValue = false;\n }\n\n function stopProp () {\n this.cancelBubble = true;\n }\n\n function stopImmProp () {\n this.cancelBubble = true;\n this.immediatePropagationStopped = true;\n }\n\n return {\n add: add,\n remove: remove,\n useAttachEvent: useAttachEvent,\n\n _elements: elements,\n _targets: targets,\n _attachedListeners: attachedListeners\n };\n }());\n\n function blank () {}\n\n function isElement (o) {\n if (!o || (typeof o !== 'object')) { return false; }\n\n var _window = getWindow(o) || window;\n\n return (/object|function/.test(typeof _window.Element)\n ? o instanceof _window.Element //DOM2\n : o.nodeType === 1 && typeof o.nodeName === \"string\");\n }\n function isWindow (thing) { return thing === window || !!(thing && thing.Window) && (thing instanceof thing.Window); }\n function isDocFrag (thing) { return !!thing && thing instanceof DocumentFragment; }\n function isArray (thing) {\n return isObject(thing)\n && (typeof thing.length !== undefined)\n && isFunction(thing.splice);\n }\n function isObject (thing) { return !!thing && (typeof thing === 'object'); }\n function isFunction (thing) { return typeof thing === 'function'; }\n function isNumber (thing) { return typeof thing === 'number' ; }\n function isBool (thing) { return typeof thing === 'boolean' ; }\n function isString (thing) { return typeof thing === 'string' ; }\n\n function trySelector (value) {\n if (!isString(value)) { return false; }\n\n // an exception will be raised if it is invalid\n document.querySelector(value);\n return true;\n }\n\n function extend (dest, source) {\n for (var prop in source) {\n dest[prop] = source[prop];\n }\n return dest;\n }\n\n var prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/\n };\n\n function pointerExtend (dest, source) {\n for (var prop in source) {\n var deprecated = false;\n\n // skip deprecated prefixed properties\n for (var vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true;\n break;\n }\n }\n\n if (!deprecated) {\n dest[prop] = source[prop];\n }\n }\n return dest;\n }\n\n function copyCoords (dest, src) {\n dest.page = dest.page || {};\n dest.page.x = src.page.x;\n dest.page.y = src.page.y;\n\n dest.client = dest.client || {};\n dest.client.x = src.client.x;\n dest.client.y = src.client.y;\n\n dest.timeStamp = src.timeStamp;\n }\n\n function setEventXY (targetObj, pointers, interaction) {\n var pointer = (pointers.length > 1\n ? pointerAverage(pointers)\n : pointers[0]);\n\n getPageXY(pointer, tmpXY, interaction);\n targetObj.page.x = tmpXY.x;\n targetObj.page.y = tmpXY.y;\n\n getClientXY(pointer, tmpXY, interaction);\n targetObj.client.x = tmpXY.x;\n targetObj.client.y = tmpXY.y;\n\n targetObj.timeStamp = new Date().getTime();\n }\n\n function setEventDeltas (targetObj, prev, cur) {\n targetObj.page.x = cur.page.x - prev.page.x;\n targetObj.page.y = cur.page.y - prev.page.y;\n targetObj.client.x = cur.client.x - prev.client.x;\n targetObj.client.y = cur.client.y - prev.client.y;\n targetObj.timeStamp = new Date().getTime() - prev.timeStamp;\n\n // set pointer velocity\n var dt = Math.max(targetObj.timeStamp / 1000, 0.001);\n targetObj.page.speed = hypot(targetObj.page.x, targetObj.page.y) / dt;\n targetObj.page.vx = targetObj.page.x / dt;\n targetObj.page.vy = targetObj.page.y / dt;\n\n targetObj.client.speed = hypot(targetObj.client.x, targetObj.page.y) / dt;\n targetObj.client.vx = targetObj.client.x / dt;\n targetObj.client.vy = targetObj.client.y / dt;\n }\n\n function isNativePointer (pointer) {\n return (pointer instanceof window.Event\n || (supportsTouch && window.Touch && pointer instanceof window.Touch));\n }\n\n // Get specified X/Y coords for mouse or event.touches[0]\n function getXY (type, pointer, xy) {\n xy = xy || {};\n type = type || 'page';\n\n xy.x = pointer[type + 'X'];\n xy.y = pointer[type + 'Y'];\n\n return xy;\n }\n\n function getPageXY (pointer, page) {\n page = page || {};\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (isOperaMobile && isNativePointer(pointer)) {\n getXY('screen', pointer, page);\n\n page.x += window.scrollX;\n page.y += window.scrollY;\n }\n else {\n getXY('page', pointer, page);\n }\n\n return page;\n }\n\n function getClientXY (pointer, client) {\n client = client || {};\n\n if (isOperaMobile && isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n getXY('screen', pointer, client);\n }\n else {\n getXY('client', pointer, client);\n }\n\n return client;\n }\n\n function getScrollXY (win) {\n win = win || window;\n return {\n x: win.scrollX || win.document.documentElement.scrollLeft,\n y: win.scrollY || win.document.documentElement.scrollTop\n };\n }\n\n function getPointerId (pointer) {\n return isNumber(pointer.pointerId)? pointer.pointerId : pointer.identifier;\n }\n\n function getActualElement (element) {\n return (element instanceof SVGElementInstance\n ? element.correspondingUseElement\n : element);\n }\n\n function getWindow (node) {\n if (isWindow(node)) {\n return node;\n }\n\n var rootNode = (node.ownerDocument || node);\n\n return rootNode.defaultView || rootNode.parentWindow || window;\n }\n\n function getElementClientRect (element) {\n var clientRect = (element instanceof SVGElement\n ? element.getBoundingClientRect()\n : element.getClientRects()[0]);\n\n return clientRect && {\n left : clientRect.left,\n right : clientRect.right,\n top : clientRect.top,\n bottom: clientRect.bottom,\n width : clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top\n };\n }\n\n function getElementRect (element) {\n var clientRect = getElementClientRect(element);\n\n if (!isIOS7 && clientRect) {\n var scroll = getScrollXY(getWindow(element));\n\n clientRect.left += scroll.x;\n clientRect.right += scroll.x;\n clientRect.top += scroll.y;\n clientRect.bottom += scroll.y;\n }\n\n return clientRect;\n }\n\n function getTouchPair (event) {\n var touches = [];\n\n // array of touches is supplied\n if (isArray(event)) {\n touches[0] = event[0];\n touches[1] = event[1];\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0];\n touches[1] = event.changedTouches[0];\n }\n else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0];\n touches[1] = event.changedTouches[1];\n }\n }\n else {\n touches[0] = event.touches[0];\n touches[1] = event.touches[1];\n }\n }\n\n return touches;\n }\n\n function pointerAverage (pointers) {\n var average = {\n pageX : 0,\n pageY : 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0\n };\n var prop;\n\n for (var i = 0; i < pointers.length; i++) {\n for (prop in average) {\n average[prop] += pointers[i][prop];\n }\n }\n for (prop in average) {\n average[prop] /= pointers.length;\n }\n\n return average;\n }\n\n function touchBBox (event) {\n if (!event.length && !(event.touches && event.touches.length > 1)) {\n return;\n }\n\n var touches = getTouchPair(event),\n minX = Math.min(touches[0].pageX, touches[1].pageX),\n minY = Math.min(touches[0].pageY, touches[1].pageY),\n maxX = Math.max(touches[0].pageX, touches[1].pageX),\n maxY = Math.max(touches[0].pageY, touches[1].pageY);\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n\n function touchDistance (event, deltaSource) {\n deltaSource = deltaSource || defaultOptions.deltaSource;\n\n var sourceX = deltaSource + 'X',\n sourceY = deltaSource + 'Y',\n touches = getTouchPair(event);\n\n\n var dx = touches[0][sourceX] - touches[1][sourceX],\n dy = touches[0][sourceY] - touches[1][sourceY];\n\n return hypot(dx, dy);\n }\n\n function touchAngle (event, prevAngle, deltaSource) {\n deltaSource = deltaSource || defaultOptions.deltaSource;\n\n var sourceX = deltaSource + 'X',\n sourceY = deltaSource + 'Y',\n touches = getTouchPair(event),\n dx = touches[0][sourceX] - touches[1][sourceX],\n dy = touches[0][sourceY] - touches[1][sourceY],\n angle = 180 * Math.atan(dy / dx) / Math.PI;\n\n if (isNumber(prevAngle)) {\n var dr = angle - prevAngle,\n drClamped = dr % 360;\n\n if (drClamped > 315) {\n angle -= 360 + (angle / 360)|0 * 360;\n }\n else if (drClamped > 135) {\n angle -= 180 + (angle / 360)|0 * 360;\n }\n else if (drClamped < -315) {\n angle += 360 + (angle / 360)|0 * 360;\n }\n else if (drClamped < -135) {\n angle += 180 + (angle / 360)|0 * 360;\n }\n }\n\n return angle;\n }\n\n function getOriginXY (interactable, element) {\n var origin = interactable\n ? interactable.options.origin\n : defaultOptions.origin;\n\n if (origin === 'parent') {\n origin = parentElement(element);\n }\n else if (origin === 'self') {\n origin = interactable.getRect(element);\n }\n else if (trySelector(origin)) {\n origin = closest(element, origin) || { x: 0, y: 0 };\n }\n\n if (isFunction(origin)) {\n origin = origin(interactable && element);\n }\n\n if (isElement(origin)) {\n origin = getElementRect(origin);\n }\n\n origin.x = ('x' in origin)? origin.x : origin.left;\n origin.y = ('y' in origin)? origin.y : origin.top;\n\n return origin;\n }\n\n // http://stackoverflow.com/a/5634528/2280888\n function _getQBezierValue(t, p1, p2, p3) {\n var iT = 1 - t;\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;\n }\n\n function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {\n return {\n x: _getQBezierValue(position, startX, cpX, endX),\n y: _getQBezierValue(position, startY, cpY, endY)\n };\n }\n\n // http://gizma.com/easing/\n function easeOutQuad (t, b, c, d) {\n t /= d;\n return -c * t*(t-2) + b;\n }\n\n function nodeContains (parent, child) {\n while (child) {\n if (child === parent) {\n return true;\n }\n\n child = child.parentNode;\n }\n\n return false;\n }\n\n function closest (child, selector) {\n var parent = parentElement(child);\n\n while (isElement(parent)) {\n if (matchesSelector(parent, selector)) { return parent; }\n\n parent = parentElement(parent);\n }\n\n return null;\n }\n\n function parentElement (node) {\n var parent = node.parentNode;\n\n if (isDocFrag(parent)) {\n // skip past #shado-root fragments\n while ((parent = parent.host) && isDocFrag(parent)) {}\n\n return parent;\n }\n\n return parent;\n }\n\n function inContext (interactable, element) {\n return interactable._context === element.ownerDocument\n || nodeContains(interactable._context, element);\n }\n\n function testIgnore (interactable, interactableElement, element) {\n var ignoreFrom = interactable.options.ignoreFrom;\n\n if (!ignoreFrom || !isElement(element)) { return false; }\n\n if (isString(ignoreFrom)) {\n return matchesUpTo(element, ignoreFrom, interactableElement);\n }\n else if (isElement(ignoreFrom)) {\n return nodeContains(ignoreFrom, element);\n }\n\n return false;\n }\n\n function testAllow (interactable, interactableElement, element) {\n var allowFrom = interactable.options.allowFrom;\n\n if (!allowFrom) { return true; }\n\n if (!isElement(element)) { return false; }\n\n if (isString(allowFrom)) {\n return matchesUpTo(element, allowFrom, interactableElement);\n }\n else if (isElement(allowFrom)) {\n return nodeContains(allowFrom, element);\n }\n\n return false;\n }\n\n function checkAxis (axis, interactable) {\n if (!interactable) { return false; }\n\n var thisAxis = interactable.options.drag.axis;\n\n return (axis === 'xy' || thisAxis === 'xy' || thisAxis === axis);\n }\n\n function checkSnap (interactable, action) {\n var options = interactable.options;\n\n if (/^resize/.test(action)) {\n action = 'resize';\n }\n\n return options[action].snap && options[action].snap.enabled;\n }\n\n function checkRestrict (interactable, action) {\n var options = interactable.options;\n\n if (/^resize/.test(action)) {\n action = 'resize';\n }\n\n return options[action].restrict && options[action].restrict.enabled;\n }\n\n function checkAutoScroll (interactable, action) {\n var options = interactable.options;\n\n if (/^resize/.test(action)) {\n action = 'resize';\n }\n\n return options[action].autoScroll && options[action].autoScroll.enabled;\n }\n\n function withinInteractionLimit (interactable, element, action) {\n var options = interactable.options,\n maxActions = options[action.name].max,\n maxPerElement = options[action.name].maxPerElement,\n activeInteractions = 0,\n targetCount = 0,\n targetElementCount = 0;\n\n for (var i = 0, len = interactions.length; i < len; i++) {\n var interaction = interactions[i],\n otherAction = interaction.prepared.name,\n active = interaction.interacting();\n\n if (!active) { continue; }\n\n activeInteractions++;\n\n if (activeInteractions >= maxInteractions) {\n return false;\n }\n\n if (interaction.target !== interactable) { continue; }\n\n targetCount += (otherAction === action.name)|0;\n\n if (targetCount >= maxActions) {\n return false;\n }\n\n if (interaction.element === element) {\n targetElementCount++;\n\n if (otherAction !== action.name || targetElementCount >= maxPerElement) {\n return false;\n }\n }\n }\n\n return maxInteractions > 0;\n }\n\n // Test for the element that's \"above\" all other qualifiers\n function indexOfDeepestElement (elements) {\n var dropzone,\n deepestZone = elements[0],\n index = deepestZone? 0: -1,\n parent,\n deepestZoneParents = [],\n dropzoneParents = [],\n child,\n i,\n n;\n\n for (i = 1; i < elements.length; i++) {\n dropzone = elements[i];\n\n // an element might belong to multiple selector dropzones\n if (!dropzone || dropzone === deepestZone) {\n continue;\n }\n\n if (!deepestZone) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n // check if the deepest or current are document.documentElement or document.rootElement\n // - if the current dropzone is, do nothing and continue\n if (dropzone.parentNode === dropzone.ownerDocument) {\n continue;\n }\n // - if deepest is, update with the current dropzone and continue to next\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n if (!deepestZoneParents.length) {\n parent = deepestZone;\n while (parent.parentNode && parent.parentNode !== parent.ownerDocument) {\n deepestZoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n }\n\n // if this element is an svg element and the current deepest is\n // an HTMLElement\n if (deepestZone instanceof HTMLElement\n && dropzone instanceof SVGElement\n && !(dropzone instanceof SVGSVGElement)) {\n\n if (dropzone === deepestZone.parentNode) {\n continue;\n }\n\n parent = dropzone.ownerSVGElement;\n }\n else {\n parent = dropzone;\n }\n\n dropzoneParents = [];\n\n while (parent.parentNode !== parent.ownerDocument) {\n dropzoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n\n n = 0;\n\n // get (position of last common ancestor) + 1\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\n n++;\n }\n\n var parents = [\n dropzoneParents[n - 1],\n dropzoneParents[n],\n deepestZoneParents[n]\n ];\n\n child = parents[0].lastChild;\n\n while (child) {\n if (child === parents[1]) {\n deepestZone = dropzone;\n index = i;\n deepestZoneParents = [];\n\n break;\n }\n else if (child === parents[2]) {\n break;\n }\n\n child = child.previousSibling;\n }\n }\n\n return index;\n }\n\n function Interaction () {\n this.target = null; // current interactable being interacted with\n this.element = null; // the target element of the interactable\n this.dropTarget = null; // the dropzone a drag target might be dropped into\n this.dropElement = null; // the element at the time of checking\n this.prevDropTarget = null; // the dropzone that was recently dragged away from\n this.prevDropElement = null; // the element at the time of checking\n\n this.prepared = { // action that's ready to be fired on next move event\n name : null,\n axis : null,\n edges: null\n };\n\n this.matches = []; // all selectors that are matched by target element\n this.matchElements = []; // corresponding elements\n\n this.inertiaStatus = {\n active : false,\n smoothEnd : false,\n ending : false,\n\n startEvent: null,\n upCoords: {},\n\n xe: 0, ye: 0,\n sx: 0, sy: 0,\n\n t0: 0,\n vx0: 0, vys: 0,\n duration: 0,\n\n resumeDx: 0,\n resumeDy: 0,\n\n lambda_v0: 0,\n one_ve_v0: 0,\n i : null\n };\n\n if (isFunction(Function.prototype.bind)) {\n this.boundInertiaFrame = this.inertiaFrame.bind(this);\n this.boundSmoothEndFrame = this.smoothEndFrame.bind(this);\n }\n else {\n var that = this;\n\n this.boundInertiaFrame = function () { return that.inertiaFrame(); };\n this.boundSmoothEndFrame = function () { return that.smoothEndFrame(); };\n }\n\n this.activeDrops = {\n dropzones: [], // the dropzones that are mentioned below\n elements : [], // elements of dropzones that accept the target draggable\n rects : [] // the rects of the elements mentioned above\n };\n\n // keep track of added pointers\n this.pointers = [];\n this.pointerIds = [];\n this.downTargets = [];\n this.downTimes = [];\n this.holdTimers = [];\n\n // Previous native pointer move event coordinates\n this.prevCoords = {\n page : { x: 0, y: 0 },\n client : { x: 0, y: 0 },\n timeStamp: 0\n };\n // current native pointer move event coordinates\n this.curCoords = {\n page : { x: 0, y: 0 },\n client : { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Starting InteractEvent pointer coordinates\n this.startCoords = {\n page : { x: 0, y: 0 },\n client : { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Change in coordinates and time of the pointer\n this.pointerDelta = {\n page : { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n client : { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n timeStamp: 0\n };\n\n this.downEvent = null; // pointerdown/mousedown/touchstart event\n this.downPointer = {};\n\n this._eventTarget = null;\n this._curEventTarget = null;\n\n this.prevEvent = null; // previous action event\n this.tapTime = 0; // time of the most recent tap event\n this.prevTap = null;\n\n this.startOffset = { left: 0, right: 0, top: 0, bottom: 0 };\n this.restrictOffset = { left: 0, right: 0, top: 0, bottom: 0 };\n this.snapOffsets = [];\n\n this.gesture = {\n start: { x: 0, y: 0 },\n\n startDistance: 0, // distance between two touches of touchStart\n prevDistance : 0,\n distance : 0,\n\n scale: 1, // gesture.distance / gesture.startDistance\n\n startAngle: 0, // angle of line joining two touches\n prevAngle : 0 // angle of the previous gesture event\n };\n\n this.snapStatus = {\n x : 0, y : 0,\n dx : 0, dy : 0,\n realX : 0, realY : 0,\n snappedX: 0, snappedY: 0,\n targets : [],\n locked : false,\n changed : false\n };\n\n this.restrictStatus = {\n dx : 0, dy : 0,\n restrictedX: 0, restrictedY: 0,\n snap : null,\n restricted : false,\n changed : false\n };\n\n this.restrictStatus.snap = this.snapStatus;\n\n this.pointerIsDown = false;\n this.pointerWasMoved = false;\n this.gesturing = false;\n this.dragging = false;\n this.resizing = false;\n this.resizeAxes = 'xy';\n\n this.mouse = false;\n\n interactions.push(this);\n }\n\n Interaction.prototype = {\n getPageXY : function (pointer, xy) { return getPageXY(pointer, xy, this); },\n getClientXY: function (pointer, xy) { return getClientXY(pointer, xy, this); },\n setEventXY : function (target, ptr) { return setEventXY(target, ptr, this); },\n\n pointerOver: function (pointer, event, eventTarget) {\n if (this.prepared.name || !this.mouse) { return; }\n\n var curMatches = [],\n curMatchElements = [],\n prevTargetElement = this.element;\n\n this.addPointer(pointer);\n\n if (this.target\n && (testIgnore(this.target, this.element, eventTarget)\n || !testAllow(this.target, this.element, eventTarget))) {\n // if the eventTarget should be ignored or shouldn't be allowed\n // clear the previous target\n this.target = null;\n this.element = null;\n this.matches = [];\n this.matchElements = [];\n }\n\n var elementInteractable = interactables.get(eventTarget),\n elementAction = (elementInteractable\n && !testIgnore(elementInteractable, eventTarget, eventTarget)\n && testAllow(elementInteractable, eventTarget, eventTarget)\n && validateAction(\n elementInteractable.getAction(pointer, event, this, eventTarget),\n elementInteractable));\n\n if (elementAction && !withinInteractionLimit(elementInteractable, eventTarget, elementAction)) {\n elementAction = null;\n }\n\n function pushCurMatches (interactable, selector) {\n if (interactable\n && inContext(interactable, eventTarget)\n && !testIgnore(interactable, eventTarget, eventTarget)\n && testAllow(interactable, eventTarget, eventTarget)\n && matchesSelector(eventTarget, selector)) {\n\n curMatches.push(interactable);\n curMatchElements.push(eventTarget);\n }\n }\n\n if (elementAction) {\n this.target = elementInteractable;\n this.element = eventTarget;\n this.matches = [];\n this.matchElements = [];\n }\n else {\n interactables.forEachSelector(pushCurMatches);\n\n if (this.validateSelector(pointer, event, curMatches, curMatchElements)) {\n this.matches = curMatches;\n this.matchElements = curMatchElements;\n\n this.pointerHover(pointer, event, this.matches, this.matchElements);\n events.add(eventTarget,\n PointerEvent? pEventTypes.move : 'mousemove',\n listeners.pointerHover);\n }\n else if (this.target) {\n if (nodeContains(prevTargetElement, eventTarget)) {\n this.pointerHover(pointer, event, this.matches, this.matchElements);\n events.add(this.element,\n PointerEvent? pEventTypes.move : 'mousemove',\n listeners.pointerHover);\n }\n else {\n this.target = null;\n this.element = null;\n this.matches = [];\n this.matchElements = [];\n }\n }\n }\n },\n\n // Check what action would be performed on pointerMove target if a mouse\n // button were pressed and change the cursor accordingly\n pointerHover: function (pointer, event, eventTarget, curEventTarget, matches, matchElements) {\n var target = this.target;\n\n if (!this.prepared.name && this.mouse) {\n\n var action;\n\n // update pointer coords for defaultActionChecker to use\n this.setEventXY(this.curCoords, [pointer]);\n\n if (matches) {\n action = this.validateSelector(pointer, event, matches, matchElements);\n }\n else if (target) {\n action = validateAction(target.getAction(this.pointers[0], event, this, this.element), this.target);\n }\n\n if (target && target.options.styleCursor) {\n if (action) {\n target._doc.documentElement.style.cursor = getActionCursor(action);\n }\n else {\n target._doc.documentElement.style.cursor = '';\n }\n }\n }\n else if (this.prepared.name) {\n this.checkAndPreventDefault(event, target, this.element);\n }\n },\n\n pointerOut: function (pointer, event, eventTarget) {\n if (this.prepared.name) { return; }\n\n // Remove temporary event listeners for selector Interactables\n if (!interactables.get(eventTarget)) {\n events.remove(eventTarget,\n PointerEvent? pEventTypes.move : 'mousemove',\n listeners.pointerHover);\n }\n\n if (this.target && this.target.options.styleCursor && !this.interacting()) {\n this.target._doc.documentElement.style.cursor = '';\n }\n },\n\n selectorDown: function (pointer, event, eventTarget, curEventTarget) {\n var that = this,\n // copy event to be used in timeout for IE8\n eventCopy = events.useAttachEvent? extend({}, event) : event,\n element = eventTarget,\n pointerIndex = this.addPointer(pointer),\n action;\n\n this.holdTimers[pointerIndex] = setTimeout(function () {\n that.pointerHold(events.useAttachEvent? eventCopy : pointer, eventCopy, eventTarget, curEventTarget);\n }, defaultOptions._holdDuration);\n\n this.pointerIsDown = true;\n\n // Check if the down event hits the current inertia target\n if (this.inertiaStatus.active && this.target.selector) {\n // climb up the DOM tree from the event target\n while (isElement(element)) {\n\n // if this element is the current inertia target element\n if (element === this.element\n // and the prospective action is the same as the ongoing one\n && validateAction(this.target.getAction(pointer, event, this, this.element), this.target).name === this.prepared.name) {\n\n // stop inertia so that the next move will be a normal one\n cancelFrame(this.inertiaStatus.i);\n this.inertiaStatus.active = false;\n\n this.collectEventTargets(pointer, event, eventTarget, 'down');\n return;\n }\n element = parentElement(element);\n }\n }\n\n // do nothing if interacting\n if (this.interacting()) {\n this.collectEventTargets(pointer, event, eventTarget, 'down');\n return;\n }\n\n function pushMatches (interactable, selector, context) {\n var elements = ie8MatchesSelector\n ? context.querySelectorAll(selector)\n : undefined;\n\n if (inContext(interactable, element)\n && !testIgnore(interactable, element, eventTarget)\n && testAllow(interactable, element, eventTarget)\n && matchesSelector(element, selector, elements)) {\n\n that.matches.push(interactable);\n that.matchElements.push(element);\n }\n }\n\n // update pointer coords for defaultActionChecker to use\n this.setEventXY(this.curCoords, [pointer]);\n this.downEvent = event;\n\n while (isElement(element) && !action) {\n this.matches = [];\n this.matchElements = [];\n\n interactables.forEachSelector(pushMatches);\n\n action = this.validateSelector(pointer, event, this.matches, this.matchElements);\n element = parentElement(element);\n }\n\n if (action) {\n this.prepared.name = action.name;\n this.prepared.axis = action.axis;\n this.prepared.edges = action.edges;\n\n this.collectEventTargets(pointer, event, eventTarget, 'down');\n\n return this.pointerDown(pointer, event, eventTarget, curEventTarget, action);\n }\n else {\n // do these now since pointerDown isn't being called from here\n this.downTimes[pointerIndex] = new Date().getTime();\n this.downTargets[pointerIndex] = eventTarget;\n pointerExtend(this.downPointer, pointer);\n\n copyCoords(this.prevCoords, this.curCoords);\n this.pointerWasMoved = false;\n }\n\n this.collectEventTargets(pointer, event, eventTarget, 'down');\n },\n\n // Determine action to be performed on next pointerMove and add appropriate\n // style and event Listeners\n pointerDown: function (pointer, event, eventTarget, curEventTarget, forceAction) {\n if (!forceAction && !this.inertiaStatus.active && this.pointerWasMoved && this.prepared.name) {\n this.checkAndPreventDefault(event, this.target, this.element);\n\n return;\n }\n\n this.pointerIsDown = true;\n this.downEvent = event;\n\n var pointerIndex = this.addPointer(pointer),\n action;\n\n // If it is the second touch of a multi-touch gesture, keep the\n // target the same and get a new action if a target was set by the\n // first touch\n if (this.pointerIds.length > 1 && this.target._element === this.element) {\n var newAction = validateAction(forceAction || this.target.getAction(pointer, event, this, this.element), this.target);\n\n if (withinInteractionLimit(this.target, this.element, newAction)) {\n action = newAction;\n }\n\n this.prepared.name = null;\n }\n // Otherwise, set the target if there is no action prepared\n else if (!this.prepared.name) {\n var interactable = interactables.get(curEventTarget);\n\n if (interactable\n && !testIgnore(interactable, curEventTarget, eventTarget)\n && testAllow(interactable, curEventTarget, eventTarget)\n && (action = validateAction(forceAction || interactable.getAction(pointer, event, this, curEventTarget), interactable, eventTarget))\n && withinInteractionLimit(interactable, curEventTarget, action)) {\n this.target = interactable;\n this.element = curEventTarget;\n }\n }\n\n var target = this.target,\n options = target && target.options;\n\n if (target && (forceAction || !this.prepared.name)) {\n action = action || validateAction(forceAction || target.getAction(pointer, event, this, curEventTarget), target, this.element);\n\n this.setEventXY(this.startCoords, this.pointers);\n\n if (!action) { return; }\n\n if (options.styleCursor) {\n target._doc.documentElement.style.cursor = getActionCursor(action);\n }\n\n this.resizeAxes = action.name === 'resize'? action.axis : null;\n\n if (action === 'gesture' && this.pointerIds.length < 2) {\n action = null;\n }\n\n this.prepared.name = action.name;\n this.prepared.axis = action.axis;\n this.prepared.edges = action.edges;\n\n this.snapStatus.snappedX = this.snapStatus.snappedY =\n this.restrictStatus.restrictedX = this.restrictStatus.restrictedY = NaN;\n\n this.downTimes[pointerIndex] = new Date().getTime();\n this.downTargets[pointerIndex] = eventTarget;\n pointerExtend(this.downPointer, pointer);\n\n copyCoords(this.prevCoords, this.startCoords);\n this.pointerWasMoved = false;\n\n this.checkAndPreventDefault(event, target, this.element);\n }\n // if inertia is active try to resume action\n else if (this.inertiaStatus.active\n && curEventTarget === this.element\n && validateAction(target.getAction(pointer, event, this, this.element), target).name === this.prepared.name) {\n\n cancelFrame(this.inertiaStatus.i);\n this.inertiaStatus.active = false;\n\n this.checkAndPreventDefault(event, target, this.element);\n }\n },\n\n setModifications: function (coords, preEnd) {\n var target = this.target,\n shouldMove = true,\n shouldSnap = checkSnap(target, this.prepared.name) && (!target.options[this.prepared.name].snap.endOnly || preEnd),\n shouldRestrict = checkRestrict(target, this.prepared.name) && (!target.options[this.prepared.name].restrict.endOnly || preEnd);\n\n if (shouldSnap ) { this.setSnapping (coords); } else { this.snapStatus .locked = false; }\n if (shouldRestrict) { this.setRestriction(coords); } else { this.restrictStatus.restricted = false; }\n\n if (shouldSnap && this.snapStatus.locked && !this.snapStatus.changed) {\n shouldMove = shouldRestrict && this.restrictStatus.restricted && this.restrictStatus.changed;\n }\n else if (shouldRestrict && this.restrictStatus.restricted && !this.restrictStatus.changed) {\n shouldMove = false;\n }\n\n return shouldMove;\n },\n\n setStartOffsets: function (action, interactable, element) {\n var rect = interactable.getRect(element),\n origin = getOriginXY(interactable, element),\n snap = interactable.options[this.prepared.name].snap,\n restrict = interactable.options[this.prepared.name].restrict,\n width, height;\n\n if (rect) {\n this.startOffset.left = this.startCoords.page.x - rect.left;\n this.startOffset.top = this.startCoords.page.y - rect.top;\n\n this.startOffset.right = rect.right - this.startCoords.page.x;\n this.startOffset.bottom = rect.bottom - this.startCoords.page.y;\n\n if ('width' in rect) { width = rect.width; }\n else { width = rect.right - rect.left; }\n if ('height' in rect) { height = rect.height; }\n else { height = rect.bottom - rect.top; }\n }\n else {\n this.startOffset.left = this.startOffset.top = this.startOffset.right = this.startOffset.bottom = 0;\n }\n\n this.snapOffsets.splice(0);\n\n var snapOffset = snap && snap.offset === 'startCoords'\n ? {\n x: this.startCoords.page.x - origin.x,\n y: this.startCoords.page.y - origin.y\n }\n : snap && snap.offset || { x: 0, y: 0 };\n\n if (rect && snap && snap.relativePoints && snap.relativePoints.length) {\n for (var i = 0; i < snap.relativePoints.length; i++) {\n this.snapOffsets.push({\n x: this.startOffset.left - (width * snap.relativePoints[i].x) + snapOffset.x,\n y: this.startOffset.top - (height * snap.relativePoints[i].y) + snapOffset.y\n });\n }\n }\n else {\n this.snapOffsets.push(snapOffset);\n }\n\n if (rect && restrict.elementRect) {\n this.restrictOffset.left = this.startOffset.left - (width * restrict.elementRect.left);\n this.restrictOffset.top = this.startOffset.top - (height * restrict.elementRect.top);\n\n this.restrictOffset.right = this.startOffset.right - (width * (1 - restrict.elementRect.right));\n this.restrictOffset.bottom = this.startOffset.bottom - (height * (1 - restrict.elementRect.bottom));\n }\n else {\n this.restrictOffset.left = this.restrictOffset.top = this.restrictOffset.right = this.restrictOffset.bottom = 0;\n }\n },\n\n /*\\\n * Interaction.start\n [ method ]\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate number\n * of pointers must be held down – 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.<action>able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n - action (object) The action to be performed - drag, resize, etc.\n - interactable (Interactable) The Interactable to target\n - element (Element) The DOM Element to target\n = (object) interact\n **\n | interact(target)\n | .draggable({\n | // disable the default drag start by down->move\n | manualStart: true\n | })\n | // start dragging after the user holds the pointer down\n | .on('hold', function (event) {\n | var interaction = event.interaction;\n |\n | if (!interaction.interacting()) {\n | interaction.start({ name: 'drag' },\n | event.interactable,\n | event.currentTarget);\n | }\n | });\n \\*/\n start: function (action, interactable, element) {\n if (this.interacting()\n || !this.pointerIsDown\n || this.pointerIds.length < (action.name === 'gesture'? 2 : 1)) {\n return;\n }\n\n // if this interaction had been removed after stopping\n // add it back\n if (indexOf(interactions, this) === -1) {\n interactions.push(this);\n }\n\n // set the startCoords if there was no prepared action\n if (!this.prepared.name) {\n this.setEventXY(this.startCoords);\n }\n\n this.prepared.name = action.name;\n this.prepared.axis = action.axis;\n this.prepared.edges = action.edges;\n this.target = interactable;\n this.element = element;\n\n this.setStartOffsets(action.name, interactable, element);\n this.setModifications(this.startCoords.page);\n\n this.prevEvent = this[this.prepared.name + 'Start'](this.downEvent);\n },\n\n pointerMove: function (pointer, event, eventTarget, curEventTarget, preEnd) {\n if (this.inertiaStatus.active) {\n var pageUp = this.inertiaStatus.upCoords.page;\n var clientUp = this.inertiaStatus.upCoords.client;\n\n var inertiaPosition = {\n pageX : pageUp.x + this.inertiaStatus.sx,\n pageY : pageUp.y + this.inertiaStatus.sy,\n clientX: clientUp.x + this.inertiaStatus.sx,\n clientY: clientUp.y + this.inertiaStatus.sy\n };\n\n this.setEventXY(this.curCoords, [inertiaPosition]);\n }\n else {\n this.recordPointer(pointer);\n this.setEventXY(this.curCoords, this.pointers);\n }\n\n var duplicateMove = (this.curCoords.page.x === this.prevCoords.page.x\n && this.curCoords.page.y === this.prevCoords.page.y\n && this.curCoords.client.x === this.prevCoords.client.x\n && this.curCoords.client.y === this.prevCoords.client.y);\n\n var dx, dy,\n pointerIndex = this.mouse? 0 : indexOf(this.pointerIds, getPointerId(pointer));\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.curCoords.client.x - this.startCoords.client.x;\n dy = this.curCoords.client.y - this.startCoords.client.y;\n\n this.pointerWasMoved = hypot(dx, dy) > pointerMoveTolerance;\n }\n\n if (!duplicateMove && (!this.pointerIsDown || this.pointerWasMoved)) {\n if (this.pointerIsDown) {\n clearTimeout(this.holdTimers[pointerIndex]);\n }\n\n this.collectEventTargets(pointer, event, eventTarget, 'move');\n }\n\n if (!this.pointerIsDown) { return; }\n\n if (duplicateMove && this.pointerWasMoved && !preEnd) {\n this.checkAndPreventDefault(event, this.target, this.element);\n return;\n }\n\n // set pointer coordinate, time changes and speeds\n setEventDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n\n if (!this.prepared.name) { return; }\n\n if (this.pointerWasMoved\n // ignore movement while inertia is active\n && (!this.inertiaStatus.active || (pointer instanceof InteractEvent && /inertiastart/.test(pointer.type)))) {\n\n // if just starting an action, calculate the pointer speed now\n if (!this.interacting()) {\n setEventDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n\n // check if a drag is in the correct axis\n if (this.prepared.name === 'drag') {\n var absX = Math.abs(dx),\n absY = Math.abs(dy),\n targetAxis = this.target.options.drag.axis,\n axis = (absX > absY ? 'x' : absX < absY ? 'y' : 'xy');\n\n // if the movement isn't in the axis of the interactable\n if (axis !== 'xy' && targetAxis !== 'xy' && targetAxis !== axis) {\n // cancel the prepared action\n this.prepared.name = null;\n\n // then try to get a drag from another ineractable\n\n var element = eventTarget;\n\n // check element interactables\n while (isElement(element)) {\n var elementInteractable = interactables.get(element);\n\n if (elementInteractable\n && elementInteractable !== this.target\n && !elementInteractable.options.drag.manualStart\n && elementInteractable.getAction(this.downPointer, this.downEvent, this, element).name === 'drag'\n && checkAxis(axis, elementInteractable)) {\n\n this.prepared.name = 'drag';\n this.target = elementInteractable;\n this.element = element;\n break;\n }\n\n element = parentElement(element);\n }\n\n // if there's no drag from element interactables,\n // check the selector interactables\n if (!this.prepared.name) {\n var thisInteraction = this;\n\n var getDraggable = function (interactable, selector, context) {\n var elements = ie8MatchesSelector\n ? context.querySelectorAll(selector)\n : undefined;\n\n if (interactable === thisInteraction.target) { return; }\n\n if (inContext(interactable, eventTarget)\n && !interactable.options.drag.manualStart\n && !testIgnore(interactable, element, eventTarget)\n && testAllow(interactable, element, eventTarget)\n && matchesSelector(element, selector, elements)\n && interactable.getAction(thisInteraction.downPointer, thisInteraction.downEvent, thisInteraction, element).name === 'drag'\n && checkAxis(axis, interactable)\n && withinInteractionLimit(interactable, element, 'drag')) {\n\n return interactable;\n }\n };\n\n element = eventTarget;\n\n while (isElement(element)) {\n var selectorInteractable = interactables.forEachSelector(getDraggable);\n\n if (selectorInteractable) {\n this.prepared.name = 'drag';\n this.target = selectorInteractable;\n this.element = element;\n break;\n }\n\n element = parentElement(element);\n }\n }\n }\n }\n }\n\n var starting = !!this.prepared.name && !this.interacting();\n\n if (starting\n && (this.target.options[this.prepared.name].manualStart\n || !withinInteractionLimit(this.target, this.element, this.prepared))) {\n this.stop(event);\n return;\n }\n\n if (this.prepared.name && this.target) {\n if (starting) {\n this.start(this.prepared, this.target, this.element);\n }\n\n var shouldMove = this.setModifications(this.curCoords.page, preEnd);\n\n // move if snapping or restriction doesn't prevent it\n if (shouldMove || starting) {\n this.prevEvent = this[this.prepared.name + 'Move'](event);\n }\n\n this.checkAndPreventDefault(event, this.target, this.element);\n }\n }\n\n copyCoords(this.prevCoords, this.curCoords);\n\n if (this.dragging || this.resizing) {\n this.autoScrollMove(pointer);\n }\n },\n\n dragStart: function (event) {\n var dragEvent = new InteractEvent(this, event, 'drag', 'start', this.element);\n\n this.dragging = true;\n this.target.fire(dragEvent);\n\n // reset active dropzones\n this.activeDrops.dropzones = [];\n this.activeDrops.elements = [];\n this.activeDrops.rects = [];\n\n if (!this.dynamicDrop) {\n this.setActiveDrops(this.element);\n }\n\n var dropEvents = this.getDropEvents(event, dragEvent);\n\n if (dropEvents.activate) {\n this.fireActiveDrops(dropEvents.activate);\n }\n\n return dragEvent;\n },\n\n dragMove: function (event) {\n var target = this.target,\n dragEvent = new InteractEvent(this, event, 'drag', 'move', this.element),\n draggableElement = this.element,\n drop = this.getDrop(dragEvent, event, draggableElement);\n\n this.dropTarget = drop.dropzone;\n this.dropElement = drop.element;\n\n var dropEvents = this.getDropEvents(event, dragEvent);\n\n target.fire(dragEvent);\n\n if (dropEvents.leave) { this.prevDropTarget.fire(dropEvents.leave); }\n if (dropEvents.enter) { this.dropTarget.fire(dropEvents.enter); }\n if (dropEvents.move ) { this.dropTarget.fire(dropEvents.move ); }\n\n this.prevDropTarget = this.dropTarget;\n this.prevDropElement = this.dropElement;\n\n return dragEvent;\n },\n\n resizeStart: function (event) {\n var resizeEvent = new InteractEvent(this, event, 'resize', 'start', this.element);\n\n if (this.prepared.edges) {\n var startRect = this.target.getRect(this.element);\n\n /*\n * When using the `resizable.square` or `resizable.preserveAspectRatio` options, resizing from one edge\n * will affect another. E.g. with `resizable.square`, resizing to make the right edge larger will make\n * the bottom edge larger by the same amount. We call these 'linked' edges. Any linked edges will depend\n * on the active edges and the edge being interacted with.\n */\n if (this.target.options.resize.square || this.target.options.resize.preserveAspectRatio) {\n var linkedEdges = extend({}, this.prepared.edges);\n\n linkedEdges.top = linkedEdges.top || (linkedEdges.left && !linkedEdges.bottom);\n linkedEdges.left = linkedEdges.left || (linkedEdges.top && !linkedEdges.right );\n linkedEdges.bottom = linkedEdges.bottom || (linkedEdges.right && !linkedEdges.top );\n linkedEdges.right = linkedEdges.right || (linkedEdges.bottom && !linkedEdges.left );\n\n this.prepared._linkedEdges = linkedEdges;\n }\n else {\n this.prepared._linkedEdges = null;\n }\n\n // if using `resizable.preserveAspectRatio` option, record aspect ratio at the start of the resize\n if (this.target.options.resize.preserveAspectRatio) {\n this.resizeStartAspectRatio = startRect.width / startRect.height;\n }\n\n this.resizeRects = {\n start : startRect,\n current : extend({}, startRect),\n restricted: extend({}, startRect),\n previous : extend({}, startRect),\n delta : {\n left: 0, right : 0, width : 0,\n top : 0, bottom: 0, height: 0\n }\n };\n\n resizeEvent.rect = this.resizeRects.restricted;\n resizeEvent.deltaRect = this.resizeRects.delta;\n }\n\n this.target.fire(resizeEvent);\n\n this.resizing = true;\n\n return resizeEvent;\n },\n\n resizeMove: function (event) {\n var resizeEvent = new InteractEvent(this, event, 'resize', 'move', this.element);\n\n var edges = this.prepared.edges,\n invert = this.target.options.resize.invert,\n invertible = invert === 'reposition' || invert === 'negate';\n\n if (edges) {\n var dx = resizeEvent.dx,\n dy = resizeEvent.dy,\n\n start = this.resizeRects.start,\n current = this.resizeRects.current,\n restricted = this.resizeRects.restricted,\n delta = this.resizeRects.delta,\n previous = extend(this.resizeRects.previous, restricted),\n\n originalEdges = edges;\n\n // `resize.preserveAspectRatio` takes precedence over `resize.square`\n if (this.target.options.resize.preserveAspectRatio) {\n var resizeStartAspectRatio = this.resizeStartAspectRatio;\n\n edges = this.prepared._linkedEdges;\n\n if ((originalEdges.left && originalEdges.bottom)\n || (originalEdges.right && originalEdges.top)) {\n dy = -dx / resizeStartAspectRatio;\n }\n else if (originalEdges.left || originalEdges.right) { dy = dx / resizeStartAspectRatio; }\n else if (originalEdges.top || originalEdges.bottom) { dx = dy * resizeStartAspectRatio; }\n }\n else if (this.target.options.resize.square) {\n edges = this.prepared._linkedEdges;\n\n if ((originalEdges.left && originalEdges.bottom)\n || (originalEdges.right && originalEdges.top)) {\n dy = -dx;\n }\n else if (originalEdges.left || originalEdges.right) { dy = dx; }\n else if (originalEdges.top || originalEdges.bottom) { dx = dy; }\n }\n\n // update the 'current' rect without modifications\n if (edges.top ) { current.top += dy; }\n if (edges.bottom) { current.bottom += dy; }\n if (edges.left ) { current.left += dx; }\n if (edges.right ) { current.right += dx; }\n\n if (invertible) {\n // if invertible, copy the current rect\n extend(restricted, current);\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n var swap;\n\n if (restricted.top > restricted.bottom) {\n swap = restricted.top;\n\n restricted.top = restricted.bottom;\n restricted.bottom = swap;\n }\n if (restricted.left > restricted.right) {\n swap = restricted.left;\n\n restricted.left = restricted.right;\n restricted.right = swap;\n }\n }\n }\n else {\n // if not invertible, restrict to minimum of 0x0 rect\n restricted.top = Math.min(current.top, start.bottom);\n restricted.bottom = Math.max(current.bottom, start.top);\n restricted.left = Math.min(current.left, start.right);\n restricted.right = Math.max(current.right, start.left);\n }\n\n restricted.width = restricted.right - restricted.left;\n restricted.height = restricted.bottom - restricted.top ;\n\n for (var edge in restricted) {\n delta[edge] = restricted[edge] - previous[edge];\n }\n\n resizeEvent.edges = this.prepared.edges;\n resizeEvent.rect = restricted;\n resizeEvent.deltaRect = delta;\n }\n\n this.target.fire(resizeEvent);\n\n return resizeEvent;\n },\n\n gestureStart: function (event) {\n var gestureEvent = new InteractEvent(this, event, 'gesture', 'start', this.element);\n\n gestureEvent.ds = 0;\n\n this.gesture.startDistance = this.gesture.prevDistance = gestureEvent.distance;\n this.gesture.startAngle = this.gesture.prevAngle = gestureEvent.angle;\n this.gesture.scale = 1;\n\n this.gesturing = true;\n\n this.target.fire(gestureEvent);\n\n return gestureEvent;\n },\n\n gestureMove: function (event) {\n if (!this.pointerIds.length) {\n return this.prevEvent;\n }\n\n var gestureEvent;\n\n gestureEvent = new InteractEvent(this, event, 'gesture', 'move', this.element);\n gestureEvent.ds = gestureEvent.scale - this.gesture.scale;\n\n this.target.fire(gestureEvent);\n\n this.gesture.prevAngle = gestureEvent.angle;\n this.gesture.prevDistance = gestureEvent.distance;\n\n if (gestureEvent.scale !== Infinity &&\n gestureEvent.scale !== null &&\n gestureEvent.scale !== undefined &&\n !isNaN(gestureEvent.scale)) {\n\n this.gesture.scale = gestureEvent.scale;\n }\n\n return gestureEvent;\n },\n\n pointerHold: function (pointer, event, eventTarget) {\n this.collectEventTargets(pointer, event, eventTarget, 'hold');\n },\n\n pointerUp: function (pointer, event, eventTarget, curEventTarget) {\n var pointerIndex = this.mouse? 0 : indexOf(this.pointerIds, getPointerId(pointer));\n\n clearTimeout(this.holdTimers[pointerIndex]);\n\n this.collectEventTargets(pointer, event, eventTarget, 'up' );\n this.collectEventTargets(pointer, event, eventTarget, 'tap');\n\n this.pointerEnd(pointer, event, eventTarget, curEventTarget);\n\n this.removePointer(pointer);\n },\n\n pointerCancel: function (pointer, event, eventTarget, curEventTarget) {\n var pointerIndex = this.mouse? 0 : indexOf(this.pointerIds, getPointerId(pointer));\n\n clearTimeout(this.holdTimers[pointerIndex]);\n\n this.collectEventTargets(pointer, event, eventTarget, 'cancel');\n this.pointerEnd(pointer, event, eventTarget, curEventTarget);\n\n this.removePointer(pointer);\n },\n\n // http://www.quirksmode.org/dom/events/click.html\n // >Events leading to dblclick\n //\n // IE8 doesn't fire down event before dblclick.\n // This workaround tries to fire a tap and doubletap after dblclick\n ie8Dblclick: function (pointer, event, eventTarget) {\n if (this.prevTap\n && event.clientX === this.prevTap.clientX\n && event.clientY === this.prevTap.clientY\n && eventTarget === this.prevTap.target) {\n\n this.downTargets[0] = eventTarget;\n this.downTimes[0] = new Date().getTime();\n this.collectEventTargets(pointer, event, eventTarget, 'tap');\n }\n },\n\n // End interact move events and stop auto-scroll unless inertia is enabled\n pointerEnd: function (pointer, event, eventTarget, curEventTarget) {\n var endEvent,\n target = this.target,\n options = target && target.options,\n inertiaOptions = options && this.prepared.name && options[this.prepared.name].inertia,\n inertiaStatus = this.inertiaStatus;\n\n if (this.interacting()) {\n\n if (inertiaStatus.active && !inertiaStatus.ending) { return; }\n\n var pointerSpeed,\n now = new Date().getTime(),\n inertiaPossible = false,\n inertia = false,\n smoothEnd = false,\n endSnap = checkSnap(target, this.prepared.name) && options[this.prepared.name].snap.endOnly,\n endRestrict = checkRestrict(target, this.prepared.name) && options[this.prepared.name].restrict.endOnly,\n dx = 0,\n dy = 0,\n startEvent;\n\n if (this.dragging) {\n if (options.drag.axis === 'x' ) { pointerSpeed = Math.abs(this.pointerDelta.client.vx); }\n else if (options.drag.axis === 'y' ) { pointerSpeed = Math.abs(this.pointerDelta.client.vy); }\n else /*options.drag.axis === 'xy'*/{ pointerSpeed = this.pointerDelta.client.speed; }\n }\n else {\n pointerSpeed = this.pointerDelta.client.speed;\n }\n\n // check if inertia should be started\n inertiaPossible = (inertiaOptions && inertiaOptions.enabled\n && this.prepared.name !== 'gesture'\n && event !== inertiaStatus.startEvent);\n\n inertia = (inertiaPossible\n && (now - this.curCoords.timeStamp) < 50\n && pointerSpeed > inertiaOptions.minSpeed\n && pointerSpeed > inertiaOptions.endSpeed);\n\n if (inertiaPossible && !inertia && (endSnap || endRestrict)) {\n\n var snapRestrict = {};\n\n snapRestrict.snap = snapRestrict.restrict = snapRestrict;\n\n if (endSnap) {\n this.setSnapping(this.curCoords.page, snapRestrict);\n if (snapRestrict.locked) {\n dx += snapRestrict.dx;\n dy += snapRestrict.dy;\n }\n }\n\n if (endRestrict) {\n this.setRestriction(this.curCoords.page, snapRestrict);\n if (snapRestrict.restricted) {\n dx += snapRestrict.dx;\n dy += snapRestrict.dy;\n }\n }\n\n if (dx || dy) {\n smoothEnd = true;\n }\n }\n\n if (inertia || smoothEnd) {\n copyCoords(inertiaStatus.upCoords, this.curCoords);\n\n this.pointers[0] = inertiaStatus.startEvent = startEvent =\n new InteractEvent(this, event, this.prepared.name, 'inertiastart', this.element);\n\n inertiaStatus.t0 = now;\n\n target.fire(inertiaStatus.startEvent);\n\n if (inertia) {\n inertiaStatus.vx0 = this.pointerDelta.client.vx;\n inertiaStatus.vy0 = this.pointerDelta.client.vy;\n inertiaStatus.v0 = pointerSpeed;\n\n this.calcInertia(inertiaStatus);\n\n var page = extend({}, this.curCoords.page),\n origin = getOriginXY(target, this.element),\n statusObject;\n\n page.x = page.x + inertiaStatus.xe - origin.x;\n page.y = page.y + inertiaStatus.ye - origin.y;\n\n statusObject = {\n useStatusXY: true,\n x: page.x,\n y: page.y,\n dx: 0,\n dy: 0,\n snap: null\n };\n\n statusObject.snap = statusObject;\n\n dx = dy = 0;\n\n if (endSnap) {\n var snap = this.setSnapping(this.curCoords.page, statusObject);\n\n if (snap.locked) {\n dx += snap.dx;\n dy += snap.dy;\n }\n }\n\n if (endRestrict) {\n var restrict = this.setRestriction(this.curCoords.page, statusObject);\n\n if (restrict.restricted) {\n dx += restrict.dx;\n dy += restrict.dy;\n }\n }\n\n inertiaStatus.modifiedXe += dx;\n inertiaStatus.modifiedYe += dy;\n\n inertiaStatus.i = reqFrame(this.boundInertiaFrame);\n }\n else {\n inertiaStatus.smoothEnd = true;\n inertiaStatus.xe = dx;\n inertiaStatus.ye = dy;\n\n inertiaStatus.sx = inertiaStatus.sy = 0;\n\n inertiaStatus.i = reqFrame(this.boundSmoothEndFrame);\n }\n\n inertiaStatus.active = true;\n return;\n }\n\n if (endSnap || endRestrict) {\n // fire a move event at the snapped coordinates\n this.pointerMove(pointer, event, eventTarget, curEventTarget, true);\n }\n }\n\n if (this.dragging) {\n endEvent = new InteractEvent(this, event, 'drag', 'end', this.element);\n\n var draggableElement = this.element,\n drop = this.getDrop(endEvent, event, draggableElement);\n\n this.dropTarget = drop.dropzone;\n this.dropElement = drop.element;\n\n var dropEvents = this.getDropEvents(event, endEvent);\n\n if (dropEvents.leave) { this.prevDropTarget.fire(dropEvents.leave); }\n if (dropEvents.enter) { this.dropTarget.fire(dropEvents.enter); }\n if (dropEvents.drop ) { this.dropTarget.fire(dropEvents.drop ); }\n if (dropEvents.deactivate) {\n this.fireActiveDrops(dropEvents.deactivate);\n }\n\n target.fire(endEvent);\n }\n else if (this.resizing) {\n endEvent = new InteractEvent(this, event, 'resize', 'end', this.element);\n target.fire(endEvent);\n }\n else if (this.gesturing) {\n endEvent = new InteractEvent(this, event, 'gesture', 'end', this.element);\n target.fire(endEvent);\n }\n\n this.stop(event);\n },\n\n collectDrops: function (element) {\n var drops = [],\n elements = [],\n i;\n\n element = element || this.element;\n\n // collect all dropzones and their elements which qualify for a drop\n for (i = 0; i < interactables.length; i++) {\n if (!interactables[i].options.drop.enabled) { continue; }\n\n var current = interactables[i],\n accept = current.options.drop.accept;\n\n // test the draggable element against the dropzone's accept setting\n if ((isElement(accept) && accept !== element)\n || (isString(accept)\n && !matchesSelector(element, accept))) {\n\n continue;\n }\n\n // query for new elements if necessary\n var dropElements = current.selector? current._context.querySelectorAll(current.selector) : [current._element];\n\n for (var j = 0, len = dropElements.length; j < len; j++) {\n var currentElement = dropElements[j];\n\n if (currentElement === element) {\n continue;\n }\n\n drops.push(current);\n elements.push(currentElement);\n }\n }\n\n return {\n dropzones: drops,\n elements: elements\n };\n },\n\n fireActiveDrops: function (event) {\n var i,\n current,\n currentElement,\n prevElement;\n\n // loop through all active dropzones and trigger event\n for (i = 0; i < this.activeDrops.dropzones.length; i++) {\n current = this.activeDrops.dropzones[i];\n currentElement = this.activeDrops.elements [i];\n\n // prevent trigger of duplicate events on same element\n if (currentElement !== prevElement) {\n // set current element as event target\n event.target = currentElement;\n current.fire(event);\n }\n prevElement = currentElement;\n }\n },\n\n // Collect a new set of possible drops and save them in activeDrops.\n // setActiveDrops should always be called when a drag has just started or a\n // drag event happens while dynamicDrop is true\n setActiveDrops: function (dragElement) {\n // get dropzones and their elements that could receive the draggable\n var possibleDrops = this.collectDrops(dragElement, true);\n\n this.activeDrops.dropzones = possibleDrops.dropzones;\n this.activeDrops.elements = possibleDrops.elements;\n this.activeDrops.rects = [];\n\n for (var i = 0; i < this.activeDrops.dropzones.length; i++) {\n this.activeDrops.rects[i] = this.activeDrops.dropzones[i].getRect(this.activeDrops.elements[i]);\n }\n },\n\n getDrop: function (dragEvent, event, dragElement) {\n var validDrops = [];\n\n if (dynamicDrop) {\n this.setActiveDrops(dragElement);\n }\n\n // collect all dropzones and their elements which qualify for a drop\n for (var j = 0; j < this.activeDrops.dropzones.length; j++) {\n var current = this.activeDrops.dropzones[j],\n currentElement = this.activeDrops.elements [j],\n rect = this.activeDrops.rects [j];\n\n validDrops.push(current.dropCheck(dragEvent, event, this.target, dragElement, currentElement, rect)\n ? currentElement\n : null);\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n var dropIndex = indexOfDeepestElement(validDrops),\n dropzone = this.activeDrops.dropzones[dropIndex] || null,\n element = this.activeDrops.elements [dropIndex] || null;\n\n return {\n dropzone: dropzone,\n element: element\n };\n },\n\n getDropEvents: function (pointerEvent, dragEvent) {\n var dropEvents = {\n enter : null,\n leave : null,\n activate : null,\n deactivate: null,\n move : null,\n drop : null\n };\n\n if (this.dropElement !== this.prevDropElement) {\n // if there was a prevDropTarget, create a dragleave event\n if (this.prevDropTarget) {\n dropEvents.leave = {\n target : this.prevDropElement,\n dropzone : this.prevDropTarget,\n relatedTarget: dragEvent.target,\n draggable : dragEvent.interactable,\n dragEvent : dragEvent,\n interaction : this,\n timeStamp : dragEvent.timeStamp,\n type : 'dragleave'\n };\n\n dragEvent.dragLeave = this.prevDropElement;\n dragEvent.prevDropzone = this.prevDropTarget;\n }\n // if the dropTarget is not null, create a dragenter event\n if (this.dropTarget) {\n dropEvents.enter = {\n target : this.dropElement,\n dropzone : this.dropTarget,\n relatedTarget: dragEvent.target,\n draggable : dragEvent.interactable,\n dragEvent : dragEvent,\n interaction : this,\n timeStamp : dragEvent.timeStamp,\n type : 'dragenter'\n };\n\n dragEvent.dragEnter = this.dropElement;\n dragEvent.dropzone = this.dropTarget;\n }\n }\n\n if (dragEvent.type === 'dragend' && this.dropTarget) {\n dropEvents.drop = {\n target : this.dropElement,\n dropzone : this.dropTarget,\n relatedTarget: dragEvent.target,\n draggable : dragEvent.interactable,\n dragEvent : dragEvent,\n interaction : this,\n timeStamp : dragEvent.timeStamp,\n type : 'drop'\n };\n\n dragEvent.dropzone = this.dropTarget;\n }\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = {\n target : null,\n dropzone : null,\n relatedTarget: dragEvent.target,\n draggable : dragEvent.interactable,\n dragEvent : dragEvent,\n interaction : this,\n timeStamp : dragEvent.timeStamp,\n type : 'dropactivate'\n };\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = {\n target : null,\n dropzone : null,\n relatedTarget: dragEvent.target,\n draggable : dragEvent.interactable,\n dragEvent : dragEvent,\n interaction : this,\n timeStamp : dragEvent.timeStamp,\n type : 'dropdeactivate'\n };\n }\n if (dragEvent.type === 'dragmove' && this.dropTarget) {\n dropEvents.move = {\n target : this.dropElement,\n dropzone : this.dropTarget,\n relatedTarget: dragEvent.target,\n draggable : dragEvent.interactable,\n dragEvent : dragEvent,\n interaction : this,\n dragmove : dragEvent,\n timeStamp : dragEvent.timeStamp,\n type : 'dropmove'\n };\n dragEvent.dropzone = this.dropTarget;\n }\n\n return dropEvents;\n },\n\n currentAction: function () {\n return (this.dragging && 'drag') || (this.resizing && 'resize') || (this.gesturing && 'gesture') || null;\n },\n\n interacting: function () {\n return this.dragging || this.resizing || this.gesturing;\n },\n\n clearTargets: function () {\n this.target = this.element = null;\n\n this.dropTarget = this.dropElement = this.prevDropTarget = this.prevDropElement = null;\n },\n\n stop: function (event) {\n if (this.interacting()) {\n autoScroll.stop();\n this.matches = [];\n this.matchElements = [];\n\n var target = this.target;\n\n if (target.options.styleCursor) {\n target._doc.documentElement.style.cursor = '';\n }\n\n // prevent Default only if were previously interacting\n if (event && isFunction(event.preventDefault)) {\n this.checkAndPreventDefault(event, target, this.element);\n }\n\n if (this.dragging) {\n this.activeDrops.dropzones = this.activeDrops.elements = this.activeDrops.rects = null;\n }\n }\n\n this.clearTargets();\n\n this.pointerIsDown = this.snapStatus.locked = this.dragging = this.resizing = this.gesturing = false;\n this.prepared.name = this.prevEvent = null;\n this.inertiaStatus.resumeDx = this.inertiaStatus.resumeDy = 0;\n\n // remove pointers if their ID isn't in this.pointerIds\n for (var i = 0; i < this.pointers.length; i++) {\n if (indexOf(this.pointerIds, getPointerId(this.pointers[i])) === -1) {\n this.pointers.splice(i, 1);\n }\n }\n },\n\n inertiaFrame: function () {\n var inertiaStatus = this.inertiaStatus,\n options = this.target.options[this.prepared.name].inertia,\n lambda = options.resistance,\n t = new Date().getTime() / 1000 - inertiaStatus.t0;\n\n if (t < inertiaStatus.te) {\n\n var progress = 1 - (Math.exp(-lambda * t) - inertiaStatus.lambda_v0) / inertiaStatus.one_ve_v0;\n\n if (inertiaStatus.modifiedXe === inertiaStatus.xe && inertiaStatus.modifiedYe === inertiaStatus.ye) {\n inertiaStatus.sx = inertiaStatus.xe * progress;\n inertiaStatus.sy = inertiaStatus.ye * progress;\n }\n else {\n var quadPoint = getQuadraticCurvePoint(\n 0, 0,\n inertiaStatus.xe, inertiaStatus.ye,\n inertiaStatus.modifiedXe, inertiaStatus.modifiedYe,\n progress);\n\n inertiaStatus.sx = quadPoint.x;\n inertiaStatus.sy = quadPoint.y;\n }\n\n this.pointerMove(inertiaStatus.startEvent, inertiaStatus.startEvent);\n\n inertiaStatus.i = reqFrame(this.boundInertiaFrame);\n }\n else {\n inertiaStatus.ending = true;\n\n inertiaStatus.sx = inertiaStatus.modifiedXe;\n inertiaStatus.sy = inertiaStatus.modifiedYe;\n\n this.pointerMove(inertiaStatus.startEvent, inertiaStatus.startEvent);\n this.pointerEnd(inertiaStatus.startEvent, inertiaStatus.startEvent);\n\n inertiaStatus.active = inertiaStatus.ending = false;\n }\n },\n\n smoothEndFrame: function () {\n var inertiaStatus = this.inertiaStatus,\n t = new Date().getTime() - inertiaStatus.t0,\n duration = this.target.options[this.prepared.name].inertia.smoothEndDuration;\n\n if (t < duration) {\n inertiaStatus.sx = easeOutQuad(t, 0, inertiaStatus.xe, duration);\n inertiaStatus.sy = easeOutQuad(t, 0, inertiaStatus.ye, duration);\n\n this.pointerMove(inertiaStatus.startEvent, inertiaStatus.startEvent);\n\n inertiaStatus.i = reqFrame(this.boundSmoothEndFrame);\n }\n else {\n inertiaStatus.ending = true;\n\n inertiaStatus.sx = inertiaStatus.xe;\n inertiaStatus.sy = inertiaStatus.ye;\n\n this.pointerMove(inertiaStatus.startEvent, inertiaStatus.startEvent);\n this.pointerEnd(inertiaStatus.startEvent, inertiaStatus.startEvent);\n\n inertiaStatus.smoothEnd =\n inertiaStatus.active = inertiaStatus.ending = false;\n }\n },\n\n addPointer: function (pointer) {\n var id = getPointerId(pointer),\n index = this.mouse? 0 : indexOf(this.pointerIds, id);\n\n if (index === -1) {\n index = this.pointerIds.length;\n }\n\n this.pointerIds[index] = id;\n this.pointers[index] = pointer;\n\n return index;\n },\n\n removePointer: function (pointer) {\n var id = getPointerId(pointer),\n index = this.mouse? 0 : indexOf(this.pointerIds, id);\n\n if (index === -1) { return; }\n\n this.pointers .splice(index, 1);\n this.pointerIds .splice(index, 1);\n this.downTargets.splice(index, 1);\n this.downTimes .splice(index, 1);\n this.holdTimers .splice(index, 1);\n },\n\n recordPointer: function (pointer) {\n var index = this.mouse? 0: indexOf(this.pointerIds, getPointerId(pointer));\n\n if (index === -1) { return; }\n\n this.pointers[index] = pointer;\n },\n\n collectEventTargets: function (pointer, event, eventTarget, eventType) {\n var pointerIndex = this.mouse? 0 : indexOf(this.pointerIds, getPointerId(pointer));\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (eventType === 'tap' && (this.pointerWasMoved\n // or if the pointerup target is different to the pointerdown target\n || !(this.downTargets[pointerIndex] && this.downTargets[pointerIndex] === eventTarget))) {\n return;\n }\n\n var targets = [],\n elements = [],\n element = eventTarget;\n\n function collectSelectors (interactable, selector, context) {\n var els = ie8MatchesSelector\n ? context.querySelectorAll(selector)\n : undefined;\n\n if (interactable._iEvents[eventType]\n && isElement(element)\n && inContext(interactable, element)\n && !testIgnore(interactable, element, eventTarget)\n && testAllow(interactable, element, eventTarget)\n && matchesSelector(element, selector, els)) {\n\n targets.push(interactable);\n elements.push(element);\n }\n }\n\n while (element) {\n if (interact.isSet(element) && interact(element)._iEvents[eventType]) {\n targets.push(interact(element));\n elements.push(element);\n }\n\n interactables.forEachSelector(collectSelectors);\n\n element = parentElement(element);\n }\n\n // create the tap event even if there are no listeners so that\n // doubletap can still be created and fired\n if (targets.length || eventType === 'tap') {\n this.firePointers(pointer, event, eventTarget, targets, elements, eventType);\n }\n },\n\n firePointers: function (pointer, event, eventTarget, targets, elements, eventType) {\n var pointerIndex = this.mouse? 0 : indexOf(this.pointerIds, getPointerId(pointer)),\n pointerEvent = {},\n i,\n // for tap events\n interval, createNewDoubleTap;\n\n // if it's a doubletap then the event properties would have been\n // copied from the tap event and provided as the pointer argument\n if (eventType === 'doubletap') {\n pointerEvent = pointer;\n }\n else {\n pointerExtend(pointerEvent, event);\n if (event !== pointer) {\n pointerExtend(pointerEvent, pointer);\n }\n\n pointerEvent.preventDefault = preventOriginalDefault;\n pointerEvent.stopPropagation = InteractEvent.prototype.stopPropagation;\n pointerEvent.stopImmediatePropagation = InteractEvent.prototype.stopImmediatePropagation;\n pointerEvent.interaction = this;\n\n pointerEvent.timeStamp = new Date().getTime();\n pointerEvent.originalEvent = event;\n pointerEvent.originalPointer = pointer;\n pointerEvent.type = eventType;\n pointerEvent.pointerId = getPointerId(pointer);\n pointerEvent.pointerType = this.mouse? 'mouse' : !supportsPointerEvent? 'touch'\n : isString(pointer.pointerType)\n ? pointer.pointerType\n : [,,'touch', 'pen', 'mouse'][pointer.pointerType];\n }\n\n if (eventType === 'tap') {\n pointerEvent.dt = pointerEvent.timeStamp - this.downTimes[pointerIndex];\n\n interval = pointerEvent.timeStamp - this.tapTime;\n createNewDoubleTap = !!(this.prevTap && this.prevTap.type !== 'doubletap'\n && this.prevTap.target === pointerEvent.target\n && interval < 500);\n\n pointerEvent.double = createNewDoubleTap;\n\n this.tapTime = pointerEvent.timeStamp;\n }\n\n for (i = 0; i < targets.length; i++) {\n pointerEvent.currentTarget = elements[i];\n pointerEvent.interactable = targets[i];\n targets[i].fire(pointerEvent);\n\n if (pointerEvent.immediatePropagationStopped\n ||(pointerEvent.propagationStopped && elements[i + 1] !== pointerEvent.currentTarget)) {\n break;\n }\n }\n\n if (createNewDoubleTap) {\n var doubleTap = {};\n\n extend(doubleTap, pointerEvent);\n\n doubleTap.dt = interval;\n doubleTap.type = 'doubletap';\n\n this.collectEventTargets(doubleTap, event, eventTarget, 'doubletap');\n\n this.prevTap = doubleTap;\n }\n else if (eventType === 'tap') {\n this.prevTap = pointerEvent;\n }\n },\n\n validateSelector: function (pointer, event, matches, matchElements) {\n for (var i = 0, len = matches.length; i < len; i++) {\n var match = matches[i],\n matchElement = matchElements[i],\n action = validateAction(match.getAction(pointer, event, this, matchElement), match);\n\n if (action && withinInteractionLimit(match, matchElement, action)) {\n this.target = match;\n this.element = matchElement;\n\n return action;\n }\n }\n },\n\n setSnapping: function (pageCoords, status) {\n var snap = this.target.options[this.prepared.name].snap,\n targets = [],\n target,\n page,\n i;\n\n status = status || this.snapStatus;\n\n if (status.useStatusXY) {\n page = { x: status.x, y: status.y };\n }\n else {\n var origin = getOriginXY(this.target, this.element);\n\n page = extend({}, pageCoords);\n\n page.x -= origin.x;\n page.y -= origin.y;\n }\n\n status.realX = page.x;\n status.realY = page.y;\n\n page.x = page.x - this.inertiaStatus.resumeDx;\n page.y = page.y - this.inertiaStatus.resumeDy;\n\n var len = snap.targets? snap.targets.length : 0;\n\n for (var relIndex = 0; relIndex < this.snapOffsets.length; relIndex++) {\n var relative = {\n x: page.x - this.snapOffsets[relIndex].x,\n y: page.y - this.snapOffsets[relIndex].y\n };\n\n for (i = 0; i < len; i++) {\n if (isFunction(snap.targets[i])) {\n target = snap.targets[i](relative.x, relative.y, this);\n }\n else {\n target = snap.targets[i];\n }\n\n if (!target) { continue; }\n\n targets.push({\n x: isNumber(target.x) ? (target.x + this.snapOffsets[relIndex].x) : relative.x,\n y: isNumber(target.y) ? (target.y + this.snapOffsets[relIndex].y) : relative.y,\n\n range: isNumber(target.range)? target.range: snap.range\n });\n }\n }\n\n var closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n dx: 0,\n dy: 0\n };\n\n for (i = 0, len = targets.length; i < len; i++) {\n target = targets[i];\n\n var range = target.range,\n dx = target.x - page.x,\n dy = target.y - page.y,\n distance = hypot(dx, dy),\n inRange = distance <= range;\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false;\n }\n\n if (!closest.target || (inRange\n // is the closest target in range?\n ? (closest.inRange && range !== Infinity\n // the pointer is relatively deeper in this target\n ? distance / range < closest.distance / closest.range\n // this target has Infinite range and the closest doesn't\n : (range === Infinity && closest.range !== Infinity)\n // OR this target is closer that the previous closest\n || distance < closest.distance)\n // The other is not in range and the pointer is closer to this target\n : (!closest.inRange && distance < closest.distance))) {\n\n if (range === Infinity) {\n inRange = true;\n }\n\n closest.target = target;\n closest.distance = distance;\n closest.range = range;\n closest.inRange = inRange;\n closest.dx = dx;\n closest.dy = dy;\n\n status.range = range;\n }\n }\n\n var snapChanged;\n\n if (closest.target) {\n snapChanged = (status.snappedX !== closest.target.x || status.snappedY !== closest.target.y);\n\n status.snappedX = closest.target.x;\n status.snappedY = closest.target.y;\n }\n else {\n snapChanged = true;\n\n status.snappedX = NaN;\n status.snappedY = NaN;\n }\n\n status.dx = closest.dx;\n status.dy = closest.dy;\n\n status.changed = (snapChanged || (closest.inRange && !status.locked));\n status.locked = closest.inRange;\n\n return status;\n },\n\n setRestriction: function (pageCoords, status) {\n var target = this.target,\n restrict = target && target.options[this.prepared.name].restrict,\n restriction = restrict && restrict.restriction,\n page;\n\n if (!restriction) {\n return status;\n }\n\n status = status || this.restrictStatus;\n\n page = status.useStatusXY\n ? page = { x: status.x, y: status.y }\n : page = extend({}, pageCoords);\n\n if (status.snap && status.snap.locked) {\n page.x += status.snap.dx || 0;\n page.y += status.snap.dy || 0;\n }\n\n page.x -= this.inertiaStatus.resumeDx;\n page.y -= this.inertiaStatus.resumeDy;\n\n status.dx = 0;\n status.dy = 0;\n status.restricted = false;\n\n var rect, restrictedX, restrictedY;\n\n if (isString(restriction)) {\n if (restriction === 'parent') {\n restriction = parentElement(this.element);\n }\n else if (restriction === 'self') {\n restriction = target.getRect(this.element);\n }\n else {\n restriction = closest(this.element, restriction);\n }\n\n if (!restriction) { return status; }\n }\n\n if (isFunction(restriction)) {\n restriction = restriction(page.x, page.y, this.element);\n }\n\n if (isElement(restriction)) {\n restriction = getElementRect(restriction);\n }\n\n rect = restriction;\n\n if (!restriction) {\n restrictedX = page.x;\n restrictedY = page.y;\n }\n // object is assumed to have\n // x, y, width, height or\n // left, top, right, bottom\n else if ('x' in restriction && 'y' in restriction) {\n restrictedX = Math.max(Math.min(rect.x + rect.width - this.restrictOffset.right , page.x), rect.x + this.restrictOffset.left);\n restrictedY = Math.max(Math.min(rect.y + rect.height - this.restrictOffset.bottom, page.y), rect.y + this.restrictOffset.top );\n }\n else {\n restrictedX = Math.max(Math.min(rect.right - this.restrictOffset.right , page.x), rect.left + this.restrictOffset.left);\n restrictedY = Math.max(Math.min(rect.bottom - this.restrictOffset.bottom, page.y), rect.top + this.restrictOffset.top );\n }\n\n status.dx = restrictedX - page.x;\n status.dy = restrictedY - page.y;\n\n status.changed = status.restrictedX !== restrictedX || status.restrictedY !== restrictedY;\n status.restricted = !!(status.dx || status.dy);\n\n status.restrictedX = restrictedX;\n status.restrictedY = restrictedY;\n\n return status;\n },\n\n checkAndPreventDefault: function (event, interactable, element) {\n if (!(interactable = interactable || this.target)) { return; }\n\n var options = interactable.options,\n prevent = options.preventDefault;\n\n if (prevent === 'auto' && element && !/^(input|select|textarea)$/i.test(event.target.nodeName)) {\n // do not preventDefault on pointerdown if the prepared action is a drag\n // and dragging can only start from a certain direction - this allows\n // a touch to pan the viewport if a drag isn't in the right direction\n if (/down|start/i.test(event.type)\n && this.prepared.name === 'drag' && options.drag.axis !== 'xy') {\n\n return;\n }\n\n // with manualStart, only preventDefault while interacting\n if (options[this.prepared.name] && options[this.prepared.name].manualStart\n && !this.interacting()) {\n return;\n }\n\n event.preventDefault();\n return;\n }\n\n if (prevent === 'always') {\n event.preventDefault();\n return;\n }\n },\n\n calcInertia: function (status) {\n var inertiaOptions = this.target.options[this.prepared.name].inertia,\n lambda = inertiaOptions.resistance,\n inertiaDur = -Math.log(inertiaOptions.endSpeed / status.v0) / lambda;\n\n status.x0 = this.prevEvent.pageX;\n status.y0 = this.prevEvent.pageY;\n status.t0 = status.startEvent.timeStamp / 1000;\n status.sx = status.sy = 0;\n\n status.modifiedXe = status.xe = (status.vx0 - inertiaDur) / lambda;\n status.modifiedYe = status.ye = (status.vy0 - inertiaDur) / lambda;\n status.te = inertiaDur;\n\n status.lambda_v0 = lambda / status.v0;\n status.one_ve_v0 = 1 - inertiaOptions.endSpeed / status.v0;\n },\n\n autoScrollMove: function (pointer) {\n if (!(this.interacting()\n && checkAutoScroll(this.target, this.prepared.name))) {\n return;\n }\n\n if (this.inertiaStatus.active) {\n autoScroll.x = autoScroll.y = 0;\n return;\n }\n\n var top,\n right,\n bottom,\n left,\n options = this.target.options[this.prepared.name].autoScroll,\n container = options.container || getWindow(this.element);\n\n if (isWindow(container)) {\n left = pointer.clientX < autoScroll.margin;\n top = pointer.clientY < autoScroll.margin;\n right = pointer.clientX > container.innerWidth - autoScroll.margin;\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin;\n }\n else {\n var rect = getElementClientRect(container);\n\n left = pointer.clientX < rect.left + autoScroll.margin;\n top = pointer.clientY < rect.top + autoScroll.margin;\n right = pointer.clientX > rect.right - autoScroll.margin;\n bottom = pointer.clientY > rect.bottom - autoScroll.margin;\n }\n\n autoScroll.x = (right ? 1: left? -1: 0);\n autoScroll.y = (bottom? 1: top? -1: 0);\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin;\n autoScroll.speed = options.speed;\n\n autoScroll.start(this);\n }\n },\n\n _updateEventTargets: function (target, currentTarget) {\n this._eventTarget = target;\n this._curEventTarget = currentTarget;\n }\n\n };\n\n function getInteractionFromPointer (pointer, eventType, eventTarget) {\n var i = 0, len = interactions.length,\n mouseEvent = (/mouse/i.test(pointer.pointerType || eventType)\n // MSPointerEvent.MSPOINTER_TYPE_MOUSE\n || pointer.pointerType === 4),\n interaction;\n\n var id = getPointerId(pointer);\n\n // try to resume inertia with a new pointer\n if (/down|start/i.test(eventType)) {\n for (i = 0; i < len; i++) {\n interaction = interactions[i];\n\n var element = eventTarget;\n\n if (interaction.inertiaStatus.active && interaction.target.options[interaction.prepared.name].inertia.allowResume\n && (interaction.mouse === mouseEvent)) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction;\n }\n element = parentElement(element);\n }\n }\n }\n }\n\n // if it's a mouse interaction\n if (mouseEvent || !(supportsTouch || supportsPointerEvent)) {\n\n // find a mouse interaction that's not in inertia phase\n for (i = 0; i < len; i++) {\n if (interactions[i].mouse && !interactions[i].inertiaStatus.active) {\n return interactions[i];\n }\n }\n\n // find any interaction specifically for mouse.\n // if the eventType is a mousedown, and inertia is active\n // ignore the interaction\n for (i = 0; i < len; i++) {\n if (interactions[i].mouse && !(/down/.test(eventType) && interactions[i].inertiaStatus.active)) {\n return interaction;\n }\n }\n\n // create a new interaction for mouse\n interaction = new Interaction();\n interaction.mouse = true;\n\n return interaction;\n }\n\n // get interaction that has this pointer\n for (i = 0; i < len; i++) {\n if (contains(interactions[i].pointerIds, id)) {\n return interactions[i];\n }\n }\n\n // at this stage, a pointerUp should not return an interaction\n if (/up|end|out/i.test(eventType)) {\n return null;\n }\n\n // get first idle interaction\n for (i = 0; i < len; i++) {\n interaction = interactions[i];\n\n if ((!interaction.prepared.name || (interaction.target.options.gesture.enabled))\n && !interaction.interacting()\n && !(!mouseEvent && interaction.mouse)) {\n\n return interaction;\n }\n }\n\n return new Interaction();\n }\n\n function doOnInteractions (method) {\n return (function (event) {\n var interaction,\n eventTarget = getActualElement(event.path\n ? event.path[0]\n : event.target),\n curEventTarget = getActualElement(event.currentTarget),\n i;\n\n if (supportsTouch && /touch/.test(event.type)) {\n prevTouchTime = new Date().getTime();\n\n for (i = 0; i < event.changedTouches.length; i++) {\n var pointer = event.changedTouches[i];\n\n interaction = getInteractionFromPointer(pointer, event.type, eventTarget);\n\n if (!interaction) { continue; }\n\n interaction._updateEventTargets(eventTarget, curEventTarget);\n\n interaction[method](pointer, event, eventTarget, curEventTarget);\n }\n }\n else {\n if (!supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (i = 0; i < interactions.length; i++) {\n if (!interactions[i].mouse && interactions[i].pointerIsDown) {\n return;\n }\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n if (new Date().getTime() - prevTouchTime < 500) {\n return;\n }\n }\n\n interaction = getInteractionFromPointer(event, event.type, eventTarget);\n\n if (!interaction) { return; }\n\n interaction._updateEventTargets(eventTarget, curEventTarget);\n\n interaction[method](event, event, eventTarget, curEventTarget);\n }\n });\n }\n\n function InteractEvent (interaction, event, action, phase, element, related) {\n var client,\n page,\n target = interaction.target,\n snapStatus = interaction.snapStatus,\n restrictStatus = interaction.restrictStatus,\n pointers = interaction.pointers,\n deltaSource = (target && target.options || defaultOptions).deltaSource,\n sourceX = deltaSource + 'X',\n sourceY = deltaSource + 'Y',\n options = target? target.options: defaultOptions,\n origin = getOriginXY(target, element),\n starting = phase === 'start',\n ending = phase === 'end',\n coords = starting? interaction.startCoords : interaction.curCoords;\n\n element = element || interaction.element;\n\n page = extend({}, coords.page);\n client = extend({}, coords.client);\n\n page.x -= origin.x;\n page.y -= origin.y;\n\n client.x -= origin.x;\n client.y -= origin.y;\n\n var relativePoints = options[action].snap && options[action].snap.relativePoints ;\n\n if (checkSnap(target, action) && !(starting && relativePoints && relativePoints.length)) {\n this.snap = {\n range : snapStatus.range,\n locked : snapStatus.locked,\n x : snapStatus.snappedX,\n y : snapStatus.snappedY,\n realX : snapStatus.realX,\n realY : snapStatus.realY,\n dx : snapStatus.dx,\n dy : snapStatus.dy\n };\n\n if (snapStatus.locked) {\n page.x += snapStatus.dx;\n page.y += snapStatus.dy;\n client.x += snapStatus.dx;\n client.y += snapStatus.dy;\n }\n }\n\n if (checkRestrict(target, action) && !(starting && options[action].restrict.elementRect) && restrictStatus.restricted) {\n page.x += restrictStatus.dx;\n page.y += restrictStatus.dy;\n client.x += restrictStatus.dx;\n client.y += restrictStatus.dy;\n\n this.restrict = {\n dx: restrictStatus.dx,\n dy: restrictStatus.dy\n };\n }\n\n this.pageX = page.x;\n this.pageY = page.y;\n this.clientX = client.x;\n this.clientY = client.y;\n\n this.x0 = interaction.startCoords.page.x - origin.x;\n this.y0 = interaction.startCoords.page.y - origin.y;\n this.clientX0 = interaction.startCoords.client.x - origin.x;\n this.clientY0 = interaction.startCoords.client.y - origin.y;\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.shiftKey = event.shiftKey;\n this.metaKey = event.metaKey;\n this.button = event.button;\n this.buttons = event.buttons;\n this.target = element;\n this.t0 = interaction.downTimes[0];\n this.type = action + (phase || '');\n\n this.interaction = interaction;\n this.interactable = target;\n\n var inertiaStatus = interaction.inertiaStatus;\n\n if (inertiaStatus.active) {\n this.detail = 'inertia';\n }\n\n if (related) {\n this.relatedTarget = related;\n }\n\n // end event dx, dy is difference between start and end points\n if (ending) {\n if (deltaSource === 'client') {\n this.dx = client.x - interaction.startCoords.client.x;\n this.dy = client.y - interaction.startCoords.client.y;\n }\n else {\n this.dx = page.x - interaction.startCoords.page.x;\n this.dy = page.y - interaction.startCoords.page.y;\n }\n }\n else if (starting) {\n this.dx = 0;\n this.dy = 0;\n }\n // copy properties from previousmove if starting inertia\n else if (phase === 'inertiastart') {\n this.dx = interaction.prevEvent.dx;\n this.dy = interaction.prevEvent.dy;\n }\n else {\n if (deltaSource === 'client') {\n this.dx = client.x - interaction.prevEvent.clientX;\n this.dy = client.y - interaction.prevEvent.clientY;\n }\n else {\n this.dx = page.x - interaction.prevEvent.pageX;\n this.dy = page.y - interaction.prevEvent.pageY;\n }\n }\n if (interaction.prevEvent && interaction.prevEvent.detail === 'inertia'\n && !inertiaStatus.active\n && options[action].inertia && options[action].inertia.zeroResumeDelta) {\n\n inertiaStatus.resumeDx += this.dx;\n inertiaStatus.resumeDy += this.dy;\n\n this.dx = this.dy = 0;\n }\n\n if (action === 'resize' && interaction.resizeAxes) {\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n this.dx = this.dy;\n }\n else {\n this.dy = this.dx;\n }\n this.axes = 'xy';\n }\n else {\n this.axes = interaction.resizeAxes;\n\n if (interaction.resizeAxes === 'x') {\n this.dy = 0;\n }\n else if (interaction.resizeAxes === 'y') {\n this.dx = 0;\n }\n }\n }\n else if (action === 'gesture') {\n this.touches = [pointers[0], pointers[1]];\n\n if (starting) {\n this.distance = touchDistance(pointers, deltaSource);\n this.box = touchBBox(pointers);\n this.scale = 1;\n this.ds = 0;\n this.angle = touchAngle(pointers, undefined, deltaSource);\n this.da = 0;\n }\n else if (ending || event instanceof InteractEvent) {\n this.distance = interaction.prevEvent.distance;\n this.box = interaction.prevEvent.box;\n this.scale = interaction.prevEvent.scale;\n this.ds = this.scale - 1;\n this.angle = interaction.prevEvent.angle;\n this.da = this.angle - interaction.gesture.startAngle;\n }\n else {\n this.distance = touchDistance(pointers, deltaSource);\n this.box = touchBBox(pointers);\n this.scale = this.distance / interaction.gesture.startDistance;\n this.angle = touchAngle(pointers, interaction.gesture.prevAngle, deltaSource);\n\n this.ds = this.scale - interaction.gesture.prevScale;\n this.da = this.angle - interaction.gesture.prevAngle;\n }\n }\n\n if (starting) {\n this.timeStamp = interaction.downTimes[0];\n this.dt = 0;\n this.duration = 0;\n this.speed = 0;\n this.velocityX = 0;\n this.velocityY = 0;\n }\n else if (phase === 'inertiastart') {\n this.timeStamp = interaction.prevEvent.timeStamp;\n this.dt = interaction.prevEvent.dt;\n this.duration = interaction.prevEvent.duration;\n this.speed = interaction.prevEvent.speed;\n this.velocityX = interaction.prevEvent.velocityX;\n this.velocityY = interaction.prevEvent.velocityY;\n }\n else {\n this.timeStamp = new Date().getTime();\n this.dt = this.timeStamp - interaction.prevEvent.timeStamp;\n this.duration = this.timeStamp - interaction.downTimes[0];\n\n if (event instanceof InteractEvent) {\n var dx = this[sourceX] - interaction.prevEvent[sourceX],\n dy = this[sourceY] - interaction.prevEvent[sourceY],\n dt = this.dt / 1000;\n\n this.speed = hypot(dx, dy) / dt;\n this.velocityX = dx / dt;\n this.velocityY = dy / dt;\n }\n // if normal move or end event, use previous user event coords\n else {\n // speed and velocity in pixels per second\n this.speed = interaction.pointerDelta[deltaSource].speed;\n this.velocityX = interaction.pointerDelta[deltaSource].vx;\n this.velocityY = interaction.pointerDelta[deltaSource].vy;\n }\n }\n\n if ((ending || phase === 'inertiastart')\n && interaction.prevEvent.speed > 600 && this.timeStamp - interaction.prevEvent.timeStamp < 150) {\n\n var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI,\n overlap = 22.5;\n\n if (angle < 0) {\n angle += 360;\n }\n\n var left = 135 - overlap <= angle && angle < 225 + overlap,\n up = 225 - overlap <= angle && angle < 315 + overlap,\n\n right = !left && (315 - overlap <= angle || angle < 45 + overlap),\n down = !up && 45 - overlap <= angle && angle < 135 + overlap;\n\n this.swipe = {\n up : up,\n down : down,\n left : left,\n right: right,\n angle: angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY\n }\n };\n }\n }\n\n InteractEvent.prototype = {\n preventDefault: blank,\n stopImmediatePropagation: function () {\n this.immediatePropagationStopped = this.propagationStopped = true;\n },\n stopPropagation: function () {\n this.propagationStopped = true;\n }\n };\n\n function preventOriginalDefault () {\n this.originalEvent.preventDefault();\n }\n\n function getActionCursor (action) {\n var cursor = '';\n\n if (action.name === 'drag') {\n cursor = actionCursors.drag;\n }\n if (action.name === 'resize') {\n if (action.axis) {\n cursor = actionCursors[action.name + action.axis];\n }\n else if (action.edges) {\n var cursorKey = 'resize',\n edgeNames = ['top', 'bottom', 'left', 'right'];\n\n for (var i = 0; i < 4; i++) {\n if (action.edges[edgeNames[i]]) {\n cursorKey += edgeNames[i];\n }\n }\n\n cursor = actionCursors[cursorKey];\n }\n }\n\n return cursor;\n }\n\n function checkResizeEdge (name, value, page, element, interactableElement, rect, margin) {\n // false, '', undefined, null\n if (!value) { return false; }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n var width = isNumber(rect.width)? rect.width : rect.right - rect.left,\n height = isNumber(rect.height)? rect.height : rect.bottom - rect.top;\n\n if (width < 0) {\n if (name === 'left' ) { name = 'right'; }\n else if (name === 'right') { name = 'left' ; }\n }\n if (height < 0) {\n if (name === 'top' ) { name = 'bottom'; }\n else if (name === 'bottom') { name = 'top' ; }\n }\n\n if (name === 'left' ) { return page.x < ((width >= 0? rect.left: rect.right ) + margin); }\n if (name === 'top' ) { return page.y < ((height >= 0? rect.top : rect.bottom) + margin); }\n\n if (name === 'right' ) { return page.x > ((width >= 0? rect.right : rect.left) - margin); }\n if (name === 'bottom') { return page.y > ((height >= 0? rect.bottom: rect.top ) - margin); }\n }\n\n // the remaining checks require an element\n if (!isElement(element)) { return false; }\n\n return isElement(value)\n // the value is an element to use as a resize handle\n ? value === element\n // otherwise check if element matches value as selector\n : matchesUpTo(element, value, interactableElement);\n }\n\n function defaultActionChecker (pointer, interaction, element) {\n var rect = this.getRect(element),\n shouldResize = false,\n action = null,\n resizeAxes = null,\n resizeEdges,\n page = extend({}, interaction.curCoords.page),\n options = this.options;\n\n if (!rect) { return null; }\n\n if (actionIsEnabled.resize && options.resize.enabled) {\n var resizeOptions = options.resize;\n\n resizeEdges = {\n left: false, right: false, top: false, bottom: false\n };\n\n // if using resize.edges\n if (isObject(resizeOptions.edges)) {\n for (var edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(edge,\n resizeOptions.edges[edge],\n page,\n interaction._eventTarget,\n element,\n rect,\n resizeOptions.margin || margin);\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right;\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;\n\n shouldResize = resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom;\n }\n else {\n var right = options.resize.axis !== 'y' && page.x > (rect.right - margin),\n bottom = options.resize.axis !== 'x' && page.y > (rect.bottom - margin);\n\n shouldResize = right || bottom;\n resizeAxes = (right? 'x' : '') + (bottom? 'y' : '');\n }\n }\n\n action = shouldResize\n ? 'resize'\n : actionIsEnabled.drag && options.drag.enabled\n ? 'drag'\n : null;\n\n if (actionIsEnabled.gesture\n && interaction.pointerIds.length >=2\n && !(interaction.dragging || interaction.resizing)) {\n action = 'gesture';\n }\n\n if (action) {\n return {\n name: action,\n axis: resizeAxes,\n edges: resizeEdges\n };\n }\n\n return null;\n }\n\n // Check if action is enabled globally and the current target supports it\n // If so, return the validated action. Otherwise, return null\n function validateAction (action, interactable) {\n if (!isObject(action)) { return null; }\n\n var actionName = action.name,\n options = interactable.options;\n\n if (( (actionName === 'resize' && options.resize.enabled )\n || (actionName === 'drag' && options.drag.enabled )\n || (actionName === 'gesture' && options.gesture.enabled))\n && actionIsEnabled[actionName]) {\n\n if (actionName === 'resize' || actionName === 'resizeyx') {\n actionName = 'resizexy';\n }\n\n return action;\n }\n return null;\n }\n\n var listeners = {},\n interactionListeners = [\n 'dragStart', 'dragMove', 'resizeStart', 'resizeMove', 'gestureStart', 'gestureMove',\n 'pointerOver', 'pointerOut', 'pointerHover', 'selectorDown',\n 'pointerDown', 'pointerMove', 'pointerUp', 'pointerCancel', 'pointerEnd',\n 'addPointer', 'removePointer', 'recordPointer', 'autoScrollMove'\n ];\n\n for (var i = 0, len = interactionListeners.length; i < len; i++) {\n var name = interactionListeners[i];\n\n listeners[name] = doOnInteractions(name);\n }\n\n // bound to the interactable context when a DOM event\n // listener is added to a selector interactable\n function delegateListener (event, useCapture) {\n var fakeEvent = {},\n delegated = delegatedEvents[event.type],\n eventTarget = getActualElement(event.path\n ? event.path[0]\n : event.target),\n element = eventTarget;\n\n useCapture = useCapture? true: false;\n\n // duplicate the event so that currentTarget can be changed\n for (var prop in event) {\n fakeEvent[prop] = event[prop];\n }\n\n fakeEvent.originalEvent = event;\n fakeEvent.preventDefault = preventOriginalDefault;\n\n // climb up document tree looking for selector matches\n while (isElement(element)) {\n for (var i = 0; i < delegated.selectors.length; i++) {\n var selector = delegated.selectors[i],\n context = delegated.contexts[i];\n\n if (matchesSelector(element, selector)\n && nodeContains(context, eventTarget)\n && nodeContains(context, element)) {\n\n var listeners = delegated.listeners[i];\n\n fakeEvent.currentTarget = element;\n\n for (var j = 0; j < listeners.length; j++) {\n if (listeners[j][1] === useCapture) {\n listeners[j][0](fakeEvent);\n }\n }\n }\n }\n\n element = parentElement(element);\n }\n }\n\n function delegateUseCapture (event) {\n return delegateListener.call(this, event, true);\n }\n\n interactables.indexOfElement = function indexOfElement (element, context) {\n context = context || document;\n\n for (var i = 0; i < this.length; i++) {\n var interactable = this[i];\n\n if ((interactable.selector === element\n && (interactable._context === context))\n || (!interactable.selector && interactable._element === element)) {\n\n return i;\n }\n }\n return -1;\n };\n\n interactables.get = function interactableGet (element, options) {\n return this[this.indexOfElement(element, options && options.context)];\n };\n\n interactables.forEachSelector = function (callback) {\n for (var i = 0; i < this.length; i++) {\n var interactable = this[i];\n\n if (!interactable.selector) {\n continue;\n }\n\n var ret = callback(interactable, interactable.selector, interactable._context, i, this);\n\n if (ret !== undefined) {\n return ret;\n }\n }\n };\n\n /*\\\n * interact\n [ method ]\n *\n * The methods of this variable can be used to set elements as\n * interactables and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to\n * configure it.\n *\n - element (Element | string) The HTML or SVG Element to interact with or CSS selector\n = (object) An @Interactable\n *\n > Usage\n | interact(document.getElementById('draggable')).draggable(true);\n |\n | var rectables = interact('rect');\n | rectables\n | .gesturable(true)\n | .on('gesturemove', function (event) {\n | // something cool...\n | })\n | .autoScroll(true);\n \\*/\n function interact (element, options) {\n return interactables.get(element, options) || new Interactable(element, options);\n }\n\n /*\\\n * Interactable\n [ property ]\n **\n * Object type returned by @interact\n \\*/\n function Interactable (element, options) {\n this._element = element;\n this._iEvents = this._iEvents || {};\n\n var _window;\n\n if (trySelector(element)) {\n this.selector = element;\n\n var context = options && options.context;\n\n _window = context? getWindow(context) : window;\n\n if (context && (_window.Node\n ? context instanceof _window.Node\n : (isElement(context) || context === _window.document))) {\n\n this._context = context;\n }\n }\n else {\n _window = getWindow(element);\n\n if (isElement(element, _window)) {\n\n if (PointerEvent) {\n events.add(this._element, pEventTypes.down, listeners.pointerDown );\n events.add(this._element, pEventTypes.move, listeners.pointerHover);\n }\n else {\n events.add(this._element, 'mousedown' , listeners.pointerDown );\n events.add(this._element, 'mousemove' , listeners.pointerHover);\n events.add(this._element, 'touchstart', listeners.pointerDown );\n events.add(this._element, 'touchmove' , listeners.pointerHover);\n }\n }\n }\n\n this._doc = _window.document;\n\n if (!contains(documents, this._doc)) {\n listenToDocument(this._doc);\n }\n\n interactables.push(this);\n\n this.set(options);\n }\n\n Interactable.prototype = {\n setOnEvents: function (action, phases) {\n if (action === 'drop') {\n if (isFunction(phases.ondrop) ) { this.ondrop = phases.ondrop ; }\n if (isFunction(phases.ondropactivate) ) { this.ondropactivate = phases.ondropactivate ; }\n if (isFunction(phases.ondropdeactivate)) { this.ondropdeactivate = phases.ondropdeactivate; }\n if (isFunction(phases.ondragenter) ) { this.ondragenter = phases.ondragenter ; }\n if (isFunction(phases.ondragleave) ) { this.ondragleave = phases.ondragleave ; }\n if (isFunction(phases.ondropmove) ) { this.ondropmove = phases.ondropmove ; }\n }\n else {\n action = 'on' + action;\n\n if (isFunction(phases.onstart) ) { this[action + 'start' ] = phases.onstart ; }\n if (isFunction(phases.onmove) ) { this[action + 'move' ] = phases.onmove ; }\n if (isFunction(phases.onend) ) { this[action + 'end' ] = phases.onend ; }\n if (isFunction(phases.oninertiastart)) { this[action + 'inertiastart' ] = phases.oninertiastart ; }\n }\n\n return this;\n },\n\n /*\\\n * Interactable.draggable\n [ method ]\n *\n * Gets or sets whether drag actions can be performed on the\n * Interactable\n *\n = (boolean) Indicates if this can be the target of drag events\n | var isDraggable = interact('ul li').draggable();\n * or\n - options (boolean | object) #optional true/false or An object with event listeners to be fired on drag events (object makes the Interactable draggable)\n = (object) This Interactable\n | interact(element).draggable({\n | onstart: function (event) {},\n | onmove : function (event) {},\n | onend : function (event) {},\n |\n | // the axis in which the first movement must be\n | // for the drag sequence to start\n | // 'xy' by default - any direction\n | axis: 'x' || 'y' || 'xy',\n |\n | // max number of drags that can happen concurrently\n | // with elements of this Interactable. Infinity by default\n | max: Infinity,\n |\n | // max number of drags that can target the same element+Interactable\n | // 1 by default\n | maxPerElement: 2\n | });\n \\*/\n draggable: function (options) {\n if (isObject(options)) {\n this.options.drag.enabled = options.enabled === false? false: true;\n this.setPerAction('drag', options);\n this.setOnEvents('drag', options);\n\n if (/^x$|^y$|^xy$/.test(options.axis)) {\n this.options.drag.axis = options.axis;\n }\n else if (options.axis === null) {\n delete this.options.drag.axis;\n }\n\n return this;\n }\n\n if (isBool(options)) {\n this.options.drag.enabled = options;\n\n return this;\n }\n\n return this.options.drag;\n },\n\n setPerAction: function (action, options) {\n // for all the default per-action options\n for (var option in options) {\n // if this option exists for this action\n if (option in defaultOptions[action]) {\n // if the option in the options arg is an object value\n if (isObject(options[option])) {\n // duplicate the object\n this.options[action][option] = extend(this.options[action][option] || {}, options[option]);\n\n if (isObject(defaultOptions.perAction[option]) && 'enabled' in defaultOptions.perAction[option]) {\n this.options[action][option].enabled = options[option].enabled === false? false : true;\n }\n }\n else if (isBool(options[option]) && isObject(defaultOptions.perAction[option])) {\n this.options[action][option].enabled = options[option];\n }\n else if (options[option] !== undefined) {\n // or if it's not undefined, do a plain assignment\n this.options[action][option] = options[option];\n }\n }\n }\n },\n\n /*\\\n * Interactable.dropzone\n [ method ]\n *\n * Returns or sets whether elements can be dropped onto this\n * Interactable to trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS selector or element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed values are:\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the\n * draggable is over the dropzone\n *\n - options (boolean | object | null) #optional The new value to be set.\n | interact('.drop').dropzone({\n | accept: '.can-drop' || document.getElementById('single-drop'),\n | overlap: 'pointer' || 'center' || zeroToOne\n | }\n = (boolean | object) The current setting or this Interactable\n \\*/\n dropzone: function (options) {\n if (isObject(options)) {\n this.options.drop.enabled = options.enabled === false? false: true;\n this.setOnEvents('drop', options);\n\n if (/^(pointer|center)$/.test(options.overlap)) {\n this.options.drop.overlap = options.overlap;\n }\n else if (isNumber(options.overlap)) {\n this.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);\n }\n if ('accept' in options) {\n this.options.drop.accept = options.accept;\n }\n if ('checker' in options) {\n this.options.drop.checker = options.checker;\n }\n\n return this;\n }\n\n if (isBool(options)) {\n this.options.drop.enabled = options;\n\n return this;\n }\n\n return this.options.drop;\n },\n\n dropCheck: function (dragEvent, event, draggable, draggableElement, dropElement, rect) {\n var dropped = false;\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || this.getRect(dropElement))) {\n return (this.options.drop.checker\n ? this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement)\n : false);\n }\n\n var dropOverlap = this.options.drop.overlap;\n\n if (dropOverlap === 'pointer') {\n var page = getPageXY(dragEvent),\n origin = getOriginXY(draggable, draggableElement),\n horizontal,\n vertical;\n\n page.x += origin.x;\n page.y += origin.y;\n\n horizontal = (page.x > rect.left) && (page.x < rect.right);\n vertical = (page.y > rect.top ) && (page.y < rect.bottom);\n\n dropped = horizontal && vertical;\n }\n\n var dragRect = draggable.getRect(draggableElement);\n\n if (dropOverlap === 'center') {\n var cx = dragRect.left + dragRect.width / 2,\n cy = dragRect.top + dragRect.height / 2;\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;\n }\n\n if (isNumber(dropOverlap)) {\n var overlapArea = (Math.max(0, Math.min(rect.right , dragRect.right ) - Math.max(rect.left, dragRect.left))\n * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top , dragRect.top ))),\n overlapRatio = overlapArea / (dragRect.width * dragRect.height);\n\n dropped = overlapRatio >= dropOverlap;\n }\n\n if (this.options.drop.checker) {\n dropped = this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement);\n }\n\n return dropped;\n },\n\n /*\\\n * Interactable.dropChecker\n [ method ]\n *\n * DEPRECATED. Use interactable.dropzone({ checker: function... }) instead.\n *\n * Gets or sets the function used to check if a dragged element is\n * over this Interactable.\n *\n - checker (function) #optional The function that will be called when checking for a drop\n = (Function | Interactable) The checker function or this Interactable\n *\n * The checker function takes the following arguments:\n *\n - dragEvent (InteractEvent) The related dragmove or dragend event\n - event (TouchEvent | PointerEvent | MouseEvent) The user move/up/end Event related to the dragEvent\n - dropped (boolean) The value from the default drop checker\n - dropzone (Interactable) The dropzone interactable\n - dropElement (Element) The dropzone element\n - draggable (Interactable) The Interactable being dragged\n - draggableElement (Element) The actual element that's being dragged\n *\n > Usage:\n | interact(target)\n | .dropChecker(function(dragEvent, // related dragmove or dragend event\n | event, // TouchEvent/PointerEvent/MouseEvent\n | dropped, // bool result of the default checker\n | dropzone, // dropzone Interactable\n | dropElement, // dropzone elemnt\n | draggable, // draggable Interactable\n | draggableElement) {// draggable element\n |\n | return dropped && event.target.hasAttribute('allow-drop');\n | }\n \\*/\n dropChecker: function (checker) {\n if (isFunction(checker)) {\n this.options.drop.checker = checker;\n\n return this;\n }\n if (checker === null) {\n delete this.options.getRect;\n\n return this;\n }\n\n return this.options.drop.checker;\n },\n\n /*\\\n * Interactable.accept\n [ method ]\n *\n * Deprecated. add an `accept` property to the options object passed to\n * @Interactable.dropzone instead.\n *\n * Gets or sets the Element or CSS selector match that this\n * Interactable accepts if it is a dropzone.\n *\n - newValue (Element | string | null) #optional\n * If it is an Element, then only that element can be dropped into this dropzone.\n * If it is a string, the element being dragged must match it as a selector.\n * If it is null, the accept options is cleared - it accepts any element.\n *\n = (string | Element | null | Interactable) The current accept option if given `undefined` or this Interactable\n \\*/\n accept: function (newValue) {\n if (isElement(newValue)) {\n this.options.drop.accept = newValue;\n\n return this;\n }\n\n // test if it is a valid CSS selector\n if (trySelector(newValue)) {\n this.options.drop.accept = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.drop.accept;\n\n return this;\n }\n\n return this.options.drop.accept;\n },\n\n /*\\\n * Interactable.resizable\n [ method ]\n *\n * Gets or sets whether resize actions can be performed on the\n * Interactable\n *\n = (boolean) Indicates if this can be the target of resize elements\n | var isResizeable = interact('input[type=text]').resizable();\n * or\n - options (boolean | object) #optional true/false or An object with event listeners to be fired on resize events (object makes the Interactable resizable)\n = (object) This Interactable\n | interact(element).resizable({\n | onstart: function (event) {},\n | onmove : function (event) {},\n | onend : function (event) {},\n |\n | edges: {\n | top : true, // Use pointer coords to check for resize.\n | left : false, // Disable resizing from left edge.\n | bottom: '.resize-s',// Resize if pointer target matches selector\n | right : handleEl // Resize if pointer target is the given Element\n | },\n |\n | // Width and height can be adjusted independently. When `true`, width and\n | // height are adjusted at a 1:1 ratio.\n | square: false,\n |\n | // Width and height can be adjusted independently. When `true`, width and\n | // height maintain the aspect ratio they had when resizing started.\n | preserveAspectRatio: false,\n |\n | // a value of 'none' will limit the resize rect to a minimum of 0x0\n | // 'negate' will allow the rect to have negative width/height\n | // 'reposition' will keep the width/height positive by swapping\n | // the top and bottom edges and/or swapping the left and right edges\n | invert: 'none' || 'negate' || 'reposition'\n |\n | // limit multiple resizes.\n | // See the explanation in the @Interactable.draggable example\n | max: Infinity,\n | maxPerElement: 1,\n | });\n \\*/\n resizable: function (options) {\n if (isObject(options)) {\n this.options.resize.enabled = options.enabled === false? false: true;\n this.setPerAction('resize', options);\n this.setOnEvents('resize', options);\n\n if (/^x$|^y$|^xy$/.test(options.axis)) {\n this.options.resize.axis = options.axis;\n }\n else if (options.axis === null) {\n this.options.resize.axis = defaultOptions.resize.axis;\n }\n\n if (isBool(options.preserveAspectRatio)) {\n this.options.resize.preserveAspectRatio = options.preserveAspectRatio;\n }\n else if (isBool(options.square)) {\n this.options.resize.square = options.square;\n }\n\n return this;\n }\n if (isBool(options)) {\n this.options.resize.enabled = options;\n\n return this;\n }\n return this.options.resize;\n },\n\n /*\\\n * Interactable.squareResize\n [ method ]\n *\n * Deprecated. Add a `square: true || false` property to @Interactable.resizable instead\n *\n * Gets or sets whether resizing is forced 1:1 aspect\n *\n = (boolean) Current setting\n *\n * or\n *\n - newValue (boolean) #optional\n = (object) this Interactable\n \\*/\n squareResize: function (newValue) {\n if (isBool(newValue)) {\n this.options.resize.square = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.resize.square;\n\n return this;\n }\n\n return this.options.resize.square;\n },\n\n /*\\\n * Interactable.gesturable\n [ method ]\n *\n * Gets or sets whether multitouch gestures can be performed on the\n * Interactable's element\n *\n = (boolean) Indicates if this can be the target of gesture events\n | var isGestureable = interact(element).gesturable();\n * or\n - options (boolean | object) #optional true/false or An object with event listeners to be fired on gesture events (makes the Interactable gesturable)\n = (object) this Interactable\n | interact(element).gesturable({\n | onstart: function (event) {},\n | onmove : function (event) {},\n | onend : function (event) {},\n |\n | // limit multiple gestures.\n | // See the explanation in @Interactable.draggable example\n | max: Infinity,\n | maxPerElement: 1,\n | });\n \\*/\n gesturable: function (options) {\n if (isObject(options)) {\n this.options.gesture.enabled = options.enabled === false? false: true;\n this.setPerAction('gesture', options);\n this.setOnEvents('gesture', options);\n\n return this;\n }\n\n if (isBool(options)) {\n this.options.gesture.enabled = options;\n\n return this;\n }\n\n return this.options.gesture;\n },\n\n /*\\\n * Interactable.autoScroll\n [ method ]\n **\n * Deprecated. Add an `autoscroll` property to the options object\n * passed to @Interactable.draggable or @Interactable.resizable instead.\n *\n * Returns or sets whether dragging and resizing near the edges of the\n * window/container trigger autoScroll for this Interactable\n *\n = (object) Object with autoScroll properties\n *\n * or\n *\n - options (object | boolean) #optional\n * options can be:\n * - an object with margin, distance and interval properties,\n * - true or false to enable or disable autoScroll or\n = (Interactable) this Interactable\n \\*/\n autoScroll: function (options) {\n if (isObject(options)) {\n options = extend({ actions: ['drag', 'resize']}, options);\n }\n else if (isBool(options)) {\n options = { actions: ['drag', 'resize'], enabled: options };\n }\n\n return this.setOptions('autoScroll', options);\n },\n\n /*\\\n * Interactable.snap\n [ method ]\n **\n * Deprecated. Add a `snap` property to the options object passed\n * to @Interactable.draggable or @Interactable.resizable instead.\n *\n * Returns or sets if and how action coordinates are snapped. By\n * default, snapping is relative to the pointer coordinates. You can\n * change this by setting the\n * [`elementOrigin`](https://github.com/taye/interact.js/pull/72).\n **\n = (boolean | object) `false` if snap is disabled; object with snap properties if snap is enabled\n **\n * or\n **\n - options (object | boolean | null) #optional\n = (Interactable) this Interactable\n > Usage\n | interact(document.querySelector('#thing')).snap({\n | targets: [\n | // snap to this specific point\n | {\n | x: 100,\n | y: 100,\n | range: 25\n | },\n | // give this function the x and y page coords and snap to the object returned\n | function (x, y) {\n | return {\n | x: x,\n | y: (75 + 50 * Math.sin(x * 0.04)),\n | range: 40\n | };\n | },\n | // create a function that snaps to a grid\n | interact.createSnapGrid({\n | x: 50,\n | y: 50,\n | range: 10, // optional\n | offset: { x: 5, y: 10 } // optional\n | })\n | ],\n | // do not snap during normal movement.\n | // Instead, trigger only one snapped move event\n | // immediately before the end event.\n | endOnly: true,\n |\n | relativePoints: [\n | { x: 0, y: 0 }, // snap relative to the top left of the element\n | { x: 1, y: 1 }, // and also to the bottom right\n | ],\n |\n | // offset the snap target coordinates\n | // can be an object with x/y or 'startCoords'\n | offset: { x: 50, y: 50 }\n | }\n | });\n \\*/\n snap: function (options) {\n var ret = this.setOptions('snap', options);\n\n if (ret === this) { return this; }\n\n return ret.drag;\n },\n\n setOptions: function (option, options) {\n var actions = options && isArray(options.actions)\n ? options.actions\n : ['drag'];\n\n var i;\n\n if (isObject(options) || isBool(options)) {\n for (i = 0; i < actions.length; i++) {\n var action = /resize/.test(actions[i])? 'resize' : actions[i];\n\n if (!isObject(this.options[action])) { continue; }\n\n var thisOption = this.options[action][option];\n\n if (isObject(options)) {\n extend(thisOption, options);\n thisOption.enabled = options.enabled === false? false: true;\n\n if (option === 'snap') {\n if (thisOption.mode === 'grid') {\n thisOption.targets = [\n interact.createSnapGrid(extend({\n offset: thisOption.gridOffset || { x: 0, y: 0 }\n }, thisOption.grid || {}))\n ];\n }\n else if (thisOption.mode === 'anchor') {\n thisOption.targets = thisOption.anchors;\n }\n else if (thisOption.mode === 'path') {\n thisOption.targets = thisOption.paths;\n }\n\n if ('elementOrigin' in options) {\n thisOption.relativePoints = [options.elementOrigin];\n }\n }\n }\n else if (isBool(options)) {\n thisOption.enabled = options;\n }\n }\n\n return this;\n }\n\n var ret = {},\n allActions = ['drag', 'resize', 'gesture'];\n\n for (i = 0; i < allActions.length; i++) {\n if (option in defaultOptions[allActions[i]]) {\n ret[allActions[i]] = this.options[allActions[i]][option];\n }\n }\n\n return ret;\n },\n\n\n /*\\\n * Interactable.inertia\n [ method ]\n **\n * Deprecated. Add an `inertia` property to the options object passed\n * to @Interactable.draggable or @Interactable.resizable instead.\n *\n * Returns or sets if and how events continue to run after the pointer is released\n **\n = (boolean | object) `false` if inertia is disabled; `object` with inertia properties if inertia is enabled\n **\n * or\n **\n - options (object | boolean | null) #optional\n = (Interactable) this Interactable\n > Usage\n | // enable and use default settings\n | interact(element).inertia(true);\n |\n | // enable and use custom settings\n | interact(element).inertia({\n | // value greater than 0\n | // high values slow the object down more quickly\n | resistance : 16,\n |\n | // the minimum launch speed (pixels per second) that results in inertia start\n | minSpeed : 200,\n |\n | // inertia will stop when the object slows down to this speed\n | endSpeed : 20,\n |\n | // boolean; should actions be resumed when the pointer goes down during inertia\n | allowResume : true,\n |\n | // boolean; should the jump when resuming from inertia be ignored in event.dx/dy\n | zeroResumeDelta: false,\n |\n | // if snap/restrict are set to be endOnly and inertia is enabled, releasing\n | // the pointer without triggering inertia will animate from the release\n | // point to the snaped/restricted point in the given amount of time (ms)\n | smoothEndDuration: 300,\n |\n | // an array of action types that can have inertia (no gesture)\n | actions : ['drag', 'resize']\n | });\n |\n | // reset custom settings and use all defaults\n | interact(element).inertia(null);\n \\*/\n inertia: function (options) {\n var ret = this.setOptions('inertia', options);\n\n if (ret === this) { return this; }\n\n return ret.drag;\n },\n\n getAction: function (pointer, event, interaction, element) {\n var action = this.defaultActionChecker(pointer, interaction, element);\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction);\n }\n\n return action;\n },\n\n defaultActionChecker: defaultActionChecker,\n\n /*\\\n * Interactable.actionChecker\n [ method ]\n *\n * Gets or sets the function used to check action to be performed on\n * pointerDown\n *\n - checker (function | null) #optional A function which takes a pointer event, defaultAction string, interactable, element and interaction as parameters and returns an object with name property 'drag' 'resize' or 'gesture' and optionally an `edges` object with boolean 'top', 'left', 'bottom' and right props.\n = (Function | Interactable) The checker function or this Interactable\n *\n | interact('.resize-drag')\n | .resizable(true)\n | .draggable(true)\n | .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n |\n | if (interact.matchesSelector(event.target, '.drag-handle') {\n | // force drag with handle target\n | action.name = drag;\n | }\n | else {\n | // resize from the top and right edges\n | action.name = 'resize';\n | action.edges = { top: true, right: true };\n | }\n |\n | return action;\n | });\n \\*/\n actionChecker: function (checker) {\n if (isFunction(checker)) {\n this.options.actionChecker = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.actionChecker;\n\n return this;\n }\n\n return this.options.actionChecker;\n },\n\n /*\\\n * Interactable.getRect\n [ method ]\n *\n * The default function to get an Interactables bounding rect. Can be\n * overridden using @Interactable.rectChecker.\n *\n - element (Element) #optional The element to measure.\n = (object) The object's bounding rectangle.\n o {\n o top : 0,\n o left : 0,\n o bottom: 0,\n o right : 0,\n o width : 0,\n o height: 0\n o }\n \\*/\n getRect: function rectCheck (element) {\n element = element || this._element;\n\n if (this.selector && !(isElement(element))) {\n element = this._context.querySelector(this.selector);\n }\n\n return getElementRect(element);\n },\n\n /*\\\n * Interactable.rectChecker\n [ method ]\n *\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n - checker (function) #optional A function which returns this Interactable's bounding rectangle. See @Interactable.getRect\n = (function | object) The checker function or this Interactable\n \\*/\n rectChecker: function (checker) {\n if (isFunction(checker)) {\n this.getRect = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.getRect;\n\n return this;\n }\n\n return this.getRect;\n },\n\n /*\\\n * Interactable.styleCursor\n [ method ]\n *\n * Returns or sets whether the action that would be performed when the\n * mouse on the element are checked on `mousemove` so that the cursor\n * may be styled appropriately\n *\n - newValue (boolean) #optional\n = (boolean | Interactable) The current setting or this Interactable\n \\*/\n styleCursor: function (newValue) {\n if (isBool(newValue)) {\n this.options.styleCursor = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.styleCursor;\n\n return this;\n }\n\n return this.options.styleCursor;\n },\n\n /*\\\n * Interactable.preventDefault\n [ method ]\n *\n * Returns or sets whether to prevent the browser's default behaviour\n * in response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n - newValue (string) #optional `true`, `false` or `'auto'`\n = (string | Interactable) The current setting or this Interactable\n \\*/\n preventDefault: function (newValue) {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue;\n return this;\n }\n\n if (isBool(newValue)) {\n this.options.preventDefault = newValue? 'always' : 'never';\n return this;\n }\n\n return this.options.preventDefault;\n },\n\n /*\\\n * Interactable.origin\n [ method ]\n *\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n - origin (object | string) #optional An object eg. { x: 0, y: 0 } or string 'parent', 'self' or any CSS selector\n * OR\n - origin (Element) #optional An HTML or SVG Element whose rect will be used\n **\n = (object) The current origin or this Interactable\n \\*/\n origin: function (newValue) {\n if (trySelector(newValue)) {\n this.options.origin = newValue;\n return this;\n }\n else if (isObject(newValue)) {\n this.options.origin = newValue;\n return this;\n }\n\n return this.options.origin;\n },\n\n /*\\\n * Interactable.deltaSource\n [ method ]\n *\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n - newValue (string) #optional Use 'client' if you will be scrolling while interacting; Use 'page' if you want autoScroll to work\n = (string | object) The current deltaSource or this Interactable\n \\*/\n deltaSource: function (newValue) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue;\n\n return this;\n }\n\n return this.options.deltaSource;\n },\n\n /*\\\n * Interactable.restrict\n [ method ]\n **\n * Deprecated. Add a `restrict` property to the options object passed to\n * @Interactable.draggable, @Interactable.resizable or @Interactable.gesturable instead.\n *\n * Returns or sets the rectangles within which actions on this\n * interactable (after snap calculations) are restricted. By default,\n * restricting is relative to the pointer coordinates. You can change\n * this by setting the\n * [`elementRect`](https://github.com/taye/interact.js/pull/72).\n **\n - options (object) #optional an object with keys drag, resize, and/or gesture whose values are rects, Elements, CSS selectors, or 'parent' or 'self'\n = (object) The current restrictions object or this Interactable\n **\n | interact(element).restrict({\n | // the rect will be `interact.getElementRect(element.parentNode)`\n | drag: element.parentNode,\n |\n | // x and y are relative to the the interactable's origin\n | resize: { x: 100, y: 100, width: 200, height: 200 }\n | })\n |\n | interact('.draggable').restrict({\n | // the rect will be the selected element's parent\n | drag: 'parent',\n |\n | // do not restrict during normal movement.\n | // Instead, trigger only one restricted move event\n | // immediately before the end event.\n | endOnly: true,\n |\n | // https://github.com/taye/interact.js/pull/72#issue-41813493\n | elementRect: { top: 0, left: 0, bottom: 1, right: 1 }\n | });\n \\*/\n restrict: function (options) {\n if (!isObject(options)) {\n return this.setOptions('restrict', options);\n }\n\n var actions = ['drag', 'resize', 'gesture'],\n ret;\n\n for (var i = 0; i < actions.length; i++) {\n var action = actions[i];\n\n if (action in options) {\n var perAction = extend({\n actions: [action],\n restriction: options[action]\n }, options);\n\n ret = this.setOptions('restrict', perAction);\n }\n }\n\n return ret;\n },\n\n /*\\\n * Interactable.context\n [ method ]\n *\n * Gets the selector context Node of the Interactable. The default is `window.document`.\n *\n = (Node) The context Node of this Interactable\n **\n \\*/\n context: function () {\n return this._context;\n },\n\n _context: document,\n\n /*\\\n * Interactable.ignoreFrom\n [ method ]\n *\n * If the target of the `mousedown`, `pointerdown` or `touchstart`\n * event or any of it's parents match the given CSS selector or\n * Element, no drag/resize/gesture is started.\n *\n - newValue (string | Element | null) #optional a CSS selector string, an Element or `null` to not ignore any elements\n = (string | Element | object) The current ignoreFrom value or this Interactable\n **\n | interact(element, { ignoreFrom: document.getElementById('no-action') });\n | // or\n | interact(element).ignoreFrom('input, textarea, a');\n \\*/\n ignoreFrom: function (newValue) {\n if (trySelector(newValue)) { // CSS selector to match event.target\n this.options.ignoreFrom = newValue;\n return this;\n }\n\n if (isElement(newValue)) { // specific element\n this.options.ignoreFrom = newValue;\n return this;\n }\n\n return this.options.ignoreFrom;\n },\n\n /*\\\n * Interactable.allowFrom\n [ method ]\n *\n * A drag/resize/gesture is started only If the target of the\n * `mousedown`, `pointerdown` or `touchstart` event or any of it's\n * parents match the given CSS selector or Element.\n *\n - newValue (string | Element | null) #optional a CSS selector string, an Element or `null` to allow from any element\n = (string | Element | object) The current allowFrom value or this Interactable\n **\n | interact(element, { allowFrom: document.getElementById('drag-handle') });\n | // or\n | interact(element).allowFrom('.handle');\n \\*/\n allowFrom: function (newValue) {\n if (trySelector(newValue)) { // CSS selector to match event.target\n this.options.allowFrom = newValue;\n return this;\n }\n\n if (isElement(newValue)) { // specific element\n this.options.allowFrom = newValue;\n return this;\n }\n\n return this.options.allowFrom;\n },\n\n /*\\\n * Interactable.element\n [ method ]\n *\n * If this is not a selector Interactable, it returns the element this\n * interactable represents\n *\n = (Element) HTML / SVG Element\n \\*/\n element: function () {\n return this._element;\n },\n\n /*\\\n * Interactable.fire\n [ method ]\n *\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n - iEvent (InteractEvent) The InteractEvent object to be fired on this Interactable\n = (Interactable) this Interactable\n \\*/\n fire: function (iEvent) {\n if (!(iEvent && iEvent.type) || !contains(eventTypes, iEvent.type)) {\n return this;\n }\n\n var listeners,\n i,\n len,\n onEvent = 'on' + iEvent.type,\n funcName = '';\n\n // Interactable#on() listeners\n if (iEvent.type in this._iEvents) {\n listeners = this._iEvents[iEvent.type];\n\n for (i = 0, len = listeners.length; i < len && !iEvent.immediatePropagationStopped; i++) {\n funcName = listeners[i].name;\n listeners[i](iEvent);\n }\n }\n\n // interactable.onevent listener\n if (isFunction(this[onEvent])) {\n funcName = this[onEvent].name;\n this[onEvent](iEvent);\n }\n\n // interact.on() listeners\n if (iEvent.type in globalEvents && (listeners = globalEvents[iEvent.type])) {\n\n for (i = 0, len = listeners.length; i < len && !iEvent.immediatePropagationStopped; i++) {\n funcName = listeners[i].name;\n listeners[i](iEvent);\n }\n }\n\n return this;\n },\n\n /*\\\n * Interactable.on\n [ method ]\n *\n * Binds a listener for an InteractEvent or DOM event.\n *\n - eventType (string | array | object) The types of events to listen for\n - listener (function) The function to be called on the given event(s)\n - useCapture (boolean) #optional useCapture flag for addEventListener\n = (object) This Interactable\n \\*/\n on: function (eventType, listener, useCapture) {\n var i;\n\n if (isString(eventType) && eventType.search(' ') !== -1) {\n eventType = eventType.trim().split(/ +/);\n }\n\n if (isArray(eventType)) {\n for (i = 0; i < eventType.length; i++) {\n this.on(eventType[i], listener, useCapture);\n }\n\n return this;\n }\n\n if (isObject(eventType)) {\n for (var prop in eventType) {\n this.on(prop, eventType[prop], listener);\n }\n\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n // convert to boolean\n useCapture = useCapture? true: false;\n\n if (contains(eventTypes, eventType)) {\n // if this type of event was never bound to this Interactable\n if (!(eventType in this._iEvents)) {\n this._iEvents[eventType] = [listener];\n }\n else {\n this._iEvents[eventType].push(listener);\n }\n }\n // delegated event for selector\n else if (this.selector) {\n if (!delegatedEvents[eventType]) {\n delegatedEvents[eventType] = {\n selectors: [],\n contexts : [],\n listeners: []\n };\n\n // add delegate listener functions\n for (i = 0; i < documents.length; i++) {\n events.add(documents[i], eventType, delegateListener);\n events.add(documents[i], eventType, delegateUseCapture, true);\n }\n }\n\n var delegated = delegatedEvents[eventType],\n index;\n\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n if (delegated.selectors[index] === this.selector\n && delegated.contexts[index] === this._context) {\n break;\n }\n }\n\n if (index === -1) {\n index = delegated.selectors.length;\n\n delegated.selectors.push(this.selector);\n delegated.contexts .push(this._context);\n delegated.listeners.push([]);\n }\n\n // keep listener and useCapture flag\n delegated.listeners[index].push([listener, useCapture]);\n }\n else {\n events.add(this._element, eventType, listener, useCapture);\n }\n\n return this;\n },\n\n /*\\\n * Interactable.off\n [ method ]\n *\n * Removes an InteractEvent or DOM event listener\n *\n - eventType (string | array | object) The types of events that were listened for\n - listener (function) The listener function to be removed\n - useCapture (boolean) #optional useCapture flag for removeEventListener\n = (object) This Interactable\n \\*/\n off: function (eventType, listener, useCapture) {\n var i;\n\n if (isString(eventType) && eventType.search(' ') !== -1) {\n eventType = eventType.trim().split(/ +/);\n }\n\n if (isArray(eventType)) {\n for (i = 0; i < eventType.length; i++) {\n this.off(eventType[i], listener, useCapture);\n }\n\n return this;\n }\n\n if (isObject(eventType)) {\n for (var prop in eventType) {\n this.off(prop, eventType[prop], listener);\n }\n\n return this;\n }\n\n var eventList,\n index = -1;\n\n // convert to boolean\n useCapture = useCapture? true: false;\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n // if it is an action event type\n if (contains(eventTypes, eventType)) {\n eventList = this._iEvents[eventType];\n\n if (eventList && (index = indexOf(eventList, listener)) !== -1) {\n this._iEvents[eventType].splice(index, 1);\n }\n }\n // delegated event\n else if (this.selector) {\n var delegated = delegatedEvents[eventType],\n matchFound = false;\n\n if (!delegated) { return this; }\n\n // count from last index of delegated to 0\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n // look for matching selector and context Node\n if (delegated.selectors[index] === this.selector\n && delegated.contexts[index] === this._context) {\n\n var listeners = delegated.listeners[index];\n\n // each item of the listeners array is an array: [function, useCaptureFlag]\n for (i = listeners.length - 1; i >= 0; i--) {\n var fn = listeners[i][0],\n useCap = listeners[i][1];\n\n // check if the listener functions and useCapture flags match\n if (fn === listener && useCap === useCapture) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1);\n\n // if all listeners for this interactable have been removed\n // remove the interactable from the delegated arrays\n if (!listeners.length) {\n delegated.selectors.splice(index, 1);\n delegated.contexts .splice(index, 1);\n delegated.listeners.splice(index, 1);\n\n // remove delegate function from context\n events.remove(this._context, eventType, delegateListener);\n events.remove(this._context, eventType, delegateUseCapture, true);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[eventType] = null;\n }\n }\n\n // only remove one listener\n matchFound = true;\n break;\n }\n }\n\n if (matchFound) { break; }\n }\n }\n }\n // remove listener from this Interatable's element\n else {\n events.remove(this._element, eventType, listener, useCapture);\n }\n\n return this;\n },\n\n /*\\\n * Interactable.set\n [ method ]\n *\n * Reset the options of this Interactable\n - options (object) The new settings to apply\n = (object) This Interactable\n \\*/\n set: function (options) {\n if (!isObject(options)) {\n options = {};\n }\n\n this.options = extend({}, defaultOptions.base);\n\n var i,\n actions = ['drag', 'drop', 'resize', 'gesture'],\n methods = ['draggable', 'dropzone', 'resizable', 'gesturable'],\n perActions = extend(extend({}, defaultOptions.perAction), options[action] || {});\n\n for (i = 0; i < actions.length; i++) {\n var action = actions[i];\n\n this.options[action] = extend({}, defaultOptions[action]);\n\n this.setPerAction(action, perActions);\n\n this[methods[i]](options[action]);\n }\n\n var settings = [\n 'accept', 'actionChecker', 'allowFrom', 'deltaSource',\n 'dropChecker', 'ignoreFrom', 'origin', 'preventDefault',\n 'rectChecker', 'styleCursor'\n ];\n\n for (i = 0, len = settings.length; i < len; i++) {\n var setting = settings[i];\n\n this.options[setting] = defaultOptions.base[setting];\n\n if (setting in options) {\n this[setting](options[setting]);\n }\n }\n\n return this;\n },\n\n /*\\\n * Interactable.unset\n [ method ]\n *\n * Remove this interactable from the list of interactables and remove\n * it's drag, drop, resize and gesture capabilities\n *\n = (object) @interact\n \\*/\n unset: function () {\n events.remove(this._element, 'all');\n\n if (!isString(this.selector)) {\n events.remove(this, 'all');\n if (this.options.styleCursor) {\n this._element.style.cursor = '';\n }\n }\n else {\n // remove delegated events\n for (var type in delegatedEvents) {\n var delegated = delegatedEvents[type];\n\n for (var i = 0; i < delegated.selectors.length; i++) {\n if (delegated.selectors[i] === this.selector\n && delegated.contexts[i] === this._context) {\n\n delegated.selectors.splice(i, 1);\n delegated.contexts .splice(i, 1);\n delegated.listeners.splice(i, 1);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[type] = null;\n }\n }\n\n events.remove(this._context, type, delegateListener);\n events.remove(this._context, type, delegateUseCapture, true);\n\n break;\n }\n }\n }\n\n this.dropzone(false);\n\n interactables.splice(indexOf(interactables, this), 1);\n\n return interact;\n }\n };\n\n function warnOnce (method, message) {\n var warned = false;\n\n return function () {\n if (!warned) {\n window.console.warn(message);\n warned = true;\n }\n\n return method.apply(this, arguments);\n };\n }\n\n Interactable.prototype.snap = warnOnce(Interactable.prototype.snap,\n 'Interactable#snap is deprecated. See the new documentation for snapping at http://interactjs.io/docs/snapping');\n Interactable.prototype.restrict = warnOnce(Interactable.prototype.restrict,\n 'Interactable#restrict is deprecated. See the new documentation for resticting at http://interactjs.io/docs/restriction');\n Interactable.prototype.inertia = warnOnce(Interactable.prototype.inertia,\n 'Interactable#inertia is deprecated. See the new documentation for inertia at http://interactjs.io/docs/inertia');\n Interactable.prototype.autoScroll = warnOnce(Interactable.prototype.autoScroll,\n 'Interactable#autoScroll is deprecated. See the new documentation for autoScroll at http://interactjs.io/docs/#autoscroll');\n Interactable.prototype.squareResize = warnOnce(Interactable.prototype.squareResize,\n 'Interactable#squareResize is deprecated. See http://interactjs.io/docs/#resize-square');\n\n Interactable.prototype.accept = warnOnce(Interactable.prototype.accept,\n 'Interactable#accept is deprecated. use Interactable#dropzone({ accept: target }) instead');\n Interactable.prototype.dropChecker = warnOnce(Interactable.prototype.dropChecker,\n 'Interactable#dropChecker is deprecated. use Interactable#dropzone({ dropChecker: checkerFunction }) instead');\n Interactable.prototype.context = warnOnce(Interactable.prototype.context,\n 'Interactable#context as a method is deprecated. It will soon be a DOM Node instead');\n\n /*\\\n * interact.isSet\n [ method ]\n *\n * Check if an element has been set\n - element (Element) The Element being searched for\n = (boolean) Indicates if the element or CSS selector was previously passed to interact\n \\*/\n interact.isSet = function(element, options) {\n return interactables.indexOfElement(element, options && options.context) !== -1;\n };\n\n /*\\\n * interact.on\n [ method ]\n *\n * Adds a global listener for an InteractEvent or adds a DOM event to\n * `document`\n *\n - type (string | array | object) The types of events to listen for\n - listener (function) The function to be called on the given event(s)\n - useCapture (boolean) #optional useCapture flag for addEventListener\n = (object) interact\n \\*/\n interact.on = function (type, listener, useCapture) {\n if (isString(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (isArray(type)) {\n for (var i = 0; i < type.length; i++) {\n interact.on(type[i], listener, useCapture);\n }\n\n return interact;\n }\n\n if (isObject(type)) {\n for (var prop in type) {\n interact.on(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (contains(eventTypes, type)) {\n // if this type of event was never bound\n if (!globalEvents[type]) {\n globalEvents[type] = [listener];\n }\n else {\n globalEvents[type].push(listener);\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n events.add(document, type, listener, useCapture);\n }\n\n return interact;\n };\n\n /*\\\n * interact.off\n [ method ]\n *\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n - type (string | array | object) The types of events that were listened for\n - listener (function) The listener function to be removed\n - useCapture (boolean) #optional useCapture flag for removeEventListener\n = (object) interact\n \\*/\n interact.off = function (type, listener, useCapture) {\n if (isString(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (isArray(type)) {\n for (var i = 0; i < type.length; i++) {\n interact.off(type[i], listener, useCapture);\n }\n\n return interact;\n }\n\n if (isObject(type)) {\n for (var prop in type) {\n interact.off(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n if (!contains(eventTypes, type)) {\n events.remove(document, type, listener, useCapture);\n }\n else {\n var index;\n\n if (type in globalEvents\n && (index = indexOf(globalEvents[type], listener)) !== -1) {\n globalEvents[type].splice(index, 1);\n }\n }\n\n return interact;\n };\n\n /*\\\n * interact.enableDragging\n [ method ]\n *\n * Deprecated.\n *\n * Returns or sets whether dragging is enabled for any Interactables\n *\n - newValue (boolean) #optional `true` to allow the action; `false` to disable action for all Interactables\n = (boolean | object) The current setting or interact\n \\*/\n interact.enableDragging = warnOnce(function (newValue) {\n if (newValue !== null && newValue !== undefined) {\n actionIsEnabled.drag = newValue;\n\n return interact;\n }\n return actionIsEnabled.drag;\n }, 'interact.enableDragging is deprecated and will soon be removed.');\n\n /*\\\n * interact.enableResizing\n [ method ]\n *\n * Deprecated.\n *\n * Returns or sets whether resizing is enabled for any Interactables\n *\n - newValue (boolean) #optional `true` to allow the action; `false` to disable action for all Interactables\n = (boolean | object) The current setting or interact\n \\*/\n interact.enableResizing = warnOnce(function (newValue) {\n if (newValue !== null && newValue !== undefined) {\n actionIsEnabled.resize = newValue;\n\n return interact;\n }\n return actionIsEnabled.resize;\n }, 'interact.enableResizing is deprecated and will soon be removed.');\n\n /*\\\n * interact.enableGesturing\n [ method ]\n *\n * Deprecated.\n *\n * Returns or sets whether gesturing is enabled for any Interactables\n *\n - newValue (boolean) #optional `true` to allow the action; `false` to disable action for all Interactables\n = (boolean | object) The current setting or interact\n \\*/\n interact.enableGesturing = warnOnce(function (newValue) {\n if (newValue !== null && newValue !== undefined) {\n actionIsEnabled.gesture = newValue;\n\n return interact;\n }\n return actionIsEnabled.gesture;\n }, 'interact.enableGesturing is deprecated and will soon be removed.');\n\n interact.eventTypes = eventTypes;\n\n /*\\\n * interact.debug\n [ method ]\n *\n * Returns debugging data\n = (object) An object with properties that outline the current state and expose internal functions and variables\n \\*/\n interact.debug = function () {\n var interaction = interactions[0] || new Interaction();\n\n return {\n interactions : interactions,\n target : interaction.target,\n dragging : interaction.dragging,\n resizing : interaction.resizing,\n gesturing : interaction.gesturing,\n prepared : interaction.prepared,\n matches : interaction.matches,\n matchElements : interaction.matchElements,\n\n prevCoords : interaction.prevCoords,\n startCoords : interaction.startCoords,\n\n pointerIds : interaction.pointerIds,\n pointers : interaction.pointers,\n addPointer : listeners.addPointer,\n removePointer : listeners.removePointer,\n recordPointer : listeners.recordPointer,\n\n snap : interaction.snapStatus,\n restrict : interaction.restrictStatus,\n inertia : interaction.inertiaStatus,\n\n downTime : interaction.downTimes[0],\n downEvent : interaction.downEvent,\n downPointer : interaction.downPointer,\n prevEvent : interaction.prevEvent,\n\n Interactable : Interactable,\n interactables : interactables,\n pointerIsDown : interaction.pointerIsDown,\n defaultOptions : defaultOptions,\n defaultActionChecker : defaultActionChecker,\n\n actionCursors : actionCursors,\n dragMove : listeners.dragMove,\n resizeMove : listeners.resizeMove,\n gestureMove : listeners.gestureMove,\n pointerUp : listeners.pointerUp,\n pointerDown : listeners.pointerDown,\n pointerMove : listeners.pointerMove,\n pointerHover : listeners.pointerHover,\n\n eventTypes : eventTypes,\n\n events : events,\n globalEvents : globalEvents,\n delegatedEvents : delegatedEvents,\n\n prefixedPropREs : prefixedPropREs\n };\n };\n\n // expose the functions used to calculate multi-touch properties\n interact.getPointerAverage = pointerAverage;\n interact.getTouchBBox = touchBBox;\n interact.getTouchDistance = touchDistance;\n interact.getTouchAngle = touchAngle;\n\n interact.getElementRect = getElementRect;\n interact.getElementClientRect = getElementClientRect;\n interact.matchesSelector = matchesSelector;\n interact.closest = closest;\n\n /*\\\n * interact.margin\n [ method ]\n *\n * Deprecated. Use `interact(target).resizable({ margin: number });` instead.\n * Returns or sets the margin for autocheck resizing used in\n * @Interactable.getAction. That is the distance from the bottom and right\n * edges of an element clicking in which will start resizing\n *\n - newValue (number) #optional\n = (number | interact) The current margin value or interact\n \\*/\n interact.margin = warnOnce(function (newvalue) {\n if (isNumber(newvalue)) {\n margin = newvalue;\n\n return interact;\n }\n return margin;\n },\n 'interact.margin is deprecated. Use interact(target).resizable({ margin: number }); instead.') ;\n\n /*\\\n * interact.supportsTouch\n [ method ]\n *\n = (boolean) Whether or not the browser supports touch input\n \\*/\n interact.supportsTouch = function () {\n return supportsTouch;\n };\n\n /*\\\n * interact.supportsPointerEvent\n [ method ]\n *\n = (boolean) Whether or not the browser supports PointerEvents\n \\*/\n interact.supportsPointerEvent = function () {\n return supportsPointerEvent;\n };\n\n /*\\\n * interact.stop\n [ method ]\n *\n * Cancels all interactions (end events are not fired)\n *\n - event (Event) An event on which to call preventDefault()\n = (object) interact\n \\*/\n interact.stop = function (event) {\n for (var i = interactions.length - 1; i >= 0; i--) {\n interactions[i].stop(event);\n }\n\n return interact;\n };\n\n /*\\\n * interact.dynamicDrop\n [ method ]\n *\n * Returns or sets whether the dimensions of dropzone elements are\n * calculated on every dragmove or only on dragstart for the default\n * dropChecker\n *\n - newValue (boolean) #optional True to check on each move. False to check only before start\n = (boolean | interact) The current setting or interact\n \\*/\n interact.dynamicDrop = function (newValue) {\n if (isBool(newValue)) {\n //if (dragging && dynamicDrop !== newValue && !newValue) {\n //calcRects(dropzones);\n //}\n\n dynamicDrop = newValue;\n\n return interact;\n }\n return dynamicDrop;\n };\n\n /*\\\n * interact.pointerMoveTolerance\n [ method ]\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n - newValue (number) #optional The movement from the start position must be greater than this value\n = (number | Interactable) The current setting or interact\n \\*/\n interact.pointerMoveTolerance = function (newValue) {\n if (isNumber(newValue)) {\n pointerMoveTolerance = newValue;\n\n return this;\n }\n\n return pointerMoveTolerance;\n };\n\n /*\\\n * interact.maxInteractions\n [ method ]\n **\n * Returns or sets the maximum number of concurrent interactions allowed.\n * By default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables\n * and elements, you need to enable it in the draggable, resizable and\n * gesturable `'max'` and `'maxPerElement'` options.\n **\n - newValue (number) #optional Any number. newValue <= 0 means no interactions.\n \\*/\n interact.maxInteractions = function (newValue) {\n if (isNumber(newValue)) {\n maxInteractions = newValue;\n\n return this;\n }\n\n return maxInteractions;\n };\n\n interact.createSnapGrid = function (grid) {\n return function (x, y) {\n var offsetX = 0,\n offsetY = 0;\n\n if (isObject(grid.offset)) {\n offsetX = grid.offset.x;\n offsetY = grid.offset.y;\n }\n\n var gridx = Math.round((x - offsetX) / grid.x),\n gridy = Math.round((y - offsetY) / grid.y),\n\n newX = gridx * grid.x + offsetX,\n newY = gridy * grid.y + offsetY;\n\n return {\n x: newX,\n y: newY,\n range: grid.range\n };\n };\n };\n\n function endAllInteractions (event) {\n for (var i = 0; i < interactions.length; i++) {\n interactions[i].pointerEnd(event, event);\n }\n }\n\n function listenToDocument (doc) {\n if (contains(documents, doc)) { return; }\n\n var win = doc.defaultView || doc.parentWindow;\n\n // add delegate event listener\n for (var eventType in delegatedEvents) {\n events.add(doc, eventType, delegateListener);\n events.add(doc, eventType, delegateUseCapture, true);\n }\n\n if (PointerEvent) {\n if (PointerEvent === win.MSPointerEvent) {\n pEventTypes = {\n up: 'MSPointerUp', down: 'MSPointerDown', over: 'mouseover',\n out: 'mouseout', move: 'MSPointerMove', cancel: 'MSPointerCancel' };\n }\n else {\n pEventTypes = {\n up: 'pointerup', down: 'pointerdown', over: 'pointerover',\n out: 'pointerout', move: 'pointermove', cancel: 'pointercancel' };\n }\n\n events.add(doc, pEventTypes.down , listeners.selectorDown );\n events.add(doc, pEventTypes.move , listeners.pointerMove );\n events.add(doc, pEventTypes.over , listeners.pointerOver );\n events.add(doc, pEventTypes.out , listeners.pointerOut );\n events.add(doc, pEventTypes.up , listeners.pointerUp );\n events.add(doc, pEventTypes.cancel, listeners.pointerCancel);\n\n // autoscroll\n events.add(doc, pEventTypes.move, listeners.autoScrollMove);\n }\n else {\n events.add(doc, 'mousedown', listeners.selectorDown);\n events.add(doc, 'mousemove', listeners.pointerMove );\n events.add(doc, 'mouseup' , listeners.pointerUp );\n events.add(doc, 'mouseover', listeners.pointerOver );\n events.add(doc, 'mouseout' , listeners.pointerOut );\n\n events.add(doc, 'touchstart' , listeners.selectorDown );\n events.add(doc, 'touchmove' , listeners.pointerMove );\n events.add(doc, 'touchend' , listeners.pointerUp );\n events.add(doc, 'touchcancel', listeners.pointerCancel);\n\n // autoscroll\n events.add(doc, 'mousemove', listeners.autoScrollMove);\n events.add(doc, 'touchmove', listeners.autoScrollMove);\n }\n\n events.add(win, 'blur', endAllInteractions);\n\n try {\n if (win.frameElement) {\n var parentDoc = win.frameElement.ownerDocument,\n parentWindow = parentDoc.defaultView;\n\n events.add(parentDoc , 'mouseup' , listeners.pointerEnd);\n events.add(parentDoc , 'touchend' , listeners.pointerEnd);\n events.add(parentDoc , 'touchcancel' , listeners.pointerEnd);\n events.add(parentDoc , 'pointerup' , listeners.pointerEnd);\n events.add(parentDoc , 'MSPointerUp' , listeners.pointerEnd);\n events.add(parentWindow, 'blur' , endAllInteractions );\n }\n }\n catch (error) {\n interact.windowParentError = error;\n }\n\n // prevent native HTML5 drag on interact.js target elements\n events.add(doc, 'dragstart', function (event) {\n for (var i = 0; i < interactions.length; i++) {\n var interaction = interactions[i];\n\n if (interaction.element\n && (interaction.element === event.target\n || nodeContains(interaction.element, event.target))) {\n\n interaction.checkAndPreventDefault(event, interaction.target, interaction.element);\n return;\n }\n }\n });\n\n if (events.useAttachEvent) {\n // For IE's lack of Event#preventDefault\n events.add(doc, 'selectstart', function (event) {\n var interaction = interactions[0];\n\n if (interaction.currentAction()) {\n interaction.checkAndPreventDefault(event);\n }\n });\n\n // For IE's bad dblclick event sequence\n events.add(doc, 'dblclick', doOnInteractions('ie8Dblclick'));\n }\n\n documents.push(doc);\n }\n\n listenToDocument(document);\n\n function indexOf (array, target) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === target) {\n return i;\n }\n }\n\n return -1;\n }\n\n function contains (array, target) {\n return indexOf(array, target) !== -1;\n }\n\n function matchesSelector (element, selector, nodeList) {\n if (ie8MatchesSelector) {\n return ie8MatchesSelector(element, selector, nodeList);\n }\n\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (window !== realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ');\n }\n\n return element[prefixedMatchesSelector](selector);\n }\n\n function matchesUpTo (element, selector, limit) {\n while (isElement(element)) {\n if (matchesSelector(element, selector)) {\n return true;\n }\n\n element = parentElement(element);\n\n if (element === limit) {\n return matchesSelector(element, selector);\n }\n }\n\n return false;\n }\n\n // For IE8's lack of an Element#matchesSelector\n // taken from http://tanalin.com/en/blog/2012/12/matches-selector-ie8/ and modified\n if (!(prefixedMatchesSelector in Element.prototype) || !isFunction(Element.prototype[prefixedMatchesSelector])) {\n ie8MatchesSelector = function (element, selector, elems) {\n elems = elems || element.parentNode.querySelectorAll(selector);\n\n for (var i = 0, len = elems.length; i < len; i++) {\n if (elems[i] === element) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n // requestAnimationFrame polyfill\n (function() {\n var lastTime = 0,\n vendors = ['ms', 'moz', 'webkit', 'o'];\n\n for(var x = 0; x < vendors.length && !realWindow.requestAnimationFrame; ++x) {\n reqFrame = realWindow[vendors[x]+'RequestAnimationFrame'];\n cancelFrame = realWindow[vendors[x]+'CancelAnimationFrame'] || realWindow[vendors[x]+'CancelRequestAnimationFrame'];\n }\n\n if (!reqFrame) {\n reqFrame = function(callback) {\n var currTime = new Date().getTime(),\n timeToCall = Math.max(0, 16 - (currTime - lastTime)),\n id = setTimeout(function() { callback(currTime + timeToCall); },\n timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n }\n\n if (!cancelFrame) {\n cancelFrame = function(id) {\n clearTimeout(id);\n };\n }\n }());\n\n /* global exports: true, module, define */\n\n // http://documentcloud.github.io/underscore/docs/underscore.html#section-11\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = interact;\n }\n exports.interact = interact;\n }\n // AMD\n else if (typeof define === 'function' && define.amd) {\n define('interact',['interact'], function() {\n return interact;\n });\n }\n else {\n realWindow.interact = interact;\n }\n\n} (typeof window === 'undefined'? undefined : window));\n\n","\ndefine('tpl!ui/dynamicComponent/layout', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, helperMissing=helpers.helperMissing, self=this;\n\nfunction program1(depth0,data) {\n \n \n return \"\\n <div class=\\\"dynamic-component-layer\\\"></div>\\n \";\n }\n\n buffer += \"<div class=\\\"dynamic-component-container\\\">\\n <div class=\\\"dynamic-component-title-bar\\\">\\n <h3>\";\n if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</h3>\\n <a title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"close\", options) : helperMissing.call(depth0, \"__\", \"close\", options)))\n + \"\\\" class=\\\"closer\\\" href=\\\"#\\\"></a>\\n </div>\\n <div class=\\\"dynamic-component-content\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.draggableContainer), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </div>\\n</div>\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Sam <sam@taotesting.com>\n */\ndefine('ui/dynamicComponent',[\n 'jquery',\n 'lodash',\n 'interact',\n 'ui/component',\n 'tpl!ui/dynamicComponent/layout'\n], function ($, _, interact, component, layoutTpl){\n 'use strict';\n\n var _defaults = {\n title : '',\n resizable : true,\n draggable : true,\n width : 240,\n height : 360,\n minWidth : 150,\n maxWidth : 600,\n largeWidthThreshold : 380,\n smallWidthThreshold : 200,\n draggableContainer : 'parent',\n top : 0, //position top absolute in the window\n left : 0//position left absolute in the window\n };\n\n /**\n * Defines a dynamicComponent\n * @type {Object}\n */\n var dynamicComponent = {\n reset : function reset(){\n this.resetPosition();\n this.resetSize();\n this.trigger('reset');\n return this;\n },\n resetPosition : function resetPosition(){\n this.getElement().css({\n top : this.config.top,\n left : this.config.left,\n transform : 'none'\n });\n return this;\n },\n resetSize : function resetSize(){\n var $element = this.getElement();\n var $content = $element.find('.dynamic-component-content');\n $element.css({\n width : 'auto',\n height : 'auto'\n });\n $content.css({\n width : this.config.width,\n height : this.config.height\n });\n return this;\n }\n };\n\n /**\n * Builds an instance of the dynamic component\n * @param {Object} config\n * @param {jQuery|HTMLElement|String} [config.renderTo] - An optional container in which renders the component\n * @param {Boolean} [config.replace] - When the component is appended to its container, clears the place before\n * @param {String} [config.title] - title to be displayed in the title bar\n * @param {Boolean} [config.resizable] - allow the component to be resizable\n * @param {Boolean} [config.draggable] - allow the component to be draggable\n * @param {Number} [config.width] - the initial width of the component content\n * @param {Number} [config.height] - the intial height of the component content\n * @param {Number} [config.minWidth] - the min width for resize\n * @param {Number} [config.maxWidth] - the max width for resize\n * @param {Number} [config.largeWidthThreshold] - the width below which the container will get the class \"small\"\n * @param {Number} [config.smallWidthThreshold] - the width above which the container will get the class \"large\"\n * @param {jQuery|HTMLElement|String} [config.draggableContainer] - the DOMElement the draggable component will be constraint in\n * @param {Number} [config.top] - the initial position top absolute to the windows\n * @param {Number} [config.left] - the initial position left absolute to the windows\n * @returns {component}\n */\n var dynComponentFactory = function dynComponentFactory(specs, defaults){\n\n defaults = _.defaults(defaults || {}, _defaults);\n specs = _.defaults(specs || {}, dynamicComponent);\n\n return component(specs, defaults)\n .setTemplate(layoutTpl)\n .on('render', function (){\n\n var self = this;\n var $element = this.getElement();\n var $content = $element.find('.dynamic-component-content');\n var interactElement;\n var config = this.config;\n var draggableContainer;\n var $draggingLayer;\n \n //set size + position\n this.resetPosition();\n this.resetSize();\n\n //init closer\n interact($element.find('.dynamic-component-title-bar .closer').selector).on('tap', function() {\n self.hide();\n });\n\n //init the component content\n this.trigger('rendercontent', $content);\n\n //make the dynamic-component draggable + resizable\n interactElement = interact($element[0]);\n if(config.draggable){\n draggableContainer = config.draggableContainer;\n if(draggableContainer instanceof $ && draggableContainer.length){\n draggableContainer = draggableContainer[0];\n }\n if(_.isElement(draggableContainer) || _.isString(draggableContainer)){\n //the dragging layer enable issue while dragging content with iframes\n $draggingLayer = $content.find('.dynamic-component-layer');\n \n interactElement.draggable({\n inertia : false,\n autoScroll : true,\n manualStart: true,\n restrict : {\n restriction : draggableContainer,\n endOnly : false,\n elementRect : {top : 0, left : 0, bottom : 1, right : 1}\n },\n onmove : _moveItem,\n onstart: function () {\n $draggingLayer.addClass('dragging-active');\n },\n onend: function () {\n $draggingLayer.removeClass('dragging-active');\n }\n });\n \n //manually start interactjs draggable on the handle\n interact($element.find('.dynamic-component-title-bar')[0]).on('down', function (event){\n \n var interaction = event.interaction,\n handle = event.currentTarget;\n\n interaction.start({\n name : 'drag',\n edges : {\n top : handle.dataset.top,\n left : handle.dataset.left,\n bottom : handle.dataset.bottom,\n right : handle.dataset.right\n }\n },\n interactElement,\n $element[0]);\n });\n }else{\n self.trigger('error', new Error('invalid draggableContainer type'));\n }\n }\n if(config.resizable){\n interactElement.resizable({\n preserveAspectRatio : true,\n edges : {left : true, right : true, bottom : true, top : true},\n onmove : _resizeItem\n });\n }\n\n /**\n * Callback for on move event\n * @param {Object} e - the interact event object\n */\n function _moveItem(e){\n\n var $target = $(e.target),\n x = (parseFloat($target.attr('data-x')) || 0) + e.dx,\n y = (parseFloat($target.attr('data-y')) || 0) + e.dy,\n transform = 'translate(' + x + 'px, ' + y + 'px) translateZ(0)';\n\n $target.css({\n webkitTransform : transform,\n transform : transform\n });\n\n $target.attr('data-x', x);\n $target.attr('data-y', y);\n }\n\n /**\n * Callback for on resize event\n * @param {Object} e - the interact event object\n */\n function _resizeItem(e){\n\n var $target = $(e.target),\n $title = $target.find('.dynamic-component-title-bar'),\n $content = $target.find('.dynamic-component-content'),\n x = (parseFloat($target.attr('data-x')) || 0) + e.deltaRect.left,\n y = (parseFloat($target.attr('data-y')) || 0) + e.deltaRect.top,\n transform = 'translate(' + x + 'px, ' + y + 'px)';\n\n if(e.rect.width <= config.minWidth || e.rect.width >= config.maxWidth){\n return;\n }else if(e.rect.width <= config.smallWidthThreshold){\n $target.addClass('small').removeClass('large');\n }else if(e.rect.width >= config.largeWidthThreshold){\n $target.addClass('large').removeClass('small');\n }else{\n $target.removeClass('small').removeClass('large');\n }\n\n $target.css({\n width : e.rect.width,\n height : e.rect.height,\n webkitTransform : transform,\n transform : transform\n });\n\n $content.css({\n width : $title.width(),\n height : $target.innerHeight() - $title.height() - parseInt($target.css('padding-top')) - parseInt($target.css('padding-bottom'))\n });\n\n $target.attr('data-x', x);\n $target.attr('data-y', y);\n }\n });\n };\n\n return dynComponentFactory;\n});\n\n","\ndefine('tpl!lib/calculator/template', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n \n\n\n return \"<div class=\\\"calcContainer\\\">\\n <form action=\\\"\\\">\\n <input type=\\\"text\\\" class=\\\"calcDisplay\\\" readonly=\\\"readonly\\\"/>\\n\\n <button type=\\\"button\\\" value=\\\"%\\\" data-key=\\\"%\\\" class=\\\"calcFunction calcFirst\\\">&#37;</button>\\n <button type=\\\"button\\\" value=\\\"sqrt\\\" data-key=\\\"sqrt\\\" class=\\\"calcFunction\\\">&radic;</button>\\n <button type=\\\"button\\\" value=\\\"pow\\\" data-key=\\\"pow\\\" class=\\\"calcFunction\\\">x<sup>y</sup></button>\\n <button type=\\\"button\\\" value=\\\"1/x\\\" data-key=\\\"1/x\\\" class=\\\"calcFunction\\\"><sup>1</sup>&frasl;<sub>x</sub></button>\\n\\n <button type=\\\"button\\\" value=\\\"C\\\" data-key=\\\"C\\\" class=\\\"calcClear calcFirst\\\">C</button>\\n <button type=\\\"button\\\" value=\\\"CE\\\" data-key=\\\"CE\\\" class=\\\"calcClear\\\">CE</button>\\n <button type=\\\"button\\\" value=\\\"DEL\\\" data-key=\\\"DEL\\\" class=\\\"calcClear\\\">DEL</button>\\n <button type=\\\"button\\\" value=\\\"/\\\" data-key=\\\"/\\\" class=\\\"calcFunction\\\">&divide;</button>\\n\\n <button type=\\\"button\\\" value=\\\"7\\\" data-key=\\\"7\\\" class=\\\"calcInput calcDigit calcFirst\\\">7</button>\\n <button type=\\\"button\\\" value=\\\"8\\\" data-key=\\\"8\\\" class=\\\"calcInput calcDigit\\\">8</button>\\n <button type=\\\"button\\\" value=\\\"9\\\" data-key=\\\"9\\\" class=\\\"calcInput calcDigit\\\">9</button>\\n <button type=\\\"button\\\" value=\\\"*\\\" data-key=\\\"*\\\" class=\\\"calcFunction\\\">&times;</button>\\n\\n <button type=\\\"button\\\" value=\\\"4\\\" data-key=\\\"4\\\" class=\\\"calcFirst calcDigit calcInput\\\">4</button>\\n <button type=\\\"button\\\" value=\\\"5\\\" data-key=\\\"5\\\" class=\\\"calcInput calcDigit\\\">5</button>\\n <button type=\\\"button\\\" value=\\\"6\\\" data-key=\\\"6\\\" class=\\\"calcInput calcDigit\\\">6</button>\\n <button type=\\\"button\\\" value=\\\"-\\\" data-key=\\\"-\\\" class=\\\"calcFunction\\\">-</button>\\n\\n <button type=\\\"button\\\" value=\\\"1\\\" data-key=\\\"1\\\" class=\\\"calcFirst calcDigit calcInput\\\">1</button>\\n <button type=\\\"button\\\" value=\\\"2\\\" data-key=\\\"2\\\" class=\\\"calcInput calcDigit\\\">2</button>\\n <button type=\\\"button\\\" value=\\\"3\\\" data-key=\\\"3\\\" class=\\\"calcInput calcDigit\\\">3</button>\\n <button type=\\\"button\\\" value=\\\"+\\\" data-key=\\\"+\\\" class=\\\"calcFunction\\\">+</button>\\n\\n <button type=\\\"button\\\" value=\\\"+/-\\\" data-key=\\\"+/-\\\" class=\\\"calcFirst calcInput\\\">&plusmn;</button>\\n <button type=\\\"button\\\" value=\\\"0\\\" data-key=\\\"0\\\" class=\\\"calcInput calcDigit\\\">0</button>\\n <button type=\\\"button\\\" value=\\\".\\\" data-key=\\\".\\\" class=\\\"calcInput\\\">.</button>\\n <input type=\\\"submit\\\" value=\\\"=\\\" data-key=\\\"=\\\" class=\\\"calcFunction calcSubmit\\\"/>\\n </form>\\n</div>\";\n });\n});\n\n","/**\n * ORGINAL VERSION:\n * calculator 2.0.0-dev by Bill Bryant 2013 \n * Licensed under the MIT license.\n * https://github.com/wjbryant/calculator\n * \n * MODIFIED VERSION:\n * @author Sam <sam@taotesting.com> for OAT SA in 2016\n * - Code refactoring to fit AMD modules\n * - replaced custom selector with JQuery selectors\n * - added focus listener, decial calculation fix, button highlight\n * -i18n\n */\ndefine('lib/calculator/index',['jquery', 'tpl!lib/calculator/template', 'i18n'], function ($, templateTpl, __){\n\n 'use strict';\n\n /**\n * the JSCALC \"namespace\"\n *\n * @namespace\n */\n var JSCALC = {},\n calculators = {}, // an object containing all the calculators created\n nextID = 0;\n \n /**\n * Creates a new calculator in the specified container element (module).\n *\n * @param {Element} calcMod the element to contain the calculator\n * @return {Calculator} a Calculator object\n *\n * @ignore\n */\n function createCalc(calcMod){\n var calcTemplate = templateTpl(),\n forms,\n form,\n display,\n total = 0,\n operation,\n clearNext = true,\n dot = /\\./,\n lastNum = null,\n getLastNum = false,\n lastKeyDown,\n operationPressed = false, // whether an operation was the last key pressed\n calcObj = {},\n id = nextID;\n \n /**\n * Performs the basic mathematical operations (addition, subtraction,\n * multiplication, division) on the current total with the given\n * value for the current operation.\n *\n * @param {Number} val the value to use in the calculation with the total\n *\n * @ignore\n */\n function calculate(val){\n if(!total || isNaN(total)){\n total = 0;\n }\n switch(operation){\n case '+':\n total += val;\n break;\n case '-':\n total -= val;\n break;\n case '*':\n total *= val;\n break;\n case '/':\n total /= val;\n break;\n case 'pow':\n total = Math.pow(total, val);\n break;\n }\n display.value = _fixDecimal(total);\n }\n\n /**\n * This function handles input for the form's keydown, keypress and\n * click events. Any keypresses that are not related to a calculator\n * function are not allowed.\n *\n * @return {Boolean} whether the default action is allowed\n *\n * @ignore\n */\n function handleInput(e){\n e = e || window.event;\n \n var key, // the key (char) that was pressed / clicked\n code, // the key code\n val, // the numeric value of the display\n target, // the target element of the event\n isOperation = false; // whether the button pressed is an operation\n\n // this switch statement sets the key variable\n switch(e.type){\n case 'keydown':\n lastKeyDown = code = e.keyCode;\n\n switch(code){\n case 27:\n // escape\n key = 'C';\n break;\n case 8:\n // backspace\n key = 'DEL';\n break;\n case 46:\n // delete\n key = 'CE';\n break;\n default:\n // allow all other keys (enter, tab, numbers, letters, etc.)\n return true;\n }\n break;\n case 'keypress':\n // most browsers provide the charCode property when the keypress event is fired\n // IE and Opera provide the character code in the keyCode property instead\n code = e.charCode || e.keyCode;\n\n // this event is fired for all keys in Firefox and Opera\n // because of this, we need to check the last keyCode\n // from the keydown event for certain keys\n\n // allow enter, tab and left and right arrow keys\n // the enter key fires the keypress event in all browsers\n // the other keys are handled here for Firefox and Opera\n if(code === 13 || code === 9 || lastKeyDown === 37 || lastKeyDown === 39){\n return true;\n }\n // these keys are handled on keydown (escape, backspace, delete)\n // this is for Firefox and Opera (and sometimes IE for the escape key)\n if(code === 27 || code === 8 || lastKeyDown === 46){\n return false;\n }\n\n // get the key character in lower case\n if(lastKeyDown === 188){\n key = '.'; // allow the comma key to be used for a decimal point\n }else{\n key = String.fromCharCode(code).toLowerCase();\n }\n break;\n case 'click':\n target = e.target || e.srcElement;\n if((target.tagName === 'INPUT' || target.tagName === 'BUTTON') && target.type === 'button'){\n key = target.value;\n }else{\n return true;\n }\n break;\n case 'calculatorPressMethod':\n // special case for the press method of the calculator object\n key = e.calckey;\n break;\n default:\n // the switch statement should never make it here\n // this is just a safeguard\n return true;\n }\n\n val = parseFloat(display.value);\n\n switch(key){\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n case '.':\n // don't allow more than one decimal point\n if(clearNext){\n display.value = key;\n clearNext = false;\n }else if(!(key === '.' && dot.test(display.value))){\n display.value += key;\n }\n break;\n case '*':\n case '+':\n case '-':\n case '/':\n case 'pow': \n // if an operation was the last key pressed,\n // do nothing but change the current operation\n if(!operationPressed){\n if(total === 0 || lastNum !== null){\n total = val;\n }else{\n calculate(val);\n }\n lastNum = null;\n getLastNum = true;\n clearNext = true;\n }\n operation = key;\n isOperation = true;\n break;\n case 'C':\n display.blur(); // so Firefox can clear display when escape key is pressed\n total = 0;\n operation = '';\n clearNext = true;\n lastNum = null;\n getLastNum = false;\n display.value = '0';\n break;\n case 'CE':\n display.value = '0';\n clearNext = true;\n break;\n case 'DEL':\n display.value = display.value.slice(0, display.value.length - 1);\n break;\n case '+/-':\n display.value = val * -1;\n break;\n case '%':\n if(val){\n display.value = total * val / 100;\n }\n break;\n case 'sqrt':\n if(val >= 0){\n display.value = Math.sqrt(val);\n }else{\n display.value = __('Invalid input for function');\n }\n break;\n case 'a':\n case 'c':\n case 'v':\n case 'x':\n // allow select all, copy, paste and cut key combinations\n if(e.ctrlKey){\n return true;\n }\n break;\n case '1/x':\n case 'r':\n if(val){\n display.value = 1 / val;\n }else{\n display.value = __('Cannot divide by zero');\n }\n break;\n case '=':\n form.onsubmit();\n break;\n }\n operationPressed = isOperation;\n display.focus();\n _initButtonHighlight(form, key, operation);\n return false;\n }\n \n // increment the ID counter\n nextID += 1;\n\n // create the calculator elements\n calcMod.innerHTML += calcTemplate;\n\n // get the calculator inputs\n forms = calcMod.getElementsByTagName('form');\n form = forms[forms.length - 1]; // make sure it's the one that was just added\n display = form.getElementsByTagName('input')[0];\n display.setAttribute('autocomplete', 'off');\n display.value = '0';\n display.onkeydown = display.onkeypress = form.onclick = handleInput;\n \n _addFocusListener(form);\n\n /**\n * Calculates the value of the last entered operation and displays the result.\n *\n * @return {Boolean} always returns false to prevent the form from being submitted\n *\n * @ignore\n */\n form.onsubmit = function (){\n if(getLastNum){\n lastNum = parseFloat(display.value) || 0;\n getLastNum = false;\n }\n calculate(lastNum);\n clearNext = true;\n display.focus();\n _initButtonHighlight(form, '=');\n return false;\n };\n\n /**\n * Gives focus to the calculator display.\n *\n * @function\n * @name focus\n * @memberOf Calculator.prototype\n */\n calcObj.focus = function (){\n display.focus();\n };\n\n /**\n * Simulates pressing a button on the calculator.\n *\n * @param {Number|String} button the button(s) to press - A number can\n * represent multiple buttons, but a\n * string can only represent one.\n * @return {Calculator} the Calculator object\n *\n * @function\n * @name press\n * @memberOf Calculator.prototype\n */\n calcObj.press = function (button){\n var buttons,\n num,\n i;\n\n // if button is a number, convert it to an array of digits as strings\n if(typeof button === 'number'){\n buttons = button.toString().split('');\n }else if(typeof button === 'string' && button){\n buttons = [button];\n }else{\n // invalid argument\n return this; // do nothing, but still allow method chaining\n }\n\n num = buttons.length;\n for(i = 0; i < num; i += 1){\n handleInput({\n type : 'calculatorPressMethod',\n calckey : buttons[i]\n });\n }\n\n return this; // allow method chaining\n };\n\n /**\n * Removes the calculator and sets the Calculator object to null.\n *\n * @function\n * @name remove\n * @memberOf Calculator.prototype\n */\n calcObj.remove = function (){\n display.onkeydown = display.onkeypress = form.onclick = null;\n calcMod.removeChild(form.parentNode);\n delete calculators[id];\n calcObj = null;\n };\n\n /**\n * a reference to the element that contains the calculator\n *\n * @name container\n * @memberOf Calculator.prototype\n */\n calcObj.container = calcMod;\n\n calculators[id] = calcObj; // keep track of all calculators\n\n return calcObj;\n }\n \n /**\n * Gets the Calculator object associated with the calculator contained in\n * the specified element.\n *\n * @param {Element} container the element containing the calculator\n * @return {Calculator} the Calculator object or null if none exists\n */\n JSCALC.get = function (container){\n // if the container argument is not an element node, do nothing\n if(!container || container.nodeType !== 1){\n return null;\n }\n\n var id,\n calcs = calculators,\n calc;\n\n for(id in calcs){\n if(calcs.hasOwnProperty(id)){\n if(container === calcs[id].container){\n calc = calcs[id];\n break;\n }\n }\n }\n\n return calc || null;\n };\n\n /**\n * Gets the Calculator objects for all the calculators on the page.\n *\n * @return {Calculator[]} an array of Calculator objects\n */\n JSCALC.getCalcs = function (){\n var id,\n calcArray = [],\n calcs = calculators;\n\n // the calculators array may be sparse, so copy all objects from it\n // into a dense array and return that instead\n for(id in calcs){\n if(calcs.hasOwnProperty(id)){\n calcArray[calcArray.length] = calcs[id];\n }\n }\n\n return calcArray;\n };\n\n /**\n * Creates calculators.\n *\n * @param {String|Element} [elem] the element in which to create the calculator -\n * If the argument is a string, it should be the element id.\n * If the argument is an object, it should be the element itself.\n * @return {Calculator|Calculator[]} If an argument is specified, the Calculator object or\n * null is returned. If no arguments are specified, an\n * array of Calculator objects is returned.\n */\n JSCALC.init = function (elem){\n var calcMods = [],\n args = false,\n calcMod,\n len,\n i,\n newCalcs = [];\n\n // treat a string argument as an element id\n if(typeof elem === 'string'){\n elem = document.getElementById(elem);\n }\n\n // if the argument is an element object or an element was found by id\n if(typeof elem === 'object' && elem.nodeType === 1){\n // add the \"calc\" class name to the element\n if(elem.className){\n if(elem.className.indexOf('calc') === -1){\n elem.className += ' calc';\n }\n }else{\n elem.className = 'calc';\n }\n\n // add the element to the array of calculator modules to be initialized\n calcMods[0] = elem;\n args = true;\n }else if(elem instanceof $){\n elem.each(function (){\n calcMods.push(this);\n args = true;\n });\n }else{\n // if an element node was not found or specified, get all elements\n // with a class name of \"calc\"\n $('.calc').each(function (){\n calcMods.push(this);\n args = true;\n });\n }\n\n len = calcMods.length;\n\n // if there is at least one element in the array\n if(len){\n // loop through the array and create a calculator in each element\n for(i = 0; i < len; i += 1){\n calcMod = calcMods[i];\n\n // check to ensure a calculator does not already exist in the\n // specified element\n if(!JSCALC.get(calcMod)){\n newCalcs[newCalcs.length] = createCalc(calcMod);\n }\n }\n }\n\n // if an argument was specified, return a single object or null if one\n // could not be created\n // else, return the array of objects even if it is empty\n return args ? (newCalcs[0] || null) : newCalcs;\n };\n\n /**\n * Removes all calculators.\n */\n JSCALC.removeAll = function (){\n var id,\n calcs = calculators;\n\n // remove each calculator in the calculators array (calcs)\n for(id in calcs){\n if(calcs.hasOwnProperty(id)){\n calcs[id].remove();\n }\n }\n };\n \n /**\n * Add focus listener to enable activating the calculator instance for keyboard input when clicked\n * \n * @param {HTMLElement} form\n */\n function _addFocusListener(form){\n var $form = $(form);\n var $display = $form.find('.calcDisplay');\n $form.on('click', '[type=button]', function (){\n var strLength = $display.val().length + 1;\n $display.focus();\n $display[0].setSelectionRange(strLength, strLength);\n });\n }\n \n /**\n * Fix rounding issue due to math operation on float numbers in javascript\n * \n * @param {Number} num\n * @returns {Number}\n */\n function _fixDecimal(num){\n return (1*num.toFixed(15)).toString();\n }\n \n /**\n * Adding visual feedback when an input is registered\n * \n * @param {HTMLElement} form\n * @param {string} key\n * @param {string} operationPressed\n */\n function _initButtonHighlight(form, key, operationPressed){\n var $btn = $(form).find('[data-key=\"'+key+'\"]');\n $btn.addClass('triggered');\n setTimeout(function(){\n $btn.removeClass('triggered');\n }, 160);\n }\n \n return JSCALC;\n});\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Sam <sam@taotesting.com>\n */\ndefine('ui/calculator',[\n 'lodash',\n 'i18n',\n 'ui/dynamicComponent',\n 'lib/calculator/index'\n], function (_, __, dynamicComponent, calculatorBuild){\n 'use strict';\n\n var _defaults = {\n title : __('Calculator')\n };\n \n var calculator = {\n press : function press(key){\n this.calc.press(key);\n return this;\n }\n };\n \n /**\n * Builds an instance of the calculator component\n * @param {Object} config\n * @param {jQuery|HTMLElement|String} [config.renderTo] - An optional container in which renders the component\n * @param {Boolean} [config.replace] - When the component is appended to its container, clears the place before\n * @param {String} [config.title] - title to be displayed in the title bar\n * @param {Boolean} [config.resizable] - allow the component to be resizable\n * @param {Boolean} [config.draggable] - allow the component to be draggable\n * @param {Number} [config.width] - the initial width of the component content\n * @param {Number} [config.height] - the intial height of the component content\n * @param {Number} [config.minWidth] - the min width for resize\n * @param {Number} [config.maxWidth] - the max width for resize\n * @param {Number} [config.largeWidthThreshold] - the width below which the container will get the class \"small\"\n * @param {Number} [config.smallWidthThreshold] - the width above which the container will get the class \"large\"\n * @param {jQuery|HTMLElement|String} [config.draggableContainer] - the DOMElement the draggable component will be constraint in\n * @param {Number} [config.top] - the initial position top absolute to the windows\n * @param {Number} [config.left] - the initial position left absolute to the windows\n * @returns {calculator}\n */\n var calculatorFactory = function calculatorFactory(config){\n\n config = _.defaults(config || {}, _defaults);\n\n return dynamicComponent(calculator)\n .on('rendercontent', function ($content){\n //init the calculator\n this.calc = calculatorBuild.init($content);\n })\n .after('show', function (){\n var self = this;\n _.defer(function (){\n //need defer to ensure that element show callbacks are all executed\n var $display = self.getElement().find('.calcDisplay');\n var strLength = $display.val().length + 1;\n $display.focus();\n $display[0].setSelectionRange(strLength, strLength);\n });\n })\n .on('reset', function(){\n //reset the calculator input\n this.calc.press('C');\n })\n .on('destroy', function (){\n if(this.calc){\n this.calc.remove();\n }\n }).init(config);\n };\n\n return calculatorFactory;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test Runner Tool Plugin : Calculator\n *\n * @author Sam <sam@taotesting.com>\n */\ndefine('taoQtiTest/runner/plugins/tools/calculator',[\n 'jquery',\n 'i18n',\n 'ui/hider',\n 'ui/calculator',\n 'taoTests/runner/plugin',\n 'tpl!taoQtiTest/runner/plugins/navigation/button'\n], function ($, __, hider, calculatorFactory, pluginFactory, buttonTpl){\n 'use strict';\n\n var _default = {\n height : 360,\n width : 240\n };\n\n /**\n * Returns the configured plugin\n */\n return pluginFactory({\n name : 'calculator',\n /**\n * Initialize the plugin (called during runner's init)\n */\n init : function init(){\n var self = this;\n var testRunner = this.getTestRunner();\n var areaBroker = this.getAreaBroker();\n\n /**\n * Is calculator activated ? if not, then we hide the plugin\n */\n function togglePlugin(){\n var context = testRunner.getTestContext();\n //to be activated with the special category x-tao-option-calculator\n if(context.options.calculator){//allow calculator\n self.show();\n }else{\n self.hide();\n }\n }\n\n //build element (detached)\n this.$button = $(buttonTpl({\n control : 'calculator',\n title : __('Open Calculator'),\n icon : 'maths',\n text : __('Calculator')\n }));\n this.$calculatorContainer = $('<div class=\"widget-calculator\">');\n\n //init calculator instance var, it will be created only necessary\n this.calculator = null;\n\n //attach behavior\n this.$button.on('click', function (e){\n\n //get the offset of the button to position the calculator widget close to it\n var offset = $(this).offset();\n\n //prevent action if the click is made inside the form which is a sub part of the button\n if($(e.target).closest('.widget-container').length){\n return;\n }\n\n e.preventDefault();\n\n if(self.getState('enabled') !== false){\n if(self.calculator){\n //just show/hide the calculator widget\n if(self.calculator.is('hidden')){\n self.calculator.show();\n }else{\n self.calculator.hide();\n }\n }else{\n //build calculator widget\n self.calculator = calculatorFactory({\n renderTo : self.$calculatorContainer,\n replace : true,\n draggableContainer : areaBroker.getContainer().find('.test-runner-sections')[0],\n width : _default.width,\n height : _default.height\n }).on('show', function(){\n self.trigger('open');\n }).on('hide', function(){\n self.trigger('close');\n });\n \n //set initial position on init\n self.calculator.show().getElement().css({\n left : offset.left,\n top : 'auto',\n bottom : 45\n });\n }\n }\n });\n\n //start disabled\n togglePlugin();\n this.disable();\n\n //update plugin state based on changes\n testRunner\n .on('loaditem', togglePlugin)\n .on('renderitem', function (){\n self.enable();\n })\n .on('unloaditem', function (){\n self.disable();\n if(self.calculator){\n //destroy calculator to create a new instance of calculator each time\n self.calculator.destroy();\n self.calculator = null;\n }\n });\n },\n /**\n * Called during the runner's render phase\n */\n render : function render(){\n var areaBroker = this.getAreaBroker();\n areaBroker.getToolboxArea().append(this.$button);\n areaBroker.getContainer().append(this.$calculatorContainer);\n },\n /**\n * Called during the runner's destroy phase\n */\n destroy : function destroy(){\n this.$button.remove();\n this.$calculatorContainer.remove();\n if(this.calculator){\n this.calculator.destroy();\n }\n },\n /**\n * Enable the button\n */\n enable : function enable(){\n this.$button.removeProp('disabled')\n .removeClass('disabled');\n },\n /**\n * Disable the button\n */\n disable : function disable(){\n this.$button.prop('disabled', true)\n .addClass('disabled');\n if(this.calculator){\n this.calculator.hide();\n }\n },\n /**\n * Show the button\n */\n show : function show(){\n hider.show(this.$button);\n },\n /**\n * Hide the button\n */\n hide : function hide(){\n hider.hide(this.$button);\n if(this.calculator){\n this.calculator.hide();\n }\n }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\ndefine('taoQtiTest/runner/plugins/loader',[\n 'core/pluginLoader',\n 'taoQtiTest/runner/plugins/content/rubricBlock/rubricBlock',\n 'taoQtiTest/runner/plugins/content/overlay/overlay',\n 'taoQtiTest/runner/plugins/content/dialog/dialog',\n 'taoQtiTest/runner/plugins/content/dialog/exitMessages',\n 'taoQtiTest/runner/plugins/content/loading/loading',\n 'taoQtiTest/runner/plugins/content/feedback/feedback',\n 'taoQtiTest/runner/plugins/controls/connectivity/connectivity',\n 'taoQtiTest/runner/plugins/controls/testState/testState',\n 'taoQtiTest/runner/plugins/controls/duration/duration',\n 'taoQtiTest/runner/plugins/controls/title/title',\n 'taoQtiTest/runner/plugins/controls/timer/timer',\n 'taoQtiTest/runner/plugins/controls/progressbar/progressbar',\n 'taoQtiTest/runner/plugins/controls/review/review',\n 'taoQtiTest/runner/plugins/navigation/next',\n 'taoQtiTest/runner/plugins/navigation/previous',\n 'taoQtiTest/runner/plugins/navigation/nextSection',\n 'taoQtiTest/runner/plugins/navigation/skip',\n 'taoQtiTest/runner/plugins/tools/comment/comment',\n 'taoQtiTest/runner/plugins/tools/calculator'\n], function(pluginLoader,\n rubricBlock,\n overlay,\n dialog,\n exitMessages,\n loading,\n feedback,\n connectivity,\n testState,\n duration,\n title,\n timer,\n progressbar,\n review,\n next,\n previous,\n nextSection,\n skip,\n comment,\n calculator) {\n 'use strict';\n\n /**\n * Instantiate the plugin loader with all the required plugins configured\n */\n return pluginLoader({\n content : [rubricBlock, overlay, dialog, feedback, exitMessages, loading],\n controls : [title, timer, progressbar, duration, connectivity, testState],\n navigation : [review, previous, next, nextSection, skip],\n tools : [comment, calculator]\n });\n});\n\n","//>>excludeStart('excludeRequireCss', pragmas.excludeRequireCss)\n/*\n * css.normalize.js\n *\n * CSS Normalization\n *\n * CSS paths are normalized based on an optional basePath and the RequireJS config\n *\n * Usage:\n * normalize(css, fromBasePath, toBasePath);\n *\n * css: the stylesheet content to normalize\n * fromBasePath: the absolute base path of the css relative to any root (but without ../ backtracking)\n * toBasePath: the absolute new base path of the css relative to the same root\n *\n * Absolute dependencies are left untouched.\n *\n * Urls in the CSS are picked up by regular expressions.\n * These will catch all statements of the form:\n *\n * url(*)\n * url('*')\n * url(\"*\")\n *\n * @import '*'\n * @import \"*\"\n *\n * (and so also @import url(*) variations)\n *\n * For urls needing normalization\n *\n */\n\ndefine('normalize',[],function() {\n\n // regular expression for removing double slashes\n // eg http://www.example.com//my///url/here -> http://www.example.com/my/url/here\n var slashes = /([^:])\\/+/g\n var removeDoubleSlashes = function(uri) {\n return uri.replace(slashes, '$1/');\n }\n\n // given a relative URI, and two absolute base URIs, convert it from one base to another\n var protocolRegEx = /[^\\:\\/]*:\\/\\/([^\\/])*/;\n var absUrlRegEx = /^(\\/|data:)/;\n function convertURIBase(uri, fromBase, toBase) {\n if (uri.match(absUrlRegEx) || uri.match(protocolRegEx))\n return uri;\n uri = removeDoubleSlashes(uri);\n // if toBase specifies a protocol path, ensure this is the same protocol as fromBase, if not\n // use absolute path at fromBase\n var toBaseProtocol = toBase.match(protocolRegEx);\n var fromBaseProtocol = fromBase.match(protocolRegEx);\n if (fromBaseProtocol && (!toBaseProtocol || toBaseProtocol[1] != fromBaseProtocol[1] || toBaseProtocol[2] != fromBaseProtocol[2]))\n return absoluteURI(uri, fromBase);\n\n else {\n return relativeURI(absoluteURI(uri, fromBase), toBase);\n }\n };\n\n // given a relative URI, calculate the absolute URI\n function absoluteURI(uri, base) {\n if (uri.substr(0, 2) == './')\n uri = uri.substr(2);\n\n // absolute urls are left in tact\n if (uri.match(absUrlRegEx) || uri.match(protocolRegEx))\n return uri;\n\n var baseParts = base.split('/');\n var uriParts = uri.split('/');\n\n baseParts.pop();\n\n while (curPart = uriParts.shift())\n if (curPart == '..')\n baseParts.pop();\n else\n baseParts.push(curPart);\n\n return baseParts.join('/');\n };\n\n\n // given an absolute URI, calculate the relative URI\n function relativeURI(uri, base) {\n\n // reduce base and uri strings to just their difference string\n var baseParts = base.split('/');\n baseParts.pop();\n base = baseParts.join('/') + '/';\n i = 0;\n while (base.substr(i, 1) == uri.substr(i, 1))\n i++;\n while (base.substr(i, 1) != '/')\n i--;\n base = base.substr(i + 1);\n uri = uri.substr(i + 1);\n\n // each base folder difference is thus a backtrack\n baseParts = base.split('/');\n var uriParts = uri.split('/');\n out = '';\n while (baseParts.shift())\n out += '../';\n\n // finally add uri parts\n while (curPart = uriParts.shift())\n out += curPart + '/';\n\n return out.substr(0, out.length - 1);\n };\n\n var normalizeCSS = function(source, fromBase, toBase) {\n\n fromBase = removeDoubleSlashes(fromBase);\n toBase = removeDoubleSlashes(toBase);\n var urlRegEx = /@import\\s*(\"([^\"]*)\"|'([^']*)')|url\\s*\\((?!#)\\s*(\\s*\"([^\"]*)\"|'([^']*)'|[^\\)]*\\s*)\\s*\\)/ig;\n var result, url, source;\n\n //we dont want to normalize the CSS content\n //while (result = urlRegEx.exec(source)) {\n //url = result[3] || result[2] || result[5] || result[6] || result[4];\n //var newUrl;\n //newUrl = convertURIBase(url, fromBase, toBase);\n //var quoteLen = result[5] || result[6] ? 1 : 0;\n //source = source.substr(0, urlRegEx.lastIndex - url.length - quoteLen - 1) + newUrl + source.substr(urlRegEx.lastIndex - quoteLen - 1);\n //urlRegEx.lastIndex = urlRegEx.lastIndex + (newUrl.length - url.length);\n //}\n\n return source;\n };\n\n normalizeCSS.convertURIBase = convertURIBase;\n normalizeCSS.absoluteURI = absoluteURI;\n normalizeCSS.relativeURI = relativeURI;\n\n return normalizeCSS;\n});\n//>>excludeEnd('excludeRequireCss')\n;\n","/*\n * Require-CSS RequireJS css! loader plugin\n * 0.1.2\n * Guy Bedford 2013\n * MIT\n */\n\n/*\n *\n * Usage:\n * require(['css!./mycssFile']);\n *\n * Tested and working in (up to latest versions as of March 2013):\n * Android\n * iOS 6\n * IE 6 - 10\n * Chome 3 - 26\n * Firefox 3.5 - 19\n * Opera 10 - 12\n * \n * browserling.com used for virtual testing environment\n *\n * Credit to B Cavalier & J Hann for the IE 6 - 9 method,\n * refined with help from Martin Cermak\n * \n * Sources that helped along the way:\n * - https://developer.mozilla.org/en-US/docs/Browser_detection_using_the_user_agent\n * - http://www.phpied.com/when-is-a-stylesheet-really-loaded/\n * - https://github.com/cujojs/curl/blob/master/src/curl/plugin/css.js\n *\n */\n\ndefine('css',[],function() {\n//>>excludeStart('excludeRequireCss', pragmas.excludeRequireCss)\n if (typeof window == 'undefined')\n return { load: function(n, r, load){ load() } };\n\n var head = document.getElementsByTagName('head')[0];\n\n var engine = window.navigator.userAgent.match(/Trident\\/([^ ;]*)|AppleWebKit\\/([^ ;]*)|Opera\\/([^ ;]*)|rv\\:([^ ;]*)(.*?)Gecko\\/([^ ;]*)|MSIE\\s([^ ;]*)|AndroidWebKit\\/([^ ;]*)/) || 0;\n\n // use <style> @import load method (IE < 9, Firefox < 18)\n var useImportLoad = false;\n \n // set to false for explicit <link> load checking when onload doesn't work perfectly (webkit)\n var useOnload = true;\n\n // trident / msie\n if (engine[1] || engine[7])\n useImportLoad = parseInt(engine[1]) < 6 || parseInt(engine[7]) <= 9;\n // webkit\n else if (engine[2] || engine[8])\n useOnload = false;\n // gecko\n else if (engine[4])\n useImportLoad = parseInt(engine[4]) < 18;\n\n//>>excludeEnd('excludeRequireCss')\n //main api object\n var cssAPI = {};\n\n//>>excludeStart('excludeRequireCss', pragmas.excludeRequireCss)\n cssAPI.pluginBuilder = './css-builder';\n\n // <style> @import load method\n var curStyle, curSheet;\n var createStyle = function () {\n curStyle = document.createElement('style');\n head.appendChild(curStyle);\n curSheet = curStyle.styleSheet || curStyle.sheet;\n }\n var ieCnt = 0;\n var ieLoads = [];\n var ieCurCallback;\n \n var createIeLoad = function(url) {\n ieCnt++;\n if (ieCnt == 32) {\n createStyle();\n ieCnt = 0;\n }\n curSheet.addImport(url);\n curStyle.onload = function(){ processIeLoad() };\n }\n var processIeLoad = function() {\n ieCurCallback();\n \n var nextLoad = ieLoads.shift();\n \n if (!nextLoad) {\n ieCurCallback = null;\n return;\n }\n \n ieCurCallback = nextLoad[1];\n createIeLoad(nextLoad[0]);\n }\n var importLoad = function(url, callback) {\n if (!curSheet || !curSheet.addImport)\n createStyle();\n\n if (curSheet && curSheet.addImport) {\n // old IE\n if (ieCurCallback) {\n ieLoads.push([url, callback]);\n }\n else {\n createIeLoad(url);\n ieCurCallback = callback;\n }\n }\n else {\n // old Firefox\n curStyle.textContent = '@import \"' + url + '\";';\n\n var loadInterval = setInterval(function() {\n try {\n curStyle.sheet.cssRules;\n clearInterval(loadInterval);\n callback();\n } catch(e) {}\n }, 10);\n }\n }\n\n // <link> load method\n var linkLoad = function(url, callback) {\n var link = document.createElement('link');\n link.type = 'text/css';\n link.rel = 'stylesheet';\n if (useOnload)\n link.onload = function() {\n link.onload = function() {};\n // for style dimensions queries, a short delay can still be necessary\n setTimeout(callback, 7);\n }\n else\n var loadInterval = setInterval(function() {\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (sheet.href == link.href) {\n clearInterval(loadInterval);\n return callback();\n }\n }\n }, 10);\n link.href = url;\n head.appendChild(link);\n }\n\n//>>excludeEnd('excludeRequireCss')\n cssAPI.normalize = function(name, normalize) {\n if (name.substr(name.length - 4, 4) == '.css')\n name = name.substr(0, name.length - 4);\n\n return normalize(name);\n }\n\n//>>excludeStart('excludeRequireCss', pragmas.excludeRequireCss)\n cssAPI.load = function(cssId, req, load, config) {\n\n (useImportLoad ? importLoad : linkLoad)(req.toUrl(cssId + '.css'), load);\n\n }\n\n//>>excludeEnd('excludeRequireCss')\n return cssAPI;\n});\n\n","\ndefine('css!taoQtiTestCss/new-test-runner',[],function(){});\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Test runner controller entry\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiTest/controller/runner/runner',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'module',\n 'core/promise',\n 'core/communicator',\n 'core/communicator/poll',\n 'layout/loading-bar',\n 'ui/feedback',\n 'taoTests/runner/runner',\n 'taoQtiTest/runner/provider/qti',\n 'taoTests/runner/proxy',\n 'taoQtiTest/runner/proxy/qtiServiceProxy',\n 'taoQtiTest/runner/plugins/loader',\n 'css!taoQtiTestCss/new-test-runner'\n], function ($, _, __, module, Promise, communicator, pollProvider, loadingBar, feedback,\n runner, qtiProvider, proxy, qtiServiceProxy, pluginLoader) {\n 'use strict';\n\n\n /*\n *TODO plugins list, provider registration should be loaded dynamically\n */\n\n runner.registerProvider('qti', qtiProvider);\n proxy.registerProvider('qtiServiceProxy', qtiServiceProxy);\n communicator.registerProvider('poll', pollProvider);\n\n /**\n * Catches errors\n * @param {Object} err\n */\n function onError(err) {\n loadingBar.stop();\n\n feedback().error(err.message);\n\n //TODO to be replaced by the logger\n window.console.error(err);\n }\n\n /**\n * Initializes and launches the test runner\n * @param {Object} config\n */\n function initRunner(config) {\n var plugins = pluginLoader.getPlugins();\n\n config = _.defaults(config, {\n renderTo: $('.runner')\n });\n\n //instantiate the QtiTestRunner\n runner('qti', plugins, config)\n .on('error', onError)\n .on('ready', function () {\n _.defer(function () {\n $('.runner').removeClass('hidden');\n });\n })\n .after('destroy', function () {\n // at the end, we are redirected to the exit URL\n window.location = config.exitUrl;\n })\n .init();\n }\n\n /**\n * List of options required by the controller\n * @type {String[]}\n */\n var requiredOptions = [\n 'testDefinition',\n 'testCompilation',\n 'serviceCallId',\n 'exitUrl'\n ];\n\n /**\n * The runner controller\n */\n var runnerController = {\n\n /**\n * Controller entry point\n *\n * @param {Object} options - the testRunner options\n * @param {String} options.testDefinition\n * @param {String} options.testCompilation\n * @param {String} options.serviceCallId\n * @param {Object} options.bootstrap\n * @param {String} options.exitUrl - the full URL where to return at the final end of the test\n */\n start: function start(options) {\n var startOptions = options || {};\n var config = module.config();\n var missingOption = false;\n\n // verify required options\n _.forEach(requiredOptions, function(name) {\n if (!startOptions[name]) {\n onError({\n success: false,\n code: 0,\n type: 'error',\n message: __('Missing required option %s', name)\n });\n missingOption = true;\n return false;\n }\n });\n\n if (!missingOption) {\n loadingBar.start();\n\n if (config) {\n _.forEach(config.plugins, function (plugin) {\n pluginLoader.add(plugin.module, plugin.category, plugin.position);\n });\n }\n\n pluginLoader.load()\n .then(function () {\n initRunner(_.omit(startOptions, 'plugins'));\n })\n .catch(function () {\n onError({\n success: false,\n code: 0,\n type: 'error',\n message: __('Plugin dependency error!')\n });\n });\n }\n }\n };\n\n return runnerController;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\ndefine('taoQtiItem/qtiItem/core/Container',[\n 'jquery',\n 'lodash',\n 'taoQtiItem/qtiItem/core/Element',\n 'taoQtiItem/qtiItem/helper/rendererConfig'\n], function($, _, Element, rendererConfig){\n 'use strict';\n\n var Container = Element.extend({\n qtiClass : '_container',\n init : function(body){\n this._super();//generate serial, attributes array always empty\n if(body && typeof body !== 'string'){\n throw 'the body of a container must be a string';\n }\n this.bdy = body || '';\n this.elements = {};\n },\n body : function(body){\n if(typeof body === 'undefined'){\n return this.bdy;\n }else{\n if(typeof body === 'string'){\n this.bdy = body;\n $(document).trigger('containerBodyChange', {\n body : body,\n container : this\n });\n }else{\n throw 'body must be a string';\n }\n }\n },\n setElements : function(elements, body){\n var returnValue = false;\n\n for(var i in elements){\n var elt = elements[i];\n if(elt instanceof Element){\n\n body = body || this.bdy;\n if(body.indexOf(elt.placeholder()) === -1){\n body += elt.placeholder();//append the element if no placeholder found\n }\n\n elt.setRelatedItem(this.getRelatedItem() || null);\n this.elements[elt.getSerial()] = elt;\n $(document).trigger('containerElementAdded', {\n element : elt,\n container : this\n });\n\n returnValue = true;\n }else{\n returnValue = false;\n throw 'expected a qti element';\n }\n }\n\n this.body(body);\n\n return returnValue;\n },\n setElement : function(element, body){\n return this.setElements([element], body);\n },\n removeElement : function(element){\n var serial = '';\n if(typeof(element) === 'string'){\n serial = element;\n }else if(element instanceof Element){\n serial = element.getSerial();\n }\n delete this.elements[serial];\n this.body(this.body().replace('{{' + serial + '}}', ''));\n return this;\n },\n getElements : function(qtiClass){\n var elts = {};\n if(typeof(qtiClass) === 'string'){\n for(var serial in this.elements){\n if(Element.isA(this.elements[serial], qtiClass)){\n elts[serial] = this.elements[serial];\n }\n }\n }else{\n elts = _.clone(this.elements);\n }\n return elts;\n },\n getElement : function(serial){\n return this.elements[serial] ? this.elements[serial] : null;\n },\n getComposingElements : function(){\n var elements = this.getElements();\n var elts = {};\n for(var serial in elements){\n elts[serial] = elements[serial];//pass individual object by ref, instead of the whole list(object)\n elts = _.extend(elts, elements[serial].getComposingElements());\n }\n return elts;\n },\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n elementsData = [],\n tpl = this.body();\n\n for(var serial in this.elements){\n var elt = this.elements[serial];\n if(typeof elt.render === 'function'){\n if(elt.qtiClass === '_container'){\n //@todo : container rendering merging, to be tested\n tpl = tpl.replace(elt.placeholder(), elt.render(renderer));\n }else{\n tpl = tpl.replace(elt.placeholder(), '{{{' + serial + '}}}');\n elementsData[serial] = elt.render(renderer);\n }\n }else{\n throw 'render() is not defined for the qti element: ' + serial;\n }\n }\n\n if(renderer.isRenderer){\n return this._super({\n body : renderer.renderDirect(tpl, elementsData),\n contentModel : this.contentModel || 'flow'\n }, renderer, args.placeholder);\n }else{\n throw 'invalid qti renderer for qti container';\n }\n },\n postRender : function(data, altClassName, renderer){\n renderer = renderer || this.getRenderer();\n\n var res = _(this.elements)\n .filter( function(elt){\n return typeof elt.postRender === 'function';\n })\n .map(function(elt){\n return elt.postRender(data, '', renderer);\n })\n .flatten(true)\n .value()\n .concat(this._super(data, altClassName, renderer));\n return res;\n },\n toArray : function(){\n var arr = {\n serial : this.serial,\n body : this.bdy,\n elements : {}\n };\n\n for(var serial in this.elements){\n arr.elements[serial] = this.elements[serial].toArray();\n }\n\n return arr;\n },\n find : function(serial, parent){\n\n var found = null;\n\n if(this.elements[serial]){\n\n found = {parent : parent || this, element : this.elements[serial], location : 'body'};\n\n }else{\n\n _.each(this.elements, function(elt){\n\n found = elt.find(serial);\n if(found){\n return false;//break loop\n }\n });\n }\n\n return found;\n },\n isEmpty : function(){\n return !this.bdy;\n }\n });\n\n return Container;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\n\n/**\n * IdentifiedElement model\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiItem/core/IdentifiedElement',[\n 'taoQtiItem/qtiItem/core/Element',\n 'taoQtiItem/qtiItem/helper/util'\n], function(Element, util){\n 'use strict';\n\n /**\n * IdentifiedElement model\n */\n var IdentifiedElement = Element.extend({\n\n /**\n * Generates and assign an identifier\n * @param {String} prefix - identifier prefix\n * @param {Boolean} [useSuffix = true] - add a \"_ + index\" to the identifier\n * @returns {Object} for chaining\n */\n buildIdentifier : function buildIdentifier(prefix, useSuffix){\n var item = this.getRelatedItem();\n var id = util.buildIdentifier(item, prefix, useSuffix);\n if(id){\n this.attr('identifier', id);\n }\n return this;\n },\n\n /**\n * Get/set and identifier. It will be generated if it doesn't exists.\n * @param {String} [value] - set the value or get it if not set.\n * @returns {String} the identifier\n */\n id : function id(value){\n if(!value && !this.attr('identifier')){\n this.buildIdentifier(this.qtiClass, true);\n }\n return this.attr('identifier', value);\n }\n });\n\n /**\n * @exports taoQtiItem/qtiItem/core/IdentifiableElement\n */\n return IdentifiedElement;\n});\n\n\n","define('taoQtiItem/qtiItem/core/Img',[\n 'taoQtiItem/qtiItem/core/Element',\n 'lodash',\n 'taoQtiItem/qtiItem/helper/rendererConfig'\n], function(Element, _, rendererConfig){\n\n var Img = Element.extend({\n qtiClass : 'img',\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {};\n\n defaultData.attributes = {\n src : renderer.resolveUrl(this.attr('src'))\n };\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n },\n isEmpty : function(){\n return (!this.attr('src'));\n }\n });\n\n return Img;\n});\n\n","define('taoQtiItem/qtiItem/mixin/Mixin',[],function(){\n \n //@todo : need refactoring of qti item mixin with lodash.mixin()\n return {\n augment : function(targetClass, methods, options){\n if(typeof(targetClass) === 'function' && typeof(methods) === 'object'){\n for(var methodName in methods){\n if(!Object.hasOwnProperty(targetClass.prototype, methodName)){\n targetClass.prototype[methodName] = methods[methodName];\n }else{\n if(options && options.append){\n var _parent = targetClass.prototype[methodName];\n targetClass.prototype[methodName] = function(){\n methods[methodName].apply(this, arguments);\n return _parent.apply(this, arguments);\n }\n }\n }\n }\n }\n }\n }\n});\n","define('taoQtiItem/qtiItem/mixin/Container',['taoQtiItem/qtiItem/mixin/Mixin', 'taoQtiItem/qtiItem/core/Container'], function(Mixin, Container){\n\n var methods = {\n initContainer : function(body){\n this.bdy = new Container(body || '');\n this.bdy.setRelatedItem(this.getRelatedItem() || null);\n this.bdy.contentModel = 'blockStatic';\n },\n getBody : function(){\n return this.bdy;\n },\n body : function(body){\n var ret = this.bdy.body(body);\n return (body) ? this : ret;//for method chaining on get\n },\n setElement : function(element, body){\n this.bdy.setElement(element, body);\n return this;\n },\n removeElement : function(element){\n return this.bdy.removeElement(element);\n },\n getElements : function(qtiClass){\n return this.bdy.getElements(qtiClass);\n },\n getElement : function(serial){\n return this.bdy.getElement(serial);\n }\n };\n\n return {\n augment : function(targetClass){\n Mixin.augment(targetClass, methods);\n },\n methods : methods\n };\n});\n","define('taoQtiItem/qtiItem/mixin/ContainerInline',['taoQtiItem/qtiItem/mixin/Mixin', 'taoQtiItem/qtiItem/mixin/Container', 'lodash'], function(Mixin, Container, _){\n \n var methods = {};\n _.extend(methods, Container.methods);\n _.extend(methods, {\n initContainer:function(body){\n Container.methods.initContainer.call(this, body);\n this.bdy.contentModel = 'inlineStatic';\n }\n });\n\n return {\n augment : function(targetClass){\n Mixin.augment(targetClass, methods);\n },\n methods : methods\n };\n});\n","define('taoQtiItem/qtiItem/mixin/NamespacedElement',['taoQtiItem/qtiItem/mixin/Mixin', 'lodash'], function(Mixin, _){\n\n var methods = {\n getNamespace : function(){\n\n if(this.ns && this.ns.name && this.ns.uri){\n return _.clone(this.ns);\n }else{\n\n var relatedItem = this.getRelatedItem();\n if(relatedItem){\n var namespaces = relatedItem.getNamespaces();\n for(var ns in namespaces){\n if(namespaces[ns].indexOf(this.nsUriFragment) > 0){\n return {\n name : ns,\n uri : namespaces[ns]\n };\n }\n }\n //if no ns found in the item, set the default one!\n relatedItem.namespaces[this.defaultNsName] = this.defaultNsUri;\n return {\n name : this.defaultNsName,\n uri : this.defaultNsUri\n };\n }\n }\n\n return {};\n },\n setNamespace : function(name, uri){\n this.ns = {\n name : name,\n uri : uri\n };\n }\n };\n\n return {\n augment : function(targetClass){\n Mixin.augment(targetClass, methods);\n },\n methods : methods\n };\n});\n","define('taoQtiItem/qtiItem/core/Include',[\n 'taoQtiItem/qtiItem/core/Element',\n 'taoQtiItem/qtiItem/mixin/ContainerInline',\n 'taoQtiItem/qtiItem/mixin/NamespacedElement'\n], function(Element, Container, NamespacedElement){\n \n var Include = Element.extend({\n qtiClass : 'include',\n defaultNsName : 'xi',\n defaultNsUri : 'http://www.w3.org/2001/XInclude',\n nsUriFragment : 'XInclude',\n isEmpty : function(){\n return (!this.attr('href') || this.getBody().isEmpty());\n }\n });\n Container.augment(Include);\n NamespacedElement.augment(Include);\n return Include;\n});\n\n","define('taoQtiItem/qtiItem/mixin/ContainerItemBody',['taoQtiItem/qtiItem/mixin/Mixin', 'taoQtiItem/qtiItem/mixin/Container', 'lodash'], function(Mixin, Container, _){\n \n var methods = {};\n _.extend(methods, Container.methods);\n _.extend(methods, {\n initContainer:function(body){\n Container.methods.initContainer.call(this, body);\n this.bdy.contentModel = 'itemBody';\n }\n });\n\n return {\n augment : function(targetClass){\n Mixin.augment(targetClass, methods);\n },\n methods : methods\n };\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * QTI Item Element model\n *\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiItem/core/Item',[\n 'taoQtiItem/qtiItem/core/Element',\n 'taoQtiItem/qtiItem/core/IdentifiedElement',\n 'taoQtiItem/qtiItem/mixin/ContainerItemBody',\n 'lodash',\n 'jquery',\n 'taoQtiItem/qtiItem/helper/util'\n], function(Element, IdentifiedElement, Container, _, $, util){\n 'use strict';\n\n var Item = IdentifiedElement.extend({\n qtiClass : 'assessmentItem',\n init : function(serial, attributes){\n this._super(serial, attributes);\n this.relatedItem = this;\n this.stylesheets = {};\n this.responses = {};\n this.outcomes = {};\n this.modalFeedbacks = {};\n this.namespaces = {};\n this.schemaLocations = {};\n this.responseProcessing = null;\n this.apipAccessibility = null;\n },\n getInteractions : function(){\n var interactions = [];\n var elts = this.getComposingElements();\n for(var serial in elts){\n if(Element.isA(elts[serial], 'interaction')){\n interactions.push(elts[serial]);\n }\n }\n return interactions;\n },\n addResponseDeclaration : function(response){\n if(Element.isA(response, 'responseDeclaration')){\n response.setRelatedItem(this);\n this.responses[response.getSerial()] = response;\n }else{\n throw 'is not a qti response declaration';\n }\n return this;\n },\n getResponseDeclaration : function(identifier){\n for(var i in this.responses){\n if(this.responses[i].attr('identifier') === identifier){\n return this.responses[i];\n }\n }\n return null;\n },\n addOutcomeDeclaration : function(outcome){\n if(Element.isA(outcome, 'outcomeDeclaration')){\n outcome.setRelatedItem(this);\n this.outcomes[outcome.getSerial()] = outcome;\n }else{\n throw 'is not a qti outcome declaration';\n }\n return this;\n },\n addModalFeedback : function(feedback){\n if(Element.isA(feedback, 'modalFeedback')){\n feedback.setRelatedItem(this);\n this.modalFeedbacks[feedback.getSerial()] = feedback;\n }else{\n throw 'is not a qti modal feedback';\n }\n return this;\n },\n getComposingElements : function(){\n var elts = this._super(), _this = this;\n _.each(['responses', 'outcomes', 'modalFeedbacks', 'stylesheets'], function(elementCollection){\n for(var i in _this[elementCollection]){\n var elt = _this[elementCollection][i];\n elts[i] = elt;\n elts = _.extend(elts, elt.getComposingElements());\n }\n });\n if(this.responseProcessing instanceof Element){\n elts[this.responseProcessing.getSerial()] = this.responseProcessing;\n }\n return elts;\n },\n find : function(serial){\n\n var found = this._super(serial);\n\n if(!found){\n found = util.findInCollection(this, ['responses', 'outcomes', 'modalFeedbacks', 'stylesheets'], serial);\n }\n\n return found;\n },\n getResponses : function(){\n return _.clone(this.responses);\n },\n getRelatedItem : function(){\n return this;\n },\n addNamespace : function(name, uri){\n this.namespaces[name] = uri;\n },\n setNamespaces : function(namespaces){\n this.namespaces = namespaces;\n },\n getNamespaces : function(){\n return _.clone(this.namespaces);\n },\n setSchemaLocations : function(locations){\n this.schemaLocations = locations;\n },\n getSchemaLocations : function(){\n return _.clone(this.schemaLocations);\n },\n setApipAccessibility : function(apip){\n this.apipAccessibility = apip || null;\n },\n getApipAccessibility : function(){\n return this.apipAccessibility;\n },\n addStylesheet : function(stylesheet){\n if(Element.isA(stylesheet, 'stylesheet')){\n stylesheet.setRelatedItem(this);\n this.stylesheets[stylesheet.getSerial()] = stylesheet;\n }else{\n throw 'is not a qti stylesheet declaration';\n }\n return this;\n },\n removeStyleSheet : function(stylesheet){\n delete this.stylesheets[stylesheet.getSerial()];\n return this;\n },\n stylesheetExists : function(href){\n var exists = false;\n _.each(this.stylesheets, function(stylesheet){\n if(stylesheet.attr('href') === href){\n exists = true;\n return false;//break each loop\n }\n });\n return exists;\n },\n setResponseProcessing : function(rp){\n if(Element.isA(rp, 'responseProcessing')){\n rp.setRelatedItem(this);\n this.responseProcessing = rp;\n }else{\n throw 'is not a response processing';\n }\n return this;\n },\n toArray : function(){\n var arr = this._super();\n var toArray = function(elt){\n return elt.toArray();\n };\n arr.namespaces = this.namespaces;\n\t\t\tarr.schemaLocations = this.schemaLocations;\n arr.outcomes = _.map(this.outcomes, toArray);\n arr.responses = _.map(this.responses, toArray);\n arr.stylesheets = _.map(this.stylesheets, toArray);\n arr.modalFeedbacks = _.map(this.modalFeedbacks, toArray);\n arr.responseProcessing = this.responseProcessing.toArray();\n return arr;\n },\n isEmpty : function(){\n\n var body = this.body().trim();\n\n if(body){\n\n //hack to fix #2652\n var $dummy = $('<div>').html(body),\n $children = $dummy.children();\n\n if($children.length === 1 && $children.hasClass('empty')){\n return true;\n }else{\n return false;\n }\n }else{\n return true;\n }\n },\n\n /**\n * Clean up an item rendering.\n * Ask the renderer to run destroy if exists.\n */\n clear : function(){\n var renderer = this.getRenderer();\n if(renderer){\n if(_.isFunction(renderer.destroy)){\n renderer.destroy(this);\n }\n }\n },\n });\n\n Container.augment(Item);\n\n return Item;\n});\n\n","define('taoQtiItem/qtiItem/core/Math',[\n 'jquery',\n 'lodash',\n 'taoQtiItem/qtiItem/core/Element',\n 'taoQtiItem/qtiItem/helper/rendererConfig',\n 'taoQtiItem/qtiItem/mixin/NamespacedElement'\n], function($, _, Element, rendererConfig, NamespacedElement){\n 'use strict';\n\n /**\n * Remove the closing MathML tags and remove useless line breaks before and after it\n *\n * @param {String} mathML\n * @param {String} nsName\n * @returns {String}\n */\n function _stripMathTags(mathML, nsName){\n var regex = new RegExp('<(\\/)?' + (nsName ? nsName + ':' : '') + 'math[^>]*>', 'g');\n return mathML.replace(regex, '')\n .replace(/^\\s*[\\r\\n]/gm, '')//remove first blank line\n .replace(/\\s*[\\r\\n]$/gm, '');//last blank line\n }\n\n /**\n * Remove mathML ns name prefix from the mathML\n *\n * @param {String} mathML\n * @param {String} nsName\n * @returns {String}\n */\n function _stripNamespace(mathML, nsName){\n var regex = new RegExp('<(\\/)?' + (nsName ? nsName + ':' : ''), 'g');\n return mathML.replace(regex, '<$1');\n }\n\n /**\n * Check if the mathML string is to be considered empty\n *\n * @param {String} mathStr\n * @returns {Boolean}\n */\n function _isEmptyMathML(mathStr){\n\n var hasContent = false;\n\n if(mathStr && mathStr.trim()){\n var $math = $($.parseHTML(mathStr));\n hasContent = !!$math.text();\n }\n\n return !hasContent;\n }\n\n var Math = Element.extend({\n qtiClass : 'math',\n defaultNsName : 'm',\n defaultNsUri : 'http://www.w3.org/1998/Math/MathML',\n nsUriFragment : 'MathML',\n init : function(serial, attributes){\n this._super(serial, attributes);\n this.ns = null;\n this.mathML = '';\n this.annotations = {};\n },\n setAnnotation : function(encoding, value){\n this.annotations[encoding] = _.unescape(value);\n },\n getAnnotation : function(encoding){\n return this.annotations[encoding];\n },\n removeAnnotation : function(encoding){\n delete this.annotations[encoding];\n },\n setMathML : function(mathML){\n var ns = this.getNamespace(),\n nsName = (ns.name && ns.uri) ? ns.name : '';\n\n mathML = _stripMathTags(mathML, nsName);\n if(ns){\n mathML = _stripNamespace(mathML, nsName);\n }\n this.mathML = mathML;\n },\n getMathML : function(){\n return this.mathML;\n },\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n tag = this.qtiClass,\n raw = this.mathML,\n body = raw,\n ns = this.getNamespace(),\n annotations = '';\n\n for(var encoding in this.annotations){\n annotations += '<annotation encoding=\"' + encoding + '\">' + _.escape(this.annotations[encoding]) + '</annotation>';\n }\n\n if(annotations){\n if(raw.indexOf('</semantics>') > 0){\n raw = raw.replace('</semantics>', annotations + '</semantics>');\n }else{\n raw = '<semantics>' + raw + annotations + '</semantics>';\n }\n }\n\n if (ns && ns.name) {\n body = raw.replace(/<(\\/)?([^!<])/g, '<$1' + ns.name + ':$2');\n tag = ns.name + ':' + tag;\n }\n\n body = body.replace(/<!--.*?-->/g, ''); // remove Mathjax-generated comments\n body = body.replace(/&lt;!--.*?--&gt;/g, ''); // fix for broken items because of Mathjax comments\n\n var defaultData = {\n block : (this.attr('display') === 'block') ? true : false,\n body : body,\n raw : raw,\n tag : tag,\n ns : ns\n };\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n },\n isEmpty : function(){\n return _isEmptyMathML(this.mathML) && (!this.annotations.latex || !this.annotations.latex.trim());\n }\n });\n\n NamespacedElement.augment(Math);\n\n return Math;\n});\n\n","define('taoQtiItem/qtiItem/core/Object',[\n 'taoQtiItem/qtiItem/core/Element',\n 'lodash',\n 'taoQtiItem/qtiItem/helper/rendererConfig',\n 'taoQtiItem/qtiItem/helper/util'\n], function(Element, _, rendererConfig, util){\n\n var QtiObject = Element.extend({\n qtiClass : 'object',\n getMediaType : function(){\n var type = 'undefined';\n var mimetype = this.attr('type');\n if(mimetype){\n if(mimetype.indexOf('video') === 0){\n type = 'video';\n }else if(mimetype.indexOf('audio') === 0){\n type = 'audio';\n }else if(mimetype.indexOf('image') === 0){\n type = 'image';\n }else if(mimetype.indexOf('text/html') === 0){\n type = 'html';\n }else{\n type = 'object';\n }\n }\n return type;\n },\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {};\n\n switch(this.getMediaType()){\n case 'video':\n defaultData.video = true;\n break;\n case 'audio':\n defaultData.audio = true;\n break;\n case 'html':\n defaultData.html = true;\n break;\n case 'image':\n default:\n defaultData.object = true;\n }\n\n defaultData.attributes = {data : renderer.resolveUrl(this.attr('data'))};\n defaultData.body = this._alt;\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n },\n isEmpty : function(){\n return (!this.attr('data'));\n }\n });\n\n return QtiObject;\n});\n\n","define('taoQtiItem/qtiItem/mixin/CustomElement',[\n 'taoQtiItem/qtiItem/mixin/Mixin',\n 'lodash'\n], function(Mixin, _){\n\n var methods = {\n prop : function(name, value){\n if(name){\n if(value !== undefined){\n this.properties[name] = value;\n }else{\n if(typeof (name) === 'object'){\n for(var prop in name){\n this.prop(prop, name[prop]);\n }\n }else if(typeof (name) === 'string'){\n if(this.properties[name] === undefined){\n return undefined;\n }else{\n return this.properties[name];\n }\n }\n }\n }\n return this;\n },\n removeProp : function(propNames){\n var _this = this;\n if(typeof (propNames) === 'string'){\n propNames = [propNames];\n }\n _.each(propNames, function(propName){\n delete _this.attributes[propName];\n });\n return this;\n },\n getProperties : function(){\n return _.clone(this.properties);\n },\n getMarkupNamespace : function(){\n\n if(this.markupNs && this.markupNs.name && this.markupNs.uri){\n return _.clone(this.markupNs);\n }else{\n var relatedItem = this.getRelatedItem();\n if(relatedItem){\n //set the default one:\n relatedItem.namespaces[this.defaultMarkupNsName] = this.defaultMarkupNsUri;\n return {\n name : this.defaultMarkupNsName,\n uri : this.defaultMarkupNsUri\n };\n }\n }\n\n return {};\n },\n setMarkupNamespace : function(name, uri){\n this.markupNs = {\n name : name,\n uri : uri\n };\n }\n };\n\n return {\n augment : function(targetClass){\n Mixin.augment(targetClass, methods);\n },\n methods : methods\n };\n});\n\n","define('taoQtiItem/qtiItem/core/PortableInfoControl',[\n 'lodash',\n 'taoQtiItem/qtiItem/core/Element',\n 'taoQtiItem/qtiItem/mixin/CustomElement',\n 'taoQtiItem/qtiItem/mixin/NamespacedElement',\n 'taoQtiItem/qtiItem/helper/rendererConfig'\n], function(_, Element, CustomElement, NamespacedElement, rendererConfig){\n 'use strict';\n\n var PortableInfoControl = Element.extend({\n qtiClass : 'infoControl',\n defaultNsName : 'pic',\n defaultNsUri : 'http://www.imsglobal.org/xsd/portableInfoControl',\n nsUriFragment : 'portableInfoControl',\n defaultMarkupNsName : 'html5',\n defaultMarkupNsUri : 'html5',\n\n init : function(serial, attributes){\n\n this._super(serial, attributes);\n\n this.typeIdentifier = '';\n this.markup = '';\n this.properties = {};\n this.libraries = [];\n this.entryPoint = '';\n\n //note : if the uri is defined, it will be set the uri in the xml on xml serialization,\n //which may trigger xsd validation, which is troublesome for html5 (use xhtml5 maybe ?)\n this.markupNs = {};\n\n //stack of callback waiting to be ready\n this.readyStack = [];\n },\n\n is : function(qtiClass){\n return (qtiClass === 'infoControl') || this._super(qtiClass);\n },\n\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {\n typeIdentifier : this.typeIdentifier,\n markup : this.markup,\n properties : this.properties,\n libraries : this.libraries,\n entryPoint : this.entryPoint,\n ns : {\n pic : this.getNamespace().name + ':'\n }\n };\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n },\n\n /**\n * Retrieve the state of the infoControl\n * The call will be delegated to the infoControl's renderer.\n *\n * @returns {Object} the state\n */\n getState : function getState(){\n var ret = null;\n var renderer = this.getRenderer();\n if(renderer && _.isFunction(renderer.getState)){\n ret = renderer.getState(this);\n }\n return ret;\n },\n\n /**\n * Set the state of the infoControl\n * The state will be set to the infoControl's renderer.\n *\n * @param {Object} state - the infoControl's state\n */\n setState : function setState(state){\n var renderer = this.getRenderer();\n if(renderer && _.isFunction(renderer.getState)){\n renderer.setState(this, state);\n }\n },\n\n toArray : function(){\n var arr = this._super();\n arr.markup = this.markup;\n arr.properties = this.properties;\n return arr;\n },\n\n\n /**\n * Execute a callback when the PIC is ready (ie. registered, loaded and rendererd)\n * @param {Function} cb - the function to execute once ready\n */\n onReady : function onReady(cb){\n\n this.readyStack.push(cb);\n\n //if we are ready this will pop the stack\n if(this.data('_ready') && this.data('pic')){\n this.triggerReady();\n }\n },\n\n /**\n * Define the PIC as ready and consume the waiting functions in the stack.\n */\n triggerReady : function triggerReady(){\n var self = this;\n _.forEach(this.readyStack, function(cb){\n cb.call(self, self.data('pic'));\n });\n\n //empty the stack\n this.readyStack = [];\n\n //mark the infoControl as ready\n this.data('_ready', true);\n }\n });\n\n //add portable element standard functions\n CustomElement.augment(PortableInfoControl);\n NamespacedElement.augment(PortableInfoControl);\n\n return PortableInfoControl;\n});\n\n","define('taoQtiItem/qtiItem/core/ResponseProcessing',['taoQtiItem/qtiItem/core/Element', 'lodash'], function(Element, _){\n \n var ResponseProcessing = Element.extend({\n qtiClass : 'responseProcessing',\n processingType : '',\n xml : '',\n toArray : function(){\n var arr = this._super();\n arr.processingType = this.processingType;\n arr.xml = this.xml;\n return arr;\n }\n });\n \n return ResponseProcessing;\n});\n","define('taoQtiItem/qtiItem/core/RubricBlock',['taoQtiItem/qtiItem/core/Element', 'taoQtiItem/qtiItem/mixin/Container'], function(Element, Container){\n\n var RubricBlock = Element.extend({\n qtiClass : 'rubricBlock'\n });\n \n Container.augment(RubricBlock);\n \n return RubricBlock;\n});\n","define('taoQtiItem/qtiItem/core/Stylesheet',['taoQtiItem/qtiItem/core/Element', 'lodash', 'taoQtiItem/qtiItem/helper/rendererConfig'], function(Element, _, rendererConfig){\n\n var Stylesheet = Element.extend({\n qtiClass : 'stylesheet',\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {};\n\n defaultData.attributes = {href : renderer.resolveUrl(this.attr('href'))};\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n }\n });\n\n return Stylesheet;\n});\n\n","define('taoQtiItem/qtiItem/core/choices/Choice',['taoQtiItem/qtiItem/core/IdentifiedElement'], function(IdentifiedElement){\n\n var Choice = IdentifiedElement.extend({\n init : function(serial, attributes){\n this._super(serial, attributes);\n },\n is : function(qtiClass){\n return (qtiClass === 'choice') || this._super(qtiClass);\n },\n getInteraction : function(){\n var found, ret = null, item = this.getRelatedItem();\n if(item){\n found = item.find(this.serial);\n if(found){\n ret = found.parent;\n }\n }\n return ret;\n }\n });\n\n return Choice;\n});\n","define('taoQtiItem/qtiItem/core/choices/Hotspot',['taoQtiItem/qtiItem/core/choices/Choice'], function(QtiChoice){\n var QtiHotspot = QtiChoice.extend({});\n return QtiHotspot;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/AssociableHotspot',['taoQtiItem/qtiItem/core/choices/Hotspot'], function(QtiHotspot){\n var QtiAssociableHotspot = QtiHotspot.extend({\n qtiClass : 'associableHotspot'\n });\n return QtiAssociableHotspot;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/ContainerChoice',['taoQtiItem/qtiItem/core/choices/Choice', 'taoQtiItem/qtiItem/mixin/Container'], function(Choice, Container){\n\n var ContainerChoice = Choice.extend({\n init : function(serial, attributes){\n this._super(serial, attributes);\n },\n is : function(qtiClass){\n return (qtiClass === 'containerChoice') || this._super(qtiClass);\n }\n });\n \n Container.augment(ContainerChoice);\n \n return ContainerChoice;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/Gap',['taoQtiItem/qtiItem/core/choices/Choice'], function(QtiChoice){\n var QtiGap = QtiChoice.extend({\n qtiClass : 'gap'\n });\n return QtiGap;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/GapImg',['taoQtiItem/qtiItem/core/choices/Choice', 'taoQtiItem/qtiItem/core/Object'], function(QtiChoice, QtiObject){\n var QtiGapImg = QtiChoice.extend({\n qtiClass : 'gapImg',\n //common methods to object containers (start)\n initObject : function(object){\n this.object = object || new QtiObject();\n },\n getObject : function(){\n return this.object;\n }\n //common methods to object containers (end)\n });\n return QtiGapImg;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/TextVariableChoice',[\n 'jquery',\n 'lodash',\n 'taoQtiItem/qtiItem/core/choices/Choice',\n 'taoQtiItem/qtiItem/helper/rendererConfig'\n], function($, _, QtiChoice, rendererConfig){\n\n var QtiTextVariableChoice = QtiChoice.extend({\n init : function(serial, attributes, text){\n this._super(serial, attributes);\n this.val(text || '');\n },\n is : function(qtiClass){\n return (qtiClass === 'textVariableChoice') || this._super(qtiClass);\n },\n val : function(text){\n if(typeof text === 'undefined'){\n return this.text;\n }else{\n if(typeof text === 'string'){\n this.text = text;\n $(document).trigger('choiceTextChange', {\n choice: this,\n text: text\n });\n }else{\n throw 'text must be a string';\n }\n }\n return this;\n },\n render : function(){\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer||this.getRenderer(),\n defaultData = {\n body : this.text\n };\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n }\n });\n\n return QtiTextVariableChoice;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/GapText',['taoQtiItem/qtiItem/core/choices/TextVariableChoice'], function(QtiTextVariableChoice){\n var QtiGapText = QtiTextVariableChoice.extend({\n qtiClass : 'gapText'\n });\n return QtiGapText;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/HotspotChoice',['taoQtiItem/qtiItem/core/choices/Hotspot'], function(QtiHotspot){\n var QtiHotspotChoice = QtiHotspot.extend({\n qtiClass : 'hotspotChoice'\n });\n return QtiHotspotChoice;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/Hottext',['taoQtiItem/qtiItem/core/choices/Choice', 'taoQtiItem/qtiItem/mixin/ContainerInline'], function(Choice, Container){\n \n var Hottext = Choice.extend({\n qtiClass : 'hottext'\n });\n \n Container.augment(Hottext);\n \n return Hottext;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/InlineChoice',['taoQtiItem/qtiItem/core/choices/TextVariableChoice'], function(QtiTextVariableChoice){\n var QtiInlineChoice = QtiTextVariableChoice.extend({\n qtiClass : 'inlineChoice'\n });\n return QtiInlineChoice;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/SimpleAssociableChoice',['taoQtiItem/qtiItem/core/choices/ContainerChoice'], function(QtiContainerChoice){\n\n var QtiSimpleAssociableChoice = QtiContainerChoice.extend({\n qtiClass : 'simpleAssociableChoice'\n });\n \n return QtiSimpleAssociableChoice;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/SimpleChoice',['taoQtiItem/qtiItem/core/choices/ContainerChoice'], function(QtiContainerChoice){\n\n var QtiSimpleChoice = QtiContainerChoice.extend({\n qtiClass : 'simpleChoice'\n });\n\n return QtiSimpleChoice;\n\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/choices/TextEntry',['taoQtiItem/qtiItem/core/choices/TextVariableChoice'], function(QtiTextVariableChoice){\r\n var QtiTextEntry = QtiTextVariableChoice.extend({\r\n qtiClass : 'textEntry'\r\n });\r\n return QtiTextEntry;\r\n});\r\n\r\n\r\n\n","define('taoQtiItem/qtiItem/core/feedbacks/Feedback',['taoQtiItem/qtiItem/core/IdentifiedElement'], function(IdentifiedElement){\n var Feedback = IdentifiedElement.extend({\n is : function(qtiClass){\n return (qtiClass === 'feedback') || this._super(qtiClass);\n }\n });\n return Feedback;\n});\n","define('taoQtiItem/qtiItem/core/feedbacks/FeedbackBlock',['taoQtiItem/qtiItem/core/feedbacks/Feedback'], function(Feedback){\n var FeedbackBlock = Feedback.extend({});\n return FeedbackBlock;\n});\n","define('taoQtiItem/qtiItem/core/feedbacks/FeedbackInline',['taoQtiItem/qtiItem/core/feedbacks/Feedback'], function(Feedback){\n var FeedbackInline = Feedback.extend({});\n return FeedbackInline;\n});\n","define('taoQtiItem/qtiItem/core/feedbacks/ModalFeedback',['taoQtiItem/qtiItem/core/IdentifiedElement', 'taoQtiItem/qtiItem/mixin/Container'], function(IdentifiedElement, Container){\n \n var ModalFeedback = IdentifiedElement.extend({\n 'qtiClass' : 'modalFeedback',\n is : function(qtiClass){\n return (qtiClass === 'feedback') || this._super(qtiClass);\n }\n });\n \n Container.augment(ModalFeedback);\n \n return ModalFeedback;\n});\n","define('taoQtiItem/qtiItem/core/interactions/Interaction',[\n 'taoQtiItem/qtiItem/core/Element', \n 'lodash', \n 'taoQtiItem/qtiItem/helper/rendererConfig',\n 'taoQtiItem/qtiItem/helper/util'\n], function(Element, _, rendererConfig, util){\n 'use strict';\n\n var QtiInteraction = Element.extend({\n init : function(serial, attributes){\n this._super(serial, attributes);\n this.choices = {};\n },\n is : function(qtiClass){\n return (qtiClass === 'interaction') || this._super(qtiClass);\n },\n addChoice : function(choice){\n choice.setRelatedItem(this.getRelatedItem() || null);\n this.choices[choice.getSerial()] = choice;\n return this;\n },\n getChoices : function(){\n var choices = {};\n for(var i in this.choices){//prevent passing the whole array by ref\n choices[i] = this.choices[i];\n }\n return choices;\n },\n getChoice : function(serial){\n var ret = null;\n if(this.choices[serial]){\n ret = this.choices[serial];\n }\n return ret;\n },\n getChoiceByIdentifier : function(identifier){\n for(var i in this.choices){\n if(this.choices[i].id() === identifier){\n return this.choices[i];\n }\n }\n return null;\n },\n getComposingElements : function(){\n var elts = this._super();\n //recursive to choices:\n for(var serial in this.choices){\n if(Element.isA(this.choices[serial], 'choice')){\n elts[serial] = this.choices[serial];\n elts = _.extend(elts, this.choices[serial].getComposingElements());\n }\n }\n return elts;\n },\n find : function(serial){\n var found = this._super(serial);\n if(!found){\n found = util.findInCollection(this, 'choices', serial);\n }\n return found;\n },\n getResponseDeclaration : function(){\n var response = null;\n var responseId = this.attr('responseIdentifier');\n if(responseId){\n var item = this.getRelatedItem();\n if(item){\n response = item.getResponseDeclaration(responseId);\n }else{\n throw 'cannot get response of an interaction out of its item context';\n }\n }\n return response;\n },\n /**\n * Render the interaction to the view.\n * The optional argument \"subClass\" allows distinguishing customInteraction: e.g. customInteraction.matrix, customInteraction.likertScale ...\n */\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {\n '_type' : this.qtiClass.replace(/([A-Z])/g, function($1){\n return \"_\" + $1.toLowerCase();\n }),\n 'choices' : [],\n 'choiceShuffle' : true\n };\n\n if(!renderer){\n throw 'no renderer found for the interaction ' + this.qtiClass;\n }\n \n var choices = (this.attr('shuffle') && renderer.getOption('shuffleChoices')) ? renderer.getShuffledChoices(this) : this.getChoices();\n var interactionData = {'interaction' : {'serial' : this.serial, 'attributes' : this.attributes}};\n var _this = this;\n _.each(choices, function(choice){\n if(Element.isA(choice, 'choice')){\n try{\n var renderedChoice = choice.render(_.clone(interactionData, true), null, choice.qtiClass + '.' + _this.qtiClass, renderer); //use interaction type as choice subclass\n defaultData.choices.push(renderedChoice);\n }catch(e){\n //leave choices empty in case of error\n }\n }\n });\n \n var tplName = args.subclass ? this.qtiClass + '.' + args.subclass : this.qtiClass;\n \n return this._super(_.merge(defaultData, args.data), args.placeholder, tplName, renderer);\n },\n postRender : function(data, altClassName, renderer){\n var self = this;\n renderer = renderer || this.getRenderer();\n\n return _(this.getChoices())\n .filter(function(elt){\n return Element.isA(elt, 'choice');\n })\n .map(function(choice){\n return choice.postRender({}, choice.qtiClass + '.' + self.qtiClass, renderer);\n })\n .value()\n .concat(this._super(data, altClassName, renderer));\n },\n setResponse : function(values){\n var ret = null;\n var renderer = this.getRenderer();\n if(renderer){\n ret = renderer.setResponse(this, values);\n }else{\n throw 'no renderer found for the interaction ' + this.qtiClass;\n }\n return ret;\n },\n getResponse : function(){\n var ret = null;\n var renderer = this.getRenderer();\n if(renderer){\n ret = renderer.getResponse(this);\n }else{\n throw 'no renderer found for the interaction ' + this.qtiClass;\n }\n return ret;\n },\n resetResponse : function(){\n var ret = null;\n var renderer = this.getRenderer();\n if(renderer){\n ret = renderer.resetResponse(this);\n }else{\n throw 'no renderer found for the interaction ' + this.qtiClass;\n }\n return ret;\n },\n\n /**\n * Retrieve the state of the interaction. \n * The state is provided by the interaction's renderer.\n * \n * @returns {Object} the interaction's state\n * @throws {Error} if no renderer is found \n */\n getState : function(){\n var ret = null;\n var renderer = this.getRenderer();\n if(renderer){\n if(_.isFunction(renderer.getState)){\n ret = renderer.getState(this);\n }\n }else{\n throw 'no renderer found for the interaction ' + this.qtiClass;\n }\n return ret;\n },\n\n /**\n * Retrieve the state of the interaction. \n * The state will be given to the interaction's renderer.\n * \n * @param {Object} state - the interaction's state\n * @throws {Error} if no renderer is found \n */\n setState : function(state){\n var renderer = this.getRenderer();\n if(renderer){\n if(_.isFunction(renderer.setState)){\n renderer.setState(this, state);\n }\n }else{\n throw 'no renderer found for the interaction ' + this.qtiClass;\n }\n },\n\n /**\n * Clean up an interaction rendering.\n * Ask the renderer to run destroy if exists.\n * \n * @throws {Error} if no renderer is found \n */\n clear : function(){\n var renderer = this.getRenderer();\n if(renderer){\n if(_.isFunction(renderer.destroy)){\n renderer.destroy(this);\n }\n }else{\n throw 'no renderer found for the interaction ' + this.qtiClass;\n }\n },\n\n toArray : function(){\n var arr = this._super();\n arr.choices = {};\n for(var serial in this.choices){\n if(Element.isA(this.choices[serial], 'choice')){\n arr.choices[serial] = this.choices[serial].toArray();\n }\n }\n return arr;\n }\n });\n return QtiInteraction;\n});\n\n","define('taoQtiItem/qtiItem/core/interactions/Prompt',['taoQtiItem/qtiItem/core/Element', 'taoQtiItem/qtiItem/mixin/ContainerInline'], function(Element, Container){\n var Prompt = Element.extend({qtiClass : 'prompt'});\n Container.augment(Prompt);\n return Prompt;\n});\n","define('taoQtiItem/qtiItem/core/interactions/BlockInteraction',[\n 'taoQtiItem/qtiItem/core/interactions/Interaction',\n 'taoQtiItem/qtiItem/core/interactions/Prompt',\n 'lodash',\n 'taoQtiItem/qtiItem/helper/rendererConfig'\n], function(Interaction, Prompt, _, rendererConfig){\n 'use strict';\n\n var BlockInteraction = Interaction.extend({\n init : function(serial, attributes){\n this._super(serial, attributes);\n this.prompt = new Prompt('');\n },\n is : function(qtiClass){\n return (qtiClass === 'blockInteraction') || this._super(qtiClass);\n },\n getComposingElements : function(){\n var elts = this._super();\n elts = _.extend(elts, this.prompt.getComposingElements());\n elts[this.prompt.getSerial()] = this.prompt;\n return elts;\n },\n find : function(serial){\n return this._super(serial) || this.prompt.find(serial);\n },\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {\n 'prompt' : this.prompt.render(renderer)\n };\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n },\n postRender : function(data, altClassName, renderer){\n renderer = renderer || this.getRenderer();\n return []\n .concat(this.prompt.postRender({}, '', renderer))\n .concat(this._super(data, altClassName, renderer));\n },\n toArray : function(){\n var arr = this._super();\n arr.prompt = this.prompt.toArray();\n return arr;\n }\n });\n return BlockInteraction;\n});\n\n\n","define('taoQtiItem/qtiItem/core/interactions/AssociateInteraction',['taoQtiItem/qtiItem/core/interactions/BlockInteraction'], function(BlockInteraction){\n var AssociateInteraction = BlockInteraction.extend({\n qtiClass : 'associateInteraction'\n });\n return AssociateInteraction;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/interactions/ChoiceInteraction',['taoQtiItem/qtiItem/core/interactions/BlockInteraction'], function(BlockInteraction){\n var ChoiceInteraction = BlockInteraction.extend({\n qtiClass : 'choiceInteraction'\n });\n return ChoiceInteraction;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/interactions/ContainerInteraction',['taoQtiItem/qtiItem/core/interactions/BlockInteraction', 'taoQtiItem/qtiItem/mixin/Container'], function(BlockInteraction, Container){\n var ContainerInteraction = BlockInteraction.extend({});\n Container.augment(ContainerInteraction);\n return ContainerInteraction;\n});\n","define('taoQtiItem/qtiItem/core/interactions/CustomInteraction',[\n 'lodash',\n 'taoQtiItem/qtiItem/core/interactions/Interaction',\n 'taoQtiItem/qtiItem/mixin/CustomElement',\n 'taoQtiItem/qtiItem/mixin/NamespacedElement',\n 'taoQtiItem/qtiItem/helper/rendererConfig'\n], function(_, Interaction, CustomElement, NamespacedElement, rendererConfig){\n\n var CustomInteraction = Interaction.extend({\n qtiClass : 'customInteraction',\n defaultNsName : 'pci',\n defaultNsUri : 'http://www.imsglobal.org/xsd/portableCustomInteraction',\n nsUriFragment : 'portableCustomInteraction',\n defaultMarkupNsName : 'html5',\n defaultMarkupNsUri : 'html5',\n init : function(serial, attributes){\n\n this._super(serial, attributes);\n\n this.typeIdentifier = '';\n this.markup = '';\n this.properties = {};\n this.libraries = [];\n this.entryPoint = '';\n\n //note : if the uri is defined, it will be set the uri in the xml on xml serialization,\n //which may trigger xsd validation, which is troublesome for html5 (use xhtml5 maybe ?)\n this.markupNs = {};\n\n this.pciReadyCallbacks = [];\n },\n is : function(qtiClass){\n return (qtiClass === 'customInteraction') || this._super(qtiClass);\n },\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {\n typeIdentifier : this.typeIdentifier,\n markup : this.markup,\n properties : this.properties,\n libraries : this.libraries,\n entryPoint : this.entryPoint,\n ns : {\n pci : this.getNamespace().name + ':'\n }\n };\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n },\n toArray : function(){\n var arr = this._super();\n arr.markup = this.markup;\n arr.properties = this.properties;\n return arr;\n },\n getMarkupNamespace : function(){\n\n if(this.markupNs && this.markupNs.name && this.markupNs.uri){\n return _.clone(this.markupNs);\n }else{\n var relatedItem = this.getRelatedItem();\n if(relatedItem){\n //set the default one:\n relatedItem.namespaces[this.defaultMarkupNsName] = this.defaultMarkupNsUri;\n return {\n name : this.defaultMarkupNsName,\n uri : this.defaultMarkupNsUri\n };\n }\n }\n\n return {};\n },\n setMarkupNamespace : function(name, uri){\n this.markupNs = {\n name : name,\n uri : uri\n };\n },\n onPciReady : function(callback){\n\n this.pciReadyCallbacks.push(callback);\n\n if(this.data('pci')){\n //if pci is already ready, call it immediately\n this.triggerPciReady();\n }\n },\n triggerPciReady : function(){\n\n var _this = this,\n pci = this.data('pci');\n\n if(pci){\n _.each(this.pciReadyCallbacks, function(fn){\n fn.call(_this, pci);\n });\n \n //empty the stack of ready callbacks\n this.pciReadyCallbacks = [];\n \n //mark the interaction as ready\n this.data('pciReady', true);\n \n }else{\n throw 'cannot trigger pci ready when no pci is actually attached to the interaction';\n }\n\n },\n onPci : function(event, callback){\n this.onPciReady(function(pci){\n if(_.isFunction(pci.on)){\n pci.on(event, callback);\n }else{\n throw 'the pci does not implement on() function';\n }\n });\n return this;\n },\n offPci : function(event){\n this.onPciReady(function(pci){\n if(_.isFunction(pci.off)){\n pci.off(event);\n }else{\n throw 'the pci does not implement off() function';\n }\n });\n return this;\n },\n triggerPci : function(event, args){\n this.onPciReady(function(pci){\n if(_.isFunction(pci.off)){\n pci.trigger(event, args);\n }else{\n throw 'the pci does not implement off() function';\n }\n });\n return this;\n }\n });\n \n //add portable element standard functions\n CustomElement.augment(CustomInteraction);\n NamespacedElement.augment(CustomInteraction);\n \n return CustomInteraction;\n});\n\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\ndefine('taoQtiItem/qtiItem/core/interactions/InlineInteraction',['taoQtiItem/qtiItem/core/interactions/Interaction'], function(Interaction){\n 'use strict';\n return Interaction.extend({\n is : function(qtiClass){\n return (qtiClass === 'inlineInteraction') || this._super(qtiClass);\n }\n });\n});\n","define('taoQtiItem/qtiItem/core/interactions/EndAttemptInteraction',['taoQtiItem/qtiItem/core/interactions/InlineInteraction'], function(InlineInteraction){\n return InlineInteraction.extend({\n 'qtiClass' : 'endAttemptInteraction'\n });\n});\n\n\n","define('taoQtiItem/qtiItem/core/interactions/ExtendedTextInteraction',['taoQtiItem/qtiItem/core/interactions/BlockInteraction', 'lodash', 'taoQtiItem/qtiItem/helper/rendererConfig'], function(BlockInteraction, _, rendererConfig){\n \n var ExtendedTextInteraction = BlockInteraction.extend({\n qtiClass : 'extendedTextInteraction',\n render : function(){\n \n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {\n 'multiple' : false,\n 'maxStringLoop' : []\n },\n response = this.getResponseDeclaration();\n \n if(this.attr('maxStrings') && (response.attr('cardinality') === 'multiple' || response.attr('cardinality') === 'ordered')){\n defaultData.multiple = true;\n for(var i = 0; i < this.attr('maxStrings'); i++){\n defaultData.maxStringLoop.push(i + '');//need to convert to string. The tpl engine fails otherwise\n }\n }\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n }\n });\n \n return ExtendedTextInteraction;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/interactions/GapMatchInteraction',['taoQtiItem/qtiItem/core/interactions/ContainerInteraction'], function(ContainerInteraction){\n var GapMatchInteraction = ContainerInteraction.extend({\n qtiClass : 'gapMatchInteraction',\n getGaps : function(){\n return this.getBody().getElements('gap');\n }\n });\n return GapMatchInteraction;\n});\n\n","define('taoQtiItem/qtiItem/core/interactions/ObjectInteraction',['taoQtiItem/qtiItem/core/interactions/BlockInteraction', 'taoQtiItem/qtiItem/core/Object'], function(QtiBlockInteraction, QtiObject){\n var QtiObjectInteraction = QtiBlockInteraction.extend({\n //common methods to object containers (start)\n initObject : function(object){\n this.object = object || new QtiObject();\n },\n getObject : function(){\n return this.object;\n }\n //common methods to object containers (end)\n });\n \n return QtiObjectInteraction;\n});\n\n\n","define('taoQtiItem/qtiItem/core/interactions/GraphicInteraction',['taoQtiItem/qtiItem/core/interactions/ObjectInteraction', 'lodash', 'taoQtiItem/qtiItem/helper/rendererConfig'], function(QtiObjectInteraction, _, rendererConfig){\n var QtiGraphicInteraction = QtiObjectInteraction.extend({\n render : function(){\n \n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {\n 'backgroundImage' : this.object.getAttributes(),\n 'object' : this.object.render(renderer)\n };\n \n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n }\n });\n\n return QtiGraphicInteraction;\n});\n\n\n","define('taoQtiItem/qtiItem/core/interactions/GraphicAssociateInteraction',['taoQtiItem/qtiItem/core/interactions/GraphicInteraction'], function(GraphicInteraction){\n var GraphicAssociateInteraction = GraphicInteraction.extend({\n qtiClass : 'graphicAssociateInteraction'\n });\n return GraphicAssociateInteraction;\n});\n\n\n","define('taoQtiItem/qtiItem/core/interactions/GraphicGapMatchInteraction',['taoQtiItem/qtiItem/core/interactions/GraphicInteraction', 'taoQtiItem/qtiItem/core/Element', 'lodash', 'taoQtiItem/qtiItem/helper/rendererConfig'], function(GraphicInteraction, Element, _, rendererConfig){\n\n var GraphicGapMatchInteraction = GraphicInteraction.extend({\n qtiClass : 'graphicGapMatchInteraction',\n init : function(serial, attributes){\n this._super(serial, attributes);\n this.gapImgs = {};\n },\n addGapImg : function(gapImg){\n if(Element.isA(gapImg, 'gapImg')){\n gapImg.setRelatedItem(this.getRelatedItem() || null);\n this.gapImgs[gapImg.getSerial()] = gapImg;\n }\n },\n removeGapImg : function(gapImg){\n var serial = '';\n if(typeof(gapImg) === 'string'){\n serial = gapImg;\n }else if(Element.isA(gapImg, 'gapImg')){\n serial = gapImg.getSerial();\n }\n delete this.gapImgs[serial];\n return this;\n },\n getGapImgs : function(){\n return _.clone(this.gapImgs);\n },\n getGapImg : function(serial){\n return this.gapImgs[serial];\n },\n getComposingElements : function(){\n var elts = this._super();\n //recursive to choices:\n for(var serial in this.gapImgs){\n elts[serial] = this.gapImgs[serial];\n elts = _.extend(elts, this.gapImgs[serial].getComposingElements());\n }\n return elts;\n },\n find : function(serial){\n var found = this._super(serial);\n if(!found){\n if(this.gapImgs[serial]){\n found = {'parent' : this, 'element' : this.gapImgs[serial]};\n }\n }\n return found;\n },\n render : function(){\n \n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {\n 'gapImgs' : []\n };\n\n //note: no choice shuffling option available for graphic gap match\n var gapImgs = this.getGapImgs();\n for(var serial in gapImgs){\n if(Element.isA(gapImgs[serial], 'choice')){\n defaultData.gapImgs.push(gapImgs[serial].render({}, null, '', renderer));\n }\n }\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n },\n toArray : function(){\n var arr = this._super();\n arr.gapImgs = {};\n var gapImgs = this.getGapImgs();\n for(var serial in gapImgs){\n arr.gapImgs[serial] = gapImgs[serial].toArray();\n }\n return arr;\n }\n });\n\n return GraphicGapMatchInteraction;\n});\n\n","define('taoQtiItem/qtiItem/core/interactions/GraphicOrderInteraction',['taoQtiItem/qtiItem/core/interactions/GraphicInteraction'], function(GraphicInteraction){\n var GraphicOrderInteraction = GraphicInteraction.extend({\n qtiClass : 'graphicOrderInteraction'\n });\n return GraphicOrderInteraction;\n});\n\n\n","define('taoQtiItem/qtiItem/core/interactions/HotspotInteraction',['taoQtiItem/qtiItem/core/interactions/GraphicInteraction'], function(GraphicInteraction){\n var HotspotInteraction = GraphicInteraction.extend({\n qtiClass : 'hotspotInteraction'\n });\n return HotspotInteraction;\n});\n\n\n","define('taoQtiItem/qtiItem/core/interactions/HottextInteraction',['taoQtiItem/qtiItem/core/interactions/ContainerInteraction', 'taoQtiItem/qtiItem/core/Element'], function(ContainerInteraction, Element){\n var HottextInteraction = ContainerInteraction.extend({\n qtiClass : 'hottextInteraction',\n getChoices : function(){\n return this.getBody().getElements('hottext');\n },\n getChoice : function(serial){\n var element = this.getBody().getElement(serial);\n return Element.isA(element, 'choice') ? element : null;\n }\n });\n return HottextInteraction;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/interactions/InlineChoiceInteraction',['taoQtiItem/qtiItem/core/interactions/InlineInteraction'], function(InlineInteraction){\n var InlineChoiceInteraction = InlineInteraction.extend({\n 'qtiClass' : 'inlineChoiceInteraction'\n });\n return InlineChoiceInteraction;\n});\n\n\n","define('taoQtiItem/qtiItem/core/interactions/MatchInteraction',[\n 'taoQtiItem/qtiItem/core/interactions/BlockInteraction',\n 'taoQtiItem/qtiItem/core/choices/SimpleAssociableChoice',\n 'lodash',\n 'taoQtiItem/qtiItem/helper/rendererConfig',\n 'taoQtiItem/qtiItem/helper/util'\n], function(BlockInteraction, SimpleAssociableChoice, _, rendererConfig, util){\n 'use strict';\n\n var MatchInteraction = BlockInteraction.extend({\n qtiClass : 'matchInteraction',\n init : function(serial, attributes){\n this._super(serial, attributes);\n this.choices = [{}, {}];\n },\n addChoice : function(choice, matchSet){\n matchSet = parseInt(matchSet);\n if(this.choices[matchSet]){\n choice.setRelatedItem(this.getRelatedItem() || null);\n this.choices[matchSet][choice.getSerial()] = choice;\n }\n },\n getChoices : function(matchSet){\n matchSet = parseInt(matchSet);\n if(this.choices[matchSet]){\n return _.clone(this.choices[matchSet]);\n }else{\n return _.clone(this.choices);\n }\n },\n getChoice : function(serial){\n return this.choices[0][serial] || this.choices[1][serial] || null;\n },\n getComposingElements : function(){\n\n var elts = this._super();\n //recursive to both match sets:\n for(var i = 0; i < 2; i++){\n var matchSet = this.getChoices(i);\n for(var serial in matchSet){\n if(matchSet[serial] instanceof SimpleAssociableChoice){\n elts[serial] = matchSet[serial];\n elts = _.extend(elts, matchSet[serial].getComposingElements());\n }\n }\n }\n\n return elts;\n },\n find : function(serial){\n var found = this._super(serial);\n if(!found){\n found = util.findInCollection(this, ['choices.0', 'choices.1'], serial);\n }\n return found;\n },\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n choices,\n defaultData = {\n 'matchSet1' : [],\n 'matchSet2' : []\n };\n\n var interactionData = {'interaction' : {'serial' : this.serial, 'attributes' : this.attributes}};\n\n if(!renderer){\n throw 'no renderer found for the interaction ' + this.qtiClass;\n }\n\n if(this.attr('shuffle') && renderer.getOption('shuffleChoices')){\n choices = renderer.getShuffledChoices(this);\n }else{\n choices = this.getChoices();\n }\n\n for(var i = 0; i < 2; i++){\n var matchSet = choices[i];\n for(var serial in matchSet){\n if(matchSet[serial] instanceof SimpleAssociableChoice){\n defaultData['matchSet' + (i + 1)].push(matchSet[serial].render(_.clone(interactionData, true), null, 'simpleAssociableChoice.matchInteraction', renderer));\n }\n }\n }\n \n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n },\n postRender : function(data, altClassName, renderer){\n renderer = renderer || this.getRenderer();\n return _(this.getChoices())\n .map(function(choices){\n return _(choices)\n .filter(function(choice){\n return choice instanceof SimpleAssociableChoice;\n })\n .map(function(choice){\n return choice.postRender({}, 'simpleAssociableChoice.matchInteraction', renderer);\n })\n .value();\n })\n .flatten(true)\n .value()\n .concat(this._super(data, altClassName, renderer));\n },\n toArray : function(){\n var arr = this._super();\n arr.choices = {0 : {}, 1 : {}};\n for(var i = 0; i < 2; i++){\n var matchSet = this.getChoices(i);\n for(var serial in matchSet){\n if(matchSet[serial] instanceof SimpleAssociableChoice){\n arr.choices[i][serial] = matchSet[serial].toArray();\n }\n }\n }\n return arr;\n }\n });\n\n return MatchInteraction;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/interactions/MediaInteraction',[\n 'lodash',\n 'taoQtiItem/qtiItem/core/interactions/ObjectInteraction',\n 'taoQtiItem/qtiItem/helper/rendererConfig'\n], function(_, ObjectInteraction, rendererConfig){\n var MediaInteraction = ObjectInteraction.extend({\n qtiClass : 'mediaInteraction',\n render : function(){\n\n var args = rendererConfig.getOptionsFromArguments(arguments),\n renderer = args.renderer || this.getRenderer(),\n defaultData = {\n 'media' : this.object.render({}, null, '', renderer)\n };\n\n return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer);\n\n }\n });\n return MediaInteraction;\n});\n\n","define('taoQtiItem/qtiItem/core/interactions/OrderInteraction',['taoQtiItem/qtiItem/core/interactions/BlockInteraction'], function(BlockInteraction){\n var OrderInteraction = BlockInteraction.extend({\n qtiClass : 'orderInteraction'\n });\n return OrderInteraction;\n});\n","define('taoQtiItem/qtiItem/core/interactions/SelectPointInteraction',['taoQtiItem/qtiItem/core/interactions/GraphicInteraction'], function(GraphicInteraction){\n var SelectPointInteraction = GraphicInteraction.extend({\n qtiClass : 'selectPointInteraction'\n });\n return SelectPointInteraction;\n});\n\n\n","define('taoQtiItem/qtiItem/core/interactions/SliderInteraction',['taoQtiItem/qtiItem/core/interactions/BlockInteraction'], function(BlockInteraction){\n var SliderInteraction = BlockInteraction.extend({\n qtiClass : 'sliderInteraction'\n });\n return SliderInteraction;\n});\n\n\n\n","define('taoQtiItem/qtiItem/core/interactions/TextEntryInteraction',['taoQtiItem/qtiItem/core/interactions/InlineInteraction'], function(InlineInteraction){\n var TextEntryInteraction = InlineInteraction.extend({\n 'qtiClass' : 'textEntryInteraction'\n });\n return TextEntryInteraction;\n});\n","define('taoQtiItem/qtiItem/core/interactions/UploadInteraction',['taoQtiItem/qtiItem/core/interactions/BlockInteraction'], function(InlineInteraction){\n var UploadInteraction = InlineInteraction.extend({\n 'qtiClass' : 'uploadInteraction'\n });\n return UploadInteraction;\n});\n\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/qtiItem/core/response/SimpleFeedbackRule',['taoQtiItem/qtiItem/core/Element', 'lodash'], function(Element, _){\n 'use strict';\n \n var SimpleFeedbackRule = Element.extend({\n qtiClass : '_simpleFeedbackRule',\n serial : '',\n relatedItem : null,\n init : function(serial, feedbackOutcome, feedbackThen, feedbackElse){\n\n this._super(serial, {});\n\n this.condition = 'correct';\n this.comparedOutcome = null;\n this.comparedValue = 0.0;\n\n this.feedbackOutcome = feedbackOutcome;\n if(Element.isA(feedbackThen, 'feedback')){\n this.feedbackThen = feedbackThen;\n }else{\n this.feedbackThen = null;\n }\n if(Element.isA(feedbackElse, 'feedback')){\n this.feedbackElse = feedbackThen;\n }else{\n this.feedbackElse = null;\n }\n\n },\n setCondition : function(comparedOutcome, condition, comparedValue){\n var _comparedValues = [];\n if(Element.isA(comparedOutcome, 'variableDeclaration')){\n switch(condition){\n case 'correct':\n case 'incorrect':\n if(Element.isA(comparedOutcome, 'responseDeclaration')){\n this.comparedOutcome = comparedOutcome;\n this.condition = condition;\n }else{\n throw 'invalid outcome type: must be a responseDeclaration';\n }\n break;\n case 'lt':\n case 'lte':\n case 'equal':\n case 'gte':\n case 'gt':\n if(comparedValue !== null && comparedValue !== undefined){\n this.comparedOutcome = comparedOutcome;\n this.condition = condition;\n this.comparedValue = comparedValue;\n }else{\n throw 'compared value must not be null';\n }\n break;\n case 'choices':\n if(Element.isA(comparedOutcome, 'responseDeclaration') && comparedValue !== null && _.isArray(comparedValue)){\n var choices = _.values(comparedOutcome.getInteraction().getChoices());\n this.comparedOutcome = comparedOutcome;\n this.condition = condition;\n _.each(comparedValue, function(v){\n if(v instanceof Element){\n _comparedValues.push(v);\n }else if(_.isString(v)){\n _.each(choices, function(c){\n if(c.attr('identifier') === v){\n _comparedValues.push(c);\n return false;//break\n }\n });\n }\n });\n \n this.comparedValue = _comparedValues;\n }else{\n throw 'compared value must not be null';\n }\n break;\n default:\n throw 'unknown condition type : '.condition;\n }\n }else{\n throw 'invalid outcome type: must be a variableDeclaration';\n }\n\n return this;\n },\n setFeedbackElse : function(feedback){\n if(Element.isA(feedback, 'feedback')){\n this.feedbackElse = feedback;\n }\n },\n toArray : function(){\n var val = this.comparedValue;\n var _toString = function(v){\n if(val instanceof Element){\n return val.attr('identifier') ;\n }else{\n return val+'';\n }\n };\n if(_.isArray(val)){\n val = _.map(val, _toString);\n }else{\n val = _toString(val);\n }\n return {\n condition : this.condition,\n comparedOutcome : this.comparedOutcome.id(),\n comparedValue : val\n };\n }\n });\n\n return SimpleFeedbackRule;\n});\n","define('taoQtiItem/qtiItem/core/variables/VariableDeclaration',['taoQtiItem/qtiItem/core/IdentifiedElement'], function(IdentifiedElement){\n\n /**\n * It is the top abstract class for all variable classes\n * (so not renderable and qtiClass undefined)\n */\n var VariableDeclaration = IdentifiedElement.extend({\n init : function(serial, attributes){\n this._super(serial, attributes);\n this.defaultValue = null;\n },\n is : function(qtiClass){\n return (qtiClass === 'variableDeclaration') || this._super(qtiClass);\n },\n toArray : function(){\n var arr = this._super();\n arr.defaultValue = this.defaultValue;\n return arr;\n }\n });\n\n return VariableDeclaration;\n});\n","define('taoQtiItem/qtiItem/core/variables/OutcomeDeclaration',['taoQtiItem/qtiItem/core/variables/VariableDeclaration'], function(VariableDeclaration){\n return VariableDeclaration.extend({\n qtiClass : 'outcomeDeclaration'\n });\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/qtiItem/core/variables/ResponseDeclaration',['taoQtiItem/qtiItem/core/variables/VariableDeclaration', 'lodash'], function(VariableDeclaration, _){\n 'use strict';\n \n var ResponseDeclaration = VariableDeclaration.extend({\n qtiClass : 'responseDeclaration',\n init : function(serial, attributes){\n\n this._super(serial, attributes);\n\n //MATCH_CORRECT, MAP_RESPONSE, MAP_RESPONSE_POINT\n this.template = '';//previously called 'howMatch'\n\n //when template equals ont of the \"map\" one (MAP_RESPONSE, MAP_RESPONSE_POINT)\n this.mappingAttributes = {};\n this.mapEntries = {};\n\n //correct response [0..*]\n this.correctResponse = null;\n\n //tao internal usage:\n this.feedbackRules = {};\n },\n getFeedbackRules : function(){\n return _.values(this.feedbackRules);\n },\n getComposingElements : function(){\n var elts = this._super();\n elts = _.extend(elts, this.feedbackRules);\n return elts;\n },\n toArray : function(){\n var arr = this._super();\n arr.howMatch = this.template;\n arr.correctResponses = this.correctResponse;\n arr.mapping = this.mapEntries;\n arr.mappingAttributes = this.mappingAttributes;\n arr.feedbackRules = _.map(this.feedbackRules, function(rule){\n return rule.toArray();\n });\n return arr;\n },\n getInteraction : function(){\n var interaction = null;\n var responseId = this.id();\n var item = this.getRelatedItem();\n var interactions = item.getInteractions();\n _.each(interactions, function(i){\n if(i.attributes.responseIdentifier === responseId){\n interaction = i;\n return false;//break\n }\n });\n return interaction;\n },\n isCardinality : function(cardinalities){\n var comparison;\n if(_.isArray(cardinalities)){\n comparison = cardinalities;\n }else if(_.isString(cardinalities)){\n cardinalities = [cardinalities];\n }else{\n return false;\n }\n return (_.indexOf(comparison, this.attr('cardinality')) >= 0);\n }\n });\n\n return ResponseDeclaration;\n});\n\n\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/container', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var stack1, helper, options, functionType=\"function\", self=this, helperMissing=helpers.helperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"<div class=\\\"qti-block\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</div>\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n return buffer;\n }\n\n stack1 = (helper = helpers.equal || (depth0 && depth0.equal),options={hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data},helper ? helper.call(depth0, (depth0 && depth0.contentModel), \"blockStatic\", options) : helperMissing.call(depth0, \"equal\", (depth0 && depth0.contentModel), \"blockStatic\", options));\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\n\ndefine('taoQtiItem/qtiCommonRenderer/renderers/Container',['tpl!taoQtiItem/qtiCommonRenderer/tpl/container'], function(tpl){\n 'use strict';\n\n return {\n qtiClass : '_container',\n template : tpl\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technlogies SA ;\n * \n * @author Sam Sipasseuth <sam@taotesting.com>\n * @requires jquery\n */\ndefine('ui/waitForMedia',['jquery'], function($){\n\n var _ns = '.wait';\n\n /**\n * Register a plugin that enable waiting for all media being loaded\n * \n * @fires loaded.wait - fired when a media has been loaded\n * @fires all-loaded.wait - fired when all media has been loaded\n * @param {Function} [allLoadedCallback] - callback to be executed when all media has been loaded\n * @returns {jQueryElement} for chaingin\n */\n $.fn.waitForMedia = function(allLoadedCallback){\n \n /**\n * The callback function that is called after loading all the documents.\n * \n * @param {jQueryElement} $container The container element on which will be triggered an event.\n * @returns {undefined}\n */\n function allLoaded($container) {\n $container.trigger('all-loaded' + _ns);\n if(typeof allLoadedCallback === 'function'){\n allLoadedCallback.call($container[0]);\n }\n } \n \n return this.each(function(){\n\n var $container = $(this),\n $img = $container.find('img'),\n count = $img.length,\n loaded = 0,\n /**\n * The function to be executed whenever an image is considered loaded\n */\n imageLoaded = function () {\n $(this)\n .trigger('loaded' + _ns)\n .off('load' + _ns)\n .off('error' + _ns);\n\n loaded++;\n if(loaded === count){\n allLoaded($container);\n }\n };\n \n if (count === 0) {\n allLoaded($container);\n return;\n }\n \n $img.each(function(){\n if(this.complete){\n //the image is already loaded by the browser\n imageLoaded.call(this);\n }else{\n //the image is not yet loaded : add \"load\" listener\n $(this).on('load' + _ns + ' error' + _ns, imageLoaded);\n }\n });\n\n });\n\n };\n\n});\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/img', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"class=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"height=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.height)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" \";\n return buffer;\n }\n\nfunction program7(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"width=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.width)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" \";\n return buffer;\n }\n\n buffer += \"<img \\n data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" \\n data-qti-class=\\\"img\\\" \\n src=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.src)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" \\n alt=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.alt)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" \\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.height), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.width), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n />\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/container',[\n 'lodash',\n 'jquery',\n 'taoQtiItem/qtiItem/core/Element'\n], function(_, $, Element){\n 'use strict';\n\n //containers are cached, so do not forget to remove them.\n var _containers = {};\n var _$containerContext = $();\n\n /**\n * Build the selector for your element (from the element serial)\n * @private\n * @param {QtiElement} element\n * @returns {String} the selector\n */\n var _getSelector = function(element){\n\n var serial = element.getSerial(),\n selector = '[data-serial=' + serial + ']';\n\n if(Element.isA(element, 'choice')){\n selector = '.qti-choice' + selector;\n }else if(Element.isA(element, 'interaction')){\n selector = '.qti-interaction' + selector;\n }\n\n return selector;\n };\n\n /**\n * Helps you to retrieve the DOM element (as a jquery element)\n * @exports taoQtiItem/qtiCommonRenderer/helpers/containerHelper\n */\n var containerHelper = {\n\n /**\n * Set a global scope to look for element container\n * @param {jQueryElement} [$scope] - if you want to retrieve the element in a particular scope or context\n */\n setContext : function($scope){\n _$containerContext = $scope;\n },\n\n /**\n * Get the container of the given element\n * @param {QtiElement} element - the QTI Element to find the container for\n * @param {jQueryElement} [$scope] - if you want to retrieve the element in a particular scope or context\n * @returns {jQueryElement} the container\n */\n get : function(element, $scope){\n\n var serial = element.getSerial();\n if($scope instanceof $ && $scope.length){\n\n //find in the given context\n return $scope.find(_getSelector(element));\n\n }else if(_$containerContext instanceof $ && _$containerContext.length){\n\n //find in the globally set context\n return _$containerContext.find(_getSelector(element));\n\n }else if(!_containers[serial] || !_containers[serial].length){\n\n //find in the global context\n _containers[serial] = $(_getSelector(element));\n }\n\n return _containers[serial];\n },\n\n /**\n * getContainer use a cache to store elements. This methods helps you to purge it.\n * @param {Element} element - find the container of this element\n */\n reset : function(element){\n if(element instanceof Element && _containers[element.getSerial()]){\n _containers = _.omit(_containers, element.getSerial());\n }\n },\n\n /**\n * Clear the containers cache\n */\n clear : function clear(){\n _containers = {};\n _$containerContext = $();\n },\n\n /**\n * Trigger an event on the element's container\n * @param {String} eventType - the name of the event\n * @param {QtiElement} element - find the container of this element\n * @param {Array} [data] - data to give to the event\n */\n trigger : function(eventType, element, data){\n if(eventType){\n if(data && !_.isArray(data)){\n data = [data];\n }\n this.get(element).trigger(eventType, data);\n\n }\n },\n\n /**\n * Alias to trigger a responseChange Event from an interaction\n * @param {QtiElement} interaction - the interaction that had a response changed\n * @param {Object} [extraData] - additionnal data to give to the event\n */\n triggerResponseChangeEvent : function(interaction, extraData){\n this.trigger('responseChange', interaction, [{\n interaction : interaction,\n response : interaction.getResponse()\n },\n extraData\n ]);\n },\n\n /**\n * Make all links to opens in another tab/window\n * @param {jQueryElement} $container\n */\n targetBlank : function($container){\n\n $container.on('click', 'a', function(e) {\n e.preventDefault();\n var href = $(this).attr('href');\n if(href && href.match(/^http/i)){\n window.open(href, '_blank');\n }\n });\n }\n };\n\n return containerHelper;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/Img',[\n 'core/promise',\n 'ui/waitForMedia',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/img',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(Promise, waitForMedia, tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'img',\n template : tpl,\n getContainer : containerHelper.get,\n render : function render (img, data){\n return new Promise(function(resolve, reject){\n containerHelper.get(img).waitForMedia(resolve);\n });\n }\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/include', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var stack1, helper, functionType=\"function\";\n\n\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/Include',['tpl!taoQtiItem/qtiCommonRenderer/tpl/include'], function(tpl){\n 'use strict';\n\n return {\n qtiClass : 'include',\n template : tpl\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/item', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\n buffer += \"<div class=\\\"qti-item tao-scope runtime\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\">\\n <div\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-itemBody \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</div>\\n <div id=\\\"modalFeedbacks\\\"></div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * TODO this code should be merged with the theme loader\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/itemStylesheetHandler',[\n 'jquery',\n 'lodash'\n], function($, _){\n 'use strict';\n\n //throttle events because of the loop\n var informLoaded = _.throttle(function(){\n $(document).trigger('customcssloaded.styleeditor');\n }, 10, {leading : false});\n\n /**\n * Attach QTI Stylesheets to the document\n *\n * @param {Array} stylesheets - the QTI model stylesheets\n * @fires customcssloaded.styleeditor on document 10ms after stylesheets are loaded\n */\n var attach = function attach(stylesheets) {\n var $head = $('head');\n\n //fallback\n if(!$head.length){\n $head = $('body');\n }\n\n // relative links with cache buster\n _(stylesheets).forEach(function(stylesheet){\n var sep,\n $link,\n href;\n\n //if the href is something\n if(stylesheet.attr('href')){\n $link = $(stylesheet.render());\n //get the resolved href once rendererd\n href = $link.attr('href');\n\n //bust cache only for network URLs\n if(!/^data\\:/.test(href)){\n sep = href.indexOf('?') > -1 ? '&' : '?';\n if(href.indexOf('/') === 0) {\n href = href.slice(1);\n }\n\n href += sep + (new Date().getTime()).toString();\n }\n\n //we need to set the href after the link is appended to the head (for our dear IE)\n $link.removeAttr('href')\n .appendTo($head)\n .attr('href', href);\n\n //wait for the styles to applies\n _.delay(informLoaded, 10);\n }\n });\n };\n\n /**\n * Remove QTI Stylesheets from the document\n *\n * @param {Array} stylesheets - the QTI model stylesheets\n */\n var detach = function detach(stylesheets) {\n _(stylesheets).forEach(function(stylesheet){\n if(stylesheet.serial){\n $('link[data-serial=\"' + stylesheet.serial + '\"]').remove();\n }\n });\n\n };\n\n\n /**\n * @exports taoQtiItem/qtiCommonRenderer/helpers/itemStylesheetHandler\n */\n return {\n attach: attach,\n detach : detach\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n */\n\n/**\n * Define the Item Element Renderer\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/Item',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/item',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/itemStylesheetHandler'\n], function(tpl, containerHelper, itemStylesheetHandler) {\n 'use strict';\n\n return {\n qtiClass: 'assessmentItem',\n template: tpl,\n getContainer: containerHelper.get,\n\n /**\n * Rendering initializations for the item\n * @param {Object} item - the item model\n */\n render: function render(item) {\n //target blank for all <a>\n containerHelper.targetBlank(containerHelper.get(item));\n\n //add stylesheets\n itemStylesheetHandler.attach(item.stylesheets);\n },\n\n /**\n * Unrender\n * @param {Object} item - the item model\n */\n destroy : function destroy(item){\n\n //clear the container cache\n containerHelper.clear();\n\n //detach stylesheets\n if(item.stylesheets){\n itemStylesheetHandler.detach(item.stylesheets);\n }\n }\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/math', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var stack1, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n<span data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"math\\\">\\n <math display = \\\"block\\\">\";\n if (helper = helpers.raw) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.raw); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</math>\\n</span>\\n\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n<span data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"math\\\">\\n <math>\";\n if (helper = helpers.raw) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.raw); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</math>\\n</span> \\n\";\n return buffer;\n }\n\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.block), {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * Math common renderer\n *\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/Math',[\n 'lodash',\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/math',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'mathJax'\n], function(_, Promise, tpl, containerHelper, MathJax){\n 'use strict';\n\n return {\n qtiClass : 'math',\n template : tpl,\n getContainer : containerHelper.get,\n render : function render (math, data){\n return new Promise(function(resolve, reject){\n if(typeof(MathJax) !== 'undefined' && MathJax){\n //MathJax needs to be exported globally to integrate with tools like TTS, it's weird...\n if(!window.MathJax){\n window.MathJax = MathJax;\n }\n\n _.defer(function(){ //defer execution fix some rendering issue in chrome\n MathJax.Hub.Queue([\"Typeset\", MathJax.Hub, containerHelper.get(math).parent()[0]]);\n\n //@see http://mathjax.readthedocs.org/en/latest/typeset.html\n MathJax.Hub.Queue(resolve);\n });\n }\n else {\n resolve();\n }\n });\n }\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/modalFeedback', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n \n return \"modal \";\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"<h2 class=\\\"qti-title modal-title\\\">\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.title)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"</h2>\";\n return buffer;\n }\n\n buffer += \"<div id=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" class=\\\"\";\n stack1 = helpers.unless.call(depth0, (depth0 && depth0.inline), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"qti-modalFeedback \";\n if (helper = helpers.feedbackStyle) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.feedbackStyle); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.title), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"modal-body\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</div>\\n</div>\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA\n **/\ndefine('taoQtiItem/qtiItem/helper/container',['lodash', 'jquery'], function (_, $){\n 'use strict';\n \n /**\n * Prefix used to the variable storage\n * @type String\n */\n var _prefix = 'x-tao-';\n \n /**\n * Check if the element is of a qti container type\n * \n * @private\n * @param {Object} element\n * @returns {Boolean}\n */\n function _checkContainerType(element){\n if(_.isFunction(element.initContainer) && _.isFunction(element.body)){\n return true;\n }else{\n throw 'the element is not of a container type';\n }\n }\n \n /**\n * Get the body element of the container\n * \n * @private\n * @param {Object} element\n * @returns {JQuery}\n */\n function _getBodyDom(element){\n if(_checkContainerType(element)){\n return $('<div>').html(element.body()).find('.x-tao-wrapper');\n }\n }\n \n /**\n * Add a class to the body element of the qti container\n * \n * @private\n * @param {Object} element\n * @param {String} newClass\n * @param {String} [oldClass]\n */\n function _setBodyDomClass(element, newClass, oldClass){\n\n if(_checkContainerType(element) && (oldClass || newClass)){\n var $wrapper = $('<div>').html(element.body());\n //set css class to element\n _setDomClass($wrapper, newClass, oldClass);\n //set to the model\n element.body($wrapper.html());\n }\n }\n \n /**\n * Switch class to the wrapped DOM\n * \n * @param {JQuery} $wrapper\n * @param {String} newClass\n * @param {String} oldClass\n * @returns {undefined}\n */\n function _setDomClass($wrapper, newClass, oldClass){\n var $bodyDom = $wrapper.find('.x-tao-wrapper');\n if(!$bodyDom.length){\n //create one\n $wrapper.wrapInner('<div class=\"x-tao-wrapper\">');\n $bodyDom = $wrapper.find('.x-tao-wrapper');\n }\n if(oldClass){\n $bodyDom.removeClass(oldClass);\n }\n if(newClass){\n $bodyDom.addClass(newClass);\n }\n }\n \n /**\n * Add manually the encoded information to a dom element\n * \n * @param {JQuery} $wrapper - the wrapper of the element that will holds the information\n * @param {String} dataName - the name of the information\n * @param {String} newValue - the new value to be added\n * @param {String} [oldValue] - the old value to be removed\n * @returns {undefined}\n */\n function setEncodedDataToDom($wrapper, dataName, newValue, oldValue){\n _setDomClass($wrapper, _getEncodedDataString(dataName, newValue), _getEncodedDataString(dataName, oldValue));\n }\n \n /**\n * Get the full variable name for the data store\n * \n * @param {String} dataName\n * @param {String} value\n * @returns {String}\n */\n function _getEncodedDataString(dataName, value){\n if(dataName && value){\n return _prefix + dataName + '-' + value;\n }\n return '';\n }\n \n /**\n * Set a data string to the element identified by its dataName\n * \n * @param {Object} element\n * @param {String} dataName\n * @param {String} newValue\n * @returns {undefined}\n */\n function setEncodedData(element, dataName, newValue){\n var oldValue = getEncodedData(element, dataName);\n return _setBodyDomClass(element, _getEncodedDataString(dataName, newValue), _getEncodedDataString(dataName, oldValue));\n }\n \n /**\n * Remove the stored data from the element by its dataName\n * \n * @param {Object} element\n * @param {String} dataName\n * @returns {unresolved}\n */\n function removeEncodedData(element, dataName){\n var oldValue = getEncodedData(element, dataName);\n if(dataName && oldValue){\n _setBodyDomClass(element, '', _getEncodedDataString(dataName, oldValue));\n }\n }\n\n /**\n * Check if the stored data exist\n * \n * @param {Object} element\n * @param {String} dataName\n * @param {String} value\n * @returns {Boolean}\n */\n function hasEncodedData(element, dataName, value){\n var $body = _getBodyDom(element);\n if($body && $body.length && dataName && value){\n return $body.hasClass(_getEncodedDataString(dataName, value));\n }\n return false;\n }\n \n /**\n * Get the encoded data identified by its dataName\n * \n * @param {Object} element\n * @param {String} dataName\n * @returns {String}\n */\n function getEncodedData(element, dataName){\n var regex, matches;\n var $body = _getBodyDom(element);\n if(dataName && $body && $body.length && $body.attr('class')){\n regex = new RegExp(_prefix + dataName + '-([a-zA-Z0-9\\-._]*)');\n matches = $body.attr('class').match(regex);\n if(matches){\n return matches[1];\n }\n }\n }\n \n /**\n * Provide a set of helper functions to set,retirve and manage string data to a container type qti element.\n */\n return {\n setEncodedData : setEncodedData,\n hasEncodedData : hasEncodedData,\n getEncodedData : getEncodedData,\n removeEncodedData : removeEncodedData,\n setEncodedDataToDom : setEncodedDataToDom\n };\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/ModalFeedback',[\n 'lodash',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/modalFeedback',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiItem/helper/container',\n 'ui/waitForMedia',\n 'ui/modal'\n], function(_, tpl, containerHelper, coreContainerHelper){\n 'use strict';\n\n var modalFeedbackRenderer = {\n qtiClass : 'modalFeedback',\n template : tpl,\n getContainer : containerHelper.get,\n minHeight : 200,\n width : 600,\n getData : function(fb, data){\n var feedbackStyle = coreContainerHelper.getEncodedData(fb, 'modalFeedback');\n data.feedbackStyle = feedbackStyle;\n return data;\n },\n render : function(modalFeedback, data){\n\n data = data || {};\n \n var $modal = containerHelper.get(modalFeedback);\n \n $modal.waitForMedia(function(){\n\n //when we are sure that media is loaded:\n $modal.on('opened.modal', function(){\n\n //set item body height\n var $itemBody = containerHelper.get(modalFeedback.getRelatedItem()).children('.qti-itemBody');\n var requiredHeight = $modal.outerHeight() + parseInt($modal.css('top'));\n if(requiredHeight > $itemBody.height()){\n $itemBody.height(requiredHeight);\n }\n\n }).on('closed.modal', function(){\n if(_.isFunction(data.callback)){\n data.callback.call(this);\n }\n }).modal({\n startClosed : false,\n minHeight : modalFeedbackRenderer.minHeight,\n width : modalFeedbackRenderer.width\n });\n });\n\n }\n };\n\n return modalFeedbackRenderer;\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/object', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div class=\\\"qti-object-container\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" >\\n</div>\\n\";\n return buffer;\n });\n});\n\n","\ndefine(\"json!core/mimetypes.json\", function(){ return {\n \"video\" : {\n \"category\" : \"media\", \n \"mimes\" : [\"application/ogg\", \"video/*\"], \n \"extensions\" : [\"avi\", \"mp4\", \"ogg\", \"mpeg\", \"flv\"] \n }, \n \"audio\" : {\n \"category\" : \"media\", \n \"mimes\" : [\"audio/*\"], \n \"extensions\" : [\"mp3\", \"wav\", \"aac\"] \n },\n \"image\" : {\n \"category\" : \"media\",\n \"mimes\" : [\"image/*\", \"application/x-gzip\"],\n \"extensions\" : [\"png\", \"jpg\", \"jpeg\", \"gif\", \"svg\", \"svgz\", \"ico\"]\n },\n \"flash\" : {\n \"category\" : \"media\", \n \"mimes\" : [\"application/x-shockwave-flash\"],\n \"extensions\" : [\"flv\", \"swf\"]\n },\n \"geogebra\" : {\n \"category\" : \"media\",\n \"mimes\" : [\"application/vnd.geogebra.file\", \"application/vnd.geogebra.tool\"],\n \"extensions\" : [\"ggb\", \"ggt\"]\n },\n \"rdf\" : {\n \"category\" : \"sources\", \n \"mimes\" : [\"application/rdf+xml\"], \n \"extensions\" : [\"rdf\"] \n },\n \"xml\" : {\n \"category\" : \"sources\", \n \"mimes\" : [\"application/xml\", \"application/xml-dtd\", \"text/xml\"],\n \"extensions\" : [\"xml\", \"dtd\", \"qti\"] \n },\n \"html\" : {\n \"category\" : \"sources\", \n \"mimes\" : [\"text/html\", \"text/xhtml\", \"application/xhtml+xml\", \"application/qti+xml\"],\n \"extensions\" : [\"html\", \"htm\", \"html5\", \"xhtml\"] \n },\n \"font\" : {\n \"category\": \"sources\", \n \"mimes\" : [\"application/font-woff\"], \n \"extensions\" : [\"woff\", \"eot\", \"ttf\"]\n }, \n \"js\" : {\n \"category\": \"sources\", \n \"mimes\" : [\"application/javascript\", \"application/json\", \"text/javascript\"], \n \"extensions\" : [\"js\", \"json\"]\n }, \n \"css\" : {\n \"category\": \"sources\", \n \"mimes\" : [\"text/css\"], \n \"extensions\" : [\"css\", \"sass\", \"scss\", \"less\"]\n }, \n \"shell\" : {\n \"category\" : \"sources\",\n \"mimes\" : [\"application/x-sh\"],\n \"extensions\" : [\"sh\"]\n },\n \"mathml\" : {\n \"category\" : \"sources\", \n \"mimes\" : [\"application/mathml+xml\"], \n \"extensions\" : [\"mathml\"] \n },\n \"pdf\" : {\n \"category\" : \"document\", \n \"mimes\" : [\"application/pdf\"], \n \"extensions\" : [\"pdf\"] \n }, \n \"office\" : {\n \"category\" : \"document\", \n \"mimes\" : [\"application/vnd.oasis.opendocument.text\", \"application/vnd.oasis.opendocument.spreadsheet\", \"application/vnd.oasis.opendocument.presentation\", \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\", \"application/vnd.openxmlformats-officedocument.presentationml.presentation\", \"application/vnd.ms-powerpoint\", \"application/vnd.ms-excel\", \"application/msword\" ], \n \"extensions\" : [\"doc\", \"odt\", \"docx\", \"xls\", \"xlsx\", \"ods\", \"ppt\", \"pptx\", \"odp\"] \n }, \n \"text\" : {\n \"category\" : [\"document\"],\n \"mimes\" : [\"text/*\"],\n \"extensions\" : [\"txt\", \"csv\"]\n },\n \"archive\" : {\n \"category\" : \"archive\",\n \"mimes\" : [\"application/zip\", \"application/gzip\", \"application/rar\", \"application/x-7z-compressed\", \"application/x-bzip\", \"application/x-bzip2\"],\n \"extensions\" : [\"zip\", \"gz\", \"bz\", \"bz2\", \"rar\", \"p7z\", \"7z\"]\n }\n}\n;});\n\n","/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('core/mimetype',['jquery', 'lodash', 'json!core/mimetypes.json'], function($, _, mimeTypes){\n 'use strict';\n\n /**\n * Helps you to retrieve file type and categories based on a file mime type\n * @exports core/mimetype\n */\n return {\n\n /**\n * Gets the MIME type of a resource.\n *\n * @param {String} url - The URL of the resource to get type of\n * @param {Function} [callback] - An optional function called when the response is received.\n * This callback must accept 2 arguments:\n * the first is the potential error if the request failed,\n * the second is the MIME type if the request succeed.\n * @returns {mimetype}\n */\n getResourceType : function getResourceType(url, callback) {\n $.ajax({\n type: \"HEAD\",\n async: true,\n url: url,\n success: function onSuccess(message, text, jqXHR) {\n var mime = jqXHR.getResponseHeader('Content-Type');\n if (callback) {\n callback(null, mime);\n }\n },\n\n error: function onError(jqXHR) {\n var error = jqXHR.status || 404;\n if (callback) {\n callback(error);\n }\n }\n });\n return this;\n },\n\n /**\n * Get the type from a mimeType regarding the mimeMapping above\n * @param {Object} file - the file\n * @param {String} [file.mime] - the mime type\n * @param {String} [file.name] - the file name\n * @returns {String} the type\n */\n getFileType : function getFileType(file){\n var type;\n var mime = file.mime;\n var extMatch, ext;\n\n if(mime){\n //lookup for exact mime\n type = _.findKey(mimeTypes, { mimes : [mime]});\n\n //then check with star\n if(!type){\n type = _.findKey(mimeTypes, { mimes : [mime.replace(/\\/.*$/, '/*')]});\n }\n }\n\n //try by extension\n if(!type){\n extMatch = file.name.match(/\\.([0-9a-z]+)(?:[\\?#]|$)/i);\n if(extMatch && extMatch.length > 1){\n ext = extMatch[1];\n\n type = _.findKey(mimeTypes, { extensions : [ext]});\n }\n }\n\n return type;\n },\n\n /**\n * Get the category of a type\n * @param {String} type\n * @returns {String} category\n */\n getCategory : function getCategory(type){\n if(mimeTypes[type]){\n return mimeTypes[type].category;\n }\n }\n\n };\n\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2013 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n *\n */\n\n\n/**\n * Parse and extract info from the current browser's URL.\n *\n * Be careful, îf you want to parse URLs that isn't the current one of relative to your window domain, use util/url.\n * For example a relative URL will have as host the current window's host.\n *\n * TODO move to util and see how it can be merged with util/url or a least rely on it for some parts.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('urlParser',['lodash'], function(_){\n\n var urlParts = ['hash', 'host', 'hostname', 'pathname', 'port', 'protocol', 'search'];\n\n /**\n * Parse an URL and gives you access to its parts\n * @exports urlParser\n * @constructor\n * @param {String} url\n */\n function UrlParser(url){\n this.url = url;\n\n //use the parser within the browser DOM engine\n //thanks to https://gist.github.com/jlong/2428561\n var detachedAnchor = document.createElement('a');\n detachedAnchor.href = url;\n this.data = _.pick(detachedAnchor, urlParts);\n this.params = UrlParser.extractParams(this.data.search);\n }\n\n /**\n * Get an object that represents query params from the search string\n * @memberOf UrlParser\n * @param {String} search\n * @returns {Object} key : value\n */\n UrlParser.extractParams = function(search){\n var params = {};\n search.replace(/^\\?/, '').replace(/([^=&]+)=([^&]*)/g, function(m, key, value) {\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n });\n return params;\n };\n\n /**\n * Get a part of the url\n * @memberOf UrlParser\n * @param {string} what - in 'hash', 'host', 'hostname', 'pathname', 'port', 'protocol', 'search'\n * @returns {String|Boolean} the requested url part or false\n */\n UrlParser.prototype.get = function(what){\n return _.contains(urlParts, what) ? this.data[what] : false;\n };\n\n /**\n * Get an object that represents the URL's query params\n * @memberOf UrlParser\n * @returns {Object} key : value\n */\n UrlParser.prototype.getParams = function(search){\n return this.params;\n };\n\n /**\n * Replace the parameter set\n * @memberOf UrlParser\n * @param {Object} params - of key:value\n */\n UrlParser.prototype.setParams = function(params){\n if(_.isObject(params)){\n this.params = params;\n }\n };\n\n /**\n * Add a new parameter\n * @memberOf UrlParser\n * @param {String} key\n * @param {String} value\n */\n UrlParser.prototype.addParam = function(key, value){\n if(key){\n this.params[key] = value;\n }\n };\n\n\n /**\n * Get each paths chunk\n * @memberOf UrlParser\n * @returns {Array} - the paths\n */\n UrlParser.prototype.getPaths = function(){\n return this.data.pathname.replace(/^\\/|\\/$/g, '').split('/');\n };\n\n /**\n * Get the URL\n * @param {Array} [exclude} - url parts to exclude in hosts, params and hash\n * @returns {String} the url\n */\n UrlParser.prototype.getUrl = function(exclude){\n var url = '';\n exclude = exclude || [];\n if(this.data){\n if(this.data.hostname && !_.contains(exclude, 'host')){\n url += (this.data.protocol ? this.data.protocol : 'http:') + '//' + this.data.hostname.replace(/\\/$/, '');\n\n //the value of the port seems to be different regardign the browser, so we prevent adding port if not usual\n if(this.data.port && this.data.port !== 80 && this.data.port !== '80' && this.data.port !== '0'){\n url += ':' + this.data.port;\n }\n }\n if(!/\\/$/.test(url) && !/^\\//.test(this.data.pathname)){\n url += '/';\n }\n url += this.data.pathname; //there is always a path\n\n if(this.params && !_.contains(exclude, 'params')){\n url += '?';\n _.forEach(this.params, function(value, key){\n url += encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';\n });\n url = url.substring(0, url.length - 1);\n }\n\n if(this.data.hash && !_.contains(exclude, 'hash')){\n url += this.data.hash;\n }\n }\n return url;\n };\n\n /**\n * Get the URL without parameters, hash and file if\n * @returns {String} the url\n */\n UrlParser.prototype.getBaseUrl = function(){\n\n var baseUrl = this.getUrl(['params', 'hash']);\n var paths = this.getPaths();\n var lastPart = paths[paths.length - 1];\n\n //remove if trailing path token is a file\n if(paths.length > 0 && /\\.[a-z]+$/.test(lastPart)){\n baseUrl = baseUrl.replace(lastPart, '').replace(/\\/\\/$/, '/');\n }\n\n return baseUrl;\n };\n\n /**\n * Check if CORS applies to 2 differents URLs\n * @memberOf UrlParser\n * @param {UrlParser} [parsedUrl] - to compare with, use window.location if undefined\n * @returns {Boolean} true if same domain\n */\n UrlParser.prototype.checkCORS = function(parsedUrl){\n parsedUrl = parsedUrl || new UrlParser(window.location);\n if(parsedUrl instanceof UrlParser){\n return this.get('protocol') === parsedUrl.get('protocol') &&\n this.get('hostname') === parsedUrl.get('hostname') &&\n this.get('port') === parsedUrl.get('port');\n }\n throw new Error('parsedUrl parameter must be an instanceof UrlParser');\n };\n\n\n\n return UrlParser;\n});\n\n","\ndefine('tpl!ui/mediaplayer/tpl/player', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.is)),stack1 == null || stack1 === false ? stack1 : stack1.youtube), {hash:{},inverse:self.program(5, program5, data),fn:self.program(2, program2, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n return buffer;\n }\nfunction program2(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n \";\n stack1 = helpers.each.call(depth0, (depth0 && depth0.sources), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n return buffer;\n }\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n <div class=\\\"media video youtube\\\" data-video-src=\\\"\";\n if (helper = helpers.src) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.src); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-video-id=\\\"\";\n if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-type=\\\"youtube\\\"></div>\\n \";\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n <video class=\\\"media video\\\" poster=\\\"\";\n if (helper = helpers.poster) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.poster); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" controls \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.is)),stack1 == null || stack1 === false ? stack1 : stack1.cors), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \">\\n \";\n stack1 = helpers.each.call(depth0, (depth0 && depth0.sources), {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n\\n \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Your browser doesnt support the video player.\", options) : helperMissing.call(depth0, \"__\", \"Your browser doesnt support the video player.\", options)))\n + \"\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.link), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </video>\\n \";\n return buffer;\n }\nfunction program6(depth0,data) {\n \n \n return \"crossorigin\";\n }\n\nfunction program8(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"\\n <source src=\\\"\";\n if (helper = helpers.src) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.src); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" type=\\\"\";\n if (helper = helpers.type) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.type); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n return buffer;\n }\n\nfunction program10(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n <a href=\\\"\";\n if (helper = helpers.link) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.link); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Please download the video and view offline.\", options) : helperMissing.call(depth0, \"__\", \"Please download the video and view offline.\", options)))\n + \"</a>\\n \";\n return buffer;\n }\n\nfunction program12(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n <audio class=\\\"media audio\\\" controls \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.is)),stack1 == null || stack1 === false ? stack1 : stack1.cors), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \">\\n \";\n stack1 = helpers.each.call(depth0, (depth0 && depth0.sources), {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n\\n \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Your browser doesnt support the audio player.\", options) : helperMissing.call(depth0, \"__\", \"Your browser doesnt support the audio player.\", options)))\n + \"\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.link), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </audio>\\n \";\n return buffer;\n }\nfunction program13(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n <a href=\\\"\";\n if (helper = helpers.link) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.link); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Please download the track and listen offline.\", options) : helperMissing.call(depth0, \"__\", \"Please download the track and listen offline.\", options)))\n + \"</a>\\n \";\n return buffer;\n }\n\n buffer += \"<div class=\\\"mediaplayer \";\n if (helper = helpers.type) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.type); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <div class=\\\"player\\\">\\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.is)),stack1 == null || stack1 === false ? stack1 : stack1.video), {hash:{},inverse:self.program(12, program12, data),fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"overlay\\\">\\n <a class=\\\"action play\\\" data-control=\\\"play\\\"><span class=\\\"icon icon-play\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Play\", options) : helperMissing.call(depth0, \"__\", \"Play\", options)))\n + \"\\\"></span></a>\\n <a class=\\\"action play\\\" data-control=\\\"pause\\\"><span class=\\\"icon icon-pause\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Pause\", options) : helperMissing.call(depth0, \"__\", \"Pause\", options)))\n + \"\\\"></span></a>\\n </div>\\n </div>\\n <div class=\\\"controls\\\">\\n <div class=\\\"bar\\\">\\n <div class=\\\"control actions playback\\\">\\n <a class=\\\"action play\\\" data-control=\\\"play\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Play\", options) : helperMissing.call(depth0, \"__\", \"Play\", options)))\n + \"\\\"><span class=\\\"icon icon-play\\\"></span></a>\\n <a class=\\\"action play\\\" data-control=\\\"pause\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Pause\", options) : helperMissing.call(depth0, \"__\", \"Pause\", options)))\n + \"\\\"><span class=\\\"icon icon-pause\\\"></span></a>\\n </div>\\n <div class=\\\"control seek\\\"><div class=\\\"slider\\\"></div></div>\\n <div class=\\\"control infos timer\\\">\\n <span class=\\\"info time\\\" data-control=\\\"time-cur\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Current playback position\", options) : helperMissing.call(depth0, \"__\", \"Current playback position\", options)))\n + \"\\\">00:00</span>\\n <span class=\\\"info time\\\" data-control=\\\"time-end\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Total duration\", options) : helperMissing.call(depth0, \"__\", \"Total duration\", options)))\n + \"\\\">00:00</span>\\n </div>\\n <div class=\\\"control actions sound\\\">\\n <div class=\\\"volume\\\"><div class=\\\"slider\\\"></div></div>\\n <a class=\\\"action mute\\\" data-control=\\\"mute\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Mute\", options) : helperMissing.call(depth0, \"__\", \"Mute\", options)))\n + \"\\\"><span class=\\\"icon icon-sound\\\"></span></a>\\n <a class=\\\"action mute\\\" data-control=\\\"unmute\\\" title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Restore sound\", options) : helperMissing.call(depth0, \"__\", \"Restore sound\", options)))\n + \"\\\"><span class=\\\"icon icon-mute\\\"></span></a>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"error\\\">\\n <div class=\\\"message\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"This media cannot be played!\", options) : helperMissing.call(depth0, \"__\", \"This media cannot be played!\", options)))\n + \"</div>\\n </div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","\ndefine('css!ui/mediaplayer/css/player',[],function(){});\n","/*! $.noUiSlider - WTFPL - refreshless.com/nouislider/ */\n\n/*jslint browser: true */\n/*jslint devel: true */\n/*jslint continue: true */\n/*jslint plusplus: true */\n/*jslint sub: true */\n/*jslint white: true */\n\n// ==ClosureCompiler==\n// @externs_url http://refreshless.com/externs/jquery-1.8.js\n// @compilation_level ADVANCED_OPTIMIZATIONS\n// @warning_level VERBOSE\n// ==/ClosureCompiler==\n\ndefine('nouislider',['jquery'], function( $ ){\n\n\t'use strict';\n\n\tvar\n\t// Cache the document selector;\n/** @const */ doc = $(document),\n\t// Namespace for binding and unbinding slider events;\n/** @const */ namespace = '.nui',\n\t// Copy of the current value function;\n/** @const */ $val = $.fn.val,\n\t// Determine the events to bind. IE11 implements pointerEvents without\n\t// a prefix, which breaks compatibility with the IE10 implementation.\n/** @const */ actions = window.navigator.pointerEnabled ? {\n\t\tstart: 'pointerdown',\n\t\tmove: 'pointermove',\n\t\tend: 'pointerup'\n\t} : window.navigator.msPointerEnabled ? {\n\t\tstart: 'MSPointerDown',\n\t\tmove: 'MSPointerMove',\n\t\tend: 'MSPointerUp'\n\t} : {\n\t\tstart: 'mousedown touchstart',\n\t\tmove: 'mousemove touchmove',\n\t\tend: 'mouseup touchend'\n\t},\n\t// Re-usable list of classes;\n/** @const */ Classes = [\n/* 0 */ 'noUi-target'\n/* 1 */ ,'noUi-base'\n/* 2 */ ,'noUi-origin'\n/* 3 */ ,'noUi-handle'\n/* 4 */ ,'noUi-horizontal'\n/* 5 */ ,'noUi-vertical'\n/* 6 */ ,'noUi-background'\n/* 7 */ ,'noUi-connect'\n/* 8 */ ,'noUi-ltr'\n/* 9 */ ,'noUi-rtl'\n/* 10 */ ,'noUi-dragable'\n/* 11 */ ,''\n/* 12 */ ,'noUi-state-drag'\n/* 13 */ ,''\n/* 14 */ ,'noUi-state-tap'\n/* 15 */ ,'noUi-active'\n/* 16 */ ,'noUi-extended'\n/* 17 */ ,'noUi-stacking'\n\t],\n/** @const */ Formatting = [\n/* 0 */ 'decimals'\n/* 1 */ ,'mark'\n/* 2 */ ,'thousand'\n/* 3 */ ,'prefix'\n/* 4 */ ,'postfix'\n/* 5 */ ,'encoder'\n/* 6 */ ,'decoder'\n/* 7 */ ,'negative'\n/* 8 */ ,'negativeBefore'\n\t],\n/** @const */ FormatDefaults = [\n/* 0 */ 2\n/* 1 */ ,'.'\n/* 2 */ ,''\n/* 3 */ ,''\n/* 4 */ ,''\n/* 5 */ ,function(a){ return a; }\n/* 6 */ ,function(a){ return a; }\n/* 7 */ ,'-'\n/* 8 */ ,''\n\t];\n\n\n// Error handling\n\n\tfunction throwError( message ){\n\t\tthrow new RangeError('noUiSlider: ' + message);\n\t}\n\n\t// Throw an error if formatting options are incompatible.\n\tfunction throwEqualError( F, a, b ) {\n\t\tif ( (F[a] || F[b]) && (F[a] === F[b]) ) {\n\t\t\tthrowError(\"(Link) '\"+a+\"' can't match '\"+b+\"'.'\");\n\t\t}\n\t}\n\n\n// General helpers\n\n\t// Limits a value to 0 - 100\n\tfunction limit ( a ) {\n\t\treturn Math.max(Math.min(a, 100), 0);\n\t}\n\n\t// Round a value to the closest 'to'.\n\tfunction closest ( value, to ) {\n\t\treturn Math.round(value / to) * to;\n\t}\n\n\t// Determine the size of a sub-range in relation to a full range.\n\tfunction subRangeRatio ( pa, pb ) {\n\t\treturn (100 / (pb - pa));\n\t}\n\n\n// Type validation\n\n\tfunction typeMatch ( a, b ) {\n\t\treturn (typeof a) === (typeof b);\n\t}\n\n\t// Test in an object is an instance of jQuery or Zepto.\n\tfunction isInstance ( a ) {\n\t\treturn a instanceof $ || ( $['zepto'] && $['zepto']['isZ'](a) );\n\t}\n\n\t// Checks whether a value is numerical.\n\tfunction isNumeric ( a ) {\n\t\treturn typeof a === 'number' && !isNaN( a ) && isFinite( a );\n\t}\n\n\t// Wraps a variable as an array, if it isn't one yet.\n\tfunction asArray ( a ) {\n\t\treturn $.isArray(a) ? a : [a];\n\t}\n\n\n// Class handling\n\n\t// Sets a class and removes it after [duration] ms.\n\tfunction addClassFor ( element, className, duration ) {\n\t\telement.addClass(className);\n\t\tsetTimeout(function(){\n\t\t\telement.removeClass(className);\n\t\t}, duration);\n\t}\n\n\t// Tests if element has a class, adds it if not. Returns original state.\n\tfunction getsClass ( element, className ) {\n\n\t\tvar has = element.hasClass(className);\n\n\t\tif ( !has ) {\n\t\t\telement.addClass( className );\n\t\t}\n\n\t\treturn has;\n\t}\n\n\n// Value calculation\n\n\t// (percentage) How many percent is this value of this range?\n\tfunction fromPercentage ( range, value ) {\n\t\treturn (value * 100) / ( range[1] - range[0] );\n\t}\n\n\t// (percentage) Where is this value on this range?\n\tfunction toPercentage ( range, value ) {\n\t\treturn fromPercentage( range, range[0] < 0 ?\n\t\t\tvalue + Math.abs(range[0]) :\n\t\t\t\tvalue - range[0] );\n\t}\n\n\t// (value) How much is this percentage on this range?\n\tfunction isPercentage ( range, value ) {\n\t\treturn ((value * ( range[1] - range[0] )) / 100) + range[0];\n\t}\n\n\t// (percentage)\n\tfunction toStepping ( options, value ) {\n\n\t\tif ( value >= options.xVal.slice(-1)[0] ){\n\t\t\treturn 100;\n\t\t}\n\n\t\tvar j = 1, va, vb, pa, pb;\n\t\twhile ( value >= options.xVal[j] ){\n\t\t\tj++;\n\t\t}\n\n\t\tva = options.xVal[j-1];\n\t\tvb = options.xVal[j];\n\t\tpa = options.xPct[j-1];\n\t\tpb = options.xPct[j];\n\n\t\treturn pa + (toPercentage([va, vb], value) / subRangeRatio (pa, pb));\n\t}\n\n\t// (value)\n\tfunction fromStepping ( options, value ) {\n\n\t\t// There is no range group that fits 100\n\t\tif ( value >= 100 ){\n\t\t\treturn options.xVal.slice(-1)[0];\n\t\t}\n\n\t\tvar j = 1, va, vb, pa, pb;\n\t\twhile ( value >= options.xPct[j] ){\n\t\t\tj++;\n\t\t}\n\n\t\tva = options.xVal[j-1];\n\t\tvb = options.xVal[j];\n\t\tpa = options.xPct[j-1];\n\t\tpb = options.xPct[j];\n\n\t\treturn isPercentage([va, vb], (value - pa) * subRangeRatio (pa, pb));\n\t}\n\n\t// (percentage) Get the step that applies at a certain value.\n\tfunction getStep ( options, value ){\n\n\t\tvar j = 1, a, b;\n\t\twhile ( value >= options.xPct[j] ){\n\t\t\tj++;\n\t\t}\n\n\t\tif ( options.snap ) {\n\n\t\t\ta = options.xPct[j-1];\n\t\t\tb = options.xPct[j];\n\n\t\t\tif ((value - a) > ((b-a)/2)){\n\t\t\t\treturn b;\n\t\t\t}\n\n\t\t\treturn a;\n\t\t}\n\n\t\tif ( !options.xSteps[j-1] ){\n\t\t\treturn value;\n\t\t}\n\n\t\treturn options.xPct[j-1] + closest(\n\t\t\tvalue - options.xPct[j-1],\n\t\t\toptions.xSteps[j-1]\n\t\t);\n\t}\n\n\n// Event handling\n\n\t// Provide a clean event with standardized offset values.\n\tfunction fixEvent ( e ) {\n\n\t\t// Prevent scrolling and panning on touch events, while\n\t\t// attempting to slide. The tap event also depends on this.\n\t\te.preventDefault();\n\n\t\t// Filter the event to register the type, which can be\n\t\t// touch, mouse or pointer. Offset changes need to be\n\t\t// made on an event specific basis.\n\t\tvar touch = e.type.indexOf('touch') === 0\n\t\t\t,mouse = e.type.indexOf('mouse') === 0\n\t\t\t,pointer = e.type.indexOf('pointer') === 0\n\t\t\t,x,y, event = e;\n\n\t\t// IE10 implemented pointer events with a prefix;\n\t\tif ( e.type.indexOf('MSPointer') === 0 ) {\n\t\t\tpointer = true;\n\t\t}\n\n\t\t// Get the originalEvent, if the event has been wrapped\n\t\t// by jQuery. Zepto doesn't wrap the event.\n\t\tif ( e.originalEvent ) {\n\t\t\te = e.originalEvent;\n\t\t}\n\n\t\tif ( touch ) {\n\t\t\t// noUiSlider supports one movement at a time,\n\t\t\t// so we can select the first 'changedTouch'.\n\t\t\tx = e.changedTouches[0].pageX;\n\t\t\ty = e.changedTouches[0].pageY;\n\t\t}\n\n\t\tif ( mouse || pointer ) {\n\n\t\t\t// Polyfill the pageXOffset and pageYOffset\n\t\t\t// variables for IE7 and IE8;\n\t\t\tif( !pointer && window.pageXOffset === undefined ){\n\t\t\t\twindow.pageXOffset = document.documentElement.scrollLeft;\n\t\t\t\twindow.pageYOffset = document.documentElement.scrollTop;\n\t\t\t}\n\n\t\t\tx = e.clientX + window.pageXOffset;\n\t\t\ty = e.clientY + window.pageYOffset;\n\t\t}\n\n\t\tevent.points = [x, y];\n\t\tevent.cursor = mouse;\n\n\t\treturn event;\n\t}\n\n\n// Organize formatting in an object.\n\n\t/** @constructor */\n\tfunction Format( options ){\n\n\t\t// If no settings where provided, the defaults will be loaded.\n\t\tif ( options === undefined ){\n\t\t\toptions = {};\n\t\t}\n\n\t\tif ( typeof options !== 'object' ){\n\t\t\tthrowError(\"(Format) 'format' option must be an object.\");\n\t\t}\n\n\t\tvar settings = {};\n\n\t\t// Copy all values into a new object.\n\t\t$(Formatting).each(function(i, val){\n\n\t\t\tif ( options[val] === undefined ){\n\n\t\t\t\tsettings[val] = FormatDefaults[i];\n\n\t\t\t// When we aren't loading defaults, validate the entry.\n\t\t\t} else if ( typeMatch(options[val], FormatDefaults[i]) ) {\n\n\t\t\t\t// Support for up to 7 decimals.\n\t\t\t\t// More can't be guaranteed due to floating point issues.\n\t\t\t\tif ( val === 'decimals' ){\n\t\t\t\t\tif ( options[val] < 0 || options[val] > 7 ){\n\t\t\t\t\t\tthrowError(\"(Format) 'format.decimals' option must be between 0 and 7.\");\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsettings[val] = options[val];\n\n\t\t\t// If the value isn't valid, emit an error.\n\t\t\t} else {\n\t\t\t\tthrowError(\"(Format) 'format.\"+val+\"' must be a \" + typeof FormatDefaults[i] + \".\");\n\t\t\t}\n\t\t});\n\n\t\t// Some values can't be extracted from a\n\t\t// string if certain combinations are present.\n\t\tthrowEqualError(settings, 'mark', 'thousand');\n\t\tthrowEqualError(settings, 'prefix', 'negative');\n\t\tthrowEqualError(settings, 'prefix', 'negativeBefore');\n\n\t\tthis.settings = settings;\n\t}\n\n\t// Shorthand for internal value get\n\tFormat.prototype.v = function ( a ) {\n\t\treturn this.settings[a];\n\t};\n\n\tFormat.prototype.to = function ( number ) {\n\n\t\tfunction reverse ( a ) {\n\t\t\treturn a.split('').reverse().join('');\n\t\t}\n\n\t\tnumber = this.v('encoder')( number );\n\n\t\tvar negative = '', preNegative = '', base = '', mark = '';\n\n\t\tif ( number < 0 ) {\n\t\t\tnegative = this.v('negative');\n\t\t\tpreNegative = this.v('negativeBefore');\n\t\t}\n\n\t\t// Round to proper decimal count\n\t\tnumber = Math.abs(number).toFixed( this.v('decimals') ).toString();\n\t\tnumber = number.split('.');\n\n\t\t// Rounding away decimals might cause a value of -0\n\t\t// when using very small ranges. Remove those cases.\n\t\tif ( parseFloat(number) === 0 ) {\n\t\t\tnumber[0] = '0';\n\t\t}\n\n\t\t// Group numbers in sets of three.\n\t\tif ( this.v('thousand') ) {\n\t\t\tbase = reverse(number[0]).match(/.{1,3}/g);\n\t\t\tbase = reverse(base.join(reverse( this.v('thousand') )));\n\t\t} else {\n\t\t\tbase = number[0];\n\t\t}\n\n\t\t// Ignore the decimal separator if decimals are set to 0.\n\t\tif ( this.v('mark') && number.length > 1 ) {\n\t\t\tmark = this.v('mark') + number[1];\n\t\t}\n\n\t\t// Return the finalized formatted number.\n\t\treturn preNegative +\n\t\t\tthis.v('prefix') +\n\t\t\tnegative +\n\t\t\tbase +\n\t\t\tmark +\n\t\t\tthis.v('postfix');\n\t};\n\n\tFormat.prototype.from = function ( input ) {\n\n\t\tfunction esc(s){\n\t\t\treturn s.replace(/[\\-\\/\\\\\\^$*+?.()|\\[\\]{}]/g, '\\\\$&');\n\t\t}\n\n\t\tvar isNeg;\n\t\t// The set request might want to ignore this handle.\n\t\t// Test for 'undefined' too, as a two-handle slider\n\t\t// can still be set with an integer.\n\t\tif( input === null || input === undefined ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Remove formatting and set period for float parsing.\n\t\tinput = input.toString();\n\n\t\t// Replace the preNegative indicator.\n\t\tisNeg = input.replace(new RegExp('^' + esc( this.v('negativeBefore') )), '');\n\n\t\t// Check if the value changed by removing the negativeBefore symbol.\n\t\tif( input !== isNeg ) {\n\t\t\tinput = isNeg;\n\t\t\tisNeg = '-';\n\t\t} else {\n\t\t\tisNeg = '';\n\t\t}\n\n\t\t// If prefix is set and the number is actually prefixed.\n\t\tinput = input.replace(new RegExp('^'+esc( this.v('prefix') )), '');\n\n\t\t// Only replace if a negative sign is set.\n\t\tif ( this.v['negative'] ) {\n\n\t\t\t// Reset isNeg to prevent double '-' insertion.\n\t\t\tisNeg = '';\n\n\t\t\t// Reset the negative sign to '-'\n\t\t\tinput = input.replace(new RegExp('^'+esc( this.v('negative') )), '-');\n\t\t}\n\n\t\t// Clean the input string\n\t\tinput = input\n\t\t// If postfix is set and the number is postfixed.\n\t\t\t.replace( new RegExp(esc( this.v('postfix') ) + '$'), '')\n\t\t// Remove the separator every three digits.\n\t\t\t.replace( new RegExp(esc( this.v('thousand') ), 'g'), '')\n\t\t// Set the decimal separator back to period.\n\t\t\t.replace( this.v('mark'), '.');\n\n\t\t// Run the user defined decoder. Returns input by default.\n\t\tinput = this.v('decoder')( parseFloat( isNeg + input ) );\n\n\t\t// Ignore invalid input\n\t\tif (isNaN( input )) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn input;\n\t};\n\n\n// Serialization target\n\n/** @constructor */\n\tfunction Link( entry, update ){\n\n\t\t// Make sure Link isn't called as a function, in which case\n\t\t// the 'this' scope would be the window.\n\t\tif ( !(this instanceof Link) ) {\n\t\t\tthrow new Error( \"Link: \" +\n\t\t\t\t\"Don't use Link as a function. \" +\n\t\t\t\t\"Use the 'new' keyword.\");\n\t\t}\n\n\t\tif ( !entry ) {\n\t\t\tthrow new RangeError(\"Link: missing parameters.\");\n\t\t}\n\n\t\t// Write all formatting to this object.\n\t\t// No validation needed, as we'll merge these with the parent\n\t\t// format options first.\n\t\tthis.formatting = entry['format'] || {};\n\n\t\t// Store the update option.\n\t\tthis.update = !update;\n\n\t\t// In IE < 9, .bind() isn't available, need this link in .change().\n\tvar that = this,\n\n\t\t// Get values from the input.\n\t\ttarget = entry['target'] || function(){},\n\t\tmethod = entry['method'],\n\n\t\t// Find the type of this link.\n\t\tisTooltip = ( typeof target === 'string' && target.indexOf('-tooltip-') === 0 ),\n\t\tisHidden = ( typeof target === 'string' && target.indexOf('-') !== 0 ),\n\t\tisMethod = ( typeof target === 'function' ),\n\t\tis$ = ( isInstance(target) ),\n\t\tisInput = ( is$ && target.is('input, select, textarea') ),\n\t\tmethodIsFunction = ( is$ && typeof method === 'function' ),\n\t\tmethodIsName = ( is$ && typeof method === 'string' && target[method] );\n\n\t\t// If target is a string, a new hidden input will be created.\n\t\tif ( isTooltip ) {\n\n\t\t\t// By default, use the 'html' method.\n\t\t\tthis.method = method || 'html';\n\n\t\t\t// Use jQuery to create the element\n\t\t\tthis.el = $( target.replace('-tooltip-', '') || '<div/>' )[0];\n\n\t\t\treturn;\n\t\t}\n\n\t\t// If the string doesn't begin with '-', which is reserved, add a new hidden input.\n\t\tif ( isHidden ) {\n\n\t\t\tthis.method = 'val';\n\n\t\t\tthis.el = document.createElement('input');\n\t\t\tthis.el.name = target;\n\t\t\tthis.el.type = 'hidden';\n\n\t\t\treturn;\n\t\t}\n\n\t\t// The target can also be a function, which will be called.\n\t\tif ( isMethod ) {\n\t\t\tthis.target = false;\n\t\t\tthis.method = target;\n\t\t\treturn;\n\t\t}\n\n\t\t// If the target is and $ element.\n\t\tif ( is$ ) {\n\n\t\t\t// The method must exist on the element.\n\t\t\tif ( method && ( methodIsFunction || methodIsName ) ) {\n\t\t\t\tthis.target = target;\n\t\t\t\tthis.method = method;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a jQuery/Zepto input element is provided, but no method is set,\n\t\t\t// the element can assume it needs to respond to 'change'...\n\t\t\tif ( !method && isInput ) {\n\n\t\t\t\t// Default to .val if this is an input element.\n\t\t\t\tthis.method = 'val';\n\t\t\t\tthis.target = target;\n\n\t\t\t\t// Set the slider to a new value on change.\n\t\t\t\tthis.target.on('change', function( e ){\n\n\t\t\t\t\t// Returns null array.\n\t\t\t\t\tfunction at(a,b,c){\n\t\t\t\t\t\treturn [c?a:b, c?b:a];\n\t\t\t\t\t}\n\n\t\t\t\t\tvar output = at(null, $(e.target).val(), that.N);\n\n\t\t\t\t\tthat.obj.val(output, { 'link': that });\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// ... or not.\n\t\t\tif ( !method && !isInput ) {\n\n\t\t\t\t// Default arbitrarily to 'html'.\n\t\t\t\tthis.method = 'html';\n\t\t\t\tthis.target = target;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthrow new RangeError(\"Link: Invalid Link.\");\n\t}\n\n\t// Provides external items with the slider value.\n\tLink.prototype.write = function ( options, value, handle, slider, update ) {\n\n\t\t// Don't synchronize this Link.\n\t\tif ( this.update && update === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Convert the value to the slider stepping/range.\n\t\tvalue = fromStepping( options, value );\n\n\t\t// Format values for display.\n\t\tvalue = this.format( value );\n\n\t\t// Store the numerical value.\n\t\tthis.saved = value;\n\n\t\t// Branch between serialization to a function or an object.\n\t\tif ( typeof this.method === 'function' ) {\n\t\t\t// When target is undefined, the target was a function.\n\t\t\t// In that case, provided the slider as the calling scope.\n\t\t\t// Use [0] to get the DOM element, not the $ instance.\n\t\t\tthis.method.call( this.target[0] || slider[0], value, handle, slider );\n\t\t} else {\n\t\t\tthis.target[ this.method ]( value, handle, slider );\n\t\t}\n\t};\n\n\t// Parses slider value to user defined display.\n\tLink.prototype.format = function ( a ) {\n\t\treturn this.formatting.to(a);\n\t};\n\n\t// Converts a formatted value back to a real number.\n\tLink.prototype.valueOf = function ( a ) {\n\t\treturn this.formatting.from(a);\n\t};\n\n\n// Input validation\n\n\tfunction testStep ( parsed, entry ) {\n\n\t\tif ( !isNumeric( entry ) ) {\n\t\t\tthrowError(\"'step' is not numeric.\");\n\t\t}\n\n\t\t// The step option can still be used to set stepping\n\t\t// for linear sliders. Overwritten if set in 'range'.\n\t\tparsed.xSteps[0] = entry;\n\t}\n\n\tfunction testRange ( parsed, entry ) {\n\n\t\t// Filter incorrect input.\n\t\tif ( typeof entry !== 'object' || $.isArray(entry) ) {\n\t\t\tthrowError(\"'range' is not an object.\");\n\t\t}\n\n\t\t// Loop all entries.\n\t\t$.each( entry, function ( index, value ) {\n\n\t\t\tvar percentage;\n\n\t\t\t// Wrap numerical input in an array.\n\t\t\tif ( typeof value === \"number\" ) {\n\t\t\t\tvalue = [value];\n\t\t\t}\n\n\t\t\t// Reject any invalid input.\n\t\t\tif ( !$.isArray( value ) ){\n\t\t\t\tthrowError(\"'range' contains invalid value.\");\n\t\t\t}\n\n\t\t\t// Covert min/max syntax to 0 and 100.\n\t\t\tif ( index === 'min' ) {\n\t\t\t\tpercentage = 0;\n\t\t\t} else if ( index === 'max' ) {\n\t\t\t\tpercentage = 100;\n\t\t\t} else {\n\t\t\t\tpercentage = parseFloat( index );\n\t\t\t}\n\n\t\t\t// Check for correct input.\n\t\t\tif ( !isNumeric( percentage ) || !isNumeric( value[0] ) ) {\n\t\t\t\tthrowError(\"'range' value isn't numeric.\");\n\t\t\t}\n\n\t\t\t// Store values.\n\t\t\tparsed.xPct.push( percentage );\n\t\t\tparsed.xVal.push( value[0] );\n\n\t\t\t// NaN will evaluate to false too, but to keep\n\t\t\t// logging clear, set step explicitly. Make sure\n\t\t\t// not to override the 'step' setting with false.\n\t\t\tif ( !percentage ) {\n\t\t\t\tif ( !isNaN( value[1] ) ) {\n\t\t\t\t\tparsed.xSteps[0] = value[1];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tparsed.xSteps.push( isNaN(value[1]) ? false : value[1] );\n\t\t\t}\n\t\t});\n\n\t\t$.each(parsed.xSteps, function(i,n){\n\n\t\t\t// Ignore 'false' stepping.\n\t\t\tif ( !n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Check if step fits. Not required, but this might serve some goal.\n\t\t\t// !((parsed.xVal[i+1] - parsed.xVal[i]) % n);\n\n\t\t\t// Factor to range ratio\n\t\t\tparsed.xSteps[i] = fromPercentage([\n\t\t\t\t parsed.xVal[i]\n\t\t\t\t,parsed.xVal[i+1]\n\t\t\t], n) / subRangeRatio (\n\t\t\t\tparsed.xPct[i],\n\t\t\t\tparsed.xPct[i+1] );\n\t\t});\n\t}\n\n\tfunction testStart ( parsed, entry ) {\n\n\t\tif ( typeof entry === \"number\" ) {\n\t\t\tentry = [entry];\n\t\t}\n\n\t\t// Validate input. Values aren't tested, the internal Link will do\n\t\t// that and provide a valid location.\n\t\tif ( !$.isArray( entry ) || !entry.length || entry.length > 2 ) {\n\t\t\tthrowError(\"'start' option is incorrect.\");\n\t\t}\n\n\t\t// Store the number of handles.\n\t\tparsed.handles = entry.length;\n\n\t\t// When the slider is initialized, the .val method will\n\t\t// be called with the start options.\n\t\tparsed.start = entry;\n\t}\n\n\tfunction testSnap ( parsed, entry ) {\n\n\t\t// Enforce 100% stepping within subranges.\n\t\tparsed.snap = entry;\n\n\t\tif ( typeof entry !== 'boolean' ){\n\t\t\tthrowError(\"'snap' option must be a boolean.\");\n\t\t}\n\t}\n\n\tfunction testConnect ( parsed, entry ) {\n\n\t\tif ( entry === 'lower' && parsed.handles === 1 ) {\n\t\t\tparsed.connect = 1;\n\t\t} else if ( entry === 'upper' && parsed.handles === 1 ) {\n\t\t\tparsed.connect = 2;\n\t\t} else if ( entry === true && parsed.handles === 2 ) {\n\t\t\tparsed.connect = 3;\n\t\t} else if ( entry === false ) {\n\t\t\tparsed.connect = 0;\n\t\t} else {\n\t\t\tthrowError(\"'connect' option was doesn't match handle count.\");\n\t\t}\n\t}\n\n\tfunction testOrientation ( parsed, entry ) {\n\n\t\t// Set orientation to an a numerical value for easy\n\t\t// array selection.\n\t\tswitch ( entry ){\n\t\t case 'horizontal':\n\t\t\tparsed.ort = 0;\n\t\t\tbreak;\n\t\t case 'vertical':\n\t\t\tparsed.ort = 1;\n\t\t\tbreak;\n\t\t default:\n\t\t\tthrowError(\"'orientation' option is invalid.\");\n\t\t}\n\t}\n\n\tfunction testMargin ( parsed, entry ) {\n\n\t\tif ( parsed.xPct.length > 2 ) {\n\t\t\tthrowError(\"'margin' option is only supported on linear sliders.\");\n\t\t}\n\n\t\t// Parse value to range and store. As xVal is checked\n\t\t// to be no bigger than 2, use it as range.\n\t\tparsed.margin = fromPercentage(parsed.xVal, entry);\n\n\t\tif ( !isNumeric(entry) ){\n\t\t\tthrowError(\"'margin' option must be numeric.\");\n\t\t}\n\t}\n\n\tfunction testDirection ( parsed, entry ) {\n\n\t\t// Set direction as a numerical value for easy parsing.\n\t\t// Invert connection for RTL sliders, so that the proper\n\t\t// handles get the connect/background classes.\n\t\tswitch ( entry ) {\n\t\t case 'ltr':\n\t\t\tparsed.dir = 0;\n\t\t\tbreak;\n\t\t case 'rtl':\n\t\t\tparsed.dir = 1;\n\t\t\tparsed.connect = [0,2,1,3][parsed.connect];\n\t\t\tbreak;\n\t\t default:\n\t\t\tthrowError(\"'direction' option was not recognized.\");\n\t\t}\n\t}\n\n\tfunction testBehaviour ( parsed, entry ) {\n\n\t\t// Make sure the input is a string.\n\t\tif ( typeof entry !== 'string' ) {\n\t\t\tthrowError(\"'behaviour' must be a string containing options.\");\n\t\t}\n\n\t\t// Check if the string contains any keywords.\n\t\t// None are required.\n\t\tvar tap = entry.indexOf('tap') >= 0,\n\t\t\textend = entry.indexOf('extend') >= 0,\n\t\t\tdrag = entry.indexOf('drag') >= 0,\n\t\t\tfixed = entry.indexOf('fixed') >= 0,\n\t\t\tsnap = entry.indexOf('snap') >= 0;\n\n\t\tparsed.events = {\n\t\t\ttap: tap || snap,\n\t\t\textend: extend,\n\t\t\tdrag: drag,\n\t\t\tfixed: fixed,\n\t\t\tsnap: snap\n\t\t};\n\t}\n\n\tfunction testSerialization ( parsed, entry, sliders ) {\n\n\t\tparsed.ser = [ entry['lower'], entry['upper'] ];\n\t\tparsed.formatting = new Format( entry['format'] );\n\n\t\t$.each( parsed.ser, function( i, a ){\n\n\t\t\t// Check if the provided option is an array.\n\t\t\tif ( !$.isArray(a) ) {\n\t\t\t\tthrowError(\"'serialization.\"+(!i?'lower':'upper')+\"' must be an array.\");\n\t\t\t}\n\n\t\t\t$.each(a, function(){\n\n\t\t\t\t// Check if entry is a Link.\n\t\t\t\tif ( !(this instanceof Link) ) {\n\t\t\t\t\tthrowError(\"'serialization.\"+(!i?'lower':'upper')+\"' can only contain Link instances.\");\n\t\t\t\t}\n\n\t\t\t\t// Assign other properties.\n\t\t\t\tthis.N = i;\n\t\t\t\tthis.obj = sliders;\n\t\t\t\tthis.scope = this.scope || sliders;\n\n\t\t\t\t// Run internal validator.\n\t\t\t\tthis.formatting = new Format($.extend({}\n\t\t\t\t\t,entry['format']\n\t\t\t\t\t,this.formatting\n\t\t\t\t));\n\t\t\t});\n\t\t});\n\n\t\t// If the slider has two handles and is RTL,\n\t\t// reverse the serialization input. For one handle,\n\t\t// lower is still lower.\n\t\tif ( parsed.dir && parsed.handles > 1 ) {\n\t\t\tparsed.ser.reverse();\n\t\t}\n\t}\n\n\t// Test all developer settings and parse to assumption-safe values.\n\tfunction test ( options, sliders ){\n\n\t/*\tEvery input option is tested and parsed. This'll prevent\n\t\tendless validation in internal methods. These tests are\n\t\tstructured with an item for every option available. An\n\t\toption can be marked as required by setting the 'r' flag.\n\t\tThe testing function is provided with three arguments:\n\t\t\t- The provided value for the option;\n\t\t\t- A reference to the options object;\n\t\t\t- The name for the option;\n\n\t\tThe testing function returns false when an error is detected,\n\t\tor true when everything is OK. It can also modify the option\n\t\tobject, to make sure all values can be correctly looped elsewhere. */\n\n\t\tvar parsed = {\n\t\t\t xPct: []\n\t\t\t,xVal: []\n\t\t\t,xSteps: [ false ]\n\t\t\t,margin: 0\n\t\t}, tests;\n\n\t\ttests = {\n\t\t\t'step': { r: false, t: testStep },\n\t\t\t'range': { r: true, t: testRange },\n\t\t\t'start': { r: true, t: testStart },\n\t\t\t'snap': { r: false, t: testSnap },\n\t\t\t'connect': { r: true, t: testConnect },\n\t\t\t'orientation': { r: false, t: testOrientation },\n\t\t\t'margin': { r: false, t: testMargin },\n\t\t\t'direction': { r: true, t: testDirection },\n\t\t\t'behaviour': { r: true, t: testBehaviour },\n\t\t\t'serialization': { r: true, t: testSerialization }\n\t\t};\n\n\t\t// Set defaults where applicable.\n\t\toptions = $.extend({\n\t\t\t 'connect': false\n\t\t\t,'direction': 'ltr'\n\t\t\t,'behaviour': 'tap'\n\t\t\t,'orientation': 'horizontal'\n\t\t}, options);\n\n\t\t// Make sure the test for serialization runs.\n\t\toptions['serialization'] = $.extend({\n\t\t\t 'lower': []\n\t\t\t,'upper': []\n\t\t\t,'format': {}\n\t\t}, options['serialization']);\n\n\t\t// Run all options through a testing mechanism to ensure correct\n\t\t// input. It should be noted that options might get modified to\n\t\t// be handled properly. E.g. wrapping integers in arrays.\n\t\t$.each( tests, function( name, test ){\n\n\t\t\tif ( options[name] === undefined ) {\n\t\t\t\tif ( test.r ) {\n\t\t\t\t\tthrowError(\"'\" + name + \"' is required.\");\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttest.t( parsed, options[name], sliders );\n\t\t});\n\n\t\t// Pre-define the styles.\n\t\tparsed.style = parsed.ort ? 'top' : 'left';\n\n\t\treturn parsed;\n\t}\n\n\n// DOM additions\n\n\t// Append a handle to the base.\n\tfunction addHandle ( options, index ) {\n\n\t\tvar handle = $('<div><div/></div>').addClass( Classes[2] ),\n\t\t\tadditions = [ '-lower', '-upper' ];\n\n\t\tif ( options.dir ) {\n\t\t\tadditions.reverse();\n\t\t}\n\n\t\thandle.children().addClass(\n\t\t\tClasses[3] + \" \" + Classes[3]+additions[index]\n\t\t);\n\n\t\treturn handle;\n\t}\n\n\t// Create a copy of an element-creating Link.\n\tfunction addElement ( handle, link ) {\n\n\t\t// If the Link requires creation of a new element,\n\t\t// create this element and return a new Link instance.\n\t\tif ( link.el ) {\n\t\t\tlink = new Link({\n\t\t\t\t'target': $(link.el).clone().appendTo( handle ),\n\t\t\t\t'method': link.method,\n\t\t\t\t'format': link.formatting\n\t\t\t}, true);\n\t\t}\n\n\t\t// Otherwise, return the reference.\n\t\treturn link;\n\t}\n\n\t// Loop all links for a handle.\n\tfunction addElements ( elements, handle, formatting ) {\n\n\t\tvar index, list = [];\n\n\t\t// Use the Link interface to provide unified\n\t\t// formatting for the .val() method.\n\t\tlist.push(\n\t\t\tnew Link({\n\t\t\t\t'format': formatting\n\t\t\t}, true)\n\t\t);\n\n\t\t// Loop all links in either 'lower' or 'upper'.\n\t\tfor ( index = 0; index < elements.length; index++ ) {\n\t\t\tlist.push(addElement(handle, elements[index]));\n\t\t}\n\n\t\treturn list;\n\t}\n\n\t// Go over all Links and assign them to a handle.\n\tfunction addLinks ( options, handles ) {\n\n\t\tvar index, links = [];\n\n\t\t// Copy the links into a new array, instead of modifying\n\t\t// the 'options.ser' list. This allows replacement of the invalid\n\t\t// '.el' Links, while the others are still passed by reference.\n\t\tfor ( index = 0; index < options.handles; index++ ) {\n\n\t\t\t// Append a new array.\n\t\t\tlinks[index] = addElements(\n\t\t\t\toptions.ser[index],\n\t\t\t\thandles[index].children(),\n\t\t\t\toptions.formatting\n\t\t\t);\n\t\t}\n\n\t\treturn links;\n\t}\n\n\t// Add the proper connection classes.\n\tfunction addConnection ( connect, target, handles ) {\n\n\t\t// Apply the required connection classes to the elements\n\t\t// that need them. Some classes are made up for several\n\t\t// segments listed in the class list, to allow easy\n\t\t// renaming and provide a minor compression benefit.\n\t\tswitch ( connect ) {\n\t\t\tcase 1:\ttarget.addClass( Classes[7] );\n\t\t\t\t\thandles[0].addClass( Classes[6] );\n\t\t\t\t\tbreak;\n\t\t\tcase 3: handles[1].addClass( Classes[6] );\n\t\t\t\t\t/* falls through */\n\t\t\tcase 2: handles[0].addClass( Classes[7] );\n\t\t\t\t\t/* falls through */\n\t\t\tcase 0: target.addClass(Classes[6]);\n\t\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Add handles and loop Link elements.\n\tfunction addHandles ( options, base ) {\n\n\t\tvar index, handles = [];\n\n\t\t// Append handles.\n\t\tfor ( index = 0; index < options.handles; index++ ) {\n\n\t\t\t// Keep a list of all added handles.\n\t\t\thandles.push( addHandle( options, index ).appendTo(base) );\n\t\t}\n\n\t\treturn handles;\n\t}\n\n\t// Initialize a single slider.\n\tfunction addSlider ( options, target ) {\n\n\t\t// Apply classes and data to the target.\n\t\ttarget.addClass([\n\t\t\tClasses[0],\n\t\t\tClasses[8 + options.dir],\n\t\t\tClasses[4 + options.ort]\n\t\t].join(' '));\n\n\t\treturn $('<div/>').appendTo(target).addClass( Classes[1] );\n\t}\n\n\n// Slider scope\n\nfunction closure ( target, options, originalOptions ){\n\n// Internal variables\n\n\t// All variables local to 'closure' are marked $.\n\tvar $Target = $(target),\n\t\t$Locations = [-1, -1],\n\t\t$Base,\n\t\t$Serialization,\n\t\t$Handles;\n\n\t// Shorthand for base dimensions.\n\tfunction baseSize ( ) {\n\t\treturn $Base[['width', 'height'][options.ort]]();\n\t}\n\n\n// External event handling\n\n\tfunction fireEvents ( events ) {\n\n\t\t// Use the external api to get the values.\n\t\t// Wrap the values in an array, as .trigger takes\n\t\t// only one additional argument.\n\t\tvar index, values = [ $Target.val() ];\n\n\t\tfor ( index = 0; index < events.length; index++ ){\n\t\t\t$Target.trigger(events[index], values);\n\t\t}\n\t}\n\n\n// Handle placement\n\n\t// Test suggested values and apply margin, step.\n\tfunction setHandle ( handle, to, delimit ) {\n\n\t\tvar n = handle[0] !== $Handles[0][0] ? 1 : 0,\n\t\t\tlower = $Locations[0] + options.margin,\n\t\t\tupper = $Locations[1] - options.margin;\n\n\t\t// Don't delimit range dragging.\n\t\tif ( delimit && $Handles.length > 1 ) {\n\t\t\tto = n ? Math.max( to, lower ) : Math.min( to, upper );\n\t\t}\n\n\t\t// Handle the step option.\n\t\tif ( to < 100 ){\n\t\t\tto = getStep(options, to);\n\t\t}\n\n\t\t// Limit to 0/100 for .val input, trim anything beyond 7 digits, as\n\t\t// JavaScript has some issues in its floating point implementation.\n\t\tto = limit(parseFloat(to.toFixed(7)));\n\n\t\t// Return falsy if handle can't move. False for 0 or 100 limit,\n\t\t// '0' for limiting by another handle.\n\t\tif ( to === $Locations[n] ) {\n\t\t\tif ( $Handles.length === 1 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn ( to === lower || to === upper ) ? 0 : false;\n\t\t}\n\n\t\t// Set the handle to the new position.\n\t\thandle.css( options.style, to + '%' );\n\n\t\t// Force proper handle stacking\n\t\tif ( handle.is(':first-child') ) {\n\t\t\thandle.toggleClass(Classes[17], to > 50 );\n\t\t}\n\n\t\t// Update locations.\n\t\t$Locations[n] = to;\n\n\t\t// Invert the value if this is a right-to-left slider.\n\t\tif ( options.dir ) {\n\t\t\tto = 100 - to;\n\t\t}\n\n\t\t// Write values to serialization Links.\n\t\t// Convert the value to the correct relative representation.\n\t\t$($Serialization[n]).each(function(){\n\t\t\tthis.write( options, to, handle.children(), $Target );\n\t\t});\n\n\t\treturn true;\n\t}\n\n\t// Delimit proposed values for handle positions.\n\tfunction getPositions ( a, b, delimit ) {\n\n\t\t// Add movement to current position.\n\t\tvar c = a + b[0], d = a + b[1];\n\n\t\t// Only alter the other position on drag,\n\t\t// not on standard sliding.\n\t\tif ( delimit ) {\n\t\t\tif ( c < 0 ) {\n\t\t\t\td += Math.abs(c);\n\t\t\t}\n\t\t\tif ( d > 100 ) {\n\t\t\t\tc -= ( d - 100 );\n\t\t\t}\n\n\t\t\t// Limit values to 0 and 100.\n\t\t\treturn [limit(c), limit(d)];\n\t\t}\n\n\t\treturn [c,d];\n\t}\n\n\t// Handles movement by tapping.\n\tfunction jump ( handle, to, instant ) {\n\n\t\tif ( !instant ) {\n\t\t\t// Flag the slider as it is now in a transitional state.\n\t\t\t// Transition takes 300 ms, so re-enable the slider afterwards.\n\t\t\taddClassFor( $Target, Classes[14], 300 );\n\t\t}\n\n\t\t// Move the handle to the new position.\n\t\tsetHandle( handle, to, false );\n\n\t\tfireEvents(['slide', 'set', 'change']);\n\t}\n\n\n// Events\n\n\t// Handler for attaching events trough a proxy.\n\tfunction attach ( events, element, callback, data ) {\n\n\t\t// Add the noUiSlider namespace to all events.\n\t\tevents = events.replace( /\\s/g, namespace + ' ' ) + namespace;\n\n\t\t// Bind a closure on the target.\n\t\treturn element.on( events, function( e ){\n\n\t\t\t// jQuery and Zepto handle unset attributes differently.\n\t\t\tvar disabled = $Target.attr('disabled');\n\t\t\t\tdisabled = !( disabled === undefined || disabled === null );\n\n\t\t\t// Test if there is anything that should prevent an event\n\t\t\t// from being handled, such as a disabled state or an active\n\t\t\t// 'tap' transition.\n\t\t\tif( $Target.hasClass( Classes[14] ) || disabled ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\te = fixEvent(e);\n\t\t\te.calcPoint = e.points[ options.ort ];\n\n\t\t\t// Call the event handler with the event [ and additional data ].\n\t\t\tcallback ( e, data );\n\t\t});\n\t}\n\n\t// Handle movement on document for handle and range drag.\n\tfunction move ( event, data ) {\n\n\t\tvar handles = data.handles || $Handles, positions, state = false,\n\t\t\tproposal = ((event.calcPoint - data.start) * 100) / baseSize(),\n\t\t\th = handles[0][0] !== $Handles[0][0] ? 1 : 0;\n\n\t\t// Calculate relative positions for the handles.\n\t\tpositions = getPositions( proposal, data.positions, handles.length > 1);\n\n\t\tstate = setHandle ( handles[0], positions[h], handles.length === 1 );\n\n\t\tif ( handles.length > 1 ) {\n\t\t\tstate = setHandle ( handles[1], positions[h?0:1], false ) || state;\n\t\t}\n\n\t\t// Fire the 'slide' event if any handle moved.\n\t\tif ( state ) {\n\t\t\tfireEvents(['slide']);\n\t\t}\n\t}\n\n\t// Unbind move events on document, call callbacks.\n\tfunction end ( event ) {\n\n\t\t// The handle is no longer active, so remove the class.\n\t\t$('.' + Classes[15]).removeClass(Classes[15]);\n\n\t\t// Remove cursor styles and text-selection events bound to the body.\n\t\tif ( event.cursor ) {\n\t\t\t$('body').css('cursor', '').off( namespace );\n\t\t}\n\n\t\t// Unbind the move and end events, which are added on 'start'.\n\t\tdoc.off( namespace );\n\n\t\t// Remove dragging class.\n\t\t$Target.removeClass(Classes[12]);\n\n\t\t// Fire the change and set events.\n\t\tfireEvents(['set', 'change']);\n\t}\n\n\t// Bind move events on document.\n\tfunction start ( event, data ) {\n\n\t\t// Mark the handle as 'active' so it can be styled.\n\t\tif( data.handles.length === 1 ) {\n\t\t\tdata.handles[0].children().addClass(Classes[15]);\n\t\t}\n\n\t\t// A drag should never propagate up to the 'tap' event.\n\t\tevent.stopPropagation();\n\n\t\t// Attach the move event.\n\t\tattach ( actions.move, doc, move, {\n\t\t\tstart: event.calcPoint,\n\t\t\thandles: data.handles,\n\t\t\tpositions: [\n\t\t\t\t$Locations[0],\n\t\t\t\t$Locations[$Handles.length - 1]\n\t\t\t]\n\t\t});\n\n\t\t// Unbind all movement when the drag ends.\n\t\tattach ( actions.end, doc, end, null );\n\n\t\t// Text selection isn't an issue on touch devices,\n\t\t// so adding cursor styles can be skipped.\n\t\tif ( event.cursor ) {\n\n\t\t\t// Prevent the 'I' cursor and extend the range-drag cursor.\n\t\t\t$('body').css('cursor', $(event.target).css('cursor'));\n\n\t\t\t// Mark the target with a dragging state.\n\t\t\tif ( $Handles.length > 1 ) {\n\t\t\t\t$Target.addClass(Classes[12]);\n\t\t\t}\n\n\t\t\t// Prevent text selection when dragging the handles.\n\t\t\t$('body').on('selectstart' + namespace, false);\n\t\t}\n\t}\n\n\t// Move closest handle to tapped location.\n\tfunction tap ( event ) {\n\n\t\tvar location = event.calcPoint, total = 0, to;\n\n\t\t// The tap event shouldn't propagate up and cause 'edge' to run.\n\t\tevent.stopPropagation();\n\n\t\t// Add up the handle offsets.\n\t\t$.each( $Handles, function(){\n\t\t\ttotal += this.offset()[ options.style ];\n\t\t});\n\n\t\t// Find the handle closest to the tapped position.\n\t\ttotal = ( location < total/2 || $Handles.length === 1 ) ? 0 : 1;\n\n\t\tlocation -= $Base.offset()[ options.style ];\n\n\t\t// Calculate the new position.\n\t\tto = ( location * 100 ) / baseSize();\n\n\t\t// Find the closest handle and calculate the tapped point.\n\t\t// The set handle to the new position.\n\t\tjump( $Handles[total], to, options.events.snap );\n\n\t\tif ( options.events.snap ) {\n\t\t\tstart(event, { handles: [$Handles[total]] });\n\t\t}\n\t}\n\n\t// Move handle to edges when target gets tapped.\n\tfunction edge ( event ) {\n\n\t\tvar i = event.calcPoint < $Base.offset()[ options.style ],\n\t\t\tto = i ? 0 : 100;\n\n\t\ti = i ? 0 : $Handles.length - 1;\n\n\t\tjump( $Handles[i], to, false );\n\t}\n\n\t// Attach events to several slider parts.\n\tfunction events ( behaviour ) {\n\n\t\tvar i, drag;\n\n\t\t// Attach the standard drag event to the handles.\n\t\tif ( !behaviour.fixed ) {\n\n\t\t\tfor ( i = 0; i < $Handles.length; i++ ) {\n\n\t\t\t\t// These events are only bound to the visual handle\n\t\t\t\t// element, not the 'real' origin element.\n\t\t\t\tattach ( actions.start, $Handles[i].children(), start, {\n\t\t\t\t\thandles: [ $Handles[i] ]\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Attach the tap event to the slider base.\n\t\tif ( behaviour.tap ) {\n\t\t\tattach ( actions.start, $Base, tap, {\n\t\t\t\thandles: $Handles\n\t\t\t});\n\t\t}\n\n\t\t// Extend tapping behaviour to target\n\t\tif ( behaviour.extend ) {\n\n\t\t\t$Target.addClass( Classes[16] );\n\n\t\t\tif ( behaviour.tap ) {\n\t\t\t\tattach ( actions.start, $Target, edge, {\n\t\t\t\t\thandles: $Handles\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Make the range dragable.\n\t\tif ( behaviour.drag ){\n\n\t\t\tdrag = $Base.find( '.' + Classes[7] ).addClass( Classes[10] );\n\n\t\t\t// When the range is fixed, the entire range can\n\t\t\t// be dragged by the handles. The handle in the first\n\t\t\t// origin will propagate the start event upward,\n\t\t\t// but it needs to be bound manually on the other.\n\t\t\tif ( behaviour.fixed ) {\n\t\t\t\tdrag = drag.add($Base.children().not( drag ).children());\n\t\t\t}\n\n\t\t\tattach ( actions.start, drag, start, {\n\t\t\t\thandles: $Handles\n\t\t\t});\n\t\t}\n\t}\n\n\n// Initialize slider\n\n\t// Throw an error if the slider was already initialized.\n\tif ( !$Target.is(':empty') ) {\n\t\tthrow new Error('Slider was already initialized.');\n\t}\n\n\t// Create the base element, initialise HTML and set classes.\n\t// Add handles and links.\n\t$Base = addSlider( options, $Target );\n\t$Handles = addHandles( options, $Base );\n\t$Serialization = addLinks( options, $Handles );\n\n\t// Set the connect classes.\n\taddConnection ( options.connect, $Target, $Handles );\n\n\t// Attach user events.\n\tevents( options.events );\n\n\n// Methods\n\n\t// Set the slider value.\n\ttarget.vSet = function ( values, callback, link, update, animate ){\n\n\t\tvar i, to;\n\n\t\t// The RTL settings is implemented by reversing the front-end,\n\t\t// internal mechanisms are the same.\n\t\tif ( options.dir && options.handles > 1 ) {\n\t\t\tvalues.reverse();\n\t\t}\n\n\t\t// Animation is optional.\n\t\tif ( animate ) {\n\t\t\taddClassFor( $Target, Classes[14], 300 );\n\t\t}\n\n\t\t// If there are multiple handles to be set run the setting\n\t\t// mechanism twice for the first handle, to make sure it\n\t\t// can be bounced of the second one properly.\n\t\tfor ( i = 0; i < ( $Handles.length > 1 ? 3 : 1 ); i++ ) {\n\n\t\t\tto = link || $Serialization[i%2][0];\n\t\t\tto = to.valueOf( values[i%2] );\n\n\t\t\tif ( to === false ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Calculate the new handle position\n\t\t\tto = toStepping( options, to );\n\n\t\t\t// Invert the value if this is a right-to-left slider.\n\t\t\tif ( options.dir ) {\n\t\t\t\tto = 100 - to;\n\t\t\t}\n\n\t\t\t// Force delimitation.\n\t\t\tif ( setHandle( $Handles[i%2], to, true ) === true ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Reset the input if it doesn't match the slider.\n\t\t\t$($Serialization[i%2]).each(function(){\n\t\t\t\tthis.write(\n\t\t\t\t\toptions,\n\t\t\t\t\t$Locations[i%2],\n\t\t\t\t\t$Handles[i%2].children(),\n\t\t\t\t\t$Target,\n\t\t\t\t\tupdate\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\t// Optionally fire the 'set' event.\n\t\tif( callback === true ) {\n\t\t\tfireEvents(['set']);\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t// Get the slider value.\n\ttarget.vGet = function ( ){\n\n\t\tvar i, retour = [];\n\n\t\t// Get the value from all handles.\n\t\tfor ( i = 0; i < options.handles; i++ ){\n\t\t\tretour[i] = $Serialization[i][0].saved;\n\t\t}\n\n\t\t// If only one handle is used, return a single value.\n\t\tif ( retour.length === 1 ){\n\t\t\treturn retour[0];\n\t\t}\n\n\t\tif ( options.dir && options.handles > 1 ) {\n\t\t\treturn retour.reverse();\n\t\t}\n\n\t\treturn retour;\n\t};\n\n\t// Destroy the slider and unbind all events.\n\ttarget.destroy = function ( ){\n\n\t\t// Loop all linked serialization objects and unbind all\n\t\t// events in the noUiSlider namespace.\n\t\t$.each($Serialization, function(){\n\t\t\t$.each(this, function(){\n\t\t\t\t// Won't remove 'change' when bound implicitly.\n\t\t\t\tif ( this.target ) {\n\t\t\t\t\tthis.target.off( namespace );\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t// Unbind events on the slider, remove all classes and child elements.\n\t\t$(this).off(namespace)\n\t\t\t.removeClass(Classes.join(' '))\n\t\t\t.empty();\n\n\t\t// Return the original options from the closure.\n\t\treturn originalOptions;\n\t};\n\n\n// Value setting\n\n\t// Use the public value method to set the start values.\n\t$Target.val( options.start );\n}\n\n\n// Access points\n\n\t// Run the standard initializer\n\tfunction initialize ( originalOptions ) {\n\t\t// Throw error if group is empty.\n if (!this.length) {\n return;\n\t\t\tthrowError(\"Can't initialize slider on empty selection.\");\n\t\t}\n\n\t\t// Test the options once, not for every slider.\n\t\tvar options = test( originalOptions, this );\n\n\t\t// Loop all items, and provide a new closed-scope environment.\n\t\treturn this.each(function(){\n\t\t\tclosure(this, options, originalOptions);\n\t\t});\n\t}\n\n\t// Destroy the slider, then re-enter initialization.\n\tfunction rebuild ( options ) {\n\n\t\treturn this.each(function(){\n\n\t\t\t// Get the current values from the slider,\n\t\t\t// including the initialization options.\n\t\t\tvar values = $(this).val(),\n\t\t\t\toriginalOptions = this.destroy(),\n\n\t\t\t\t// Extend the previous options with the newly provided ones.\n\t\t\t\tnewOptions = $.extend( {}, originalOptions, options );\n\n\t\t\t// Run the standard initializer.\n\t\t\t$(this).noUiSlider( newOptions );\n\n\t\t\t// If the start option hasn't changed,\n\t\t\t// reset the previous values.\n\t\t\tif ( originalOptions.start === newOptions.start ) {\n\t\t\t\t$(this).val(values);\n\t\t\t}\n\t\t});\n\t}\n\n\n\t// Expose serialization constructor.\n\t/** @expose */\n\t$.noUiSlider = { 'Link': Link };\n\n\t// Extend jQuery/Zepto with the noUiSlider method.\n\t/** @expose */\n\t$.fn.noUiSlider = function ( options, re ) {\n\t\treturn ( re ? rebuild : initialize ).call(this, options);\n\t};\n\n\t$.fn.val = function ( ) {\n\n\t\t// Convert the function arguments to an array.\n\t\tvar args = Array.prototype.slice.call( arguments, 0 ),\n\t\t\tset, link, update, animate;\n\n\t\t// Test if there are arguments, and if not, call the 'get' method.\n\t\tif ( !args.length ) {\n\n\t\t\t// Determine whether to use the native val method.\n\t\t\tif ( this.hasClass(Classes[0]) ) {\n\t\t\t\treturn this[0].vGet();\n\t\t\t}\n\n\t\t\treturn $val.apply( this );\n\t\t}\n\n\t\t// Extract modifiers for value method.\n\t\tif ( typeof args[1] === 'object' ) {\n\t\t\tset = args[1]['set'];\n\t\t\tlink = args[1]['link'];\n\t\t\tupdate = args[1]['update'];\n\t\t\tanimate = args[1]['animate'];\n\n\t\t// Support the 'true' option.\n\t\t} else if ( args[1] === true ) {\n\t\t\tset = true;\n\t\t}\n\n\t\t// Loop all individual items, and handle setting appropriately.\n\t\treturn this.each(function(){\n\n\t\t\tif ( $(this).hasClass(Classes[0]) ) {\n\t\t\t\tthis.vSet( asArray(args[0]), set, link, update, animate );\n\t\t\t} else {\n\t\t\t\t$val.apply( $(this), args );\n\t\t\t}\n\t\t});\n\t};\n\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('ui/mediaplayer',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'async',\n 'urlParser',\n 'core/eventifier',\n 'core/mimetype',\n 'tpl!ui/mediaplayer/tpl/player',\n 'css!ui/mediaplayer/css/player',\n 'nouislider'\n], function ($, _, __, async, UrlParser, eventifier, mimetype, playerTpl) {\n 'use strict';\n\n /**\n * Enable the debug mode\n * @type {boolean}\n * @private\n */\n var _debugMode = false;\n\n /**\n * CSS namespace\n * @type {String}\n * @private\n */\n var _ns = '.mediaplayer';\n\n /**\n * A Regex to extract ID from Youtube URLs\n * @type {RegExp}\n * @private\n */\n var _reYoutube = /([?&\\/]v[=\\/])([\\w-]+)([&\\/]?)/;\n\n /**\n * A Regex to detect Apple mobile browsers\n * @type {RegExp}\n * @private\n */\n var _reAppleMobiles = /ip(hone|od)/i;\n\n /**\n * A Regex to detect Apple device browsers\n * @type {RegExp}\n * @private\n */\n var _reAppleDevices = /ip(hone|od|ad)/i;\n\n /**\n * Array slice method needed to slice arguments\n * @type {Function}\n * @private\n */\n var _slice = [].slice;\n\n /**\n * Minimum value of the volume\n * @type {Number}\n * @private\n */\n var _volumeMin = 0;\n\n /**\n * Maximum value of the volume\n * @type {Number}\n * @private\n */\n var _volumeMax = 100;\n\n /**\n * Range value of the volume\n * @type {Number}\n * @private\n */\n var _volumeRange = _volumeMax - _volumeMin;\n\n /**\n * Some default values\n * @type {Object}\n * @private\n */\n var _defaults = {\n type : 'video/mp4',\n video : {\n width : 480,\n height : 270,\n minWidth: 200,\n minHeight: 200\n },\n audio : {\n width : 400,\n height : 30,\n minWidth: 200,\n minHeight: 36\n },\n options : {\n volume : Math.floor(_volumeRange * .8),\n startMuted : false,\n maxPlays : 0,\n canPause : true,\n loop : false,\n autoStart : false\n }\n };\n\n /**\n * A list of MIME types with codec declaration\n * @type {Object}\n * @private\n */\n var _mimeTypes = {\n // video\n 'video/webm': 'video/webm; codecs=\"vp8, vorbis\"',\n 'video/mp4': 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"',\n 'video/ogg': 'video/ogg; codecs=\"theora, vorbis\"',\n // audio\n 'audio/mpeg': 'audio/mpeg;',\n 'audio/mp4': 'audio/mp4; codecs=\"mp4a.40.5\"',\n 'audio/ogg': 'audio/ogg; codecs=\"vorbis\"',\n 'audio/wav': 'audio/wav; codecs=\"1\"'\n };\n\n /**\n * Extracts the ID of a Youtube video from an URL\n * @param {String} url\n * @returns {String}\n * @private\n */\n var _extractYoutubeId = function(url) {\n var res = _reYoutube.exec(url);\n return res && res[2] || url;\n };\n\n /**\n * Ensures a value is a number\n * @param {Number|String} value\n * @returns {Number}\n * @private\n */\n var _ensureNumber = function(value) {\n value = parseFloat(value);\n return isFinite(value) ? value : 0;\n };\n\n /**\n * Format a number to string with leading zeros\n * @param {Number} n\n * @param {Number} len\n * @returns {String}\n * @private\n */\n var _leadingZero = function(n, len) {\n var value = n.toString();\n while (value.length < len) {\n value = '0' + value;\n }\n return value;\n };\n\n /**\n * Formats a time value to string\n * @param {Number} time\n * @returns {String}\n * @private\n */\n var _timerFormat = function(time) {\n var seconds = Math.floor(time % 60);\n var minutes = Math.floor(time / 60) % 60;\n var hours = Math.floor(time / 3600);\n var parts = [];\n\n if (hours) {\n parts.push(hours);\n }\n parts.push(_leadingZero(minutes, 2));\n parts.push(_leadingZero(seconds, 2));\n\n return parts.join(':');\n };\n\n /**\n * Checks if a type needs to be adjusted\n * @param {String} type\n * @returns {Boolean}\n * @private\n */\n var _needTypeAdjust = function(type) {\n return 'string' === typeof type && type.indexOf('application') === 0;\n };\n\n /**\n * Adjust bad type by apllying heuristic on URI\n * @param {Object|String} source\n * @returns {String}\n * @private\n */\n var _getAdjustedType = function(source) {\n var type = 'video/ogg';\n var url = source && source.src || source;\n var ext = url && url.substr(-4);\n if (ext === '.ogg' || ext === '.oga') {\n type = 'audio/ogg';\n }\n return type;\n };\n\n /**\n * Extract a list of media sources from a config object\n * @param {Object} config\n * @returns {Array}\n * @private\n */\n var _configToSources = function(config) {\n var sources = config.sources || [];\n var url = config.url;\n\n if (!_.isArray(sources)) {\n sources = [sources];\n }\n\n if (url) {\n if (!_.isArray(config.url)) {\n url = [url];\n }\n sources = sources.concat(url);\n }\n\n return sources;\n };\n\n /**\n * Checks if the browser can play media\n * @param {HTMLMediaElement} media The media element on which check support\n * @param {String} [mimeType] An optional MIME type to precise the support\n * @returns {Boolean}\n * @private\n */\n var _checkSupport = function(media, mimeType) {\n var support = !!media.canPlayType;\n if (mimeType && support) {\n support = !!media.canPlayType(_mimeTypes[mimeType] || mimeType).replace(/no/, '');\n }\n return support;\n };\n\n /**\n * Support dection\n * @type {Object}\n * @private\n */\n var _support = {\n /**\n * Checks if the browser can play video and audio\n * @param {String} [type] The type of media (audio or video)\n * @param {String} [mime] A media MIME type to check\n * @returns {Boolean}\n */\n canPlay: function canPlay(type, mime) {\n if (type) {\n switch (type.toLowerCase()) {\n case 'audio': return this.canPlayAudio(mime);\n case 'youtube':\n case 'video': return this.canPlayVideo(mime);\n default: return false;\n }\n }\n return this.canPlayAudio() && this.canPlayVideo();\n },\n\n /**\n * Checks if the browser can play audio\n * @param {String} [mime] A media MIME type to check\n * @returns {Boolean}\n */\n canPlayAudio: function canPlayAudio(mime) {\n if (!this._mediaAudio) {\n this._mediaAudio = document.createElement('audio');\n }\n\n return _checkSupport(this._mediaAudio, mime);\n },\n\n /**\n * Checks if the browser can play video\n * @param {String} [mime] A media MIME type to check\n * @returns {Boolean}\n */\n canPlayVideo: function canPlayVideo(mime) {\n if (!this._mediaVideo) {\n this._mediaVideo = document.createElement('video');\n }\n\n return _checkSupport(this._mediaVideo, mime);\n },\n\n /**\n * Checks if the browser allows to control the media playback\n * @returns {Boolean}\n */\n canControl: function canControl() {\n return !_reAppleMobiles.test(navigator.userAgent);\n }\n };\n\n /**\n * A local manager for Youtube players.\n * Relies on https://developers.google.com/youtube/iframe_api_reference\n * @type {Object}\n * @private\n */\n var _youtubeManager = {\n /**\n * The Youtube API injection state\n * @type {Boolean}\n */\n injected : false,\n\n /**\n * The Youtube API ready state\n * @type {Boolean}\n */\n ready : false,\n\n /**\n * A list of pending players\n * @type {Array}\n */\n pending : [],\n\n /**\n * Add a Youtube player\n * @param {String|jQuery|HTMLElement} elem\n * @param {Object} player\n * @param {Object} [options]\n * @param {Boolean} [options.controls]\n */\n add : function add(elem, player, options) {\n if (this.ready) {\n this.create(elem, player, options);\n } else {\n this.pending.push([elem, player, options]);\n\n if (!this.injected) {\n this.injectApi();\n }\n }\n },\n\n /**\n * Removes a pending Youtube player\n * @param {String|jQuery|HTMLElement} elem\n * @param {Object} player\n */\n remove : function remove(elem, player) {\n var pending = this.pending;\n _.forEach(pending, function(args, idx) {\n if (args && elem === args[0] && player === args[1]) {\n pending[idx] = null;\n }\n });\n },\n\n /**\n * Install a Youtube player. The Youtube API must be ready\n * @param {String|jQuery|HTMLElement} elem\n * @param {Object} player\n * @param {Object} [options]\n * @param {Boolean} [options.controls]\n */\n create : function create(elem, player, options) {\n var $elem;\n\n if (!this.ready) {\n return this.add(elem, player, options);\n }\n\n if (!options) {\n options = {};\n }\n\n $elem = $(elem);\n\n new YT.Player($elem.get(0), {\n height: $elem.width(),\n width: $elem.height(),\n videoId: $elem.data('videoId'),\n playerVars: {\n //hd: true,\n autoplay: 0,\n controls: options.controls ? 1 : 0,\n rel: 0,\n showinfo: 0,\n wmode: 'transparent',\n modestbranding: 1,\n disablekb: 1,\n playsinline: 1,\n enablejsapi: 1,\n origin: location.hostname\n },\n events: {\n onReady: player.onReady.bind(player),\n onStateChange: player.onStateChange.bind(player)\n }\n });\n },\n\n /**\n * Called when the Youtube API is ready. Should install all pending players.\n */\n apiReady : function apiReady() {\n var self = this;\n var pending = this.pending;\n\n this.pending = [];\n this.ready = true;\n\n _.forEach(pending, function(args) {\n if (args) {\n self.create.apply(self, args);\n }\n });\n },\n\n /**\n * Checks if the Youtube API is ready to use\n * @returns {Boolean}\n */\n isApiReady : function isApiReady() {\n var apiReady = (undefined !== window.YT && undefined !== window.YT.Player);\n if (apiReady && !this.ready) {\n _youtubeManager.apiReady();\n }\n return apiReady;\n },\n\n /**\n * Injects the Youtube API into the page\n */\n injectApi : function injectApi() {\n var self = this;\n if (!self.isApiReady()) {\n require(['https://www.youtube.com/iframe_api'], function() {\n var check = function() {\n if (!self.isApiReady()) {\n setTimeout(check, 100);\n }\n };\n check();\n });\n }\n\n this.injected = true;\n }\n };\n\n /**\n * Defines a player object dedicated to youtube media\n * @param {mediaplayer} mediaplayer\n * @private\n */\n var _youtubePlayer = function(mediaplayer) {\n var $media;\n var media;\n var player;\n var interval;\n var destroyed;\n\n function loopEvents(callback) {\n _.forEach(['onStateChange', 'onPlaybackQualityChange', 'onPlaybackRateChange', 'onError', 'onApiChange'], callback);\n }\n\n if (mediaplayer) {\n player = {\n init : function _youtubePlayerInit() {\n $media = mediaplayer.$media;\n media = null;\n destroyed = false;\n\n if ($media) {\n _youtubeManager.add($media, this, {\n controls : mediaplayer.is('nogui')\n });\n }\n\n return !!$media;\n },\n\n onReady : function _youtubePlayerOnReady(event) {\n var callbacks = this._callbacks;\n\n media = event.target;\n $media = $(media.getIframe());\n this._callbacks = null;\n\n if (!destroyed) {\n if (_debugMode) {\n // install debug logger\n loopEvents(function(ev) {\n media.addEventListener(ev, function(e) {\n console.log(ev, e);\n });\n });\n }\n\n mediaplayer._onReady();\n\n if (callbacks) {\n _.forEach(callbacks, function(cb) {\n cb();\n });\n }\n } else {\n this.destroy();\n }\n },\n\n onStateChange : function _youtubePlayerOnStateChange(event) {\n this.stopPolling();\n\n if (!destroyed) {\n switch (event.data) {\n // ended\n case 0:\n mediaplayer._onEnd();\n break;\n\n // playing\n case 1:\n mediaplayer._onPlay();\n this.startPolling();\n break;\n\n // paused\n case 2:\n mediaplayer._onPause();\n break;\n }\n }\n },\n\n stopPolling : function _youtubePlayerStopPolling() {\n if (interval) {\n clearInterval(interval);\n interval = null;\n }\n },\n\n startPolling : function _youtubePlayerStartPolling() {\n interval = setInterval(function() {\n mediaplayer._onTimeUpdate();\n }, mediaplayerFactory.youtubePolling);\n },\n\n destroy : function _youtubePlayerDestroy() {\n destroyed = true;\n\n if (media) {\n loopEvents(function(ev) {\n media.removeEventListener(ev);\n });\n media.destroy();\n } else {\n _youtubeManager.remove($media, this);\n }\n\n this.stopPolling();\n\n $media = null;\n media = null;\n },\n\n getPosition : function _youtubePlayerGetPosition() {\n if (media) {\n return media.getCurrentTime();\n }\n return 0;\n },\n\n getDuration : function _youtubePlayerGetDuration() {\n if (media) {\n return media.getDuration();\n }\n return 0;\n },\n\n getVolume : function _youtubePlayerGetVolume() {\n var value = 0;\n if (media) {\n value = media.getVolume() * _volumeRange / 100 + _volumeMin;\n }\n return value;\n },\n\n setVolume : function _youtubePlayerSetVolume(value) {\n if (media) {\n media.setVolume((parseFloat(value) - _volumeMin) / _volumeRange * 100);\n }\n },\n\n setSize : function _youtubePlayerSetSize(width, height) {\n if ($media) {\n $media.width(width).height(height);\n }\n if (media) {\n media.setSize(width, height);\n }\n },\n\n seek : function _youtubePlayerSeek(value) {\n if (media) {\n media.seekTo(parseFloat(value), true);\n }\n },\n\n play : function _youtubePlayerPlay() {\n if (media) {\n media.playVideo();\n }\n },\n\n pause : function _youtubePlayerPause() {\n if (media) {\n media.pauseVideo();\n }\n },\n\n stop : function _youtubePlayerStop() {\n if (media) {\n media.stopVideo();\n mediaplayer._onEnd();\n }\n },\n\n mute : function _youtubePlayerMute(state) {\n if (media) {\n media[state ? 'mute' : 'unMute']();\n }\n },\n\n isMuted : function _youtubePlayerIsMuted() {\n if (media) {\n return media.isMuted();\n }\n return false;\n },\n\n addMedia : function _youtubePlayerSetMedia(url) {\n var id = _extractYoutubeId(url);\n var cb = id && function() {\n media.cueVideoById(id);\n };\n if (cb) {\n if (media) {\n cb();\n } else {\n this._callbacks = this._callbacks || [];\n this._callbacks.push(cb);\n }\n return true;\n }\n return false;\n },\n\n setMedia : function _youtubePlayerSetMedia(url) {\n var id = _extractYoutubeId(url);\n var cb = id && function() {\n media.loadVideoById(id);\n };\n if (cb) {\n if (media) {\n cb();\n } else {\n this._callbacks = [cb];\n }\n return true;\n }\n return false;\n }\n };\n }\n\n return player;\n };\n\n /**\n * Defines a player object dedicated to native player\n * @param {mediaplayer} mediaplayer\n * @private\n */\n var _nativePlayer = function(mediaplayer) {\n var $media;\n var media;\n var player;\n var played;\n\n if (mediaplayer) {\n player = {\n init : function _nativePlayerInit() {\n var result = false;\n var mediaElem;\n\n $media = mediaplayer.$media;\n media = null;\n played = false;\n\n if ($media) {\n mediaElem = $media.get(0);\n if (mediaElem && mediaElem.canPlayType) {\n media = mediaElem;\n result = true;\n }\n\n if (!mediaplayer.is('nogui')) {\n $media.removeAttr('controls');\n }\n\n $media\n .on('play' + _ns, function() {\n played = true;\n mediaplayer._onPlay();\n })\n .on('pause' + _ns, function() {\n mediaplayer._onPause();\n })\n .on('ended' + _ns, function() {\n played = false;\n mediaplayer._onEnd();\n })\n .on('timeupdate' + _ns, function() {\n mediaplayer._onTimeUpdate();\n })\n .on('loadstart', function() {\n if (media.networkState === HTMLMediaElement.NETWORK_NO_SOURCE) {\n mediaplayer._onError();\n }\n })\n .on('error' + _ns, function() {\n if (media.networkState === HTMLMediaElement.NETWORK_NO_SOURCE) {\n mediaplayer._onError();\n } else {\n mediaplayer._onRecoverError();\n\n // recover from playing error\n if (media.networkState === HTMLMediaElement.NETWORK_LOADING && mediaplayer.is('playing')) {\n mediaplayer.render();\n }\n }\n })\n .on('loadedmetadata' + _ns, function() {\n if (mediaplayer.is('error')) {\n mediaplayer._onRecoverError();\n }\n mediaplayer._onReady();\n });\n\n if (_debugMode) {\n // install debug logger\n _.forEach(['abort', 'canplay', 'canplaythrough', 'canshowcurrentframe', 'dataunavailable', 'durationchange', 'emptied', 'empty', 'ended', 'error', 'loadedfirstframe', 'loadedmetadata', 'loadstart', 'pause', 'play', 'progress', 'ratechange', 'seeked', 'seeking', 'suspend', 'timeupdate', 'volumechange', 'waiting'], function(ev) {\n $media.on(ev + _ns, function(e) {\n console.log(e.type, $media && $media.find('source').attr('src'), media && media.networkState);\n });\n });\n }\n }\n\n return result;\n },\n\n destroy : function _nativePlayerDestroy() {\n if ($media) {\n $media.off(_ns).attr('controls', '');\n }\n\n this.stop();\n\n $media = null;\n media = null;\n played = false;\n },\n\n getPosition : function _nativePlayerGetPosition() {\n if (media) {\n return media.currentTime;\n }\n return 0;\n },\n\n getDuration : function _nativePlayerGetDuration() {\n if (media) {\n return media.duration;\n }\n return 0;\n },\n\n getVolume : function _nativePlayerGetVolume() {\n var value = 0;\n if (media) {\n value = parseFloat(media.volume) * _volumeRange + _volumeMin;\n }\n return value;\n },\n\n setVolume : function _nativePlayerSetVolume(value) {\n if (media) {\n media.volume = (parseFloat(value) - _volumeMin) / _volumeRange;\n }\n },\n\n setSize : function _nativePlayerSetSize(width, height) {\n if ($media) {\n $media.width(width).height(height);\n }\n },\n\n seek : function _nativePlayerSeek(value) {\n if (media) {\n media.currentTime = parseFloat(value);\n if (!played) {\n this.play();\n }\n }\n },\n\n play : function _nativePlayerPlay() {\n if (media) {\n media.play();\n }\n },\n\n pause : function _nativePlayerPause() {\n if (media) {\n media.pause();\n }\n },\n\n stop : function _nativePlayerStop() {\n if (media && played) {\n media.currentTime = media.duration;\n }\n },\n\n mute : function _nativePlayerMute(state) {\n if (media) {\n media.muted = !!state;\n }\n },\n\n isMuted : function _nativePlayerIsMuted() {\n if (media) {\n return !!media.muted;\n }\n return false;\n },\n\n addMedia : function _nativePlayerSetMedia(url, type) {\n type = type || _defaults.type;\n if (media) {\n if (!_checkSupport(media, type)) {\n return false;\n }\n }\n\n if (url && $media) {\n $media.append('<source src=\"' + url + '\" type=\"' + (_mimeTypes[type] || type) + '\" />');\n return true;\n }\n return false;\n },\n\n setMedia : function _nativePlayerSetMedia(url, type) {\n if ($media) {\n $media.empty();\n return this.addMedia(url, type);\n }\n return false;\n }\n };\n }\n\n return player;\n };\n\n /**\n * Defines the list of available players\n * @type {Object}\n * @private\n */\n var _players = {\n 'audio' : _nativePlayer,\n 'video' : _nativePlayer,\n 'youtube' : _youtubePlayer\n };\n\n /**\n * Defines a media player object\n * @type {Object}\n */\n var mediaplayer = {\n /**\n * Initializes the media player\n * @param {Object} config\n * @param {String} config.type - The type of media to play\n * @param {String|Array} config.url - The URL to the media\n * @param {String|jQuery|HTMLElement} [config.renderTo] - An optional container in which renders the player\n * @param {Boolean} [config.loop] - The media will be played continuously\n * @param {Boolean} [config.canPause] - The play can be paused\n * @param {Boolean} [config.startMuted] - The player should be initially muted\n * @param {Boolean} [config.autoStart] - The player starts as soon as it is displayed\n * @param {Number} [config.autoStartAt] - The time position at which the player should start\n * @param {Number} [config.maxPlays] - Sets a few number of plays (default: infinite)\n * @param {Number} [config.volume] - Sets the sound volume (default: 80)\n * @param {Number} [config.width] - Sets the width of the player (default: depends on media type)\n * @param {Number} [config.height] - Sets the height of the player (default: depends on media type)\n * @returns {mediaplayer}\n */\n init : function init(config) {\n var self = this;\n\n // load the config set, discard null values in order to allow defaults to be set\n this.config = _.omit(config || {}, function(value) {\n return value === undefined || value === null;\n });\n _.defaults(this.config, _defaults.options);\n this._setType(this.config.type || _defaults.type);\n\n this._reset();\n this._initEvents();\n this._initSources(function() {\n if (!self.is('youtube')) {\n _.each(self.config.sources, function(source) {\n if (source.type.indexOf('audio') === 0) {\n self._setType(source.type);\n self._initType();\n return false;\n }\n });\n }\n if (self.config.renderTo) {\n _.defer(function() {\n self.render();\n });\n }\n });\n\n return this;\n },\n\n /**\n * Uninstalls the media player\n * @returns {mediaplayer}\n */\n destroy : function destroy() {\n /**\n * Triggers a destroy event\n * @event mediaplayer#destroy\n */\n this.trigger('destroy');\n\n if (this.player) {\n this.player.destroy();\n }\n\n if (this.$component) {\n this._unbindEvents();\n this._destroySlider(this.$seekSlider);\n this._destroySlider(this.$volumeSlider);\n\n this.$component.remove();\n }\n\n this._reset();\n\n return this;\n },\n\n /**\n * Renders the media player according to the media type\n * @param {String|jQuery|HTMLElement} [to]\n * @returns {mediaplayer}\n */\n render : function render(to) {\n var renderTo = to || this.config.renderTo || this.$container;\n\n if (this.$component) {\n this.destroy();\n }\n\n this._initState();\n this._buildDom();\n this._updateDuration(0);\n this._updatePosition(0);\n this._bindEvents();\n this._playingState(false, true);\n this._initPlayer();\n this._initSize();\n this.resize(this.config.width, this.config.height);\n this.config.is.rendered = true;\n\n if (renderTo) {\n this.$container = $(renderTo).append(this.$component);\n }\n\n /**\n * Triggers a render event\n * @event mediaplayer#render\n * @param {jQuery} $component\n */\n this.trigger('render', this.$component);\n\n return this;\n },\n\n /**\n * Sets the start position inside the media\n * @param {Number} time - The start position in seconds\n * @param {*} [internal] - Internal use\n * @returns {mediaplayer}\n */\n seek : function seek(time, internal) {\n if (this._canPlay()) {\n this._updatePosition(time, internal);\n\n this.execute('seek', this.position);\n\n if (!this.is('ready')) {\n this.autoStartAt = this.position;\n }\n this.loop = !!this.config.loop;\n }\n\n return this;\n },\n\n /**\n * Plays the media\n * @param {Number} [time] - An optional start position in seconds\n * @returns {mediaplayer}\n */\n play : function play(time) {\n if (this._canPlay()) {\n if (undefined !== time) {\n this.seek(time);\n }\n\n this.execute('play');\n\n if (!this.is('ready')) {\n this.autoStart = true;\n }\n\n this.loop = !!this.config.loop;\n }\n\n return this;\n },\n\n /**\n * Pauses the media\n * @param {Number} [time] - An optional time position in seconds\n * @returns {mediaplayer}\n */\n pause : function pause(time) {\n if (this._canPause()) {\n if (undefined !== time) {\n this.seek(time);\n }\n\n this.execute('pause');\n\n if (!this.is('ready')) {\n this.autoStart = false;\n }\n }\n\n return this;\n },\n\n /**\n * Resumes the media\n * @returns {mediaplayer}\n */\n resume : function resume() {\n if (this._canResume()) {\n this.play();\n }\n\n return this;\n },\n\n /**\n * Stops the playback\n * @returns {mediaplayer}\n */\n stop : function stop() {\n this.loop = false;\n this.execute('stop');\n\n if (!this.is('ready')) {\n this.autoStart = false;\n }\n\n return this;\n },\n\n /**\n * Restarts the media from the beginning\n * @returns {mediaplayer}\n */\n restart : function restart() {\n this.play(0);\n\n return this;\n },\n\n /**\n * Rewind the media to the beginning\n * @returns {mediaplayer}\n */\n rewind : function rewind() {\n this.seek(0);\n\n return this;\n },\n\n /**\n * Mutes the media\n * @param {Boolean} [state] - A flag to set the mute state (default: true)\n * @returns {mediaplayer}\n */\n mute : function mute(state) {\n if (undefined === state) {\n state = true;\n }\n this.execute('mute', state);\n this._setState('muted', state);\n\n if (!this.is('ready')) {\n this.startMuted = state;\n }\n\n return this;\n },\n\n /**\n * Restore the sound of the media after a mute\n * @returns {mediaplayer}\n */\n unmute : function unmute() {\n this.mute(false);\n\n return this;\n },\n\n /**\n * Sets the sound volume of the media being played\n * @param {Number} value - A value between 0 and 100\n * @param {*} [internal] - Internal use\n * @returns {mediaplayer}\n */\n setVolume : function setVolume(value, internal) {\n this._updateVolume(value, internal);\n\n this.execute('setVolume', this.volume);\n\n return this;\n },\n\n /**\n * Gets the sound volume applied to the media being played\n * @returns {Number} Returns a value between 0 and 100\n */\n getVolume : function getVolume() {\n return this.volume;\n },\n\n /**\n * Gets the current displayed position inside the media\n * @returns {Number}\n */\n getPosition : function getPosition() {\n return this.position;\n },\n\n /**\n * Gets the duration of the media\n * @returns {Number}\n */\n getDuration : function getDuration() {\n return this.duration;\n },\n\n /**\n * Gets the number of times the media has been played\n * @returns {Number}\n */\n getTimesPlayed : function getTimesPlayed() {\n return this.timesPlayed;\n },\n\n /**\n * Gets the type of player\n * @returns {String}\n */\n getType : function getType() {\n return this.type;\n },\n\n /**\n * Gets the DOM container\n * @returns {jQuery}\n */\n getContainer : function getContainer() {\n var $container;\n if (!this.$container && this.$component) {\n $container = this.$component.parent();\n if ($container.length) {\n this.$container = $container;\n }\n }\n return this.$container;\n },\n\n /**\n * Gets the underlying DOM element\n * @returns {jQuery}\n */\n getElement : function getElement() {\n return this.$component;\n },\n\n /**\n * Gets the list of media\n * @returns {Array}\n */\n getSources : function getSources() {\n return this.config.sources.slice();\n },\n\n /**\n * Sets the media source. If a source has been already set, it will be replaced.\n * @param {String|Object} src - The media URL, or an object containing the source and the type\n * @param {Function} [callback] - A function called to provide the added media source object\n * @returns {mediaplayer}\n */\n setSource : function setSource(src, callback) {\n this._getSource(src, function(source) {\n this.config.sources = [source];\n\n if (this.is('rendered')) {\n this.player.setMedia(source.src, source.type);\n }\n\n if (callback) {\n callback.call(this, source);\n }\n });\n\n\n return this;\n },\n\n /**\n * Adds a media source.\n * @param {String|Object} src - The media URL, or an object containing the source and the type\n * @param {Function} [callback] - A function called to provide the added media source object\n * @returns {mediaplayer}\n */\n addSource : function addSource(src, callback) {\n this._getSource(src, function(source) {\n this.config.sources.push(source);\n\n if (this.is('rendered')) {\n this.player.addMedia(source.src, source.type);\n }\n\n if (callback) {\n callback.call(this, source);\n }\n });\n\n return this;\n },\n\n /**\n * Tells if the media is in a particular state\n * @param {String} state\n * @returns {Boolean}\n */\n is : function is(state) {\n return !!this.config.is[state];\n },\n\n /**\n * Changes the size of the player\n * @param {Number} width\n * @param {Number} height\n * @returns {mediaplayer}\n */\n resize : function resize(width, height) {\n var type = this.is('video') ? 'video' : 'audio';\n var defaults = _defaults[type] || _defaults.video;\n\n width = Math.max(defaults.minWidth, width);\n height = Math.max(defaults.minHeight, height);\n\n this.config.width = width;\n this.config.height = height;\n\n if (this.$component) {\n height -= this.$component.outerHeight() - this.$component.height();\n width -= this.$component.outerWidth() - this.$component.width();\n this.$component.width(width).height(height);\n\n if (!this.is('nogui')) {\n height -= this.$controls.outerHeight();\n }\n }\n\n this.execute('setSize', width, height);\n\n return this;\n },\n\n /**\n * Enables the media player\n * @returns {mediaplayer}\n */\n enable : function enable() {\n this._fromState('disabled');\n\n return this;\n },\n\n /**\n * Disables the media player\n * @returns {mediaplayer}\n */\n disable : function disable() {\n this._toState('disabled');\n\n return this;\n },\n\n /**\n * Shows the media player\n * @returns {mediaplayer}\n */\n show : function show() {\n this._fromState('hidden');\n\n return this;\n },\n\n /**\n * hides the media player\n * @returns {mediaplayer}\n */\n hide : function hide() {\n this._toState('hidden');\n\n return this;\n },\n\n /**\n * Ensures the right media type is set\n * @param {String} type\n * @private\n */\n _setType : function _setType(type) {\n if (type.indexOf('youtube') !== -1) {\n this.type = 'youtube';\n } else if (type.indexOf('audio') === 0) {\n this.type = 'audio';\n } else {\n this.type = 'video';\n }\n },\n\n /**\n * Ensures the type is correctly applied\n * @private\n */\n _initType : function _initType() {\n var is = this.config.is;\n is.youtube = 'youtube' === this.type;\n is.video = 'video' === this.type || 'youtube' === this.type;\n is.audio = 'audio' === this.type;\n },\n\n /**\n * Gets a source descriptor.\n * @param {String|Object} src - The media URL, or an object containing the source and the type\n * @param {Function} callback - A function called to provide the media source object\n */\n _getSource : function _getSource(src, callback) {\n var self = this;\n var source;\n\n if (_.isString(src)) {\n source = {\n src : src\n };\n } else {\n source = _.clone(src);\n }\n\n if (this.is('youtube') && !source.type) {\n source.type = _defaults.type;\n }\n\n if (!source.type) {\n mimetype.getResourceType(source.src, function(err, type) {\n if (err) {\n type = _defaults.type;\n }\n source.type = type;\n done();\n });\n } else {\n done();\n }\n\n function done() {\n if (_needTypeAdjust(source.type)) {\n source.type = _getAdjustedType(source);\n }\n\n if (self.is('youtube')) {\n source.id = _extractYoutubeId(source.src);\n }\n\n callback.call(self, source);\n }\n },\n\n /**\n * Ensures the sources are correctly set\n * @param {Function} callback - A function called once all sources have been initialized\n * @private\n */\n _initSources : function _initSources(callback) {\n var self = this;\n var sources = _configToSources(this.config);\n\n this.config.sources = [];\n\n async.each(sources, function(source, callback) {\n self.addSource(source, function(source) {\n callback(null, source);\n });\n }, callback);\n },\n\n /**\n * Installs the events manager onto the instance\n * @private\n */\n _initEvents : function _initEvents() {\n var triggerEvent;\n\n eventifier(this);\n\n triggerEvent = this.trigger;\n this.trigger = function trigger(eventName) {\n if (this.$component) {\n this.$component.trigger(eventName + _ns, _slice.call(arguments, 1));\n }\n return triggerEvent.apply(this, arguments);\n };\n },\n\n /**\n * Ensures the right size is set according to the media type\n * @private\n */\n _initSize : function _initSize() {\n var type = this.is('video') ? 'video' : 'audio';\n var defaults = _defaults[type] || _defaults.video;\n\n this.config.width = _.parseInt(this.config.width) || defaults.width;\n this.config.height = _.parseInt(this.config.height) || defaults.height;\n },\n\n /**\n * Initializes the right player instance\n * @private\n */\n _initPlayer : function _initPlayer() {\n var player = _players[this.type];\n var error;\n\n if (_support.canPlay(this.type)) {\n if (_.isFunction(player)) {\n this.player = player(this);\n }\n\n if (this.player) {\n error = !this.player.init();\n } else {\n error = true;\n }\n } else {\n error = true;\n }\n\n this._setState('error', error);\n this._setState('nogui', !_support.canControl());\n },\n\n /**\n * Initializes the player state\n * @private\n */\n _initState : function _initState() {\n var isCORS = false;\n var page;\n\n if (!this.is('youtube')) {\n page = new UrlParser(window.location);\n _.forEach(this.config.sources, function(source) {\n var url = new UrlParser(source.src);\n if (!url.checkCORS(page)) {\n isCORS = true;\n return false;\n }\n });\n }\n\n this._setState('cors', isCORS);\n this._setState('ready', false);\n },\n\n /**\n * Resets the internals attributes\n * @private\n */\n _reset : function _reset() {\n this.config.is = {};\n this._initType();\n\n this.$component = null;\n this.$container = null;\n this.$player = null;\n this.$media = null;\n this.$controls = null;\n this.$seek = null;\n this.$seekSlider = null;\n this.$volume = null;\n this.$volumeSlider = null;\n this.$position = null;\n this.$duration = null;\n this.player = null;\n\n this.duration = 0;\n this.position = 0;\n this.timesPlayed = 0;\n\n this.volume = this.config.volume;\n this.autoStart = this.config.autoStart;\n this.autoStartAt = this.config.autoStartAt;\n this.startMuted = this.config.startMuted;\n },\n\n /**\n * Builds the DOM content\n * @private\n */\n _buildDom : function _buildDom() {\n this.$component = $(playerTpl(this.config));\n this.$player = this.$component.find('.player');\n this.$media = this.$component.find('.media');\n this.$controls = this.$component.find('.controls');\n\n this.$seek = this.$controls.find('.seek .slider');\n this.$volume = this.$controls.find('.volume .slider');\n this.$position = this.$controls.find('[data-control=\"time-cur\"]');\n this.$duration = this.$controls.find('[data-control=\"time-end\"]');\n\n this.$volumeSlider = this._renderSlider(this.$volume, this.volume, _volumeMin, _volumeMax, this.is('video'));\n },\n\n /**\n * Renders a slider onto an element\n * @param {jQuery} $elt - The element on which renders the slider\n * @param {Number} [value] - The current value of the slider\n * @param {Number} [min] - The min value of the slider\n * @param {Number} [max] - The max value of the slider\n * @param {Boolean} [vertical] - Tells if the slider must be vertical\n * @returns {jQuery} - Returns the element\n * @private\n */\n _renderSlider : function _renderSlider($elt, value, min, max, vertical) {\n var orientation, direction;\n\n if (vertical) {\n orientation = 'vertical';\n direction = 'rtl';\n } else {\n orientation = 'horizontal';\n direction = 'ltr';\n }\n\n return $elt.noUiSlider({\n start: _ensureNumber(value) || 0,\n step: 1,\n connect: 'lower',\n orientation: orientation,\n direction: direction,\n animate: true,\n range: {\n min: _ensureNumber(min) || 0,\n max : _ensureNumber(max) || 0\n }\n })\n },\n\n /**\n * Destroys a slider bound to an element\n * @param {jQuery} $elt\n * @private\n */\n _destroySlider : function _destroySlider($elt) {\n if ($elt) {\n $elt.get(0).destroy();\n }\n },\n\n /**\n * Binds events onto the rendered player\n * @private\n */\n _bindEvents : function _bindEvents() {\n var self = this;\n\n this.$component.on('contextmenu' + _ns, function(event) {\n event.preventDefault();\n });\n\n this.$controls.on('click' + _ns, '.action', function(event) {\n var $target = $(event.target);\n var $action = $target.closest('.action');\n var id = $action.data('control');\n\n if (_.isFunction(self[id])) {\n self[id]();\n }\n });\n\n this.$player.on('click' + _ns, function() {\n if (self.is('playing')) {\n self.pause();\n } else {\n self.play();\n }\n });\n\n this.$seek.on('change' + _ns, function(event, value) {\n self.seek(value, true);\n });\n\n this.$volume.on('change' + _ns, function(event, value) {\n self.unmute();\n self.setVolume(value, true);\n });\n },\n\n /**\n * Unbinds events from the rendered player\n * @private\n */\n _unbindEvents : function _unbindEvents() {\n this.$component.off(_ns);\n this.$player.off(_ns);\n this.$controls.off(_ns);\n this.$seek.off(_ns);\n this.$volume.off(_ns);\n },\n\n /**\n * Updates the volume slider\n * @param {Number} value\n * @private\n */\n _updateVolumeSlider : function _updateVolumeSlider(value) {\n if (this.$volumeSlider) {\n this.$volumeSlider.val(value);\n }\n },\n\n /**\n * Updates the displayed volume\n * @param {Number} value\n * @param {*} [internal]\n * @private\n */\n _updateVolume : function _updateVolume(value, internal) {\n this.volume = Math.max(_volumeMin, Math.min(_volumeMax, parseFloat(value)));\n\n if (!internal) {\n this._updateVolumeSlider(value);\n }\n },\n\n /**\n * Updates the time slider\n * @param {Number} value\n * @private\n */\n _updatePositionSlider : function _updatePositionSlider(value) {\n if (this.$seekSlider) {\n this.$seekSlider.val(value);\n }\n },\n\n /**\n * Updates the time label\n * @param {Number} value\n * @private\n */\n _updatePositionLabel : function _updatePositionLabel(value) {\n if (this.$position) {\n this.$position.text(_timerFormat(value));\n }\n },\n\n /**\n * Updates the displayed time position\n * @param {Number} value\n * @param {*} [internal]\n * @private\n */\n _updatePosition : function _updatePosition(value, internal) {\n this.position = Math.max(0, Math.min(this.duration, parseFloat(value)));\n\n if (!internal) {\n this._updatePositionSlider(this.position);\n }\n this._updatePositionLabel(this.position);\n },\n\n /**\n * Updates the duration slider\n * @param {Number} value\n * @private\n */\n _updateDurationSlider : function _updateDurationSlider(value) {\n if (this.$seekSlider) {\n this._destroySlider(this.$seekSlider);\n this.$seekSlider = null;\n }\n\n if (value && isFinite(value)) {\n this.$seekSlider = this._renderSlider(this.$seek, 0, 0, value);\n }\n },\n\n /**\n * Updates the duration label\n * @param {Number} value\n * @private\n */\n _updateDurationLabel : function _updateDurationLabel(value) {\n if (this.$duration) {\n if (value && isFinite(value)) {\n this.$duration.text(_timerFormat(value)).show();\n } else {\n this.$duration.hide();\n }\n }\n },\n\n /**\n * Updates the displayed duration\n * @param {Number} value\n * @private\n */\n _updateDuration : function _updateDuration(value) {\n this.duration = Math.abs(parseFloat(value));\n this._updateDurationSlider(this.duration);\n this._updateDurationLabel(this.duration);\n },\n\n /**\n * Event called when the media is ready\n * @private\n */\n _onReady : function _onReady() {\n this._updateDuration(this.player.getDuration());\n this._setState('ready', true);\n this._setState('canplay', true);\n this._setState('canpause', this.config.canPause);\n\n /**\n * Triggers a media ready event\n * @event mediaplayer#ready\n */\n this.trigger('ready');\n\n // set the initial state\n this.setVolume(this.volume);\n this.mute(!!this.startMuted);\n if (this.autoStartAt) {\n this.seek(this.autoStartAt);\n } else if (this.autoStart) {\n this.play();\n }\n },\n\n /**\n * Event called when the media throws unrecoverable error\n * @private\n */\n _onError : function _onError() {\n this._setState('error', true);\n\n /**\n * Triggers an unrecoverable media error event\n * @event mediaplayer#error\n */\n this.trigger('error');\n },\n\n /**\n * Event called when the media throws recoverable error\n * @private\n */\n _onRecoverError : function _onRecoverError() {\n this._setState('error', false);\n\n /**\n * Triggers a recoverable media error event\n * @event mediaplayer#recovererror\n */\n this.trigger('recovererror');\n },\n\n /**\n * Event called when the media is played\n * @private\n */\n _onPlay : function _onPlay() {\n this._playingState(true);\n\n /**\n * Triggers a media playback event\n * @event mediaplayer#play\n */\n this.trigger('play');\n },\n\n /**\n * Event called when the media is paused\n * @private\n */\n _onPause : function _onPause() {\n this._playingState(false);\n\n /**\n * Triggers a media paused event\n * @event mediaplayer#pause\n */\n this.trigger('pause');\n },\n\n /**\n * Event called when the media is ended\n * @private\n */\n _onEnd : function _onEnd() {\n this.timesPlayed ++;\n this._playingState(false, true);\n this._updatePosition(0);\n\n /**\n * Triggers a media ended event\n * @event mediaplayer#ended\n */\n this.trigger('ended');\n\n // disable GUI when the play limit is reached\n if (this._playLimitReached()) {\n this._setState('ready', false);\n this._setState('canplay', false);\n\n /**\n * Triggers a play limit reached event\n * @event mediaplayer#limitreached\n */\n this.trigger('limitreached');\n } else {\n if (this.loop) {\n this.restart();\n }\n }\n },\n\n /**\n * Event called when the time position has changed\n * @private\n */\n _onTimeUpdate : function _onTimeUpdate() {\n this._updatePosition(this.player.getPosition());\n\n /**\n * Triggers a media time update event\n * @event mediaplayer#update\n */\n this.trigger('update');\n },\n\n /**\n * Checks if the play limit has been reached\n * @returns {Boolean}\n * @private\n */\n _playLimitReached : function _playLimitReached() {\n return this.config.maxPlays && this.timesPlayed >= this.config.maxPlays;\n },\n\n /**\n * Checks if the media can be played\n * @returns {Boolean}\n * @private\n */\n _canPlay : function _canPlay() {\n return this.is('ready') && !this.is('disabled') && !this.is('hidden') && !this._playLimitReached();\n },\n\n /**\n * Checks if the media can be paused\n * @returns {Boolean}\n * @private\n */\n _canPause : function _canPause() {\n return !!this.config.canPause;\n },\n\n /**\n * Checks if the playback can be resumed\n * @returns {Boolean}\n * @private\n */\n _canResume : function _canResume() {\n return this.is('paused') && this._canPlay();\n },\n\n /**\n * Sets the media is in a particular state\n * @param {String} name\n * @param {Boolean} value\n * @returns {mediaplayer}\n */\n _setState : function _setState(name, value) {\n value = !!value;\n\n this.config.is[name] = value;\n\n if (this.$component) {\n this.$component.toggleClass(name, value);\n }\n\n return this;\n },\n\n /**\n * Restores the media player from a particular state and resumes the playback\n * @param {String} stateName\n * @returns {mediaplayer}\n * @private\n */\n _fromState : function _fromState(stateName) {\n this._setState(stateName, false);\n this.resume();\n\n return this;\n },\n\n /**\n * Sets the media player to a particular state and pauses the playback\n * @param {String} stateName\n * @returns {mediaplayer}\n * @private\n */\n _toState : function _toState(stateName) {\n this.pause();\n this._setState(stateName, true);\n\n return this;\n },\n\n /**\n * Sets the playing state\n * @param {Boolean} state\n * @param {Boolean} [ended]\n * @returns {mediaplayer}\n * @private\n */\n _playingState : function _playingState(state, ended) {\n this._setState('playing', !!state);\n this._setState('paused', !state);\n this._setState('ended', !!ended);\n\n return this;\n },\n\n /**\n * Executes a command onto the media\n * @param {String} command - The name of the command to execute\n * @returns {*}\n * @private\n */\n execute : function execute(command) {\n var ctx = this.player;\n var method = ctx && ctx[command];\n\n if (_.isFunction(method)) {\n return method.apply(ctx, _slice.call(arguments, 1));\n }\n }\n };\n\n /**\n * Builds a media player instance\n * @param {Object} config\n * @param {String} config.type - The type of media to play\n * @param {String|Array} config.url - The URL to the media\n * @param {String|jQuery|HTMLElement} [config.renderTo] - An optional container in which renders the player\n * @param {Boolean} [config.loop] - The media will be played continuously\n * @param {Boolean} [config.canPause] - The play can be paused\n * @param {Boolean} [config.startMuted] - The player should be initially muted\n * @param {Boolean} [config.autoStart] - The player starts as soon as it is displayed\n * @param {Number} [config.autoStartAt] - The time position at which the player should start\n * @param {Number} [config.maxPlays] - Sets a few number of plays (default: infinite)\n * @param {Number} [config.volume] - Sets the sound volume (default: 80)\n * @param {Number} [config.width] - Sets the width of the player (default: depends on media type)\n * @param {Number} [config.height] - Sets the height of the player (default: depends on media type)\n * @event render - Event triggered when the player is rendering\n * @event error - Event triggered when the player throws an unrecoverable error\n * @event recovererror - Event triggered when the player throws a recoverable error\n * @event ready - Event triggered when the player is fully ready\n * @event play - Event triggered when the playback is starting\n * @event update - Event triggered while the player is playing\n * @event pause - Event triggered when the playback is paused\n * @event ended - Event triggered when the playback is ended\n * @event limitreached - Event triggered when the play limit has been reached\n * @event destroy - Event triggered when the player is destroying\n * @returns {mediaplayer}\n */\n var mediaplayerFactory = function mediaplayerFactory(config) {\n var player = _.clone(mediaplayer);\n return player.init(config);\n };\n\n /**\n * Tells if the browser can play audio and video\n * @param {String} [type] The type of media (audio or video)\n * @param {String} [mime] A media MIME type to check\n * @type {Boolean}\n */\n mediaplayerFactory.canPlay = function canPlay(type, mime) {\n return _support.canPlay(type, mime);\n };\n\n /**\n * Tells if the browser can play audio\n * @param {String} [mime] A media MIME type to check\n * @type {Boolean}\n */\n mediaplayerFactory.canPlayAudio = function canPlayAudio(mime) {\n return _support.canPlayAudio(mime);\n };\n\n /**\n * Tells if the browser can play video\n * @param {String} [mime] A media MIME type to check\n * @type {Boolean}\n */\n mediaplayerFactory.canPlayVideo = function canPlayVideo(mime) {\n return _support.canPlayVideo(mime);\n };\n\n /**\n * Checks if the browser allows to control the media playback\n * @returns {Boolean}\n */\n mediaplayerFactory.canControl = function canControl() {\n return _support.canControl();\n };\n\n /**\n * The polling interval used to update the progress bar while playing a YouTube video.\n * Note : the YouTube API does not provide events to update this progress bar...\n * @type {Number}\n */\n mediaplayerFactory.youtubePolling = 100;\n\n return mediaplayerFactory;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n *\n */\ndefine('iframeNotifier',['jquery', 'lodash'], function($, _){\n \n \n function hasAccess(windowElt){\n //if we are in the same domain, the parent must place the __knownParent__ variable \n return !!(window.__knownParent__ && windowElt && windowElt !== window);\n }\n \n /**\n * Use to notify an event from an iframe to it's parent.\n * If you're not in an iframe, nothing will happen.\n * \n * @author Bertrand Chevrier <bertrand@taotesting.com>\n * @exports iframeNotifier\n */\n var xDomMessaging = {\n \n \n /**\n * Notify the parent window's document\n * @param {String} eventName - the name of the \n * @param {Array} [args] - event arguments\n */\n parent : function(eventName, args){\n _.defer(function(){ //in next tick for thread safety\n if (hasAccess(window.parent) && window.parent.$) {\n var _$ = window.parent.$; //parent window jQuery instance\n _$(window.parent.document).trigger(eventName, args || []);\n }\n });\n },\n \n /**\n * Notify the top window's document\n * @param {String} eventName - the name of the \n * @param {Array} [args] - event arguments\n */\n top : function(eventName, args){\n _.defer(function(){ //in next tick for thread safety\n if (hasAccess(window.top) && window.top.$) {\n var _$ = window.top.$; //parent window jQuery instance\n _$(window.top.document).trigger(eventName, args || []);\n }\n });\n }\n };\n \n return xDomMessaging;\n});\n","/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('ui/previewer',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/mimetype',\n 'core/pluginifier',\n 'ui/mediaplayer',\n 'iframeNotifier'\n],\nfunction($, _, __, mimeType, Pluginifier, mediaplayer, iframeNotifier) {\n 'use strict';\n\n var ns = 'previewer';\n var dataNs = 'ui.' + ns;\n\n //the plugin defaults\n var defaults = {\n containerClass: 'previewer'\n };\n\n /**\n * Some default size values\n * @type {Object}\n * @private\n */\n var defaultSize = {\n video : {\n width : 290,\n height : 270\n },\n audio : {\n width : 290,\n height : 36\n }\n };\n\n var previewGenerator = {\n placeHolder: _.template(\"<p class='nopreview' data-type='${type}'>${desc}</p>\"),\n youtubeTemplate: _.template(\"<div data-src=${jsonurl} data-type='video/youtube'></div>\"),\n videoTemplate: _.template(\"<div data-src=${jsonurl} data-type='${mime}'></div>\"),\n audioTemplate: _.template(\"<div data-src=${jsonurl} data-type='${mime}'></div>\"),\n imageTemplate: _.template(\"<img src=${jsonurl} alt='${name}' />\"),\n pdfTemplate: _.template(\"<object data=${jsonurl} type='application/pdf'><a href=${jsonurl} target='_blank'>${name}</a></object>\"),\n flashTemplate: _.template(\"<object data=${jsonurl} type='application/x-shockwave-flash'><param name='movie' value=${jsonurl}></param></object>\"),\n mathmlTemplate: _.template(\"<iframe src=${jsonurl}></iframe>\"),\n xmlTemplate: _.template(\"<pre>${xml}</pre>\"),\n htmlTemplate: _.template(\"<iframe src=${jsonurl}></iframe>\"),\n /**\n * Generates the preview tags for a type\n * @memberOf previewGenerator\n * @param {String} type - the file type\n * @param {Object} data - the preview data (url, desc, name)\n * @returns {String} the tags\n */\n generate: function generate(type, data) {\n var tmpl = this[type + 'Template'];\n data.jsonurl = JSON.stringify(data.url);\n if (_.isFunction(tmpl)) {\n return tmpl(data);\n }\n }\n };\n\n /**\n * @exports ui/previewer\n */\n var previewer = {\n /**\n * Initialize the plugin.\n *\n * Called the jQuery way once registered by the Pluginifier.\n * @example $('selector').previewer({ url : 'test.mp4', type : 'video/mp4' });\n * @public\n *\n * @constructor\n * @param {Object} [options] - the plugin options\n * @returns {jQueryElement} for chaining\n */\n init: function(options) {\n var self = previewer;\n\n\n //get options using default\n options = _.defaults(options || {}, defaults);\n\n return this.each(function() {\n var $elt = $(this);\n if (!$elt.data(dataNs)) {\n\n if (!$elt.hasClass(options.containerClass)) {\n $elt.addClass(options.containerClass);\n }\n\n $elt.data(dataNs, options);\n self._update($elt);\n\n /**\n * The plugin has been created.\n * @event previewer#create.previewer\n */\n $elt.trigger('create.' + ns);\n } else {\n $elt.previewer('update', options);\n }\n });\n },\n /**\n * Update the preview\n * @example $('selector').previewer('update', {url: 'foo.mp3', type : 'audio/mp3'});\n * @public\n * @param {Object} data - the new options for the preview\n * @returns {jQueryElement} for chaining\n */\n update: function(data) {\n return this.each(function() {\n var $elt = $(this);\n var options = $elt.data(dataNs);\n $elt.data(dataNs, _.merge(options, data));\n previewer._update($elt);\n });\n },\n /**\n * Uninstalls the player if any\n * @private\n */\n _clearPlayer: function() {\n if (previewer.player) {\n previewer.player.destroy();\n previewer.player = null;\n }\n },\n /**\n * Update the preview\n * @private\n * @param {jQueryElement} $elt - the current element\n */\n _update: function($elt) {\n var self = previewer;\n var $content, $controls;\n var options = $elt.data(dataNs);\n var content, type;\n\n self._clearPlayer();\n\n if (options) {\n type = options.type || mimeType.getFileType({mime: options.mime, name: options.url});\n\n if (options.url) {\n if (!options.name) {\n options.name = options.url.substring(options.url.lastIndexOf(\"/\") + 1, options.url.lastIndexOf(\".\"));\n }\n content = previewGenerator.generate(type, options);\n }\n\n if (!content) {\n content = previewGenerator.placeHolder(_.merge({desc: __('No preview available')}, options));\n }\n $content = $(content);\n\n $content.on('load', function() {\n iframeNotifier.parent('imageloaded');\n });\n\n if (options.width) {\n $content.attr('width', options.width);\n }\n if (options.height) {\n $content.attr('height', options.height);\n }\n\n $elt.empty().html($content);\n if (type === 'audio' || type === 'video') {\n if (options.url) {\n self.player = mediaplayer({\n url: options.url,\n type: options.mime,\n renderTo: $content\n })\n .on('ready', function() {\n var defSize = defaultSize[this.getType()] || defaultSize.video;\n var width = options.width || defSize.width;\n var height = options.height || defSize.height;\n this.resize(width, height);\n });\n\n // stop video and free the socket on escape keypress(modal window hides)\n $('body')\n .off('keydown.mediaelement')\n .on('keydown.mediaelement', function(event) {\n if (event.keyCode === 27) {\n self._clearPlayer();\n }\n });\n\n // stop the video and free the socket on file select from the action icons\n // stop video, free the socket and remove player interface on video deletion\n // stop video and free the socket on all other cases when video is selected or temporary hidden or modal window is closed\n $controls = $('.actions a:nth-child(1), .actions a:nth-child(3), .icon-close, .upload-switcher, .select-action, .files li>span', '#mediaManager');\n $controls.off('mousedown.mediaelement').on('mousedown.mediaelement', function(event) {\n event.stopPropagation();\n if (!$(this).closest('.mediaplayer').length) {\n $controls.off('mousedown.mediaelement');\n self._clearPlayer();\n }\n });\n }\n }\n\n /**\n * The plugin has been created.\n * @event previewer#update.previewer\n */\n $elt.trigger('update.' + ns);\n }\n },\n player: null,\n /**\n * Destroy completely the plugin.\n *\n * Called the jQuery way once registered by the Pluginifier.\n * @example $('selector').previewer('destroy');\n * @public\n */\n destroy: function() {\n previewer._clearPlayer();\n\n this.each(function() {\n var $elt = $(this);\n\n /**\n * The plugin has been destroyed.\n * @event previewer#destroy.previewer\n */\n $elt.trigger('destroy.' + ns);\n });\n }\n };\n\n //Register the incrementer to behave as a jQuery plugin.\n Pluginifier.register(ns, previewer);\n\n /**\n * The only exposed function is used to start listening on data-attr\n *\n * @public\n * @example define(['ui/previewer'], function(previewer){ previewer($('rootContainer')); });\n * @param {jQueryElement} $container - the root context to listen in\n */\n return function listenDataAttr($container) {\n\n $container.find('[data-preview]').each(function() {\n var $elt = $(this);\n $elt.previewer({\n url: $elt.data('preview'),\n type: $elt.data('preview-type'),\n mime: $elt.data('preview-mime'),\n width: $elt.width(),\n height: $elt.height()\n });\n });\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA\n */\n\ndefine('taoQtiItem/qtiCommonRenderer/renderers/Object',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/object',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'ui/previewer'\n], function(tpl, containerHelper, previewer){\n 'use strict';\n\n return {\n qtiClass : 'object',\n template : tpl,\n getContainer : containerHelper.get,\n render : function(obj){\n var $container = containerHelper.get(obj);\n var previewOptions = {\n url : obj.renderer.resolveUrl(obj.attr('data')),\n mime : obj.attr('type'),\n width : obj.attr('width') || '100%'\n };\n if(obj.attr('height')){\n previewOptions.height = obj.attr('height');\n }\n $container.previewer(previewOptions);\n }\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/infoControl', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\n buffer += \"<div class=\\\"qti-infoControl\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n if (helper = helpers.markup) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.markup); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n</div>\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n\n\n/**\n * Portable element helper\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/PortableElement',['jquery'], function($){\n 'use strict';\n\n var imgSrcPattern = /(<img[^>]*src=[\"'])([^\"']+)([\"'])/ig;\n\n /**\n * Replace all identified relative media urls by the absolute one.\n * For now only images are supported.\n *\n * @param {String} html - the html to parse\n * @param {Object} the renderer\n * @returns {String} the html without updated URLs\n */\n function fixMarkupMediaSources(html, renderer){\n html = html || '';\n\n return html.replace(imgSrcPattern, function(substr, $1, $2, $3){\n var resolved = renderer.resolveUrl($2) || $2;\n return $1 + resolved + $3;\n });\n }\n\n /**\n * @exports taoQtiItem/qtiCommonRenderer/helpers/PortableElement\n */\n return {\n fixMarkupMediaSources : fixMarkupMediaSources,\n };\n});\n\n","define('qtiInfoControlContext',[],function(){\n\n //need a global reference to have picHooks shared in two different requirejs context (\"default\" and \"portableCustomInteraction\")\n window._picHooks = window._picHooks || {};\n\n /**\n * Global object accessible by all PICs\n *\n * @type Object\n */\n var taoQtiInfoControlContext = {\n /**\n * register a info control (its runtime model) in global registery\n * register a renderer\n *\n * @param {Object} picHook\n * @returns {undefined}\n */\n register : function(picHook){\n //@todo check picHook validity\n window._picHooks[picHook.getTypeIdentifier()] = picHook;\n },\n /**\n * notify when a info control is ready for test taker interaction\n *\n * @param {string} picInstance\n * @fires custominteractionready\n */\n notifyReady : function(picInstance){\n //@todo add pciInstance as event data and notify event to delivery engine\n },\n /**\n * Get a cloned object representing the PIC model\n *\n * @param {string} typeIdentifier\n * @returns {Object} clonedPciModel\n */\n createPciInstance : function(typeIdentifier){\n\n if(window._picHooks[typeIdentifier]){\n\n var instance = {},\n proto = window._picHooks[typeIdentifier];\n\n for(var name in proto){\n if(typeof proto[name] === 'function'){\n //@todo : delegate function call for better performance ?\n instance[name] = proto[name];\n }else if(proto[name] !== null && typeof proto[name] === 'object'){\n //a plain object:\n instance[name] = proto[name].constructor();\n }else{\n //not an object (nor a function) : e.g. 0, 123, '123', null, undefined\n instance[name] = proto[name];\n }\n }\n\n return instance;\n\n }else{\n throw 'no portable info control hook found with the id ' + typeIdentifier;\n }\n }\n };\n\n\n return taoQtiInfoControlContext;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\n\n/**\n * Portable Info Control Common Renderer\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/PortableInfoControl',[\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/infoControl',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/PortableElement',\n 'qtiInfoControlContext',\n 'taoQtiItem/qtiItem/helper/util'\n], function(Promise, tpl, containerHelper, PortableElement, qtiInfoControlContext, util){\n 'use strict';\n\n /**\n * Get the PIC instance associated to the infoControl object\n * If none exists, create a new one based on the PIC typeIdentifier\n *\n * @param {Object} infoControl - the js object representing the infoControl\n * @returns {Object} PIC instance\n */\n var _getPic = function(infoControl){\n\n var typeIdentifier,\n pic = infoControl.data('pic') || undefined;\n\n if(!pic){\n\n typeIdentifier = infoControl.typeIdentifier;\n pic = qtiInfoControlContext.createPciInstance(typeIdentifier);\n\n if(pic){\n\n //binds the PIC instance to TAO infoControl object and vice versa\n infoControl.data('pic', pic);\n pic._taoInfoControl = infoControl;\n\n }else{\n throw 'no custom infoControl hook found for the type ' + typeIdentifier;\n }\n }\n\n return pic;\n };\n\n /**\n * Execute javascript codes to bring the infoControl to life.\n * At this point, the html markup must already be ready in the document.\n *\n * It is done in 5 steps :\n * 1. ensure the context is configured correctly\n * 2. require all required libs\n * 3. create a pic instance based on the infoControl model\n * 4. initialize the rendering\n * 5. restore full state if applicable\n *\n * @param {Object} infoControl\n * @param {Object} [options]\n * @param {Object} [options.runtimeLocations] - to set manually the runtime path of PIC\n */\n var render = function(infoControl, options){\n var self = this;\n options = options || {};\n\n return new Promise(function(resolve, reject){\n\n var runtimeLocation;\n var state = {}; //@todo pass state and response to renderer here:\n var localRequireConfig = { paths : {} };\n var id = infoControl.attr('id');\n var typeIdentifier = infoControl.typeIdentifier;\n var runtimeLocations = options.runtimeLocations ? options.runtimeLocations : self.getOption('runtimeLocations');\n var config = infoControl.properties;\n var $dom = containerHelper.get(infoControl).children();\n var entryPoint = infoControl.entryPoint.replace(/\\.js$/, ''); //ensure the entry point is in AMD\n\n //update config\n if(runtimeLocations && runtimeLocations[typeIdentifier]){\n runtimeLocation = runtimeLocations[typeIdentifier];\n } else{\n //use the asset strategy named \"portableElementLocation\"\n runtimeLocation = self.getAssetManager().resolveBy('portableElementLocation', typeIdentifier);\n }\n if(runtimeLocation){\n localRequireConfig.paths[typeIdentifier] = runtimeLocation;\n require.config(localRequireConfig);\n }\n\n //load the entry point\n require([entryPoint], function(){\n\n var pic = _getPic(infoControl);\n if(pic && $dom.length){\n //call pci initialize() to render the pci\n pic.initialize(id, $dom[0], config);\n //restore context (state + response)\n pic.setSerializedState(state);\n return resolve();\n }\n return reject('Unable to initiliaze infoControl : ' + id);\n }, reject);\n });\n };\n\n /**\n * Reverse operation performed by render()\n * After this function is executed, only the inital naked markup remains\n * Event listeners are removed and the state and the response are reset\n *\n * @param {Object} infoControl\n */\n var destroy = function destroy(infoControl){\n _getPic(infoControl).destroy();\n };\n\n /**\n * Restore the state of the infoControl from the serializedState.\n *\n * @param {Object} infoControl - the element instance\n * @param {Object} state - the state to set\n */\n var setState = function setState(infoControl, state){\n _getPic(infoControl).setSerializedState(state);\n };\n\n /**\n * Get the current state of the infoControl as a string.\n * It enables saving the state for later usage.\n *\n * @param {Object} infoControl - the element instance\n * @returns {Object} the state\n */\n var getState = function getState(infoControl){\n return _getPic(infoControl).getSerializedState();\n };\n\n return {\n qtiClass : 'infoControl',\n template : tpl,\n getData : function(infoControl, data){\n\n //remove ns + fix media file path\n var markup = data.markup;\n markup = util.removeMarkupNamespaces(markup);\n markup = PortableElement.fixMarkupMediaSources(markup, this);\n data.markup = markup;\n return data;\n },\n render : render,\n getContainer : containerHelper.get,\n destroy : destroy,\n getState : getState,\n setState : setState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/rubricBlock', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div class=\\\"grid-row qti-rubricBlock\\\" data-use=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.use)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"rubricBlock\\\">\\n <div class=\\\"col-12\\\">\\n <div class=\\\"qti-rubricBlock-body\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</div>\\n </div>\\n</div>\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/RubricBlock',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/rubricBlock',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'rubricBlock',\n getContainer : containerHelper.get,\n template : tpl\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/stylesheet', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"media=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.media)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\n buffer += \"<link \\n href=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.href)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" \\n type=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.type)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" \\n rel=\\\"stylesheet\\\" \\n data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" \\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.media), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n />\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/Stylesheet',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/stylesheet',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'stylesheet',\n template : tpl,\n getContainer : containerHelper.get\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/gap', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<span class=\\\"qti-choice qti-gap\\\" data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\r\\n <span data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" class=\\\"gapmatch-content\\\">&nbsp;</span>\\r\\n</span>\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/choices/Gap',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/gap',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'gap',\n getContainer : containerHelper.get,\n template : tpl\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/gapImg', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"alt=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.objetLabel)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" \";\n return buffer;\n }\n\n buffer += \"<li class=\\\"qti-choice qti-gapImg selectable\\\" data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <img src=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = ((stack1 = (depth0 && depth0.object)),stack1 == null || stack1 === false ? stack1 : stack1.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.data)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" \\n width=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = ((stack1 = (depth0 && depth0.object)),stack1 == null || stack1 === false ? stack1 : stack1.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.width)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\\n height=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = ((stack1 = (depth0 && depth0.object)),stack1 == null || stack1 === false ? stack1 : stack1.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.height)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.objectLabel), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n />\\n</li>\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/choices/GapImg',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/gapImg',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'gapImg',\n getContainer : containerHelper.get,\n template : tpl\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/choice', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<li class=\\\"qti-choice\\\" data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</li>\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/choices/GapText',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/choice',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'gapText',\n getContainer : containerHelper.get,\n template : tpl\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/hottext', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<span class=\\\"qti-choice qti-hottext hottext\\\" data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\r\\n <label class=\\\"hottext-checkmark\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\">\\r\\n <span class=\\\"icon-checkbox small\\\"></span>\\r\\n </label>\\r\\n <span class=\\\"hottext-content\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</span>\\r\\n</span>\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/choices/Hottext',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/hottext',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'hottext',\n getContainer : containerHelper.get,\n template : tpl\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/inlineChoice', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<option data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" value=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</option>\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/choices/InlineChoice',[\n 'lodash',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/inlineChoice',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(_, tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'inlineChoice',\n getContainer : containerHelper.get,\n template : tpl,\n getData : function getData(choice, data){\n data.body = _.unescape(data.body);\n return data;\n }\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.AssociateInteraction',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/choice',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'simpleAssociableChoice.associateInteraction',\n getContainer : containerHelper.get,\n template : tpl\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/simpleAssociableChoice.matchInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<th class=\\\"qti-choice qti-associableChoice qti-simpleAssociableChoice\\\" data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</th>\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.MatchInteraction',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/simpleAssociableChoice.matchInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n return {\n qtiClass : 'simpleAssociableChoice.matchInteraction',\n getContainer : containerHelper.get,\n template : tpl\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/simpleChoice.choiceInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n <input type=\\\"radio\\\" name=\\\"response-\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.interaction)),stack1 == null || stack1 === false ? stack1 : stack1.serial)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" value=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" tabindex=\\\"1\\\">\\n <span class=\\\"icon-radio\\\"></span>\\n \";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n <input type=\\\"checkbox\\\" name=\\\"response-\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.interaction)),stack1 == null || stack1 === false ? stack1 : stack1.serial)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" value=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" tabindex=\\\"1\\\">\\n <span class=\\\"icon-checkbox\\\"></span>\\n \";\n return buffer;\n }\n\n buffer += \"<li class=\\\"qti-choice qti-simpleChoice\\\" data-identifier=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n <div class=\\\"pseudo-label-box\\\">\\n <label class=\\\"real-label\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.unique), {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </label>\\n <div class=\\\"label-box\\\">\\n <div class=\\\"label-content clear\\\" contenteditable=\\\"false\\\">\\n \";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </div>\\n </div>\\n </div>\\n</li>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.ChoiceInteraction',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/simpleChoice.choiceInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'simpleChoice.choiceInteraction',\n getContainer : containerHelper.get,\n getData:function(choice, data){\n data.unique = (parseInt(data.interaction.attributes.maxChoices) === 1);\n return data;\n },\n template : tpl\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.OrderInteraction',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/choices/choice',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'\n], function(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'simpleChoice.orderInteraction',\n getContainer : containerHelper.get,\n template : tpl\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/associateInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program7(depth0,data) {\n \n var stack1;\n stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-associateInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"associateInteraction\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <ul class=\\\"choice-area clearfix none block-listing solid horizontal source\\\" data-eyecatcher=\\\">li\\\">\\n \";\n options={hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data}\n if (helper = helpers.choices) { stack1 = helper.call(depth0, options); }\n else { helper = (depth0 && depth0.choices); stack1 = typeof helper === functionType ? helper.call(depth0, options) : helper; }\n if (!helpers.choices) { stack1 = blockHelperMissing.call(depth0, stack1, {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data}); }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </ul>\\n <ul class=\\\"result-area none target clearfix\\\">\\n </ul>\\n <div class=\\\"notification-container\\\"></div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/associateInteraction.pair', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, self=this;\n\nfunction program1(depth0,data) {\n \n \n return \"incomplete-pair\";\n }\n\n buffer += \"<li class=\\\"\";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.empty), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\">\\n <div class=\\\"target lft\\\"></div>\\n <div class=\\\"target rgt\\\"></div>\\n</li>\\n\";\n return buffer;\n });\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/instruction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div id=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" class=\\\"small feedback-info item-instruction\\\">\\n <span class=\\\"icon-info icon\\\"></span><span class=\\\"instruction-message\\\">\";\n if (helper = helpers.message) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.message); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</span>\\n</div>\";\n return buffer;\n });\n});\n\n","define('taoQtiItem/qtiCommonRenderer/helpers/instructions/Instruction',[\n 'lodash',\n 'taoQtiItem/qtiItem/helper/util',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/instruction',\n], function(_, util, instructionTpl){\n\n var _notificationLevels = ['info', 'warning', 'error', 'success'];\n\n var Instruction = function(interaction, message, callback){\n this.interaction = interaction;\n this.defaultMessage = message || '';\n this.currentMessage = '';\n this.level = 'info';\n this.serial = util.buildSerial('instruction_');\n this.callback = callback;\n this.$dom = null;\n this.state = false;\n };\n\n Instruction.isValidLevel = function(level){\n return (_.indexOf(_notificationLevels, level) >= 0);\n };\n\n Instruction.prototype.setState = function(state){\n this.state = state;\n };\n\n Instruction.prototype.checkState = function(state){\n return (this.state === state);\n };\n\n Instruction.prototype.getId = function(){\n return this.serial;\n };\n\n Instruction.prototype.create = function($container){\n\n $container.append(instructionTpl({\n 'message' : this.defaultMessage,\n 'serial' : this.serial\n }));\n\n this.$dom = $container.find('#' + this.serial);\n };\n\n Instruction.prototype.update = function(options){\n\n var level = (options && options.level) ? options.level : '',\n message = (options && options.message) ? options.message : '',\n timeout = (options && options.timeout) ? options.timeout : 0,\n start = (options && typeof(options.start) === 'function') ? options.start : null,\n stop = (options && typeof(options.stop) === 'function') ? options.stop : null;\n\n if(level && Instruction.isValidLevel(level)){\n this.$dom.removeClass('feedback-' + this.level).addClass('feedback-' + level);\n this.$dom.find('.icon').removeClass('icon-' + this.level).addClass('icon-' + level);\n this.level = level;\n }\n\n if(message){\n this.$dom.find('.instruction-message').html(message);\n this.currentMessage = message;\n }\n\n if(timeout){\n var _this = this;\n if(start){\n start.call(_this);\n }\n _this.timer = setTimeout(function(){\n if(stop){\n stop.call(_this);\n }\n _this.timer = null;\n }, timeout);\n }\n\n };\n\n Instruction.prototype.setLevel = function(level, timeout){\n var options = {\n level : level\n };\n \n if(timeout){\n options.timeout = parseInt(timeout);\n options.stop = function(){\n this.setLevel('info');\n };\n }\n \n this.update(options);\n };\n \n Instruction.prototype.getLevel = function() {\n return this.level;\n };\n\n Instruction.prototype.setMessage = function(message, timeout){\n this.update({message : message, timeout : timeout});\n };\n\n Instruction.prototype.reset = function(){\n this.update({level : 'info', message : this.defaultMessage});\n this.state = false;\n };\n\n Instruction.prototype.validate = function(data){\n if(typeof(this.callback) === 'function'){\n this.callback.call(this, data);\n }\n };\n\n return Instruction;\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/notification', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, helperMissing=helpers.helperMissing;\n\n\n buffer += \"<div class=\\\"small feedback-\";\n if (helper = helpers.level) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.level); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \" item-notification\\\">\\n <span class=\\\"icon-\";\n if (helper = helpers.level) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.level); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\"></span><span class=\\\"feedback-message\\\">\";\n if (helper = helpers.message) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.message); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"</span>\\n <span title=\\\"\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Remove Message\", options) : helperMissing.call(depth0, \"__\", \"Remove Message\", options)))\n + \"\\\" class=\\\"icon-close close-trigger\\\"></span>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',[\n 'lodash',\n 'jquery',\n 'i18n',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/Instruction',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/notification'\n], function(_, $, __, containerHelper, Instruction, notifTpl){\n 'use strict';\n\n //stores the instructions\n var _instructions = {};\n\n /**\n * The instruction manager helps you in managing instructions and\n * constraints on a QTI Element, usually an interaction or a choice.\n *\n * @exports qtiCommonRenderer/helpers/Instructions/instructionManager\n */\n var instructionManager = {\n\n /**\n * Validate the instructions of an element\n * @param {QtiElement} element - a QTI element like an interaction or a choice\n * @param {Object} [data] - any data to give to the instructions\n */\n validateInstructions : function(element, data){\n var serial = element.getSerial();\n if(_instructions[serial]){\n _.each(_instructions[serial], function(instruction){\n instruction.validate(data || {});\n });\n }\n },\n\n /**\n * Add a new instructions to an element\n * @param {QtiElement} element - a QTI element like an interaction or a choice\n * @param {String} message - the message to give to display to the user when the instruction is validated\n * @param {Function} validateCallback - how to validate the instruction\n * @returns {Instruction} the created instruction\n */\n appendInstruction : function(element, message, validateCallback){\n var serial = element.getSerial(),\n instruction = new Instruction(element, message, validateCallback);\n\n if(!_instructions[serial]){\n _instructions[serial] = {};\n }\n _instructions[serial][instruction.getId()] = instruction;\n\n instruction.create($('.instruction-container', containerHelper.get(element)));\n\n return instruction;\n },\n\n /**\n * Remove instructions from an element\n * @param {QtiElement} element - a QTI element like an interaction or a choice\n */\n removeInstructions : function(element){\n _instructions[element.getSerial()] = {};\n containerHelper.get(element).find('.instruction-container').empty();\n },\n\n /**\n * Reset the instructions states for an element (but keeps configuration)\n * @param {Object} element - the qti object, ie. interaction, choice, etc.\n */\n resetInstructions : function(element){\n var serial = element.getSerial();\n if(_instructions[serial]){\n _.each(_instructions[serial], function(instruction){\n instruction.reset();\n });\n }\n },\n\n /**\n * Default instuction set with a min/max constraints.\n * @param {Object} interaction\n * @param {jQueryElement} $container\n * @param {Object} options\n * @param {Number} [options.min = 0] -\n * @param {Number} [options.max = 0] -\n * @param {Function} options.getResponse - a ref to a function that get the raw response (array) from the interaction in parameter\n * @param {Function} [options.onError] - called by once an error occurs with validateInstruction data in parameters\n */\n minMaxChoiceInstructions : function(interaction, options){\n\n var self = this,\n min = options.min || 0,\n max = options.max || 0,\n getResponse = options.getResponse,\n onError = options.onError || _.noop(),\n choiceCount = options.choiceCount === false ? false : _.size(interaction.getChoices()),\n minInstructionSet = false,\n msg;\n\n if(!_.isFunction(getResponse)){\n throw \"invalid parameter getResponse\";\n }\n\n //if maxChoice = 0, inifinite choice possible\n if(max > 0 && (choiceCount === false || max < choiceCount)){\n if(max === min){\n minInstructionSet = true;\n msg = (max <= 1) ? __('You must select exactly %d choice', max) : __('You must select exactly %d choices', max);\n\n self.appendInstruction(interaction, msg, function(data){\n\n if(getResponse(interaction).length >= max){\n this.setLevel('success');\n if(this.checkState('fulfilled')){\n this.update({\n level : 'warning',\n message : __('Maximum choices reached'),\n timeout : 2000,\n start : function(){\n onError(data);\n },\n stop : function(){\n this.update({level : 'success', message : msg});\n }\n });\n }\n this.setState('fulfilled');\n }else{\n this.reset();\n }\n });\n }else if(max > min){\n msg = (max <= 1) ? __('You can select maximum %d choice', max) : __('You can select maximum %d choices', max);\n self.appendInstruction(interaction, msg, function(data){\n\n if(getResponse(interaction).length >= max){\n\n this.setLevel('success');\n this.setMessage(__('Maximum choices reached'));\n if(this.checkState('fulfilled')){\n this.update({\n level : 'warning',\n timeout : 2000,\n start : function(){\n onError(data);\n },\n stop : function(){\n this.setLevel('info');\n }\n });\n }\n\n this.setState('fulfilled');\n }else{\n this.reset();\n }\n });\n }\n }\n\n if(!minInstructionSet && min > 0 && (choiceCount === false || min < choiceCount)){\n msg = (min <= 1) ? __('You must at least %d choice', min) : __('You must select at least %d choices', max);\n self.appendInstruction(interaction, msg, function(){\n if(getResponse(interaction).length >= min){\n this.setLevel('success');\n }else{\n this.reset();\n }\n });\n }\n },\n\n /**\n * Appends a instruction notification message\n * @deprecated in favor of instructions\n * @param {QtiElement} element - a QTI element like an interaction or a choice\n * @param {String} message - the message to give to display\n * @param {String} [level = 'info'] - the notification level in info, success, error or warning\n */\n appendNotification : function(element, message, level){\n\n level = level || 'info';\n\n if(Instruction.isValidLevel(level)){\n\n var $container = containerHelper.get(element);\n\n $container.find('.notification-container').prepend(notifTpl({\n 'level' : level,\n 'message' : message\n }));\n\n var $notif = $container.find('.item-notification:first');\n var _remove = function(){\n $notif.fadeOut();\n };\n\n $notif.find('.close-trigger').on('click', _remove);\n setTimeout(_remove, 2000);\n\n return $notif;\n }\n },\n\n /**\n * Removes all the displayed notifications\n * @deprecated in favor of instructions\n */\n removeNotifications : function(element){\n containerHelper.get(element).find('.item-notification').remove();\n }\n };\n return instructionManager;\n});\n\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/PciPrettyPrint',['lodash'], function(_){\n \n 'use strict';\n\n var _formatters = {\n boolean : function(value){\n return value ? 'true' : 'false';\n },\n integer : function(value){\n return value;\n },\n float : function(value){\n return value;\n },\n string : function(value){\n return (value === '') ? 'NULL' : ('\"' + value + '\"');\n },\n point : function(value){\n return '[' + value[0] + ', ' + value[1] + ']';\n },\n pair : function(value){\n return '[' + value[0] + ', ' + value[1] + ']';\n },\n directedPair : function(value){\n return '[' + value[0] + ', ' + value[1] + ']';\n },\n duration : function(value){\n return value;\n },\n file : function(value){\n return 'binary data';\n },\n uri : function(value){\n return value;\n },\n intOrIdentifier : function(value){\n return value;\n },\n identifier : function(value){\n return value;\n }\n };\n \n /**\n * Return the pretty print string for a qti base variable\n * \n * @param {type} value\n * @param {type} withType - the qti baseType\n * @returns {String}\n */\n function printBase(value, withType){\n\n var print = '',\n base = value.base;\n\n withType = (typeof withType !== 'undefined') ? withType : true;\n\n if(base){\n \n _.forIn(_formatters, function(formatter, baseType){\n if(base[baseType] !== undefined){\n\n print += (withType) ? '(' + baseType + ') ' : '';\n print += formatter(base[baseType]);\n\n return false;\n }\n });\n\n return print;\n }\n\n };\n \n /**\n * Return the pretty print string for a qti list variable\n * \n * @param {object} value\n * @param {string} withType - the qti basetype of the list\n * @returns {string}\n */\n function printList(value, withType){\n\n var print = '',\n list = value.list;\n\n withType = (typeof withType !== 'undefined') ? withType : true;\n\n if(list){\n\n _.forIn(_formatters, function(formatter, baseType){\n if(list[baseType] !== undefined){\n\n print += (withType) ? '(' + baseType + ') ' : '';\n\n print += '[';\n\n _.each(list[baseType], function(value){\n print += formatter(value) + ', ';\n });\n\n if(_.size(list[baseType])){\n print = print.substring(0, print.length - 2);\n }\n\n print += ']';\n\n return false;\n }\n });\n\n return print;\n }\n };\n \n /**\n * Return the pretty print string for a qti record variable\n * \n * @param {object} value\n * @returns {String}\n */\n function printRecord(value){\n if(value && value.record){\n return '(record) ' + JSON.stringify(value.record);\n }\n return '';\n }\n \n return {\n printBase : printBase,\n printList : printList,\n printRecord : printRecord\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/PciResponse',['lodash', 'taoQtiItem/qtiCommonRenderer/helpers/PciPrettyPrint'], function(_, pciPrettyPrint){\n 'use strict';\n\n var _qtiModelPciResponseCardinalities = {\n single : 'base',\n multiple : 'list',\n ordered : 'list',\n record : 'record'\n };\n\n return {\n\n /**\n * Parse a response variable formatted according to IMS PCI: http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * @see serialize\n * @param {Object} response\n * @param {Object} interaction\n * @returns {Array}\n */\n unserialize : function(response, interaction){\n\n var ret = [],\n responseDeclaration = interaction.getResponseDeclaration(),\n baseType = responseDeclaration.attr('baseType'),\n cardinality = responseDeclaration.attr('cardinality'),\n mappedCardinality;\n\n if(_qtiModelPciResponseCardinalities[cardinality]){\n mappedCardinality = _qtiModelPciResponseCardinalities[cardinality];\n var responseValues = response[mappedCardinality];\n\n if(responseValues === null){\n ret = [];\n }else if(_.isObject(responseValues)){\n if(responseValues[baseType] !== undefined){\n ret = responseValues[baseType];\n ret = _.isArray(ret) ? ret : [ret];\n }else{\n throw 'invalid response baseType';\n }\n }else{\n throw 'invalid response cardinality, expected '+cardinality+' ('+mappedCardinality+')';\n }\n }else{\n throw 'unknown cardinality in the responseDeclaration of the interaction';\n }\n\n return ret;\n },\n /**\n * Serialize the input response array into the format to be send to result server according to IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n * With the only exception for empty response, which is represented by a javascript \"null\" value\n *\n * @see http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n * @param {Array} responseValues\n * @param {Object} interaction\n * @returns {Object|null}\n */\n serialize : function(responseValues, interaction){\n\n if(!_.isArray(responseValues)){\n throw 'invalid argument : responseValues must be an Array';\n }\n\n var response = {},\n responseDeclaration = interaction.getResponseDeclaration(),\n baseType = responseDeclaration.attr('baseType'),\n cardinality = responseDeclaration.attr('cardinality'),\n mappedCardinality;\n\n if(_qtiModelPciResponseCardinalities[cardinality]){\n mappedCardinality = _qtiModelPciResponseCardinalities[cardinality];\n if(mappedCardinality === 'base'){\n if(responseValues.length === 0){\n //return empty response:\n response.base = null;\n }else{\n response.base = {};\n response.base[baseType] = responseValues[0];\n }\n }else{\n response[mappedCardinality] = {};\n response[mappedCardinality][baseType] = responseValues;\n }\n }else{\n throw 'unknown cardinality in the responseDeclaration of the interaction';\n }\n\n return response;\n },\n isEmpty : function(response){\n return (\n response === null\n || _.isEmpty(response)\n || response.base === null\n || _.isArray(response.list) && _.isEmpty(response.list)\n || _.isArray(response.record) && _.isEmpty(response.record)\n );\n },\n\n /**\n * Print a PCI JSON response into a human-readable string.\n *\n * @param {Object} response A response in PCI JSON representation.\n * @returns {String} A human-readable version of the PCI JSON representation.\n */\n prettyPrint: function(response) {\n var print = '';\n\n if (typeof response.base !== 'undefined') {\n // -- BaseType.\n print += pciPrettyPrint.printBase(response, true);\n }\n else if (typeof response.list !== 'undefined') {\n // -- ListType\n print += pciPrettyPrint.printList(response, true);\n }\n else if (typeof response.record !== 'undefined') {\n // -- RecordType\n print += pciPrettyPrint.printRecord(response, true);\n }\n else {\n throw 'Not a valid PCI JSON Response';\n }\n\n return print;\n }\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n *\n * @author dieter <dieter@taotesting.com>\n */\ndefine('util/capitalize',[\n 'lodash'\n], function (_) {\n 'use strict';\n\n\n /**\n * Capitalize a word or a group of words\n *\n * @param {String} input the word to capitalize, will be applied after every ' '\n * @param {Boolean} allWords capitalize all words, similar to PHP's ucWords()\n * @returns {*}\n */\n var capitalize = function capitalize(input, allWords) {\n var ucFirst = function ucFirst(str){\n return str.charAt(0).toUpperCase() + str.substr(1);\n };\n\n\n if(!_.isString(input)) {\n return input;\n }\n\n if(allWords !== false && input.indexOf(' ') > -1) {\n return _.map(input.split(' '), ucFirst).join(' ');\n }\n return ucFirst(input);\n };\n\n\n /**\n * @exports capitalize\n */\n return capitalize;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n\ndefine('util/adaptSize',[\n 'jquery',\n 'util/capitalize'\n], function ($, capitalize) {\n 'use strict';\n\n /**\n * Adapts the size of several elements\n */\n var adaptSize = (function () {\n\n\n /**\n * The actual resize function\n *\n * @param {jQueryElements} elements\n * @param {Object} dimensions\n * @private\n */\n var _resize = function ($elements, dimensions) {\n\n // This whole function is based on calculating the largest height/width.\n // Therefor the elements need to have style.height/width to be removed\n // otherwise we could never track when something is actually getting smaller than before.\n $elements.each(function () {\n for (var dimension in dimensions) {\n if (dimensions.hasOwnProperty(dimension)) {\n $(this)[dimension]('auto');\n }\n }\n });\n\n $elements.each(function () {\n for (var dimension in dimensions) {\n if (dimensions.hasOwnProperty(dimension)) {\n dimensions[dimension] = Math.max(Math.floor(dimensions[dimension] || 0), $(this)['outer' + capitalize(dimension)]());\n }\n }\n });\n\n $elements.css(dimensions);\n };\n\n return {\n /**\n * Adapt the width of multiple elements to the widest one\n *\n * @param {jQueryElements} $elements\n * @param {Integer|undefined} [minWidth] default: 0\n */\n width: function ($elements, minWidth) {\n _resize($elements, { width: minWidth });\n },\n\n /**\n * Adapt the height of multiple elements to the highest one\n *\n * @param {jQueryElements} $elements\n * @param {Integer|undefined}[minHeight] default: 0\n */\n height: function ($elements, minHeight) {\n _resize($elements, { height: minHeight });\n },\n\n /**\n * Adapt the width/height of multiple elements to the widest/highest one\n *\n * @param {jQueryElements} $elements\n * @param {Integer|undefined} [minWidth] default: 0\n * @param {Integer|undefined} [minHeight] default: 0\n */\n both: function ($elements, minWidth, minHeight) {\n _resize($elements, { height: minHeight, width: minWidth });\n }\n };\n\n })();\n\n return adaptSize;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/sizeAdapter',[\n 'jquery',\n 'lodash',\n 'util/adaptSize',\n 'ui/waitForMedia'\n], function ($, _, adaptSize, waitForMedia) {\n\n 'use strict';\n\n return {\n\n /**\n * Resize jQueryElement that have changed their dimensions due to a change of the content\n *\n * @param {jQueryElement|widget} target\n */\n adaptSize: function (target) {\n\n var $elements;\n var $container;\n\n switch (true) {\n // widget\n case (typeof target.$container !== 'undefined'):\n $elements = target.$container.find('.add-option, .result-area .target, .choice-area .qti-choice');\n $container = target.$container;\n break;\n\n // jquery elements\n default:\n $elements = target;\n $container = $($elements).first().parent();\n }\n\n $container.waitForMedia(function () {\n adaptSize.height($elements);\n });\n }\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * Creates and triggers a mouseEvent\n * Deprecated method initMouseEvent is mainly used for current (2.1) PhantomJS compatibility\n *\n * @example triggerMouseEvent(\n * document.getElementById('#button'),\n * 'click',\n * {\n * bubbles: true,\n * cancelable: true\n * }\n * );\n *\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n * @author Christophe Noël <christophe@taotesting.com>\n */\ndefine('core/mouseEvent',[], function () {\n 'use strict';\n\n var dispatchEvent;\n var allowedEvents = [\n 'click',\n 'contextmenu',\n 'dblclick',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'show'\n ];\n\n /**\n * Creates an event (requires IE > 9)\n * @param {String} eventName\n * @param {*} eventOptions\n * @returns {Event}\n */\n var createEvent = function createEvent(eventName, eventOptions) {\n var event;\n try {\n event = new MouseEvent(eventName, eventOptions);\n } catch (e) {\n event = document.createEvent('MouseEvents');\n event.initMouseEvent(\n eventName,\n eventOptions.bubbles || false,\n eventOptions.cancelable || false,\n eventOptions.view || null,\n eventOptions.detail || 0,\n eventOptions.screenX || 0,\n eventOptions.screenY || 0,\n eventOptions.clientX || 0,\n eventOptions.clientY || 0,\n eventOptions.ctrlKey || false,\n eventOptions.altKey || false,\n eventOptions.shiftKey || false,\n eventOptions.metaKey || false,\n eventOptions.button || 0,\n eventOptions.relatedTarget || null\n );\n }\n return event;\n };\n\n /**\n * Dispatches an event\n * @param {HTMLElement} element\n * @param {String} eventName\n * @param {Event} event\n * @returns {Boolean} Returns `true` if the event has been dispatched\n */\n if (document.dispatchEvent) {\n dispatchEvent = function dispatchEventUsingDispatchEvent(element, eventName, event) {\n if (element) {\n element.dispatchEvent(event);\n return true;\n }\n return false;\n };\n } else if (document.fireEvent) {\n dispatchEvent = function dispatchEventUsingFireEvent(element, eventName, event) {\n if (element) {\n element.fireEvent('on' + eventName, event);\n return true;\n }\n return false;\n };\n } else {\n dispatchEvent = function dispatchEventDummy() {\n return false;\n };\n }\n\n\n /**\n * Triggers a mouse event using native methods\n * @param {HTMLElement} element\n * @param {String} eventName\n * @param {Object} eventOptions https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/MouseEvent\n * @returns {Boolean} Returns true if the event has been successfully triggered\n */\n return function triggerMouseEvent(element, eventName, eventOptions) {\n var event;\n\n if (allowedEvents.indexOf(eventName) === -1) {\n return false;\n }\n event = createEvent(eventName, eventOptions);\n return dispatchEvent(element, eventName, event);\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n/**\n * Helpers for interact library\n *\n * @author Christope Noël <christophe@taotesting.com>\n */\ndefine('ui/interactUtils',[\n 'jquery',\n 'lodash',\n 'interact',\n 'core/mouseEvent'\n], function($, _, interact, triggerMouseEvent) {\n 'use strict';\n\n var simulateDrop = null;\n\n function iFrameDragFixCb() {\n simulateDrop();\n interact.stop();\n }\n\n var interactHelper = {\n\n /**\n * Chrome/Safari fix: manually drop a dragged element when the mouse leaves the item runner iframe\n * Without this fix, following behaviour is to be expected:\n * - drag an element, move the mouse out of the browser window, release mouse button\n * - when the mouse enter again the browser window, the drag will continue even though the mouse button has been released\n * This only occurs with iFrames.\n * Thus, this fix should be removed when the old test runner is discarded\n *\n * @param {Function} simulateDropCb manually triggers handlers registered for drop and dragend events\n */\n iFrameDragFixOn: function iFrameDragFixOn(simulateDropCb) {\n simulateDrop = simulateDropCb;\n document.body.addEventListener('mouseleave', iFrameDragFixCb);\n },\n iFrameDragFixOff: function iFrameDragFixOff() {\n document.body.removeEventListener('mouseleave', iFrameDragFixCb);\n },\n\n /**\n * triggers an interact 'tap' event\n * @param {HtmlElement|jQueryElement} element\n * @param {Function} cb callback\n * @param {int} delay in milliseconds before firing the callback\n */\n tapOn: function tapOn(element, cb, delay) {\n var domElement,\n eventOptions = {\n bubbles: true\n };\n if (element) {\n domElement = (element instanceof $) ? element.get(0) : element;\n\n triggerMouseEvent(domElement, 'mousedown', eventOptions);\n triggerMouseEvent(domElement, 'mouseup', eventOptions);\n\n if (cb) {\n _.delay(cb, delay || 0);\n }\n }\n },\n\n /**\n * This should be bound to the onmove event of a draggable element\n * @param {HtmlElement|jQueryElement} element\n * @param {integer} dx event.dx value\n * @param {integer} dy event.dy value\n */\n moveElement: function moveElement(element, dx, dy) {\n var domElement = (element instanceof $) ? element.get(0) : element,\n x = (parseFloat(domElement.getAttribute('data-x')) || 0) + dx,\n y = (parseFloat(domElement.getAttribute('data-y')) || 0) + dy,\n transform = 'translate(' + x + 'px, ' + y + 'px) translateZ(0px)';\n\n domElement.style.webkitTransform = transform;\n domElement.style.transform = transform;\n\n domElement.setAttribute('data-x', x);\n domElement.setAttribute('data-y', y);\n },\n\n /**\n * This can be bound to the onend event of a draggable element, for example\n * @param {HtmlElement|jQueryElement} element\n */\n restoreOriginalPosition: function restoreOriginalPosition(element) {\n var domElement = (element instanceof $) ? element.get(0) : element;\n\n domElement.style.webkitTransform = 'translate(0px, 0px) translateZ(0px)';\n domElement.style.transform = 'translate(0px, 0px) translateZ(0px)';\n\n domElement.setAttribute('data-x', 0);\n domElement.setAttribute('data-y', 0);\n }\n };\n\n return interactHelper;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/AssociateInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/associateInteraction',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/associateInteraction.pair',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'taoQtiItem/qtiCommonRenderer/helpers/sizeAdapter',\n 'interact',\n 'ui/interactUtils'\n], function ($, _, __, Promise, tpl, pairTpl, containerHelper, instructionMgr, pciResponse, sizeAdapter, interact, interactUtils) {\n\n 'use strict';\n\n var setChoice = function(interaction, $choice, $target){\n\n var $container = containerHelper.get(interaction);\n var choiceSerial = $choice.data('serial');\n var usage = $choice.data('usage') || 0;\n var choice = interaction.getChoice(choiceSerial);\n\n if(!choiceSerial){\n throw 'empty choice serial';\n }\n\n //to track number of times a choice is used in a pair\n usage++;\n $choice.data('usage', usage);\n\n var _setChoice = function(){\n\n $target\n .data('serial', choiceSerial)\n .html($choice.html())\n .addClass('filled');\n\n if(!interaction.responseMappingMode &&\n choice.attr('matchMax') &&\n usage >= choice.attr('matchMax')){\n\n $choice.addClass('deactivated');\n }\n };\n\n if($target.siblings('div').hasClass('filled')){\n\n var $resultArea = $('.result-area', $container),\n $pair = $target.parent(),\n thisPairSerial = [$target.siblings('div').data('serial'), choiceSerial],\n $otherRepeatedPair = $();\n\n //check if it is not a repeating association!\n $resultArea.children().not($pair).each(function(){\n var $otherPair = $(this).children('.filled');\n if($otherPair.length === 2){\n var otherPairSerial = [$($otherPair[0]).data('serial'), $($otherPair[1]).data('serial')];\n if(_.intersection(thisPairSerial, otherPairSerial).length === 2){\n $otherRepeatedPair = $otherPair;\n return false;\n }\n }\n });\n\n if($otherRepeatedPair.length === 0){\n //no repeated pair, so allow the choice to be set:\n _setChoice();\n\n //trigger pair made event\n containerHelper.triggerResponseChangeEvent(interaction, {\n type : 'added',\n $pair : $pair,\n choices : thisPairSerial\n });\n\n instructionMgr.validateInstructions(interaction, {choice : $choice, target : $target});\n\n if(interaction.responseMappingMode || parseInt(interaction.attr('maxAssociations')) === 0){\n\n $pair.removeClass('incomplete-pair');\n\n //append new pair option?\n if(!$resultArea.children('.incomplete-pair').length){\n $resultArea.append(pairTpl({empty : true}));\n $resultArea.children('.incomplete-pair').fadeIn(600, function(){\n $(this).show();\n });\n }\n }\n }else{\n //repeating pair: show it:\n\n //@todo add a notification message here in warning\n $otherRepeatedPair.css('border', '1px solid orange');\n $target.html(__('identical pair already exists')).css({\n color : 'orange',\n border : '1px solid orange'\n });\n setTimeout(function(){\n $otherRepeatedPair.removeAttr('style');\n $target.empty().css({color:\"\",border:\"\"});\n }, 2000);\n }\n\n }else{\n _setChoice();\n }\n };\n\n var unsetChoice = function(interaction, $filledChoice, animate, triggerChange){\n\n var $container = containerHelper.get(interaction);\n var choiceSerial = $filledChoice.data('serial');\n var $choice = $container.find('.choice-area [data-serial=' + choiceSerial + ']');\n var usage = $choice.data('usage') || 0;\n var $parent = $filledChoice.parent();\n\n //decrease the use for this choice\n usage--;\n\n $choice\n .data('usage', usage)\n .removeClass('deactivated');\n\n\n $filledChoice\n .removeClass('filled')\n .removeData('serial')\n .empty();\n\n if(!interaction.swapping){\n\n if(triggerChange !== false){\n //a pair with one single element is not valid, so consider the response to be modified:\n containerHelper.triggerResponseChangeEvent(interaction, {\n type : 'removed',\n $pair : $filledChoice.parent()\n });\n instructionMgr.validateInstructions(interaction, {choice : $choice});\n }\n //completely empty pair:\n if(!$choice.siblings('div').hasClass('filled') && (parseInt(interaction.attr('maxAssociations')) === 0 || interaction.responseMappingMode)){\n //shall we remove it?\n if(!$parent.hasClass('incomplete-pair')){\n if(animate){\n $parent.addClass('removing').fadeOut(500, function(){\n $(this).remove();\n });\n }else{\n $parent.remove();\n }\n }\n }\n }\n };\n\n var getChoice = function(interaction, identifier){\n var $container = containerHelper.get(interaction);\n\n //warning: do not use selector data-identifier=identifier because data-identifier may change dynamically\n var choice = interaction.getChoiceByIdentifier(identifier);\n if(!choice){\n throw new Error('cannot find a choice with the identifier : ' + identifier);\n }\n return $('.choice-area [data-serial=' + choice.getSerial() + ']', $container);\n };\n\n var renderEmptyPairs = function(interaction){\n\n var $container = containerHelper.get(interaction);\n var max = parseInt(interaction.attr('maxAssociations'));\n var $resultArea = $('.result-area', $container);\n\n if(interaction.responseMappingMode || max === 0){\n $resultArea.append(pairTpl({empty : true}));\n $resultArea.children('.incomplete-pair').show();\n }else{\n for(var i = 0; i < max; i++){\n $resultArea.append(pairTpl());\n }\n }\n };\n\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10291\n *\n * @param {object} interaction\n */\n var render = function(interaction){\n\n var self = this;\n\n return new Promise(function(resolve, reject){\n\n var $container = containerHelper.get(interaction);\n var $choiceArea = $container.find('.choice-area');\n var $resultArea = $container.find('.result-area');\n\n var $activeChoice = null;\n\n var isDragAndDropEnabled;\n var dragOptions;\n var dropOptions;\n\n var $bin = $('<span>', {'class' : 'icon-undo remove-choice', 'title' : __('remove')});\n\n var choiceSelector = $choiceArea.selector + ' >li';\n var resultSelector = $resultArea.selector + ' >li>div';\n var binSelector = $container.selector + \" .remove-choice\";\n\n var _getChoice = function(serial){\n return $choiceArea.find('[data-serial=' + serial + ']');\n };\n\n /**\n * @todo Tried to store $resultArea.find[...] in a variable but this fails\n * @param $choice\n * @param $target\n * @private\n */\n var _setChoice = function($choice, $target){\n setChoice(interaction, $choice, $target);\n sizeAdapter.adaptSize($('.result-area .target, .choice-area .qti-choice', containerHelper.get(interaction)));\n };\n\n var _resetSelection = function(){\n if($activeChoice){\n $resultArea.find('.remove-choice').remove();\n $activeChoice.removeClass('active');\n $container.find('.empty').removeClass('empty');\n $activeChoice = null;\n }\n };\n\n var _unsetChoice = function($choice){\n unsetChoice(interaction, $choice, true);\n sizeAdapter.adaptSize($('.result-area .target, .choice-area .qti-choice', containerHelper.get(interaction)));\n };\n\n var _isInsertionMode = function(){\n return ($activeChoice && $activeChoice.data('identifier'));\n };\n\n var _isModeEditing = function(){\n return ($activeChoice && !$activeChoice.data('identifier'));\n };\n\n var _handleChoiceActivate = function($target) {\n if($target.hasClass('deactivated')){\n return;\n }\n\n if(_isModeEditing()){\n //swapping:\n interaction.swapping = true;\n _unsetChoice($activeChoice);\n _setChoice($target, $activeChoice);\n _resetSelection();\n interaction.swapping = false;\n }else{\n if($target.hasClass('active')){\n _resetSelection();\n\n }else{\n _activateChoice($target);\n }\n }\n };\n\n var _activateChoice = function($choice) {\n _resetSelection();\n $activeChoice = $choice;\n $choice.addClass('active');\n $resultArea.find('>li>.target').addClass('empty');\n };\n\n var _handleResultActivate = function($target) {\n var choiceSerial,\n targetSerial = $target.data('serial');\n\n if(_isInsertionMode()){\n\n choiceSerial = $activeChoice.data('serial');\n\n if(targetSerial !== choiceSerial){\n\n if($target.hasClass('filled')){\n interaction.swapping = true;//hack to prevent deleting empty pair in infinite association mode\n }\n //set choices:\n if(targetSerial){\n _unsetChoice($target);\n }\n _setChoice($activeChoice, $target);\n\n //always reset swapping mode after the choice is set\n interaction.swapping = false;\n }\n\n _resetSelection();\n\n }else if(_isModeEditing()){\n\n choiceSerial = $activeChoice.data('serial');\n\n if(targetSerial !== choiceSerial){\n\n if($target.hasClass('filled') || $activeChoice.siblings('div')[0] === $target[0]){\n interaction.swapping = true;//hack to prevent deleting empty pair in infinite association mode\n }\n\n _unsetChoice($activeChoice);\n if(targetSerial){\n //swapping:\n _unsetChoice($target);\n _setChoice(_getChoice(targetSerial), $activeChoice);\n }\n _setChoice(_getChoice(choiceSerial), $target);\n\n //always reset swapping mode after the choice is set\n interaction.swapping = false;\n }\n\n _resetSelection();\n\n }else if(targetSerial){\n _activateResult($target);\n $target.append($bin);\n }\n };\n\n var _activateResult = function ($target) {\n var targetSerial = $target.data('serial');\n\n $activeChoice = $target;\n $activeChoice.addClass('active');\n\n $resultArea.find('>li>.target').filter(function(){\n return $(this).data('serial') !== targetSerial;\n }).addClass('empty');\n\n $choiceArea.find('>li:not(.deactivated)').filter(function(){\n return $(this).data('serial') !== targetSerial;\n }).addClass('empty');\n };\n\n\n // Point & click handlers\n\n interact($container.selector).on('tap', function() {\n _resetSelection();\n });\n\n interact($choiceArea.selector + ' >li').on('tap', function(e) {\n var $target = $(e.currentTarget);\n e.stopPropagation();\n _handleChoiceActivate($target);\n e.preventDefault();\n });\n\n interact($resultArea.selector + ' >li>div').on('tap', function(e) {\n var $target = $(e.currentTarget);\n e.stopPropagation();\n _handleResultActivate($target);\n e.preventDefault();\n });\n\n interact(binSelector).on('tap', function (e) {\n e.stopPropagation();\n _unsetChoice($activeChoice);\n _resetSelection();\n e.preventDefault();\n });\n\n if(!interaction.responseMappingMode){\n _setInstructions(interaction);\n }\n\n\n // Drag & drop handlers\n\n if (self.getOption && self.getOption(\"enableDragAndDrop\") && self.getOption(\"enableDragAndDrop\").associate) {\n isDragAndDropEnabled = self.getOption(\"enableDragAndDrop\").associate;\n }\n\n function _iFrameDragFix(draggableSelector, target) {\n interactUtils.iFrameDragFixOn(function () {\n var $activeDrop = $(resultSelector + '.dropzone');\n if ($activeDrop.length) {\n interact(resultSelector).fire({\n type: 'drop',\n target: $activeDrop.eq(0),\n relatedTarget: target\n });\n }\n $activeDrop = $(choiceSelector + '.dropzone');\n if ($activeDrop.length) {\n interact(choiceSelector + '.empty').fire({\n type: 'drop',\n target: $activeDrop.eq(0),\n relatedTarget: target\n });\n }\n interact(draggableSelector).fire({\n type: 'dragend',\n target: target\n });\n });\n }\n\n if (isDragAndDropEnabled) {\n dragOptions = {\n inertia: false,\n autoScroll: true,\n restrict: {\n restriction: \".qti-interaction\",\n endOnly: false,\n elementRect: {top: 0, left: 0, bottom: 1, right: 1}\n }\n };\n\n // makes choices draggables\n interact(choiceSelector + ':not(.deactivated)').draggable(_.defaults({\n onstart: function (e) {\n var $target = $(e.target);\n $target.addClass(\"dragged\");\n _activateChoice($target);\n _iFrameDragFix(choiceSelector + ':not(.deactivated)', e.target);\n },\n onmove: function (e) {\n interactUtils.moveElement(e.target, e.dx, e.dy);\n },\n onend: function (e) {\n var $target = $(e.target);\n $target.removeClass(\"dragged\");\n _resetSelection();\n\n interactUtils.restoreOriginalPosition($target);\n interactUtils.iFrameDragFixOff();\n }\n }, dragOptions)).styleCursor(false);\n\n // makes results draggables\n interact(resultSelector + '.filled').draggable(_.defaults({\n onstart: function (e) {\n var $target = $(e.target);\n $target.addClass(\"dragged\");\n _resetSelection();\n _activateResult($target);\n _iFrameDragFix(resultSelector + '.filled', e.target);\n },\n onmove: function (e) {\n interactUtils.moveElement(e.target, e.dx, e.dy);\n },\n onend: function (e) {\n var $target = $(e.target);\n $target.removeClass(\"dragged\");\n\n interactUtils.restoreOriginalPosition($target);\n\n if ($activeChoice) {\n _unsetChoice($activeChoice);\n }\n _resetSelection();\n\n interactUtils.iFrameDragFixOff();\n }\n }, dragOptions)).styleCursor(false);\n\n\n dropOptions = {\n overlap: 0.15,\n ondragenter: function(e) {\n $(e.target).addClass('dropzone');\n $(e.relatedTarget).addClass('droppable');\n },\n ondragleave: function(e) {\n $(e.target).removeClass('dropzone');\n $(e.relatedTarget).removeClass('droppable');\n }\n };\n\n // makes hotspots droppables\n interact(resultSelector).dropzone(_.defaults({\n ondrop: function (e) {\n this.ondragleave(e);\n _handleResultActivate($(e.target));\n }\n }, dropOptions));\n\n // makes available choices droppables\n interact(choiceSelector + '.empty').dropzone(_.defaults({\n ondrop: function (e) {\n this.ondragleave(e);\n _handleChoiceActivate($(e.target));\n }\n }, dropOptions));\n }\n\n\n // interaction init\n\n renderEmptyPairs(interaction);\n\n sizeAdapter.adaptSize($('.result-area .target, .choice-area .qti-choice', $container));\n\n resolve();\n\n });\n };\n\n var _setInstructions = function(interaction){\n\n var min = parseInt(interaction.attr('minAssociations'), 10),\n max = parseInt(interaction.attr('maxAssociations'), 10);\n\n //infinite association:\n if(min === 0){\n if(max === 0){\n instructionMgr.appendInstruction(interaction, __('You may make as many association pairs as you want.'));\n }\n }else{\n if(max === 0){\n instructionMgr.appendInstruction(interaction, __('The maximum number of association is unlimited.'));\n }\n //the max value is implicit since the appropriate number of empty pairs have already been created\n var msg = __('You need to make') + ' ';\n msg += (min > 1) ? __('at least') + ' ' + min + ' ' + __('association pairs') : __('one association pair');\n instructionMgr.appendInstruction(interaction, msg, function(){\n if(_getRawResponse(interaction).length >= min){\n this.setLevel('success');\n }else{\n this.reset();\n }\n });\n }\n };\n\n var resetResponse = function(interaction){\n var $container = containerHelper.get(interaction);\n\n //destroy selected choice:\n $container.find('.result-area .active').each(function () {\n interactUtils.tapOn(this);\n });\n\n $('.result-area>li>div', $container).each(function(){\n unsetChoice(interaction, $(this), false, false);\n });\n\n containerHelper.triggerResponseChangeEvent(interaction);\n instructionMgr.validateInstructions(interaction);\n };\n\n var _setPairs = function(interaction, pairs){\n\n var $container = containerHelper.get(interaction);\n var addedPairs = 0;\n var $emptyPair = $('.result-area>li:first', $container);\n if(pairs && interaction.getResponseDeclaration().attr('cardinality') === 'single' && pairs.length){\n pairs = [pairs];\n }\n _.each(pairs, function(pair){\n if($emptyPair.length){\n var $divs = $emptyPair.children('div');\n setChoice(interaction, getChoice(interaction, pair[0]), $($divs[0]));\n setChoice(interaction, getChoice(interaction, pair[1]), $($divs[1]));\n addedPairs++;\n $emptyPair = $emptyPair.next('li');\n }else{\n //the number of pairs exceeds the maximum allowed pairs: break;\n return false;\n }\n });\n\n return addedPairs;\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10291\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n\n _setPairs(interaction, pciResponse.unserialize(response, interaction));\n };\n\n var _getRawResponse = function(interaction){\n var response = [];\n var $container = containerHelper.get(interaction);\n $('.result-area>li', $container).each(function(){\n var pair = [];\n $(this).find('div').each(function(){\n var serial = $(this).data('serial');\n if(serial){\n pair.push(interaction.getChoice(serial).id());\n }\n });\n if(pair.length === 2){\n response.push(pair);\n }\n });\n return response;\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10291\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n return pciResponse.serialize(_getRawResponse(interaction), interaction);\n };\n\n /**\n * Destroy the interaction by leaving the DOM exactly in the same state it was before loading the interaction.\n * @param {Object} interaction - the interaction\n */\n var destroy = function(interaction){\n var $container = containerHelper.get(interaction);\n\n //remove event\n interact($container.selector).unset();\n interact($container.find('.choice-area').selector + ' >li').unset();\n interact($container.find('.result-area').selector + ' >li>div').unset();\n interact($container.find('.remove-choice').selector).unset();\n\n //remove instructions\n instructionMgr.removeInstructions(interaction);\n\n $('.result-area', $container).empty();\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n var $container;\n\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n\n //restore order of previously shuffled choices\n if(_.isArray(state.order) && state.order.length === _.size(interaction.getChoices())){\n\n $container = containerHelper.get(interaction);\n\n $('.choice-area .qti-choice', $container)\n .sort(function(a, b){\n var aIndex = _.indexOf(state.order, $(a).data('identifier'));\n var bIndex = _.indexOf(state.order, $(b).data('identifier'));\n if(aIndex > bIndex) {\n return 1;\n }\n if(aIndex < bIndex) {\n return -1;\n }\n return 0;\n })\n .detach()\n .appendTo($('.choice-area', $container));\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n\n //we store also the choice order if shuffled\n if(interaction.attr('shuffle') === true){\n $container = containerHelper.get(interaction);\n\n state.order = [];\n $('.choice-area .qti-choice', $container).each(function(){\n state.order.push($(this).data('identifier'));\n });\n }\n return state;\n };\n\n /**\n * Expose the common renderer for the associate interaction\n * @exports qtiCommonRenderer/renderers/interactions/AssociateInteraction\n */\n return {\n qtiClass : 'associateInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState: setState,\n getState : getState,\n\n renderEmptyPairs : renderEmptyPairs\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/choiceInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program7(depth0,data) {\n \n \n return \" horizontal\";\n }\n\nfunction program9(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.listStyle) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.listStyle); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program11(depth0,data) {\n \n var stack1;\n stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-choiceInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"choiceInteraction\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <ol class=\\\"plain block-listing solid choice-area\";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.horizontal), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.listStyle), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\">\\n \";\n options={hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data}\n if (helper = helpers.choices) { stack1 = helper.call(depth0, options); }\n else { helper = (depth0 && depth0.choices); stack1 = typeof helper === functionType ? helper.call(depth0, options) : helper; }\n if (!helpers.choices) { stack1 = blockHelperMissing.call(depth0, stack1, {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data}); }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </ol>\\n <div class=\\\"notification-container\\\"></div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/ChoiceInteraction',[\n 'lodash',\n 'jquery',\n 'i18n',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/choiceInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'taoQtiItem/qtiCommonRenderer/helpers/sizeAdapter'\n], function (_, $, __, tpl, containerHelper, instructionMgr, pciResponse, sizeAdapter) {\n\n 'use strict';\n\n var KEY_CODE_SPACE = 32;\n var KEY_CODE_ENTER = 13;\n var KEY_CODE_UP = 38;\n var KEY_CODE_DOWN = 40;\n var KEY_CODE_TAB = 9;\n\n /**\n * 'pseudo-label' is technically a div that behaves like a label.\n * This allows the usage of block elements inside the fake label\n *\n * @private\n * @param {Object} interaction - the interaction instance\n * @param {jQueryElement} $container\n */\n var _pseudoLabel = function(interaction, $container){\n\n $container.off('.commonRenderer');\n\n var $choiceInputs = $container.find('.qti-choice').find('input:radio,input:checkbox').not('[disabled]').not('.disabled');\n\n $choiceInputs.on('keydown.commonRenderer', function(e){\n var keyCode = e.keyCode ? e.keyCode : e.charCode;\n if(keyCode !== KEY_CODE_TAB){\n e.preventDefault();\n }\n\n if( keyCode === KEY_CODE_SPACE || keyCode === KEY_CODE_ENTER){\n _triggerInput($(this).closest('.qti-choice'));\n }\n\n var $nextInput = $(this).closest('.qti-choice').next('.qti-choice').find('input:radio,input:checkbox').not('[disabled]').not('.disabled');\n var $prevInput = $(this).closest('.qti-choice').prev('.qti-choice').find('input:radio,input:checkbox').not('[disabled]').not('.disabled');\n\n if (keyCode === KEY_CODE_UP){\n $prevInput.focus();\n } else if (keyCode === KEY_CODE_DOWN){\n $nextInput.focus();\n }\n });\n\n $container.on('click.commonRenderer', '.qti-choice', function(e){\n var $choiceBox = $(this);\n\n e.preventDefault();\n e.stopPropagation();//required otherwise any tao scoped ,form initialization might prevent it from working\n\n _triggerInput($choiceBox);\n\n instructionMgr.validateInstructions(interaction, {choice : $choiceBox});\n containerHelper.triggerResponseChangeEvent(interaction);\n });\n };\n\n var _triggerInput = function($choiceBox){\n var $input = $choiceBox.find('input:radio,input:checkbox').not('[disabled]').not('.disabled');\n\n if($input.length){\n $input.prop('checked', !$input.prop('checked'));\n $input.trigger('change');\n }\n };\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10278\n *\n * @param {Object} interaction - the interaction instance\n */\n var render = function(interaction){\n var $container = containerHelper.get(interaction);\n\n _pseudoLabel(interaction, $container);\n\n _setInstructions(interaction);\n\n if(interaction.attr('orientation') === 'horizontal') {\n sizeAdapter.adaptSize($('.add-option, .result-area .target, .choice-area .qti-choice', $container));\n }\n };\n\n /**\n * Define the instructions for the interaction\n * @private\n * @param {Object} interaction - the interaction instance\n */\n var _setInstructions = function(interaction){\n\n var min = interaction.attr('minChoices'),\n max = interaction.attr('maxChoices'),\n msg,\n choiceCount = _.size(interaction.getChoices()),\n minInstructionSet = false;\n\n //if maxChoice = 1, use the radio group behaviour\n //if maxChoice = 0, infinite choice possible\n if(max > 1 && max < choiceCount){\n\n var highlightInvalidInput = function($choice){\n var $input = $choice.find('.real-label > input'),\n $li = $choice.css('color', '#BA122B'),\n $icon = $choice.find('.real-label > span').css('color', '#BA122B').addClass('cross error');\n var timeout = interaction.data('__instructionTimeout');\n\n if(timeout){\n clearTimeout(timeout);\n }\n timeout = setTimeout(function(){\n $input.prop('checked', false);\n $li.removeAttr('style');\n $icon.removeAttr('style').removeClass('cross');\n containerHelper.triggerResponseChangeEvent(interaction);\n }, 150);\n interaction.data('__instructionTimeout', timeout);\n };\n\n if(max === min){\n minInstructionSet = true;\n msg = __('You must select exactly %s choices', max);\n instructionMgr.appendInstruction(interaction, msg, function(data){\n if(_getRawResponse(interaction).length >= max){\n this.setLevel('success');\n if(this.checkState('fulfilled')){\n this.update({\n level : 'warning',\n message : __('Maximum choices reached'),\n timeout : 2000,\n start : function(){\n if(data && data.choice){\n highlightInvalidInput(data.choice);\n }\n },\n stop : function(){\n this.update({level : 'success', message : msg});\n }\n });\n }\n this.setState('fulfilled');\n }else{\n this.reset();\n }\n });\n }else if(max > min){\n msg = max === 1 ? __('You can select maximum of 1 choice') : __('You can select maximum of %s choices', max);\n instructionMgr.appendInstruction(interaction, msg, function(data){\n if(_getRawResponse(interaction).length >= max){\n this.setMessage(__('Maximum choices reached'));\n if(this.checkState('fulfilled')){\n this.update({\n level : 'warning',\n timeout : 2000,\n start : function(){\n if(data && data.choice){\n highlightInvalidInput(data.choice);\n }\n },\n stop : function(){\n this.setLevel('info');\n }\n });\n }\n this.setState('fulfilled');\n }else{\n this.reset();\n }\n });\n }\n }\n\n if(!minInstructionSet && min > 0 && min < choiceCount){\n msg = min === 1 ? __('You must select at least 1 choice') : __('You must select at least %s choices', min);\n instructionMgr.appendInstruction(interaction, msg, function(){\n if(_getRawResponse(interaction).length >= min){\n this.setLevel('success');\n }else{\n this.reset();\n }\n });\n }\n };\n\n /**\n * Reset the responses previously set\n *\n * @param {Object} interaction - the interaction instance\n */\n var resetResponse = function(interaction){\n var $container = containerHelper.get(interaction);\n\n $('.real-label > input', $container).prop('checked', false);\n };\n\n /**\n * Set a new response to the rendered interaction.\n * Please note that it does not reset previous responses.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10278\n *\n * @param {Object} interaction - the interaction instance\n * @param {0bject} response - the PCI formated response\n */\n var setResponse = function(interaction, response){\n var $container = containerHelper.get(interaction);\n\n try{\n _.each(pciResponse.unserialize(response, interaction), function(identifier){\n $container.find('.real-label > input[value=' + identifier + ']').prop('checked', true);\n });\n instructionMgr.validateInstructions(interaction);\n }catch(e){\n throw new Error('wrong response format in argument : ' + e);\n }\n };\n\n /**\n * Get the responses from the DOM.\n * @private\n * @param {Object} interaction - the interaction instance\n * @returns {Array} the list of choices identifiers\n */\n var _getRawResponse = function(interaction){\n var values = [];\n var $container = containerHelper.get(interaction);\n $('.real-label > input[name=response-' + interaction.getSerial() + ']:checked', $container).each(function(){\n values.push($(this).val());\n });\n return values;\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10278\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the response formatted in PCI\n */\n var getResponse = function(interaction){\n return pciResponse.serialize(_getRawResponse(interaction), interaction);\n };\n\n /**\n * Set additionnal data to the template (data that are not really part of the model).\n * @param {Object} interaction - the interaction\n * @param {Object} [data] - interaction custom data\n * @returns {Object} custom data\n */\n var getCustomData = function(interaction, data) {\n var listStyles = (interaction.attr('class') || '').match(/\\blist-style-[\\w-]+/) || [];\n return _.merge(data || {}, {\n horizontal : (interaction.attr('orientation') === 'horizontal'),\n listStyle: listStyles.pop()\n });\n };\n\n\n /**\n * Destroy the interaction by leaving the DOM exactly in the same state it was before loading the interaction.\n * @param {Object} interaction - the interaction\n */\n var destroy = function destroy(interaction){\n var $container = containerHelper.get(interaction);\n\n var timeout = interaction.data('__instructionTimeout');\n\n if(timeout){\n clearTimeout(timeout);\n }\n\n //remove event\n $container.off('.commonRenderer');\n $(document).off('.commonRenderer');\n\n //remove instructions\n instructionMgr.removeInstructions(interaction);\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n var $container;\n\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n\n //restore order of previously shuffled choices\n if(_.isArray(state.order) && state.order.length === _.size(interaction.getChoices())){\n\n $container = containerHelper.get(interaction);\n\n $('.qti-simpleChoice', $container)\n .sort(function(a, b){\n var aIndex = _.indexOf(state.order, $(a).data('identifier'));\n var bIndex = _.indexOf(state.order, $(b).data('identifier'));\n if(aIndex > bIndex) {\n return 1;\n }\n if(aIndex < bIndex) {\n return -1;\n }\n return 0;\n })\n .detach()\n .appendTo($('.choice-area', $container));\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n\n //we store also the choice order if shuffled\n if(interaction.attr('shuffle') === true){\n $container = containerHelper.get(interaction);\n\n state.order = [];\n $('.qti-simpleChoice', $container).each(function(){\n state.order.push($(this).data('identifier'));\n });\n }\n return state;\n };\n\n /**\n * Expose the common renderer for the choice interaction\n * @exports qtiCommonRenderer/renderers/interactions/ChoiceInteraction\n */\n return {\n qtiClass : 'choiceInteraction',\n template : tpl,\n getData : getCustomData,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/endAttemptInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<a class=\\\"qti-interaction qti-inlineInteraction qti-endAttemptInteraction btn small btn-info\\\"\\n data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" \\n data-qti-class=\\\"endAttemptInteraction\\\"\\n value=\\\"false\\\"\\n tabindex=\\\"0\\\">\\n \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.title)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\n</a>\\n\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n\n\n/**\n * CommonRenderer for the EndAttempt interaction\n *\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/EndAttemptInteraction',[\n 'lodash',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/endAttemptInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'i18n'\n], function(_, tpl, containerHelper, pciResponse, __){\n 'use strict';\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10402\n *\n * @param {object} interaction\n * @fires endattempt with the response identifier\n */\n var render = function render(interaction, options){\n\n var $container = containerHelper.get(interaction);\n\n //on click,\n $container.on('click.commonRenderer', function(){\n $container.val(true);\n\n containerHelper.triggerResponseChangeEvent(interaction);\n\n $container.trigger('endattempt', [interaction.attr('responseIdentifier')]);\n });\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10402\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function setResponse(interaction, response){\n\n _setVal(interaction, pciResponse.unserialize(response, interaction)[0]);\n };\n\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10402\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function getResponse(interaction){\n var val = containerHelper.get(interaction).val();\n val = (val && val !== 'false' && val !== '0');\n return pciResponse.serialize([val], interaction);\n };\n\n /**\n * Reset the response ... wondering if it is useful ...\n\n * @param {type} interaction\n */\n var resetResponse = function resetResponse(interaction){\n _setVal(interaction, false);\n };\n\n /**\n *\n * @param {Object} interaction\n * @param {Boolean} val\n */\n var _setVal = function(interaction, val){\n\n containerHelper.get(interaction)\n .val(val)\n .change();\n\n };\n\n /**\n * Destroy the interaction to restore the dom as it is before render() is called\n *\n * @param {Object} interaction\n */\n var destroy = function destroy(interaction){\n //remove event\n containerHelper.get(interaction).off('.commonRenderer');\n };\n\n /**\n * Define default template data\n *\n * @param {Object} interaction\n * @param {Object} data\n * @returns {Object}\n */\n var getCustomData = function getCustomData(interaction, data){\n if(!data.attributes.title){\n data.attributes.title = __('End Attempt');\n }\n return data;\n };\n\n return {\n qtiClass : 'endAttemptInteraction',\n template : tpl,\n getData : getCustomData,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/extendedTextInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program7(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n \";\n stack1 = (helper = helpers.equal || (depth0 && depth0.equal),options={hash:{},inverse:self.program(12, program12, data),fn:self.program(8, program8, data),data:data},helper ? helper.call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.format), \"xhtml\", options) : helperMissing.call(depth0, \"equal\", ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.format), \"xhtml\", options));\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n {!-- If there's an expected length or a max length --}}\\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.expectedLength), {hash:{},inverse:self.noop,fn:self.program(16, program16, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.maxLength), {hash:{},inverse:self.noop,fn:self.program(18, program18, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.maxWords), {hash:{},inverse:self.noop,fn:self.program(20, program20, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n return buffer;\n }\nfunction program8(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n \";\n stack1 = helpers.each.call(depth0, (depth0 && depth0.maxStringLoop), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n return buffer;\n }\nfunction program9(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n <div class=\\\"text-container text-\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.format)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \" solid\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" name=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"_\"\n + escapeExpression((typeof depth0 === functionType ? depth0.apply(depth0) : depth0))\n + \"\\\" contenteditable></div>\\n \";\n return buffer;\n }\nfunction program10(depth0,data) {\n \n \n return \" attributes.class\";\n }\n\nfunction program12(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n \";\n stack1 = helpers.each.call(depth0, (depth0 && depth0.maxStringLoop), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n return buffer;\n }\nfunction program13(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n <textarea class=\\\"text-container text-\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.format)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \" solid\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" name=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.identifier)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"_\"\n + escapeExpression((typeof depth0 === functionType ? depth0.apply(depth0) : depth0))\n + \"\\\" \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.patternMask), {hash:{},inverse:self.noop,fn:self.program(14, program14, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"></textarea>\\n \";\n return buffer;\n }\nfunction program14(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"pattern=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.patternMask)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program16(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n <div class=\\\"text-counter\\\">\\n <span class=\\\"count-chars\\\">0</span> \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"of\", options) : helperMissing.call(depth0, \"__\", \"of\", options)))\n + \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.expectedLength)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \" \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"chars\", options) : helperMissing.call(depth0, \"__\", \"chars\", options)))\n + \" \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"recommanded\", options) : helperMissing.call(depth0, \"__\", \"recommanded\", options)))\n + \".\\n </div>\\n \";\n return buffer;\n }\n\nfunction program18(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n <div class=\\\"text-counter\\\">\\n <span class=\\\"count-chars\\\">0</span> \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"of\", options) : helperMissing.call(depth0, \"__\", \"of\", options)))\n + \" \";\n if (helper = helpers.maxLength) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.maxLength); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \" \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"chars\", options) : helperMissing.call(depth0, \"__\", \"chars\", options)))\n + \" \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"maximum\", options) : helperMissing.call(depth0, \"__\", \"maximum\", options)))\n + \".\\n </div>\\n \";\n return buffer;\n }\n\nfunction program20(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n <div class=\\\"text-counter\\\">\\n <span class=\\\"count-words\\\">0</span> \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"of\", options) : helperMissing.call(depth0, \"__\", \"of\", options)))\n + \" \";\n if (helper = helpers.maxWords) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.maxWords); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \" \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"words\", options) : helperMissing.call(depth0, \"__\", \"words\", options)))\n + \" \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"maximum\", options) : helperMissing.call(depth0, \"__\", \"maximum\", options)))\n + \".\\n </div>\\n \";\n return buffer;\n }\n\nfunction program22(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n \";\n stack1 = (helper = helpers.equal || (depth0 && depth0.equal),options={hash:{},inverse:self.program(25, program25, data),fn:self.program(23, program23, data),data:data},helper ? helper.call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.format), (depth0 && depth0.xhtml), options) : helperMissing.call(depth0, \"equal\", ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.format), (depth0 && depth0.xhtml), options));\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \\n \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.expectedLength), {hash:{},inverse:self.noop,fn:self.program(27, program27, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.maxLength), {hash:{},inverse:self.noop,fn:self.program(18, program18, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.maxWords), {hash:{},inverse:self.noop,fn:self.program(20, program20, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n return buffer;\n }\nfunction program23(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n <div class=\\\"text-container text-\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.format)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \" solid\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" contenteditable></div>\\n \";\n return buffer;\n }\n\nfunction program25(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n <textarea class=\\\"text-container text-\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.format)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \" solid\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.patternMask), {hash:{},inverse:self.noop,fn:self.program(14, program14, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"></textarea>\\n \";\n return buffer;\n }\n\nfunction program27(depth0,data) {\n \n var buffer = \"\", stack1, helper, options;\n buffer += \"\\n <div class=\\\"text-counter\\\">\\n <span class=\\\"count-chars\\\">0</span> \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"of\", options) : helperMissing.call(depth0, \"__\", \"of\", options)))\n + \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.expectedLength)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \" \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"chars\", options) : helperMissing.call(depth0, \"__\", \"chars\", options)))\n + \" \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"recommended\", options) : helperMissing.call(depth0, \"__\", \"recommended\", options)))\n + \".\\n </div>\\n \";\n return buffer;\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-extendedTextInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"extendedTextInteraction\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.multiple), {hash:{},inverse:self.program(22, program22, data),fn:self.program(7, program7, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\ndefine('ui/ckeditor/dtdHandler',[\n 'lodash'\n], function (_) {\n 'use strict';\n\n /**\n * Singleton to edit the XHTML DTD and to retrieve element relationships.\n * The DTD code itself is almost 1:1 copied from CKEDITOR\n */\n var dtdHandler = (function () {\n\n var dtdMode = 'html',\n dtds = {};\n\n\n /**\n * Set DTD mode (qti|html)\n */\n var setMode = function (mode) {\n // for the oblivious ones such as myself:\n if(mode.toLowerCase() === 'xhtml'){\n mode = 'html';\n }\n if (!_.contains(['html', 'qti'], mode)) {\n throw new Error('Unknown mode ' + mode)\n }\n dtdMode = mode;\n return this;\n };\n\n /**\n * Elements that are present in HTML 5 only\n * @type {string[]}\n */\n var html5Only = [\n 'article', 'aside', 'bdi', 'command', 'datalist', 'details', 'dialog',\n 'figcaption', 'figure', 'footer', 'header', 'keygen', 'main', 'mark',\n 'meter', 'nav', 'output', 'progress', 'rp', 'rt', 'ruby', 'section',\n 'summary', 'time', 'wbr', 'hgroup'\n ];\n\n\n /**\n * Check in which element this element can be contained\n *\n * @param child (string|DOM element|jQuery element)\n * @returns {Array}\n */\n var getParentsOf = function (child) {\n var parents = [],\n element;\n\n child = _normalizeElement(child);\n\n for (element in dtds[dtdMode]) {\n if (!dtds[dtdMode].hasOwnProperty(element)) {\n continue;\n }\n if (element.indexOf('$') === 0) {\n continue;\n }\n if (child in dtds[dtdMode][element]) {\n parents.push(element);\n }\n }\n return parents;\n };\n\n\n /**\n * Get all elements parent can contain\n *\n * @param parent (string|DOM element|jQuery element)\n * @returns {*}\n */\n var getChildrenOf = function (parent) {\n\n parent = _normalizeElement(parent);\n\n if (parent in dtds[dtdMode]) {\n return _.keys(dtds[dtdMode][parent]);\n }\n\n return [];\n };\n\n\n /**\n * Finds whether a child can have a certain parent\n *\n * @param child (string|DOM element|jQuery element)\n * @param of (string|DOM element|jQuery element)\n * @returns {*}\n */\n var isChildOf = function (child, of) {\n return _.contains(getChildrenOf(of), _normalizeElement(child));\n };\n\n\n /**\n * Finds whether a parent can have a certain child\n *\n * @param parent (string|DOM element|jQuery element)\n * @param of (string|DOM element|jQuery element)\n * @returns {*}\n */\n var isParentOf = function (parent, of) {\n return _.contains(getParentsOf(of), _normalizeElement(parent));\n };\n\n\n /**\n * Retrieve the current DTD\n *\n * @returns {*}\n */\n var getDtd = function () {\n return dtds[dtdMode];\n };\n\n\n /**\n * Retrieve the current dtdMode (qti|html)\n *\n * @returns {string}\n */\n var getMode = function () {\n return dtdMode;\n };\n\n /**\n * Convert (node)element into string\n *\n * @param element (string|DOM element|jQuery element)\n * @returns {*}\n * @private\n */\n var _normalizeElement = function (element) {\n\n // jQuery or DOM element\n if (_.isObject(element) && !_.isArray(element)) {\n // DOM element\n if ('nodeName' in element) {\n return element.nodeName.toLowerCase();\n }\n // jQuery element\n else if (0 in element && 'nodeName' in element[0]) {\n return element[0].nodeName.toLowerCase();\n }\n }\n // node name\n else if (_.isString(element)) {\n return element.toLowerCase();\n }\n // invalid input\n throw new Error('Unknown element ' + element);\n };\n\n\n /**\n * This part is almost literally copied from CKEDITOR (apart from using lodash instaed of CKEDITOR tools)\n *\n * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or http://ckeditor.com/license\n */\n dtds.html = (function () {\n 'use strict';\n\n var X = _.extend,\n Y = function (source, removed) {\n var substracted = _.cloneDeep(source);\n for (var i = 1; i < arguments.length; i++) {\n removed = arguments[i];\n for (var name in removed)\n delete substracted[name];\n }\n return substracted;\n };\n\n // Phrasing elements.\n // P = { a: 1, em: 1, strong: 1, small: 1, abbr: 1, dfn: 1, i: 1, b: 1, s: 1,\n // u: 1, code: 1, 'var': 1, samp: 1, kbd: 1, sup: 1, sub: 1, q: 1, cite: 1,\n // span: 1, bdo: 1, bdi: 1, br: 1, wbr: 1, ins: 1, del: 1, img: 1, embed: 1,\n // object: 1, iframe: 1, map: 1, area: 1, script: 1, noscript: 1, ruby: 1,\n // video: 1, audio: 1, input: 1, textarea: 1, select: 1, button: 1, label: 1,\n // output: 1, keygen: 1, progress: 1, command: 1, canvas: 1, time: 1,\n // meter: 1, detalist: 1 },\n\n // Flow elements.\n // F = { a: 1, p: 1, hr: 1, pre: 1, ul: 1, ol: 1, dl: 1, div: 1, h1: 1, h2: 1,\n // h3: 1, h4: 1, h5: 1, h6: 1, hgroup: 1, address: 1, blockquote: 1, ins: 1,\n // del: 1, object: 1, map: 1, noscript: 1, section: 1, nav: 1, article: 1,\n // aside: 1, header: 1, footer: 1, video: 1, audio: 1, figure: 1, table: 1,\n // form: 1, fieldset: 1, menu: 1, canvas: 1, details:1 },\n\n // Text can be everywhere.\n // X( P, T );\n // Flow elements set consists of phrasing elements set.\n // X( F, P );\n\n var P = {}, F = {},\n // Intersection of flow elements set and phrasing elements set.\n PF = {\n a: 1,\n abbr: 1,\n area: 1,\n audio: 1,\n b: 1,\n bdi: 1,\n bdo: 1,\n br: 1,\n button: 1,\n canvas: 1,\n cite: 1,\n code: 1,\n command: 1,\n datalist: 1,\n del: 1,\n dfn: 1,\n em: 1,\n embed: 1,\n i: 1,\n iframe: 1,\n img: 1,\n input: 1,\n ins: 1,\n kbd: 1,\n keygen: 1,\n label: 1,\n map: 1,\n mark: 1,\n meter: 1,\n noscript: 1,\n object: 1,\n output: 1,\n progress: 1,\n q: 1,\n ruby: 1,\n s: 1,\n samp: 1,\n script: 1,\n select: 1,\n small: 1,\n span: 1,\n strong: 1,\n sub: 1,\n sup: 1,\n textarea: 1,\n time: 1,\n u: 1,\n 'var': 1,\n video: 1,\n wbr: 1\n },\n // F - PF (Flow Only).\n FO = {\n address: 1,\n article: 1,\n aside: 1,\n blockquote: 1,\n details: 1,\n div: 1,\n dl: 1,\n fieldset: 1,\n figure: 1,\n footer: 1,\n form: 1,\n h1: 1,\n h2: 1,\n h3: 1,\n h4: 1,\n h5: 1,\n h6: 1,\n header: 1,\n hgroup: 1,\n hr: 1,\n menu: 1,\n nav: 1,\n ol: 1,\n p: 1,\n pre: 1,\n section: 1,\n table: 1,\n ul: 1\n },\n // Metadata elements.\n M = {\n command: 1,\n link: 1,\n meta: 1,\n noscript: 1,\n script: 1,\n style: 1\n },\n // Empty.\n E = {},\n // Text.\n T = {\n '#': 1\n },\n\n // Deprecated phrasing elements.\n DP = {\n acronym: 1,\n applet: 1,\n basefont: 1,\n big: 1,\n font: 1,\n isindex: 1,\n strike: 1,\n style: 1,\n tt: 1\n }, // TODO remove \"style\".\n // Deprecated flow only elements.\n DFO = {\n center: 1,\n dir: 1,\n noframes: 1\n };\n\n // Phrasing elements := PF + T + DP\n X(P, PF, T, DP);\n // Flow elements := FO + P + DFO\n X(F, FO, P, DFO);\n\n var dtd = {\n a: Y(P, {\n a: 1,\n button: 1\n }), // Treat as normal inline element (not a transparent one).\n abbr: P,\n address: F,\n area: E,\n article: X({\n style: 1\n }, F),\n aside: X({\n style: 1\n }, F),\n audio: X({\n source: 1,\n track: 1\n }, F),\n b: P,\n base: E,\n bdi: P,\n bdo: P,\n blockquote: F,\n body: F,\n br: E,\n button: Y(P, {\n a: 1,\n button: 1\n }),\n canvas: P, // Treat as normal inline element (not a transparent one).\n caption: F,\n cite: P,\n code: P,\n col: E,\n colgroup: {\n col: 1\n },\n command: E,\n datalist: X({\n option: 1\n }, P),\n dd: F,\n del: P, // Treat as normal inline element (not a transparent one).\n details: X({\n summary: 1\n }, F),\n dfn: P,\n div: X({\n style: 1\n }, F),\n dl: {\n dt: 1,\n dd: 1\n },\n dt: F,\n em: P,\n embed: E,\n fieldset: X({\n legend: 1\n }, F),\n figcaption: F,\n figure: X({\n figcaption: 1\n }, F),\n footer: F,\n form: F,\n h1: P,\n h2: P,\n h3: P,\n h4: P,\n h5: P,\n h6: P,\n head: X({\n title: 1,\n base: 1\n }, M),\n header: F,\n hgroup: {\n h1: 1,\n h2: 1,\n h3: 1,\n h4: 1,\n h5: 1,\n h6: 1\n },\n hr: E,\n html: X({\n head: 1,\n body: 1\n }, F, M), // Head and body are optional...\n i: P,\n iframe: T,\n img: E,\n input: E,\n ins: P, // Treat as normal inline element (not a transparent one).\n kbd: P,\n keygen: E,\n label: P,\n legend: P,\n li: F,\n link: E,\n map: F,\n mark: P, // Treat as normal inline element (not a transparent one).\n menu: X({\n li: 1\n }, F),\n meta: E,\n meter: Y(P, {\n meter: 1\n }),\n nav: F,\n noscript: X({\n link: 1,\n meta: 1,\n style: 1\n }, P), // Treat as normal inline element (not a transparent one).\n object: X({\n param: 1\n }, P), // Treat as normal inline element (not a transparent one).\n ol: {\n li: 1\n },\n optgroup: {\n option: 1\n },\n option: T,\n output: P,\n p: P,\n param: E,\n pre: P,\n progress: Y(P, {\n progress: 1\n }),\n q: P,\n rp: P,\n rt: P,\n ruby: X({\n rp: 1,\n rt: 1\n }, P),\n s: P,\n samp: P,\n script: T,\n section: X({\n style: 1\n }, F),\n select: {\n optgroup: 1,\n option: 1\n },\n small: P,\n source: E,\n span: P,\n strong: P,\n style: T,\n sub: P,\n summary: P,\n sup: P,\n table: {\n caption: 1,\n colgroup: 1,\n thead: 1,\n tfoot: 1,\n tbody: 1,\n tr: 1\n },\n tbody: {\n tr: 1\n },\n td: F,\n textarea: T,\n tfoot: {\n tr: 1\n },\n th: F,\n thead: {\n tr: 1\n },\n time: Y(P, {\n time: 1\n }),\n title: T,\n tr: {\n th: 1,\n td: 1\n },\n track: E,\n u: P,\n ul: {\n li: 1\n },\n 'var': P,\n video: X({\n source: 1,\n track: 1\n }, F),\n wbr: E,\n\n // Deprecated tags.\n acronym: P,\n applet: X({\n param: 1\n }, F),\n basefont: E,\n big: P,\n center: F,\n dialog: E,\n dir: {\n li: 1\n },\n font: P,\n isindex: E,\n noframes: F,\n strike: P,\n tt: P\n };\n\n X(dtd, {\n /**\n * List of block elements, like `<p>` or `<div>`.\n */\n $block: X({\n audio: 1,\n dd: 1,\n dt: 1,\n figcaption: 1,\n li: 1,\n video: 1\n }, FO, DFO),\n\n /**\n * List of elements that contain other blocks, in which block-level operations should be limited,\n * this property is not intended to be checked directly, use {@link CKEDITOR.dom.elementPath#blockLimit} instead.\n *\n * Some examples of editor behaviors that are impacted by block limits:\n *\n * * Enter key never split a block-limit element;\n * * Style application is constraint by the block limit of the current selection.\n * * Pasted html will be inserted into the block limit of the current selection.\n *\n * **Note:** As an exception `<li>` is not considered as a block limit, as it's generally used as a text block.\n */\n $blockLimit: {\n article: 1,\n aside: 1,\n audio: 1,\n body: 1,\n caption: 1,\n details: 1,\n dir: 1,\n div: 1,\n dl: 1,\n fieldset: 1,\n figcaption: 1,\n figure: 1,\n footer: 1,\n form: 1,\n header: 1,\n hgroup: 1,\n menu: 1,\n nav: 1,\n ol: 1,\n section: 1,\n table: 1,\n td: 1,\n th: 1,\n tr: 1,\n ul: 1,\n video: 1\n },\n\n /**\n * List of elements that contain character data.\n */\n $cdata: {\n script: 1,\n style: 1\n },\n\n /**\n * List of elements that are accepted as inline editing hosts.\n */\n $editable: {\n address: 1,\n article: 1,\n aside: 1,\n blockquote: 1,\n body: 1,\n details: 1,\n div: 1,\n fieldset: 1,\n figcaption: 1,\n footer: 1,\n form: 1,\n h1: 1,\n h2: 1,\n h3: 1,\n h4: 1,\n h5: 1,\n h6: 1,\n header: 1,\n hgroup: 1,\n nav: 1,\n p: 1,\n pre: 1,\n section: 1\n },\n\n /**\n * List of empty (self-closing) elements, like `<br>` or `<img>`.\n */\n $empty: {\n area: 1,\n base: 1,\n basefont: 1,\n br: 1,\n col: 1,\n command: 1,\n dialog: 1,\n embed: 1,\n hr: 1,\n img: 1,\n input: 1,\n isindex: 1,\n keygen: 1,\n link: 1,\n meta: 1,\n param: 1,\n source: 1,\n track: 1,\n wbr: 1\n },\n\n /**\n * List of inline (`<span>` like) elements.\n */\n $inline: P,\n\n /**\n * List of list root elements.\n */\n $list: {\n dl: 1,\n ol: 1,\n ul: 1\n },\n\n /**\n * List of list item elements, like `<li>` or `<dd>`.\n */\n $listItem: {\n dd: 1,\n dt: 1,\n li: 1\n },\n\n /**\n * List of elements which may live outside body.\n */\n $nonBodyContent: X({\n body: 1,\n head: 1,\n html: 1\n }, dtd.head),\n\n /**\n * Elements that accept text nodes, but are not possible to edit into the browser.\n */\n $nonEditable: {\n applet: 1,\n audio: 1,\n button: 1,\n embed: 1,\n iframe: 1,\n map: 1,\n object: 1,\n option: 1,\n param: 1,\n script: 1,\n textarea: 1,\n video: 1\n },\n\n /**\n * Elements that are considered objects, therefore selected as a whole in the editor.\n */\n $object: {\n applet: 1,\n audio: 1,\n button: 1,\n hr: 1,\n iframe: 1,\n img: 1,\n input: 1,\n object: 1,\n select: 1,\n table: 1,\n textarea: 1,\n video: 1\n },\n\n /**\n * List of elements that can be ignored if empty, like `<b>` or `<span>`.\n */\n $removeEmpty: {\n abbr: 1,\n acronym: 1,\n b: 1,\n bdi: 1,\n bdo: 1,\n big: 1,\n cite: 1,\n code: 1,\n del: 1,\n dfn: 1,\n em: 1,\n font: 1,\n i: 1,\n ins: 1,\n label: 1,\n kbd: 1,\n mark: 1,\n meter: 1,\n output: 1,\n q: 1,\n ruby: 1,\n s: 1,\n samp: 1,\n small: 1,\n span: 1,\n strike: 1,\n strong: 1,\n sub: 1,\n sup: 1,\n time: 1,\n tt: 1,\n u: 1,\n 'var': 1\n },\n\n /**\n * List of elements that have tabindex set to zero by default.\n */\n $tabIndex: {\n a: 1,\n area: 1,\n button: 1,\n input: 1,\n object: 1,\n select: 1,\n textarea: 1\n },\n\n /**\n * List of elements used inside the `<table>` element, like `<tbody>` or `<td>`.\n */\n $tableContent: {\n caption: 1,\n col: 1,\n colgroup: 1,\n tbody: 1,\n td: 1,\n tfoot: 1,\n th: 1,\n thead: 1,\n tr: 1\n },\n\n /**\n * List of \"transparent\" elements. See [W3C's definition of \"transparent\" element](http://dev.w3.org/html5/markup/terminology.html#transparent).\n */\n $transparent: {\n a: 1,\n audio: 1,\n canvas: 1,\n del: 1,\n ins: 1,\n map: 1,\n noscript: 1,\n object: 1,\n video: 1\n },\n\n /**\n * List of elements that are not to exist standalone that must live under its parent element.\n */\n $intermediate: {\n caption: 1,\n colgroup: 1,\n dd: 1,\n dt: 1,\n figcaption: 1,\n legend: 1,\n li: 1,\n optgroup: 1,\n option: 1,\n rp: 1,\n rt: 1,\n summary: 1,\n tbody: 1,\n td: 1,\n tfoot: 1,\n th: 1,\n thead: 1,\n tr: 1\n }\n });\n\n return dtd;\n })();\n\n\n /**\n * Applies QTI rules to a copy of the xhtmlDtd\n *\n * @return dtd {object} the modified dtd\n */\n dtds.qti = (function () {\n var element,\n listCnt,\n child,\n actions = ['remove', 'add'],\n actCnt,\n actLnt = actions.length,\n action,\n overrides = {\n pre: {\n add: [],\n remove: ['img', 'object', 'big', 'small', 'sub', 'sup']\n },\n table: {\n remove: ['col']\n }\n },\n qtiDtd = _.cloneDeep(dtds.html),\n tmp,\n h5Len = html5Only.length,\n intersection;\n\n // remove html5-only keys\n while (h5Len--) {\n delete(qtiDtd[html5Only[h5Len]]);\n }\n\n // find html5-only elements in children and add them to overrides\n for (element in qtiDtd) {\n if (!qtiDtd.hasOwnProperty(element)) {\n continue;\n }\n intersection = _.intersection(_.keys(qtiDtd[element]), html5Only);\n if (!intersection.length) {\n continue;\n }\n if (!overrides[element]) {\n overrides[element] = {\n remove: []\n };\n }\n overrides[element].remove = overrides[element].remove.concat(intersection);\n }\n\n // execute overrides\n for (element in overrides) {\n if (!overrides.hasOwnProperty(element)) {\n continue;\n }\n // disallow adding keys to the dtd ckeditor cannot handle\n if (!qtiDtd.hasOwnProperty(element)) {\n continue;\n }\n\n // note: removing and adding is on purpose done in two steps\n for (actCnt = 0; actCnt < actLnt; actCnt++) {\n action = actions[actCnt];\n if (!(action in overrides[element])) {\n continue;\n }\n listCnt = overrides[element][action].length;\n\n\n // allow 'all' as a shortcut for 'remove all children'\n if (action === 'remove' && overrides[element][action] === 'all') {\n qtiDtd[element] = {};\n continue;\n }\n\n\n // doggy style loop over children to add\n while (listCnt--) {\n child = overrides[element][action][listCnt];\n // there was some weird behaviour with references\n // deleting from pre would also delete from p\n // going over a tmp var solves this, though I have no idea why\n tmp = _.cloneDeep(qtiDtd[element]);\n if (action === 'remove') {\n delete(tmp[child]);\n qtiDtd[element] = tmp;\n }\n // add child element to element as long as it's not entirely unknown to ckeditor\n else if (action === 'add' && typeof qtiDtd[child] !== 'undefined') {\n tmp[child] = 1;\n qtiDtd[element] = tmp[child];\n }\n }\n }\n }\n\n return qtiDtd;\n }());\n\n return {\n getDtd: getDtd,\n getChildrenOf: getChildrenOf,\n getParentsOf: getParentsOf,\n isChildOf: isChildOf,\n isParentOf: isParentOf,\n getMode: getMode,\n setMode: setMode\n }\n }());\n\n return dtdHandler;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\ndefine('ui/ckeditor/ckConfigurator',[\n 'jquery',\n 'lodash',\n 'ckeditor',\n 'ui/ckeditor/dtdHandler'\n], function($, _, ckeditor, dtdHandler) {\n 'use strict';\n /**\n * Cache original config\n */\n var originalConfig = _.cloneDeep(window.CKEDITOR.config);\n\n var ckConfigurator = (function(){\n\n /**\n * Toolbar presets that you normally never would need to change, they can however be overridden with options.toolbar.\n * The argument 'toolbarType' determines which toolbar to use\n */\n var toolbarPresets = {\n inline : [{\n name : 'basicstyles',\n items : ['Bold', 'Italic', 'Subscript', 'Superscript']\n }, {\n name : 'insert',\n items : ['SpecialChar']\n }, {\n name : 'links',\n items : ['Link']\n }],\n flow : [{\n name : 'basicstyles',\n items : ['Bold', 'Italic', 'Subscript', 'Superscript']\n }, {\n name : 'insert',\n items : ['SpecialChar']\n }, {\n name : 'links',\n items : ['Link']\n }],\n block : [{\n name : 'basicstyles',\n items : ['Bold', 'Italic', 'Subscript', 'Superscript']\n }, {\n name : 'insert',\n items : ['Image', 'SpecialChar']\n },\n {\n name : 'links',\n items : ['Link']\n },\n '/',\n {\n name : 'styles',\n items : ['Format']\n }, {\n name : 'paragraph',\n items : ['NumberedList', 'BulletedList', '-', 'Blockquote', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock']\n }],\n extendedText : [{\n name : 'basicstyles',\n items : ['Bold', 'Italic', 'Underline','Subscript', 'Superscript']\n },{\n name : 'insert',\n items : ['SpecialChar']\n },{\n name : 'paragraph',\n items : ['NumberedList', 'BulletedList']\n },{\n name : 'clipboard',\n items : ['Cut', 'Copy', 'Paste']\n },{\n name : 'history',\n items : ['Undo', 'Redo']\n },{\n name : 'fontstyles',\n items : ['TextColor','Font','FontSize']\n }]\n };\n\n /**\n * defaults for editor configuration\n */\n var ckConfig = {\n disableAutoInline : true,\n entities : false,\n entities_processNumerical : true,\n autoParagraph : false,\n extraPlugins : 'confighelper',\n floatSpaceDockedOffsetY : 0,\n forcePasteAsPlainText : true,\n skin : 'tao',\n language : 'en',\n removePlugins : '',\n linkShowAdvancedTab : false,\n justifyClasses : ['txt-lft', 'txt-ctr', 'txt-rgt', 'txt-jty'],\n linkShowTargetTab : false,\n coreStyles_underline: {\n element: 'span',\n attributes: {'class': 'txt-underline'}\n },\n specialChars : ['!', '&quot;', '#', '$', '%', '&amp;', \"'\", '(', ')', '*', '+', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', ['&lt;', 'Less than'],\n ['&le;', 'Less than or equal to'], '&asymp;', '=', '&ne;', ['&ge;', 'Greater than or equal to'], ['&gt;', 'Greater than'], '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',\n 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',\n 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', \"&euro;\", \"&lsquo;\", \"&rsquo;\", \"&ldquo;\", \"&rdquo;\", \"&ndash;\", \"&mdash;\", \"&iexcl;\",\n \"&cent;\", \"&pound;\", \"&curren;\", \"&yen;\", \"&brvbar;\", \"&sect;\", \"&uml;\", \"&copy;\", \"&ordf;\", \"&laquo;\", \"&not;\", \"&reg;\", \"&macr;\", \"&deg;\", \"&sup2;\", \"&sup3;\", \"&acute;\",\n \"&micro;\", \"&para;\", \"&middot;\", \"&cedil;\", \"&sup1;\", \"&ordm;\", \"&raquo;\", \"&frac14;\", \"&frac12;\", \"&frac34;\", \"&iquest;\", \"&Agrave;\", \"&Aacute;\", \"&Acirc;\", \"&Atilde;\",\n \"&Auml;\", \"&Aring;\", \"&AElig;\", \"&Ccedil;\", \"&Egrave;\", \"&Eacute;\", \"&Ecirc;\", \"&Euml;\", \"&Igrave;\", \"&Iacute;\", \"&Icirc;\", \"&Iuml;\", \"&ETH;\", \"&Ntilde;\", \"&Ograve;\", \"&Oacute;\",\n \"&Ocirc;\", \"&Otilde;\", \"&Ouml;\", \"&times;\", \"&Oslash;\", \"&Ugrave;\", \"&Uacute;\", \"&Ucirc;\", \"&Uuml;\", \"&Yacute;\", \"&THORN;\", \"&szlig;\", \"&agrave;\", \"&aacute;\", \"&acirc;\",\n \"&atilde;\", \"&auml;\", \"&aring;\", \"&aelig;\", \"&ccedil;\", \"&egrave;\", \"&eacute;\", \"&ecirc;\", \"&euml;\", \"&igrave;\", \"&iacute;\", \"&icirc;\", \"&iuml;\", \"&eth;\", \"&ntilde;\",\n \"&ograve;\", \"&oacute;\", \"&ocirc;\", \"&otilde;\", \"&ouml;\", \"&divide;\", \"&oslash;\", \"&ugrave;\", \"&uacute;\", \"&ucirc;\", \"&uuml;\", \"&yacute;\", \"&thorn;\", \"&yuml;\", \"&OElig;\",\n \"&oelig;\", \"&#372;\", \"&#374\", \"&#373\", \"&#375;\", \"&sbquo;\", \"&#8219;\", \"&bdquo;\", \"&hellip;\", \"&trade;\", \"&#9658;\", \"&bull;\", \"&rarr;\", \"&rArr;\", \"&hArr;\", \"&diams;\",\"&asymp;\"]\n };\n\n /**\n * Insert positioned plugins at position specified in options.positionedPlugins\n *\n * @param ckConfig\n * @param positionedPlugins\n */\n var _updatePlugins = function(ckConfig, positionedPlugins){\n\n positionedPlugins = positionedPlugins || {};\n\n var itCnt,\n tbCnt = ckConfig.toolbar.length,\n itLen,\n method,\n plugin,\n index,\n separator,\n idxItem,\n numToReplace,\n stringVal,\n stringVals = {},\n i;\n\n // add positioned plugins to extraPlugins and let CKEDITOR take care of their registration\n ckConfig.extraPlugins = (function(positionedPluginArr, extraPlugins){\n var i = positionedPluginArr.length,\n extraPluginArr = extraPlugins.split(',');\n\n while(i--){\n positionedPluginArr[i] = positionedPluginArr[i].toLowerCase();\n }\n\n extraPluginArr = _.compact(_.union(extraPluginArr, positionedPluginArr));\n return extraPluginArr.join(',');\n\n }(_.keys(positionedPlugins), ckConfig.extraPlugins));\n\n // capture line breaks (/) and such\n // and turn them into a objects temporarily\n for(i = 0; i < tbCnt; i++){\n if(_.isString(ckConfig.toolbar[i])){\n stringVals[i] = ckConfig.toolbar[i];\n ckConfig.toolbar[i] = {\n items : []\n };\n }\n }\n\n // add positioned plugins to toolbar\n for(plugin in positionedPlugins){\n\n method = (function(pluginProps){\n var i = pluginProps.length;\n while(i--){\n if(pluginProps[i].indexOf('insert') === 0 || pluginProps[i] === 'replace'){\n return pluginProps[i];\n }\n }\n\n throw 'Missing key insertBefore | insertAfter | replace in positionedPlugins';\n\n }(_.keys(positionedPlugins[plugin])));\n\n\n // the item to insert before | after\n idxItem = positionedPlugins[plugin][method].toLowerCase();\n separator = positionedPlugins[plugin].separator || false;\n index = -1;\n\n // each button row\n while(tbCnt--){\n itLen = ckConfig.toolbar[tbCnt].items.length;\n\n // each item in row\n for(itCnt = 0; itCnt < itLen; itCnt++){\n if(ckConfig.toolbar[tbCnt].items[itCnt].toLowerCase() === idxItem){\n index = itCnt;\n break;\n }\n }\n //continue\n if(index > -1){\n // ~~ converts bool to number\n numToReplace = ~~(method === 'replace');\n if(method === 'insertAfter'){\n index++;\n }\n if(separator){\n ckConfig.toolbar[tbCnt].items.splice(index, numToReplace, '-');\n index++;\n }\n ckConfig.toolbar[tbCnt].items.splice(index, numToReplace, plugin);\n break;\n }\n }\n // reset tbCnt\n tbCnt = ckConfig.toolbar.length;\n }\n\n\n // re-add toolbar line breaks\n for(stringVal in stringVals){\n ckConfig.toolbar[stringVal] = stringVals[stringVal];\n }\n\n };\n\n /**\n * Generate a configuration object for CKEDITOR\n *\n * @param editor instance of ckeditor\n * @param toolbarType block | inline | flow | qtiBlock | qtiInline | qtiFlow | reset to get back to normal\n * @param {Object} [options] - is based on the CKEDITOR config object with some additional sugar\n * Note that it's here you need to add parameters for the resource manager.\n * Some options are not covered in http://docs.ckeditor.com/#!/api/CKEDITOR.config\n * @param [options.dtdOverrides] - @see dtdOverrides which pre-defines them\n * @param {Object} [options.positionedPlugins] - @see ckConfig.positionedPlugins\n * @param {Boolean} [options.qtiImage] - enables the qtiImage plugin\n * @param {Boolean} [options.qtiInclude] - enables the qtiInclude plugin\n * @param {Boolean} [options.underline] - enables the underline plugin\n * @param {Boolean} [options.mathJax] - enables the mathJax plugin\n *\n * @see http://docs.ckeditor.com/#!/api/CKEDITOR.config\n */\n var getConfig = function(editor, toolbarType, options){\n\n if(toolbarType === 'reset'){\n return originalConfig;\n }\n\n options = options || {};\n\n options.resourcemgr = options.resourcemgr || {};\n\n var toolbar,\n toolbars = _.clone(toolbarPresets, true),\n config,\n dtdMode = options.dtdMode || 'html';\n\n // This is different from CKEDITOR.config.extraPlugins since it also allows to position the button\n // Valid positioning keys are insertAfter | insertBefore | replace followed by the button name, e.g. 'Anchor'\n // separator bool, defaults to false\n var positionedPlugins = {};\n\n // modify DTD to either comply with QTI or XHTML\n if(dtdMode === 'qti' || toolbarType.indexOf('qti') === 0){\n toolbarType = toolbarType.slice(3).toLowerCase();\n ckConfig.allowedContent = true;\n ckConfig.autoParagraph = false;\n dtdMode = 'qti';\n }\n\n // modify plugins - this will change the toolbar too\n // this would add the qti plugins in positionedPlugins\n if (dtdMode === 'qti') {\n if (options.qtiImage) {\n positionedPlugins.TaoQtiImage = {insertAfter: 'SpecialChar'};\n }\n if (options.qtiInclude) {\n positionedPlugins.TaoQtiInclude = {insertAfter: 'SpecialChar'};\n }\n if (options.underline) {\n positionedPlugins.TaoUnderline = {insertAfter: 'Italic'};\n }\n if (options.mathJax) {\n positionedPlugins.TaoQtiMaths = {insertAfter: 'SpecialChar'};\n }\n\n }\n\n // if there is a toolbar in the options add it to the set\n if(options.toolbar){\n toolbars[toolbarType] = _.clone(options.toolbar);\n }\n\n // add toolbars to config\n for(toolbar in toolbars){\n if(toolbars.hasOwnProperty(toolbar)){\n ckConfig['toolbar_' + toolbar] = toolbars[toolbar];\n }\n }\n\n // add the toolbar\n if(typeof toolbars[toolbarType] !== 'undefined'){\n ckConfig.toolbar = toolbars[toolbarType];\n }\n\n // ensures positionedPlugins has the right format\n if(typeof options.positionedPlugins !== 'undefined'){\n options.positionedPlugins = {};\n }\n\n // set options.positionedPlugins to false to prevent the class from using them at all\n if(false !== options.positionedPlugins){\n // this would add positionedPlugins (e.g. the media manager)\n positionedPlugins = _.assign(positionedPlugins, _.clone(options.positionedPlugins));\n _updatePlugins(ckConfig, positionedPlugins);\n }\n\n // forward the options to ckConfig, exclude local options\n config = _.assign({}, _.cloneDeep(originalConfig), ckConfig, _.omit(options, [\n 'qtiImage', 'qtiInclude', 'underline', 'mathJax', 'toolbar', 'positionedPlugins'\n ]));\n\n // debugger: has this config been used?\n //config.aaaConfigurationHasBeenLoadedFromConfigurator = true;\n\n // toggle global DTD\n // I know that this is rather ugly\n editor.on('focus', function(e){\n dtdHandler.setMode(dtdMode);\n window.CKEDITOR.dtd = dtdHandler.getDtd();\n // should be 1 on html, undefined on qti\n // console.log(CKEDITOR.dtd.pre.img)\n });\n\n // remove title 'Rich Text Editor, instance n' that CKE sets by default\n // ref: http://tinyurl.com/keedruc\n editor.on('instanceReady', function(e){\n $(e.editor.element.$).removeAttr('title');\n });\n\n // This fixes bug #2855. Unfortunately this can be done on the global object only, not on the instance\n window.CKEDITOR.on('dialogDefinition', function(e) {\n if(e.data.name !== 'link') {\n return;\n }\n var linkTypes = e.data.definition.getContents('info').get('linkType')['items'],\n i = linkTypes.length,\n wanted;\n\n while(i--) {\n if(linkTypes[i][1] !== 'anchor') {\n wanted = i;\n continue;\n }\n }\n\n linkTypes.splice(wanted + 1, 1);\n return;\n });\n\n\n return config;\n };\n\n return {\n getConfig : getConfig\n };\n\n }());\n\n return ckConfigurator;\n});\n\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/ckConfigurator',['ui/ckeditor/ckConfigurator'], function(ckConfigurator) {\n 'use strict';\n\n /**\n * Generate a configuration object for CKEDITOR\n *\n * @param editor instance of ckeditor\n * @param toolbarType block | inline | flow | qtiBlock | qtiInline | qtiFlow | reset to get back to normal\n * @param {Object} [options] - is based on the CKEDITOR config object with some additional sugar\n * Note that it's here you need to add parameters for the resource manager.\n * Some options are not covered in http://docs.ckeditor.com/#!/api/CKEDITOR.config\n * @param [options.dtdOverrides] - @see dtdOverrides which pre-defines them\n * @param {Object} [options.positionedPlugins] - @see ckConfig.positionedPlugins\n * @param {Boolean} [options.qtiImage] - enables the qtiImage plugin\n * @param {Boolean} [options.qtiInclude] - enables the qtiInclude plugin\n * @param {Boolean} [options.underline] - enables the underline plugin\n * @param {Boolean} [options.mathJax] - enables the mathJax plugin\n *\n * @see http://docs.ckeditor.com/#!/api/CKEDITOR.config\n */\n var getConfig = function(editor, toolbarType, options){\n options = options || {};\n\n options.underline = true;\n\n return ckConfigurator.getConfig(editor, toolbarType, options);\n };\n\n return {\n getConfig : getConfig\n };\n});\n\n","/* \r\n * The MIT License\r\n *\r\n * Copyright (c) 2012 James Allardice\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), \r\n * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, \r\n * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\n// Defines the global Placeholders object along with various utility methods\r\n(function (global) {\r\n\r\n \"use strict\";\r\n\r\n // Cross-browser DOM event binding\r\n function addEventListener(elem, event, fn) {\r\n if (elem.addEventListener) {\r\n return elem.addEventListener(event, fn, false);\r\n }\r\n if (elem.attachEvent) {\r\n return elem.attachEvent(\"on\" + event, fn);\r\n }\r\n }\r\n\r\n // Check whether an item is in an array (we don't use Array.prototype.indexOf so we don't clobber any existing polyfills - this is a really simple alternative)\r\n function inArray(arr, item) {\r\n var i, len;\r\n for (i = 0, len = arr.length; i < len; i++) {\r\n if (arr[i] === item) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n // Move the caret to the index position specified. Assumes that the element has focus\r\n function moveCaret(elem, index) {\r\n var range;\r\n if (elem.createTextRange) {\r\n range = elem.createTextRange();\r\n range.move(\"character\", index);\r\n range.select();\r\n } else if (elem.selectionStart) {\r\n elem.focus();\r\n elem.setSelectionRange(index, index);\r\n }\r\n }\r\n\r\n // Attempt to change the type property of an input element\r\n function changeType(elem, type) {\r\n try {\r\n elem.type = type;\r\n return true;\r\n } catch (e) {\r\n // You can't change input type in IE8 and below\r\n return false;\r\n }\r\n }\r\n\r\n // Expose public methods\r\n global.Placeholders = {\r\n Utils: {\r\n addEventListener: addEventListener,\r\n inArray: inArray,\r\n moveCaret: moveCaret,\r\n changeType: changeType\r\n }\r\n };\r\n\r\n}(this));\r\n\r\n(function (global) {\r\n\r\n \"use strict\";\r\n\r\n var validTypes = [\r\n \"text\",\r\n \"search\",\r\n \"url\",\r\n \"tel\",\r\n \"email\",\r\n \"password\",\r\n \"number\",\r\n \"textarea\"\r\n ],\r\n\r\n // The list of keycodes that are not allowed when the polyfill is configured to hide-on-input\r\n badKeys = [\r\n\r\n // The following keys all cause the caret to jump to the end of the input value\r\n 27, // Escape\r\n 33, // Page up\r\n 34, // Page down\r\n 35, // End\r\n 36, // Home\r\n\r\n // Arrow keys allow you to move the caret manually, which should be prevented when the placeholder is visible\r\n 37, // Left\r\n 38, // Up\r\n 39, // Right\r\n 40, // Down\r\n\r\n // The following keys allow you to modify the placeholder text by removing characters, which should be prevented when the placeholder is visible\r\n 8, // Backspace\r\n 46 // Delete\r\n ],\r\n\r\n // Styling variables\r\n placeholderStyleColor = \"#ccc\",\r\n placeholderClassName = \"placeholdersjs\",\r\n classNameRegExp = new RegExp(\"(?:^|\\\\s)\" + placeholderClassName + \"(?!\\\\S)\"),\r\n\r\n // These will hold references to all elements that can be affected. NodeList objects are live, so we only need to get those references once\r\n inputs, textareas,\r\n\r\n // The various data-* attributes used by the polyfill\r\n ATTR_CURRENT_VAL = \"data-placeholder-value\",\r\n ATTR_ACTIVE = \"data-placeholder-active\",\r\n ATTR_INPUT_TYPE = \"data-placeholder-type\",\r\n ATTR_FORM_HANDLED = \"data-placeholder-submit\",\r\n ATTR_EVENTS_BOUND = \"data-placeholder-bound\",\r\n ATTR_OPTION_FOCUS = \"data-placeholder-focus\",\r\n ATTR_OPTION_LIVE = \"data-placeholder-live\",\r\n ATTR_MAXLENGTH = \"data-placeholder-maxlength\",\r\n\r\n // Various other variables used throughout the rest of the script\r\n test = document.createElement(\"input\"),\r\n head = document.getElementsByTagName(\"head\")[0],\r\n root = document.documentElement,\r\n Placeholders = global.Placeholders,\r\n Utils = Placeholders.Utils,\r\n hideOnInput, liveUpdates, keydownVal, styleElem, styleRules, placeholder, timer, form, elem, len, i;\r\n\r\n // No-op (used in place of public methods when native support is detected)\r\n function noop() {}\r\n\r\n // Avoid IE9 activeElement of death when an iframe is used.\r\n // More info:\r\n // http://bugs.jquery.com/ticket/13393\r\n // https://github.com/jquery/jquery/commit/85fc5878b3c6af73f42d61eedf73013e7faae408\r\n function safeActiveElement() {\r\n try {\r\n return document.activeElement;\r\n } catch (err) {}\r\n }\r\n\r\n // Hide the placeholder value on a single element. Returns true if the placeholder was hidden and false if it was not (because it wasn't visible in the first place)\r\n function hidePlaceholder(elem, keydownValue) {\r\n var type,\r\n maxLength,\r\n valueChanged = (!!keydownValue && elem.value !== keydownValue),\r\n isPlaceholderValue = (elem.value === elem.getAttribute(ATTR_CURRENT_VAL));\r\n\r\n if ((valueChanged || isPlaceholderValue) && elem.getAttribute(ATTR_ACTIVE) === \"true\") {\r\n elem.removeAttribute(ATTR_ACTIVE);\r\n elem.value = elem.value.replace(elem.getAttribute(ATTR_CURRENT_VAL), \"\");\r\n elem.className = elem.className.replace(classNameRegExp, \"\");\r\n\r\n // Restore the maxlength value\r\n maxLength = elem.getAttribute(ATTR_MAXLENGTH);\r\n if (parseInt(maxLength, 10) >= 0) { // Old FF returns -1 if attribute not set (see GH-56)\r\n elem.setAttribute(\"maxLength\", maxLength);\r\n elem.removeAttribute(ATTR_MAXLENGTH);\r\n }\r\n\r\n // If the polyfill has changed the type of the element we need to change it back\r\n type = elem.getAttribute(ATTR_INPUT_TYPE);\r\n if (type) {\r\n elem.type = type;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // Show the placeholder value on a single element. Returns true if the placeholder was shown and false if it was not (because it was already visible)\r\n function showPlaceholder(elem) {\r\n var type,\r\n maxLength,\r\n val = elem.getAttribute(ATTR_CURRENT_VAL);\r\n if (elem.value === \"\" && val) {\r\n elem.setAttribute(ATTR_ACTIVE, \"true\");\r\n elem.value = val;\r\n elem.className += \" \" + placeholderClassName;\r\n\r\n // Store and remove the maxlength value\r\n maxLength = elem.getAttribute(ATTR_MAXLENGTH);\r\n if (!maxLength) {\r\n elem.setAttribute(ATTR_MAXLENGTH, elem.maxLength);\r\n elem.removeAttribute(\"maxLength\");\r\n }\r\n\r\n // If the type of element needs to change, change it (e.g. password inputs)\r\n type = elem.getAttribute(ATTR_INPUT_TYPE);\r\n if (type) {\r\n elem.type = \"text\";\r\n } else if (elem.type === \"password\") {\r\n if (Utils.changeType(elem, \"text\")) {\r\n elem.setAttribute(ATTR_INPUT_TYPE, \"password\");\r\n }\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function handleElem(node, callback) {\r\n\r\n var handleInputsLength, handleTextareasLength, handleInputs, handleTextareas, elem, len, i;\r\n\r\n // Check if the passed in node is an input/textarea (in which case it can't have any affected descendants)\r\n if (node && node.getAttribute(ATTR_CURRENT_VAL)) {\r\n callback(node);\r\n } else {\r\n\r\n // If an element was passed in, get all affected descendants. Otherwise, get all affected elements in document\r\n handleInputs = node ? node.getElementsByTagName(\"input\") : inputs;\r\n handleTextareas = node ? node.getElementsByTagName(\"textarea\") : textareas;\r\n\r\n handleInputsLength = handleInputs ? handleInputs.length : 0;\r\n handleTextareasLength = handleTextareas ? handleTextareas.length : 0;\r\n\r\n // Run the callback for each element\r\n for (i = 0, len = handleInputsLength + handleTextareasLength; i < len; i++) {\r\n elem = i < handleInputsLength ? handleInputs[i] : handleTextareas[i - handleInputsLength];\r\n callback(elem);\r\n }\r\n }\r\n }\r\n\r\n // Return all affected elements to their normal state (remove placeholder value if present)\r\n function disablePlaceholders(node) {\r\n handleElem(node, hidePlaceholder);\r\n }\r\n\r\n // Show the placeholder value on all appropriate elements\r\n function enablePlaceholders(node) {\r\n handleElem(node, showPlaceholder);\r\n }\r\n\r\n // Returns a function that is used as a focus event handler\r\n function makeFocusHandler(elem) {\r\n return function () {\r\n\r\n // Only hide the placeholder value if the (default) hide-on-focus behaviour is enabled\r\n if (hideOnInput && elem.value === elem.getAttribute(ATTR_CURRENT_VAL) && elem.getAttribute(ATTR_ACTIVE) === \"true\") {\r\n\r\n // Move the caret to the start of the input (this mimics the behaviour of all browsers that do not hide the placeholder on focus)\r\n Utils.moveCaret(elem, 0);\r\n\r\n } else {\r\n\r\n // Remove the placeholder\r\n hidePlaceholder(elem);\r\n }\r\n };\r\n }\r\n\r\n // Returns a function that is used as a blur event handler\r\n function makeBlurHandler(elem) {\r\n return function () {\r\n showPlaceholder(elem);\r\n };\r\n }\r\n\r\n // Functions that are used as a event handlers when the hide-on-input behaviour has been activated - very basic implementation of the \"input\" event\r\n function makeKeydownHandler(elem) {\r\n return function (e) {\r\n keydownVal = elem.value;\r\n\r\n //Prevent the use of the arrow keys (try to keep the cursor before the placeholder)\r\n if (elem.getAttribute(ATTR_ACTIVE) === \"true\") {\r\n if (keydownVal === elem.getAttribute(ATTR_CURRENT_VAL) && Utils.inArray(badKeys, e.keyCode)) {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n return false;\r\n }\r\n }\r\n };\r\n }\r\n function makeKeyupHandler(elem) {\r\n return function () {\r\n hidePlaceholder(elem, keydownVal);\r\n\r\n // If the element is now empty we need to show the placeholder\r\n if (elem.value === \"\") {\r\n elem.blur();\r\n Utils.moveCaret(elem, 0);\r\n }\r\n };\r\n }\r\n function makeClickHandler(elem) {\r\n return function () {\r\n if (elem === safeActiveElement() && elem.value === elem.getAttribute(ATTR_CURRENT_VAL) && elem.getAttribute(ATTR_ACTIVE) === \"true\") {\r\n Utils.moveCaret(elem, 0);\r\n }\r\n };\r\n }\r\n\r\n // Returns a function that is used as a submit event handler on form elements that have children affected by this polyfill\r\n function makeSubmitHandler(form) {\r\n return function () {\r\n\r\n // Turn off placeholders on all appropriate descendant elements\r\n disablePlaceholders(form);\r\n };\r\n }\r\n\r\n // Bind event handlers to an element that we need to affect with the polyfill\r\n function newElement(elem) {\r\n\r\n // If the element is part of a form, make sure the placeholder string is not submitted as a value\r\n if (elem.form) {\r\n form = elem.form;\r\n\r\n // If the type of the property is a string then we have a \"form\" attribute and need to get the real form\r\n if (typeof form === \"string\") {\r\n form = document.getElementById(form);\r\n }\r\n\r\n // Set a flag on the form so we know it's been handled (forms can contain multiple inputs)\r\n if (!form.getAttribute(ATTR_FORM_HANDLED)) {\r\n Utils.addEventListener(form, \"submit\", makeSubmitHandler(form));\r\n form.setAttribute(ATTR_FORM_HANDLED, \"true\");\r\n }\r\n }\r\n\r\n // Bind event handlers to the element so we can hide/show the placeholder as appropriate\r\n Utils.addEventListener(elem, \"focus\", makeFocusHandler(elem));\r\n Utils.addEventListener(elem, \"blur\", makeBlurHandler(elem));\r\n\r\n // If the placeholder should hide on input rather than on focus we need additional event handlers\r\n if (hideOnInput) {\r\n Utils.addEventListener(elem, \"keydown\", makeKeydownHandler(elem));\r\n Utils.addEventListener(elem, \"keyup\", makeKeyupHandler(elem));\r\n Utils.addEventListener(elem, \"click\", makeClickHandler(elem));\r\n }\r\n\r\n // Remember that we've bound event handlers to this element\r\n elem.setAttribute(ATTR_EVENTS_BOUND, \"true\");\r\n elem.setAttribute(ATTR_CURRENT_VAL, placeholder);\r\n\r\n // If the element doesn't have a value and is not focussed, set it to the placeholder string\r\n if (hideOnInput || elem !== safeActiveElement()) {\r\n showPlaceholder(elem);\r\n }\r\n }\r\n\r\n Placeholders.nativeSupport = test.placeholder !== void 0;\r\n\r\n if (!Placeholders.nativeSupport) {\r\n\r\n // Get references to all the input and textarea elements currently in the DOM (live NodeList objects to we only need to do this once)\r\n inputs = document.getElementsByTagName(\"input\");\r\n textareas = document.getElementsByTagName(\"textarea\");\r\n\r\n // Get any settings declared as data-* attributes on the root element (currently the only options are whether to hide the placeholder on focus or input and whether to auto-update)\r\n hideOnInput = root.getAttribute(ATTR_OPTION_FOCUS) === \"false\";\r\n liveUpdates = root.getAttribute(ATTR_OPTION_LIVE) !== \"false\";\r\n\r\n // Create style element for placeholder styles (instead of directly setting style properties on elements - allows for better flexibility alongside user-defined styles)\r\n styleElem = document.createElement(\"style\");\r\n styleElem.type = \"text/css\";\r\n\r\n // Create style rules as text node\r\n styleRules = document.createTextNode(\".\" + placeholderClassName + \" { color:\" + placeholderStyleColor + \"; }\");\r\n\r\n // Append style rules to newly created stylesheet\r\n if (styleElem.styleSheet) {\r\n styleElem.styleSheet.cssText = styleRules.nodeValue;\r\n } else {\r\n styleElem.appendChild(styleRules);\r\n }\r\n\r\n // Prepend new style element to the head (before any existing stylesheets, so user-defined rules take precedence)\r\n head.insertBefore(styleElem, head.firstChild);\r\n\r\n // Set up the placeholders\r\n for (i = 0, len = inputs.length + textareas.length; i < len; i++) {\r\n elem = i < inputs.length ? inputs[i] : textareas[i - inputs.length];\r\n\r\n // Get the value of the placeholder attribute, if any. IE10 emulating IE7 fails with getAttribute, hence the use of the attributes node\r\n placeholder = elem.attributes.placeholder;\r\n if (placeholder) {\r\n\r\n // IE returns an empty object instead of undefined if the attribute is not present\r\n placeholder = placeholder.nodeValue;\r\n\r\n // Only apply the polyfill if this element is of a type that supports placeholders, and has a placeholder attribute with a non-empty value\r\n if (placeholder && Utils.inArray(validTypes, elem.type)) {\r\n newElement(elem);\r\n }\r\n }\r\n }\r\n\r\n // If enabled, the polyfill will repeatedly check for changed/added elements and apply to those as well\r\n timer = setInterval(function () {\r\n for (i = 0, len = inputs.length + textareas.length; i < len; i++) {\r\n elem = i < inputs.length ? inputs[i] : textareas[i - inputs.length];\r\n\r\n // Only apply the polyfill if this element is of a type that supports placeholders, and has a placeholder attribute with a non-empty value\r\n placeholder = elem.attributes.placeholder;\r\n if (placeholder) {\r\n placeholder = placeholder.nodeValue;\r\n if (placeholder && Utils.inArray(validTypes, elem.type)) {\r\n\r\n // If the element hasn't had event handlers bound to it then add them\r\n if (!elem.getAttribute(ATTR_EVENTS_BOUND)) {\r\n newElement(elem);\r\n }\r\n\r\n // If the placeholder value has changed or not been initialised yet we need to update the display\r\n if (placeholder !== elem.getAttribute(ATTR_CURRENT_VAL) || (elem.type === \"password\" && !elem.getAttribute(ATTR_INPUT_TYPE))) {\r\n\r\n // Attempt to change the type of password inputs (fails in IE < 9)\r\n if (elem.type === \"password\" && !elem.getAttribute(ATTR_INPUT_TYPE) && Utils.changeType(elem, \"text\")) {\r\n elem.setAttribute(ATTR_INPUT_TYPE, \"password\");\r\n }\r\n\r\n // If the placeholder value has changed and the placeholder is currently on display we need to change it\r\n if (elem.value === elem.getAttribute(ATTR_CURRENT_VAL)) {\r\n elem.value = placeholder;\r\n }\r\n\r\n // Keep a reference to the current placeholder value in case it changes via another script\r\n elem.setAttribute(ATTR_CURRENT_VAL, placeholder);\r\n }\r\n }\r\n } else if (elem.getAttribute(ATTR_ACTIVE)) {\r\n hidePlaceholder(elem);\r\n elem.removeAttribute(ATTR_CURRENT_VAL);\r\n }\r\n }\r\n\r\n // If live updates are not enabled cancel the timer\r\n if (!liveUpdates) {\r\n clearInterval(timer);\r\n }\r\n }, 100);\r\n }\r\n\r\n Utils.addEventListener(global, \"beforeunload\", function () {\r\n Placeholders.disable();\r\n });\r\n\r\n // Expose public methods\r\n Placeholders.disable = Placeholders.nativeSupport ? noop : disablePlaceholders;\r\n Placeholders.enable = Placeholders.nativeSupport ? noop : enablePlaceholders;\r\n\r\n}(this));\r\n\ndefine(\"polyfill/placeholders\", function(){});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/ExtendedTextInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/extendedTextInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'ckeditor',\n 'taoQtiItem/qtiCommonRenderer/helpers/ckConfigurator',\n 'polyfill/placeholders'\n], function($, _, __, Promise, tpl, containerHelper, instructionMgr, ckEditor, ckConfigurator){\n 'use strict';\n\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10296\n *\n * @param {Object} interaction - the extended text interaction model\n * @returns {Promise} rendering is async\n */\n var render = function render (interaction){\n return new Promise(function(resolve, reject){\n\n var $el, expectedLength, minStrings, expectedLines, patternMask, placeholderType, editor;\n var $container = containerHelper.get(interaction);\n\n var response = interaction.getResponseDeclaration();\n var multiple = _isMultiple(interaction);\n var limiter = inputLimiter(interaction);\n\n var placeholderText = interaction.attr('placeholderText');\n\n var toolbarType = 'extendedText';\n var ckOptions = {\n 'extraPlugins': 'onchange',\n 'language': 'en',\n 'defaultLanguage': 'en',\n 'resize_enabled': true,\n 'secure': location.protocol == 'https:',\n 'forceCustomDomain' : true\n };\n\n if(!multiple){\n\n $el = $container.find('textarea');\n if (placeholderText) {\n $el.attr('placeholder', placeholderText);\n }\n if (_getFormat(interaction) === \"xhtml\") {\n\n\n editor = _setUpCKEditor(interaction, ckOptions);\n if(!editor){\n reject('Unable to instantiate ckEditor');\n }\n\n editor.on('instanceReady', function(){\n //it seems there's still something done after loaded, so resolved must be defered\n _.delay(resolve, 300);\n });\n if(editor.status === 'ready' || editor.status === 'loaded'){\n _.defer(resolve);\n }\n editor.on('configLoaded', function(e) {\n editor.config = ckConfigurator.getConfig(editor, toolbarType, ckOptions);\n\n if(limiter.enabled){\n limiter.listenKeyPress();\n }\n });\n editor.on('change', function(e) {\n containerHelper.triggerResponseChangeEvent(interaction, {});\n });\n\n } else {\n\n $el.on('keyup.commonRenderer change.commonRenderer', function(e) {\n containerHelper.triggerResponseChangeEvent(interaction, {});\n });\n\n if(limiter.enabled){\n limiter.listenKeyPress();\n }\n\n resolve();\n }\n\n //multiple inputs\n } else {\n\n $el = $container.find('input');\n minStrings = interaction.attr('minStrings');\n expectedLength = interaction.attr('expectedLength');\n patternMask = interaction.attr('patternMask');\n\n //setting the checking for minimum number of answers\n if (minStrings) {\n\n //get the number of filled inputs\n var _getNumStrings = function($element) {\n var num = 0;\n $element.each(function() {\n if ($(this).val() !== '') {\n num++;\n }\n });\n\n return num;\n };\n\n minStrings = parseInt(minStrings, 10);\n if (minStrings > 0) {\n\n $el.on('blur.commonRenderer', function() {\n setTimeout(function() {\n //checking if the user was clicked outside of the input fields\n\n //TODO remove notifications in favor of instructions\n\n if (!$el.is(':focus') && _getNumStrings($el) < minStrings) {\n instructionMgr.appendNotification(interaction, __('The minimum number of answers is ') + ' : ' + minStrings, 'warning');\n }\n }, 100);\n });\n }\n }\n\n //set the fields width\n if (expectedLength) {\n expectedLength = parseInt(expectedLength, 10);\n\n if (expectedLength > 0) {\n $el.each(function() {\n $(this).css('width', expectedLength + 'em');\n });\n }\n }\n\n //set the fields pattern mask\n if (patternMask) {\n $el.each(function() {\n _setPattern($(this), patternMask);\n });\n }\n\n //set the fields placeholder\n if (placeholderText) {\n /**\n * The type of the fileds placeholder:\n * multiple - set placeholder for each field\n * first - set placeholder only for first field\n * none - dont set placeholder\n */\n placeholderType = 'first';\n\n if (placeholderType === 'multiple') {\n $el.each(function() {\n $(this).attr('placeholder', placeholderText);\n });\n }\n else if (placeholderType === 'first') {\n $el.first().attr('placeholder', placeholderText);\n }\n }\n resolve();\n }\n });\n };\n\n /**\n * Reset the textarea / ckEditor\n * @param {Object} interaction - the extended text interaction model\n */\n var resetResponse = function(interaction) {\n if (_getFormat(interaction) === 'xhtml') {\n _getCKEditor(interaction).setData('');\n }else{\n containerHelper.get(interaction).find('input, textarea').val('');\n }\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10296\n *\n * @param {Object} interaction - the extended text interaction model\n * @param {object} response\n */\n var setResponse = function(interaction, response) {\n\n var _setMultipleVal = function(identifier, value) {\n interaction.getContainer().find('#'+identifier).val(value);\n };\n\n var baseType = interaction.getResponseDeclaration().attr('baseType');\n\n if (response.base && response.base[baseType] !== undefined) {\n setText(interaction, response.base[baseType]);\n }\n else if (response.list && response.list[baseType]) {\n\n for (var i in response.list[baseType]) {\n var serial = (response.list.serial === undefined) ? '' : response.list.serial[i];\n _setMultipleVal(serial + '_' + i, response.list[baseType][i]);\n }\n }\n else {\n throw new Error('wrong response format in argument.');\n }\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10296\n *\n * @param {Object} interaction - the extended text interaction model\n * @returns {object}\n */\n var getResponse = function(interaction) {\n\n var $container = containerHelper.get(interaction);\n var attributes = interaction.getAttributes();\n var responseDeclaration = interaction.getResponseDeclaration();\n var baseType = responseDeclaration.attr('baseType');\n var numericBase = attributes.base || 10;\n var multiple = !!(attributes.maxStrings && (responseDeclaration.attr('cardinality') === 'multiple' || responseDeclaration.attr('cardinality') === 'ordered'));\n var ret = multiple ? {list:{}} : {base:{}};\n\n if (multiple) {\n\n var values = [];\n\n $container.find('input').each(function(i) {\n\n var $el = $(this);\n\n if (attributes.placeholderText && $el.val() === attributes.placeholderText) {\n values[i] = '';\n }\n else {\n if (baseType === 'integer') {\n values[i] = parseInt($el.val(), numericBase);\n values[i] = isNaN(values[i]) ? '' : values[i];\n }\n else if(baseType === 'float') {\n values[i] = parseFloat($el.val());\n values[i] = isNaN(values[i]) ? '' : values[i];\n }\n else if(baseType === 'string') {\n values[i] = $el.val();\n }\n }\n });\n\n ret.list[baseType] = values;\n }\n else {\n\n var value = '';\n\n if (attributes.placeholderText && _getTextareaValue(interaction) === attributes.placeholderText) {\n value = '';\n }\n else {\n\n if (baseType === 'integer') {\n value = parseInt(_getTextareaValue(interaction), numericBase);\n }\n else if (baseType === 'float') {\n value = parseFloat(_getTextareaValue(interaction));\n }\n else if (baseType === 'string') {\n value = _getTextareaValue(interaction, true);\n }\n }\n\n ret.base[baseType] = isNaN(value) && typeof value === 'number' ? '' : value;\n }\n\n return ret;\n };\n\n /**\n * Creates an input limiter object\n * @param {Object} interaction - the extended text interaction\n * @returns {Object} the limiter\n */\n var inputLimiter = function userInputLimier(interaction){\n\n var $container = containerHelper.get(interaction);\n var expectedLength = interaction.attr('expectedLength');\n var expectedLines = interaction.attr('expectedLines');\n var patternMask = interaction.attr('patternMask');\n var $textarea,\n $charsCounter,\n $wordsCounter,\n maxWords,\n maxLength;\n var enabled = false;\n\n\n\n if (expectedLength || expectedLines || patternMask) {\n\n enabled = true;\n\n $textarea = $('.text-container', $container);\n $charsCounter = $('.count-chars',$container);\n $wordsCounter = $('.count-words',$container);\n\n if (patternMask !== \"\") {\n maxWords = _parsePattern(patternMask, 'words');\n maxLength = _parsePattern(patternMask, 'chars');\n maxWords = (_.isNaN(maxWords)) ? undefined : maxWords;\n maxLength = (_.isNaN(maxLength) ? undefined : maxLength);\n }\n }\n\n /**\n * The limiter instance\n */\n var limiter = {\n\n /**\n * Is the limiter enabled regarding the interaction configuration\n */\n enabled : enabled,\n\n /**\n * Listen for a key press in the interaction and limit the input if necessary\n */\n listenKeyPress : function listenKeyPress(){\n var self = this;\n\n var ignoreKeyCodes = [\n 8, // backspace\n 16, // shift\n 17, // control\n 46, // delete\n 37, // arrow left\n 38, // arrow up\n 39, // arrow right\n 40, // arrow down\n 35, // home\n 36, // end\n\n // ckeditor specific:\n 1114177, // home\n 3342401, // Shift + home\n 1114181, // end\n 3342405, // Shift + end\n\n 2228232, // Shift + backspace\n 2228261, // Shift + arrow left\n 4456485, // Alt + arrow left\n 2228262, // Shift + arrow up\n 2228263, // Shift + arrow right\n 4456487, // Alt + arrow right\n 2228264, // Shift + arrow down\n\n 1114120, // Ctrl + backspace\n 1114177, // Ctrl + a\n 1114202, // Ctrl + z\n 1114200 // Ctrl + x\n ];\n var triggerKeyCodes = [\n 32, // space\n 13, // enter\n 2228237 // shift + enter in ckEditor\n ];\n\n\n var limitHandler = function limitHandler(e){\n var keyCode = e && e.data ? e.data.keyCode : e.which ;\n if ( (!_.contains(ignoreKeyCodes, keyCode) ) &&\n (maxWords && self.getWordsCount() >= maxWords && _.contains(triggerKeyCodes, keyCode) ||\n (maxLength && self.getCharsCount() >= maxLength))){\n if (e.cancel){\n e.cancel();\n } else {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n return false;\n }\n _.defer(function(){\n self.updateCounter();\n });\n };\n\n if (_getFormat(interaction) === \"xhtml\") {\n _getCKEditor(interaction).on('key', limitHandler);\n } else {\n $textarea.on('keydown.commonRenderer', limitHandler);\n }\n },\n\n /**\n * Get the number of words that are actually written in the response field\n * @return {Number} number of words\n */\n getWordsCount : function getWordsCount(){\n var value = _getTextareaValue(interaction) || '';\n if(_.isEmpty(value)){\n return 0;\n }\n return value.replace(/\\s+/gi, ' ').split(' ').length;\n },\n\n /**\n * Get the number of characters that are actually written in the response field\n * @return {Number} number of characters\n */\n getCharsCount : function getCharsCount(){\n var value = _getTextareaValue(interaction) || '';\n return value.length;\n },\n\n\n /**\n * Update the counter element\n */\n updateCounter : function udpateCounter(){\n $charsCounter.text(this.getCharsCount());\n $wordsCounter.text(this.getWordsCount());\n }\n };\n\n\n return limiter;\n };\n\n\n /**\n * return the value of the textarea or ckeditor data\n * @param {Object} interaction\n * @param {Boolean} raw Tells if the returned data does not have to be filtered (i.e. XHTML tags not removed)\n * @return {String} the value\n */\n var _getTextareaValue = function(interaction, raw) {\n if (_getFormat(interaction) === 'xhtml') {\n return _ckEditorData(interaction, raw);\n }\n else {\n return containerHelper.get(interaction).find('textarea').val();\n }\n };\n\n\n /**\n * Setting the pattern mask for the input, for browsers which doesn't support this feature\n * @param {jQuery} $element\n * @param {string} pattern\n */\n var _setPattern = function _setPattern($element, pattern){\n var patt = new RegExp('^'+pattern+'$');\n\n //test when some data is entering in the input field\n //@todo plug the validator + tooltip\n $element.on('keyup.commonRenderer', function(){\n $element.removeClass('field-error');\n if(!patt.test($element.val())){\n $element.addClass('field-error');\n }\n });\n };\n\n /**\n * Whether or not multiple strings are expected from the candidate to\n * compose a valid response.\n *\n * @param {Object} interaction - the extended text interaction model\n * @returns {Boolean} true if a multiple\n */\n var _isMultiple = function _isMultiple(interaction) {\n var attributes = interaction.getAttributes();\n var response = interaction.getResponseDeclaration();\n return !!(attributes.maxStrings && (response.attr('cardinality') === 'multiple' || response.attr('cardinality') === 'ordered'));\n };\n\n /**\n * Instantiate CkEditor for the interaction\n *\n * @param {Object} interaction - the extended text interaction model\n * @param {Object} [options = {}] - the CKEditor configuration options\n * @returns {Object} the ckEditor instance (or you'll be in trouble\n */\n var _setUpCKEditor = function _setUpCKEditor(interaction, options){\n var $container = containerHelper.get(interaction);\n var editor = ckEditor.replace($container.find('.text-container')[0], options || {});\n if (editor) {\n $container.data('editor', editor.name);\n return editor;\n }\n };\n\n /**\n * Destroy CKEditor\n *\n * @param {Object} interaction - the extended text interaction model\n * @param {Object} [options = {}] - the CKEditor configuration options\n */\n var _destroyCkEditor = function _destroyCkEditor(interaction){\n var $container = containerHelper.get(interaction);\n var name = $container.data('editor');\n var editor;\n if(name){\n editor = ckEditor.instances[name];\n }\n if(editor){\n editor.destroy();\n $container.removeData('editor');\n }\n };\n\n /**\n * Gets the CKEditor instance\n * @param {Object} interaction - the extended text interaction model\n * @returns {Object} CKEditor instance\n */\n var _getCKEditor = function _getCKEditor(interaction){\n var $container = containerHelper.get(interaction);\n var name = $container.data('editor');\n\n return ckEditor.instances[name];\n };\n\n /**\n * get the text content of the ckEditor ( not the entire html )\n * @param {object} interaction the interaction\n * @param {Boolean} raw Tells if the returned data does not have to be filtered (i.e. XHTML tags not removed)\n * @returns {string} text content of the ckEditor\n */\n var _ckEditorData = function _ckEditorData(interaction, raw) {\n var editor = _getCKEditor(interaction);\n var data = editor && editor.getData() || '';\n\n if (!raw) {\n data = _stripTags(data);\n }\n\n return data;\n };\n\n /**\n * Remove HTML tags from a string\n * @param {String} str\n * @returns {String}\n */\n var _stripTags = function _stripTags(str) {\n var tempNode = document.createElement('div');\n tempNode.innerHTML = str;\n return tempNode.textContent;\n };\n\n /**\n * Get the interaction format\n * @param {Object} interaction - the extended text interaction model\n * @returns {String} format in 'plain', 'xhtml', 'preformatted'\n */\n var _getFormat = function _getFormat(interaction) {\n var format = interaction.attr('format');\n if(_.contains(['plain', 'xhtml', 'preformatted'], format)){\n return format;\n }\n return 'plain';\n };\n\n /**\n * parse the pattern (idealy from patternMask) and return the max words / chars from the pattern\n * @param {String} pattern String from patternMask\n * @param {String} type the type of information you want : words / chars\n * @returns {Number|null} the number extracted of the pattern, or null if not found\n */\n var _parsePattern = function _parsePattern(pattern,type){\n if (pattern === undefined){return null;}\n\n var regexChar = /\\^\\[\\\\s\\\\S\\]\\{\\d+\\,(\\d+)\\}\\$/,\n regexWords = /\\^\\(\\?\\:\\(\\?\\:\\[\\^\\\\s\\\\:\\\\!\\\\\\?\\\\\\;\\\\\\…\\\\\\€\\]\\+\\)\\[\\\\s\\\\:\\\\!\\\\\\?\\\\;\\\\\\…\\\\\\€\\]\\*\\)\\{\\d+\\,(\\d+)\\}\\$/,\n result;\n\n if (type === \"words\") {\n result = pattern.match(regexWords);\n if (result !== null && result.length > 1) {\n return parseInt(result[1],10);\n }else{\n return null;\n }\n }else if (type === \"chars\"){\n result = pattern.match(regexChar);\n\n if (result !== null && result.length > 1) {\n return parseInt(result[1],10);\n }else{\n return null;\n }\n }else{\n return null;\n }\n };\n\n var enable = function(interaction) {\n var $container = containerHelper.get(interaction);\n var editor;\n\n $container.find('input, textarea').removeAttr('disabled');\n\n if (_getFormat(interaction) === 'xhtml') {\n editor = _getCKEditor(interaction);\n if (editor) {\n if (editor.status === 'ready') {\n editor.setReadOnly(false);\n } else {\n editor.readOnly = false;\n }\n }\n }\n };\n\n var disable = function(interaction) {\n var $container = containerHelper.get(interaction);\n var editor;\n\n $container.find('input, textarea').attr('disabled', 'disabled');\n\n if (_getFormat(interaction) === 'xhtml') {\n editor = _getCKEditor(interaction);\n if (editor) {\n if (editor.status === 'ready') {\n editor.setReadOnly(true);\n } else {\n editor.readOnly = true;\n }\n }\n }\n };\n\n var clearText = function(interaction) {\n setText(interaction, '');\n };\n\n var setText = function(interaction, text) {\n var limiter = inputLimiter(interaction);\n if ( _getFormat(interaction) === 'xhtml') {\n try{\n _getCKEditor(interaction).setData(text, function(){\n if(limiter.enabled){\n limiter.updateCounter();\n }\n });\n } catch(e){\n console.error('setText error', e);\n }\n } else {\n containerHelper.get(interaction).find('textarea').val(text);\n if(limiter.enabled){\n limiter.updateCounter();\n }\n }\n };\n\n /**\n * Clean interaction destroy\n * @param {Object} interaction\n */\n var destroy = function destroy(interaction){\n\n var $container = containerHelper.get(interaction);\n var $el = $container.find('input, textarea');\n\n if(_getFormat(interaction) === 'xhtml'){\n _destroyCkEditor(interaction);\n }\n\n //remove event\n $el.off('.commonRenderer');\n $(document).off('.commonRenderer');\n\n //remove instructions\n instructionMgr.removeInstructions(interaction);\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n try {\n interaction.setResponse(state.response);\n } catch(e) {\n interaction.resetResponse();\n throw e;\n }\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n var getCustomData = function(interaction, data){\n var pattern = interaction.attr('patternMask'),\n maxWords = parseInt(_parsePattern(pattern,'words')),\n maxLength = parseInt(_parsePattern(pattern, 'chars')),\n expectedLength = parseInt(interaction.attr('expectedLines'),10);\n return _.merge(data || {}, {\n maxWords : (! isNaN(maxWords)) ? maxWords : undefined,\n maxLength : (! isNaN(maxLength)) ? maxLength : undefined,\n attributes : (! isNaN(expectedLength)) ? { expectedLength : expectedLength * 72} : undefined\n });\n\n };\n\n /**\n * Expose the common renderer for the extended text interaction\n * @exports qtiCommonRenderer/renderers/interactions/ExtendedTextInteraction\n */\n return {\n qtiClass : 'extendedTextInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n getData : getCustomData,\n resetResponse : resetResponse,\n destroy : destroy,\n getState : getState,\n setState : setState,\n\n enable : enable,\n disable : disable,\n clearText : clearText,\n setText : setText\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/gapMatchInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program7(depth0,data) {\n \n var stack1;\n stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-gapMatchInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"gapMatchInteraction\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <ul class=\\\"choice-area none block-listing solid horizontal source\\\" data-eyecatcher=\\\">li\\\">\\n \";\n options={hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data}\n if (helper = helpers.choices) { stack1 = helper.call(depth0, options); }\n else { helper = (depth0 && depth0.choices); stack1 = typeof helper === functionType ? helper.call(depth0, options) : helper; }\n if (!helpers.choices) { stack1 = blockHelperMissing.call(depth0, stack1, {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data}); }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </ul>\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"qti-flow-container\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/GapMatchInteraction',[\n 'lodash',\n 'i18n',\n 'jquery',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/gapMatchInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'interact',\n 'ui/interactUtils'\n], function(_, __, $, tpl, containerHelper, instructionMgr, pciResponse, interact, interactUtils){\n 'use strict';\n\n /**\n * Global variable to count number of choice usages:\n * @type {object}\n */\n var _choiceUsages = {};\n\n var setChoice = function(interaction, $choice, $target){\n\n var choiceSerial = $choice.data('serial'),\n choice = interaction.getChoice(choiceSerial);\n\n if(!_choiceUsages[choiceSerial]){\n _choiceUsages[choiceSerial] = 0;\n }\n _choiceUsages[choiceSerial]++;\n\n $target\n .data('serial', choiceSerial)\n .html($choice.html())\n .addClass('filled');\n\n if(!interaction.responseMappingMode &&\n choice.attr('matchMax') &&\n _choiceUsages[choiceSerial] >= choice.attr('matchMax')){\n\n $choice.attr(\"class\", \"deactivated\");\n }\n\n containerHelper.triggerResponseChangeEvent(interaction);\n };\n\n var unsetChoice = function(interaction, $choice){\n\n var serial = $choice.data('serial');\n var $container = containerHelper.get(interaction);\n\n $container.find('.choice-area [data-serial=' + serial + ']').removeClass().addClass('qti-choice');\n\n _choiceUsages[serial]--;\n\n $choice\n .removeClass('filled')\n .removeData('serial')\n .empty();\n\n if(!interaction.swapping){\n //set correct response\n containerHelper.triggerResponseChangeEvent(interaction);\n }\n };\n\n var getChoice = function(interaction, identifier){\n var $container = containerHelper.get(interaction);\n return $('.choice-area [data-identifier=' + identifier + ']', $container);\n };\n\n var getGap = function(interaction, identifier){\n var $container = containerHelper.get(interaction);\n return $('.qti-flow-container [data-identifier=' + identifier + ']', $container);\n };\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10291\n *\n * @param {object} interaction\n */\n var render = function(interaction){\n\n var $container = containerHelper.get(interaction);\n var $choiceArea = $container.find('.choice-area');\n var $flowContainer = $container.find('.qti-flow-container');\n\n var $activeChoice = null;\n var $activeDrop = null;\n\n var isDragAndDropEnabled;\n var dragOptions;\n\n var $bin = $('<span>', {'class' : 'icon-undo remove-choice', 'title' : __('remove')});\n\n var choiceSelector = $choiceArea.selector + \" .qti-choice\";\n var gapSelector = $flowContainer.selector + \" .gapmatch-content\";\n var filledGapSelector = gapSelector + \".filled\";\n var binSelector = $container.selector + \" .remove-choice\";\n\n var _getChoice = function(serial){\n return $choiceArea.find('[data-serial=' + serial + ']');\n };\n\n var _setChoice = function($choice, $target){\n return setChoice(interaction, $choice, $target);\n };\n\n var _resetSelection = function(){\n if($activeChoice){\n $flowContainer.find('.remove-choice').remove();\n $activeChoice.removeClass('deactivated active');\n $container.find('.empty').removeClass('empty');\n $activeChoice = null;\n }\n };\n\n var _unsetChoice = function($choice){\n return unsetChoice(interaction, $choice);\n };\n\n var _isInsertionMode = function(){\n return ($activeChoice && !$activeChoice.hasClass('filled'));\n };\n\n var _isModeEditing = function(){\n return ($activeChoice && $activeChoice.hasClass('filled'));\n };\n\n\n // Drag & drop handlers\n\n if (this.getOption && this.getOption(\"enableDragAndDrop\") && this.getOption(\"enableDragAndDrop\").gapMatch) {\n isDragAndDropEnabled = this.getOption(\"enableDragAndDrop\").gapMatch;\n }\n\n function _iFrameDragFix(draggableSelector, target) {\n interactUtils.iFrameDragFixOn(function () {\n if ($activeDrop) {\n interact(gapSelector).fire({\n type: 'drop',\n target: $activeDrop.eq(0),\n relatedTarget: target\n });\n }\n interact(draggableSelector).fire({\n type: 'dragend',\n target: target\n });\n });\n }\n\n if (isDragAndDropEnabled) {\n dragOptions = {\n inertia: false,\n autoScroll: true,\n restrict: {\n restriction: \".qti-interaction\",\n endOnly: false,\n elementRect: {top: 0, left: 0, bottom: 1, right: 1}\n }\n };\n\n // makes choices draggables\n interact(choiceSelector).draggable(_.assign({}, dragOptions, {\n onstart: function (e) {\n var $target = $(e.target);\n $target.addClass(\"dragged\");\n _handleChoiceSelect($target);\n\n _iFrameDragFix(choiceSelector, e.target);\n },\n onmove: function (e) {\n interactUtils.moveElement(e.target, e.dx, e.dy);\n },\n onend: function (e) {\n var $target = $(e.target);\n $target.removeClass(\"dragged\");\n\n interactUtils.restoreOriginalPosition($target);\n interactUtils.iFrameDragFixOff();\n }\n })).styleCursor(false);\n\n // makes filled gaps draggables\n interact(filledGapSelector).draggable(_.assign({}, dragOptions, {\n onstart: function (e) {\n var $target = $(e.target);\n $target.addClass(\"dragged\");\n _handleFilledGapSelect($target);\n\n _iFrameDragFix(filledGapSelector, e.target);\n },\n onmove: function (e) {\n interactUtils.moveElement(e.target, e.dx, e.dy);\n },\n onend: function (e) {\n var $target = $(e.target);\n $target.removeClass(\"dragged\");\n\n interactUtils.restoreOriginalPosition($target);\n\n if ($activeChoice) {\n _unsetChoice($activeChoice);\n _resetSelection();\n }\n interactUtils.iFrameDragFixOff();\n }\n })).styleCursor(false);\n\n // makes gaps droppables\n interact(gapSelector).dropzone({\n overlap: 0.15,\n ondragenter: function(e) {\n var $target = $(e.target),\n $dragged = $(e.relatedTarget);\n\n $activeDrop = $target;\n $target.addClass('dropzone');\n $dragged.addClass('droppable');\n },\n ondrop: function (e) {\n _handleGapSelect($(e.target));\n\n this.ondragleave(e);\n },\n ondragleave: function(e) {\n var $target = $(e.target),\n $dragged = $(e.relatedTarget);\n\n $target.removeClass('dropzone');\n $dragged.removeClass('droppable');\n\n $activeDrop = null;\n }\n });\n }\n\n\n // Point & click handlers\n\n interact($container.selector).on('tap', function(e) {\n e.stopPropagation();\n _resetSelection();\n });\n\n interact(choiceSelector).on('tap', function (e) {\n e.stopPropagation();\n _handleChoiceSelect($(e.currentTarget));\n e.preventDefault();\n });\n\n interact(gapSelector).on('tap', function(e) {\n e.stopPropagation();\n _handleGapSelect($(e.currentTarget));\n e.preventDefault();\n });\n\n interact(binSelector).on('tap', function (e) {\n e.stopPropagation();\n _unsetChoice($activeChoice);\n _resetSelection();\n e.preventDefault();\n });\n\n\n // Common handlers\n\n function _handleChoiceSelect($target) {\n if (($activeChoice && $target.hasClass('active')) || $target.hasClass('deactivated')) {\n return;\n }\n _resetSelection();\n\n $activeChoice = $target.addClass('active');\n $(gapSelector).addClass('empty');\n }\n\n function _handleFilledGapSelect($target) {\n $activeChoice = $target;\n $(gapSelector).addClass('active');\n }\n\n function _handleGapSelect($target) {\n var choiceSerial, targetSerial;\n\n if(_isInsertionMode()){\n choiceSerial = $activeChoice.data('serial');\n targetSerial = $target.data('serial');\n\n if(targetSerial !== choiceSerial){\n\n //set choices:\n if(targetSerial){\n _unsetChoice($target);\n }\n\n _setChoice($activeChoice, $target);\n }\n\n $activeChoice.removeClass('active');\n $container.find('.empty').removeClass('empty');\n $activeChoice = null;\n\n }else if(_isModeEditing()){\n choiceSerial = $activeChoice.data('serial');\n targetSerial = $target.data('serial');\n\n if(targetSerial !== choiceSerial){\n _unsetChoice($activeChoice);\n if(targetSerial){\n //swapping:\n _unsetChoice($target);\n _setChoice(_getChoice(targetSerial), $activeChoice);\n }\n _setChoice(_getChoice(choiceSerial), $target);\n }\n\n _resetSelection();\n\n }else if($target.data('serial') && $target.hasClass('filled')){\n targetSerial = $target.data('serial');\n\n $activeChoice = $target;\n $activeChoice.addClass('active');\n\n $flowContainer.find('>li>div').filter(function(){\n return $target.data('serial') !== targetSerial;\n }).addClass('empty');\n\n $choiceArea.find('>li:not(.deactivated)').filter(function(){\n return $target.data('serial') !== targetSerial;\n }).addClass('empty');\n\n //append trash bin:\n $target.append($bin);\n }\n }\n };\n\n var resetResponse = function(interaction){\n var $container = containerHelper.get(interaction);\n\n $('.gapmatch-content.active', $container).removeClass('active');\n $('.gapmatch-content', $container).each(function(){\n unsetChoice(interaction, $(this));\n });\n };\n\n var _setPairs = function(interaction, pairs){\n\n _.each(pairs, function(pair){\n if(pair){\n setChoice(interaction, getChoice(interaction, pair[0]), getGap(interaction, pair[1]).find('.gapmatch-content'));\n }\n });\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10291\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n resetResponse(interaction);\n _setPairs(interaction, pciResponse.unserialize(response, interaction));\n };\n\n var _getRawResponse = function(interaction){\n\n var response = [];\n var $container = containerHelper.get(interaction);\n $('.gapmatch-content', $container).each(function(){\n var choiceSerial = $(this).data('serial'),\n pair = [];\n\n if(choiceSerial){\n pair.push(interaction.getChoice(choiceSerial).attr('identifier'));\n }\n pair.push($(this).data('identifier'));\n\n if(pair.length === 2){\n response.push(pair);\n }\n });\n return response;\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10307\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n\n return pciResponse.serialize(_getRawResponse(interaction), interaction);\n };\n\n var destroy = function(interaction){\n\n var $container = containerHelper.get(interaction);\n\n //remove event\n interact($container.selector).unset();\n interact($container.find('.choice-area').selector + \" .qti-choice\").unset();\n interact($container.find('.qti-flow-container').selector + \" .gapmatch-content\").unset();\n interact($container.find('.remove-choice').selector).unset();\n\n //restore selection\n $container.find('.gapmatch-content').empty();\n $container.find('.active').removeClass('active');\n $container.find('.remove-choice').remove();\n $container.find('.empty').removeClass('empty');\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n var $container;\n\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n\n //restore order of previously shuffled choices\n if(_.isArray(state.order) && state.order.length === _.size(interaction.getChoices())){\n\n $container = containerHelper.get(interaction);\n\n $('.choice-area .qti-choice', $container)\n .sort(function(a, b){\n var aIndex = _.indexOf(state.order, $(a).data('identifier'));\n var bIndex = _.indexOf(state.order, $(b).data('identifier'));\n if(aIndex > bIndex) {\n return 1;\n }\n if(aIndex < bIndex) {\n return -1;\n }\n return 0;\n })\n .detach()\n .appendTo($('.choice-area', $container));\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n\n //we store also the choice order if shuffled\n if(interaction.attr('shuffle') === true){\n $container = containerHelper.get(interaction);\n\n state.order = [];\n $('.choice-area .qti-choice', $container).each(function(){\n state.order.push($(this).data('identifier'));\n });\n }\n return state;\n };\n\n /**\n * Expose the common renderer for the gapmatch interaction\n * @exports qtiCommonRenderer/renderers/interactions/GapMatchInteraction\n */\n return {\n qtiClass : 'gapMatchInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/graphicAssociateInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-graphicInteraction qti-graphicAssociateInteraction clearfix\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"image-editor solid\\\">\\n <div id='graphic-paper-\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"' class=\\\"main-image-box\\\"></div>\\n </div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","// ┌────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.2 - JavaScript Vector Library │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n// \n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n// \n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ┌────────────────────────────────────────────────────────────┐ \\\\\n// │ Eve 0.4.2 - JavaScript Events Library │ \\\\\n// ├────────────────────────────────────────────────────────────┤ \\\\\n// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\\\\n// └────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob) {\n var version = \"0.4.2\",\n has = \"hasOwnProperty\",\n separator = /[\\.\\/]/,\n wildcard = \"*\",\n fun = function () {},\n numsort = function (a, b) {\n return a - b;\n },\n current_event,\n stop,\n events = {n: {}},\n /*\\\n * eve\n [ method ]\n\n * Fires event with given `name`, given scope and other parameters.\n\n > Arguments\n\n - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\n - scope (object) context for the event handlers\n - varargs (...) the rest of arguments will be sent to event handlers\n\n = (object) array of returned values from the listeners\n \\*/\n eve = function (name, scope) {\n\t\t\tname = String(name);\n var e = events,\n oldstop = stop,\n args = Array.prototype.slice.call(arguments, 2),\n listeners = eve.listeners(name),\n z = 0,\n f = false,\n l,\n indexed = [],\n queue = {},\n out = [],\n ce = current_event,\n errors = [];\n current_event = name;\n stop = 0;\n for (var i = 0, ii = listeners.length; i < ii; i++) if (\"zIndex\" in listeners[i]) {\n indexed.push(listeners[i].zIndex);\n if (listeners[i].zIndex < 0) {\n queue[listeners[i].zIndex] = listeners[i];\n }\n }\n indexed.sort(numsort);\n while (indexed[z] < 0) {\n l = queue[indexed[z++]];\n out.push(l.apply(scope, args));\n if (stop) {\n stop = oldstop;\n return out;\n }\n }\n for (i = 0; i < ii; i++) {\n l = listeners[i];\n if (\"zIndex\" in l) {\n if (l.zIndex == indexed[z]) {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n do {\n z++;\n l = queue[indexed[z]];\n l && out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n } while (l)\n } else {\n queue[l.zIndex] = l;\n }\n } else {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n }\n }\n stop = oldstop;\n current_event = ce;\n return out.length ? out : null;\n };\n\t\t// Undocumented. Debug only.\n\t\teve._events = events;\n /*\\\n * eve.listeners\n [ method ]\n\n * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\n\n > Arguments\n\n - name (string) name of the event, dot (`.`) or slash (`/`) separated\n\n = (array) array of event handlers\n \\*/\n eve.listeners = function (name) {\n var names = name.split(separator),\n e = events,\n item,\n items,\n k,\n i,\n ii,\n j,\n jj,\n nes,\n es = [e],\n out = [];\n for (i = 0, ii = names.length; i < ii; i++) {\n nes = [];\n for (j = 0, jj = es.length; j < jj; j++) {\n e = es[j].n;\n items = [e[names[i]], e[wildcard]];\n k = 2;\n while (k--) {\n item = items[k];\n if (item) {\n nes.push(item);\n out = out.concat(item.f || []);\n }\n }\n }\n es = nes;\n }\n return out;\n };\n \n /*\\\n * eve.on\n [ method ]\n **\n * Binds given event handler with a given name. You can use wildcards “`*`” for the names:\n | eve.on(\"*.under.*\", f);\n | eve(\"mouse.under.floor\"); // triggers f\n * Use @eve to trigger the listener.\n **\n > Arguments\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment. \n > Example:\n | eve.on(\"mouse\", eatIt)(2);\n | eve.on(\"mouse\", scream);\n | eve.on(\"mouse\", catchIt)(1);\n * This will ensure that `catchIt()` function will be called before `eatIt()`.\n\t *\n * If you want to put your handler before non-indexed handlers, specify a negative value.\n * Note: I assume most of the time you dont need to worry about z-index, but its nice to have this feature “just in case”.\n \\*/\n eve.on = function (name, f) {\n\t\tname = String(name);\n\t\tif (typeof f != \"function\") {\n\t\t\treturn function () {};\n\t\t}\n var names = name.split(separator),\n e = events;\n for (var i = 0, ii = names.length; i < ii; i++) {\n e = e.n;\n e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});\n }\n e.f = e.f || [];\n for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {\n return fun;\n }\n e.f.push(f);\n return function (zIndex) {\n if (+zIndex == +zIndex) {\n f.zIndex = +zIndex;\n }\n };\n };\n /*\\\n * eve.f\n [ method ]\n **\n * Returns function that will fire given event with optional arguments.\n\t * Arguments that will be passed to the result function will be also\n\t * concated to the list of final arguments.\n \t | el.onclick = eve.f(\"click\", 1, 2);\n \t | eve.on(\"click\", function (a, b, c) {\n \t | console.log(a, b, c); // 1, 2, [event object]\n \t | });\n > Arguments\n\t - event (string) event name\n\t - varargs (…) and any other arguments\n\t = (function) possible event handler function\n \\*/\n\teve.f = function (event) {\n\t\tvar attrs = [].slice.call(arguments, 1);\n\t\treturn function () {\n\t\t\teve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));\n\t\t};\n\t};\n /*\\\n * eve.stop\n [ method ]\n **\n * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\n \\*/\n eve.stop = function () {\n stop = 1;\n };\n /*\\\n * eve.nt\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n > Arguments\n **\n - subname (string) #optional subname of the event\n **\n = (string) name of the event, if `subname` is not specified\n * or\n = (boolean) `true`, if current events name contains `subname`\n \\*/\n eve.nt = function (subname) {\n if (subname) {\n return new RegExp(\"(?:\\\\.|\\\\/|^)\" + subname + \"(?:\\\\.|\\\\/|$)\").test(current_event);\n }\n return current_event;\n };\n /*\\\n * eve.nts\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n **\n = (array) names of the event\n \\*/\n eve.nts = function () {\n return current_event.split(separator);\n };\n /*\\\n * eve.off\n [ method ]\n **\n * Removes given function from the list of event listeners assigned to given name.\n\t * If no arguments specified all the events will be cleared.\n **\n > Arguments\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n \\*/\n /*\\\n * eve.unbind\n [ method ]\n **\n * See @eve.off\n \\*/\n eve.off = eve.unbind = function (name, f) {\n\t\tif (!name) {\n\t\t eve._events = events = {n: {}};\n\t\t\treturn;\n\t\t}\n var names = name.split(separator),\n e,\n key,\n splice,\n i, ii, j, jj,\n cur = [events];\n for (i = 0, ii = names.length; i < ii; i++) {\n for (j = 0; j < cur.length; j += splice.length - 2) {\n splice = [j, 1];\n e = cur[j].n;\n if (names[i] != wildcard) {\n if (e[names[i]]) {\n splice.push(e[names[i]]);\n }\n } else {\n for (key in e) if (e[has](key)) {\n splice.push(e[key]);\n }\n }\n cur.splice.apply(cur, splice);\n }\n }\n for (i = 0, ii = cur.length; i < ii; i++) {\n e = cur[i];\n while (e.n) {\n if (f) {\n if (e.f) {\n for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {\n e.f.splice(j, 1);\n break;\n }\n !e.f.length && delete e.f;\n }\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n var funcs = e.n[key].f;\n for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {\n funcs.splice(j, 1);\n break;\n }\n !funcs.length && delete e.n[key].f;\n }\n } else {\n delete e.f;\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n delete e.n[key].f;\n }\n }\n e = e.n;\n }\n }\n };\n /*\\\n * eve.once\n [ method ]\n **\n * Binds given event handler with a given name to only run once then unbind itself.\n | eve.once(\"login\", f);\n | eve(\"login\"); // triggers f\n | eve(\"login\"); // no listeners\n * Use @eve to trigger the listener.\n **\n > Arguments\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n = (function) same return function as @eve.on\n \\*/\n eve.once = function (name, f) {\n var f2 = function () {\n eve.unbind(name, f2);\n return f.apply(this, arguments);\n };\n return eve.on(name, f2);\n };\n /*\\\n * eve.version\n [ property (string) ]\n **\n * Current version of the library.\n \\*/\n eve.version = version;\n eve.toString = function () {\n return \"You are running Eve \" + version;\n };\n (typeof module != \"undefined\" && module.exports) ? (module.exports = eve) : (typeof define != \"undefined\" ? (define(\"eve\", [], function() { return eve; })) : (glob.eve = eve));\n})(window || this);\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\n// │ \"Raphaël 2.1.2\" - JavaScript Vector Library │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob, factory) {\n // AMD support\n if (typeof define === \"function\" && define.amd) {\n // Define as an anonymous module\n define('raphael',[\"eve\"], function( eve ) {\n return factory(glob, eve);\n });\n } else {\n // Browser globals (glob is window)\n // Raphael adds itself to window\n factory(glob, glob.eve || (typeof require == \"function\" && require('eve')) );\n }\n}(this, function (window, eve) {\n /*\\\n * Raphael\n [ method ]\n **\n * Creates a canvas object on which to draw.\n * You must do this first, as all future calls to drawing methods\n * from this instance will be bound to this canvas.\n > Parameters\n **\n - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface\n - width (number)\n - height (number)\n - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n * or\n - x (number)\n - y (number)\n - width (number)\n - height (number)\n - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n * or\n - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, <attributes>}). See @Paper.add.\n - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n * or\n - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eves “DOMLoad” event. In this case method returns `undefined`.\n = (object) @Paper\n > Usage\n | // Each of the following examples create a canvas\n | // that is 320px wide by 200px high.\n | // Canvas is created at the viewports 10,50 coordinate.\n | var paper = Raphael(10, 50, 320, 200);\n | // Canvas is created at the top left corner of the #notepad element\n | // (or its top right corner in dir=\"rtl\" elements)\n | var paper = Raphael(document.getElementById(\"notepad\"), 320, 200);\n | // Same as above\n | var paper = Raphael(\"notepad\", 320, 200);\n | // Image dump\n | var set = Raphael([\"notepad\", 320, 200, {\n | type: \"rect\",\n | x: 10,\n | y: 10,\n | width: 25,\n | height: 25,\n | stroke: \"#f00\"\n | }, {\n | type: \"text\",\n | x: 30,\n | y: 40,\n | text: \"Dump\"\n | }]);\n \\*/\n function R(first) {\n if (R.is(first, \"function\")) {\n return loaded ? first() : eve.on(\"raphael.DOMload\", first);\n } else if (R.is(first, array)) {\n return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first);\n } else {\n var args = Array.prototype.slice.call(arguments, 0);\n if (R.is(args[args.length - 1], \"function\")) {\n var f = args.pop();\n return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on(\"raphael.DOMload\", function () {\n f.call(R._engine.create[apply](R, args));\n });\n } else {\n return R._engine.create[apply](R, arguments);\n }\n }\n }\n R.version = \"2.1.2\";\n R.eve = eve;\n var loaded,\n separator = /[, ]+/,\n elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1},\n formatrg = /\\{(\\d+)\\}/g,\n proto = \"prototype\",\n has = \"hasOwnProperty\",\n g = {\n doc: document,\n win: window\n },\n oldRaphael = {\n was: Object.prototype[has].call(g.win, \"Raphael\"),\n is: g.win.Raphael\n },\n Paper = function () {\n /*\\\n * Paper.ca\n [ property (object) ]\n **\n * Shortcut for @Paper.customAttributes\n \\*/\n /*\\\n * Paper.customAttributes\n [ property (object) ]\n **\n * If you have a set of attributes that you would like to represent\n * as a function of some number you can do it easily with custom attributes:\n > Usage\n | paper.customAttributes.hue = function (num) {\n | num = num % 1;\n | return {fill: \"hsb(\" + num + \", 0.75, 1)\"};\n | };\n | // Custom attribute “hue” will change fill\n | // to be given hue with fixed saturation and brightness.\n | // Now you can use it like this:\n | var c = paper.circle(10, 10, 10).attr({hue: .45});\n | // or even like this:\n | c.animate({hue: 1}, 1e3);\n | \n | // You could also create custom attribute\n | // with multiple parameters:\n | paper.customAttributes.hsb = function (h, s, b) {\n | return {fill: \"hsb(\" + [h, s, b].join(\",\") + \")\"};\n | };\n | c.attr({hsb: \"0.5 .8 1\"});\n | c.animate({hsb: [1, 0, 0.5]}, 1e3);\n \\*/\n this.ca = this.customAttributes = {};\n },\n paperproto,\n appendChild = \"appendChild\",\n apply = \"apply\",\n concat = \"concat\",\n supportsTouch = ('ontouchstart' in g.win) || g.win.DocumentTouch && g.doc instanceof DocumentTouch, //taken from Modernizr touch test\n E = \"\",\n S = \" \",\n Str = String,\n split = \"split\",\n events = \"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\"[split](S),\n touchMap = {\n mousedown: \"touchstart\",\n mousemove: \"touchmove\",\n mouseup: \"touchend\"\n },\n lowerCase = Str.prototype.toLowerCase,\n math = Math,\n mmax = math.max,\n mmin = math.min,\n abs = math.abs,\n pow = math.pow,\n PI = math.PI,\n nu = \"number\",\n string = \"string\",\n array = \"array\",\n toString = \"toString\",\n fillString = \"fill\",\n objectToString = Object.prototype.toString,\n paper = {},\n push = \"push\",\n ISURL = R._ISURL = /^url\\(['\"]?([^\\)]+?)['\"]?\\)$/i,\n colourRegExp = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\))\\s*$/i,\n isnan = {\"NaN\": 1, \"Infinity\": 1, \"-Infinity\": 1},\n bezierrg = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,\n round = math.round,\n setAttribute = \"setAttribute\",\n toFloat = parseFloat,\n toInt = parseInt,\n upperCase = Str.prototype.toUpperCase,\n availableAttrs = R._availableAttrs = {\n \"arrow-end\": \"none\",\n \"arrow-start\": \"none\",\n blur: 0,\n \"clip-rect\": \"0 0 1e9 1e9\",\n cursor: \"default\",\n cx: 0,\n cy: 0,\n fill: \"#fff\",\n \"fill-opacity\": 1,\n font: '10px \"Arial\"',\n \"font-family\": '\"Arial\"',\n \"font-size\": \"10\",\n \"font-style\": \"normal\",\n \"font-weight\": 400,\n gradient: 0,\n height: 0,\n href: \"http://raphaeljs.com/\",\n \"letter-spacing\": 0,\n opacity: 1,\n path: \"M0,0\",\n r: 0,\n rx: 0,\n ry: 0,\n src: \"\",\n stroke: \"#000\",\n \"stroke-dasharray\": \"\",\n \"stroke-linecap\": \"butt\",\n \"stroke-linejoin\": \"butt\",\n \"stroke-miterlimit\": 0,\n \"stroke-opacity\": 1,\n \"stroke-width\": 1,\n target: \"_blank\",\n \"text-anchor\": \"middle\",\n title: \"Raphael\",\n transform: \"\",\n width: 0,\n x: 0,\n y: 0\n },\n availableAnimAttrs = R._availableAnimAttrs = {\n blur: nu,\n \"clip-rect\": \"csv\",\n cx: nu,\n cy: nu,\n fill: \"colour\",\n \"fill-opacity\": nu,\n \"font-size\": nu,\n height: nu,\n opacity: nu,\n path: \"path\",\n r: nu,\n rx: nu,\n ry: nu,\n stroke: \"colour\",\n \"stroke-opacity\": nu,\n \"stroke-width\": nu,\n transform: \"transform\",\n width: nu,\n x: nu,\n y: nu\n },\n whitespace = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]/g,\n commaSpaces = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/,\n hsrg = {hs: 1, rg: 1},\n p2s = /,?([achlmqrstvxz]),?/gi,\n pathCommand = /([achlmrqstvz])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/ig,\n tCommand = /([rstm])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/ig,\n pathValues = /(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/ig,\n radial_gradient = R._radial_gradient = /^r(?:\\(([^,]+?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*([^\\)]+?)\\))?/,\n eldata = {},\n sortByKey = function (a, b) {\n return a.key - b.key;\n },\n sortByNumber = function (a, b) {\n return toFloat(a) - toFloat(b);\n },\n fun = function () {},\n pipe = function (x) {\n return x;\n },\n rectPath = R._rectPath = function (x, y, w, h, r) {\n if (r) {\n return [[\"M\", x + r, y], [\"l\", w - r * 2, 0], [\"a\", r, r, 0, 0, 1, r, r], [\"l\", 0, h - r * 2], [\"a\", r, r, 0, 0, 1, -r, r], [\"l\", r * 2 - w, 0], [\"a\", r, r, 0, 0, 1, -r, -r], [\"l\", 0, r * 2 - h], [\"a\", r, r, 0, 0, 1, r, -r], [\"z\"]];\n }\n return [[\"M\", x, y], [\"l\", w, 0], [\"l\", 0, h], [\"l\", -w, 0], [\"z\"]];\n },\n ellipsePath = function (x, y, rx, ry) {\n if (ry == null) {\n ry = rx;\n }\n return [[\"M\", x, y], [\"m\", 0, -ry], [\"a\", rx, ry, 0, 1, 1, 0, 2 * ry], [\"a\", rx, ry, 0, 1, 1, 0, -2 * ry], [\"z\"]];\n },\n getPath = R._getPath = {\n path: function (el) {\n return el.attr(\"path\");\n },\n circle: function (el) {\n var a = el.attrs;\n return ellipsePath(a.cx, a.cy, a.r);\n },\n ellipse: function (el) {\n var a = el.attrs;\n return ellipsePath(a.cx, a.cy, a.rx, a.ry);\n },\n rect: function (el) {\n var a = el.attrs;\n return rectPath(a.x, a.y, a.width, a.height, a.r);\n },\n image: function (el) {\n var a = el.attrs;\n return rectPath(a.x, a.y, a.width, a.height);\n },\n text: function (el) {\n var bbox = el._getBBox();\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n },\n set : function(el) {\n var bbox = el._getBBox();\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n }\n },\n /*\\\n * Raphael.mapPath\n [ method ]\n **\n * Transform the path string with given matrix.\n > Parameters\n - path (string) path string\n - matrix (object) see @Matrix\n = (string) transformed path string\n \\*/\n mapPath = R.mapPath = function (path, matrix) {\n if (!matrix) {\n return path;\n }\n var x, y, i, j, ii, jj, pathi;\n path = path2curve(path);\n for (i = 0, ii = path.length; i < ii; i++) {\n pathi = path[i];\n for (j = 1, jj = pathi.length; j < jj; j += 2) {\n x = matrix.x(pathi[j], pathi[j + 1]);\n y = matrix.y(pathi[j], pathi[j + 1]);\n pathi[j] = x;\n pathi[j + 1] = y;\n }\n }\n return path;\n };\n\n R._g = g;\n /*\\\n * Raphael.type\n [ property (string) ]\n **\n * Can be “SVG”, “VML” or empty, depending on browser support.\n \\*/\n R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\", \"1.1\") ? \"SVG\" : \"VML\");\n if (R.type == \"VML\") {\n var d = g.doc.createElement(\"div\"),\n b;\n d.innerHTML = '<v:shape adj=\"1\"/>';\n b = d.firstChild;\n b.style.behavior = \"url(#default#VML)\";\n if (!(b && typeof b.adj == \"object\")) {\n return (R.type = E);\n }\n d = null;\n }\n /*\\\n * Raphael.svg\n [ property (boolean) ]\n **\n * `true` if browser supports SVG.\n \\*/\n /*\\\n * Raphael.vml\n [ property (boolean) ]\n **\n * `true` if browser supports VML.\n \\*/\n R.svg = !(R.vml = R.type == \"VML\");\n R._Paper = Paper;\n /*\\\n * Raphael.fn\n [ property (object) ]\n **\n * You can add your own method to the canvas. For example if you want to draw a pie chart,\n * you can create your own pie chart function and ship it as a Raphaël plugin. To do this\n * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a\n * Raphaël instance is created, otherwise it will take no effect. Please note that the\n * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to\n * ensure any namespacing ensures proper context.\n > Usage\n | Raphael.fn.arrow = function (x1, y1, x2, y2, size) {\n | return this.path( ... );\n | };\n | // or create namespace\n | Raphael.fn.mystuff = {\n | arrow: function () {…},\n | star: function () {…},\n | // etc…\n | };\n | var paper = Raphael(10, 10, 630, 480);\n | // then use it\n | paper.arrow(10, 10, 30, 30, 5).attr({fill: \"#f00\"});\n | paper.mystuff.arrow();\n | paper.mystuff.star();\n \\*/\n R.fn = paperproto = Paper.prototype = R.prototype;\n R._id = 0;\n R._oid = 0;\n /*\\\n * Raphael.is\n [ method ]\n **\n * Handfull replacement for `typeof` operator.\n > Parameters\n - o (…) any object or primitive\n - type (string) name of the type, i.e. “string”, “function”, “number”, etc.\n = (boolean) is given value is of given type\n \\*/\n R.is = function (o, type) {\n type = lowerCase.call(type);\n if (type == \"finite\") {\n return !isnan[has](+o);\n }\n if (type == \"array\") {\n return o instanceof Array;\n }\n return (type == \"null\" && o === null) ||\n (type == typeof o && o !== null) ||\n (type == \"object\" && o === Object(o)) ||\n (type == \"array\" && Array.isArray && Array.isArray(o)) ||\n objectToString.call(o).slice(8, -1).toLowerCase() == type;\n };\n\n function clone(obj) {\n if (typeof obj == \"function\" || Object(obj) !== obj) {\n return obj;\n }\n var res = new obj.constructor;\n for (var key in obj) if (obj[has](key)) {\n res[key] = clone(obj[key]);\n }\n return res;\n }\n\n /*\\\n * Raphael.angle\n [ method ]\n **\n * Returns angle between two or three points\n > Parameters\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n - x3 (number) #optional x coord of third point\n - y3 (number) #optional y coord of third point\n = (number) angle in degrees.\n \\*/\n R.angle = function (x1, y1, x2, y2, x3, y3) {\n if (x3 == null) {\n var x = x1 - x2,\n y = y1 - y2;\n if (!x && !y) {\n return 0;\n }\n return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\n } else {\n return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3);\n }\n };\n /*\\\n * Raphael.rad\n [ method ]\n **\n * Transform angle to radians\n > Parameters\n - deg (number) angle in degrees\n = (number) angle in radians.\n \\*/\n R.rad = function (deg) {\n return deg % 360 * PI / 180;\n };\n /*\\\n * Raphael.deg\n [ method ]\n **\n * Transform angle to degrees\n > Parameters\n - deg (number) angle in radians\n = (number) angle in degrees.\n \\*/\n R.deg = function (rad) {\n return rad * 180 / PI % 360;\n };\n /*\\\n * Raphael.snapTo\n [ method ]\n **\n * Snaps given value to given grid.\n > Parameters\n - values (array|number) given array of values or step of the grid\n - value (number) value to adjust\n - tolerance (number) #optional tolerance for snapping. Default is `10`.\n = (number) adjusted value.\n \\*/\n R.snapTo = function (values, value, tolerance) {\n tolerance = R.is(tolerance, \"finite\") ? tolerance : 10;\n if (R.is(values, array)) {\n var i = values.length;\n while (i--) if (abs(values[i] - value) <= tolerance) {\n return values[i];\n }\n } else {\n values = +values;\n var rem = value % values;\n if (rem < tolerance) {\n return value - rem;\n }\n if (rem > values - tolerance) {\n return value - rem + values;\n }\n }\n return value;\n };\n\n /*\\\n * Raphael.createUUID\n [ method ]\n **\n * Returns RFC4122, version 4 ID\n \\*/\n var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) {\n return function () {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(uuidRegEx, uuidReplacer).toUpperCase();\n };\n })(/[xy]/g, function (c) {\n var r = math.random() * 16 | 0,\n v = c == \"x\" ? r : (r & 3 | 8);\n return v.toString(16);\n });\n\n /*\\\n * Raphael.setWindow\n [ method ]\n **\n * Used when you need to draw in `&lt;iframe>`. Switched window to the iframe one.\n > Parameters\n - newwin (window) new window object\n \\*/\n R.setWindow = function (newwin) {\n eve(\"raphael.setWindow\", R, g.win, newwin);\n g.win = newwin;\n g.doc = g.win.document;\n if (R._engine.initWin) {\n R._engine.initWin(g.win);\n }\n };\n var toHex = function (color) {\n if (R.vml) {\n // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/\n var trim = /^\\s+|\\s+$/g;\n var bod;\n try {\n var docum = new ActiveXObject(\"htmlfile\");\n docum.write(\"<body>\");\n docum.close();\n bod = docum.body;\n } catch(e) {\n bod = createPopup().document.body;\n }\n var range = bod.createTextRange();\n toHex = cacher(function (color) {\n try {\n bod.style.color = Str(color).replace(trim, E);\n var value = range.queryCommandValue(\"ForeColor\");\n value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16);\n return \"#\" + (\"000000\" + value.toString(16)).slice(-6);\n } catch(e) {\n return \"none\";\n }\n });\n } else {\n var i = g.doc.createElement(\"i\");\n i.title = \"Rapha\\xebl Colour Picker\";\n i.style.display = \"none\";\n g.doc.body.appendChild(i);\n toHex = cacher(function (color) {\n var computedStyle;\n i.style.color = color;\n computedStyle = g.doc.defaultView.getComputedStyle(i, E);\n return computedStyle ? computedStyle.getPropertyValue(\"color\") : color;\n });\n }\n return toHex(color);\n },\n hsbtoString = function () {\n return \"hsb(\" + [this.h, this.s, this.b] + \")\";\n },\n hsltoString = function () {\n return \"hsl(\" + [this.h, this.s, this.l] + \")\";\n },\n rgbtoString = function () {\n return this.hex;\n },\n prepareRGB = function (r, g, b) {\n if (g == null && R.is(r, \"object\") && \"r\" in r && \"g\" in r && \"b\" in r) {\n b = r.b;\n g = r.g;\n r = r.r;\n }\n if (g == null && R.is(r, string)) {\n var clr = R.getRGB(r);\n r = clr.r;\n g = clr.g;\n b = clr.b;\n }\n if (r > 1 || g > 1 || b > 1) {\n r /= 255;\n g /= 255;\n b /= 255;\n }\n\n return [r, g, b];\n },\n packageRGB = function (r, g, b, o) {\n r *= 255;\n g *= 255;\n b *= 255;\n var rgb = {\n r: r,\n g: g,\n b: b,\n hex: R.rgb(r, g, b),\n toString: rgbtoString\n };\n R.is(o, \"finite\") && (rgb.opacity = o);\n return rgb;\n };\n\n /*\\\n * Raphael.color\n [ method ]\n **\n * Parses the color string and returns object with all values for the given color.\n > Parameters\n - clr (string) color string in one of the supported formats (see @Raphael.getRGB)\n = (object) Combined RGB & HSB object in format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) `true` if string cant be parsed,\n o h (number) hue,\n o s (number) saturation,\n o v (number) value (brightness),\n o l (number) lightness\n o }\n \\*/\n R.color = function (clr) {\n var rgb;\n if (R.is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"b\" in clr) {\n rgb = R.hsb2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.hex = rgb.hex;\n } else if (R.is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"l\" in clr) {\n rgb = R.hsl2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.hex = rgb.hex;\n } else {\n if (R.is(clr, \"string\")) {\n clr = R.getRGB(clr);\n }\n if (R.is(clr, \"object\") && \"r\" in clr && \"g\" in clr && \"b\" in clr) {\n rgb = R.rgb2hsl(clr);\n clr.h = rgb.h;\n clr.s = rgb.s;\n clr.l = rgb.l;\n rgb = R.rgb2hsb(clr);\n clr.v = rgb.b;\n } else {\n clr = {hex: \"none\"};\n clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\n }\n }\n clr.toString = rgbtoString;\n return clr;\n };\n /*\\\n * Raphael.hsb2rgb\n [ method ]\n **\n * Converts HSB values to RGB object.\n > Parameters\n - h (number) hue\n - s (number) saturation\n - v (number) value or brightness\n = (object) RGB object in format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n \\*/\n R.hsb2rgb = function (h, s, v, o) {\n if (this.is(h, \"object\") && \"h\" in h && \"s\" in h && \"b\" in h) {\n v = h.b;\n s = h.s;\n h = h.h;\n o = h.o;\n }\n h *= 360;\n var R, G, B, X, C;\n h = (h % 360) / 60;\n C = v * s;\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = v - C;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n };\n /*\\\n * Raphael.hsl2rgb\n [ method ]\n **\n * Converts HSL values to RGB object.\n > Parameters\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (object) RGB object in format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n \\*/\n R.hsl2rgb = function (h, s, l, o) {\n if (this.is(h, \"object\") && \"h\" in h && \"s\" in h && \"l\" in h) {\n l = h.l;\n s = h.s;\n h = h.h;\n }\n if (h > 1 || s > 1 || l > 1) {\n h /= 360;\n s /= 100;\n l /= 100;\n }\n h *= 360;\n var R, G, B, X, C;\n h = (h % 360) / 60;\n C = 2 * s * (l < .5 ? l : 1 - l);\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = l - C / 2;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n };\n /*\\\n * Raphael.rgb2hsb\n [ method ]\n **\n * Converts RGB values to HSB object.\n > Parameters\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSB object in format:\n o {\n o h (number) hue\n o s (number) saturation\n o b (number) brightness\n o }\n \\*/\n R.rgb2hsb = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, V, C;\n V = mmax(r, g, b);\n C = V - mmin(r, g, b);\n H = (C == 0 ? null :\n V == r ? (g - b) / C :\n V == g ? (b - r) / C + 2 :\n (r - g) / C + 4\n );\n H = ((H + 360) % 6) * 60 / 360;\n S = C == 0 ? 0 : C / V;\n return {h: H, s: S, b: V, toString: hsbtoString};\n };\n /*\\\n * Raphael.rgb2hsl\n [ method ]\n **\n * Converts RGB values to HSL object.\n > Parameters\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSL object in format:\n o {\n o h (number) hue\n o s (number) saturation\n o l (number) luminosity\n o }\n \\*/\n R.rgb2hsl = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, L, M, m, C;\n M = mmax(r, g, b);\n m = mmin(r, g, b);\n C = M - m;\n H = (C == 0 ? null :\n M == r ? (g - b) / C :\n M == g ? (b - r) / C + 2 :\n (r - g) / C + 4);\n H = ((H + 360) % 6) * 60 / 360;\n L = (M + m) / 2;\n S = (C == 0 ? 0 :\n L < .5 ? C / (2 * L) :\n C / (2 - 2 * L));\n return {h: H, s: S, l: L, toString: hsltoString};\n };\n R._path2string = function () {\n return this.join(\",\").replace(p2s, \"$1\");\n };\n function repush(array, item) {\n for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n return array.push(array.splice(i, 1)[0]);\n }\n }\n function cacher(f, scope, postprocessor) {\n function newf() {\n var arg = Array.prototype.slice.call(arguments, 0),\n args = arg.join(\"\\u2400\"),\n cache = newf.cache = newf.cache || {},\n count = newf.count = newf.count || [];\n if (cache[has](args)) {\n repush(count, args);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n count.length >= 1e3 && delete cache[count.shift()];\n count.push(args);\n cache[args] = f[apply](scope, arg);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n return newf;\n }\n\n var preload = R._preload = function (src, f) {\n var img = g.doc.createElement(\"img\");\n img.style.cssText = \"position:absolute;left:-9999em;top:-9999em\";\n img.onload = function () {\n f.call(this);\n this.onload = null;\n g.doc.body.removeChild(this);\n };\n img.onerror = function () {\n g.doc.body.removeChild(this);\n };\n g.doc.body.appendChild(img);\n img.src = src;\n };\n\n function clrToString() {\n return this.hex;\n }\n\n /*\\\n * Raphael.getRGB\n [ method ]\n **\n * Parses colour string as RGB object\n > Parameters\n - colour (string) colour string in one of formats:\n # <ul>\n # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n # <li>rgb(•••, •••, •••) — red, green and blue channels values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n # <li>hsl(•••, •••, •••) — same as hsb</li>\n # <li>hsl(•••%, •••%, •••%) — same as hsb</li>\n # </ul>\n = (object) RGB object in format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) true if string cant be parsed\n o }\n \\*/\n R.getRGB = cacher(function (colour) {\n if (!colour || !!((colour = Str(colour)).indexOf(\"-\") + 1)) {\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: clrToString};\n }\n if (colour == \"none\") {\n return {r: -1, g: -1, b: -1, hex: \"none\", toString: clrToString};\n }\n !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == \"#\") && (colour = toHex(colour));\n var res,\n red,\n green,\n blue,\n opacity,\n t,\n values,\n rgb = colour.match(colourRegExp);\n if (rgb) {\n if (rgb[2]) {\n blue = toInt(rgb[2].substring(5), 16);\n green = toInt(rgb[2].substring(3, 5), 16);\n red = toInt(rgb[2].substring(1, 3), 16);\n }\n if (rgb[3]) {\n blue = toInt((t = rgb[3].charAt(3)) + t, 16);\n green = toInt((t = rgb[3].charAt(2)) + t, 16);\n red = toInt((t = rgb[3].charAt(1)) + t, 16);\n }\n if (rgb[4]) {\n values = rgb[4][split](commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red *= 2.55);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green *= 2.55);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue *= 2.55);\n rgb[1].toLowerCase().slice(0, 4) == \"rgba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n }\n if (rgb[5]) {\n values = rgb[5][split](commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red *= 2.55);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green *= 2.55);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue *= 2.55);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return R.hsb2rgb(red, green, blue, opacity);\n }\n if (rgb[6]) {\n values = rgb[6][split](commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red *= 2.55);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green *= 2.55);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue *= 2.55);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsla\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return R.hsl2rgb(red, green, blue, opacity);\n }\n rgb = {r: red, g: green, b: blue, toString: clrToString};\n rgb.hex = \"#\" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1);\n R.is(opacity, \"finite\") && (rgb.opacity = opacity);\n return rgb;\n }\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: clrToString};\n }, R);\n /*\\\n * Raphael.hsb\n [ method ]\n **\n * Converts HSB values to hex representation of the colour.\n > Parameters\n - h (number) hue\n - s (number) saturation\n - b (number) value or brightness\n = (string) hex representation of the colour.\n \\*/\n R.hsb = cacher(function (h, s, b) {\n return R.hsb2rgb(h, s, b).hex;\n });\n /*\\\n * Raphael.hsl\n [ method ]\n **\n * Converts HSL values to hex representation of the colour.\n > Parameters\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (string) hex representation of the colour.\n \\*/\n R.hsl = cacher(function (h, s, l) {\n return R.hsl2rgb(h, s, l).hex;\n });\n /*\\\n * Raphael.rgb\n [ method ]\n **\n * Converts RGB values to hex representation of the colour.\n > Parameters\n - r (number) red\n - g (number) green\n - b (number) blue\n = (string) hex representation of the colour.\n \\*/\n R.rgb = cacher(function (r, g, b) {\n return \"#\" + (16777216 | b | (g << 8) | (r << 16)).toString(16).slice(1);\n });\n /*\\\n * Raphael.getColor\n [ method ]\n **\n * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset\n > Parameters\n - value (number) #optional brightness, default is `0.75`\n = (string) hex representation of the colour.\n \\*/\n R.getColor = function (value) {\n var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75},\n rgb = this.hsb2rgb(start.h, start.s, start.b);\n start.h += .075;\n if (start.h > 1) {\n start.h = 0;\n start.s -= .2;\n start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b});\n }\n return rgb.hex;\n };\n /*\\\n * Raphael.getColor.reset\n [ method ]\n **\n * Resets spectrum position for @Raphael.getColor back to red.\n \\*/\n R.getColor.reset = function () {\n delete this.start;\n };\n\n // http://schepers.cc/getting-to-the-point\n function catmullRom2bezier(crp, z) {\n var d = [];\n for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n var p = [\n {x: +crp[i - 2], y: +crp[i - 1]},\n {x: +crp[i], y: +crp[i + 1]},\n {x: +crp[i + 2], y: +crp[i + 3]},\n {x: +crp[i + 4], y: +crp[i + 5]}\n ];\n if (z) {\n if (!i) {\n p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\n } else if (iLen - 4 == i) {\n p[3] = {x: +crp[0], y: +crp[1]};\n } else if (iLen - 2 == i) {\n p[2] = {x: +crp[0], y: +crp[1]};\n p[3] = {x: +crp[2], y: +crp[3]};\n }\n } else {\n if (iLen - 4 == i) {\n p[3] = p[2];\n } else if (!i) {\n p[0] = {x: +crp[i], y: +crp[i + 1]};\n }\n }\n d.push([\"C\",\n (-p[0].x + 6 * p[1].x + p[2].x) / 6,\n (-p[0].y + 6 * p[1].y + p[2].y) / 6,\n (p[1].x + 6 * p[2].x - p[3].x) / 6,\n (p[1].y + 6*p[2].y - p[3].y) / 6,\n p[2].x,\n p[2].y\n ]);\n }\n\n return d;\n }\n /*\\\n * Raphael.parsePathString\n [ method ]\n **\n * Utility method\n **\n * Parses given path string into an array of arrays of path segments.\n > Parameters\n - pathString (string|array) path string or array of segments (in the last case it will be returned straight away)\n = (array) array of segments.\n \\*/\n R.parsePathString = function (pathString) {\n if (!pathString) {\n return null;\n }\n var pth = paths(pathString);\n if (pth.arr) {\n return pathClone(pth.arr);\n }\n\n var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0},\n data = [];\n if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption\n data = pathClone(pathString);\n }\n if (!data.length) {\n Str(pathString).replace(pathCommand, function (a, b, c) {\n var params = [],\n name = b.toLowerCase();\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n if (name == \"m\" && params.length > 2) {\n data.push([b][concat](params.splice(0, 2)));\n name = \"l\";\n b = b == \"m\" ? \"l\" : \"L\";\n }\n if (name == \"r\") {\n data.push([b][concat](params));\n } else while (params.length >= paramCounts[name]) {\n data.push([b][concat](params.splice(0, paramCounts[name])));\n if (!paramCounts[name]) {\n break;\n }\n }\n });\n }\n data.toString = R._path2string;\n pth.arr = pathClone(data);\n return data;\n };\n /*\\\n * Raphael.parseTransformString\n [ method ]\n **\n * Utility method\n **\n * Parses given path string into an array of transformations.\n > Parameters\n - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away)\n = (array) array of transformations.\n \\*/\n R.parseTransformString = cacher(function (TString) {\n if (!TString) {\n return null;\n }\n var paramCounts = {r: 3, s: 4, t: 2, m: 6},\n data = [];\n if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption\n data = pathClone(TString);\n }\n if (!data.length) {\n Str(TString).replace(tCommand, function (a, b, c) {\n var params = [],\n name = lowerCase.call(b);\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n data.push([b][concat](params));\n });\n }\n data.toString = R._path2string;\n return data;\n });\n // PATHS\n var paths = function (ps) {\n var p = paths.ps = paths.ps || {};\n if (p[ps]) {\n p[ps].sleep = 100;\n } else {\n p[ps] = {\n sleep: 100\n };\n }\n setTimeout(function () {\n for (var key in p) if (p[has](key) && key != ps) {\n p[key].sleep--;\n !p[key].sleep && delete p[key];\n }\n });\n return p[ps];\n };\n /*\\\n * Raphael.findDotsAtSegment\n [ method ]\n **\n * Utility method\n **\n * Find dot coordinates on the given cubic bezier curve at the given t.\n > Parameters\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n - t (number) position on the curve (0..1)\n = (object) point information in format:\n o {\n o x: (number) x coordinate of the point\n o y: (number) y coordinate of the point\n o m: {\n o x: (number) x coordinate of the left anchor\n o y: (number) y coordinate of the left anchor\n o }\n o n: {\n o x: (number) x coordinate of the right anchor\n o y: (number) y coordinate of the right anchor\n o }\n o start: {\n o x: (number) x coordinate of the start of the curve\n o y: (number) y coordinate of the start of the curve\n o }\n o end: {\n o x: (number) x coordinate of the end of the curve\n o y: (number) y coordinate of the end of the curve\n o }\n o alpha: (number) angle of the curve derivative at the point\n o }\n \\*/\n R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t,\n t13 = pow(t1, 3),\n t12 = pow(t1, 2),\n t2 = t * t,\n t3 = t2 * t,\n x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\n mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\n my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\n nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\n ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\n ax = t1 * p1x + t * c1x,\n ay = t1 * p1y + t * c1y,\n cx = t1 * c2x + t * p2x,\n cy = t1 * c2y + t * p2y,\n alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI);\n (mx > nx || my < ny) && (alpha += 180);\n return {\n x: x,\n y: y,\n m: {x: mx, y: my},\n n: {x: nx, y: ny},\n start: {x: ax, y: ay},\n end: {x: cx, y: cy},\n alpha: alpha\n };\n };\n /*\\\n * Raphael.bezierBBox\n [ method ]\n **\n * Utility method\n **\n * Return bounding box of a given cubic bezier curve\n > Parameters\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n * or\n - bez (array) array of six points for bezier curve\n = (object) point information in format:\n o {\n o min: {\n o x: (number) x coordinate of the left point\n o y: (number) y coordinate of the top point\n o }\n o max: {\n o x: (number) x coordinate of the right point\n o y: (number) y coordinate of the bottom point\n o }\n o }\n \\*/\n R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n if (!R.is(p1x, \"array\")) {\n p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n }\n var bbox = curveDim.apply(null, p1x);\n return {\n x: bbox.min.x,\n y: bbox.min.y,\n x2: bbox.max.x,\n y2: bbox.max.y,\n width: bbox.max.x - bbox.min.x,\n height: bbox.max.y - bbox.min.y\n };\n };\n /*\\\n * Raphael.isPointInsideBBox\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside bounding boxes.\n > Parameters\n - bbox (string) bounding box\n - x (string) x coordinate of the point\n - y (string) y coordinate of the point\n = (boolean) `true` if point inside\n \\*/\n R.isPointInsideBBox = function (bbox, x, y) {\n return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2;\n };\n /*\\\n * Raphael.isBBoxIntersect\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if two bounding boxes intersect\n > Parameters\n - bbox1 (string) first bounding box\n - bbox2 (string) second bounding box\n = (boolean) `true` if they intersect\n \\*/\n R.isBBoxIntersect = function (bbox1, bbox2) {\n var i = R.isPointInsideBBox;\n return i(bbox2, bbox1.x, bbox1.y)\n || i(bbox2, bbox1.x2, bbox1.y)\n || i(bbox2, bbox1.x, bbox1.y2)\n || i(bbox2, bbox1.x2, bbox1.y2)\n || i(bbox1, bbox2.x, bbox2.y)\n || i(bbox1, bbox2.x2, bbox2.y)\n || i(bbox1, bbox2.x, bbox2.y2)\n || i(bbox1, bbox2.x2, bbox2.y2)\n || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n };\n function base3(t, p1, p2, p3, p4) {\n var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n return t * t2 - 3 * p1 + 3 * p2;\n }\n function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n if (z == null) {\n z = 1;\n }\n z = z > 1 ? 1 : z < 0 ? 0 : z;\n var z2 = z / 2,\n n = 12,\n Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],\n Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\n sum = 0;\n for (var i = 0; i < n; i++) {\n var ct = z2 * Tvalues[i] + z2,\n xbase = base3(ct, x1, x2, x3, x4),\n ybase = base3(ct, y1, y2, y3, y4),\n comb = xbase * xbase + ybase * ybase;\n sum += Cvalues[i] * math.sqrt(comb);\n }\n return z2 * sum;\n }\n function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\n if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\n return;\n }\n var t = 1,\n step = t / 2,\n t2 = t - step,\n l,\n e = .01;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n while (abs(l - ll) > e) {\n step /= 2;\n t2 += (l < ll ? 1 : -1) * step;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n }\n return t2;\n }\n function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n if (\n mmax(x1, x2) < mmin(x3, x4) ||\n mmin(x1, x2) > mmax(x3, x4) ||\n mmax(y1, y2) < mmin(y3, y4) ||\n mmin(y1, y2) > mmax(y3, y4)\n ) {\n return;\n }\n var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n if (!denominator) {\n return;\n }\n var px = nx / denominator,\n py = ny / denominator,\n px2 = +px.toFixed(2),\n py2 = +py.toFixed(2);\n if (\n px2 < +mmin(x1, x2).toFixed(2) ||\n px2 > +mmax(x1, x2).toFixed(2) ||\n px2 < +mmin(x3, x4).toFixed(2) ||\n px2 > +mmax(x3, x4).toFixed(2) ||\n py2 < +mmin(y1, y2).toFixed(2) ||\n py2 > +mmax(y1, y2).toFixed(2) ||\n py2 < +mmin(y3, y4).toFixed(2) ||\n py2 > +mmax(y3, y4).toFixed(2)\n ) {\n return;\n }\n return {x: px, y: py};\n }\n function inter(bez1, bez2) {\n return interHelper(bez1, bez2);\n }\n function interCount(bez1, bez2) {\n return interHelper(bez1, bez2, 1);\n }\n function interHelper(bez1, bez2, justCount) {\n var bbox1 = R.bezierBBox(bez1),\n bbox2 = R.bezierBBox(bez2);\n if (!R.isBBoxIntersect(bbox1, bbox2)) {\n return justCount ? 0 : [];\n }\n var l1 = bezlen.apply(0, bez1),\n l2 = bezlen.apply(0, bez2),\n n1 = mmax(~~(l1 / 5), 1),\n n2 = mmax(~~(l2 / 5), 1),\n dots1 = [],\n dots2 = [],\n xy = {},\n res = justCount ? 0 : [];\n for (var i = 0; i < n1 + 1; i++) {\n var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1));\n dots1.push({x: p.x, y: p.y, t: i / n1});\n }\n for (i = 0; i < n2 + 1; i++) {\n p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2));\n dots2.push({x: p.x, y: p.y, t: i / n2});\n }\n for (i = 0; i < n1; i++) {\n for (var j = 0; j < n2; j++) {\n var di = dots1[i],\n di1 = dots1[i + 1],\n dj = dots2[j],\n dj1 = dots2[j + 1],\n ci = abs(di1.x - di.x) < .001 ? \"y\" : \"x\",\n cj = abs(dj1.x - dj.x) < .001 ? \"y\" : \"x\",\n is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n if (is) {\n if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\n continue;\n }\n xy[is.x.toFixed(4)] = is.y.toFixed(4);\n var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) {\n if (justCount) {\n res++;\n } else {\n res.push({\n x: is.x,\n y: is.y,\n t1: mmin(t1, 1),\n t2: mmin(t2, 1)\n });\n }\n }\n }\n }\n }\n return res;\n }\n /*\\\n * Raphael.pathIntersection\n [ method ]\n **\n * Utility method\n **\n * Finds intersections of two paths\n > Parameters\n - path1 (string) path string\n - path2 (string) path string\n = (array) dots of intersection\n o [\n o {\n o x: (number) x coordinate of the point\n o y: (number) y coordinate of the point\n o t1: (number) t value for segment of path1\n o t2: (number) t value for segment of path2\n o segment1: (number) order number for segment of path1\n o segment2: (number) order number for segment of path2\n o bez1: (array) eight coordinates representing beziér curve for the segment of path1\n o bez2: (array) eight coordinates representing beziér curve for the segment of path2\n o }\n o ]\n \\*/\n R.pathIntersection = function (path1, path2) {\n return interPathHelper(path1, path2);\n };\n R.pathIntersectionNumber = function (path1, path2) {\n return interPathHelper(path1, path2, 1);\n };\n function interPathHelper(path1, path2, justCount) {\n path1 = R._path2curve(path1);\n path2 = R._path2curve(path2);\n var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n res = justCount ? 0 : [];\n for (var i = 0, ii = path1.length; i < ii; i++) {\n var pi = path1[i];\n if (pi[0] == \"M\") {\n x1 = x1m = pi[1];\n y1 = y1m = pi[2];\n } else {\n if (pi[0] == \"C\") {\n bez1 = [x1, y1].concat(pi.slice(1));\n x1 = bez1[6];\n y1 = bez1[7];\n } else {\n bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n x1 = x1m;\n y1 = y1m;\n }\n for (var j = 0, jj = path2.length; j < jj; j++) {\n var pj = path2[j];\n if (pj[0] == \"M\") {\n x2 = x2m = pj[1];\n y2 = y2m = pj[2];\n } else {\n if (pj[0] == \"C\") {\n bez2 = [x2, y2].concat(pj.slice(1));\n x2 = bez2[6];\n y2 = bez2[7];\n } else {\n bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n x2 = x2m;\n y2 = y2m;\n }\n var intr = interHelper(bez1, bez2, justCount);\n if (justCount) {\n res += intr;\n } else {\n for (var k = 0, kk = intr.length; k < kk; k++) {\n intr[k].segment1 = i;\n intr[k].segment2 = j;\n intr[k].bez1 = bez1;\n intr[k].bez2 = bez2;\n }\n res = res.concat(intr);\n }\n }\n }\n }\n }\n return res;\n }\n /*\\\n * Raphael.isPointInsidePath\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside a given closed path.\n > Parameters\n - path (string) path string\n - x (number) x of the point\n - y (number) y of the point\n = (boolean) true, if point is inside the path\n \\*/\n R.isPointInsidePath = function (path, x, y) {\n var bbox = R.pathBBox(path);\n return R.isPointInsideBBox(bbox, x, y) &&\n interPathHelper(path, [[\"M\", x, y], [\"H\", bbox.x2 + 10]], 1) % 2 == 1;\n };\n R._removedFactory = function (methodname) {\n return function () {\n eve(\"raphael.log\", null, \"Rapha\\xebl: you are calling to method \\u201c\" + methodname + \"\\u201d of removed object\", methodname);\n };\n };\n /*\\\n * Raphael.pathBBox\n [ method ]\n **\n * Utility method\n **\n * Return bounding box of a given path\n > Parameters\n - path (string) path string\n = (object) bounding box\n o {\n o x: (number) x coordinate of the left top point of the box\n o y: (number) y coordinate of the left top point of the box\n o x2: (number) x coordinate of the right bottom point of the box\n o y2: (number) y coordinate of the right bottom point of the box\n o width: (number) width of the box\n o height: (number) height of the box\n o cx: (number) x coordinate of the center of the box\n o cy: (number) y coordinate of the center of the box\n o }\n \\*/\n var pathDimensions = R.pathBBox = function (path) {\n var pth = paths(path);\n if (pth.bbox) {\n return clone(pth.bbox);\n }\n if (!path) {\n return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0};\n }\n path = path2curve(path);\n var x = 0,\n y = 0,\n X = [],\n Y = [],\n p;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = p[1];\n y = p[2];\n X.push(x);\n Y.push(y);\n } else {\n var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n X = X[concat](dim.min.x, dim.max.x);\n Y = Y[concat](dim.min.y, dim.max.y);\n x = p[5];\n y = p[6];\n }\n }\n var xmin = mmin[apply](0, X),\n ymin = mmin[apply](0, Y),\n xmax = mmax[apply](0, X),\n ymax = mmax[apply](0, Y),\n width = xmax - xmin,\n height = ymax - ymin,\n bb = {\n x: xmin,\n y: ymin,\n x2: xmax,\n y2: ymax,\n width: width,\n height: height,\n cx: xmin + width / 2,\n cy: ymin + height / 2\n };\n pth.bbox = clone(bb);\n return bb;\n },\n pathClone = function (pathArray) {\n var res = clone(pathArray);\n res.toString = R._path2string;\n return res;\n },\n pathToRelative = R._pathToRelative = function (pathArray) {\n var pth = paths(pathArray);\n if (pth.rel) {\n return pathClone(pth.rel);\n }\n if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\n pathArray = R.parsePathString(pathArray);\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0;\n if (pathArray[0][0] == \"M\") {\n x = pathArray[0][1];\n y = pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res.push([\"M\", x, y]);\n }\n for (var i = start, ii = pathArray.length; i < ii; i++) {\n var r = res[i] = [],\n pa = pathArray[i];\n if (pa[0] != lowerCase.call(pa[0])) {\n r[0] = lowerCase.call(pa[0]);\n switch (r[0]) {\n case \"a\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +(pa[6] - x).toFixed(3);\n r[7] = +(pa[7] - y).toFixed(3);\n break;\n case \"v\":\n r[1] = +(pa[1] - y).toFixed(3);\n break;\n case \"m\":\n mx = pa[1];\n my = pa[2];\n default:\n for (var j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3);\n }\n }\n } else {\n r = res[i] = [];\n if (pa[0] == \"m\") {\n mx = pa[1] + x;\n my = pa[2] + y;\n }\n for (var k = 0, kk = pa.length; k < kk; k++) {\n res[i][k] = pa[k];\n }\n }\n var len = res[i].length;\n switch (res[i][0]) {\n case \"z\":\n x = mx;\n y = my;\n break;\n case \"h\":\n x += +res[i][len - 1];\n break;\n case \"v\":\n y += +res[i][len - 1];\n break;\n default:\n x += +res[i][len - 2];\n y += +res[i][len - 1];\n }\n }\n res.toString = R._path2string;\n pth.rel = pathClone(res);\n return res;\n },\n pathToAbsolute = R._pathToAbsolute = function (pathArray) {\n var pth = paths(pathArray);\n if (pth.abs) {\n return pathClone(pth.abs);\n }\n if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\n pathArray = R.parsePathString(pathArray);\n }\n if (!pathArray || !pathArray.length) {\n return [[\"M\", 0, 0]];\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0;\n if (pathArray[0][0] == \"M\") {\n x = +pathArray[0][1];\n y = +pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res[0] = [\"M\", x, y];\n }\n var crz = pathArray.length == 3 && pathArray[0][0] == \"M\" && pathArray[1][0].toUpperCase() == \"R\" && pathArray[2][0].toUpperCase() == \"Z\";\n for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n res.push(r = []);\n pa = pathArray[i];\n if (pa[0] != upperCase.call(pa[0])) {\n r[0] = upperCase.call(pa[0]);\n switch (r[0]) {\n case \"A\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +(pa[6] + x);\n r[7] = +(pa[7] + y);\n break;\n case \"V\":\n r[1] = +pa[1] + y;\n break;\n case \"H\":\n r[1] = +pa[1] + x;\n break;\n case \"R\":\n var dots = [x, y][concat](pa.slice(1));\n for (var j = 2, jj = dots.length; j < jj; j++) {\n dots[j] = +dots[j] + x;\n dots[++j] = +dots[j] + y;\n }\n res.pop();\n res = res[concat](catmullRom2bezier(dots, crz));\n break;\n case \"M\":\n mx = +pa[1] + x;\n my = +pa[2] + y;\n default:\n for (j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +pa[j] + ((j % 2) ? x : y);\n }\n }\n } else if (pa[0] == \"R\") {\n dots = [x, y][concat](pa.slice(1));\n res.pop();\n res = res[concat](catmullRom2bezier(dots, crz));\n r = [\"R\"][concat](pa.slice(-2));\n } else {\n for (var k = 0, kk = pa.length; k < kk; k++) {\n r[k] = pa[k];\n }\n }\n switch (r[0]) {\n case \"Z\":\n x = mx;\n y = my;\n break;\n case \"H\":\n x = r[1];\n break;\n case \"V\":\n y = r[1];\n break;\n case \"M\":\n mx = r[r.length - 2];\n my = r[r.length - 1];\n default:\n x = r[r.length - 2];\n y = r[r.length - 1];\n }\n }\n res.toString = R._path2string;\n pth.abs = pathClone(res);\n return res;\n },\n l2c = function (x1, y1, x2, y2) {\n return [x1, y1, x2, y2, x2, y2];\n },\n q2c = function (x1, y1, ax, ay, x2, y2) {\n var _13 = 1 / 3,\n _23 = 2 / 3;\n return [\n _13 * x1 + _23 * ax,\n _13 * y1 + _23 * ay,\n _13 * x2 + _23 * ax,\n _13 * y2 + _23 * ay,\n x2,\n y2\n ];\n },\n a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n // for more information of where this math came from visit:\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n var _120 = PI * 120 / 180,\n rad = PI / 180 * (+angle || 0),\n res = [],\n xy,\n rotate = cacher(function (x, y, rad) {\n var X = x * math.cos(rad) - y * math.sin(rad),\n Y = x * math.sin(rad) + y * math.cos(rad);\n return {x: X, y: Y};\n });\n if (!recursive) {\n xy = rotate(x1, y1, -rad);\n x1 = xy.x;\n y1 = xy.y;\n xy = rotate(x2, y2, -rad);\n x2 = xy.x;\n y2 = xy.y;\n var cos = math.cos(PI / 180 * angle),\n sin = math.sin(PI / 180 * angle),\n x = (x1 - x2) / 2,\n y = (y1 - y2) / 2;\n var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);\n if (h > 1) {\n h = math.sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n var rx2 = rx * rx,\n ry2 = ry * ry,\n k = (large_arc_flag == sweep_flag ? -1 : 1) *\n math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n cx = k * rx * y / ry + (x1 + x2) / 2,\n cy = k * -ry * x / rx + (y1 + y2) / 2,\n f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n f1 = x1 < cx ? PI - f1 : f1;\n f2 = x2 < cx ? PI - f2 : f2;\n f1 < 0 && (f1 = PI * 2 + f1);\n f2 < 0 && (f2 = PI * 2 + f2);\n if (sweep_flag && f1 > f2) {\n f1 = f1 - PI * 2;\n }\n if (!sweep_flag && f2 > f1) {\n f2 = f2 - PI * 2;\n }\n } else {\n f1 = recursive[0];\n f2 = recursive[1];\n cx = recursive[2];\n cy = recursive[3];\n }\n var df = f2 - f1;\n if (abs(df) > _120) {\n var f2old = f2,\n x2old = x2,\n y2old = y2;\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n x2 = cx + rx * math.cos(f2);\n y2 = cy + ry * math.sin(f2);\n res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n }\n df = f2 - f1;\n var c1 = math.cos(f1),\n s1 = math.sin(f1),\n c2 = math.cos(f2),\n s2 = math.sin(f2),\n t = math.tan(df / 4),\n hx = 4 / 3 * rx * t,\n hy = 4 / 3 * ry * t,\n m1 = [x1, y1],\n m2 = [x1 + hx * s1, y1 - hy * c1],\n m3 = [x2 + hx * s2, y2 - hy * c2],\n m4 = [x2, y2];\n m2[0] = 2 * m1[0] - m2[0];\n m2[1] = 2 * m1[1] - m2[1];\n if (recursive) {\n return [m2, m3, m4][concat](res);\n } else {\n res = [m2, m3, m4][concat](res).join()[split](\",\");\n var newres = [];\n for (var i = 0, ii = res.length; i < ii; i++) {\n newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n }\n return newres;\n }\n },\n findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t;\n return {\n x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\n y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\n };\n },\n curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x),\n b = 2 * (c1x - p1x) - 2 * (c2x - c1x),\n c = p1x - c1x,\n t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a,\n t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a,\n y = [p1y, p2y],\n x = [p1x, p2x],\n dot;\n abs(t1) > \"1e12\" && (t1 = .5);\n abs(t2) > \"1e12\" && (t2 = .5);\n if (t1 > 0 && t1 < 1) {\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n x.push(dot.x);\n y.push(dot.y);\n }\n if (t2 > 0 && t2 < 1) {\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n x.push(dot.x);\n y.push(dot.y);\n }\n a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y);\n b = 2 * (c1y - p1y) - 2 * (c2y - c1y);\n c = p1y - c1y;\n t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a;\n t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a;\n abs(t1) > \"1e12\" && (t1 = .5);\n abs(t2) > \"1e12\" && (t2 = .5);\n if (t1 > 0 && t1 < 1) {\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n x.push(dot.x);\n y.push(dot.y);\n }\n if (t2 > 0 && t2 < 1) {\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n x.push(dot.x);\n y.push(dot.y);\n }\n return {\n min: {x: mmin[apply](0, x), y: mmin[apply](0, y)},\n max: {x: mmax[apply](0, x), y: mmax[apply](0, y)}\n };\n }),\n path2curve = R._path2curve = cacher(function (path, path2) {\n var pth = !path2 && paths(path);\n if (!path2 && pth.curve) {\n return pathClone(pth.curve);\n }\n var p = pathToAbsolute(path),\n p2 = path2 && pathToAbsolute(path2),\n attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n processPath = function (path, d, pcom) {\n var nx, ny, tq = {T:1, Q:1};\n if (!path) {\n return [\"C\", d.x, d.y, d.x, d.y, d.x, d.y];\n }\n !(path[0] in tq) && (d.qx = d.qy = null);\n switch (path[0]) {\n case \"M\":\n d.X = path[1];\n d.Y = path[2];\n break;\n case \"A\":\n path = [\"C\"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1))));\n break;\n case \"S\":\n if (pcom == \"C\" || pcom == \"S\") { // In \"S\" case we have to take into account, if the previous command is C/S.\n nx = d.x * 2 - d.bx; // And reflect the previous\n ny = d.y * 2 - d.by; // command's control point relative to the current point.\n }\n else { // or some else or nothing\n nx = d.x;\n ny = d.y;\n }\n path = [\"C\", nx, ny][concat](path.slice(1));\n break;\n case \"T\":\n if (pcom == \"Q\" || pcom == \"T\") { // In \"T\" case we have to take into account, if the previous command is Q/T.\n d.qx = d.x * 2 - d.qx; // And make a reflection similar\n d.qy = d.y * 2 - d.qy; // to case \"S\".\n }\n else { // or something else or nothing\n d.qx = d.x;\n d.qy = d.y;\n }\n path = [\"C\"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n break;\n case \"Q\":\n d.qx = path[1];\n d.qy = path[2];\n path = [\"C\"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\n break;\n case \"L\":\n path = [\"C\"][concat](l2c(d.x, d.y, path[1], path[2]));\n break;\n case \"H\":\n path = [\"C\"][concat](l2c(d.x, d.y, path[1], d.y));\n break;\n case \"V\":\n path = [\"C\"][concat](l2c(d.x, d.y, d.x, path[1]));\n break;\n case \"Z\":\n path = [\"C\"][concat](l2c(d.x, d.y, d.X, d.Y));\n break;\n }\n return path;\n },\n fixArc = function (pp, i) {\n if (pp[i].length > 7) {\n pp[i].shift();\n var pi = pp[i];\n while (pi.length) {\n pp.splice(i++, 0, [\"C\"][concat](pi.splice(0, 6)));\n }\n pp.splice(i, 1);\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n },\n fixM = function (path1, path2, a1, a2, i) {\n if (path1 && path2 && path1[i][0] == \"M\" && path2[i][0] != \"M\") {\n path2.splice(i, 0, [\"M\", a2.x, a2.y]);\n a1.bx = 0;\n a1.by = 0;\n a1.x = path1[i][1];\n a1.y = path1[i][2];\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n };\n for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\n p[i] = processPath(p[i], attrs);\n fixArc(p, i);\n p2 && (p2[i] = processPath(p2[i], attrs2));\n p2 && fixArc(p2, i);\n fixM(p, p2, attrs, attrs2, i);\n fixM(p2, p, attrs2, attrs, i);\n var seg = p[i],\n seg2 = p2 && p2[i],\n seglen = seg.length,\n seg2len = p2 && seg2.length;\n attrs.x = seg[seglen - 2];\n attrs.y = seg[seglen - 1];\n attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\n attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\n attrs2.x = p2 && seg2[seg2len - 2];\n attrs2.y = p2 && seg2[seg2len - 1];\n }\n if (!p2) {\n pth.curve = pathClone(p);\n }\n return p2 ? [p, p2] : p;\n }, null, pathClone),\n parseDots = R._parseDots = cacher(function (gradient) {\n var dots = [];\n for (var i = 0, ii = gradient.length; i < ii; i++) {\n var dot = {},\n par = gradient[i].match(/^([^:]*):?([\\d\\.]*)/);\n dot.color = R.getRGB(par[1]);\n if (dot.color.error) {\n return null;\n }\n dot.color = dot.color.hex;\n par[2] && (dot.offset = par[2] + \"%\");\n dots.push(dot);\n }\n for (i = 1, ii = dots.length - 1; i < ii; i++) {\n if (!dots[i].offset) {\n var start = toFloat(dots[i - 1].offset || 0),\n end = 0;\n for (var j = i + 1; j < ii; j++) {\n if (dots[j].offset) {\n end = dots[j].offset;\n break;\n }\n }\n if (!end) {\n end = 100;\n j = ii;\n }\n end = toFloat(end);\n var d = (end - start) / (j - i + 1);\n for (; i < j; i++) {\n start += d;\n dots[i].offset = start + \"%\";\n }\n }\n }\n return dots;\n }),\n tear = R._tear = function (el, paper) {\n el == paper.top && (paper.top = el.prev);\n el == paper.bottom && (paper.bottom = el.next);\n el.next && (el.next.prev = el.prev);\n el.prev && (el.prev.next = el.next);\n },\n tofront = R._tofront = function (el, paper) {\n if (paper.top === el) {\n return;\n }\n tear(el, paper);\n el.next = null;\n el.prev = paper.top;\n paper.top.next = el;\n paper.top = el;\n },\n toback = R._toback = function (el, paper) {\n if (paper.bottom === el) {\n return;\n }\n tear(el, paper);\n el.next = paper.bottom;\n el.prev = null;\n paper.bottom.prev = el;\n paper.bottom = el;\n },\n insertafter = R._insertafter = function (el, el2, paper) {\n tear(el, paper);\n el2 == paper.top && (paper.top = el);\n el2.next && (el2.next.prev = el);\n el.next = el2.next;\n el.prev = el2;\n el2.next = el;\n },\n insertbefore = R._insertbefore = function (el, el2, paper) {\n tear(el, paper);\n el2 == paper.bottom && (paper.bottom = el);\n el2.prev && (el2.prev.next = el);\n el.prev = el2.prev;\n el2.prev = el;\n el.next = el2;\n },\n /*\\\n * Raphael.toMatrix\n [ method ]\n **\n * Utility method\n **\n * Returns matrix of transformations applied to a given path\n > Parameters\n - path (string) path string\n - transform (string|array) transformation string\n = (object) @Matrix\n \\*/\n toMatrix = R.toMatrix = function (path, transform) {\n var bb = pathDimensions(path),\n el = {\n _: {\n transform: E\n },\n getBBox: function () {\n return bb;\n }\n };\n extractTransform(el, transform);\n return el.matrix;\n },\n /*\\\n * Raphael.transformPath\n [ method ]\n **\n * Utility method\n **\n * Returns path transformed by a given transformation\n > Parameters\n - path (string) path string\n - transform (string|array) transformation string\n = (string) path\n \\*/\n transformPath = R.transformPath = function (path, transform) {\n return mapPath(path, toMatrix(path, transform));\n },\n extractTransform = R._extractTransform = function (el, tstr) {\n if (tstr == null) {\n return el._.transform;\n }\n tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, el._.transform || E);\n var tdata = R.parseTransformString(tstr),\n deg = 0,\n dx = 0,\n dy = 0,\n sx = 1,\n sy = 1,\n _ = el._,\n m = new Matrix;\n _.transform = tdata || [];\n if (tdata) {\n for (var i = 0, ii = tdata.length; i < ii; i++) {\n var t = tdata[i],\n tlen = t.length,\n command = Str(t[0]).toLowerCase(),\n absolute = t[0] != command,\n inver = absolute ? m.invert() : 0,\n x1,\n y1,\n x2,\n y2,\n bb;\n if (command == \"t\" && tlen == 3) {\n if (absolute) {\n x1 = inver.x(0, 0);\n y1 = inver.y(0, 0);\n x2 = inver.x(t[1], t[2]);\n y2 = inver.y(t[1], t[2]);\n m.translate(x2 - x1, y2 - y1);\n } else {\n m.translate(t[1], t[2]);\n }\n } else if (command == \"r\") {\n if (tlen == 2) {\n bb = bb || el.getBBox(1);\n m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n deg += t[1];\n } else if (tlen == 4) {\n if (absolute) {\n x2 = inver.x(t[2], t[3]);\n y2 = inver.y(t[2], t[3]);\n m.rotate(t[1], x2, y2);\n } else {\n m.rotate(t[1], t[2], t[3]);\n }\n deg += t[1];\n }\n } else if (command == \"s\") {\n if (tlen == 2 || tlen == 3) {\n bb = bb || el.getBBox(1);\n m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n sx *= t[1];\n sy *= t[tlen - 1];\n } else if (tlen == 5) {\n if (absolute) {\n x2 = inver.x(t[3], t[4]);\n y2 = inver.y(t[3], t[4]);\n m.scale(t[1], t[2], x2, y2);\n } else {\n m.scale(t[1], t[2], t[3], t[4]);\n }\n sx *= t[1];\n sy *= t[2];\n }\n } else if (command == \"m\" && tlen == 7) {\n m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\n }\n _.dirtyT = 1;\n el.matrix = m;\n }\n }\n\n /*\\\n * Element.matrix\n [ property (object) ]\n **\n * Keeps @Matrix object, which represents element transformation\n \\*/\n el.matrix = m;\n\n _.sx = sx;\n _.sy = sy;\n _.deg = deg;\n _.dx = dx = m.e;\n _.dy = dy = m.f;\n\n if (sx == 1 && sy == 1 && !deg && _.bbox) {\n _.bbox.x += +dx;\n _.bbox.y += +dy;\n } else {\n _.dirtyT = 1;\n }\n },\n getEmpty = function (item) {\n var l = item[0];\n switch (l.toLowerCase()) {\n case \"t\": return [l, 0, 0];\n case \"m\": return [l, 1, 0, 0, 1, 0, 0];\n case \"r\": if (item.length == 4) {\n return [l, 0, item[2], item[3]];\n } else {\n return [l, 0];\n }\n case \"s\": if (item.length == 5) {\n return [l, 1, 1, item[3], item[4]];\n } else if (item.length == 3) {\n return [l, 1, 1];\n } else {\n return [l, 1];\n }\n }\n },\n equaliseTransform = R._equaliseTransform = function (t1, t2) {\n t2 = Str(t2).replace(/\\.{3}|\\u2026/g, t1);\n t1 = R.parseTransformString(t1) || [];\n t2 = R.parseTransformString(t2) || [];\n var maxlength = mmax(t1.length, t2.length),\n from = [],\n to = [],\n i = 0, j, jj,\n tt1, tt2;\n for (; i < maxlength; i++) {\n tt1 = t1[i] || getEmpty(t2[i]);\n tt2 = t2[i] || getEmpty(tt1);\n if ((tt1[0] != tt2[0]) ||\n (tt1[0].toLowerCase() == \"r\" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) ||\n (tt1[0].toLowerCase() == \"s\" && (tt1[3] != tt2[3] || tt1[4] != tt2[4]))\n ) {\n return;\n }\n from[i] = [];\n to[i] = [];\n for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) {\n j in tt1 && (from[i][j] = tt1[j]);\n j in tt2 && (to[i][j] = tt2[j]);\n }\n }\n return {\n from: from,\n to: to\n };\n };\n R._getContainer = function (x, y, w, h) {\n var container;\n container = h == null && !R.is(x, \"object\") ? g.doc.getElementById(x) : x;\n if (container == null) {\n return;\n }\n if (container.tagName) {\n if (y == null) {\n return {\n container: container,\n width: container.style.pixelWidth || container.offsetWidth,\n height: container.style.pixelHeight || container.offsetHeight\n };\n } else {\n return {\n container: container,\n width: y,\n height: w\n };\n }\n }\n return {\n container: 1,\n x: x,\n y: y,\n width: w,\n height: h\n };\n };\n /*\\\n * Raphael.pathToRelative\n [ method ]\n **\n * Utility method\n **\n * Converts path to relative form\n > Parameters\n - pathString (string|array) path string or array of segments\n = (array) array of segments.\n \\*/\n R.pathToRelative = pathToRelative;\n R._engine = {};\n /*\\\n * Raphael.path2curve\n [ method ]\n **\n * Utility method\n **\n * Converts path to a new path where all segments are cubic bezier curves.\n > Parameters\n - pathString (string|array) path string or array of segments\n = (array) array of segments.\n \\*/\n R.path2curve = path2curve;\n /*\\\n * Raphael.matrix\n [ method ]\n **\n * Utility method\n **\n * Returns matrix based on given parameters.\n > Parameters\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n = (object) @Matrix\n \\*/\n R.matrix = function (a, b, c, d, e, f) {\n return new Matrix(a, b, c, d, e, f);\n };\n function Matrix(a, b, c, d, e, f) {\n if (a != null) {\n this.a = +a;\n this.b = +b;\n this.c = +c;\n this.d = +d;\n this.e = +e;\n this.f = +f;\n } else {\n this.a = 1;\n this.b = 0;\n this.c = 0;\n this.d = 1;\n this.e = 0;\n this.f = 0;\n }\n }\n (function (matrixproto) {\n /*\\\n * Matrix.add\n [ method ]\n **\n * Adds given matrix to existing one.\n > Parameters\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n or\n - matrix (object) @Matrix\n \\*/\n matrixproto.add = function (a, b, c, d, e, f) {\n var out = [[], [], []],\n m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]],\n matrix = [[a, c, e], [b, d, f], [0, 0, 1]],\n x, y, z, res;\n\n if (a && a instanceof Matrix) {\n matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]];\n }\n\n for (x = 0; x < 3; x++) {\n for (y = 0; y < 3; y++) {\n res = 0;\n for (z = 0; z < 3; z++) {\n res += m[x][z] * matrix[z][y];\n }\n out[x][y] = res;\n }\n }\n this.a = out[0][0];\n this.b = out[1][0];\n this.c = out[0][1];\n this.d = out[1][1];\n this.e = out[0][2];\n this.f = out[1][2];\n };\n /*\\\n * Matrix.invert\n [ method ]\n **\n * Returns inverted version of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.invert = function () {\n var me = this,\n x = me.a * me.d - me.b * me.c;\n return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\n };\n /*\\\n * Matrix.clone\n [ method ]\n **\n * Returns copy of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.clone = function () {\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n };\n /*\\\n * Matrix.translate\n [ method ]\n **\n * Translate the matrix\n > Parameters\n - x (number)\n - y (number)\n \\*/\n matrixproto.translate = function (x, y) {\n this.add(1, 0, 0, 1, x, y);\n };\n /*\\\n * Matrix.scale\n [ method ]\n **\n * Scales the matrix\n > Parameters\n - x (number)\n - y (number) #optional\n - cx (number) #optional\n - cy (number) #optional\n \\*/\n matrixproto.scale = function (x, y, cx, cy) {\n y == null && (y = x);\n (cx || cy) && this.add(1, 0, 0, 1, cx, cy);\n this.add(x, 0, 0, y, 0, 0);\n (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy);\n };\n /*\\\n * Matrix.rotate\n [ method ]\n **\n * Rotates the matrix\n > Parameters\n - a (number)\n - x (number)\n - y (number)\n \\*/\n matrixproto.rotate = function (a, x, y) {\n a = R.rad(a);\n x = x || 0;\n y = y || 0;\n var cos = +math.cos(a).toFixed(9),\n sin = +math.sin(a).toFixed(9);\n this.add(cos, sin, -sin, cos, x, y);\n this.add(1, 0, 0, 1, -x, -y);\n };\n /*\\\n * Matrix.x\n [ method ]\n **\n * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y\n > Parameters\n - x (number)\n - y (number)\n = (number) x\n \\*/\n matrixproto.x = function (x, y) {\n return x * this.a + y * this.c + this.e;\n };\n /*\\\n * Matrix.y\n [ method ]\n **\n * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x\n > Parameters\n - x (number)\n - y (number)\n = (number) y\n \\*/\n matrixproto.y = function (x, y) {\n return x * this.b + y * this.d + this.f;\n };\n matrixproto.get = function (i) {\n return +this[Str.fromCharCode(97 + i)].toFixed(4);\n };\n matrixproto.toString = function () {\n return R.svg ?\n \"matrix(\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + \")\" :\n [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join();\n };\n matrixproto.toFilter = function () {\n return \"progid:DXImageTransform.Microsoft.Matrix(M11=\" + this.get(0) +\n \", M12=\" + this.get(2) + \", M21=\" + this.get(1) + \", M22=\" + this.get(3) +\n \", Dx=\" + this.get(4) + \", Dy=\" + this.get(5) + \", sizingmethod='auto expand')\";\n };\n matrixproto.offset = function () {\n return [this.e.toFixed(4), this.f.toFixed(4)];\n };\n function norm(a) {\n return a[0] * a[0] + a[1] * a[1];\n }\n function normalize(a) {\n var mag = math.sqrt(norm(a));\n a[0] && (a[0] /= mag);\n a[1] && (a[1] /= mag);\n }\n /*\\\n * Matrix.split\n [ method ]\n **\n * Splits matrix into primitive transformations\n = (object) in format:\n o dx (number) translation by x\n o dy (number) translation by y\n o scalex (number) scale by x\n o scaley (number) scale by y\n o shear (number) shear\n o rotate (number) rotation in deg\n o isSimple (boolean) could it be represented via simple transformations\n \\*/\n matrixproto.split = function () {\n var out = {};\n // translation\n out.dx = this.e;\n out.dy = this.f;\n\n // scale and shear\n var row = [[this.a, this.c], [this.b, this.d]];\n out.scalex = math.sqrt(norm(row[0]));\n normalize(row[0]);\n\n out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\n row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\n\n out.scaley = math.sqrt(norm(row[1]));\n normalize(row[1]);\n out.shear /= out.scaley;\n\n // rotation\n var sin = -row[0][1],\n cos = row[1][1];\n if (cos < 0) {\n out.rotate = R.deg(math.acos(cos));\n if (sin < 0) {\n out.rotate = 360 - out.rotate;\n }\n } else {\n out.rotate = R.deg(math.asin(sin));\n }\n\n out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\n out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\n out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\n return out;\n };\n /*\\\n * Matrix.toTransformString\n [ method ]\n **\n * Return transform string that represents given matrix\n = (string) transform string\n \\*/\n matrixproto.toTransformString = function (shorter) {\n var s = shorter || this[split]();\n if (s.isSimple) {\n s.scalex = +s.scalex.toFixed(4);\n s.scaley = +s.scaley.toFixed(4);\n s.rotate = +s.rotate.toFixed(4);\n return (s.dx || s.dy ? \"t\" + [s.dx, s.dy] : E) +\n (s.scalex != 1 || s.scaley != 1 ? \"s\" + [s.scalex, s.scaley, 0, 0] : E) +\n (s.rotate ? \"r\" + [s.rotate, 0, 0] : E);\n } else {\n return \"m\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\n }\n };\n })(Matrix.prototype);\n\n // WebKit rendering bug workaround method\n var version = navigator.userAgent.match(/Version\\/(.*?)\\s/) || navigator.userAgent.match(/Chrome\\/(\\d+)/);\n if ((navigator.vendor == \"Apple Computer, Inc.\") && (version && version[1] < 4 || navigator.platform.slice(0, 2) == \"iP\") ||\n (navigator.vendor == \"Google Inc.\" && version && version[1] < 8)) {\n /*\\\n * Paper.safari\n [ method ]\n **\n * There is an inconvenient rendering bug in Safari (WebKit):\n * sometimes the rendering should be forced.\n * This method should help with dealing with this bug.\n \\*/\n paperproto.safari = function () {\n var rect = this.rect(-99, -99, this.width + 99, this.height + 99).attr({stroke: \"none\"});\n setTimeout(function () {rect.remove();});\n };\n } else {\n paperproto.safari = fun;\n }\n\n var preventDefault = function () {\n this.returnValue = false;\n },\n preventTouch = function () {\n return this.originalEvent.preventDefault();\n },\n stopPropagation = function () {\n this.cancelBubble = true;\n },\n stopTouch = function () {\n return this.originalEvent.stopPropagation();\n },\n getEventPosition = function (e) {\n var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n\n return {\n x: e.clientX + scrollX,\n y: e.clientY + scrollY\n };\n },\n addEvent = (function () {\n if (g.doc.addEventListener) {\n return function (obj, type, fn, element) {\n var f = function (e) {\n var pos = getEventPosition(e);\n return fn.call(element, e, pos.x, pos.y);\n };\n obj.addEventListener(type, f, false);\n\n if (supportsTouch && touchMap[type]) {\n var _f = function (e) {\n var pos = getEventPosition(e),\n olde = e;\n\n for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\n if (e.targetTouches[i].target == obj) {\n e = e.targetTouches[i];\n e.originalEvent = olde;\n e.preventDefault = preventTouch;\n e.stopPropagation = stopTouch;\n break;\n }\n }\n\n return fn.call(element, e, pos.x, pos.y);\n };\n obj.addEventListener(touchMap[type], _f, false);\n }\n\n return function () {\n obj.removeEventListener(type, f, false);\n\n if (supportsTouch && touchMap[type])\n obj.removeEventListener(touchMap[type], f, false);\n\n return true;\n };\n };\n } else if (g.doc.attachEvent) {\n return function (obj, type, fn, element) {\n var f = function (e) {\n e = e || g.win.event;\n var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n x = e.clientX + scrollX,\n y = e.clientY + scrollY;\n e.preventDefault = e.preventDefault || preventDefault;\n e.stopPropagation = e.stopPropagation || stopPropagation;\n return fn.call(element, e, x, y);\n };\n obj.attachEvent(\"on\" + type, f);\n var detacher = function () {\n obj.detachEvent(\"on\" + type, f);\n return true;\n };\n return detacher;\n };\n }\n })(),\n drag = [],\n dragMove = function (e) {\n var x = e.clientX,\n y = e.clientY,\n scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n dragi,\n j = drag.length;\n while (j--) {\n dragi = drag[j];\n if (supportsTouch && e.touches) {\n var i = e.touches.length,\n touch;\n while (i--) {\n touch = e.touches[i];\n if (touch.identifier == dragi.el._drag.id) {\n x = touch.clientX;\n y = touch.clientY;\n (e.originalEvent ? e.originalEvent : e).preventDefault();\n break;\n }\n }\n } else {\n e.preventDefault();\n }\n var node = dragi.el.node,\n o,\n next = node.nextSibling,\n parent = node.parentNode,\n display = node.style.display;\n g.win.opera && parent.removeChild(node);\n node.style.display = \"none\";\n o = dragi.el.paper.getElementByPoint(x, y);\n node.style.display = display;\n g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\n o && eve(\"raphael.drag.over.\" + dragi.el.id, dragi.el, o);\n x += scrollX;\n y += scrollY;\n eve(\"raphael.drag.move.\" + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\n }\n },\n dragUp = function (e) {\n R.unmousemove(dragMove).unmouseup(dragUp);\n var i = drag.length,\n dragi;\n while (i--) {\n dragi = drag[i];\n dragi.el._drag = {};\n eve(\"raphael.drag.end.\" + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\n }\n drag = [];\n },\n /*\\\n * Raphael.el\n [ property (object) ]\n **\n * You can add your own method to elements. This is usefull when you want to hack default functionality or\n * want to wrap some common transformation or attributes in one method. In difference to canvas methods,\n * you can redefine element method at any time. Expending element methods wouldnt affect set.\n > Usage\n | Raphael.el.red = function () {\n | this.attr({fill: \"#f00\"});\n | };\n | // then use it\n | paper.circle(100, 100, 20).red();\n \\*/\n elproto = R.el = {};\n /*\\\n * Element.click\n [ method ]\n **\n * Adds event handler for click for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unclick\n [ method ]\n **\n * Removes event handler for click for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.dblclick\n [ method ]\n **\n * Adds event handler for double click for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.undblclick\n [ method ]\n **\n * Removes event handler for double click for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.mousedown\n [ method ]\n **\n * Adds event handler for mousedown for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousedown\n [ method ]\n **\n * Removes event handler for mousedown for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.mousemove\n [ method ]\n **\n * Adds event handler for mousemove for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousemove\n [ method ]\n **\n * Removes event handler for mousemove for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.mouseout\n [ method ]\n **\n * Adds event handler for mouseout for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseout\n [ method ]\n **\n * Removes event handler for mouseout for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.mouseover\n [ method ]\n **\n * Adds event handler for mouseover for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseover\n [ method ]\n **\n * Removes event handler for mouseover for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.mouseup\n [ method ]\n **\n * Adds event handler for mouseup for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseup\n [ method ]\n **\n * Removes event handler for mouseup for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.touchstart\n [ method ]\n **\n * Adds event handler for touchstart for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchstart\n [ method ]\n **\n * Removes event handler for touchstart for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.touchmove\n [ method ]\n **\n * Adds event handler for touchmove for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchmove\n [ method ]\n **\n * Removes event handler for touchmove for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.touchend\n [ method ]\n **\n * Adds event handler for touchend for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchend\n [ method ]\n **\n * Removes event handler for touchend for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n\n /*\\\n * Element.touchcancel\n [ method ]\n **\n * Adds event handler for touchcancel for the element.\n > Parameters\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchcancel\n [ method ]\n **\n * Removes event handler for touchcancel for the element.\n > Parameters\n - handler (function) #optional handler for the event\n = (object) @Element\n \\*/\n for (var i = events.length; i--;) {\n (function (eventName) {\n R[eventName] = elproto[eventName] = function (fn, scope) {\n if (R.is(fn, \"function\")) {\n this.events = this.events || [];\n this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)});\n }\n return this;\n };\n R[\"un\" + eventName] = elproto[\"un\" + eventName] = function (fn) {\n var events = this.events || [],\n l = events.length;\n while (l--){\n if (events[l].name == eventName && (R.is(fn, \"undefined\") || events[l].f == fn)) {\n events[l].unbind();\n events.splice(l, 1);\n !events.length && delete this.events;\n }\n }\n return this;\n };\n })(events[i]);\n }\n\n /*\\\n * Element.data\n [ method ]\n **\n * Adds or retrieves given value asociated with given key.\n ** \n * See also @Element.removeData\n > Parameters\n - key (string) key to store data\n - value (any) #optional value to store\n = (object) @Element\n * or, if value is not specified:\n = (any) value\n * or, if key and value are not specified:\n = (object) Key/value pairs for all the data associated with the element.\n > Usage\n | for (var i = 0, i < 5, i++) {\n | paper.circle(10 + 15 * i, 10, 10)\n | .attr({fill: \"#000\"})\n | .data(\"i\", i)\n | .click(function () {\n | alert(this.data(\"i\"));\n | });\n | }\n \\*/\n elproto.data = function (key, value) {\n var data = eldata[this.id] = eldata[this.id] || {};\n if (arguments.length == 0) {\n return data;\n }\n if (arguments.length == 1) {\n if (R.is(key, \"object\")) {\n for (var i in key) if (key[has](i)) {\n this.data(i, key[i]);\n }\n return this;\n }\n eve(\"raphael.data.get.\" + this.id, this, data[key], key);\n return data[key];\n }\n data[key] = value;\n eve(\"raphael.data.set.\" + this.id, this, value, key);\n return this;\n };\n /*\\\n * Element.removeData\n [ method ]\n **\n * Removes value associated with an element by given key.\n * If key is not provided, removes all the data of the element.\n > Parameters\n - key (string) #optional key\n = (object) @Element\n \\*/\n elproto.removeData = function (key) {\n if (key == null) {\n eldata[this.id] = {};\n } else {\n eldata[this.id] && delete eldata[this.id][key];\n }\n return this;\n };\n /*\\\n * Element.getData\n [ method ]\n **\n * Retrieves the element data\n = (object) data\n \\*/\n elproto.getData = function () {\n return clone(eldata[this.id] || {});\n };\n /*\\\n * Element.hover\n [ method ]\n **\n * Adds event handlers for hover for the element.\n > Parameters\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n - icontext (object) #optional context for hover in handler\n - ocontext (object) #optional context for hover out handler\n = (object) @Element\n \\*/\n elproto.hover = function (f_in, f_out, scope_in, scope_out) {\n return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\n };\n /*\\\n * Element.unhover\n [ method ]\n **\n * Removes event handlers for hover for the element.\n > Parameters\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n = (object) @Element\n \\*/\n elproto.unhover = function (f_in, f_out) {\n return this.unmouseover(f_in).unmouseout(f_out);\n };\n var draggable = [];\n /*\\\n * Element.drag\n [ method ]\n **\n * Adds event handlers for drag of the element.\n > Parameters\n - onmove (function) handler for moving\n - onstart (function) handler for drag start\n - onend (function) handler for drag end\n - mcontext (object) #optional context for moving handler\n - scontext (object) #optional context for drag start handler\n - econtext (object) #optional context for drag end handler\n * Additionaly following `drag` events will be triggered: `drag.start.<id>` on start, \n * `drag.end.<id>` on end and `drag.move.<id>` on every move. When element will be dragged over another element \n * `drag.over.<id>` will be fired as well.\n *\n * Start event and start handler will be called in specified context or in context of the element with following parameters:\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * Move event and move handler will be called in specified context or in context of the element with following parameters:\n o dx (number) shift by x from the start point\n o dy (number) shift by y from the start point\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * End event and end handler will be called in specified context or in context of the element with following parameters:\n o event (object) DOM event object\n = (object) @Element\n \\*/\n elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\n function start(e) {\n (e.originalEvent || e).preventDefault();\n var x = e.clientX,\n y = e.clientY,\n scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n this._drag.id = e.identifier;\n if (supportsTouch && e.touches) {\n var i = e.touches.length, touch;\n while (i--) {\n touch = e.touches[i];\n this._drag.id = touch.identifier;\n if (touch.identifier == this._drag.id) {\n x = touch.clientX;\n y = touch.clientY;\n break;\n }\n }\n }\n this._drag.x = x + scrollX;\n this._drag.y = y + scrollY;\n !drag.length && R.mousemove(dragMove).mouseup(dragUp);\n drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\n onstart && eve.on(\"raphael.drag.start.\" + this.id, onstart);\n onmove && eve.on(\"raphael.drag.move.\" + this.id, onmove);\n onend && eve.on(\"raphael.drag.end.\" + this.id, onend);\n eve(\"raphael.drag.start.\" + this.id, start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e);\n }\n this._drag = {};\n draggable.push({el: this, start: start});\n this.mousedown(start);\n return this;\n };\n /*\\\n * Element.onDragOver\n [ method ]\n **\n * Shortcut for assigning event handler for `drag.over.<id>` event, where id is id of the element (see @Element.id).\n > Parameters\n - f (function) handler for event, first argument would be the element you are dragging over\n \\*/\n elproto.onDragOver = function (f) {\n f ? eve.on(\"raphael.drag.over.\" + this.id, f) : eve.unbind(\"raphael.drag.over.\" + this.id);\n };\n /*\\\n * Element.undrag\n [ method ]\n **\n * Removes all drag event handlers from given element.\n \\*/\n elproto.undrag = function () {\n var i = draggable.length;\n while (i--) if (draggable[i].el == this) {\n this.unmousedown(draggable[i].start);\n draggable.splice(i, 1);\n eve.unbind(\"raphael.drag.*.\" + this.id);\n }\n !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp);\n drag = [];\n };\n /*\\\n * Paper.circle\n [ method ]\n **\n * Draws a circle.\n **\n > Parameters\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - r (number) radius\n = (object) Raphaël element object with type “circle”\n **\n > Usage\n | var c = paper.circle(50, 50, 40);\n \\*/\n paperproto.circle = function (x, y, r) {\n var out = R._engine.circle(this, x || 0, y || 0, r || 0);\n this.__set__ && this.__set__.push(out);\n return out;\n };\n /*\\\n * Paper.rect\n [ method ]\n *\n * Draws a rectangle.\n **\n > Parameters\n **\n - x (number) x coordinate of the top left corner\n - y (number) y coordinate of the top left corner\n - width (number) width\n - height (number) height\n - r (number) #optional radius for rounded corners, default is 0\n = (object) Raphaël element object with type “rect”\n **\n > Usage\n | // regular rectangle\n | var c = paper.rect(10, 10, 50, 50);\n | // rectangle with rounded corners\n | var c = paper.rect(40, 40, 50, 50, 10);\n \\*/\n paperproto.rect = function (x, y, w, h, r) {\n var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0);\n this.__set__ && this.__set__.push(out);\n return out;\n };\n /*\\\n * Paper.ellipse\n [ method ]\n **\n * Draws an ellipse.\n **\n > Parameters\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - rx (number) horizontal radius\n - ry (number) vertical radius\n = (object) Raphaël element object with type “ellipse”\n **\n > Usage\n | var c = paper.ellipse(50, 50, 40, 20);\n \\*/\n paperproto.ellipse = function (x, y, rx, ry) {\n var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0);\n this.__set__ && this.__set__.push(out);\n return out;\n };\n /*\\\n * Paper.path\n [ method ]\n **\n * Creates a path element by given path data string.\n > Parameters\n - pathString (string) #optional path string in SVG format.\n * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example:\n | \"M10,20L30,40\"\n * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative.\n *\n # <p>Here is short list of commands available, for more details see <a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" title=\"Details of a path's data attribute's format are described in the SVG specification.\">SVG path string format</a>.</p>\n # <table><thead><tr><th>Command</th><th>Name</th><th>Parameters</th></tr></thead><tbody>\n # <tr><td>M</td><td>moveto</td><td>(x y)+</td></tr>\n # <tr><td>Z</td><td>closepath</td><td>(none)</td></tr>\n # <tr><td>L</td><td>lineto</td><td>(x y)+</td></tr>\n # <tr><td>H</td><td>horizontal lineto</td><td>x+</td></tr>\n # <tr><td>V</td><td>vertical lineto</td><td>y+</td></tr>\n # <tr><td>C</td><td>curveto</td><td>(x1 y1 x2 y2 x y)+</td></tr>\n # <tr><td>S</td><td>smooth curveto</td><td>(x2 y2 x y)+</td></tr>\n # <tr><td>Q</td><td>quadratic Bézier curveto</td><td>(x1 y1 x y)+</td></tr>\n # <tr><td>T</td><td>smooth quadratic Bézier curveto</td><td>(x y)+</td></tr>\n # <tr><td>A</td><td>elliptical arc</td><td>(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+</td></tr>\n # <tr><td>R</td><td><a href=\"http://en.wikipedia.org/wiki/CatmullRom_spline#Catmull.E2.80.93Rom_spline\">Catmull-Rom curveto</a>*</td><td>x1 y1 (x y)+</td></tr></tbody></table>\n * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier.\n * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning.\n > Usage\n | var c = paper.path(\"M10 10L90 90\");\n | // draw a diagonal line:\n | // move to 10,10, line to 90,90\n * For example of path strings, check out these icons: http://raphaeljs.com/icons/\n \\*/\n paperproto.path = function (pathString) {\n pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E);\n var out = R._engine.path(R.format[apply](R, arguments), this);\n this.__set__ && this.__set__.push(out);\n return out;\n };\n /*\\\n * Paper.image\n [ method ]\n **\n * Embeds an image into the surface.\n **\n > Parameters\n **\n - src (string) URI of the source image\n - x (number) x coordinate position\n - y (number) y coordinate position\n - width (number) width of the image\n - height (number) height of the image\n = (object) Raphaël element object with type “image”\n **\n > Usage\n | var c = paper.image(\"apple.png\", 10, 10, 80, 80);\n \\*/\n paperproto.image = function (src, x, y, w, h) {\n var out = R._engine.image(this, src || \"about:blank\", x || 0, y || 0, w || 0, h || 0);\n this.__set__ && this.__set__.push(out);\n return out;\n };\n /*\\\n * Paper.text\n [ method ]\n **\n * Draws a text string. If you need line breaks, put “\\n” in the string.\n **\n > Parameters\n **\n - x (number) x coordinate position\n - y (number) y coordinate position\n - text (string) The text string to draw\n = (object) Raphaël element object with type “text”\n **\n > Usage\n | var t = paper.text(50, 50, \"Raphaël\\nkicks\\nbutt!\");\n \\*/\n paperproto.text = function (x, y, text) {\n var out = R._engine.text(this, x || 0, y || 0, Str(text));\n this.__set__ && this.__set__.push(out);\n return out;\n };\n /*\\\n * Paper.set\n [ method ]\n **\n * Creates array-like object to keep and operate several elements at once.\n * Warning: it doesnt create any elements for itself in the page, it just groups existing elements.\n * Sets act as pseudo elements — all methods available to an element can be used on a set.\n = (object) array-like object that represents set of elements\n **\n > Usage\n | var st = paper.set();\n | st.push(\n | paper.circle(10, 10, 5),\n | paper.circle(30, 10, 5)\n | );\n | st.attr({fill: \"red\"}); // changes the fill of both circles\n \\*/\n paperproto.set = function (itemsArray) {\n !R.is(itemsArray, \"array\") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length));\n var out = new Set(itemsArray);\n this.__set__ && this.__set__.push(out);\n out[\"paper\"] = this;\n out[\"type\"] = \"set\";\n return out;\n };\n /*\\\n * Paper.setStart\n [ method ]\n **\n * Creates @Paper.set. All elements that will be created after calling this method and before calling\n * @Paper.setFinish will be added to the set.\n **\n > Usage\n | paper.setStart();\n | paper.circle(10, 10, 5),\n | paper.circle(30, 10, 5)\n | var st = paper.setFinish();\n | st.attr({fill: \"red\"}); // changes the fill of both circles\n \\*/\n paperproto.setStart = function (set) {\n this.__set__ = set || this.set();\n };\n /*\\\n * Paper.setFinish\n [ method ]\n **\n * See @Paper.setStart. This method finishes catching and returns resulting set.\n **\n = (object) set\n \\*/\n paperproto.setFinish = function (set) {\n var out = this.__set__;\n delete this.__set__;\n return out;\n };\n /*\\\n * Paper.setSize\n [ method ]\n **\n * If you need to change dimensions of the canvas call this method\n **\n > Parameters\n **\n - width (number) new width of the canvas\n - height (number) new height of the canvas\n \\*/\n paperproto.setSize = function (width, height) {\n return R._engine.setSize.call(this, width, height);\n };\n /*\\\n * Paper.setViewBox\n [ method ]\n **\n * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by \n * specifying new boundaries.\n **\n > Parameters\n **\n - x (number) new x position, default is `0`\n - y (number) new y position, default is `0`\n - w (number) new width of the canvas\n - h (number) new height of the canvas\n - fit (boolean) `true` if you want graphics to fit into new boundary box\n \\*/\n paperproto.setViewBox = function (x, y, w, h, fit) {\n return R._engine.setViewBox.call(this, x, y, w, h, fit);\n };\n /*\\\n * Paper.top\n [ property ]\n **\n * Points to the topmost element on the paper\n \\*/\n /*\\\n * Paper.bottom\n [ property ]\n **\n * Points to the bottom element on the paper\n \\*/\n paperproto.top = paperproto.bottom = null;\n /*\\\n * Paper.raphael\n [ property ]\n **\n * Points to the @Raphael object/function\n \\*/\n paperproto.raphael = R;\n var getOffset = function (elem) {\n var box = elem.getBoundingClientRect(),\n doc = elem.ownerDocument,\n body = doc.body,\n docElem = doc.documentElement,\n clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\n top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\n left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\n return {\n y: top,\n x: left\n };\n };\n /*\\\n * Paper.getElementByPoint\n [ method ]\n **\n * Returns you topmost element under given point.\n **\n = (object) Raphaël element object\n > Parameters\n **\n - x (number) x coordinate from the top left corner of the window\n - y (number) y coordinate from the top left corner of the window\n > Usage\n | paper.getElementByPoint(mouseX, mouseY).attr({stroke: \"#f00\"});\n \\*/\n paperproto.getElementByPoint = function (x, y) {\n var paper = this,\n svg = paper.canvas,\n target = g.doc.elementFromPoint(x, y);\n if (g.win.opera && target.tagName == \"svg\") {\n var so = getOffset(svg),\n sr = svg.createSVGRect();\n sr.x = x - so.x;\n sr.y = y - so.y;\n sr.width = sr.height = 1;\n var hits = svg.getIntersectionList(sr, null);\n if (hits.length) {\n target = hits[hits.length - 1];\n }\n }\n if (!target) {\n return null;\n }\n while (target.parentNode && target != svg.parentNode && !target.raphael) {\n target = target.parentNode;\n }\n target == paper.canvas.parentNode && (target = svg);\n target = target && target.raphael ? paper.getById(target.raphaelid) : null;\n return target;\n };\n\n /*\\\n * Paper.getElementsByBBox\n [ method ]\n **\n * Returns set of elements that have an intersecting bounding box\n **\n > Parameters\n **\n - bbox (object) bbox to check with\n = (object) @Set\n \\*/\n paperproto.getElementsByBBox = function (bbox) {\n var set = this.set();\n this.forEach(function (el) {\n if (R.isBBoxIntersect(el.getBBox(), bbox)) {\n set.push(el);\n }\n });\n return set;\n };\n\n /*\\\n * Paper.getById\n [ method ]\n **\n * Returns you element by its internal ID.\n **\n > Parameters\n **\n - id (number) id\n = (object) Raphaël element object\n \\*/\n paperproto.getById = function (id) {\n var bot = this.bottom;\n while (bot) {\n if (bot.id == id) {\n return bot;\n }\n bot = bot.next;\n }\n return null;\n };\n /*\\\n * Paper.forEach\n [ method ]\n **\n * Executes given function for each element on the paper\n *\n * If callback function returns `false` it will stop loop running.\n **\n > Parameters\n **\n - callback (function) function to run\n - thisArg (object) context object for the callback\n = (object) Paper object\n > Usage\n | paper.forEach(function (el) {\n | el.attr({ stroke: \"blue\" });\n | });\n \\*/\n paperproto.forEach = function (callback, thisArg) {\n var bot = this.bottom;\n while (bot) {\n if (callback.call(thisArg, bot) === false) {\n return this;\n }\n bot = bot.next;\n }\n return this;\n };\n /*\\\n * Paper.getElementsByPoint\n [ method ]\n **\n * Returns set of elements that have common point inside\n **\n > Parameters\n **\n - x (number) x coordinate of the point\n - y (number) y coordinate of the point\n = (object) @Set\n \\*/\n paperproto.getElementsByPoint = function (x, y) {\n var set = this.set();\n this.forEach(function (el) {\n if (el.isPointInside(x, y)) {\n set.push(el);\n }\n });\n return set;\n };\n function x_y() {\n return this.x + S + this.y;\n }\n function x_y_w_h() {\n return this.x + S + this.y + S + this.width + \" \\xd7 \" + this.height;\n }\n /*\\\n * Element.isPointInside\n [ method ]\n **\n * Determine if given point is inside this elements shape\n **\n > Parameters\n **\n - x (number) x coordinate of the point\n - y (number) y coordinate of the point\n = (boolean) `true` if point inside the shape\n \\*/\n elproto.isPointInside = function (x, y) {\n var rp = this.realPath = getPath[this.type](this);\n if (this.attr('transform') && this.attr('transform').length) {\n rp = R.transformPath(rp, this.attr('transform'));\n }\n return R.isPointInsidePath(rp, x, y);\n };\n /*\\\n * Element.getBBox\n [ method ]\n **\n * Return bounding box for a given element\n **\n > Parameters\n **\n - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`.\n = (object) Bounding box object:\n o {\n o x: (number) top left corner x\n o y: (number) top left corner y\n o x2: (number) bottom right corner x\n o y2: (number) bottom right corner y\n o width: (number) width\n o height: (number) height\n o }\n \\*/\n elproto.getBBox = function (isWithoutTransform) {\n if (this.removed) {\n return {};\n }\n var _ = this._;\n if (isWithoutTransform) {\n if (_.dirty || !_.bboxwt) {\n this.realPath = getPath[this.type](this);\n _.bboxwt = pathDimensions(this.realPath);\n _.bboxwt.toString = x_y_w_h;\n _.dirty = 0;\n }\n return _.bboxwt;\n }\n if (_.dirty || _.dirtyT || !_.bbox) {\n if (_.dirty || !this.realPath) {\n _.bboxwt = 0;\n this.realPath = getPath[this.type](this);\n }\n _.bbox = pathDimensions(mapPath(this.realPath, this.matrix));\n _.bbox.toString = x_y_w_h;\n _.dirty = _.dirtyT = 0;\n }\n return _.bbox;\n };\n /*\\\n * Element.clone\n [ method ]\n **\n = (object) clone of a given element\n **\n \\*/\n elproto.clone = function () {\n if (this.removed) {\n return null;\n }\n var out = this.paper[this.type]().attr(this.attr());\n this.__set__ && this.__set__.push(out);\n return out;\n };\n /*\\\n * Element.glow\n [ method ]\n **\n * Return set of elements that create glow-like effect around given element. See @Paper.set.\n *\n * Note: Glow is not connected to the element. If you change element attributes it wont adjust itself.\n **\n > Parameters\n **\n - glow (object) #optional parameters object with all properties optional:\n o {\n o width (number) size of the glow, default is `10`\n o fill (boolean) will it be filled, default is `false`\n o opacity (number) opacity, default is `0.5`\n o offsetx (number) horizontal offset, default is `0`\n o offsety (number) vertical offset, default is `0`\n o color (string) glow colour, default is `black`\n o }\n = (object) @Paper.set of elements that represents glow\n \\*/\n elproto.glow = function (glow) {\n if (this.type == \"text\") {\n return null;\n }\n glow = glow || {};\n var s = {\n width: (glow.width || 10) + (+this.attr(\"stroke-width\") || 1),\n fill: glow.fill || false,\n opacity: glow.opacity || .5,\n offsetx: glow.offsetx || 0,\n offsety: glow.offsety || 0,\n color: glow.color || \"#000\"\n },\n c = s.width / 2,\n r = this.paper,\n out = r.set(),\n path = this.realPath || getPath[this.type](this);\n path = this.matrix ? mapPath(path, this.matrix) : path;\n for (var i = 1; i < c + 1; i++) {\n out.push(r.path(path).attr({\n stroke: s.color,\n fill: s.fill ? s.color : \"none\",\n \"stroke-linejoin\": \"round\",\n \"stroke-linecap\": \"round\",\n \"stroke-width\": +(s.width / c * i).toFixed(3),\n opacity: +(s.opacity / c).toFixed(3)\n }));\n }\n return out.insertBefore(this).translate(s.offsetx, s.offsety);\n };\n var curveslengths = {},\n getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\n if (length == null) {\n return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\n } else {\n return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\n }\n },\n getLengthFactory = function (istotal, subpath) {\n return function (path, length, onlystart) {\n path = path2curve(path);\n var x, y, p, l, sp = \"\", subpaths = {}, point,\n len = 0;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = +p[1];\n y = +p[2];\n } else {\n l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n if (len + l > length) {\n if (subpath && !subpaths.start) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n sp += [\"C\" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y];\n if (onlystart) {return sp;}\n subpaths.start = sp;\n sp = [\"M\" + point.x, point.y + \"C\" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join();\n len += l;\n x = +p[5];\n y = +p[6];\n continue;\n }\n if (!istotal && !subpath) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n return {x: point.x, y: point.y, alpha: point.alpha};\n }\n }\n len += l;\n x = +p[5];\n y = +p[6];\n }\n sp += p.shift() + p;\n }\n subpaths.end = sp;\n point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\n point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha});\n return point;\n };\n };\n var getTotalLength = getLengthFactory(1),\n getPointAtLength = getLengthFactory(),\n getSubpathsAtLength = getLengthFactory(0, 1);\n /*\\\n * Raphael.getTotalLength\n [ method ]\n **\n * Returns length of the given path in pixels.\n **\n > Parameters\n **\n - path (string) SVG path string.\n **\n = (number) length.\n \\*/\n R.getTotalLength = getTotalLength;\n /*\\\n * Raphael.getPointAtLength\n [ method ]\n **\n * Return coordinates of the point located at the given length on the given path.\n **\n > Parameters\n **\n - path (string) SVG path string\n - length (number)\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate\n o y: (number) y coordinate\n o alpha: (number) angle of derivative\n o }\n \\*/\n R.getPointAtLength = getPointAtLength;\n /*\\\n * Raphael.getSubpath\n [ method ]\n **\n * Return subpath of a given path from given length to given length.\n **\n > Parameters\n **\n - path (string) SVG path string\n - from (number) position of the start of the segment\n - to (number) position of the end of the segment\n **\n = (string) pathstring for the segment\n \\*/\n R.getSubpath = function (path, from, to) {\n if (this.getTotalLength(path) - to < 1e-6) {\n return getSubpathsAtLength(path, from).end;\n }\n var a = getSubpathsAtLength(path, to, 1);\n return from ? getSubpathsAtLength(a, from).end : a;\n };\n /*\\\n * Element.getTotalLength\n [ method ]\n **\n * Returns length of the path in pixels. Only works for element of “path” type.\n = (number) length.\n \\*/\n elproto.getTotalLength = function () {\n var path = this.getPath();\n if (!path) {\n return;\n }\n\n if (this.node.getTotalLength) {\n return this.node.getTotalLength();\n }\n\n return getTotalLength(path);\n };\n /*\\\n * Element.getPointAtLength\n [ method ]\n **\n * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type.\n **\n > Parameters\n **\n - length (number)\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate\n o y: (number) y coordinate\n o alpha: (number) angle of derivative\n o }\n \\*/\n elproto.getPointAtLength = function (length) {\n var path = this.getPath();\n if (!path) {\n return;\n }\n\n return getPointAtLength(path, length);\n };\n /*\\\n * Element.getPath\n [ method ]\n **\n * Returns path of the element. Only works for elements of “path” type and simple elements like circle.\n = (object) path\n **\n \\*/\n elproto.getPath = function () {\n var path,\n getPath = R._getPath[this.type];\n \n if (this.type == \"text\" || this.type == \"set\") {\n return;\n }\n\n if (getPath) {\n path = getPath(this);\n }\n\n return path;\n };\n /*\\\n * Element.getSubpath\n [ method ]\n **\n * Return subpath of a given element from given length to given length. Only works for element of “path” type.\n **\n > Parameters\n **\n - from (number) position of the start of the segment\n - to (number) position of the end of the segment\n **\n = (string) pathstring for the segment\n \\*/\n elproto.getSubpath = function (from, to) {\n var path = this.getPath();\n if (!path) {\n return;\n }\n\n return R.getSubpath(path, from, to);\n };\n /*\\\n * Raphael.easing_formulas\n [ property ]\n **\n * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing:\n # <ul>\n # <li>“linear”</li>\n # <li>“&lt;” or “easeIn” or “ease-in”</li>\n # <li>“>” or “easeOut” or “ease-out”</li>\n # <li>“&lt;>” or “easeInOut” or “ease-in-out”</li>\n # <li>“backIn” or “back-in”</li>\n # <li>“backOut” or “back-out”</li>\n # <li>“elastic”</li>\n # <li>“bounce”</li>\n # </ul>\n # <p>See also <a href=\"http://raphaeljs.com/easing.html\">Easing demo</a>.</p>\n \\*/\n var ef = R.easing_formulas = {\n linear: function (n) {\n return n;\n },\n \"<\": function (n) {\n return pow(n, 1.7);\n },\n \">\": function (n) {\n return pow(n, .48);\n },\n \"<>\": function (n) {\n var q = .48 - n / 1.04,\n Q = math.sqrt(.1734 + q * q),\n x = Q - q,\n X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1),\n y = -Q - q,\n Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1),\n t = X + Y + .5;\n return (1 - t) * 3 * t * t + t * t * t;\n },\n backIn: function (n) {\n var s = 1.70158;\n return n * n * ((s + 1) * n - s);\n },\n backOut: function (n) {\n n = n - 1;\n var s = 1.70158;\n return n * n * ((s + 1) * n + s) + 1;\n },\n elastic: function (n) {\n if (n == !!n) {\n return n;\n }\n return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1;\n },\n bounce: function (n) {\n var s = 7.5625,\n p = 2.75,\n l;\n if (n < (1 / p)) {\n l = s * n * n;\n } else {\n if (n < (2 / p)) {\n n -= (1.5 / p);\n l = s * n * n + .75;\n } else {\n if (n < (2.5 / p)) {\n n -= (2.25 / p);\n l = s * n * n + .9375;\n } else {\n n -= (2.625 / p);\n l = s * n * n + .984375;\n }\n }\n }\n return l;\n }\n };\n ef.easeIn = ef[\"ease-in\"] = ef[\"<\"];\n ef.easeOut = ef[\"ease-out\"] = ef[\">\"];\n ef.easeInOut = ef[\"ease-in-out\"] = ef[\"<>\"];\n ef[\"back-in\"] = ef.backIn;\n ef[\"back-out\"] = ef.backOut;\n\n var animationElements = [],\n requestAnimFrame = window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function (callback) {\n setTimeout(callback, 16);\n },\n animation = function () {\n var Now = +new Date,\n l = 0;\n for (; l < animationElements.length; l++) {\n var e = animationElements[l];\n if (e.el.removed || e.paused) {\n continue;\n }\n var time = Now - e.start,\n ms = e.ms,\n easing = e.easing,\n from = e.from,\n diff = e.diff,\n to = e.to,\n t = e.t,\n that = e.el,\n set = {},\n now,\n init = {},\n key;\n if (e.initstatus) {\n time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms;\n e.status = e.initstatus;\n delete e.initstatus;\n e.stop && animationElements.splice(l--, 1);\n } else {\n e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top;\n }\n if (time < 0) {\n continue;\n }\n if (time < ms) {\n var pos = easing(time / ms);\n for (var attr in from) if (from[has](attr)) {\n switch (availableAnimAttrs[attr]) {\n case nu:\n now = +from[attr] + pos * ms * diff[attr];\n break;\n case \"colour\":\n now = \"rgb(\" + [\n upto255(round(from[attr].r + pos * ms * diff[attr].r)),\n upto255(round(from[attr].g + pos * ms * diff[attr].g)),\n upto255(round(from[attr].b + pos * ms * diff[attr].b))\n ].join(\",\") + \")\";\n break;\n case \"path\":\n now = [];\n for (var i = 0, ii = from[attr].length; i < ii; i++) {\n now[i] = [from[attr][i][0]];\n for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j];\n }\n now[i] = now[i].join(S);\n }\n now = now.join(S);\n break;\n case \"transform\":\n if (diff[attr].real) {\n now = [];\n for (i = 0, ii = from[attr].length; i < ii; i++) {\n now[i] = [from[attr][i][0]];\n for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j];\n }\n }\n } else {\n var get = function (i) {\n return +from[attr][i] + pos * ms * diff[attr][i];\n };\n // now = [[\"r\", get(2), 0, 0], [\"t\", get(3), get(4)], [\"s\", get(0), get(1), 0, 0]];\n now = [[\"m\", get(0), get(1), get(2), get(3), get(4), get(5)]];\n }\n break;\n case \"csv\":\n if (attr == \"clip-rect\") {\n now = [];\n i = 4;\n while (i--) {\n now[i] = +from[attr][i] + pos * ms * diff[attr][i];\n }\n }\n break;\n default:\n var from2 = [][concat](from[attr]);\n now = [];\n i = that.paper.customAttributes[attr].length;\n while (i--) {\n now[i] = +from2[i] + pos * ms * diff[attr][i];\n }\n break;\n }\n set[attr] = now;\n }\n that.attr(set);\n (function (id, that, anim) {\n setTimeout(function () {\n eve(\"raphael.anim.frame.\" + id, that, anim);\n });\n })(that.id, that, e.anim);\n } else {\n (function(f, el, a) {\n setTimeout(function() {\n eve(\"raphael.anim.frame.\" + el.id, el, a);\n eve(\"raphael.anim.finish.\" + el.id, el, a);\n R.is(f, \"function\") && f.call(el);\n });\n })(e.callback, that, e.anim);\n that.attr(to);\n animationElements.splice(l--, 1);\n if (e.repeat > 1 && !e.next) {\n for (key in to) if (to[has](key)) {\n init[key] = e.totalOrigin[key];\n }\n e.el.attr(init);\n runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1);\n }\n if (e.next && !e.stop) {\n runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat);\n }\n }\n }\n R.svg && that && that.paper && that.paper.safari();\n animationElements.length && requestAnimFrame(animation);\n },\n upto255 = function (color) {\n return color > 255 ? 255 : color < 0 ? 0 : color;\n };\n /*\\\n * Element.animateWith\n [ method ]\n **\n * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element.\n **\n > Parameters\n **\n - el (object) element to sync with\n - anim (object) animation to sync with\n - params (object) #optional final attributes for the element, see also @Element.attr\n - ms (number) #optional number of milliseconds for animation to run\n - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n - callback (function) #optional callback function. Will be called at the end of animation.\n * or\n - element (object) element to sync with\n - anim (object) animation to sync with\n - animation (object) #optional animation object, see @Raphael.animation\n **\n = (object) original element\n \\*/\n elproto.animateWith = function (el, anim, params, ms, easing, callback) {\n var element = this;\n if (element.removed) {\n callback && callback.call(element);\n return element;\n }\n var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback),\n x, y;\n runAnimation(a, element, a.percents[0], null, element.attr());\n for (var i = 0, ii = animationElements.length; i < ii; i++) {\n if (animationElements[i].anim == anim && animationElements[i].el == el) {\n animationElements[ii - 1].start = animationElements[i].start;\n break;\n }\n }\n return element;\n // \n // \n // var a = params ? R.animation(params, ms, easing, callback) : anim,\n // status = element.status(anim);\n // return this.animate(a).status(a, status * anim.ms / a.ms);\n };\n function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {\n var cx = 3 * p1x,\n bx = 3 * (p2x - p1x) - cx,\n ax = 1 - cx - bx,\n cy = 3 * p1y,\n by = 3 * (p2y - p1y) - cy,\n ay = 1 - cy - by;\n function sampleCurveX(t) {\n return ((ax * t + bx) * t + cx) * t;\n }\n function solve(x, epsilon) {\n var t = solveCurveX(x, epsilon);\n return ((ay * t + by) * t + cy) * t;\n }\n function solveCurveX(x, epsilon) {\n var t0, t1, t2, x2, d2, i;\n for(t2 = x, i = 0; i < 8; i++) {\n x2 = sampleCurveX(t2) - x;\n if (abs(x2) < epsilon) {\n return t2;\n }\n d2 = (3 * ax * t2 + 2 * bx) * t2 + cx;\n if (abs(d2) < 1e-6) {\n break;\n }\n t2 = t2 - x2 / d2;\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0) {\n return t0;\n }\n if (t2 > t1) {\n return t1;\n }\n while (t0 < t1) {\n x2 = sampleCurveX(t2);\n if (abs(x2 - x) < epsilon) {\n return t2;\n }\n if (x > x2) {\n t0 = t2;\n } else {\n t1 = t2;\n }\n t2 = (t1 - t0) / 2 + t0;\n }\n return t2;\n }\n return solve(t, 1 / (200 * duration));\n }\n elproto.onAnimation = function (f) {\n f ? eve.on(\"raphael.anim.frame.\" + this.id, f) : eve.unbind(\"raphael.anim.frame.\" + this.id);\n return this;\n };\n function Animation(anim, ms) {\n var percents = [],\n newAnim = {};\n this.ms = ms;\n this.times = 1;\n if (anim) {\n for (var attr in anim) if (anim[has](attr)) {\n newAnim[toFloat(attr)] = anim[attr];\n percents.push(toFloat(attr));\n }\n percents.sort(sortByNumber);\n }\n this.anim = newAnim;\n this.top = percents[percents.length - 1];\n this.percents = percents;\n }\n /*\\\n * Animation.delay\n [ method ]\n **\n * Creates a copy of existing animation object with given delay.\n **\n > Parameters\n **\n - delay (number) number of ms to pass between animation start and actual animation\n **\n = (object) new altered Animation object\n | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3);\n | circle1.animate(anim); // run the given animation immediately\n | circle2.animate(anim.delay(500)); // run the given animation after 500 ms\n \\*/\n Animation.prototype.delay = function (delay) {\n var a = new Animation(this.anim, this.ms);\n a.times = this.times;\n a.del = +delay || 0;\n return a;\n };\n /*\\\n * Animation.repeat\n [ method ]\n **\n * Creates a copy of existing animation object with given repetition.\n **\n > Parameters\n **\n - repeat (number) number iterations of animation. For infinite animation pass `Infinity`\n **\n = (object) new altered Animation object\n \\*/\n Animation.prototype.repeat = function (times) {\n var a = new Animation(this.anim, this.ms);\n a.del = this.del;\n a.times = math.floor(mmax(times, 0)) || 1;\n return a;\n };\n function runAnimation(anim, element, percent, status, totalOrigin, times) {\n percent = toFloat(percent);\n var params,\n isInAnim,\n isInAnimSet,\n percents = [],\n next,\n prev,\n timestamp,\n ms = anim.ms,\n from = {},\n to = {},\n diff = {};\n if (status) {\n for (i = 0, ii = animationElements.length; i < ii; i++) {\n var e = animationElements[i];\n if (e.el.id == element.id && e.anim == anim) {\n if (e.percent != percent) {\n animationElements.splice(i, 1);\n isInAnimSet = 1;\n } else {\n isInAnim = e;\n }\n element.attr(e.totalOrigin);\n break;\n }\n }\n } else {\n status = +to; // NaN\n }\n for (var i = 0, ii = anim.percents.length; i < ii; i++) {\n if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) {\n percent = anim.percents[i];\n prev = anim.percents[i - 1] || 0;\n ms = ms / anim.top * (percent - prev);\n next = anim.percents[i + 1];\n params = anim.anim[percent];\n break;\n } else if (status) {\n element.attr(anim.anim[anim.percents[i]]);\n }\n }\n if (!params) {\n return;\n }\n if (!isInAnim) {\n for (var attr in params) if (params[has](attr)) {\n if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) {\n from[attr] = element.attr(attr);\n (from[attr] == null) && (from[attr] = availableAttrs[attr]);\n to[attr] = params[attr];\n switch (availableAnimAttrs[attr]) {\n case nu:\n diff[attr] = (to[attr] - from[attr]) / ms;\n break;\n case \"colour\":\n from[attr] = R.getRGB(from[attr]);\n var toColour = R.getRGB(to[attr]);\n diff[attr] = {\n r: (toColour.r - from[attr].r) / ms,\n g: (toColour.g - from[attr].g) / ms,\n b: (toColour.b - from[attr].b) / ms\n };\n break;\n case \"path\":\n var pathes = path2curve(from[attr], to[attr]),\n toPath = pathes[1];\n from[attr] = pathes[0];\n diff[attr] = [];\n for (i = 0, ii = from[attr].length; i < ii; i++) {\n diff[attr][i] = [0];\n for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms;\n }\n }\n break;\n case \"transform\":\n var _ = element._,\n eq = equaliseTransform(_[attr], to[attr]);\n if (eq) {\n from[attr] = eq.from;\n to[attr] = eq.to;\n diff[attr] = [];\n diff[attr].real = true;\n for (i = 0, ii = from[attr].length; i < ii; i++) {\n diff[attr][i] = [from[attr][i][0]];\n for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms;\n }\n }\n } else {\n var m = (element.matrix || new Matrix),\n to2 = {\n _: {transform: _.transform},\n getBBox: function () {\n return element.getBBox(1);\n }\n };\n from[attr] = [\n m.a,\n m.b,\n m.c,\n m.d,\n m.e,\n m.f\n ];\n extractTransform(to2, to[attr]);\n to[attr] = to2._.transform;\n diff[attr] = [\n (to2.matrix.a - m.a) / ms,\n (to2.matrix.b - m.b) / ms,\n (to2.matrix.c - m.c) / ms,\n (to2.matrix.d - m.d) / ms,\n (to2.matrix.e - m.e) / ms,\n (to2.matrix.f - m.f) / ms\n ];\n // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy];\n // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }};\n // extractTransform(to2, to[attr]);\n // diff[attr] = [\n // (to2._.sx - _.sx) / ms,\n // (to2._.sy - _.sy) / ms,\n // (to2._.deg - _.deg) / ms,\n // (to2._.dx - _.dx) / ms,\n // (to2._.dy - _.dy) / ms\n // ];\n }\n break;\n case \"csv\":\n var values = Str(params[attr])[split](separator),\n from2 = Str(from[attr])[split](separator);\n if (attr == \"clip-rect\") {\n from[attr] = from2;\n diff[attr] = [];\n i = from2.length;\n while (i--) {\n diff[attr][i] = (values[i] - from[attr][i]) / ms;\n }\n }\n to[attr] = values;\n break;\n default:\n values = [][concat](params[attr]);\n from2 = [][concat](from[attr]);\n diff[attr] = [];\n i = element.paper.customAttributes[attr].length;\n while (i--) {\n diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms;\n }\n break;\n }\n }\n }\n var easing = params.easing,\n easyeasy = R.easing_formulas[easing];\n if (!easyeasy) {\n easyeasy = Str(easing).match(bezierrg);\n if (easyeasy && easyeasy.length == 5) {\n var curve = easyeasy;\n easyeasy = function (t) {\n return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms);\n };\n } else {\n easyeasy = pipe;\n }\n }\n timestamp = params.start || anim.start || +new Date;\n e = {\n anim: anim,\n percent: percent,\n timestamp: timestamp,\n start: timestamp + (anim.del || 0),\n status: 0,\n initstatus: status || 0,\n stop: false,\n ms: ms,\n easing: easyeasy,\n from: from,\n diff: diff,\n to: to,\n el: element,\n callback: params.callback,\n prev: prev,\n next: next,\n repeat: times || anim.times,\n origin: element.attr(),\n totalOrigin: totalOrigin\n };\n animationElements.push(e);\n if (status && !isInAnim && !isInAnimSet) {\n e.stop = true;\n e.start = new Date - ms * status;\n if (animationElements.length == 1) {\n return animation();\n }\n }\n if (isInAnimSet) {\n e.start = new Date - e.ms * status;\n }\n animationElements.length == 1 && requestAnimFrame(animation);\n } else {\n isInAnim.initstatus = status;\n isInAnim.start = new Date - isInAnim.ms * status;\n }\n eve(\"raphael.anim.start.\" + element.id, element, anim);\n }\n /*\\\n * Raphael.animation\n [ method ]\n **\n * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods.\n * See also @Animation.delay and @Animation.repeat methods.\n **\n > Parameters\n **\n - params (object) final attributes for the element, see also @Element.attr\n - ms (number) number of milliseconds for animation to run\n - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n - callback (function) #optional callback function. Will be called at the end of animation.\n **\n = (object) @Animation\n \\*/\n R.animation = function (params, ms, easing, callback) {\n if (params instanceof Animation) {\n return params;\n }\n if (R.is(easing, \"function\") || !easing) {\n callback = callback || easing || null;\n easing = null;\n }\n params = Object(params);\n ms = +ms || 0;\n var p = {},\n json,\n attr;\n for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + \"%\" != attr) {\n json = true;\n p[attr] = params[attr];\n }\n if (!json) {\n return new Animation(params, ms);\n } else {\n easing && (p.easing = easing);\n callback && (p.callback = callback);\n return new Animation({100: p}, ms);\n }\n };\n /*\\\n * Element.animate\n [ method ]\n **\n * Creates and starts animation for given element.\n **\n > Parameters\n **\n - params (object) final attributes for the element, see also @Element.attr\n - ms (number) number of milliseconds for animation to run\n - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n - callback (function) #optional callback function. Will be called at the end of animation.\n * or\n - animation (object) animation object, see @Raphael.animation\n **\n = (object) original element\n \\*/\n elproto.animate = function (params, ms, easing, callback) {\n var element = this;\n if (element.removed) {\n callback && callback.call(element);\n return element;\n }\n var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback);\n runAnimation(anim, element, anim.percents[0], null, element.attr());\n return element;\n };\n /*\\\n * Element.setTime\n [ method ]\n **\n * Sets the status of animation of the element in milliseconds. Similar to @Element.status method.\n **\n > Parameters\n **\n - anim (object) animation object\n - value (number) number of milliseconds from the beginning of the animation\n **\n = (object) original element if `value` is specified\n * Note, that during animation following events are triggered:\n *\n * On each animation frame event `anim.frame.<id>`, on start `anim.start.<id>` and on end `anim.finish.<id>`.\n \\*/\n elproto.setTime = function (anim, value) {\n if (anim && value != null) {\n this.status(anim, mmin(value, anim.ms) / anim.ms);\n }\n return this;\n };\n /*\\\n * Element.status\n [ method ]\n **\n * Gets or sets the status of animation of the element.\n **\n > Parameters\n **\n - anim (object) #optional animation object\n - value (number) #optional 0 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position.\n **\n = (number) status\n * or\n = (array) status if `anim` is not specified. Array of objects in format:\n o {\n o anim: (object) animation object\n o status: (number) status\n o }\n * or\n = (object) original element if `value` is specified\n \\*/\n elproto.status = function (anim, value) {\n var out = [],\n i = 0,\n len,\n e;\n if (value != null) {\n runAnimation(anim, this, -1, mmin(value, 1));\n return this;\n } else {\n len = animationElements.length;\n for (; i < len; i++) {\n e = animationElements[i];\n if (e.el.id == this.id && (!anim || e.anim == anim)) {\n if (anim) {\n return e.status;\n }\n out.push({\n anim: e.anim,\n status: e.status\n });\n }\n }\n if (anim) {\n return 0;\n }\n return out;\n }\n };\n /*\\\n * Element.pause\n [ method ]\n **\n * Stops animation of the element with ability to resume it later on.\n **\n > Parameters\n **\n - anim (object) #optional animation object\n **\n = (object) original element\n \\*/\n elproto.pause = function (anim) {\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n if (eve(\"raphael.anim.pause.\" + this.id, this, animationElements[i].anim) !== false) {\n animationElements[i].paused = true;\n }\n }\n return this;\n };\n /*\\\n * Element.resume\n [ method ]\n **\n * Resumes animation if it was paused with @Element.pause method.\n **\n > Parameters\n **\n - anim (object) #optional animation object\n **\n = (object) original element\n \\*/\n elproto.resume = function (anim) {\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n var e = animationElements[i];\n if (eve(\"raphael.anim.resume.\" + this.id, this, e.anim) !== false) {\n delete e.paused;\n this.status(e.anim, e.status);\n }\n }\n return this;\n };\n /*\\\n * Element.stop\n [ method ]\n **\n * Stops animation of the element.\n **\n > Parameters\n **\n - anim (object) #optional animation object\n **\n = (object) original element\n \\*/\n elproto.stop = function (anim) {\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n if (eve(\"raphael.anim.stop.\" + this.id, this, animationElements[i].anim) !== false) {\n animationElements.splice(i--, 1);\n }\n }\n return this;\n };\n function stopAnimation(paper) {\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) {\n animationElements.splice(i--, 1);\n }\n }\n eve.on(\"raphael.remove\", stopAnimation);\n eve.on(\"raphael.clear\", stopAnimation);\n elproto.toString = function () {\n return \"Rapha\\xebl\\u2019s object\";\n };\n\n // Set\n var Set = function (items) {\n this.items = [];\n this.length = 0;\n this.type = \"set\";\n if (items) {\n for (var i = 0, ii = items.length; i < ii; i++) {\n if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) {\n this[this.items.length] = this.items[this.items.length] = items[i];\n this.length++;\n }\n }\n }\n },\n setproto = Set.prototype;\n /*\\\n * Set.push\n [ method ]\n **\n * Adds each argument to the current set.\n = (object) original element\n \\*/\n setproto.push = function () {\n var item,\n len;\n for (var i = 0, ii = arguments.length; i < ii; i++) {\n item = arguments[i];\n if (item && (item.constructor == elproto.constructor || item.constructor == Set)) {\n len = this.items.length;\n this[len] = this.items[len] = item;\n this.length++;\n }\n }\n return this;\n };\n /*\\\n * Set.pop\n [ method ]\n **\n * Removes last element and returns it.\n = (object) element\n \\*/\n setproto.pop = function () {\n this.length && delete this[this.length--];\n return this.items.pop();\n };\n /*\\\n * Set.forEach\n [ method ]\n **\n * Executes given function for each element in the set.\n *\n * If function returns `false` it will stop loop running.\n **\n > Parameters\n **\n - callback (function) function to run\n - thisArg (object) context object for the callback\n = (object) Set object\n \\*/\n setproto.forEach = function (callback, thisArg) {\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n if (callback.call(thisArg, this.items[i], i) === false) {\n return this;\n }\n }\n return this;\n };\n for (var method in elproto) if (elproto[has](method)) {\n setproto[method] = (function (methodname) {\n return function () {\n var arg = arguments;\n return this.forEach(function (el) {\n el[methodname][apply](el, arg);\n });\n };\n })(method);\n }\n setproto.attr = function (name, value) {\n if (name && R.is(name, array) && R.is(name[0], \"object\")) {\n for (var j = 0, jj = name.length; j < jj; j++) {\n this.items[j].attr(name[j]);\n }\n } else {\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n this.items[i].attr(name, value);\n }\n }\n return this;\n };\n /*\\\n * Set.clear\n [ method ]\n **\n * Removeds all elements from the set\n \\*/\n setproto.clear = function () {\n while (this.length) {\n this.pop();\n }\n };\n /*\\\n * Set.splice\n [ method ]\n **\n * Removes given element from the set\n **\n > Parameters\n **\n - index (number) position of the deletion\n - count (number) number of element to remove\n - insertion… (object) #optional elements to insert\n = (object) set elements that were deleted\n \\*/\n setproto.splice = function (index, count, insertion) {\n index = index < 0 ? mmax(this.length + index, 0) : index;\n count = mmax(0, mmin(this.length - index, count));\n var tail = [],\n todel = [],\n args = [],\n i;\n for (i = 2; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n for (i = 0; i < count; i++) {\n todel.push(this[index + i]);\n }\n for (; i < this.length - index; i++) {\n tail.push(this[index + i]);\n }\n var arglen = args.length;\n for (i = 0; i < arglen + tail.length; i++) {\n this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\n }\n i = this.items.length = this.length -= count - arglen;\n while (this[i]) {\n delete this[i++];\n }\n return new Set(todel);\n };\n /*\\\n * Set.exclude\n [ method ]\n **\n * Removes given element from the set\n **\n > Parameters\n **\n - element (object) element to remove\n = (boolean) `true` if object was found & removed from the set\n \\*/\n setproto.exclude = function (el) {\n for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\n this.splice(i, 1);\n return true;\n }\n };\n setproto.animate = function (params, ms, easing, callback) {\n (R.is(easing, \"function\") || !easing) && (callback = easing || null);\n var len = this.items.length,\n i = len,\n item,\n set = this,\n collector;\n if (!len) {\n return this;\n }\n callback && (collector = function () {\n !--len && callback.call(set);\n });\n easing = R.is(easing, string) ? easing : collector;\n var anim = R.animation(params, ms, easing, collector);\n item = this.items[--i].animate(anim);\n while (i--) {\n this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim);\n (this.items[i] && !this.items[i].removed) || len--;\n }\n return this;\n };\n setproto.insertAfter = function (el) {\n var i = this.items.length;\n while (i--) {\n this.items[i].insertAfter(el);\n }\n return this;\n };\n setproto.getBBox = function () {\n var x = [],\n y = [],\n x2 = [],\n y2 = [];\n for (var i = this.items.length; i--;) if (!this.items[i].removed) {\n var box = this.items[i].getBBox();\n x.push(box.x);\n y.push(box.y);\n x2.push(box.x + box.width);\n y2.push(box.y + box.height);\n }\n x = mmin[apply](0, x);\n y = mmin[apply](0, y);\n x2 = mmax[apply](0, x2);\n y2 = mmax[apply](0, y2);\n return {\n x: x,\n y: y,\n x2: x2,\n y2: y2,\n width: x2 - x,\n height: y2 - y\n };\n };\n setproto.clone = function (s) {\n s = this.paper.set();\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n s.push(this.items[i].clone());\n }\n return s;\n };\n setproto.toString = function () {\n return \"Rapha\\xebl\\u2018s set\";\n };\n\n setproto.glow = function(glowConfig) {\n var ret = this.paper.set();\n this.forEach(function(shape, index){\n var g = shape.glow(glowConfig);\n if(g != null){\n g.forEach(function(shape2, index2){\n ret.push(shape2);\n });\n }\n });\n return ret;\n };\n\n\n /*\\\n * Set.isPointInside\n [ method ]\n **\n * Determine if given point is inside this sets elements\n **\n > Parameters\n **\n - x (number) x coordinate of the point\n - y (number) y coordinate of the point\n = (boolean) `true` if point is inside any of the set's elements\n \\*/\n setproto.isPointInside = function (x, y) {\n var isPointInside = false;\n this.forEach(function (el) {\n if (el.isPointInside(x, y)) {\n isPointInside = true;\n return false; // stop loop\n }\n });\n return isPointInside;\n };\n\n /*\\\n * Raphael.registerFont\n [ method ]\n **\n * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufóns font file.\n * Returns original parameter, so it could be used with chaining.\n # <a href=\"http://wiki.github.com/sorccu/cufon/about\">More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.</a>\n **\n > Parameters\n **\n - font (object) the font to register\n = (object) the font you passed in\n > Usage\n | Cufon.registerFont(Raphael.registerFont({…}));\n \\*/\n R.registerFont = function (font) {\n if (!font.face) {\n return font;\n }\n this.fonts = this.fonts || {};\n var fontcopy = {\n w: font.w,\n face: {},\n glyphs: {}\n },\n family = font.face[\"font-family\"];\n for (var prop in font.face) if (font.face[has](prop)) {\n fontcopy.face[prop] = font.face[prop];\n }\n if (this.fonts[family]) {\n this.fonts[family].push(fontcopy);\n } else {\n this.fonts[family] = [fontcopy];\n }\n if (!font.svg) {\n fontcopy.face[\"units-per-em\"] = toInt(font.face[\"units-per-em\"], 10);\n for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) {\n var path = font.glyphs[glyph];\n fontcopy.glyphs[glyph] = {\n w: path.w,\n k: {},\n d: path.d && \"M\" + path.d.replace(/[mlcxtrv]/g, function (command) {\n return {l: \"L\", c: \"C\", x: \"z\", t: \"m\", r: \"l\", v: \"c\"}[command] || \"M\";\n }) + \"z\"\n };\n if (path.k) {\n for (var k in path.k) if (path[has](k)) {\n fontcopy.glyphs[glyph].k[k] = path.k[k];\n }\n }\n }\n }\n return font;\n };\n /*\\\n * Paper.getFont\n [ method ]\n **\n * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”.\n **\n > Parameters\n **\n - family (string) font family name or any word from it\n - weight (string) #optional font weight\n - style (string) #optional font style\n - stretch (string) #optional font stretch\n = (object) the font object\n > Usage\n | paper.print(100, 100, \"Test string\", paper.getFont(\"Times\", 800), 30);\n \\*/\n paperproto.getFont = function (family, weight, style, stretch) {\n stretch = stretch || \"normal\";\n style = style || \"normal\";\n weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400;\n if (!R.fonts) {\n return;\n }\n var font = R.fonts[family];\n if (!font) {\n var name = new RegExp(\"(^|\\\\s)\" + family.replace(/[^\\w\\d\\s+!~.:_-]/g, E) + \"(\\\\s|$)\", \"i\");\n for (var fontName in R.fonts) if (R.fonts[has](fontName)) {\n if (name.test(fontName)) {\n font = R.fonts[fontName];\n break;\n }\n }\n }\n var thefont;\n if (font) {\n for (var i = 0, ii = font.length; i < ii; i++) {\n thefont = font[i];\n if (thefont.face[\"font-weight\"] == weight && (thefont.face[\"font-style\"] == style || !thefont.face[\"font-style\"]) && thefont.face[\"font-stretch\"] == stretch) {\n break;\n }\n }\n }\n return thefont;\n };\n /*\\\n * Paper.print\n [ method ]\n **\n * Creates path that represent given text written using given font at given position with given size.\n * Result of the method is path element that contains whole text as a separate path.\n **\n > Parameters\n **\n - x (number) x position of the text\n - y (number) y position of the text\n - string (string) text to print\n - font (object) font object, see @Paper.getFont\n - size (number) #optional size of the font, default is `16`\n - origin (string) #optional could be `\"baseline\"` or `\"middle\"`, default is `\"middle\"`\n - letter_spacing (number) #optional number in range `-1..1`, default is `0`\n - line_spacing (number) #optional number in range `1..3`, default is `1`\n = (object) resulting path element, which consist of all letters\n > Usage\n | var txt = r.print(10, 50, \"print\", r.getFont(\"Museo\"), 30).attr({fill: \"#fff\"});\n \\*/\n paperproto.print = function (x, y, string, font, size, origin, letter_spacing, line_spacing) {\n origin = origin || \"middle\"; // baseline|middle\n letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1);\n line_spacing = mmax(mmin(line_spacing || 1, 3), 1);\n var letters = Str(string)[split](E),\n shift = 0,\n notfirst = 0,\n path = E,\n scale;\n R.is(font, \"string\") && (font = this.getFont(font));\n if (font) {\n scale = (size || 16) / font.face[\"units-per-em\"];\n var bb = font.face.bbox[split](separator),\n top = +bb[0],\n lineHeight = bb[3] - bb[1],\n shifty = 0,\n height = +bb[1] + (origin == \"baseline\" ? lineHeight + (+font.face.descent) : lineHeight / 2);\n for (var i = 0, ii = letters.length; i < ii; i++) {\n if (letters[i] == \"\\n\") {\n shift = 0;\n curr = 0;\n notfirst = 0;\n shifty += lineHeight * line_spacing;\n } else {\n var prev = notfirst && font.glyphs[letters[i - 1]] || {},\n curr = font.glyphs[letters[i]];\n shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0;\n notfirst = 1;\n }\n if (curr && curr.d) {\n path += R.transformPath(curr.d, [\"t\", shift * scale, shifty * scale, \"s\", scale, scale, top, height, \"t\", (x - top) / scale, (y - height) / scale]);\n }\n }\n }\n return this.path(path).attr({\n fill: \"#000\",\n stroke: \"none\"\n });\n };\n\n /*\\\n * Paper.add\n [ method ]\n **\n * Imports elements in JSON array in format `{type: type, <attributes>}`\n **\n > Parameters\n **\n - json (array)\n = (object) resulting set of imported elements\n > Usage\n | paper.add([\n | {\n | type: \"circle\",\n | cx: 10,\n | cy: 10,\n | r: 5\n | },\n | {\n | type: \"rect\",\n | x: 10,\n | y: 10,\n | width: 10,\n | height: 10,\n | fill: \"#fc0\"\n | }\n | ]);\n \\*/\n paperproto.add = function (json) {\n if (R.is(json, \"array\")) {\n var res = this.set(),\n i = 0,\n ii = json.length,\n j;\n for (; i < ii; i++) {\n j = json[i] || {};\n elements[has](j.type) && res.push(this[j.type]().attr(j));\n }\n }\n return res;\n };\n\n /*\\\n * Raphael.format\n [ method ]\n **\n * Simple format function. Replaces construction of type “`{<number>}`” to the corresponding argument.\n **\n > Parameters\n **\n - token (string) string to format\n - … (string) rest of arguments will be treated as parameters for replacement\n = (string) formated string\n > Usage\n | var x = 10,\n | y = 20,\n | width = 40,\n | height = 50;\n | // this will draw a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n | paper.path(Raphael.format(\"M{0},{1}h{2}v{3}h{4}z\", x, y, width, height, -width));\n \\*/\n R.format = function (token, params) {\n var args = R.is(params, array) ? [0][concat](params) : arguments;\n token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) {\n return args[++i] == null ? E : args[i];\n }));\n return token || E;\n };\n /*\\\n * Raphael.fullfill\n [ method ]\n **\n * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{<name>}`” to the corresponding argument.\n **\n > Parameters\n **\n - token (string) string to format\n - json (object) object which properties will be used as a replacement\n = (string) formated string\n > Usage\n | // this will draw a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n | paper.path(Raphael.fullfill(\"M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z\", {\n | x: 10,\n | y: 20,\n | dim: {\n | width: 40,\n | height: 50,\n | \"negative width\": -40\n | }\n | }));\n \\*/\n R.fullfill = (function () {\n var tokenRegex = /\\{([^\\}]+)\\}/g,\n objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g, // matches .xxxxx or [\"xxxxx\"] to run over object properties\n replacer = function (all, key, obj) {\n var res = obj;\n key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\n name = name || quotedName;\n if (res) {\n if (name in res) {\n res = res[name];\n }\n typeof res == \"function\" && isFunc && (res = res());\n }\n });\n res = (res == null || res == obj ? all : res) + \"\";\n return res;\n };\n return function (str, obj) {\n return String(str).replace(tokenRegex, function (all, key) {\n return replacer(all, key, obj);\n });\n };\n })();\n /*\\\n * Raphael.ninja\n [ method ]\n **\n * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method.\n * Beware, that in this case plugins could stop working, because they are depending on global variable existance.\n **\n = (object) Raphael object\n > Usage\n | (function (local_raphael) {\n | var paper = local_raphael(10, 10, 320, 200);\n | …\n | })(Raphael.ninja());\n \\*/\n R.ninja = function () {\n oldRaphael.was ? (g.win.Raphael = oldRaphael.is) : delete Raphael;\n return R;\n };\n /*\\\n * Raphael.st\n [ property (object) ]\n **\n * You can add your own method to elements and sets. It is wise to add a set method for each element method\n * you added, so you will be able to call the same method on sets too.\n **\n * See also @Raphael.el.\n > Usage\n | Raphael.el.red = function () {\n | this.attr({fill: \"#f00\"});\n | };\n | Raphael.st.red = function () {\n | this.forEach(function (el) {\n | el.red();\n | });\n | };\n | // then use it\n | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red();\n \\*/\n R.st = setproto;\n // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html\n (function (doc, loaded, f) {\n if (doc.readyState == null && doc.addEventListener){\n doc.addEventListener(loaded, f = function () {\n doc.removeEventListener(loaded, f, false);\n doc.readyState = \"complete\";\n }, false);\n doc.readyState = \"loading\";\n }\n function isLoaded() {\n (/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve(\"raphael.DOMload\");\n }\n isLoaded();\n })(document, \"DOMContentLoaded\");\n\n eve.on(\"raphael.DOMload\", function () {\n loaded = true;\n });\n\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël - JavaScript Vector Library │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ SVG Module │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function(){\n if (!R.svg) {\n return;\n }\n var has = \"hasOwnProperty\",\n Str = String,\n toFloat = parseFloat,\n toInt = parseInt,\n math = Math,\n mmax = math.max,\n abs = math.abs,\n pow = math.pow,\n separator = /[, ]+/,\n eve = R.eve,\n E = \"\",\n S = \" \";\n var xlink = \"http://www.w3.org/1999/xlink\",\n markers = {\n block: \"M5,0 0,2.5 5,5z\",\n classic: \"M5,0 0,2.5 5,5 3.5,3 3.5,2z\",\n diamond: \"M2.5,0 5,2.5 2.5,5 0,2.5z\",\n open: \"M6,1 1,3.5 6,6\",\n oval: \"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z\"\n },\n markerCounter = {};\n R.toString = function () {\n return \"Your browser supports SVG.\\nYou are running Rapha\\xebl \" + this.version;\n };\n var $ = function (el, attr) {\n if (attr) {\n if (typeof el == \"string\") {\n el = $(el);\n }\n for (var key in attr) if (attr[has](key)) {\n if (key.substring(0, 6) == \"xlink:\") {\n el.setAttributeNS(xlink, key.substring(6), Str(attr[key]));\n } else {\n el.setAttribute(key, Str(attr[key]));\n }\n }\n } else {\n el = R._g.doc.createElementNS(\"http://www.w3.org/2000/svg\", el);\n el.style && (el.style.webkitTapHighlightColor = \"rgba(0,0,0,0)\");\n }\n return el;\n },\n addGradientFill = function (element, gradient) {\n var type = \"linear\",\n id = element.id + gradient,\n fx = .5, fy = .5,\n o = element.node,\n SVG = element.paper,\n s = o.style,\n el = R._g.doc.getElementById(id);\n if (!el) {\n gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) {\n type = \"radial\";\n if (_fx && _fy) {\n fx = toFloat(_fx);\n fy = toFloat(_fy);\n var dir = ((fy > .5) * 2 - 1);\n pow(fx - .5, 2) + pow(fy - .5, 2) > .25 &&\n (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) &&\n fy != .5 &&\n (fy = fy.toFixed(5) - 1e-5 * dir);\n }\n return E;\n });\n gradient = gradient.split(/\\s*\\-\\s*/);\n if (type == \"linear\") {\n var angle = gradient.shift();\n angle = -toFloat(angle);\n if (isNaN(angle)) {\n return null;\n }\n var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))],\n max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1);\n vector[2] *= max;\n vector[3] *= max;\n if (vector[2] < 0) {\n vector[0] = -vector[2];\n vector[2] = 0;\n }\n if (vector[3] < 0) {\n vector[1] = -vector[3];\n vector[3] = 0;\n }\n }\n var dots = R._parseDots(gradient);\n if (!dots) {\n return null;\n }\n id = id.replace(/[\\(\\)\\s,\\xb0#]/g, \"_\");\n \n if (element.gradient && id != element.gradient.id) {\n SVG.defs.removeChild(element.gradient);\n delete element.gradient;\n }\n\n if (!element.gradient) {\n el = $(type + \"Gradient\", {id: id});\n element.gradient = el;\n $(el, type == \"radial\" ? {\n fx: fx,\n fy: fy\n } : {\n x1: vector[0],\n y1: vector[1],\n x2: vector[2],\n y2: vector[3],\n gradientTransform: element.matrix.invert()\n });\n SVG.defs.appendChild(el);\n for (var i = 0, ii = dots.length; i < ii; i++) {\n el.appendChild($(\"stop\", {\n offset: dots[i].offset ? dots[i].offset : i ? \"100%\" : \"0%\",\n \"stop-color\": dots[i].color || \"#fff\"\n }));\n }\n }\n }\n $(o, {\n fill: \"url(#\" + id + \")\",\n opacity: 1,\n \"fill-opacity\": 1\n });\n s.fill = E;\n s.opacity = 1;\n s.fillOpacity = 1;\n return 1;\n },\n updatePosition = function (o) {\n var bbox = o.getBBox(1);\n $(o.pattern, {patternTransform: o.matrix.invert() + \" translate(\" + bbox.x + \",\" + bbox.y + \")\"});\n },\n addArrow = function (o, value, isEnd) {\n if (o.type == \"path\") {\n var values = Str(value).toLowerCase().split(\"-\"),\n p = o.paper,\n se = isEnd ? \"end\" : \"start\",\n node = o.node,\n attrs = o.attrs,\n stroke = attrs[\"stroke-width\"],\n i = values.length,\n type = \"classic\",\n from,\n to,\n dx,\n refX,\n attr,\n w = 3,\n h = 3,\n t = 5;\n while (i--) {\n switch (values[i]) {\n case \"block\":\n case \"classic\":\n case \"oval\":\n case \"diamond\":\n case \"open\":\n case \"none\":\n type = values[i];\n break;\n case \"wide\": h = 5; break;\n case \"narrow\": h = 2; break;\n case \"long\": w = 5; break;\n case \"short\": w = 2; break;\n }\n }\n if (type == \"open\") {\n w += 2;\n h += 2;\n t += 2;\n dx = 1;\n refX = isEnd ? 4 : 1;\n attr = {\n fill: \"none\",\n stroke: attrs.stroke\n };\n } else {\n refX = dx = w / 2;\n attr = {\n fill: attrs.stroke,\n stroke: \"none\"\n };\n }\n if (o._.arrows) {\n if (isEnd) {\n o._.arrows.endPath && markerCounter[o._.arrows.endPath]--;\n o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--;\n } else {\n o._.arrows.startPath && markerCounter[o._.arrows.startPath]--;\n o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--;\n }\n } else {\n o._.arrows = {};\n }\n if (type != \"none\") {\n var pathId = \"raphael-marker-\" + type,\n markerId = \"raphael-marker-\" + se + type + w + h;\n if (!R._g.doc.getElementById(pathId)) {\n p.defs.appendChild($($(\"path\"), {\n \"stroke-linecap\": \"round\",\n d: markers[type],\n id: pathId\n }));\n markerCounter[pathId] = 1;\n } else {\n markerCounter[pathId]++;\n }\n var marker = R._g.doc.getElementById(markerId),\n use;\n if (!marker) {\n marker = $($(\"marker\"), {\n id: markerId,\n markerHeight: h,\n markerWidth: w,\n orient: \"auto\",\n refX: refX,\n refY: h / 2\n });\n use = $($(\"use\"), {\n \"xlink:href\": \"#\" + pathId,\n transform: (isEnd ? \"rotate(180 \" + w / 2 + \" \" + h / 2 + \") \" : E) + \"scale(\" + w / t + \",\" + h / t + \")\",\n \"stroke-width\": (1 / ((w / t + h / t) / 2)).toFixed(4)\n });\n marker.appendChild(use);\n p.defs.appendChild(marker);\n markerCounter[markerId] = 1;\n } else {\n markerCounter[markerId]++;\n use = marker.getElementsByTagName(\"use\")[0];\n }\n $(use, attr);\n var delta = dx * (type != \"diamond\" && type != \"oval\");\n if (isEnd) {\n from = o._.arrows.startdx * stroke || 0;\n to = R.getTotalLength(attrs.path) - delta * stroke;\n } else {\n from = delta * stroke;\n to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n }\n attr = {};\n attr[\"marker-\" + se] = \"url(#\" + markerId + \")\";\n if (to || from) {\n attr.d = R.getSubpath(attrs.path, from, to);\n }\n $(node, attr);\n o._.arrows[se + \"Path\"] = pathId;\n o._.arrows[se + \"Marker\"] = markerId;\n o._.arrows[se + \"dx\"] = delta;\n o._.arrows[se + \"Type\"] = type;\n o._.arrows[se + \"String\"] = value;\n } else {\n if (isEnd) {\n from = o._.arrows.startdx * stroke || 0;\n to = R.getTotalLength(attrs.path) - from;\n } else {\n from = 0;\n to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n }\n o._.arrows[se + \"Path\"] && $(node, {d: R.getSubpath(attrs.path, from, to)});\n delete o._.arrows[se + \"Path\"];\n delete o._.arrows[se + \"Marker\"];\n delete o._.arrows[se + \"dx\"];\n delete o._.arrows[se + \"Type\"];\n delete o._.arrows[se + \"String\"];\n }\n for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) {\n var item = R._g.doc.getElementById(attr);\n item && item.parentNode.removeChild(item);\n }\n }\n },\n dasharray = {\n \"\": [0],\n \"none\": [0],\n \"-\": [3, 1],\n \".\": [1, 1],\n \"-.\": [3, 1, 1, 1],\n \"-..\": [3, 1, 1, 1, 1, 1],\n \". \": [1, 3],\n \"- \": [4, 3],\n \"--\": [8, 3],\n \"- .\": [4, 3, 1, 3],\n \"--.\": [8, 3, 1, 3],\n \"--..\": [8, 3, 1, 3, 1, 3]\n },\n addDashes = function (o, value, params) {\n value = dasharray[Str(value).toLowerCase()];\n if (value) {\n var width = o.attrs[\"stroke-width\"] || \"1\",\n butt = {round: width, square: width, butt: 0}[o.attrs[\"stroke-linecap\"] || params[\"stroke-linecap\"]] || 0,\n dashes = [],\n i = value.length;\n while (i--) {\n dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt;\n }\n $(o.node, {\"stroke-dasharray\": dashes.join(\",\")});\n }\n },\n setFillAndStroke = function (o, params) {\n var node = o.node,\n attrs = o.attrs,\n vis = node.style.visibility;\n node.style.visibility = \"hidden\";\n for (var att in params) {\n if (params[has](att)) {\n if (!R._availableAttrs[has](att)) {\n continue;\n }\n var value = params[att];\n attrs[att] = value;\n switch (att) {\n case \"blur\":\n o.blur(value);\n break;\n case \"title\":\n var title = node.getElementsByTagName(\"title\");\n\n // Use the existing <title>.\n if (title.length && (title = title[0])) {\n title.firstChild.nodeValue = value;\n } else {\n title = $(\"title\");\n var val = R._g.doc.createTextNode(value);\n title.appendChild(val);\n node.appendChild(title);\n }\n break;\n case \"href\":\n case \"target\":\n var pn = node.parentNode;\n if (pn.tagName.toLowerCase() != \"a\") {\n var hl = $(\"a\");\n pn.insertBefore(hl, node);\n hl.appendChild(node);\n pn = hl;\n }\n if (att == \"target\") {\n pn.setAttributeNS(xlink, \"show\", value == \"blank\" ? \"new\" : value);\n } else {\n pn.setAttributeNS(xlink, att, value);\n }\n break;\n case \"cursor\":\n node.style.cursor = value;\n break;\n case \"transform\":\n o.transform(value);\n break;\n case \"arrow-start\":\n addArrow(o, value);\n break;\n case \"arrow-end\":\n addArrow(o, value, 1);\n break;\n case \"clip-rect\":\n var rect = Str(value).split(separator);\n if (rect.length == 4) {\n o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode);\n var el = $(\"clipPath\"),\n rc = $(\"rect\");\n el.id = R.createUUID();\n $(rc, {\n x: rect[0],\n y: rect[1],\n width: rect[2],\n height: rect[3]\n });\n el.appendChild(rc);\n o.paper.defs.appendChild(el);\n $(node, {\"clip-path\": \"url(#\" + el.id + \")\"});\n o.clip = rc;\n }\n if (!value) {\n var path = node.getAttribute(\"clip-path\");\n if (path) {\n var clip = R._g.doc.getElementById(path.replace(/(^url\\(#|\\)$)/g, E));\n clip && clip.parentNode.removeChild(clip);\n $(node, {\"clip-path\": E});\n delete o.clip;\n }\n }\n break;\n case \"path\":\n if (o.type == \"path\") {\n $(node, {d: value ? attrs.path = R._pathToAbsolute(value) : \"M0,0\"});\n o._.dirty = 1;\n if (o._.arrows) {\n \"startString\" in o._.arrows && addArrow(o, o._.arrows.startString);\n \"endString\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n }\n }\n break;\n case \"width\":\n node.setAttribute(att, value);\n o._.dirty = 1;\n if (attrs.fx) {\n att = \"x\";\n value = attrs.x;\n } else {\n break;\n }\n case \"x\":\n if (attrs.fx) {\n value = -attrs.x - (attrs.width || 0);\n }\n case \"rx\":\n if (att == \"rx\" && o.type == \"rect\") {\n break;\n }\n case \"cx\":\n node.setAttribute(att, value);\n o.pattern && updatePosition(o);\n o._.dirty = 1;\n break;\n case \"height\":\n node.setAttribute(att, value);\n o._.dirty = 1;\n if (attrs.fy) {\n att = \"y\";\n value = attrs.y;\n } else {\n break;\n }\n case \"y\":\n if (attrs.fy) {\n value = -attrs.y - (attrs.height || 0);\n }\n case \"ry\":\n if (att == \"ry\" && o.type == \"rect\") {\n break;\n }\n case \"cy\":\n node.setAttribute(att, value);\n o.pattern && updatePosition(o);\n o._.dirty = 1;\n break;\n case \"r\":\n if (o.type == \"rect\") {\n $(node, {rx: value, ry: value});\n } else {\n node.setAttribute(att, value);\n }\n o._.dirty = 1;\n break;\n case \"src\":\n if (o.type == \"image\") {\n node.setAttributeNS(xlink, \"href\", value);\n }\n break;\n case \"stroke-width\":\n if (o._.sx != 1 || o._.sy != 1) {\n value /= mmax(abs(o._.sx), abs(o._.sy)) || 1;\n }\n if (o.paper._vbSize) {\n value *= o.paper._vbSize;\n }\n node.setAttribute(att, value);\n if (attrs[\"stroke-dasharray\"]) {\n addDashes(o, attrs[\"stroke-dasharray\"], params);\n }\n if (o._.arrows) {\n \"startString\" in o._.arrows && addArrow(o, o._.arrows.startString);\n \"endString\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n }\n break;\n case \"stroke-dasharray\":\n addDashes(o, value, params);\n break;\n case \"fill\":\n var isURL = Str(value).match(R._ISURL);\n if (isURL) {\n el = $(\"pattern\");\n var ig = $(\"image\");\n el.id = R.createUUID();\n $(el, {x: 0, y: 0, patternUnits: \"userSpaceOnUse\", height: 1, width: 1});\n $(ig, {x: 0, y: 0, \"xlink:href\": isURL[1]});\n el.appendChild(ig);\n\n (function (el) {\n R._preload(isURL[1], function () {\n var w = this.offsetWidth,\n h = this.offsetHeight;\n $(el, {width: w, height: h});\n $(ig, {width: w, height: h});\n o.paper.safari();\n });\n })(el);\n o.paper.defs.appendChild(el);\n $(node, {fill: \"url(#\" + el.id + \")\"});\n o.pattern = el;\n o.pattern && updatePosition(o);\n break;\n }\n var clr = R.getRGB(value);\n if (!clr.error) {\n delete params.gradient;\n delete attrs.gradient;\n !R.is(attrs.opacity, \"undefined\") &&\n R.is(params.opacity, \"undefined\") &&\n $(node, {opacity: attrs.opacity});\n !R.is(attrs[\"fill-opacity\"], \"undefined\") &&\n R.is(params[\"fill-opacity\"], \"undefined\") &&\n $(node, {\"fill-opacity\": attrs[\"fill-opacity\"]});\n } else if ((o.type == \"circle\" || o.type == \"ellipse\" || Str(value).charAt() != \"r\") && addGradientFill(o, value)) {\n if (\"opacity\" in attrs || \"fill-opacity\" in attrs) {\n var gradient = R._g.doc.getElementById(node.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g, E));\n if (gradient) {\n var stops = gradient.getElementsByTagName(\"stop\");\n $(stops[stops.length - 1], {\"stop-opacity\": (\"opacity\" in attrs ? attrs.opacity : 1) * (\"fill-opacity\" in attrs ? attrs[\"fill-opacity\"] : 1)});\n }\n }\n attrs.gradient = value;\n attrs.fill = \"none\";\n break;\n }\n clr[has](\"opacity\") && $(node, {\"fill-opacity\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\n case \"stroke\":\n clr = R.getRGB(value);\n node.setAttribute(att, clr.hex);\n att == \"stroke\" && clr[has](\"opacity\") && $(node, {\"stroke-opacity\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\n if (att == \"stroke\" && o._.arrows) {\n \"startString\" in o._.arrows && addArrow(o, o._.arrows.startString);\n \"endString\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n }\n break;\n case \"gradient\":\n (o.type == \"circle\" || o.type == \"ellipse\" || Str(value).charAt() != \"r\") && addGradientFill(o, value);\n break;\n case \"opacity\":\n if (attrs.gradient && !attrs[has](\"stroke-opacity\")) {\n $(node, {\"stroke-opacity\": value > 1 ? value / 100 : value});\n }\n // fall\n case \"fill-opacity\":\n if (attrs.gradient) {\n gradient = R._g.doc.getElementById(node.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g, E));\n if (gradient) {\n stops = gradient.getElementsByTagName(\"stop\");\n $(stops[stops.length - 1], {\"stop-opacity\": value});\n }\n break;\n }\n default:\n att == \"font-size\" && (value = toInt(value, 10) + \"px\");\n var cssrule = att.replace(/(\\-.)/g, function (w) {\n return w.substring(1).toUpperCase();\n });\n node.style[cssrule] = value;\n o._.dirty = 1;\n node.setAttribute(att, value);\n break;\n }\n }\n }\n\n tuneText(o, params);\n node.style.visibility = vis;\n },\n leading = 1.2,\n tuneText = function (el, params) {\n if (el.type != \"text\" || !(params[has](\"text\") || params[has](\"font\") || params[has](\"font-size\") || params[has](\"x\") || params[has](\"y\"))) {\n return;\n }\n var a = el.attrs,\n node = el.node,\n computedStyle = node.firstChild ? R._g.doc.defaultView.getComputedStyle(node.firstChild, E) : undefined,\n fontSize = computedStyle ? toInt(computedStyle.getPropertyValue(\"font-size\"), 10) : 10;\n \n\n if (params[has](\"text\")) {\n a.text = params.text;\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n var texts = Str(params.text).split(\"\\n\"),\n tspans = [],\n tspan;\n for (var i = 0, ii = texts.length; i < ii; i++) {\n tspan = $(\"tspan\");\n i && $(tspan, {dy: fontSize * leading, x: a.x});\n tspan.appendChild(R._g.doc.createTextNode(texts[i]));\n node.appendChild(tspan);\n tspans[i] = tspan;\n }\n } else {\n tspans = node.getElementsByTagName(\"tspan\");\n for (i = 0, ii = tspans.length; i < ii; i++) if (i) {\n $(tspans[i], {dy: fontSize * leading, x: a.x});\n } else {\n $(tspans[0], {dy: 0});\n }\n }\n $(node, {x: a.x, y: a.y});\n el._.dirty = 1;\n var bb = el._getBBox(),\n dif = a.y - (bb.y + bb.height / 2);\n dif && R.is(dif, \"finite\") && $(tspans[0], {dy: dif});\n },\n Element = function (node, svg) {\n var X = 0,\n Y = 0;\n /*\\\n * Element.node\n [ property (object) ]\n **\n * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\n **\n * Note: Dont mess with it.\n > Usage\n | // draw a circle at coordinate 10,10 with radius of 10\n | var c = paper.circle(10, 10, 10);\n | c.node.onclick = function () {\n | c.attr(\"fill\", \"red\");\n | };\n \\*/\n this[0] = this.node = node;\n /*\\\n * Element.raphael\n [ property (object) ]\n **\n * Internal reference to @Raphael object. In case it is not available.\n > Usage\n | Raphael.el.red = function () {\n | var hsb = this.paper.raphael.rgb2hsb(this.attr(\"fill\"));\n | hsb.h = 1;\n | this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex});\n | }\n \\*/\n node.raphael = true;\n /*\\\n * Element.id\n [ property (number) ]\n **\n * Unique id of the element. Especially usesful when you want to listen to events of the element, \n * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method.\n \\*/\n this.id = R._oid++;\n node.raphaelid = this.id;\n this.matrix = R.matrix();\n this.realPath = null;\n /*\\\n * Element.paper\n [ property (object) ]\n **\n * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions.\n > Usage\n | Raphael.el.cross = function () {\n | this.attr({fill: \"red\"});\n | this.paper.path(\"M10,10L50,50M50,10L10,50\")\n | .attr({stroke: \"red\"});\n | }\n \\*/\n this.paper = svg;\n this.attrs = this.attrs || {};\n this._ = {\n transform: [],\n sx: 1,\n sy: 1,\n deg: 0,\n dx: 0,\n dy: 0,\n dirty: 1\n };\n !svg.bottom && (svg.bottom = this);\n /*\\\n * Element.prev\n [ property (object) ]\n **\n * Reference to the previous element in the hierarchy.\n \\*/\n this.prev = svg.top;\n svg.top && (svg.top.next = this);\n svg.top = this;\n /*\\\n * Element.next\n [ property (object) ]\n **\n * Reference to the next element in the hierarchy.\n \\*/\n this.next = null;\n },\n elproto = R.el;\n\n Element.prototype = elproto;\n elproto.constructor = Element;\n\n R._engine.path = function (pathString, SVG) {\n var el = $(\"path\");\n SVG.canvas && SVG.canvas.appendChild(el);\n var p = new Element(el, SVG);\n p.type = \"path\";\n setFillAndStroke(p, {\n fill: \"none\",\n stroke: \"#000\",\n path: pathString\n });\n return p;\n };\n /*\\\n * Element.rotate\n [ method ]\n **\n * Deprecated! Use @Element.transform instead.\n * Adds rotation by given angle around given point to the list of\n * transformations of the element.\n > Parameters\n - deg (number) angle in degrees\n - cx (number) #optional x coordinate of the centre of rotation\n - cy (number) #optional y coordinate of the centre of rotation\n * If cx & cy arent specified centre of the shape is used as a point of rotation.\n = (object) @Element\n \\*/\n elproto.rotate = function (deg, cx, cy) {\n if (this.removed) {\n return this;\n }\n deg = Str(deg).split(separator);\n if (deg.length - 1) {\n cx = toFloat(deg[1]);\n cy = toFloat(deg[2]);\n }\n deg = toFloat(deg[0]);\n (cy == null) && (cx = cy);\n if (cx == null || cy == null) {\n var bbox = this.getBBox(1);\n cx = bbox.x + bbox.width / 2;\n cy = bbox.y + bbox.height / 2;\n }\n this.transform(this._.transform.concat([[\"r\", deg, cx, cy]]));\n return this;\n };\n /*\\\n * Element.scale\n [ method ]\n **\n * Deprecated! Use @Element.transform instead.\n * Adds scale by given amount relative to given point to the list of\n * transformations of the element.\n > Parameters\n - sx (number) horisontal scale amount\n - sy (number) vertical scale amount\n - cx (number) #optional x coordinate of the centre of scale\n - cy (number) #optional y coordinate of the centre of scale\n * If cx & cy arent specified centre of the shape is used instead.\n = (object) @Element\n \\*/\n elproto.scale = function (sx, sy, cx, cy) {\n if (this.removed) {\n return this;\n }\n sx = Str(sx).split(separator);\n if (sx.length - 1) {\n sy = toFloat(sx[1]);\n cx = toFloat(sx[2]);\n cy = toFloat(sx[3]);\n }\n sx = toFloat(sx[0]);\n (sy == null) && (sy = sx);\n (cy == null) && (cx = cy);\n if (cx == null || cy == null) {\n var bbox = this.getBBox(1);\n }\n cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n this.transform(this._.transform.concat([[\"s\", sx, sy, cx, cy]]));\n return this;\n };\n /*\\\n * Element.translate\n [ method ]\n **\n * Deprecated! Use @Element.transform instead.\n * Adds translation by given amount to the list of transformations of the element.\n > Parameters\n - dx (number) horisontal shift\n - dy (number) vertical shift\n = (object) @Element\n \\*/\n elproto.translate = function (dx, dy) {\n if (this.removed) {\n return this;\n }\n dx = Str(dx).split(separator);\n if (dx.length - 1) {\n dy = toFloat(dx[1]);\n }\n dx = toFloat(dx[0]) || 0;\n dy = +dy || 0;\n this.transform(this._.transform.concat([[\"t\", dx, dy]]));\n return this;\n };\n /*\\\n * Element.transform\n [ method ]\n **\n * Adds transformation to the element which is separate to other attributes,\n * i.e. translation doesnt change `x` or `y` of the rectange. The format\n * of transformation string is similar to the path string syntax:\n | \"t100,100r30,100,100s2,2,100,100r45s1.5\"\n * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for\n * scale and `m` is for matrix.\n *\n * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`.\n *\n * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100;\n * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin\n * coordinates as optional parameters, the default is the centre point of the element.\n * Matrix accepts six parameters.\n > Usage\n | var el = paper.rect(10, 20, 300, 200);\n | // translate 100, 100, rotate 45°, translate -100, 0\n | el.transform(\"t100,100r45t-100,0\");\n | // if you want you can append or prepend transformations\n | el.transform(\"...t50,50\");\n | el.transform(\"s2...\");\n | // or even wrap\n | el.transform(\"t50,50...t-50-50\");\n | // to reset transformation call method with empty string\n | el.transform(\"\");\n | // to get current value call it without parameters\n | console.log(el.transform());\n > Parameters\n - tstr (string) #optional transformation string\n * If tstr isnt specified\n = (string) current transformation string\n * else\n = (object) @Element\n \\*/\n elproto.transform = function (tstr) {\n var _ = this._;\n if (tstr == null) {\n return _.transform;\n }\n R._extractTransform(this, tstr);\n\n this.clip && $(this.clip, {transform: this.matrix.invert()});\n this.pattern && updatePosition(this);\n this.node && $(this.node, {transform: this.matrix});\n \n if (_.sx != 1 || _.sy != 1) {\n var sw = this.attrs[has](\"stroke-width\") ? this.attrs[\"stroke-width\"] : 1;\n this.attr({\"stroke-width\": sw});\n }\n\n return this;\n };\n /*\\\n * Element.hide\n [ method ]\n **\n * Makes element invisible. See @Element.show.\n = (object) @Element\n \\*/\n elproto.hide = function () {\n !this.removed && this.paper.safari(this.node.style.display = \"none\");\n return this;\n };\n /*\\\n * Element.show\n [ method ]\n **\n * Makes element visible. See @Element.hide.\n = (object) @Element\n \\*/\n elproto.show = function () {\n !this.removed && this.paper.safari(this.node.style.display = \"\");\n return this;\n };\n /*\\\n * Element.remove\n [ method ]\n **\n * Removes element from the paper.\n \\*/\n elproto.remove = function () {\n if (this.removed || !this.node.parentNode) {\n return;\n }\n var paper = this.paper;\n paper.__set__ && paper.__set__.exclude(this);\n eve.unbind(\"raphael.*.*.\" + this.id);\n if (this.gradient) {\n paper.defs.removeChild(this.gradient);\n }\n R._tear(this, paper);\n if (this.node.parentNode.tagName.toLowerCase() == \"a\") {\n this.node.parentNode.parentNode.removeChild(this.node.parentNode);\n } else {\n this.node.parentNode.removeChild(this.node);\n }\n for (var i in this) {\n this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n }\n this.removed = true;\n };\n elproto._getBBox = function () {\n if (this.node.style.display == \"none\") {\n this.show();\n var hide = true;\n }\n var bbox = {};\n try {\n bbox = this.node.getBBox();\n } catch(e) {\n // Firefox 3.0.x plays badly here\n } finally {\n bbox = bbox || {};\n }\n hide && this.hide();\n return bbox;\n };\n /*\\\n * Element.attr\n [ method ]\n **\n * Sets the attributes of the element.\n > Parameters\n - attrName (string) attributes name\n - value (string) value\n * or\n - params (object) object of name/value pairs\n * or\n - attrName (string) attributes name\n * or\n - attrNames (array) in this case method returns array of current values for given attribute names\n = (object) @Element if attrsName & value or params are passed in.\n = (...) value of the attribute if only attrsName is passed in.\n = (array) array of values of the attribute if attrsNames is passed in.\n = (object) object of attributes if nothing is passed in.\n > Possible parameters\n # <p>Please refer to the <a href=\"http://www.w3.org/TR/SVG/\" title=\"The W3C Recommendation for the SVG language describes these properties in detail.\">SVG specification</a> for an explanation of these parameters.</p>\n o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`.\n o clip-rect (string) comma or space separated values: x, y, width and height\n o cursor (string) CSS type of the cursor\n o cx (number) the x-axis coordinate of the center of the circle, or ellipse\n o cy (number) the y-axis coordinate of the center of the circle, or ellipse\n o fill (string) colour, gradient or image\n o fill-opacity (number)\n o font (string)\n o font-family (string)\n o font-size (number) font size in pixels\n o font-weight (string)\n o height (number)\n o href (string) URL, if specified element behaves as hyperlink\n o opacity (number)\n o path (string) SVG path string format\n o r (number) radius of the circle, ellipse or rounded corner on the rect\n o rx (number) horisontal radius of the ellipse\n o ry (number) vertical radius of the ellipse\n o src (string) image URL, only works for @Element.image element\n o stroke (string) stroke colour\n o stroke-dasharray (string) [“”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”]\n o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”]\n o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”]\n o stroke-miterlimit (number)\n o stroke-opacity (number)\n o stroke-width (number) stroke width in pixels, default is '1'\n o target (string) used with href\n o text (string) contents of the text element. Use `\\n` for multiline text\n o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`”\n o title (string) will create tooltip with a given text\n o transform (string) see @Element.transform\n o width (number)\n o x (number)\n o y (number)\n > Gradients\n * Linear gradient format: “`angle-colour[-colour[:offset]]*-colour`”, example: “`90-#fff-#000`” 90°\n * gradient from white to black or “`0-#fff-#f00:20-#000`” 0° gradient from white via red (at 20%) to black.\n *\n * radial gradient: “`r[(fx, fy)]colour[-colour[:offset]]*-colour`”, example: “`r#fff-#000`” \n * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” gradient from white to black with focus point\n * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses.\n > Path String\n # <p>Please refer to <a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" title=\"Details of a paths data attributes format are described in the SVG specification.\">SVG documentation regarding path string</a>. Raphaël fully supports it.</p>\n > Colour Parsing\n # <ul>\n # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n # <li>rgb(•••, •••, •••) — red, green and blue channels values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n # <li>rgba(•••, •••, •••, •••) — red, green and blue channels values: (“<code>rgba(200,&nbsp;100,&nbsp;0, .5)</code>”)</li>\n # <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%,&nbsp;175%,&nbsp;0%, 50%)</code>”)</li>\n # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n # <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li>\n # <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href=\"http://en.wikipedia.org/wiki/HSL_and_HSV\" title=\"HSL and HSV - Wikipedia, the free encyclopedia\">Wikipedia page</a></li>\n # <li>hsl(•••%, •••%, •••%) — same as above, but in %</li>\n # <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li>\n # <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg,&nbsp;1,&nbsp;.5)</code>” or, if you want to go fancy, “<code>hsl(240°,&nbsp;1,&nbsp;.5)</code>”</li>\n # </ul>\n \\*/\n elproto.attr = function (name, value) {\n if (this.removed) {\n return this;\n }\n if (name == null) {\n var res = {};\n for (var a in this.attrs) if (this.attrs[has](a)) {\n res[a] = this.attrs[a];\n }\n res.gradient && res.fill == \"none\" && (res.fill = res.gradient) && delete res.gradient;\n res.transform = this._.transform;\n return res;\n }\n if (value == null && R.is(name, \"string\")) {\n if (name == \"fill\" && this.attrs.fill == \"none\" && this.attrs.gradient) {\n return this.attrs.gradient;\n }\n if (name == \"transform\") {\n return this._.transform;\n }\n var names = name.split(separator),\n out = {};\n for (var i = 0, ii = names.length; i < ii; i++) {\n name = names[i];\n if (name in this.attrs) {\n out[name] = this.attrs[name];\n } else if (R.is(this.paper.customAttributes[name], \"function\")) {\n out[name] = this.paper.customAttributes[name].def;\n } else {\n out[name] = R._availableAttrs[name];\n }\n }\n return ii - 1 ? out : out[names[0]];\n }\n if (value == null && R.is(name, \"array\")) {\n out = {};\n for (i = 0, ii = name.length; i < ii; i++) {\n out[name[i]] = this.attr(name[i]);\n }\n return out;\n }\n if (value != null) {\n var params = {};\n params[name] = value;\n } else if (name != null && R.is(name, \"object\")) {\n params = name;\n }\n for (var key in params) {\n eve(\"raphael.attr.\" + key + \".\" + this.id, this, params[key]);\n }\n for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \"function\")) {\n var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\n this.attrs[key] = params[key];\n for (var subkey in par) if (par[has](subkey)) {\n params[subkey] = par[subkey];\n }\n }\n setFillAndStroke(this, params);\n return this;\n };\n /*\\\n * Element.toFront\n [ method ]\n **\n * Moves the element so it is the closest to the viewers eyes, on top of other elements.\n = (object) @Element\n \\*/\n elproto.toFront = function () {\n if (this.removed) {\n return this;\n }\n if (this.node.parentNode.tagName.toLowerCase() == \"a\") {\n this.node.parentNode.parentNode.appendChild(this.node.parentNode);\n } else {\n this.node.parentNode.appendChild(this.node);\n }\n var svg = this.paper;\n svg.top != this && R._tofront(this, svg);\n return this;\n };\n /*\\\n * Element.toBack\n [ method ]\n **\n * Moves the element so it is the furthest from the viewers eyes, behind other elements.\n = (object) @Element\n \\*/\n elproto.toBack = function () {\n if (this.removed) {\n return this;\n }\n var parent = this.node.parentNode;\n if (parent.tagName.toLowerCase() == \"a\") {\n parent.parentNode.insertBefore(this.node.parentNode, this.node.parentNode.parentNode.firstChild); \n } else if (parent.firstChild != this.node) {\n parent.insertBefore(this.node, this.node.parentNode.firstChild);\n }\n R._toback(this, this.paper);\n var svg = this.paper;\n return this;\n };\n /*\\\n * Element.insertAfter\n [ method ]\n **\n * Inserts current object after the given one.\n = (object) @Element\n \\*/\n elproto.insertAfter = function (element) {\n if (this.removed) {\n return this;\n }\n var node = element.node || element[element.length - 1].node;\n if (node.nextSibling) {\n node.parentNode.insertBefore(this.node, node.nextSibling);\n } else {\n node.parentNode.appendChild(this.node);\n }\n R._insertafter(this, element, this.paper);\n return this;\n };\n /*\\\n * Element.insertBefore\n [ method ]\n **\n * Inserts current object before the given one.\n = (object) @Element\n \\*/\n elproto.insertBefore = function (element) {\n if (this.removed) {\n return this;\n }\n var node = element.node || element[0].node;\n node.parentNode.insertBefore(this.node, node);\n R._insertbefore(this, element, this.paper);\n return this;\n };\n elproto.blur = function (size) {\n // Experimental. No Safari support. Use it on your own risk.\n var t = this;\n if (+size !== 0) {\n var fltr = $(\"filter\"),\n blur = $(\"feGaussianBlur\");\n t.attrs.blur = size;\n fltr.id = R.createUUID();\n $(blur, {stdDeviation: +size || 1.5});\n fltr.appendChild(blur);\n t.paper.defs.appendChild(fltr);\n t._blur = fltr;\n $(t.node, {filter: \"url(#\" + fltr.id + \")\"});\n } else {\n if (t._blur) {\n t._blur.parentNode.removeChild(t._blur);\n delete t._blur;\n delete t.attrs.blur;\n }\n t.node.removeAttribute(\"filter\");\n }\n return t;\n };\n R._engine.circle = function (svg, x, y, r) {\n var el = $(\"circle\");\n svg.canvas && svg.canvas.appendChild(el);\n var res = new Element(el, svg);\n res.attrs = {cx: x, cy: y, r: r, fill: \"none\", stroke: \"#000\"};\n res.type = \"circle\";\n $(el, res.attrs);\n return res;\n };\n R._engine.rect = function (svg, x, y, w, h, r) {\n var el = $(\"rect\");\n svg.canvas && svg.canvas.appendChild(el);\n var res = new Element(el, svg);\n res.attrs = {x: x, y: y, width: w, height: h, r: r || 0, rx: r || 0, ry: r || 0, fill: \"none\", stroke: \"#000\"};\n res.type = \"rect\";\n $(el, res.attrs);\n return res;\n };\n R._engine.ellipse = function (svg, x, y, rx, ry) {\n var el = $(\"ellipse\");\n svg.canvas && svg.canvas.appendChild(el);\n var res = new Element(el, svg);\n res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: \"none\", stroke: \"#000\"};\n res.type = \"ellipse\";\n $(el, res.attrs);\n return res;\n };\n R._engine.image = function (svg, src, x, y, w, h) {\n var el = $(\"image\");\n $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: \"none\"});\n el.setAttributeNS(xlink, \"href\", src);\n svg.canvas && svg.canvas.appendChild(el);\n var res = new Element(el, svg);\n res.attrs = {x: x, y: y, width: w, height: h, src: src};\n res.type = \"image\";\n return res;\n };\n R._engine.text = function (svg, x, y, text) {\n var el = $(\"text\");\n svg.canvas && svg.canvas.appendChild(el);\n var res = new Element(el, svg);\n res.attrs = {\n x: x,\n y: y,\n \"text-anchor\": \"middle\",\n text: text,\n font: R._availableAttrs.font,\n stroke: \"none\",\n fill: \"#000\"\n };\n res.type = \"text\";\n setFillAndStroke(res, res.attrs);\n return res;\n };\n R._engine.setSize = function (width, height) {\n this.width = width || this.width;\n this.height = height || this.height;\n this.canvas.setAttribute(\"width\", this.width);\n this.canvas.setAttribute(\"height\", this.height);\n if (this._viewBox) {\n this.setViewBox.apply(this, this._viewBox);\n }\n return this;\n };\n R._engine.create = function () {\n var con = R._getContainer.apply(0, arguments),\n container = con && con.container,\n x = con.x,\n y = con.y,\n width = con.width,\n height = con.height;\n if (!container) {\n throw new Error(\"SVG container not found.\");\n }\n var cnvs = $(\"svg\"),\n css = \"overflow:hidden;\",\n isFloating;\n x = x || 0;\n y = y || 0;\n width = width || 512;\n height = height || 342;\n $(cnvs, {\n height: height,\n version: 1.1,\n width: width,\n xmlns: \"http://www.w3.org/2000/svg\"\n });\n if (container == 1) {\n cnvs.style.cssText = css + \"position:absolute;left:\" + x + \"px;top:\" + y + \"px\";\n R._g.doc.body.appendChild(cnvs);\n isFloating = 1;\n } else {\n cnvs.style.cssText = css + \"position:relative\";\n if (container.firstChild) {\n container.insertBefore(cnvs, container.firstChild);\n } else {\n container.appendChild(cnvs);\n }\n }\n container = new R._Paper;\n container.width = width;\n container.height = height;\n container.canvas = cnvs;\n container.clear();\n container._left = container._top = 0;\n isFloating && (container.renderfix = function () {});\n container.renderfix();\n return container;\n };\n R._engine.setViewBox = function (x, y, w, h, fit) {\n eve(\"raphael.setViewBox\", this, this._viewBox, [x, y, w, h, fit]);\n var size = mmax(w / this.width, h / this.height),\n top = this.top,\n aspectRatio = fit ? \"xMidYMid meet\" : \"xMinYMin\",\n vb,\n sw;\n if (x == null) {\n if (this._vbSize) {\n size = 1;\n }\n delete this._vbSize;\n vb = \"0 0 \" + this.width + S + this.height;\n } else {\n this._vbSize = size;\n vb = x + S + y + S + w + S + h;\n }\n $(this.canvas, {\n viewBox: vb,\n preserveAspectRatio: aspectRatio\n });\n while (size && top) {\n sw = \"stroke-width\" in top.attrs ? top.attrs[\"stroke-width\"] : 1;\n top.attr({\"stroke-width\": sw});\n top._.dirty = 1;\n top._.dirtyT = 1;\n top = top.prev;\n }\n this._viewBox = [x, y, w, h, !!fit];\n return this;\n };\n /*\\\n * Paper.renderfix\n [ method ]\n **\n * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependant\n * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness.\n * This method fixes the issue.\n **\n Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method.\n \\*/\n R.prototype.renderfix = function () {\n var cnvs = this.canvas,\n s = cnvs.style,\n pos;\n try {\n pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix();\n } catch (e) {\n pos = cnvs.createSVGMatrix();\n }\n var left = -pos.e % 1,\n top = -pos.f % 1;\n if (left || top) {\n if (left) {\n this._left = (this._left + left) % 1;\n s.left = this._left + \"px\";\n }\n if (top) {\n this._top = (this._top + top) % 1;\n s.top = this._top + \"px\";\n }\n }\n };\n /*\\\n * Paper.clear\n [ method ]\n **\n * Clears the paper, i.e. removes all the elements.\n \\*/\n R.prototype.clear = function () {\n R.eve(\"raphael.clear\", this);\n var c = this.canvas;\n while (c.firstChild) {\n c.removeChild(c.firstChild);\n }\n this.bottom = this.top = null;\n (this.desc = $(\"desc\")).appendChild(R._g.doc.createTextNode(\"Created with Rapha\\xebl \" + R.version));\n c.appendChild(this.desc);\n c.appendChild(this.defs = $(\"defs\"));\n };\n /*\\\n * Paper.remove\n [ method ]\n **\n * Removes the paper from the DOM.\n \\*/\n R.prototype.remove = function () {\n eve(\"raphael.remove\", this);\n this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);\n for (var i in this) {\n this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n }\n };\n var setproto = R.st;\n for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\n setproto[method] = (function (methodname) {\n return function () {\n var arg = arguments;\n return this.forEach(function (el) {\n el[methodname].apply(el, arg);\n });\n };\n })(method);\n }\n})();\n\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël - JavaScript Vector Library │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ VML Module │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function(){\n if (!R.vml) {\n return;\n }\n var has = \"hasOwnProperty\",\n Str = String,\n toFloat = parseFloat,\n math = Math,\n round = math.round,\n mmax = math.max,\n mmin = math.min,\n abs = math.abs,\n fillString = \"fill\",\n separator = /[, ]+/,\n eve = R.eve,\n ms = \" progid:DXImageTransform.Microsoft\",\n S = \" \",\n E = \"\",\n map = {M: \"m\", L: \"l\", C: \"c\", Z: \"x\", m: \"t\", l: \"r\", c: \"v\", z: \"x\"},\n bites = /([clmz]),?([^clmz]*)/gi,\n blurregexp = / progid:\\S+Blur\\([^\\)]+\\)/g,\n val = /-?[^,\\s-]+/g,\n cssDot = \"position:absolute;left:0;top:0;width:1px;height:1px\",\n zoom = 21600,\n pathTypes = {path: 1, rect: 1, image: 1},\n ovalTypes = {circle: 1, ellipse: 1},\n path2vml = function (path) {\n var total = /[ahqstv]/ig,\n command = R._pathToAbsolute;\n Str(path).match(total) && (command = R._path2curve);\n total = /[clmz]/g;\n if (command == R._pathToAbsolute && !Str(path).match(total)) {\n var res = Str(path).replace(bites, function (all, command, args) {\n var vals = [],\n isMove = command.toLowerCase() == \"m\",\n res = map[command];\n args.replace(val, function (value) {\n if (isMove && vals.length == 2) {\n res += vals + map[command == \"m\" ? \"l\" : \"L\"];\n vals = [];\n }\n vals.push(round(value * zoom));\n });\n return res + vals;\n });\n return res;\n }\n var pa = command(path), p, r;\n res = [];\n for (var i = 0, ii = pa.length; i < ii; i++) {\n p = pa[i];\n r = pa[i][0].toLowerCase();\n r == \"z\" && (r = \"x\");\n for (var j = 1, jj = p.length; j < jj; j++) {\n r += round(p[j] * zoom) + (j != jj - 1 ? \",\" : E);\n }\n res.push(r);\n }\n return res.join(S);\n },\n compensation = function (deg, dx, dy) {\n var m = R.matrix();\n m.rotate(-deg, .5, .5);\n return {\n dx: m.x(dx, dy),\n dy: m.y(dx, dy)\n };\n },\n setCoords = function (p, sx, sy, dx, dy, deg) {\n var _ = p._,\n m = p.matrix,\n fillpos = _.fillpos,\n o = p.node,\n s = o.style,\n y = 1,\n flip = \"\",\n dxdy,\n kx = zoom / sx,\n ky = zoom / sy;\n s.visibility = \"hidden\";\n if (!sx || !sy) {\n return;\n }\n o.coordsize = abs(kx) + S + abs(ky);\n s.rotation = deg * (sx * sy < 0 ? -1 : 1);\n if (deg) {\n var c = compensation(deg, dx, dy);\n dx = c.dx;\n dy = c.dy;\n }\n sx < 0 && (flip += \"x\");\n sy < 0 && (flip += \" y\") && (y = -1);\n s.flip = flip;\n o.coordorigin = (dx * -kx) + S + (dy * -ky);\n if (fillpos || _.fillsize) {\n var fill = o.getElementsByTagName(fillString);\n fill = fill && fill[0];\n o.removeChild(fill);\n if (fillpos) {\n c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1]));\n fill.position = c.dx * y + S + c.dy * y;\n }\n if (_.fillsize) {\n fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy);\n }\n o.appendChild(fill);\n }\n s.visibility = \"visible\";\n };\n R.toString = function () {\n return \"Your browser doesn\\u2019t support SVG. Falling down to VML.\\nYou are running Rapha\\xebl \" + this.version;\n };\n var addArrow = function (o, value, isEnd) {\n var values = Str(value).toLowerCase().split(\"-\"),\n se = isEnd ? \"end\" : \"start\",\n i = values.length,\n type = \"classic\",\n w = \"medium\",\n h = \"medium\";\n while (i--) {\n switch (values[i]) {\n case \"block\":\n case \"classic\":\n case \"oval\":\n case \"diamond\":\n case \"open\":\n case \"none\":\n type = values[i];\n break;\n case \"wide\":\n case \"narrow\": h = values[i]; break;\n case \"long\":\n case \"short\": w = values[i]; break;\n }\n }\n var stroke = o.node.getElementsByTagName(\"stroke\")[0];\n stroke[se + \"arrow\"] = type;\n stroke[se + \"arrowlength\"] = w;\n stroke[se + \"arrowwidth\"] = h;\n },\n setFillAndStroke = function (o, params) {\n // o.paper.canvas.style.display = \"none\";\n o.attrs = o.attrs || {};\n var node = o.node,\n a = o.attrs,\n s = node.style,\n xy,\n newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r),\n isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry),\n res = o;\n\n\n for (var par in params) if (params[has](par)) {\n a[par] = params[par];\n }\n if (newpath) {\n a.path = R._getPath[o.type](o);\n o._.dirty = 1;\n }\n params.href && (node.href = params.href);\n params.title && (node.title = params.title);\n params.target && (node.target = params.target);\n params.cursor && (s.cursor = params.cursor);\n \"blur\" in params && o.blur(params.blur);\n if (params.path && o.type == \"path\" || newpath) {\n node.path = path2vml(~Str(a.path).toLowerCase().indexOf(\"r\") ? R._pathToAbsolute(a.path) : a.path);\n if (o.type == \"image\") {\n o._.fillpos = [a.x, a.y];\n o._.fillsize = [a.width, a.height];\n setCoords(o, 1, 1, 0, 0, 0);\n }\n }\n \"transform\" in params && o.transform(params.transform);\n if (isOval) {\n var cx = +a.cx,\n cy = +a.cy,\n rx = +a.rx || +a.r || 0,\n ry = +a.ry || +a.r || 0;\n node.path = R.format(\"ar{0},{1},{2},{3},{4},{1},{4},{1}x\", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom));\n o._.dirty = 1;\n }\n if (\"clip-rect\" in params) {\n var rect = Str(params[\"clip-rect\"]).split(separator);\n if (rect.length == 4) {\n rect[2] = +rect[2] + (+rect[0]);\n rect[3] = +rect[3] + (+rect[1]);\n var div = node.clipRect || R._g.doc.createElement(\"div\"),\n dstyle = div.style;\n dstyle.clip = R.format(\"rect({1}px {2}px {3}px {0}px)\", rect);\n if (!node.clipRect) {\n dstyle.position = \"absolute\";\n dstyle.top = 0;\n dstyle.left = 0;\n dstyle.width = o.paper.width + \"px\";\n dstyle.height = o.paper.height + \"px\";\n node.parentNode.insertBefore(div, node);\n div.appendChild(node);\n node.clipRect = div;\n }\n }\n if (!params[\"clip-rect\"]) {\n node.clipRect && (node.clipRect.style.clip = \"auto\");\n }\n }\n if (o.textpath) {\n var textpathStyle = o.textpath.style;\n params.font && (textpathStyle.font = params.font);\n params[\"font-family\"] && (textpathStyle.fontFamily = '\"' + params[\"font-family\"].split(\",\")[0].replace(/^['\"]+|['\"]+$/g, E) + '\"');\n params[\"font-size\"] && (textpathStyle.fontSize = params[\"font-size\"]);\n params[\"font-weight\"] && (textpathStyle.fontWeight = params[\"font-weight\"]);\n params[\"font-style\"] && (textpathStyle.fontStyle = params[\"font-style\"]);\n }\n if (\"arrow-start\" in params) {\n addArrow(res, params[\"arrow-start\"]);\n }\n if (\"arrow-end\" in params) {\n addArrow(res, params[\"arrow-end\"], 1);\n }\n if (params.opacity != null || \n params[\"stroke-width\"] != null ||\n params.fill != null ||\n params.src != null ||\n params.stroke != null ||\n params[\"stroke-width\"] != null ||\n params[\"stroke-opacity\"] != null ||\n params[\"fill-opacity\"] != null ||\n params[\"stroke-dasharray\"] != null ||\n params[\"stroke-miterlimit\"] != null ||\n params[\"stroke-linejoin\"] != null ||\n params[\"stroke-linecap\"] != null) {\n var fill = node.getElementsByTagName(fillString),\n newfill = false;\n fill = fill && fill[0];\n !fill && (newfill = fill = createNode(fillString));\n if (o.type == \"image\" && params.src) {\n fill.src = params.src;\n }\n params.fill && (fill.on = true);\n if (fill.on == null || params.fill == \"none\" || params.fill === null) {\n fill.on = false;\n }\n if (fill.on && params.fill) {\n var isURL = Str(params.fill).match(R._ISURL);\n if (isURL) {\n fill.parentNode == node && node.removeChild(fill);\n fill.rotate = true;\n fill.src = isURL[1];\n fill.type = \"tile\";\n var bbox = o.getBBox(1);\n fill.position = bbox.x + S + bbox.y;\n o._.fillpos = [bbox.x, bbox.y];\n\n R._preload(isURL[1], function () {\n o._.fillsize = [this.offsetWidth, this.offsetHeight];\n });\n } else {\n fill.color = R.getRGB(params.fill).hex;\n fill.src = E;\n fill.type = \"solid\";\n if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != \"r\") && addGradientFill(res, params.fill, fill)) {\n a.fill = \"none\";\n a.gradient = params.fill;\n fill.rotate = false;\n }\n }\n }\n if (\"fill-opacity\" in params || \"opacity\" in params) {\n var opacity = ((+a[\"fill-opacity\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1);\n opacity = mmin(mmax(opacity, 0), 1);\n fill.opacity = opacity;\n if (fill.src) {\n fill.color = \"none\";\n }\n }\n node.appendChild(fill);\n var stroke = (node.getElementsByTagName(\"stroke\") && node.getElementsByTagName(\"stroke\")[0]),\n newstroke = false;\n !stroke && (newstroke = stroke = createNode(\"stroke\"));\n if ((params.stroke && params.stroke != \"none\") ||\n params[\"stroke-width\"] ||\n params[\"stroke-opacity\"] != null ||\n params[\"stroke-dasharray\"] ||\n params[\"stroke-miterlimit\"] ||\n params[\"stroke-linejoin\"] ||\n params[\"stroke-linecap\"]) {\n stroke.on = true;\n }\n (params.stroke == \"none\" || params.stroke === null || stroke.on == null || params.stroke == 0 || params[\"stroke-width\"] == 0) && (stroke.on = false);\n var strokeColor = R.getRGB(params.stroke);\n stroke.on && params.stroke && (stroke.color = strokeColor.hex);\n opacity = ((+a[\"stroke-opacity\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1);\n var width = (toFloat(params[\"stroke-width\"]) || 1) * .75;\n opacity = mmin(mmax(opacity, 0), 1);\n params[\"stroke-width\"] == null && (width = a[\"stroke-width\"]);\n params[\"stroke-width\"] && (stroke.weight = width);\n width && width < 1 && (opacity *= width) && (stroke.weight = 1);\n stroke.opacity = opacity;\n \n params[\"stroke-linejoin\"] && (stroke.joinstyle = params[\"stroke-linejoin\"] || \"miter\");\n stroke.miterlimit = params[\"stroke-miterlimit\"] || 8;\n params[\"stroke-linecap\"] && (stroke.endcap = params[\"stroke-linecap\"] == \"butt\" ? \"flat\" : params[\"stroke-linecap\"] == \"square\" ? \"square\" : \"round\");\n if (\"stroke-dasharray\" in params) {\n var dasharray = {\n \"-\": \"shortdash\",\n \".\": \"shortdot\",\n \"-.\": \"shortdashdot\",\n \"-..\": \"shortdashdotdot\",\n \". \": \"dot\",\n \"- \": \"dash\",\n \"--\": \"longdash\",\n \"- .\": \"dashdot\",\n \"--.\": \"longdashdot\",\n \"--..\": \"longdashdotdot\"\n };\n stroke.dashstyle = dasharray[has](params[\"stroke-dasharray\"]) ? dasharray[params[\"stroke-dasharray\"]] : E;\n }\n newstroke && node.appendChild(stroke);\n }\n if (res.type == \"text\") {\n res.paper.canvas.style.display = E;\n var span = res.paper.span,\n m = 100,\n fontSize = a.font && a.font.match(/\\d+(?:\\.\\d*)?(?=px)/);\n s = span.style;\n a.font && (s.font = a.font);\n a[\"font-family\"] && (s.fontFamily = a[\"font-family\"]);\n a[\"font-weight\"] && (s.fontWeight = a[\"font-weight\"]);\n a[\"font-style\"] && (s.fontStyle = a[\"font-style\"]);\n fontSize = toFloat(a[\"font-size\"] || fontSize && fontSize[0]) || 10;\n s.fontSize = fontSize * m + \"px\";\n res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, \"&#60;\").replace(/&/g, \"&#38;\").replace(/\\n/g, \"<br>\"));\n var brect = span.getBoundingClientRect();\n res.W = a.w = (brect.right - brect.left) / m;\n res.H = a.h = (brect.bottom - brect.top) / m;\n // res.paper.canvas.style.display = \"none\";\n res.X = a.x;\n res.Y = a.y + res.H / 2;\n\n (\"x\" in params || \"y\" in params) && (res.path.v = R.format(\"m{0},{1}l{2},{1}\", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1));\n var dirtyattrs = [\"x\", \"y\", \"text\", \"font\", \"font-family\", \"font-weight\", \"font-style\", \"font-size\"];\n for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) {\n res._.dirty = 1;\n break;\n }\n \n // text-anchor emulation\n switch (a[\"text-anchor\"]) {\n case \"start\":\n res.textpath.style[\"v-text-align\"] = \"left\";\n res.bbx = res.W / 2;\n break;\n case \"end\":\n res.textpath.style[\"v-text-align\"] = \"right\";\n res.bbx = -res.W / 2;\n break;\n default:\n res.textpath.style[\"v-text-align\"] = \"center\";\n res.bbx = 0;\n break;\n }\n res.textpath.style[\"v-text-kern\"] = true;\n }\n // res.paper.canvas.style.display = E;\n },\n addGradientFill = function (o, gradient, fill) {\n o.attrs = o.attrs || {};\n var attrs = o.attrs,\n pow = Math.pow,\n opacity,\n oindex,\n type = \"linear\",\n fxfy = \".5 .5\";\n o.attrs.gradient = gradient;\n gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) {\n type = \"radial\";\n if (fx && fy) {\n fx = toFloat(fx);\n fy = toFloat(fy);\n pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5);\n fxfy = fx + S + fy;\n }\n return E;\n });\n gradient = gradient.split(/\\s*\\-\\s*/);\n if (type == \"linear\") {\n var angle = gradient.shift();\n angle = -toFloat(angle);\n if (isNaN(angle)) {\n return null;\n }\n }\n var dots = R._parseDots(gradient);\n if (!dots) {\n return null;\n }\n o = o.shape || o.node;\n if (dots.length) {\n o.removeChild(fill);\n fill.on = true;\n fill.method = \"none\";\n fill.color = dots[0].color;\n fill.color2 = dots[dots.length - 1].color;\n var clrs = [];\n for (var i = 0, ii = dots.length; i < ii; i++) {\n dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color);\n }\n fill.colors = clrs.length ? clrs.join() : \"0% \" + fill.color;\n if (type == \"radial\") {\n fill.type = \"gradientTitle\";\n fill.focus = \"100%\";\n fill.focussize = \"0 0\";\n fill.focusposition = fxfy;\n fill.angle = 0;\n } else {\n // fill.rotate= true;\n fill.type = \"gradient\";\n fill.angle = (270 - angle) % 360;\n }\n o.appendChild(fill);\n }\n return 1;\n },\n Element = function (node, vml) {\n this[0] = this.node = node;\n node.raphael = true;\n this.id = R._oid++;\n node.raphaelid = this.id;\n this.X = 0;\n this.Y = 0;\n this.attrs = {};\n this.paper = vml;\n this.matrix = R.matrix();\n this._ = {\n transform: [],\n sx: 1,\n sy: 1,\n dx: 0,\n dy: 0,\n deg: 0,\n dirty: 1,\n dirtyT: 1\n };\n !vml.bottom && (vml.bottom = this);\n this.prev = vml.top;\n vml.top && (vml.top.next = this);\n vml.top = this;\n this.next = null;\n };\n var elproto = R.el;\n\n Element.prototype = elproto;\n elproto.constructor = Element;\n elproto.transform = function (tstr) {\n if (tstr == null) {\n return this._.transform;\n }\n var vbs = this.paper._viewBoxShift,\n vbt = vbs ? \"s\" + [vbs.scale, vbs.scale] + \"-1-1t\" + [vbs.dx, vbs.dy] : E,\n oldt;\n if (vbs) {\n oldt = tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, this._.transform || E);\n }\n R._extractTransform(this, vbt + tstr);\n var matrix = this.matrix.clone(),\n skew = this.skew,\n o = this.node,\n split,\n isGrad = ~Str(this.attrs.fill).indexOf(\"-\"),\n isPatt = !Str(this.attrs.fill).indexOf(\"url(\");\n matrix.translate(1, 1);\n if (isPatt || isGrad || this.type == \"image\") {\n skew.matrix = \"1 0 0 1\";\n skew.offset = \"0 0\";\n split = matrix.split();\n if ((isGrad && split.noRotation) || !split.isSimple) {\n o.style.filter = matrix.toFilter();\n var bb = this.getBBox(),\n bbt = this.getBBox(1),\n dx = bb.x - bbt.x,\n dy = bb.y - bbt.y;\n o.coordorigin = (dx * -zoom) + S + (dy * -zoom);\n setCoords(this, 1, 1, dx, dy, 0);\n } else {\n o.style.filter = E;\n setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate);\n }\n } else {\n o.style.filter = E;\n skew.matrix = Str(matrix);\n skew.offset = matrix.offset();\n }\n oldt && (this._.transform = oldt);\n return this;\n };\n elproto.rotate = function (deg, cx, cy) {\n if (this.removed) {\n return this;\n }\n if (deg == null) {\n return;\n }\n deg = Str(deg).split(separator);\n if (deg.length - 1) {\n cx = toFloat(deg[1]);\n cy = toFloat(deg[2]);\n }\n deg = toFloat(deg[0]);\n (cy == null) && (cx = cy);\n if (cx == null || cy == null) {\n var bbox = this.getBBox(1);\n cx = bbox.x + bbox.width / 2;\n cy = bbox.y + bbox.height / 2;\n }\n this._.dirtyT = 1;\n this.transform(this._.transform.concat([[\"r\", deg, cx, cy]]));\n return this;\n };\n elproto.translate = function (dx, dy) {\n if (this.removed) {\n return this;\n }\n dx = Str(dx).split(separator);\n if (dx.length - 1) {\n dy = toFloat(dx[1]);\n }\n dx = toFloat(dx[0]) || 0;\n dy = +dy || 0;\n if (this._.bbox) {\n this._.bbox.x += dx;\n this._.bbox.y += dy;\n }\n this.transform(this._.transform.concat([[\"t\", dx, dy]]));\n return this;\n };\n elproto.scale = function (sx, sy, cx, cy) {\n if (this.removed) {\n return this;\n }\n sx = Str(sx).split(separator);\n if (sx.length - 1) {\n sy = toFloat(sx[1]);\n cx = toFloat(sx[2]);\n cy = toFloat(sx[3]);\n isNaN(cx) && (cx = null);\n isNaN(cy) && (cy = null);\n }\n sx = toFloat(sx[0]);\n (sy == null) && (sy = sx);\n (cy == null) && (cx = cy);\n if (cx == null || cy == null) {\n var bbox = this.getBBox(1);\n }\n cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n \n this.transform(this._.transform.concat([[\"s\", sx, sy, cx, cy]]));\n this._.dirtyT = 1;\n return this;\n };\n elproto.hide = function () {\n !this.removed && (this.node.style.display = \"none\");\n return this;\n };\n elproto.show = function () {\n !this.removed && (this.node.style.display = E);\n return this;\n };\n elproto._getBBox = function () {\n if (this.removed) {\n return {};\n }\n return {\n x: this.X + (this.bbx || 0) - this.W / 2,\n y: this.Y - this.H,\n width: this.W,\n height: this.H\n };\n };\n elproto.remove = function () {\n if (this.removed || !this.node.parentNode) {\n return;\n }\n this.paper.__set__ && this.paper.__set__.exclude(this);\n R.eve.unbind(\"raphael.*.*.\" + this.id);\n R._tear(this, this.paper);\n this.node.parentNode.removeChild(this.node);\n this.shape && this.shape.parentNode.removeChild(this.shape);\n for (var i in this) {\n this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n }\n this.removed = true;\n };\n elproto.attr = function (name, value) {\n if (this.removed) {\n return this;\n }\n if (name == null) {\n var res = {};\n for (var a in this.attrs) if (this.attrs[has](a)) {\n res[a] = this.attrs[a];\n }\n res.gradient && res.fill == \"none\" && (res.fill = res.gradient) && delete res.gradient;\n res.transform = this._.transform;\n return res;\n }\n if (value == null && R.is(name, \"string\")) {\n if (name == fillString && this.attrs.fill == \"none\" && this.attrs.gradient) {\n return this.attrs.gradient;\n }\n var names = name.split(separator),\n out = {};\n for (var i = 0, ii = names.length; i < ii; i++) {\n name = names[i];\n if (name in this.attrs) {\n out[name] = this.attrs[name];\n } else if (R.is(this.paper.customAttributes[name], \"function\")) {\n out[name] = this.paper.customAttributes[name].def;\n } else {\n out[name] = R._availableAttrs[name];\n }\n }\n return ii - 1 ? out : out[names[0]];\n }\n if (this.attrs && value == null && R.is(name, \"array\")) {\n out = {};\n for (i = 0, ii = name.length; i < ii; i++) {\n out[name[i]] = this.attr(name[i]);\n }\n return out;\n }\n var params;\n if (value != null) {\n params = {};\n params[name] = value;\n }\n value == null && R.is(name, \"object\") && (params = name);\n for (var key in params) {\n eve(\"raphael.attr.\" + key + \".\" + this.id, this, params[key]);\n }\n if (params) {\n for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \"function\")) {\n var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\n this.attrs[key] = params[key];\n for (var subkey in par) if (par[has](subkey)) {\n params[subkey] = par[subkey];\n }\n }\n // this.paper.canvas.style.display = \"none\";\n if (params.text && this.type == \"text\") {\n this.textpath.string = params.text;\n }\n setFillAndStroke(this, params);\n // this.paper.canvas.style.display = E;\n }\n return this;\n };\n elproto.toFront = function () {\n !this.removed && this.node.parentNode.appendChild(this.node);\n this.paper && this.paper.top != this && R._tofront(this, this.paper);\n return this;\n };\n elproto.toBack = function () {\n if (this.removed) {\n return this;\n }\n if (this.node.parentNode.firstChild != this.node) {\n this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild);\n R._toback(this, this.paper);\n }\n return this;\n };\n elproto.insertAfter = function (element) {\n if (this.removed) {\n return this;\n }\n if (element.constructor == R.st.constructor) {\n element = element[element.length - 1];\n }\n if (element.node.nextSibling) {\n element.node.parentNode.insertBefore(this.node, element.node.nextSibling);\n } else {\n element.node.parentNode.appendChild(this.node);\n }\n R._insertafter(this, element, this.paper);\n return this;\n };\n elproto.insertBefore = function (element) {\n if (this.removed) {\n return this;\n }\n if (element.constructor == R.st.constructor) {\n element = element[0];\n }\n element.node.parentNode.insertBefore(this.node, element.node);\n R._insertbefore(this, element, this.paper);\n return this;\n };\n elproto.blur = function (size) {\n var s = this.node.runtimeStyle,\n f = s.filter;\n f = f.replace(blurregexp, E);\n if (+size !== 0) {\n this.attrs.blur = size;\n s.filter = f + S + ms + \".Blur(pixelradius=\" + (+size || 1.5) + \")\";\n s.margin = R.format(\"-{0}px 0 0 -{0}px\", round(+size || 1.5));\n } else {\n s.filter = f;\n s.margin = 0;\n delete this.attrs.blur;\n }\n return this;\n };\n\n R._engine.path = function (pathString, vml) {\n var el = createNode(\"shape\");\n el.style.cssText = cssDot;\n el.coordsize = zoom + S + zoom;\n el.coordorigin = vml.coordorigin;\n var p = new Element(el, vml),\n attr = {fill: \"none\", stroke: \"#000\"};\n pathString && (attr.path = pathString);\n p.type = \"path\";\n p.path = [];\n p.Path = E;\n setFillAndStroke(p, attr);\n vml.canvas.appendChild(el);\n var skew = createNode(\"skew\");\n skew.on = true;\n el.appendChild(skew);\n p.skew = skew;\n p.transform(E);\n return p;\n };\n R._engine.rect = function (vml, x, y, w, h, r) {\n var path = R._rectPath(x, y, w, h, r),\n res = vml.path(path),\n a = res.attrs;\n res.X = a.x = x;\n res.Y = a.y = y;\n res.W = a.width = w;\n res.H = a.height = h;\n a.r = r;\n a.path = path;\n res.type = \"rect\";\n return res;\n };\n R._engine.ellipse = function (vml, x, y, rx, ry) {\n var res = vml.path(),\n a = res.attrs;\n res.X = x - rx;\n res.Y = y - ry;\n res.W = rx * 2;\n res.H = ry * 2;\n res.type = \"ellipse\";\n setFillAndStroke(res, {\n cx: x,\n cy: y,\n rx: rx,\n ry: ry\n });\n return res;\n };\n R._engine.circle = function (vml, x, y, r) {\n var res = vml.path(),\n a = res.attrs;\n res.X = x - r;\n res.Y = y - r;\n res.W = res.H = r * 2;\n res.type = \"circle\";\n setFillAndStroke(res, {\n cx: x,\n cy: y,\n r: r\n });\n return res;\n };\n R._engine.image = function (vml, src, x, y, w, h) {\n var path = R._rectPath(x, y, w, h),\n res = vml.path(path).attr({stroke: \"none\"}),\n a = res.attrs,\n node = res.node,\n fill = node.getElementsByTagName(fillString)[0];\n a.src = src;\n res.X = a.x = x;\n res.Y = a.y = y;\n res.W = a.width = w;\n res.H = a.height = h;\n a.path = path;\n res.type = \"image\";\n fill.parentNode == node && node.removeChild(fill);\n fill.rotate = true;\n fill.src = src;\n fill.type = \"tile\";\n res._.fillpos = [x, y];\n res._.fillsize = [w, h];\n node.appendChild(fill);\n setCoords(res, 1, 1, 0, 0, 0);\n return res;\n };\n R._engine.text = function (vml, x, y, text) {\n var el = createNode(\"shape\"),\n path = createNode(\"path\"),\n o = createNode(\"textpath\");\n x = x || 0;\n y = y || 0;\n text = text || \"\";\n path.v = R.format(\"m{0},{1}l{2},{1}\", round(x * zoom), round(y * zoom), round(x * zoom) + 1);\n path.textpathok = true;\n o.string = Str(text);\n o.on = true;\n el.style.cssText = cssDot;\n el.coordsize = zoom + S + zoom;\n el.coordorigin = \"0 0\";\n var p = new Element(el, vml),\n attr = {\n fill: \"#000\",\n stroke: \"none\",\n font: R._availableAttrs.font,\n text: text\n };\n p.shape = el;\n p.path = path;\n p.textpath = o;\n p.type = \"text\";\n p.attrs.text = Str(text);\n p.attrs.x = x;\n p.attrs.y = y;\n p.attrs.w = 1;\n p.attrs.h = 1;\n setFillAndStroke(p, attr);\n el.appendChild(o);\n el.appendChild(path);\n vml.canvas.appendChild(el);\n var skew = createNode(\"skew\");\n skew.on = true;\n el.appendChild(skew);\n p.skew = skew;\n p.transform(E);\n return p;\n };\n R._engine.setSize = function (width, height) {\n var cs = this.canvas.style;\n this.width = width;\n this.height = height;\n width == +width && (width += \"px\");\n height == +height && (height += \"px\");\n cs.width = width;\n cs.height = height;\n cs.clip = \"rect(0 \" + width + \" \" + height + \" 0)\";\n if (this._viewBox) {\n R._engine.setViewBox.apply(this, this._viewBox);\n }\n return this;\n };\n R._engine.setViewBox = function (x, y, w, h, fit) {\n R.eve(\"raphael.setViewBox\", this, this._viewBox, [x, y, w, h, fit]);\n var width = this.width,\n height = this.height,\n size = 1 / mmax(w / width, h / height),\n H, W;\n if (fit) {\n H = height / h;\n W = width / w;\n if (w * H < width) {\n x -= (width - w * H) / 2 / H;\n }\n if (h * W < height) {\n y -= (height - h * W) / 2 / W;\n }\n }\n this._viewBox = [x, y, w, h, !!fit];\n this._viewBoxShift = {\n dx: -x,\n dy: -y,\n scale: size\n };\n this.forEach(function (el) {\n el.transform(\"...\");\n });\n return this;\n };\n var createNode;\n R._engine.initWin = function (win) {\n var doc = win.document;\n doc.createStyleSheet().addRule(\".rvml\", \"behavior:url(#default#VML)\");\n try {\n !doc.namespaces.rvml && doc.namespaces.add(\"rvml\", \"urn:schemas-microsoft-com:vml\");\n createNode = function (tagName) {\n return doc.createElement('<rvml:' + tagName + ' class=\"rvml\">');\n };\n } catch (e) {\n createNode = function (tagName) {\n return doc.createElement('<' + tagName + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">');\n };\n }\n };\n R._engine.initWin(R._g.win);\n R._engine.create = function () {\n var con = R._getContainer.apply(0, arguments),\n container = con.container,\n height = con.height,\n s,\n width = con.width,\n x = con.x,\n y = con.y;\n if (!container) {\n throw new Error(\"VML container not found.\");\n }\n var res = new R._Paper,\n c = res.canvas = R._g.doc.createElement(\"div\"),\n cs = c.style;\n x = x || 0;\n y = y || 0;\n width = width || 512;\n height = height || 342;\n res.width = width;\n res.height = height;\n width == +width && (width += \"px\");\n height == +height && (height += \"px\");\n res.coordsize = zoom * 1e3 + S + zoom * 1e3;\n res.coordorigin = \"0 0\";\n res.span = R._g.doc.createElement(\"span\");\n res.span.style.cssText = \"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\";\n c.appendChild(res.span);\n cs.cssText = R.format(\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\", width, height);\n if (container == 1) {\n R._g.doc.body.appendChild(c);\n cs.left = x + \"px\";\n cs.top = y + \"px\";\n cs.position = \"absolute\";\n } else {\n if (container.firstChild) {\n container.insertBefore(c, container.firstChild);\n } else {\n container.appendChild(c);\n }\n }\n res.renderfix = function () {};\n return res;\n };\n R.prototype.clear = function () {\n R.eve(\"raphael.clear\", this);\n this.canvas.innerHTML = E;\n this.span = R._g.doc.createElement(\"span\");\n this.span.style.cssText = \"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\";\n this.canvas.appendChild(this.span);\n this.bottom = this.top = null;\n };\n R.prototype.remove = function () {\n R.eve(\"raphael.remove\", this);\n this.canvas.parentNode.removeChild(this.canvas);\n for (var i in this) {\n this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n }\n return true;\n };\n\n var setproto = R.st;\n for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\n setproto[method] = (function (methodname) {\n return function () {\n var arg = arguments;\n return this.forEach(function (el) {\n el[methodname].apply(el, arg);\n });\n };\n })(method);\n }\n})();\n\n // EXPOSE\n // SVG and VML are appended just before the EXPOSE line\n // Even with AMD, Raphael should be defined globally\n oldRaphael.was ? (g.win.Raphael = R) : (Raphael = R);\n\n if(typeof exports == \"object\"){\n module.exports = R;\n }\n return R;\n}));\n\n","/**\n * ORGINAL VERSION:\n * ScaleRaphael 0.8 by Zevan Rosser 2010 \n * For use with Raphael library : www.raphaeljs.com\n * Licensed under the MIT license.\n * www.shapevent.com/scaleraphael/\n * \n * MODIFIED VERSION:\n * @author Bertrand Chevrier <bertrand@taotesting.com> for OAT SA\n * - Code refactoring to fit AMD modules\n */\ndefine('scale.raphael',['jquery', 'raphael'], function($, Raphael){\n \n var scaleRaphael = function(container, width, height){\n var wrapper = container.style ? container : document.getElementById(container);\n \n if (!wrapper.style.position){\n wrapper.style.position = \"relative\";\n }\n\n wrapper.style.width = width + \"px\";\n wrapper.style.height = height + \"px\";\n //wrapper.style.overflow = \"hidden\";\n \n var nestedWrapper;\n \n if (Raphael.type === \"VML\"){\n wrapper.innerHTML = \"<rvml:group style='position : absolute; width: 1000px; height: 1000px; top: 0px; left: 0px' coordsize='1000,1000' class='rvml'><\\/rvml:group>\";\n nestedWrapper = $(\".rvml\", $(wrapper))[0];\n }else{\n wrapper.innerHTML = \"<div class='svggroup'><\\/div>\";\n nestedWrapper = $(\".svggroup\", $(wrapper))[0];\n }\n\n var paper = new Raphael(nestedWrapper, width, height);\n var vmlDiv;\n \n if (Raphael.type === \"SVG\"){\n paper.canvas.setAttribute(\"viewBox\", \"0 0 \"+width+\" \"+height);\n }else{\n vmlDiv = wrapper.getElementsByTagName(\"div\")[0];\n }\n \n paper.changeSize = function(w, h, center, clipping){\n clipping = !clipping;\n \n var ratioW = w / width;\n var ratioH = h / height;\n var scale = ratioW < ratioH ? ratioW : ratioH;\n \n var newHeight = parseInt(height * scale);\n var newWidth = parseInt(width * scale);\n \n if (Raphael.type === \"VML\"){\n // scale the textpaths\n var txt = document.getElementsByTagName(\"textpath\");\n for (var i in txt){\n var curr = txt[i];\n if (curr.style){\n if(!curr._fontSize){\n var mod = curr.style.font.split(\"px\");\n curr._fontSize = parseInt(mod[0]);\n curr._font = mod[1];\n }\n curr.style.font = curr._fontSize * scale + \"px\" + curr._font;\n }\n }\n var newSize; \n if (newWidth < newHeight){\n newSize = newWidth * 1000 / width;\n }else{\n newSize = newHeight * 1000 / height;\n }\n newSize = parseInt(newSize);\n nestedWrapper.style.width = newSize + \"px\";\n nestedWrapper.style.height = newSize + \"px\";\n if (clipping){\n nestedWrapper.style.left = parseInt((w - newWidth) / 2) + \"px\";\n nestedWrapper.style.top = parseInt((h - newHeight) / 2) + \"px\";\n }\n vmlDiv.style.overflow = \"visible\";\n }\n \n if (clipping){\n newWidth = w;\n newHeight = h;\n }\n \n wrapper.style.width = newWidth + \"px\";\n wrapper.style.height = newHeight + \"px\";\n paper.setSize(newWidth, newHeight);\n \n if (center){\n wrapper.style.position = \"absolute\";\n wrapper.style.left = parseInt((w - newWidth) / 2) + \"px\";\n wrapper.style.top = parseInt((h - newHeight) / 2) + \"px\";\n }\n };\n \n paper.scaleAll = function(amount){\n paper.changeSize(width * amount, height * amount);\n };\n \n paper.changeSize(width, height);\n \n paper.w = width;\n paper.h = height;\n \n return paper;\n };\n\n return scaleRaphael;\n});\n\n","\ndefine(\"json!taoQtiItem/qtiCommonRenderer/renderers/graphic-style.json\", function(){ return { \n \"basic\" : {\n \"stroke\" : \"#8D949E\",\n \"stroke-width\" : 2,\n \"stroke-dasharray\": \"\",\n \"stroke-linejoin\" : \"round\",\n \"fill\" : \"#cccccc\",\n \"fill-opacity\" : 0.5,\n \"cursor\" : \"pointer\"\n },\n \"hover\" : {\n \"stroke\" : \"#3E7DA7\",\n \"fill\" : \"#0E5D91\", \n \"fill-opacity\" : 0.3\n },\n \"selectable\" : {\n \"stroke-dasharray\": \"-\",\n \"stroke\" : \"#3E7DA7\",\n \"fill\" : \"#cccccc\",\n \"fill-opacity\" : 0.5\n },\n \"active\" : {\n \"stroke\" : \"#3E7DA7\",\n \"stroke-dasharray\": \"\",\n \"fill\" : \"#0E5D91\",\n \"fill-opacity\" : 0.5\n },\n \"error\" : {\n \"stroke\" : \"#C74155\",\n \"stroke-dasharray\": \"\",\n \"fill-opacity\" : 0.5,\n \"fill\" : \"#661728\" \n },\n \"success\" : {\n \"stroke\" : \"#C74155\",\n \"stroke-dasharray\": \"\",\n \"fill\" : \"#0E914B\",\n \"fill-opacity\" : 0.5\n },\n \"layer\" : {\n \"fill\" : \"#ffffff\", \n \"opacity\" : 0, \n \"cursor\": \"pointer\"\n },\n \"creator\" : {\n \"fill-opacity\" : 0.5,\n \"stroke\" : \"#3E7DA7\",\n \"stroke-dasharray\": \"\",\n \"fill\" : \"#0E5D91\", \n \"cursor\" : \"pointer\"\n },\n \"imageset-rect-stroke\" : {\n \"fill\" : \"#ffffff\",\n \"stroke\" : \"#666666\",\n \"stroke-width\" : 1,\n \"stroke-linejoin\" : \"round\",\n \"cursor\" : \"pointer\"\n },\n \"imageset-rect-no-stroke\" : {\n \"fill\" : \"#ffffff\",\n \"stroke\" : \"#ffffff\",\n \"stroke-width\" : 2,\n \"stroke-linejoin\" : \"round\",\n \"cursor\" : \"pointer\"\n },\n \"imageset-img\" : {\n \"cursor\" : \"pointer\"\n },\n \"order-text\" : {\n \"fill\" : \"#ffffff\",\n \"stroke\": \"#000000\",\n \"stroke-width\" : 0.7,\n \"font-family\" : \"sans-serif\",\n \"font-weight\": \"bold\", \n \"font-size\" : 22,\n \"cursor\" : \"pointer\"\n },\n \"score-text-default\" : {\n \"stroke\": \"#444444\",\n \"stroke-width\" : 0.5,\n \"font-family\" : \"sans-serif\",\n \"font-weight\": \"normal\", \n \"font-size\" : 20,\n \"cursor\" : \"pointer\"\n },\n \"score-text\" : {\n \"stroke\": \"#000000\",\n \"stroke-width\" : 0.5,\n \"font-family\" : \"sans-serif\",\n \"font-weight\": \"normal\", \n \"font-size\" : 20,\n \"cursor\" : \"pointer\"\n },\n \"small-text\" : {\n \"stroke\": \"#000000\",\n \"stroke-width\" : 0.5,\n \"font-family\" : \"sans-serif\",\n \"font-weight\": \"normal\", \n \"font-size\" : 16,\n \"cursor\" : \"pointer\"\n },\n \"layer-pos-text\" : {\n \"stroke\": \"#333\",\n \"stroke-width\" : 0.5,\n \"font-family\" : \"sans-serif\",\n \"font-weight\": \"normal\", \n \"font-size\" : 14\n },\n \"target\" : {\n \"path\" : \"m 18,8.4143672 -1.882582,0 C 15.801891,4.9747852 13.071059,2.2344961 9.63508,1.9026738 L 9.63508,0 8.2305176,0 l 0,1.9026387 C 4.7947148,2.2343027 2.0637246,4.9746621 1.7481973,8.4143672 l -1.7481973,0 0,1.4045625 1.754877,0 c 0.3460429,3.4066753 3.0632871,6.1119843 6.4756406,6.4413813 l 0,1.739689 1.4045624,0 0,-1.739725 c 3.412547,-0.329537 6.129633,-3.034793 6.475641,-6.4413453 l 1.889279,0 z m -8.36492,6.5188648 0,-4.064673 -1.4045624,0 0,4.063882 C 5.5511016,14.612555 3.4232695,12.494619 3.0864551,9.8189297 l 4.0449512,0 0,-1.4045625 -4.0546368,0 C 3.3788672,5.6984941 5.5228887,3.5393379 8.2305176,3.2161113 l 0,3.9153125 1.4045624,0 0,-3.9160859 c 2.711162,0.3203965 4.858576,2.4808887 5.160955,5.1990293 l -3.927441,0 0,1.4045625 3.917773,0 C 14.449289,12.496957 12.318363,14.616158 9.63508,14.933232 z\",\n \"fill\" : \"#0E914B\",\n \"width\" : 1,\n \"stroke-width\" : 0,\n \"cursor\" : \"pointer\"\n },\n \"target-hover\" : {\n \"fill\" : \"#3E7DA7\", \n \"fill-opacity\" : 1\n },\n \"target-success\" : {\n \"fill\" : \"#0E914B\", \n \"fill-opacity\" : 1\n },\n \"assoc\" : {\n \"stroke-width\" : 2, \n \"stroke-linecap\" : \"round\", \n \"cursor\" : \"pointer\"\n },\n \"assoc-layer\" : {\n \"stroke-width\" : 12, \n \"cursor\" : \"pointer\", \n \"stroke-opacity\" : 0\n },\n \"assoc-bullet\" : {\n \"fill\": \"#000000\"\n },\n \"close\" : {\n \"path\" : \"m 8.9997236,18.000001 c -4.9703918,0 -8.99972284217367,-4.02901 -8.99972284217367,-9 C 7.5782633e-7,4.029011 4.0293108,9.8531742e-7 8.9997236,9.8531742e-7 13.970691,9.8531742e-7 18.000001,4.029011 18.000001,9.000001 c 0,4.97099 -4.02931,9 -9.0002774,9 z m 0.0045,-16.37151 c -4.06191,0 -7.35492,3.29635 -7.35492,7.36251 0,4.06562 3.292989,7.36255 7.35492,7.36255 4.0630384,0 7.3554334,-3.29693 7.3554334,-7.36255 0,-4.06614 -3.292969,-7.36251 -7.3554334,-7.36251 v 0 z m 3.1314894,9.31167 -1.953823,-1.94014 1.953843,-1.94018 c 0.08964,-0.089 0.134622,-0.19099 0.135073,-0.30584 4.31e-4,-0.11488 -0.04383,-0.21712 -0.132838,-0.30681 l -0.54267,-0.54685 c -0.08898,-0.0897 -0.190903,-0.13473 -0.305719,-0.13514 -0.114837,-4.4e-4 -0.217064,0.0439 -0.306703,0.1329 l -1.9623724,1.94865 -1.962395,-1.94865 c -0.08964,-0.089 -0.191845,-0.13336 -0.306702,-0.1329 -0.114837,4.3e-4 -0.216736,0.0455 -0.305719,0.13514 l -0.54265,0.54685 c -0.08902,0.0897 -0.133269,0.19193 -0.132838,0.30681 4.3e-4,0.11485 0.04543,0.21681 0.135073,0.30584 l 1.953823,1.94018 -1.953782,1.94014 c -0.0896,0.089 -0.134684,0.19094 -0.135114,0.3058 -4.31e-4,0.11486 0.04386,0.21716 0.132838,0.30681 l 0.542671,0.54687 c 0.08896,0.0897 0.190923,0.13467 0.305718,0.13516 0.114857,3.9e-4 0.217105,-0.0439 0.306724,-0.13288 l 1.962332,-1.94863 1.9623324,1.94863 c 0.08962,0.089 0.191886,0.13323 0.306744,0.13288 0.114836,-4.5e-4 0.216736,-0.0455 0.305698,-0.13516 l 0.542691,-0.54687 c 0.089,-0.0897 0.133227,-0.19193 0.132838,-0.30681 -3.9e-4,-0.1149 -0.0455,-0.21683 -0.135073,-0.3058 z\",\n \"fill\" : \"#0E5D91\",\n \"width\" : 1,\n \"opacity\" : 0,\n \"stroke-width\" : 0,\n \"cursor\" : \"pointer\"\n },\n \"close-bg\" : {\n \"fill\" : \"#ffffff\",\n \"stroke\" : \"none\",\n \"cursor\" : \"pointer\",\n \"opacity\" : 0 \n },\n \"touch-circle\" : {\n \"fill\" : \"none\", \n \"stroke\" : \"#3E7DA7\",\n \"stroke-width\" : 2\n }\n}\n;});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/Graphic',[\n 'jquery',\n 'lodash',\n 'raphael',\n 'scale.raphael',\n 'json!taoQtiItem/qtiCommonRenderer/renderers/graphic-style.json'\n], function($, _, raphael, scaleRaphael, gstyle){\n 'use strict';\n\n //maps the QTI shapes to Raphael shapes\n var shapeMap = {\n 'default' : 'rect',\n 'poly' : 'path'\n };\n\n //length constraints to validate coords\n var coordsValidator = {\n 'rect' : 4,\n 'ellipse' : 4,\n 'circle' : 3,\n 'poly' : 6,\n 'default' : 0\n };\n\n //transform the coords from the QTI system to Raphael system\n var qti2raphCoordsMapper = {\n\n /**\n * Rectangle coordinate mapper: from left-x,top-y,right-x-bottom-y to x,y,w,h\n * @param {Array} coords - QTI coords\n * @returns {Array} raphael coords\n */\n 'rect' : function(coords){\n return [\n coords[0],\n coords[1],\n coords[2] - coords[0],\n coords[3] - coords[1]\n ];\n },\n\n /**\n * Creates the coords for a default shape (a rectangle that covers all the paper)\n * @param {Raphael.Paper} paper - the paper\n * @returns {Array} raphael coords\n */\n 'default' : function(paper){\n return [ 0, 0, paper.width, paper.height ];\n },\n\n /**\n * polygone coordinate mapper: from x1,y1,...,xn,yn to SVG path format\n * @param {Array} coords - QTI coords\n * @returns {Array} path desc\n */\n 'poly' : function(coords){\n var a;\n var size = coords.length;\n\n // autoClose if needed\n if((coords[0] !== coords[size - 2]) && (coords[1] !== coords[size - 1])){\n coords.push(coords[0]);\n coords.push(coords[1]);\n }\n\n // move to first point\n coords[0] = \"M\" + coords[0];\n for(a = 1; a < size; a++){\n if(a % 2 === 0){\n coords[a] = \"L\" + coords[a];\n }\n }\n return [coords.join(\" \")];\n }\n };\n\n //transform the coords from a raphael shape to the QTI system\n var raph2qtiCoordsMapper = {\n\n /**\n * Rectangle coordinate mapper: from x,y,w,h to left-x,top-y,right-x-bottom-y\n * @param {Object} attr - Raphael Element's attributes\n * @returns {Array} qti based coords\n */\n 'rect' : function(attr){\n return [\n attr.x,\n attr.y,\n attr.x + attr.width,\n attr.y + attr.height\n ];\n },\n\n /**\n * Circle coordinate mapper\n * @param {Object} attr - Raphael Element's attributes\n * @returns {Array} qti based coords\n */\n 'circle' : function(attr){\n return [\n attr.cx,\n attr.cy,\n attr.r\n ];\n },\n\n /**\n * Ellispe coordinate mapper\n * @param {Object} attr - Raphael Element's attributes\n * @returns {Array} qti based coords\n */\n 'ellipse' : function(attr){\n return [\n attr.cx,\n attr.cy,\n attr.rx,\n attr.ry\n ];\n },\n\n /**\n * Get the coords for a default shape (a rectangle that covers all the paper)\n * @param {Object} attr - Raphael Element's attributes\n * @returns {Array} qti based coords\n */\n 'default' : function(attr){\n return this.rect(attr);\n },\n\n /**\n * polygone coordinate mapper: from SVG path (available as segments) to x1,y1,...,xn,yn format\n * @param {Raphael.Paper} paper - the paper\n * @returns {Array} raphael coords\n */\n 'path' : function(attr){\n var poly = [];\n var i;\n if(_.isArray(attr.path)){\n for(i = 1; i < attr.path.length; i++){\n if(attr.path[i].length === 3){\n poly.push(attr.path[i][1]);\n poly.push(attr.path[i][2]);\n }\n }\n }\n return poly;\n }\n };\n\n\n\n /**\n * Graphic interaction helper\n * @exports qtiCommonRenderer/helpers/Graphic\n */\n var GraphicHelper = {\n\n /**\n * Raw access to the styles\n * @type {Object}\n */\n _style : gstyle,\n\n\n /**\n * Apply the style defined by name to the element\n * @param {Raphael.Element} element - the element to change the state\n * @param {String} state - the name of the state (from states) to switch to\n */\n setStyle : function(element, name){\n if(element && gstyle[name]){\n element.attr(gstyle[name]);\n }\n },\n\n\n /**\n * Create a Raphael paper with a bg image, that is width responsive\n * @param {String} id - the id of the DOM element that will contain the paper\n * @param {String} serial - the interaction unique indentifier\n * @param {Object} options - the paper parameters\n * @param {String} options.img - the url of the background image\n * @param {jQueryElement} [options.container] - the parent of the paper element (got the closest parent by default)\n * @param {Number} [options.width] - the paper width\n * @param {Number} [options.height] - the paper height\n * @param {String} [options.imgId] - an identifier for the image element\n * @param {Function} [options.done] - executed once the image is loaded\n * @returns {Raphael.Paper} the paper\n */\n responsivePaper : function(id, serial, options){\n\n var paper, image;\n\n var $container = options.container || $('#' + id).parent();\n var $editor = $('.image-editor', $container);\n var $body = $container.closest('.qti-itemBody');\n var factory = raphael.type === 'SVG' ? scaleRaphael : raphael;\n\n var width = options.width || $container.innerWidth();\n var height = options.height || $container.innerHeight();\n\n var resizer = _.throttle(resizePaper, 10);\n\n //padding and border diff. always add 1px to cover the rounded value in scalling\n\n\n paper = factory.call(null ,id, width, height);\n image = paper.image(options.img, 0, 0, width, height);\n if(options.imgId){\n image.id = options.imgId;\n }\n\n //retry to resize once the SVG is loaded\n $(image.node)\n .attr('externalResourcesRequired','true')\n .on(\"load\", function() {\n resizePaper();\n });\n\n if(raphael.type === 'SVG'){\n\n //scale on creation\n resizePaper();\n\n $(window).on('resize.qti-widget.' + serial, resizer);\n $(document).on('customcssloaded.styleeditor', function(){\n _.delay(resizer, 200);\n });\n $container.on('resize.qti-widget.' + serial , function(e, givenWidth){\n resizer(e, givenWidth);\n });\n\n } else {\n paper.canvas.setAttribute('viewBox', '0 0 ' + width + ' ' + height);\n $container.find('.main-image-box').width(width);\n if(typeof options.resize === 'function'){\n options.resize(width, 1);\n }\n }\n\n /**\n * scale the raphael paper\n * @private\n */\n function resizePaper(e, givenWidth){\n if(e){\n e.stopPropagation();\n }\n\n var factor = 1;\n var diff = ($editor.outerWidth() - $editor.width()) + ($container.outerWidth() - $container.width()) + 1;\n var maxWidth = $body.width();\n var containerWidth = $container.innerWidth();\n\n if(containerWidth > 0 || givenWidth > 0){\n\n\n if(givenWidth < containerWidth && givenWidth < maxWidth){\n containerWidth = givenWidth - diff;\n } else if(containerWidth > maxWidth){\n containerWidth = maxWidth - diff;\n } else {\n containerWidth -= diff;\n }\n\n if($container.hasClass('responsive')){\n factor = containerWidth / width;\n\n paper.changeSize(containerWidth, height * factor, false, false);\n paper.scaleAll( factor );\n } else {\n paper.changeSize(containerWidth, height, false, false);\n }\n if(typeof options.resize === 'function'){\n options.resize(containerWidth, factor);\n }\n $container.trigger('resized.qti-widget');\n }\n }\n\n return paper;\n },\n\n /**\n * Create a new Element into a raphael paper\n * @param {Raphael.Paper} paper - the interaction paper\n * @param {String} type - the shape type\n * @param {String|Array.<Number>} coords - qti coords as a string or an array of number\n * @param {Object} [options] - additional creation options\n * @param {String} [options.id] - to set the new element id\n * @param {String} [options.title] - to set the new element title\n * @param {String} [options.style = basic] - to default style\n * @param {Boolean} [options.hover = true] - to disable the default hover state\n * @param {Boolean} [options.touchEffect = true] - a circle appears on touch\n * @param {Boolean} [options.qtiCoords = true] - if the coords are in QTI format\n * @returns {Raphael.Element} the created element\n */\n createElement : function(paper, type, coords, options){\n var self = this;\n var element;\n var bbox;\n var shaper = shapeMap[type] ? paper[shapeMap[type]] : paper[type];\n var shapeCoords = options.qtiCoords !== false ? self.raphaelCoords(paper, type, coords) : coords;\n\n if(typeof shaper === 'function'){\n element = shaper.apply(paper, shapeCoords);\n if(element){\n if(options.id){\n element.id = options.id;\n }\n if(options.title){\n element.attr('title', options.title);\n }\n element.attr(gstyle[options.style || 'basic'])\n .toFront();\n\n //preven issue in firefox 37\n $(element.node).removeAttr('stroke-dasharray');\n\n if(options.hover !== false){\n element.hover(function(){\n if(!element.flashing){\n self.updateElementState(this, 'hover');\n }\n }, function(){\n if(!element.flashing){\n self.updateElementState(this, this.active ? 'active' : this.selectable ? 'selectable' : 'basic');\n }\n });\n }\n\n if(options.touchEffect !== false){\n element.touchstart(function(){\n self.createTouchCircle(paper, element.getBBox());\n });\n }\n }\n\n } else {\n throw new Error('Unable to find method ' + type + ' on paper');\n }\n return element;\n },\n\n /**\n * Create target point\n * @param {Raphael.Paper} paper - the paper\n * @param {Object} [options]\n * @param {Object} [options.id] - and id to identify the target\n * @param {Object} [options.point] - the point to add to the paper\n * @param {Number} [options.point.x = 0] - point's x coord\n * @param {Number} [options.point.y = 0] - point's y coord\n * @param {Boolean} [options.hover] = true - the target has an hover effect\n * @param {Function} [options.create] - call once created\n * @param {Function} [options.remove] - call once removed\n */\n createTarget : function createTarget(paper, options){\n var self = this;\n options = options || {};\n var point = options.point || {x : 0, y : 0};\n var baseSize= 18;\n var factor = (paper.w && paper.width) ? paper.width / paper.w : 1;\n var size = factor !== 1 ? Math.floor(18 / factor) + 1 : baseSize;\n var half = size / 2;\n var x = point.x >= half ? point.x - half : 0;\n var y = point.y >= half ? point.y - half : 0;\n var hover = typeof options.hover === 'undefined' ? true : !!options.hover;\n var tBBox;\n\n //create the target from a path\n var target = paper\n .path(gstyle.target.path)\n .transform('T' + x + ',' + y + 's' + size / baseSize)\n .attr(gstyle.target)\n .attr('title', _('Click again to remove'));\n\n //generate an id if not set in options\n if(options.id){\n target.id = options.id;\n } else {\n var count = 0;\n paper.forEach(function(element){\n if(element.data('target')){\n count++;\n }\n });\n target.id = 'target-' + count;\n }\n\n tBBox = target.getBBox();\n\n //create an invisible rect over the target to ensure path selection\n var layer = paper\n .rect(tBBox.x, tBBox.y, tBBox.width, tBBox.height)\n .attr(gstyle.layer)\n .click(function(){\n var id = target.id;\n var point = this.data('point');\n if(_.isFunction(options.select)){\n options.select(target, point, this);\n }\n if(_.isFunction(options.remove)){\n this.remove();\n target.remove();\n options.remove(id, point);\n }\n });\n if(hover){\n layer.hover(function(){\n if(!target.flashing){\n self.setStyle(target, 'target-hover');\n }\n }, function(){\n if(!target.flashing){\n self.setStyle(target, 'target-success');\n }\n });\n }\n\n layer.id = 'layer-' + target.id;\n layer.data('point', point);\n target.data('target', point);\n\n if(_.isFunction(options.create)){\n options.create(target);\n }\n\n return target;\n },\n\n\n /**\n * Get the Raphael coordinate from QTI coordinate\n * @param {Raphael.Paper} paper - the interaction paper\n * @param {String} type - the shape type\n * @param {String|Array.<Number>} coords - qti coords as a string or an array of number\n * @returns {Array} the arguments array of coordinate to give to the approriate raphael shapre creator\n */\n raphaelCoords : function raphaelCoords(paper, type, coords){\n var shapeCoords;\n if(_.isString(coords)){\n coords = _.map(coords.split(','), function(coord){\n return parseInt(coord, 10);\n });\n }\n if(!_.isArray(coords) || coords.length < coordsValidator[type]){\n throw new Error('Invalid coords ' + JSON.stringify(coords) + ' for type ' + type);\n }\n switch(type){\n case 'rect' : shapeCoords = qti2raphCoordsMapper.rect(coords); break;\n case 'default' : shapeCoords = qti2raphCoordsMapper['default'].call(null, paper); break;\n case 'poly' : shapeCoords = qti2raphCoordsMapper.poly(coords); break;\n default : shapeCoords = coords; break;\n }\n return shapeCoords;\n },\n\n /**\n * Get the QTI coordinates from a Raphael Element\n * @param {Raphael.Element} element - the shape to get the coords from\n * @returns {String} the QTI coords\n */\n qtiCoords : function qtiCoords(element){\n var mapper = raph2qtiCoordsMapper[element.type];\n var result = '';\n if(_.isFunction(mapper)){\n result = _.map(mapper.call(raph2qtiCoordsMapper, element.attr()), function(coord){\n return _.parseInt(coord);\n }).join(',');\n }\n return result;\n },\n\n /**\n * Create a circle that animate and disapear from a shape.\n *\n * @param {Raphael.Paper} paper - the paper\n * @param {Raphael.Element} element - used to get the bbox from\n */\n createTouchCircle : function(paper, bbox){\n var radius = bbox.width > bbox.height ? bbox.width : bbox.height;\n var tCircle = paper.circle( (bbox.x + (bbox.width / 2)), (bbox.y + (bbox.height / 2)), radius);\n tCircle.attr(gstyle['touch-circle']);\n _.defer(function(){\n tCircle.animate({'r' : radius + 5, opacity: 0.7}, 300, function(){\n tCircle.remove();\n });\n });\n },\n\n /**\n * Create a text, that scales.\n *\n * @param {Raphael.Paper} paper - the paper\n * @param {Object} options - the text options\n * @param {Number} options.left - x coord\n * @param {Number} options.top - y coord\n * @param {String} [options.content] - the text content\n * @param {String} [options.id] - the element identifier\n * @param {String} [options.style = 'small-text'] - the style name according to the graphic-style.json keys\n * @param {String} [options.title] - the text tooltip content\n * @param {Boolean} [options.hide = false] - if the text starts hidden\n * @returns {Raphael.Element} the created text\n */\n createText : function(paper, options){\n var fontSize, scaledFontSize;\n var top = options.top || 0;\n var left = options.left || 0;\n var content = options.content || '';\n var style = options.style || 'small-text';\n var title = options.title || '';\n var factor = 1;\n\n if(paper.width && paper.w){\n factor = paper.width / paper.w;\n }\n\n var text = paper.text(left , top, content).toFront();\n if(options.id){\n text.id = options.id;\n }\n if(options.hide){\n text.hide();\n }\n\n text.attr(gstyle[style]);\n\n if(typeof factor !== 'undefined' && factor !== 1){\n fontSize = parseInt(text.attr('font-size'), 10);\n scaledFontSize = Math.floor(fontSize / factor) + 1;\n\n text.attr('font-size', scaledFontSize);\n }\n\n if(title){\n this.updateTitle(text, title);\n }\n return text;\n },\n\n /**\n * Create a text in the middle of the related shape.\n *\n * @param {Raphael.Paper} paper - the paper\n * @param {Raphael.Element} shape - the shape to add the text to\n * @param {Object} options - the text options\n * @param {String} [options.content] - the text content\n * @param {String} [options.id] - the element identifier\n * @param {String} [options.style = 'small-text'] - the style name according to the graphic-style.json keys\n * @param {String} [options.title] - the text tooltip content\n * @param {Boolean} [options.hide = false] - if the text starts hidden\n * @param {Boolean} [options.shapeClick = false] - clicking the text delegates to the shape\n * @returns {Raphael.Element} the created text\n */\n createShapeText : function(paper, shape, options){\n var self = this;\n var fontSize, scaledFontSize;\n var bbox = shape.getBBox();\n\n var text = this.createText(paper, _.merge({\n left : bbox.x + (bbox.width / 2),\n top : bbox.y + (bbox.height / 2)\n }, options));\n\n if(options.shapeClick){\n text.click(function(){\n self.trigger(shape, 'click');\n });\n }\n return text;\n },\n\n /**\n * Create an image with a padding and a border, using a set.\n *\n * @param {Raphael.Paper} paper - the paper\n * @param {Object} options - image options\n * @param {Number} options.left - x coord\n * @param {Number} options.top - y coord\n * @param {Number} options.width - image width\n * @param {Number} options.height - image height\n * @param {Number} options.url - image ulr\n * @param {Number} [options.padding = 6] - a multiple of 2 is welcomed\n * @param {Boolean} [options.border = false] - add a border around the image\n * @param {Boolean} [options.shadow = false] - add a shadow back the image\n * @returns {Raphael.Element} the created set, augmented of a move(x,y) method\n */\n createBorderedImage : function(paper, options){\n var padding = options.padding >= 0 ? options.padding : 6;\n var halfPad = padding / 2;\n\n var rx = options.left,\n ry = options.top,\n rw = options.width + padding,\n rh = options.height + padding;\n\n var ix = options.left + halfPad,\n iy = options.top + halfPad,\n iw = options.width,\n ih = options.height;\n\n var set = paper.set();\n\n //create a rectangle with a padding and a border.\n var rect = paper\n .rect(rx, ry, rw, rh)\n .attr(options.border ? gstyle['imageset-rect-stroke'] : gstyle['imageset-rect-no-stroke']);\n\n //and an image centered into the rectangle.\n var image = paper\n .image(options.url, ix, iy, iw, ih)\n .attr(gstyle['imageset-img']);\n\n if(options.shadow){\n set.push(rect.glow({\n width : 2,\n offsetx : 1,\n offsety : 1\n }));\n }\n set.push(rect, image);\n\n /**\n * Add a move method to set that keep the given coords during an animation\n * @private\n * @param {Number} x - destination\n * @param {Number} y - destination\n * @param {Number} [duration = 400] - the animation duration\n * @returns {Raphael.Element} the set for chaining\n */\n set.move = function move(x, y, duration){\n var animation = raphael.animation({x: x, y : y}, duration || 400);\n var elt = rect.animate(animation);\n image.animateWith(elt, animation, {x : x + halfPad, y : y + halfPad}, duration || 400);\n return set;\n };\n\n return set;\n },\n\n /**\n * Update the visual state of an Element\n * @param {Raphael.Element} element - the element to change the state\n * @param {String} state - the name of the state (from states) to switch to\n * @param {String} [title] - a title linked to this step\n */\n updateElementState : function(element, state, title){\n if(element && element.animate){\n element.animate(gstyle[state], 200, 'linear', function(){\n element.attr(gstyle[state]); //for attr that don't animate\n\n //preven issue in firefox 37\n $(element.node).removeAttr('stroke-dasharray');\n });\n\n if(title){\n this.updateTitle(element, title);\n }\n }\n },\n\n /**\n * Update the title of an element (the attr method of Raphael adds only new node instead of updating exisitings).\n * @param {Raphael.Element} element - the element to update the title\n * @param {String} [title] - the new title\n */\n updateTitle : function(element, title){\n if(element && element.node){\n //removes all remaining titles nodes\n _.forEach(element.node.children, function(child){\n if(child.nodeName.toLowerCase() === 'title'){\n element.node.removeChild(child);\n }\n });\n\n //then set the new title\n element.attr('title', title);\n }\n },\n\n /**\n * Highlight an element with the error style\n * @param {Raphael.Element} element - the element to hightlight\n * @param {String} [restorState = 'basic'] - the state to restore the elt into after flash\n */\n highlightError : function(element, restoredState){\n var self = this;\n if(element){\n element.flashing = true;\n self.updateElementState(element, 'error');\n _.delay(function(){\n self.updateElementState(element, restoredState || 'basic');\n element.flashing = false;\n }, 800);\n }\n },\n\n /**\n * Trigger an event already bound to a raphael element\n * @param {Raphael.Element} element\n * @param {String} event - the event name\n *\n */\n trigger : function(element, event){\n\n var evt = _.where(element.events, { name : event});\n if(evt.length && evt[0] && typeof evt[0].f === 'function'){\n evt[0].f.apply(element, Array.prototype.slice.call(arguments, 2));\n }\n },\n\n\n /**\n * Get an x/y point from a MouseEvent\n * @param {MouseEvent} event - the source event\n * @param {Raphael.Paper} paper - the interaction paper\n * @param {jQueryElement} $container - the paper container\n * @param {Boolean} isResponsive - if the paper is scaling\n * @returns {Object} x,y point\n */\n getPoint : function getPoint(event, paper, $container, isResponsive){\n var rwidth, rheight, wfactor;\n\n //get the click coords\n var point = this.clickPoint($container, event);\n\n //recalculate point coords in case of scaled image.\n if(paper.w && paper.w !== paper.width){\n if(isResponsive){\n wfactor = paper.w / paper.width;\n point.x = Math.round(point.x * wfactor);\n point.y = Math.round(point.y * wfactor);\n } else if(paper.width > paper.w){\n rwidth = (paper.width - paper.w) / 2;\n point.x = Math.round(point.x - rwidth);\n } else {\n wfactor = paper.w / paper.width;\n point.x = Math.round(point.x * wfactor);\n\n rheight = (paper.height - (paper.height * (2 - wfactor))) / 2;\n point.y = Math.round((point.y * wfactor) - rheight);\n }\n }\n\n return point;\n },\n\n /**\n * Get paper position relative to the container\n * @param {jQueryElement} $container - the paper container\n * @param {Raphael.Paper} paper - the interaction paper\n * @returns {Object} position with top and left\n */\n position : function($container, paper){\n var pw = parseInt(paper.w || paper.width, 10);\n var cw = parseInt($container.width(), 10);\n var ph = parseInt(paper.w || paper.width, 10);\n var ch = parseInt($container.height(), 10);\n\n return {\n left : ((cw - pw) / 2),\n top : ((ch - ph) / 2)\n };\n },\n\n /**\n * Get a point from a click event\n * @param {jQueryElement} $container - the element that contains the paper\n * @param {MouseEvent} event - the event triggered by the click\n * @returns {Object} the x,y point\n */\n clickPoint : function($container, event){\n var x, y;\n var offset = $container.offset();\n if (event.pageX || event.pageY) {\n x = event.pageX - offset.left;\n y = event.pageY - offset.top;\n } else if (event.clientX || event.clientY) {\n x = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - offset.left;\n y = event.clientY + document.body.scrollTop + document.documentElement.scrollTop - offset.top;\n }\n\n return { x : x, y : y };\n }\n };\n\n return GraphicHelper;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicAssociateInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/graphicAssociateInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/Graphic',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager'\n], function($, _, __, Promise, tpl, graphic, pciResponse, containerHelper, instructionMgr){\n 'use strict';\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n */\n var render = function render(interaction){\n var self = this;\n\n return new Promise(function(resolve, reject){\n\n var $container = containerHelper.get(interaction);\n var background = interaction.object.attributes;\n var $imageBox = $('.main-image-box', $container);\n interaction._vsets = [];\n\n $container\n .off('resized.qti-widget.resolve')\n .one('resized.qti-widget.resolve', resolve);\n\n interaction.paper = graphic.responsivePaper( 'graphic-paper-' + interaction.serial, interaction.serial, {\n width : background.width,\n height : background.height,\n img : self.resolveUrl(background.data),\n imgId : 'bg-image-' + interaction.serial,\n container : $container\n });\n\n //call render choice for each interaction's choices\n _.forEach(interaction.getChoices(), _.partial(_renderChoice, interaction));\n\n //make the paper clear the selection by clicking it\n _paperUnSelect(interaction);\n\n //set up the constraints instructions\n instructionMgr.minMaxChoiceInstructions(interaction, {\n min: interaction.attr('minAssociations'),\n max: interaction.attr('maxAssociations'),\n getResponse : _getRawResponse,\n onError : function(data){\n if(data && data.target){\n graphic.highlightError(data.target);\n }\n }\n });\n });\n };\n\n\n /**\n * Render a choice inside the paper.\n * Please note that the choice renderer isn't implemented separately because it relies on the Raphael paper instead of the DOM.\n * @param {Paper} paper - the raphael paper to add the choices to\n * @param {Object} interaction\n * @param {Object} choice - the hotspot choice to add to the interaction\n */\n var _renderChoice = function _renderChoice(interaction, choice){\n var shape = choice.attr('shape');\n var coords = choice.attr('coords');\n var maxAssociations = interaction.attr('maxAssociations');\n\n var rElement = graphic.createElement(interaction.paper, shape, coords, {\n id : choice.serial,\n title : __('Select this area to start an association')\n })\n .data('max', choice.attr('matchMax'))\n .data('matching', 0)\n .removeData('assocs')\n .click(function(){\n var self = this;\n var active, assocs;\n\n //can't create more associations than the maxAssociations attr\n if(maxAssociations > 0 && _getRawResponse(interaction).length >= maxAssociations){\n _shapesUnSelectable(interaction);\n instructionMgr.validateInstructions(interaction, { choice : choice, target : this });\n return;\n }\n\n if(this.selectable) {\n active = _getActiveElement(interaction);\n if(active){\n\n //increment the matching counter\n active.data('matching', active.data('matching') + 1);\n this.data('matching', this.data('matching') + 1);\n\n //attach the response to the active (not the dest)\n assocs = active.data('assocs') || [];\n assocs.push(choice.id());\n active.data('assocs', assocs);\n\n //and create the path\n _createPath(interaction, active, this, function onRemove(){\n\n //decrement the matching counter\n active.data('matching', active.data('matching') - 1);\n self.data('matching', self.data('matching') - 1);\n\n //detach the response from the active\n active.data('assocs', _.remove(active.data('assocs') || [], choice.id()));\n\n containerHelper.triggerResponseChangeEvent(interaction);\n instructionMgr.validateInstructions(interaction, { choice : choice, target : self });\n });\n }\n _shapesUnSelectable(interaction);\n\n } else if(this.active) {\n graphic.updateElementState(this, 'basic', __('Select another area to complete the association'));\n this.active = false;\n _shapesUnSelectable(interaction);\n } else if(_isMatchable(this)){\n graphic.updateElementState(this, 'active', __('Select this area to start an association'));\n this.active = true;\n _shapesSelectable(interaction, this);\n }\n\n containerHelper.triggerResponseChangeEvent(interaction);\n instructionMgr.validateInstructions(interaction, { choice : choice, target : this });\n });\n };\n\n /**\n * By clicking the paper image the shapes are restored to their default state\n * @private\n * @param {Object} interaction\n */\n var _paperUnSelect = function _paperUnSelect(interaction){\n var $container = containerHelper.get(interaction);\n var image = interaction.paper.getById('bg-image-' + interaction.serial);\n if(image){\n image.click(function(){\n _shapesUnSelectable(interaction);\n $container.trigger('unselect.graphicassociate');\n });\n }\n };\n\n /**\n * Get the element that has the active state\n * @private\n * @param {Object} interaction\n * @returns {Raphael.Element} the active element\n */\n var _getActiveElement = function _getActiveElement(interaction){\n var active;\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n if(element && element.active === true){\n active = element;\n return false;\n }\n });\n return active;\n };\n\n /**\n * Create a path from a src element to a destination.\n * The path is selectable and can be removed by itself\n * @private\n * @param {Object} interaction\n * @param {Raphael.Element} srcElement - the path starts from this shape\n * @param {Raphael.Element} destElement - the path ends to this shape\n * @param {Function} onRemove - called back on path remove\n */\n var _createPath = function _createPath(interaction, srcElement, destElement, onRemove){\n var $container = containerHelper.get(interaction);\n\n //virtual set, not a raphael one, just to group the elements\n var vset = [];\n\n //get the middle point of the source shape\n var src = srcElement.getBBox();\n var sx = src.x + (src.width / 2);\n var sy = src.y + (src.height / 2);\n\n //get the middle point of the source shape\n var dest = destElement.getBBox();\n var dx = dest.x + (dest.width / 2);\n var dy = dest.y + (dest.height / 2);\n\n //create a path with bullets at the beginning and the end\n var srcBullet = interaction.paper.circle(sx, sy, 3)\n .attr(graphic._style['assoc-bullet']);\n\n var destBullet = interaction.paper.circle(dx, dy, 3)\n .attr(graphic._style['assoc-bullet']);\n\n var path = interaction.paper.path('M' + sx + ',' + sy + 'L' + sx + ',' + sy)\n .attr(graphic._style.assoc)\n .animate({path : 'M' + sx + ',' + sy + 'L' + dx + ',' + dy}, 300);\n\n //create an overall layer that make easier the path selection\n var layer = interaction.paper.path('M' + sx + ',' + sy + 'L' + dx + ',' + dy)\n .attr(graphic._style['assoc-layer']);\n\n //get the middle of the path\n var midPath = layer.getPointAtLength(layer.getTotalLength() / 2);\n\n //create an hidden background for the closer\n var closerBg = interaction.paper.circle(midPath.x, midPath.y, 9)\n .attr(graphic._style['close-bg'])\n .toBack();\n\n //create an hidden closer\n var closer = interaction.paper.path(graphic._style.close.path)\n .attr(graphic._style.close)\n .transform('T' + (midPath.x - 9 ) + ',' + (midPath.y - 9))\n .attr('title', _('Click again to remove'))\n .toBack();\n\n //the path is below the shapes\n srcElement.toFront();\n destElement.toFront();\n\n //add the path into a set\n vset = [srcBullet, path, destBullet, layer, closerBg, closer];\n interaction._vsets.push(vset);\n\n //to identify the element of the set outside the context\n _.invoke(vset, 'data', 'assoc-path', true);\n\n //enable to select the path by clicking the invisible layer\n layer.click(function selectLigne (){\n if(closer.attrs.opacity === 0){\n showCloser();\n } else {\n hideCloser();\n }\n });\n\n $container.on('unselect.graphicassociate', function(){\n hideCloser();\n });\n\n function showCloser(){\n closerBg\n .toFront()\n .animate({opacity: 0.8}, 300)\n .click(removeSet);\n closer\n .toFront()\n .animate({opacity: 1}, 300)\n .click(removeSet);\n }\n\n function hideCloser(){\n if(closerBg && closerBg.type){\n closerBg\n .animate({opacity: 0}, 300, function(){\n closerBg.toBack();\n })\n .unclick();\n closer\n .animate({opacity: 0}, 300, function(){\n closer.toBack();\n })\n .unclick();\n }\n }\n\n //remove set handler\n function removeSet(){\n _.invoke(vset, 'remove');\n interaction._vsets = _.without(interaction._vsets, vset);\n if(typeof onRemove === 'function'){\n onRemove();\n }\n }\n };\n\n /**\n * Makes the shapes selectable\n * @private\n * @param {Object} interaction\n * @param {Raphael.Element} active - the active shape\n */\n var _shapesSelectable = function _shapesSelectable(interaction, active){\n\n var assocs = active.data('assocs') || [];\n\n //update the shape state\n _.forEach(interaction.getChoices(), function(choice){\n var element;\n if(!_.contains(assocs, choice.id())){\n element = interaction.paper.getById(choice.serial);\n if(!element.active && element.id !== active.id && _isMatchable(element, active)){\n element.selectable = true;\n graphic.updateElementState(element, 'selectable');\n }\n }\n });\n };\n\n /**\n * Makes all the shapes UNselectable\n * @private\n * @param {Object} interaction\n */\n var _shapesUnSelectable = function _shapesUnSelectable(interaction){\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n if(element){\n element.selectable = false;\n element.active = false;\n graphic.updateElementState(element, 'basic');\n }\n });\n };\n\n /**\n * Check if a shape can accept matches\n * @private\n * @param {Raphael.Element} element - the shape\n * @returns {Boolean} true if the element is matchable\n */\n var _isMatchable = function(element){\n var matchable = false;\n var matching, matchMax;\n if(element){\n matchMax = element.data('max') || 0;\n matching = element.data('matching') || 0;\n matchable = (matchMax === 0 || matchMax > matching);\n }\n return matchable;\n };\n\n /**\n * Get the response from the interaction\n * @private\n * @param {Object} interaction\n * @returns {Array} the response in raw format\n */\n var _getRawResponse = function _getRawResponse(interaction){\n var responses = [];\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n var assocs = element.data('assocs');\n if(element && assocs){\n responses = responses.concat(_.map(assocs, function(id){\n return [choice.id(), id];\n }));\n }\n });\n return responses;\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n\n var responseValues;\n if(response && interaction.paper){\n\n try{\n responseValues = pciResponse.unserialize(response, interaction);\n } catch(e){}\n\n if(_.isArray(responseValues)){\n //create an object with choiceId => shapeElement\n var map = _.transform(interaction.getChoices(), function(res, choice){\n res[choice.id()] = interaction.paper.getById(choice.serial);\n });\n _.forEach(responseValues, function(responseValue){\n var el1, el2;\n if(_.isArray(responseValue) && responseValue.length === 2){\n el1 = map[responseValue[0]];\n el2 = map[responseValue[1]];\n if(el1 && el2){\n graphic.trigger(el1, 'click');\n graphic.trigger(el2, 'click');\n }\n }\n });\n }\n }\n };\n\n /**\n * Reset the current responses of the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var resetResponse = function resetResponse(interaction){\n var toRemove = [];\n\n //reset response and state bound to shapes\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n if(element){\n element.data({\n 'max' : choice.attr('matchMax'),\n 'matching' : 0,\n 'assocs' : []\n });\n }\n });\n\n //remove the paths, but outside the forEach as it is implemented as a linked list\n interaction.paper.forEach(function(elt){\n if(elt.data('assoc-path')){\n toRemove.push(elt);\n }\n });\n _.invoke(toRemove, 'remove');\n };\n\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n var raw = _getRawResponse(interaction);\n var response = pciResponse.serialize(_getRawResponse(interaction), interaction);\n return response;\n };\n\n /**\n * Clean interaction destroy\n * @param {Object} interaction\n */\n var destroy = function destroy(interaction){\n var $container;\n if(interaction.paper){\n $container = containerHelper.get(interaction);\n\n $(window).off('resize.qti-widget.' + interaction.serial);\n $container.off('resize.qti-widget.' + interaction.serial);\n\n interaction.paper.clear();\n instructionMgr.removeInstructions(interaction);\n\n $container.off('.graphicassociate');\n\n $('.main-image-box', $container).empty().removeAttr('style');\n $('.image-editor', $container).removeAttr('style');\n $('ul', $container).empty();\n }\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n /**\n * Expose the common renderer for the hotspot interaction\n * @exports qtiCommonRenderer/renderers/interactions/GraphicAssociateInteraction\n */\n return {\n qtiClass : 'graphicAssociateInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/graphicGapMatchInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program7(depth0,data) {\n \n var stack1;\n stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-graphicInteraction qti-graphicGapMatchInteraction clearfix\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"image-editor solid\\\">\\n <div id='graphic-paper-\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"' class=\\\"main-image-box\\\"></div>\\n <div class=\\\"clearfix\\\"></div>\\n <ul class=\\\"none block-listing horizontal source\\\">\\n \";\n options={hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data}\n if (helper = helpers.gapImgs) { stack1 = helper.call(depth0, options); }\n else { helper = (depth0 && depth0.gapImgs); stack1 = typeof helper === functionType ? helper.call(depth0, options) : helper; }\n if (!helpers.gapImgs) { stack1 = blockHelperMissing.call(depth0, stack1, {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data}); }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </ul>\\n </div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicGapMatchInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'core/mouseEvent',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/graphicGapMatchInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/Graphic',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'interact',\n 'ui/interactUtils'\n], function($, _, __, Promise, triggerMouseEvent, tpl, graphic, pciResponse, containerHelper, instructionMgr, interact, interactUtils){\n 'use strict';\n\n var isDragAndDropEnabled,\n // this represents the state for the active droppable zone\n // we need it only to access the active dropzone in the iFrameFix\n // should be removed when the old test runner is discarded\n activeDrop = null;\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @return {Promise}\n */\n var render = function render(interaction){\n var self = this;\n\n return new Promise(function(resolve, reject){\n\n var $container = containerHelper.get(interaction);\n var $gapList = $('ul.source', $container);\n var background = interaction.object.attributes;\n\n interaction.gapFillers = [];\n\n if (self.getOption && self.getOption(\"enableDragAndDrop\") && self.getOption(\"enableDragAndDrop\").graphicGapMatch) {\n isDragAndDropEnabled = self.getOption(\"enableDragAndDrop\").graphicGapMatch;\n }\n\n $container\n .off('resized.qti-widget.resolve')\n .one('resized.qti-widget.resolve', resolve);\n\n //create the paper\n interaction.paper = graphic.responsivePaper( 'graphic-paper-' + interaction.serial, interaction.serial, {\n width : background.width,\n height : background.height,\n img : self.resolveUrl(background.data),\n imgId : 'bg-image-' + interaction.serial,\n container : $container,\n resize : function(newSize, factor){\n $gapList.css('max-width', newSize + 'px');\n if(factor !== 1){\n $gapList.find('img').each(function(){\n var $img = $(this);\n $img.width( $img.attr('width') * factor );\n $img.height( $img.attr('height') * factor );\n });\n }\n }\n });\n\n //call render choice for each interaction's choices\n _.forEach(interaction.getChoices(), _.partial(_renderChoice, interaction));\n\n //create the list of gap images\n _renderGapList(interaction, $gapList);\n\n //clicking the paper to reset selection\n _paperUnSelect(interaction);\n\n });\n };\n\n\n /**\n * Render a choice (= hotspot) inside the paper.\n * Please note that the choice renderer isn't implemented separately because it relies on the Raphael paper instead of the DOM.\n *\n * @private\n * @param {Object} interaction\n * @param {Object} choice - the hotspot choice to add to the interaction\n */\n var _renderChoice = function _renderChoice(interaction, choice){\n\n //create the shape\n var rElement = graphic.createElement(interaction.paper, choice.attr('shape'), choice.attr('coords'), {\n id : choice.serial,\n title : __('Select an image first'),\n hover : false\n })\n .data('max', choice.attr('matchMax') )\n .data('matching', []);\n\n interact(rElement.node).on('tap', function onClickShape(){\n handleShapeSelect();\n });\n\n if (isDragAndDropEnabled) {\n interact(rElement.node).dropzone({\n overlap: 0.15,\n ondragenter: function() {\n graphic.setStyle(rElement, 'hover');\n activeDrop = rElement.node;\n },\n ondrop: function () {\n graphic.setStyle(rElement, 'selectable');\n handleShapeSelect();\n activeDrop = null;\n },\n ondragleave: function() {\n graphic.setStyle(rElement, 'selectable');\n activeDrop = null;\n }\n });\n }\n\n function handleShapeSelect() {\n // check if can make the shape selectable on click\n if(_isMatchable(rElement) && rElement.selectable === true){\n _selectShape(interaction, rElement);\n }\n }\n };\n\n function _iFrameDragFix(draggableSelector, target) {\n interactUtils.iFrameDragFixOn(function () {\n if (activeDrop) {\n interact(activeDrop).fire({\n type: 'drop',\n target: activeDrop,\n relatedTarget: target\n });\n }\n interact(draggableSelector).fire({\n type: 'dragend',\n target: target\n });\n });\n }\n\n /**\n * Render the list of gap fillers\n * @private\n * @param {Object} interaction\n * @param {jQueryElement} $gapList - the list than contains the orderers\n */\n var _renderGapList = function _renderGapList(interaction, $gapList){\n\n var gapFillersSelector = $gapList.selector + ' li';\n\n interact(gapFillersSelector).on('tap', function onClickGapImg(e) {\n e.stopPropagation();\n e.preventDefault();\n toggleActiveGapState($(e.currentTarget));\n });\n\n if (isDragAndDropEnabled) {\n var dragOptions = {\n inertia: false,\n autoScroll: true,\n restrict: {\n restriction: \".qti-interaction\",\n endOnly: false,\n elementRect: {top: 0, left: 0, bottom: 1, right: 1}\n }\n };\n\n interact(gapFillersSelector).draggable(_.assign({}, dragOptions, {\n onstart: function (e) {\n var $target = $(e.target);\n _setActiveGapState($target);\n $target.addClass('dragged');\n\n _iFrameDragFix(gapFillersSelector, e.target);\n },\n onmove: function (e) {\n interactUtils.moveElement(e.target, e.dx, e.dy);\n },\n onend: function (e) {\n var $target = $(e.target);\n _setInactiveGapState($target);\n $target.removeClass('dragged');\n interactUtils.restoreOriginalPosition($target);\n interactUtils.iFrameDragFixOff();\n }\n })).styleCursor(false);\n }\n\n function toggleActiveGapState($target) {\n if(!$target.hasClass('disabled')){\n if($target.hasClass('active')){\n _setInactiveGapState($target);\n } else {\n _setActiveGapState($target);\n }\n }\n }\n\n function _setActiveGapState($target) {\n $gapList.children('li').removeClass('active');\n $target.addClass('active');\n _shapesSelectable(interaction);\n }\n\n function _setInactiveGapState($target) {\n $target.removeClass('active');\n _shapesUnSelectable(interaction);\n }\n };\n\n /**\n * By clicking the paper image the shapes are restored to their default state\n * @private\n * @param {Object} interaction\n */\n var _paperUnSelect = function _paperUnSelect(interaction){\n var $container = containerHelper.get(interaction);\n var $gapImages = $('ul > li', $container);\n var bgImage = interaction.paper.getById('bg-image-' + interaction.serial);\n if(bgImage){\n interact(bgImage.node).on('tap', function() {\n _shapesUnSelectable(interaction);\n $gapImages.removeClass('active');\n });\n }\n };\n\n /**\n * Select a shape (= hotspot) (a gap image must be active)\n * @private\n * @param {Object} interaction\n * @param {Raphael.Element} element - the selected shape\n * @param {Boolean} [trackResponse = true] - if the selection trigger a response chane\n */\n var _selectShape = function _selectShape(interaction, element, trackResponse){\n var $img,\n $clone,\n gapFiller,\n id,\n bbox,\n shapeOffset,\n activeOffset,\n matching,\n currentCount;\n\n //lookup for the active element\n var $container = containerHelper.get(interaction);\n var $gapList = $('ul', $container);\n var $active = $gapList.find('.active:first');\n var $imageBox = $('.main-image-box', $container);\n var boxOffset = $imageBox.offset();\n\n if(typeof trackResponse === 'undefined'){\n trackResponse = true;\n }\n\n if($active.length){\n\n //the macthing elements are linked to the shape\n id = $active.data('identifier');\n matching = element.data('matching') || [];\n matching.push(id);\n element.data('matching', matching);\n currentCount = matching.length;\n\n //the image to clone\n $img = $active.find('img');\n\n //then reset the state of the shapes and the gap images\n _shapesUnSelectable(interaction);\n $gapList.children().removeClass('active');\n\n $clone = $img.clone();\n shapeOffset = $(element.node).offset();\n activeOffset = $active.offset();\n\n $clone.css({\n 'position' : 'absolute',\n 'display' : 'block',\n 'z-index' : 10000,\n 'opacity' : 0.8,\n 'top' : activeOffset.top - boxOffset.top,\n 'left' : activeOffset.left - boxOffset.left\n });\n\n $clone.appendTo($imageBox);\n $clone.animate({\n 'top' : shapeOffset.top - boxOffset.top,\n 'left' : shapeOffset.left - boxOffset.left\n }, 200, function animationEnd(){\n var gapFillerImage;\n\n $clone.remove();\n\n //extract some coords for positioning\n bbox = element.getBBox();\n\n //create an image into the paper and move it to the selected shape\n gapFiller = graphic.createBorderedImage(interaction.paper, {\n url : $img.attr('src'),\n left : bbox.x + (3 * (currentCount - 1)),\n top : bbox.y + (3 * (currentCount - 1)),\n width : parseInt($img.attr('width'), 10),\n height : parseInt($img.attr('height'), 10),\n padding : 0,\n border : false,\n shadow : true\n })\n .data('identifier', id)\n .toFront();\n\n gapFillerImage = gapFiller[2].node;\n interact(gapFillerImage).on('tap', function (e) {\n var target = e.currentTarget;\n var rElement = interaction.paper.getById(target.raphaelid);\n\n e.preventDefault();\n e.stopPropagation();\n\n // adding a new gapfiller on the hotspot by simulating a click on the underlying shape...\n if($gapList.find('.active').length > 0){\n interactUtils.tapOn(element.node);\n\n // ... or removing the existing gapfiller\n } else {\n //update the element matching array\n element.data('matching', _.without(element.data('matching') || [], rElement.data('identifier')));\n\n //delete interaction.gapFillers[interaction.gapFillers.indexOf(gapFiller)];\n interaction.gapFillers = _.without(interaction.gapFillers, gapFiller);\n\n gapFiller.remove();\n\n containerHelper.triggerResponseChangeEvent(interaction);\n }\n });\n\n interaction.gapFillers.push(gapFiller);\n\n containerHelper.triggerResponseChangeEvent(interaction);\n });\n }\n };\n\n /**\n * Makes the shapes selectable (at least those who can still accept matches)\n * @private\n * @param {Object} interaction\n */\n var _shapesSelectable = function _shapesSelectable(interaction){\n\n var tooltip = __('Select the area to add an image');\n\n //update the shape state\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n if(_isMatchable(element)){\n element.selectable = true;\n graphic.setStyle(element, 'selectable');\n graphic.updateTitle(element, tooltip);\n }\n });\n\n //update the gap images tooltip\n _.forEach(interaction.gapFillers, function(gapFiller){\n gapFiller.forEach(function(element){\n graphic.updateTitle(element, tooltip);\n });\n });\n };\n\n /**\n * Makes all the shapes UNselectable\n * @private\n * @param {Object} interaction\n */\n var _shapesUnSelectable = function _shapesUnSelectable(interaction){\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n if(element){\n element.selectable = false;\n graphic.setStyle(element, 'basic');\n graphic.updateTitle(element, __('Select an image first'));\n }\n });\n\n //update the gap images tooltip\n _.forEach(interaction.gapFillers, function(gapFiller){\n gapFiller.forEach(function(element){\n graphic.updateTitle(element, __('Remove'));\n });\n });\n };\n\n /**\n * Check if a shape can accept matches\n * @private\n * @param {Raphael.Element} element - the shape\n * @returns {Boolean} true if the element is matchable\n */\n var _isMatchable = function(element){\n var matchable = false;\n var matching, matchMax;\n if(element){\n matchMax = element.data('max') || 0;\n matching = element.data('matching') || [];\n matchable = (matchMax === 0 || matchMax > matching.length);\n }\n return matchable;\n };\n\n /**\n * Get the responses from the interaction\n * @private\n * @param {Object} interaction\n * @returns {Array} of matches\n */\n var _getRawResponse = function _getRawResponse(interaction){\n var pairs = [];\n\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n if(element && _.isArray(element.data('matching'))){\n _.forEach(element.data('matching'), function(match){\n pairs.push([choice.id(), match]);\n });\n }\n });\n return pairs;\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n var $container = containerHelper.get(interaction);\n var responseValues;\n if(response && interaction.paper){\n try{\n responseValues = pciResponse.unserialize(response, interaction);\n } catch(e){ }\n\n if(_.isArray(responseValues)){\n\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n if(element){\n _.forEach(responseValues, function(pair){\n var index = _.indexOf(pair, choice.id());\n if(index > -1 && pair.length === 2){\n\n $(\"[data-identifier=\" + pair[index === 0 ? 1 : 0] + \"]\", $container).addClass('active');\n _selectShape(interaction, element, false);\n }\n });\n }\n });\n }\n }\n };\n\n /**\n * Reset the current responses of the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n */\n var resetResponse = function resetResponse(interaction){\n _shapesUnSelectable(interaction);\n\n _.forEach(interaction.gapFillers, function(gapFiller){\n interactUtils.tapOn(gapFiller.items[2][0]); // this refers to the gapFiller image\n });\n };\n\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n var raw = _getRawResponse(interaction);\n return pciResponse.serialize(raw, interaction);\n };\n\n /**\n * Clean interaction destroy\n * @param {Object} interaction\n */\n var destroy = function destroy(interaction){\n var $container;\n if(interaction.paper){\n $container = containerHelper.get(interaction);\n\n $(window).off('resize.qti-widget.' + interaction.serial);\n $container.off('resize.qti-widget.' + interaction.serial);\n\n interaction.paper.clear();\n instructionMgr.removeInstructions(interaction);\n\n $('.main-image-box', $container).empty().removeAttr('style');\n $('.image-editor', $container).removeAttr('style');\n $('ul', $container).empty();\n\n interact($container.find('ul.source li').selector).unset(); // gapfillers\n interact($container.find('.main-image-box rect').selector).unset(); // choices/hotspot\n }\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n /**\n * Expose the common renderer for the hotspot interaction\n * @exports qtiCommonRenderer/renderers/interactions/HotspotInteraction\n */\n return {\n qtiClass : 'graphicGapMatchInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/graphicOrderInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-graphicInteraction qti-graphicOrderInteraction clearfix\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"image-editor solid\\\">\\n <div id='graphic-paper-\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"' class=\\\"main-image-box\\\"></div>\\n <div class=\\\"clearfix\\\"></div>\\n <ul class=\\\"none block-listing horizontal ordinals\\\"></ul>\\n </div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicOrderInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/graphicOrderInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/Graphic',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager'\n], function($, _, __, Promise, tpl, graphic, pciResponse, containerHelper, instructionMgr){\n 'use strict';\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n */\n var render = function render(interaction){\n var self = this;\n\n return new Promise(function(resolve, reject){\n var $container = containerHelper.get(interaction);\n var $orderList = $('ul', $container);\n var background = interaction.object.attributes;\n\n $container\n .off('resized.qti-widget.resolve')\n .one('resized.qti-widget.resolve', resolve);\n\n //create the paper\n interaction.paper = graphic.responsivePaper( 'graphic-paper-' + interaction.serial, interaction.serial, {\n width : background.width,\n height : background.height,\n img : self.resolveUrl(background.data),\n imgId : 'bg-image-' + interaction.serial,\n container : $container\n });\n\n //create the list of number to order\n _renderOrderList(interaction, $orderList);\n\n //call render choice for each interaction's choices\n _.forEach(interaction.getChoices(), _.partial(_renderChoice, interaction, $orderList));\n\n //set up the constraints instructions\n instructionMgr.minMaxChoiceInstructions(interaction, {\n min: interaction.attr('minChoices'),\n max: interaction.attr('maxChoices'),\n getResponse : _getRawResponse,\n onError : function(data){\n graphic.highlightError(data.target);\n }\n });\n });\n };\n\n /**\n * Render a choice inside the paper.\n * Please note that the choice renderer isn't implemented separately because it relies on the Raphael paper instead of the DOM.\n * @private\n * @param {Object} interaction\n * @param {jQueryElement} $orderList - the list than contains the orderers\n * @param {Object} choice - the hotspot choice to add to the interaction\n */\n var _renderChoice = function _renderChoice(interaction, $orderList, choice){\n\n var rElement = graphic.createElement(interaction.paper, choice.attr('shape'), choice.attr('coords'), {\n id : choice.serial,\n title : __('Select this area')\n })\n .click(function(){\n if(this.active){\n _unselectShape(interaction.paper, this, $orderList);\n } else {\n _selectShape(interaction.paper, this, $orderList);\n }\n containerHelper.triggerResponseChangeEvent(interaction);\n instructionMgr.validateInstructions(interaction, { choice : choice });\n });\n };\n\n /**\n * Render the list of numbers\n * @private\n * @param {Object} interaction\n * @param {jQueryElement} $orderList - the list than contains the orderers\n */\n var _renderOrderList = function _renderOrderList(interaction, $orderList){\n var $orderers;\n var size = _.size(interaction.getChoices());\n var min = interaction.attr('minChoices');\n var max = interaction.attr('maxChoices');\n\n //calculate the number of orderer to display\n if(max > 0 && max < size){\n size = max;\n } else if(min > 0 && min < size){\n size = min;\n }\n\n //add them to the list\n _.times(size, function(index){\n var position = index + 1;\n var $orderer = $('<li class=\"selectable\" data-number=\"' + position + '\">' + position + '</li>');\n if(index === 0){\n $orderer.addClass('active');\n }\n $orderList.append($orderer);\n });\n\n //create related svg texts\n _createTexts(interaction.paper, size, $orderList);\n\n //bind the activation event\n $orderers = $orderList.children('li');\n $orderers.click(function(e){\n e.preventDefault();\n var $orderer = $(this);\n\n if(!$orderer.hasClass('active') && !$orderer.hasClass('disabled')){\n $orderers.removeClass('active');\n $orderer.addClass('active');\n }\n });\n };\n\n /**\n * Select a shape to position an order\n * @private\n * @param {Raphael.Paper} paper - the interaction paper\n * @param {Raphael.element} element - the selected shape\n * @param {jQueryElement} $orderList - the list than contains the orderers\n */\n var _selectShape = function _selectShape(paper, element, $orderList){\n\n //lookup for the active number\n var $active = $orderList.find('.active:first');\n if($active.length && $active.data('number') > 0){\n\n //associate the current number directly to the element\n element.data('number', $active.data('number'));\n element.active = true;\n _showText(paper, element);\n graphic.updateElementState(element, 'active');\n\n //update the state of the order list\n $active.toggleClass('active disabled').siblings(':not(.disabled)').first().toggleClass('active');\n }\n };\n\n /**\n * Unselect a shape to free the position\n * @private\n * @param {Raphael.Paper} paper - the interaction paper\n * @param {Raphael.element} element - the unselected shape\n * @param {jQueryElement} $orderList - the list than contains the orderers\n */\n var _unselectShape = function _unselectShape(paper, element, $orderList){\n var number = element.data('number');\n\n //update element state\n element.active = false;\n _hideText(paper, element);\n element.removeData('number');\n graphic.updateElementState(element, 'basic');\n\n //reset order list state and activate the removed number\n $orderList\n .children().removeClass('active')\n .filter('[data-number='+number+']').removeClass('disabled').addClass('active');\n };\n\n /**\n * Creates ALL the texts (the numbers to display in the shapes). They are created styled but hidden.\n *\n * @private\n * @param {Raphael.Paper} paper - the interaction paper\n * @param {Number} size - the number of numbers to create...\n * @param {jQueryElement} $orderList - the list than contains the orderers\n * @return {Array} the creates text element\n */\n var _createTexts = function _createTexts(paper, size){\n var texts = [];\n _.times(size, function(index){\n\n var number = index + 1;\n var text = graphic.createText(paper, {\n id : 'text-' + number,\n content : number,\n title : __('Remove'),\n style : 'order-text',\n hide : true\n });\n\n //clicking the text will has the same effect that clicking the shape: unselect.\n text.click(function(){\n paper.forEach(function(element){\n if(element.data('number') === number && element.events){ //we just need to retrieve the right element\n //call the click event\n var evt = _.where(element.events, { name : 'click'});\n if(evt.length && evt[0] && typeof evt[0].f === 'function'){\n evt[0].f.call(element);\n }\n }\n });\n });\n texts.push(text);\n });\n return texts;\n };\n\n /**\n * Show the text that match the element's number.\n * We need to display it at the center of the shape.\n * @private\n * @param {Raphael.Paper} paper - the interaction paper\n * @param {Raphael.Element} element - the element to show the text for\n */\n var _showText = function _showText(paper, element){\n var bbox = element.getBBox();\n var transf;\n\n //we retrieve the good text from it's id\n var text = paper.getById('text-' + element.data('number'));\n if(text){\n\n //move it to the center of the shape (using absolute transform), and than display it\n transf = 'T' + (bbox.x + (bbox.width / 2)) + ',' +\n (bbox.y + (bbox.height / 2));\n text.transform(transf)\n .show()\n .toFront();\n }\n };\n\n /**\n * Hide an element text.\n * @private\n * @param {Raphael.Paper} paper - the interaction paper\n * @param {Raphael.Element} element - the element to hide the text for\n */\n var _hideText = function _hideText (paper, element){\n var text = paper.getById('text-' + element.data('number'));\n if(text){\n text.hide();\n }\n };\n\n /**\n * Get the responses from the interaction\n * @private\n * @param {Object} interaction\n * @returns {Array} of points\n */\n var _getRawResponse = function _getRawResponse(interaction){\n var response = [];\n _.forEach(interaction.getChoices(), function(choice){\n var elt = interaction.paper.getById(choice.serial);\n if(elt && elt.data('number')){\n response.push({\n index : elt.data('number'),\n id : choice.id()\n });\n }\n });\n return _(response).sortBy('index').map('id').value();\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n var responseValues;\n var $container = containerHelper.get(interaction);\n var $orderList = $('ul', $container);\n if(response && interaction.paper){\n\n try {\n //try to unserualize tthe pci response\n responseValues = pciResponse.unserialize(response, interaction);\n } catch(e){}\n\n if(_.isArray(responseValues)){\n _.forEach(responseValues, function(responseValue, index){\n var element;\n var number = index + 1;\n\n //get the choice that match the response\n var choice = _(interaction.getChoices()).where({'attributes' : { 'identifier' : responseValue}}).first();\n if(choice){\n element = interaction.paper.getById(choice.serial);\n if(element){\n //activate the orderer to be consistant\n $orderList.children('[data-number='+number+']').addClass('active');\n\n //select the related shape\n _selectShape(interaction.paper, element, $orderList);\n }\n }\n });\n }\n }\n };\n\n /**\n * Reset the current responses of the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var resetResponse = function resetResponse(interaction){\n var $container = containerHelper.get(interaction);\n var $orderList = $('ul', $container);\n\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n if(element){\n _unselectShape(interaction.paper, element, $orderList);\n }\n });\n\n $orderList.children('li').removeClass('active disabled').first().addClass('active');\n };\n\n\n /**\n i* Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n return pciResponse.serialize(_getRawResponse(interaction), interaction);\n };\n\n /**\n * Clean interaction destroy\n * @param {Object} interaction\n */\n var destroy = function destroy(interaction){\n var $container;\n if(interaction.paper){\n $container = containerHelper.get(interaction);\n\n $(window).off('resize.qti-widget.' + interaction.serial);\n $container.off('resize.qti-widget.' + interaction.serial);\n\n interaction.paper.clear();\n instructionMgr.removeInstructions(interaction);\n\n $('.main-image-box', $container).empty().removeAttr('style');\n $('.image-editor', $container).removeAttr('style');\n $('ul', $container).empty();\n }\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n\n /**\n * Expose the common renderer for the interaction\n * @exports qtiCommonRenderer/renderers/interactions/SelectPointInteraction\n */\n return {\n qtiClass : 'graphicOrderInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/hotspotInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-graphicInteraction qti-hotspotInteraction clearfix\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"image-editor solid\\\">\\n <div id='graphic-paper-\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"' class=\\\"main-image-box\\\"></div>\\n </div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/HotspotInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/hotspotInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/Graphic',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager'\n], function($, _, __, Promise, tpl, graphic, pciResponse, containerHelper, instructionMgr){\n 'use strict';\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n */\n var render = function render(interaction){\n var self = this;\n\n return new Promise(function(resolve, reject){\n var $container = containerHelper.get(interaction);\n var background = interaction.object.attributes;\n\n $container\n .off('resized.qti-widget.resolve')\n .one('resized.qti-widget.resolve', resolve);\n\n interaction.paper = graphic.responsivePaper( 'graphic-paper-' + interaction.serial, interaction.serial, {\n width : background.width,\n height : background.height,\n img : self.resolveUrl(background.data),\n container : $container\n });\n\n //call render choice for each interaction's choices\n _.forEach(interaction.getChoices(), _.partial(_renderChoice, interaction));\n\n //set up the constraints instructions\n instructionMgr.minMaxChoiceInstructions(interaction, {\n min: interaction.attr('minChoices'),\n max: interaction.attr('maxChoices'),\n getResponse : _getRawResponse,\n onError : function(data){\n if(data.target.active){\n data.target.active = false;\n graphic.updateElementState(this, 'basic', __('Select this area'));\n graphic.highlightError(data.target);\n containerHelper.triggerResponseChangeEvent(interaction);\n $container.trigger('inactiveChoice.qti-widget', [data.choice, data.target]);\n }\n }\n });\n });\n };\n\n /**\n * Render a choice inside the paper.\n * Please note that the choice renderer isn't implemented separately because it relies on the Raphael paper instead of the DOM.\n * @param {Paper} paper - the raphael paper to add the choices to\n * @param {Object} interaction\n * @param {Object} choice - the hotspot choice to add to the interaction\n */\n var _renderChoice = function _renderChoice(interaction, choice){\n var $container = containerHelper.get(interaction);\n var rElement = graphic.createElement(interaction.paper, choice.attr('shape'), choice.attr('coords'), {\n id : choice.serial,\n title : __('Select this area')\n })\n .click(function(){\n if(this.active){\n graphic.updateElementState(this, 'basic', __('Select this area'));\n this.active = false;\n $container.trigger('inactiveChoice.qti-widget', [choice, this]);\n } else {\n graphic.updateElementState(this, 'active', __('Click again to remove'));\n this.active = true;\n $container.trigger('activeChoice.qti-widget', [choice, this]);\n }\n containerHelper.triggerResponseChangeEvent(interaction);\n instructionMgr.validateInstructions(interaction, { choice : choice, target : this });\n });\n };\n\n /**\n * Get the response from the interaction\n * @private\n * @param {Object} interaction\n * @returns {Array} the response in raw format\n */\n var _getRawResponse = function _getRawResponse(interaction){\n\n return _(interaction.getChoices())\n .map(function(choice){\n var rElement = interaction.paper.getById(choice.serial);\n return (rElement && rElement.active === true) ? choice.id() : false;\n })\n .filter(_.isString)\n .value();\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n\n var responseValues;\n if(response && interaction.paper){\n\n try{\n responseValues = pciResponse.unserialize(response, interaction);\n\n } catch(e){ }\n\n if(_.isArray(responseValues)){\n\n _.forEach(interaction.getChoices(), function(choice){\n var rElement;\n if(_.contains(responseValues, choice.attributes.identifier)){\n rElement = interaction.paper.getById(choice.serial);\n if(rElement){\n rElement.active = true;\n graphic.updateElementState(rElement, 'active', __('Click again to remove'));\n instructionMgr.validateInstructions(interaction, { choice : choice, target : rElement });\n }\n }\n });\n }\n }\n };\n\n /**\n * Reset the current responses of the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var resetResponse = function resetResponse(interaction){\n _.forEach(interaction.getChoices(), function(choice){\n var element = interaction.paper.getById(choice.serial);\n if(element){\n element.active = false;\n graphic.updateElementState(element, 'basic');\n }\n });\n instructionMgr.resetInstructions(interaction);\n };\n\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n var raw = _getRawResponse(interaction);\n var response = pciResponse.serialize(_getRawResponse(interaction), interaction);\n return response;\n };\n\n /**\n * Clean interaction destroy\n * @param {Object} interaction\n */\n var destroy = function destroy(interaction){\n var $container;\n if(interaction.paper){\n $container = containerHelper.get(interaction);\n\n $(window).off('resize.qti-widget.' + interaction.serial);\n $container.off('resize.qti-widget.' + interaction.serial);\n\n interaction.paper.clear();\n instructionMgr.removeInstructions(interaction);\n\n $('.main-image-box', $container).empty().removeAttr('style');\n $('.image-editor', $container).removeAttr('style');\n }\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n /**\n * Expose the common renderer for the hotspot interaction\n * @exports qtiCommonRenderer/renderers/interactions/HotspotInteraction\n */\n return {\n qtiClass : 'hotspotInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/hottextInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-hottextInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"hottextInteraction\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"qti-flow-container\\\">\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/HottextInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/hottextInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse'\n], function($, _, __, tpl, containerHelper, instructionMgr, pciResponse){\n 'use strict';\n\n /**\n * 'pseudo-label' is technically a div that behaves like a label.\n * This allows the usage of block elements inside the fake label\n */\n var pseudoLabel = function(interaction){\n\n var $container = containerHelper.get(interaction);\n\n var setChoice = function($choice, interaction){\n var $inupt = $choice.find('input');\n\n if($inupt.prop('checked') || $inupt.hasClass('disabled')){\n $inupt.prop('checked', false);\n }else{\n var maxChoices = parseInt(interaction.attr('maxChoices'));\n var currentChoices = _.values(_getRawResponse(interaction)).length;\n\n if(currentChoices < maxChoices || maxChoices === 0){\n $inupt.prop('checked', true);\n }\n }\n containerHelper.triggerResponseChangeEvent(interaction);\n instructionMgr.validateInstructions(interaction, {choice : $choice});\n };\n\n $('.hottext', $container).on('click', function(e){\n e.preventDefault();\n setChoice($(this), interaction);\n });\n };\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10278\n *\n * @param {object} interaction\n */\n var render = function(interaction){\n pseudoLabel(interaction);\n\n //set up the constraints instructions\n instructionMgr.minMaxChoiceInstructions(interaction, {\n min: interaction.attr('minChoices'),\n max: interaction.attr('maxChoices'),\n getResponse : _getRawResponse,\n onError : function(data){\n var $input, $choice, $icon;\n if(data.choice && data.choice.length){\n $choice = data.choice.addClass('error');\n $input = $choice.find('input');\n $icon = $choice.find(' > label > span').addClass('error cross');\n\n\n setTimeout(function(){\n $input.prop('checked', false);\n $choice.removeClass('error');\n $icon.removeClass('error cross');\n }, 350);\n }\n }\n });\n };\n\n var resetResponse = function(interaction){\n var $container = containerHelper.get(interaction);\n $('input', $container).prop('checked', false);\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10333\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n\n var $container = containerHelper.get(interaction);\n\n try{\n _.each(pciResponse.unserialize(response, interaction), function(identifier){\n $container.find('input[value=' + identifier + ']').prop('checked', true);\n });\n instructionMgr.validateInstructions(interaction);\n }catch(e){\n throw new Error('wrong response format in argument : ' + e);\n }\n };\n\n var _getRawResponse = function(interaction){\n var values = [];\n var $container = containerHelper.get(interaction);\n $('input:checked', $container).each(function(){\n values.push($(this).val());\n });\n return values;\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10333\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n return pciResponse.serialize(_getRawResponse(interaction), interaction);\n };\n\n /**\n * Clean interaction destroy\n * @param {Object} interaction\n */\n var destroy = function destroy(interaction){\n var $container = containerHelper.get(interaction);\n\n //restore selected choices:\n $container.find('.hottext').off('click');\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n\n return {\n qtiClass : 'hottextInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/inlineChoiceInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1;\n stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<select \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-inlineInteraction qti-inlineChoiceInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\"\\n data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\"\\n data-qti-class=\\\"inlineChoiceInteraction\\\"\\n data-has-search=\\\"false\\\">\\n <option></option> \\n <option value=\\\"empty\\\"></option>\\n \";\n options={hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data}\n if (helper = helpers.choices) { stack1 = helper.call(depth0, options); }\n else { helper = (depth0 && depth0.choices); stack1 = typeof helper === functionType ? helper.call(depth0, options) : helper; }\n if (!helpers.choices) { stack1 = blockHelperMissing.call(depth0, stack1, {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data}); }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n</select>\\n\";\n return buffer;\n });\n});\n\n","/*\nCopyright 2014 Igor Vaynberg\n\nVersion: Timestamp: lundi 18 août 2014, 10:12:28 (UTC+0200)\n\nThis software is licensed under the Apache License, Version 2.0 (the \"Apache License\") or the GNU\nGeneral Public License version 2 (the \"GPL License\"). You may choose either license to govern your\nuse of this software only upon the condition that you accept all of the terms of either the Apache\nLicense or the GPL License.\n\nYou may obtain a copy of the Apache License and the GPL License at:\n\nhttp://www.apache.org/licenses/LICENSE-2.0\nhttp://www.gnu.org/licenses/gpl-2.0.html\n\nUnless required by applicable law or agreed to in writing, software distributed under the Apache License\nor the GPL Licesnse is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\neither express or implied. See the Apache License and the GPL License for the specific language governing\npermissions and limitations under the Apache License and the GPL License.\n*/\ndefine('select2',['jquery'], function(jQuery){\n!function(a){\"undefined\"==typeof a.fn.each2&&a.extend(a.fn,{each2:function(b){for(var c=a([0]),d=-1,e=this.length;++d<e&&(c.context=c[0]=this[d])&&b.call(c[0],d,c)!==!1;);return this}})}(jQuery),function(a,b){\"use strict\";function n(b){var c=a(document.createTextNode(\"\"));b.before(c),c.before(b),c.remove()}function o(a){function b(a){return m[a]||a}return a.replace(/[^\\u0000-\\u007E]/g,b)}function p(a,b){for(var c=0,d=b.length;d>c;c+=1)if(r(a,b[c]))return c;return-1}function q(){var b=a(l);b.appendTo(\"body\");var c={width:b.width()-b[0].clientWidth,height:b.height()-b[0].clientHeight};return b.remove(),c}function r(a,c){return a===c?!0:a===b||c===b?!1:null===a||null===c?!1:a.constructor===String?a+\"\"==c+\"\":c.constructor===String?c+\"\"==a+\"\":!1}function s(b,c){var d,e,f;if(null===b||b.length<1)return[];for(d=b.split(c),e=0,f=d.length;f>e;e+=1)d[e]=a.trim(d[e]);return d}function t(a){return a.outerWidth(!1)-a.width()}function u(c){var d=\"keyup-change-value\";c.on(\"keydown\",function(){a.data(c,d)===b&&a.data(c,d,c.val())}),c.on(\"keyup\",function(){var e=a.data(c,d);e!==b&&c.val()!==e&&(a.removeData(c,d),c.trigger(\"keyup-change\"))})}function v(c){c.on(\"mousemove\",function(c){var d=i;(d===b||d.x!==c.pageX||d.y!==c.pageY)&&a(c.target).trigger(\"mousemove-filtered\",c)})}function w(a,c,d){d=d||b;var e;return function(){var b=arguments;window.clearTimeout(e),e=window.setTimeout(function(){c.apply(d,b)},a)}}function x(a,b){var c=w(a,function(a){b.trigger(\"scroll-debounced\",a)});b.on(\"scroll\",function(a){p(a.target,b.get())>=0&&c(a)})}function y(a){a[0]!==document.activeElement&&window.setTimeout(function(){var d,b=a[0],c=a.val().length;a.focus();var e=b.offsetWidth>0||b.offsetHeight>0;e&&b===document.activeElement&&(b.setSelectionRange?b.setSelectionRange(c,c):b.createTextRange&&(d=b.createTextRange(),d.collapse(!1),d.select()))},0)}function z(b){b=a(b)[0];var c=0,d=0;if(\"selectionStart\"in b)c=b.selectionStart,d=b.selectionEnd-c;else if(\"selection\"in document){b.focus();var e=document.selection.createRange();d=document.selection.createRange().text.length,e.moveStart(\"character\",-b.value.length),c=e.text.length-d}return{offset:c,length:d}}function A(a){a.preventDefault(),a.stopPropagation()}function B(a){a.preventDefault(),a.stopImmediatePropagation()}function C(b){if(!h){var c=b[0].currentStyle||window.getComputedStyle(b[0],null);h=a(document.createElement(\"div\")).css({position:\"absolute\",left:\"-10000px\",top:\"-10000px\",display:\"none\",fontSize:c.fontSize,fontFamily:c.fontFamily,fontStyle:c.fontStyle,fontWeight:c.fontWeight,letterSpacing:c.letterSpacing,textTransform:c.textTransform,whiteSpace:\"nowrap\"}),h.attr(\"class\",\"select2-sizer\"),a(\"body\").append(h)}return h.text(b.val()),h.width()}function D(b,c,d){var e,g,f=[];e=a.trim(b.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each2(function(){0===this.indexOf(\"select2-\")&&f.push(this)})),e=a.trim(c.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each2(function(){0!==this.indexOf(\"select2-\")&&(g=d(this),g&&f.push(g))})),b.attr(\"class\",f.join(\" \"))}function E(a,b,c,d){var e=o(a.toUpperCase()).indexOf(o(b.toUpperCase())),f=b.length;return 0>e?(c.push(d(a)),void 0):(c.push(d(a.substring(0,e))),c.push(\"<span class='select2-match'>\"),c.push(d(a.substring(e,e+f))),c.push(\"</span>\"),c.push(d(a.substring(e+f,a.length))),void 0)}function F(a){var b={\"\\\\\":\"&#92;\",\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\",\"/\":\"&#47;\"};return String(a).replace(/[&<>\"'\\/\\\\]/g,function(a){return b[a]})}function G(c){var d,e=null,f=c.quietMillis||100,g=c.url,h=this;return function(i){window.clearTimeout(d),d=window.setTimeout(function(){var d=c.data,f=g,j=c.transport||a.fn.select2.ajaxDefaults.transport,k={type:c.type||\"GET\",cache:c.cache||!1,jsonpCallback:c.jsonpCallback||b,dataType:c.dataType||\"json\"},l=a.extend({},a.fn.select2.ajaxDefaults.params,k);d=d?d.call(h,i.term,i.page,i.context):null,f=\"function\"==typeof f?f.call(h,i.term,i.page,i.context):f,e&&\"function\"==typeof e.abort&&e.abort(),c.params&&(a.isFunction(c.params)?a.extend(l,c.params.call(h)):a.extend(l,c.params)),a.extend(l,{url:f,dataType:c.dataType,data:d,success:function(a){var b=c.results(a,i.page,i);i.callback(b)},error:function(a,b,c){var d={hasError:!0,jqXHR:a,textStatus:b,errorThrown:c};i.callback(d)}}),e=j.call(h,l)},f)}}function H(b){var d,e,c=b,f=function(a){return\"\"+a.text};a.isArray(c)&&(e=c,c={results:e}),a.isFunction(c)===!1&&(e=c,c=function(){return e});var g=c();return g.text&&(f=g.text,a.isFunction(f)||(d=g.text,f=function(a){return a[d]})),function(b){var g,d=b.term,e={results:[]};return\"\"===d?(b.callback(c()),void 0):(g=function(c,e){var h,i;if(c=c[0],c.children){h={};for(i in c)c.hasOwnProperty(i)&&(h[i]=c[i]);h.children=[],a(c.children).each2(function(a,b){g(b,h.children)}),(h.children.length||b.matcher(d,f(h),c))&&e.push(h)}else b.matcher(d,f(c),c)&&e.push(c)},a(c().results).each2(function(a,b){g(b,e.results)}),b.callback(e),void 0)}}function I(c){var d=a.isFunction(c);return function(e){var f=e.term,g={results:[]},h=d?c(e):c;a.isArray(h)&&(a(h).each(function(){var a=this.text!==b,c=a?this.text:this;(\"\"===f||e.matcher(f,c))&&g.results.push(a?this:{id:this,text:this})}),e.callback(g))}}function J(b,c){if(a.isFunction(b))return!0;if(!b)return!1;if(\"string\"==typeof b)return!0;throw new Error(c+\" must be a string, function, or falsy value\")}function K(b,c){if(a.isFunction(b)){var d=Array.prototype.slice.call(arguments,2);return b.apply(c,d)}return b}function L(b){var c=0;return a.each(b,function(a,b){b.children?c+=L(b.children):c++}),c}function M(a,c,d,e){var h,i,j,k,l,f=a,g=!1;if(!e.createSearchChoice||!e.tokenSeparators||e.tokenSeparators.length<1)return b;for(;;){for(i=-1,j=0,k=e.tokenSeparators.length;k>j&&(l=e.tokenSeparators[j],i=a.indexOf(l),!(i>=0));j++);if(0>i)break;if(h=a.substring(0,i),a=a.substring(i+l.length),h.length>0&&(h=e.createSearchChoice.call(this,h,c),h!==b&&null!==h&&e.id(h)!==b&&null!==e.id(h))){for(g=!1,j=0,k=c.length;k>j;j++)if(r(e.id(h),e.id(c[j]))){g=!0;break}g||d(h)}}return f!==a?a:void 0}function N(){var b=this;a.each(arguments,function(a,c){b[c].remove(),b[c]=null})}function O(b,c){var d=function(){};return d.prototype=new b,d.prototype.constructor=d,d.prototype.parent=b.prototype,d.prototype=a.extend(d.prototype,c),d}if(window.Select2===b){var c,d,e,f,g,h,j,k,i={x:0,y:0},c={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(a){switch(a=a.which?a.which:a){case c.LEFT:case c.RIGHT:case c.UP:case c.DOWN:return!0}return!1},isControl:function(a){var b=a.which;switch(b){case c.SHIFT:case c.CTRL:case c.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){return a=a.which?a.which:a,a>=112&&123>=a}},l=\"<div class='select2-measure-scrollbar'></div>\",m={\"\\u24b6\":\"A\",\"\\uff21\":\"A\",\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\u1ea6\":\"A\",\"\\u1ea4\":\"A\",\"\\u1eaa\":\"A\",\"\\u1ea8\":\"A\",\"\\xc3\":\"A\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u1eb0\":\"A\",\"\\u1eae\":\"A\",\"\\u1eb4\":\"A\",\"\\u1eb2\":\"A\",\"\\u0226\":\"A\",\"\\u01e0\":\"A\",\"\\xc4\":\"A\",\"\\u01de\":\"A\",\"\\u1ea2\":\"A\",\"\\xc5\":\"A\",\"\\u01fa\":\"A\",\"\\u01cd\":\"A\",\"\\u0200\":\"A\",\"\\u0202\":\"A\",\"\\u1ea0\":\"A\",\"\\u1eac\":\"A\",\"\\u1eb6\":\"A\",\"\\u1e00\":\"A\",\"\\u0104\":\"A\",\"\\u023a\":\"A\",\"\\u2c6f\":\"A\",\"\\ua732\":\"AA\",\"\\xc6\":\"AE\",\"\\u01fc\":\"AE\",\"\\u01e2\":\"AE\",\"\\ua734\":\"AO\",\"\\ua736\":\"AU\",\"\\ua738\":\"AV\",\"\\ua73a\":\"AV\",\"\\ua73c\":\"AY\",\"\\u24b7\":\"B\",\"\\uff22\":\"B\",\"\\u1e02\":\"B\",\"\\u1e04\":\"B\",\"\\u1e06\":\"B\",\"\\u0243\":\"B\",\"\\u0182\":\"B\",\"\\u0181\":\"B\",\"\\u24b8\":\"C\",\"\\uff23\":\"C\",\"\\u0106\":\"C\",\"\\u0108\":\"C\",\"\\u010a\":\"C\",\"\\u010c\":\"C\",\"\\xc7\":\"C\",\"\\u1e08\":\"C\",\"\\u0187\":\"C\",\"\\u023b\":\"C\",\"\\ua73e\":\"C\",\"\\u24b9\":\"D\",\"\\uff24\":\"D\",\"\\u1e0a\":\"D\",\"\\u010e\":\"D\",\"\\u1e0c\":\"D\",\"\\u1e10\":\"D\",\"\\u1e12\":\"D\",\"\\u1e0e\":\"D\",\"\\u0110\":\"D\",\"\\u018b\":\"D\",\"\\u018a\":\"D\",\"\\u0189\":\"D\",\"\\ua779\":\"D\",\"\\u01f1\":\"DZ\",\"\\u01c4\":\"DZ\",\"\\u01f2\":\"Dz\",\"\\u01c5\":\"Dz\",\"\\u24ba\":\"E\",\"\\uff25\":\"E\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\u1ec0\":\"E\",\"\\u1ebe\":\"E\",\"\\u1ec4\":\"E\",\"\\u1ec2\":\"E\",\"\\u1ebc\":\"E\",\"\\u0112\":\"E\",\"\\u1e14\":\"E\",\"\\u1e16\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\xcb\":\"E\",\"\\u1eba\":\"E\",\"\\u011a\":\"E\",\"\\u0204\":\"E\",\"\\u0206\":\"E\",\"\\u1eb8\":\"E\",\"\\u1ec6\":\"E\",\"\\u0228\":\"E\",\"\\u1e1c\":\"E\",\"\\u0118\":\"E\",\"\\u1e18\":\"E\",\"\\u1e1a\":\"E\",\"\\u0190\":\"E\",\"\\u018e\":\"E\",\"\\u24bb\":\"F\",\"\\uff26\":\"F\",\"\\u1e1e\":\"F\",\"\\u0191\":\"F\",\"\\ua77b\":\"F\",\"\\u24bc\":\"G\",\"\\uff27\":\"G\",\"\\u01f4\":\"G\",\"\\u011c\":\"G\",\"\\u1e20\":\"G\",\"\\u011e\":\"G\",\"\\u0120\":\"G\",\"\\u01e6\":\"G\",\"\\u0122\":\"G\",\"\\u01e4\":\"G\",\"\\u0193\":\"G\",\"\\ua7a0\":\"G\",\"\\ua77d\":\"G\",\"\\ua77e\":\"G\",\"\\u24bd\":\"H\",\"\\uff28\":\"H\",\"\\u0124\":\"H\",\"\\u1e22\":\"H\",\"\\u1e26\":\"H\",\"\\u021e\":\"H\",\"\\u1e24\":\"H\",\"\\u1e28\":\"H\",\"\\u1e2a\":\"H\",\"\\u0126\":\"H\",\"\\u2c67\":\"H\",\"\\u2c75\":\"H\",\"\\ua78d\":\"H\",\"\\u24be\":\"I\",\"\\uff29\":\"I\",\"\\xcc\":\"I\",\"\\xcd\":\"I\",\"\\xce\":\"I\",\"\\u0128\":\"I\",\"\\u012a\":\"I\",\"\\u012c\":\"I\",\"\\u0130\":\"I\",\"\\xcf\":\"I\",\"\\u1e2e\":\"I\",\"\\u1ec8\":\"I\",\"\\u01cf\":\"I\",\"\\u0208\":\"I\",\"\\u020a\":\"I\",\"\\u1eca\":\"I\",\"\\u012e\":\"I\",\"\\u1e2c\":\"I\",\"\\u0197\":\"I\",\"\\u24bf\":\"J\",\"\\uff2a\":\"J\",\"\\u0134\":\"J\",\"\\u0248\":\"J\",\"\\u24c0\":\"K\",\"\\uff2b\":\"K\",\"\\u1e30\":\"K\",\"\\u01e8\":\"K\",\"\\u1e32\":\"K\",\"\\u0136\":\"K\",\"\\u1e34\":\"K\",\"\\u0198\":\"K\",\"\\u2c69\":\"K\",\"\\ua740\":\"K\",\"\\ua742\":\"K\",\"\\ua744\":\"K\",\"\\ua7a2\":\"K\",\"\\u24c1\":\"L\",\"\\uff2c\":\"L\",\"\\u013f\":\"L\",\"\\u0139\":\"L\",\"\\u013d\":\"L\",\"\\u1e36\":\"L\",\"\\u1e38\":\"L\",\"\\u013b\":\"L\",\"\\u1e3c\":\"L\",\"\\u1e3a\":\"L\",\"\\u0141\":\"L\",\"\\u023d\":\"L\",\"\\u2c62\":\"L\",\"\\u2c60\":\"L\",\"\\ua748\":\"L\",\"\\ua746\":\"L\",\"\\ua780\":\"L\",\"\\u01c7\":\"LJ\",\"\\u01c8\":\"Lj\",\"\\u24c2\":\"M\",\"\\uff2d\":\"M\",\"\\u1e3e\":\"M\",\"\\u1e40\":\"M\",\"\\u1e42\":\"M\",\"\\u2c6e\":\"M\",\"\\u019c\":\"M\",\"\\u24c3\":\"N\",\"\\uff2e\":\"N\",\"\\u01f8\":\"N\",\"\\u0143\":\"N\",\"\\xd1\":\"N\",\"\\u1e44\":\"N\",\"\\u0147\":\"N\",\"\\u1e46\":\"N\",\"\\u0145\":\"N\",\"\\u1e4a\":\"N\",\"\\u1e48\":\"N\",\"\\u0220\":\"N\",\"\\u019d\":\"N\",\"\\ua790\":\"N\",\"\\ua7a4\":\"N\",\"\\u01ca\":\"NJ\",\"\\u01cb\":\"Nj\",\"\\u24c4\":\"O\",\"\\uff2f\":\"O\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\u1ed2\":\"O\",\"\\u1ed0\":\"O\",\"\\u1ed6\":\"O\",\"\\u1ed4\":\"O\",\"\\xd5\":\"O\",\"\\u1e4c\":\"O\",\"\\u022c\":\"O\",\"\\u1e4e\":\"O\",\"\\u014c\":\"O\",\"\\u1e50\":\"O\",\"\\u1e52\":\"O\",\"\\u014e\":\"O\",\"\\u022e\":\"O\",\"\\u0230\":\"O\",\"\\xd6\":\"O\",\"\\u022a\":\"O\",\"\\u1ece\":\"O\",\"\\u0150\":\"O\",\"\\u01d1\":\"O\",\"\\u020c\":\"O\",\"\\u020e\":\"O\",\"\\u01a0\":\"O\",\"\\u1edc\":\"O\",\"\\u1eda\":\"O\",\"\\u1ee0\":\"O\",\"\\u1ede\":\"O\",\"\\u1ee2\":\"O\",\"\\u1ecc\":\"O\",\"\\u1ed8\":\"O\",\"\\u01ea\":\"O\",\"\\u01ec\":\"O\",\"\\xd8\":\"O\",\"\\u01fe\":\"O\",\"\\u0186\":\"O\",\"\\u019f\":\"O\",\"\\ua74a\":\"O\",\"\\ua74c\":\"O\",\"\\u01a2\":\"OI\",\"\\ua74e\":\"OO\",\"\\u0222\":\"OU\",\"\\u24c5\":\"P\",\"\\uff30\":\"P\",\"\\u1e54\":\"P\",\"\\u1e56\":\"P\",\"\\u01a4\":\"P\",\"\\u2c63\":\"P\",\"\\ua750\":\"P\",\"\\ua752\":\"P\",\"\\ua754\":\"P\",\"\\u24c6\":\"Q\",\"\\uff31\":\"Q\",\"\\ua756\":\"Q\",\"\\ua758\":\"Q\",\"\\u024a\":\"Q\",\"\\u24c7\":\"R\",\"\\uff32\":\"R\",\"\\u0154\":\"R\",\"\\u1e58\":\"R\",\"\\u0158\":\"R\",\"\\u0210\":\"R\",\"\\u0212\":\"R\",\"\\u1e5a\":\"R\",\"\\u1e5c\":\"R\",\"\\u0156\":\"R\",\"\\u1e5e\":\"R\",\"\\u024c\":\"R\",\"\\u2c64\":\"R\",\"\\ua75a\":\"R\",\"\\ua7a6\":\"R\",\"\\ua782\":\"R\",\"\\u24c8\":\"S\",\"\\uff33\":\"S\",\"\\u1e9e\":\"S\",\"\\u015a\":\"S\",\"\\u1e64\":\"S\",\"\\u015c\":\"S\",\"\\u1e60\":\"S\",\"\\u0160\":\"S\",\"\\u1e66\":\"S\",\"\\u1e62\":\"S\",\"\\u1e68\":\"S\",\"\\u0218\":\"S\",\"\\u015e\":\"S\",\"\\u2c7e\":\"S\",\"\\ua7a8\":\"S\",\"\\ua784\":\"S\",\"\\u24c9\":\"T\",\"\\uff34\":\"T\",\"\\u1e6a\":\"T\",\"\\u0164\":\"T\",\"\\u1e6c\":\"T\",\"\\u021a\":\"T\",\"\\u0162\":\"T\",\"\\u1e70\":\"T\",\"\\u1e6e\":\"T\",\"\\u0166\":\"T\",\"\\u01ac\":\"T\",\"\\u01ae\":\"T\",\"\\u023e\":\"T\",\"\\ua786\":\"T\",\"\\ua728\":\"TZ\",\"\\u24ca\":\"U\",\"\\uff35\":\"U\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\u0168\":\"U\",\"\\u1e78\":\"U\",\"\\u016a\":\"U\",\"\\u1e7a\":\"U\",\"\\u016c\":\"U\",\"\\xdc\":\"U\",\"\\u01db\":\"U\",\"\\u01d7\":\"U\",\"\\u01d5\":\"U\",\"\\u01d9\":\"U\",\"\\u1ee6\":\"U\",\"\\u016e\":\"U\",\"\\u0170\":\"U\",\"\\u01d3\":\"U\",\"\\u0214\":\"U\",\"\\u0216\":\"U\",\"\\u01af\":\"U\",\"\\u1eea\":\"U\",\"\\u1ee8\":\"U\",\"\\u1eee\":\"U\",\"\\u1eec\":\"U\",\"\\u1ef0\":\"U\",\"\\u1ee4\":\"U\",\"\\u1e72\":\"U\",\"\\u0172\":\"U\",\"\\u1e76\":\"U\",\"\\u1e74\":\"U\",\"\\u0244\":\"U\",\"\\u24cb\":\"V\",\"\\uff36\":\"V\",\"\\u1e7c\":\"V\",\"\\u1e7e\":\"V\",\"\\u01b2\":\"V\",\"\\ua75e\":\"V\",\"\\u0245\":\"V\",\"\\ua760\":\"VY\",\"\\u24cc\":\"W\",\"\\uff37\":\"W\",\"\\u1e80\":\"W\",\"\\u1e82\":\"W\",\"\\u0174\":\"W\",\"\\u1e86\":\"W\",\"\\u1e84\":\"W\",\"\\u1e88\":\"W\",\"\\u2c72\":\"W\",\"\\u24cd\":\"X\",\"\\uff38\":\"X\",\"\\u1e8a\":\"X\",\"\\u1e8c\":\"X\",\"\\u24ce\":\"Y\",\"\\uff39\":\"Y\",\"\\u1ef2\":\"Y\",\"\\xdd\":\"Y\",\"\\u0176\":\"Y\",\"\\u1ef8\":\"Y\",\"\\u0232\":\"Y\",\"\\u1e8e\":\"Y\",\"\\u0178\":\"Y\",\"\\u1ef6\":\"Y\",\"\\u1ef4\":\"Y\",\"\\u01b3\":\"Y\",\"\\u024e\":\"Y\",\"\\u1efe\":\"Y\",\"\\u24cf\":\"Z\",\"\\uff3a\":\"Z\",\"\\u0179\":\"Z\",\"\\u1e90\":\"Z\",\"\\u017b\":\"Z\",\"\\u017d\":\"Z\",\"\\u1e92\":\"Z\",\"\\u1e94\":\"Z\",\"\\u01b5\":\"Z\",\"\\u0224\":\"Z\",\"\\u2c7f\":\"Z\",\"\\u2c6b\":\"Z\",\"\\ua762\":\"Z\",\"\\u24d0\":\"a\",\"\\uff41\":\"a\",\"\\u1e9a\":\"a\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\u1ea7\":\"a\",\"\\u1ea5\":\"a\",\"\\u1eab\":\"a\",\"\\u1ea9\":\"a\",\"\\xe3\":\"a\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u1eb1\":\"a\",\"\\u1eaf\":\"a\",\"\\u1eb5\":\"a\",\"\\u1eb3\":\"a\",\"\\u0227\":\"a\",\"\\u01e1\":\"a\",\"\\xe4\":\"a\",\"\\u01df\":\"a\",\"\\u1ea3\":\"a\",\"\\xe5\":\"a\",\"\\u01fb\":\"a\",\"\\u01ce\":\"a\",\"\\u0201\":\"a\",\"\\u0203\":\"a\",\"\\u1ea1\":\"a\",\"\\u1ead\":\"a\",\"\\u1eb7\":\"a\",\"\\u1e01\":\"a\",\"\\u0105\":\"a\",\"\\u2c65\":\"a\",\"\\u0250\":\"a\",\"\\ua733\":\"aa\",\"\\xe6\":\"ae\",\"\\u01fd\":\"ae\",\"\\u01e3\":\"ae\",\"\\ua735\":\"ao\",\"\\ua737\":\"au\",\"\\ua739\":\"av\",\"\\ua73b\":\"av\",\"\\ua73d\":\"ay\",\"\\u24d1\":\"b\",\"\\uff42\":\"b\",\"\\u1e03\":\"b\",\"\\u1e05\":\"b\",\"\\u1e07\":\"b\",\"\\u0180\":\"b\",\"\\u0183\":\"b\",\"\\u0253\":\"b\",\"\\u24d2\":\"c\",\"\\uff43\":\"c\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010b\":\"c\",\"\\u010d\":\"c\",\"\\xe7\":\"c\",\"\\u1e09\":\"c\",\"\\u0188\":\"c\",\"\\u023c\":\"c\",\"\\ua73f\":\"c\",\"\\u2184\":\"c\",\"\\u24d3\":\"d\",\"\\uff44\":\"d\",\"\\u1e0b\":\"d\",\"\\u010f\":\"d\",\"\\u1e0d\":\"d\",\"\\u1e11\":\"d\",\"\\u1e13\":\"d\",\"\\u1e0f\":\"d\",\"\\u0111\":\"d\",\"\\u018c\":\"d\",\"\\u0256\":\"d\",\"\\u0257\":\"d\",\"\\ua77a\":\"d\",\"\\u01f3\":\"dz\",\"\\u01c6\":\"dz\",\"\\u24d4\":\"e\",\"\\uff45\":\"e\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\u1ec1\":\"e\",\"\\u1ebf\":\"e\",\"\\u1ec5\":\"e\",\"\\u1ec3\":\"e\",\"\\u1ebd\":\"e\",\"\\u0113\":\"e\",\"\\u1e15\":\"e\",\"\\u1e17\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\xeb\":\"e\",\"\\u1ebb\":\"e\",\"\\u011b\":\"e\",\"\\u0205\":\"e\",\"\\u0207\":\"e\",\"\\u1eb9\":\"e\",\"\\u1ec7\":\"e\",\"\\u0229\":\"e\",\"\\u1e1d\":\"e\",\"\\u0119\":\"e\",\"\\u1e19\":\"e\",\"\\u1e1b\":\"e\",\"\\u0247\":\"e\",\"\\u025b\":\"e\",\"\\u01dd\":\"e\",\"\\u24d5\":\"f\",\"\\uff46\":\"f\",\"\\u1e1f\":\"f\",\"\\u0192\":\"f\",\"\\ua77c\":\"f\",\"\\u24d6\":\"g\",\"\\uff47\":\"g\",\"\\u01f5\":\"g\",\"\\u011d\":\"g\",\"\\u1e21\":\"g\",\"\\u011f\":\"g\",\"\\u0121\":\"g\",\"\\u01e7\":\"g\",\"\\u0123\":\"g\",\"\\u01e5\":\"g\",\"\\u0260\":\"g\",\"\\ua7a1\":\"g\",\"\\u1d79\":\"g\",\"\\ua77f\":\"g\",\"\\u24d7\":\"h\",\"\\uff48\":\"h\",\"\\u0125\":\"h\",\"\\u1e23\":\"h\",\"\\u1e27\":\"h\",\"\\u021f\":\"h\",\"\\u1e25\":\"h\",\"\\u1e29\":\"h\",\"\\u1e2b\":\"h\",\"\\u1e96\":\"h\",\"\\u0127\":\"h\",\"\\u2c68\":\"h\",\"\\u2c76\":\"h\",\"\\u0265\":\"h\",\"\\u0195\":\"hv\",\"\\u24d8\":\"i\",\"\\uff49\":\"i\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\u0129\":\"i\",\"\\u012b\":\"i\",\"\\u012d\":\"i\",\"\\xef\":\"i\",\"\\u1e2f\":\"i\",\"\\u1ec9\":\"i\",\"\\u01d0\":\"i\",\"\\u0209\":\"i\",\"\\u020b\":\"i\",\"\\u1ecb\":\"i\",\"\\u012f\":\"i\",\"\\u1e2d\":\"i\",\"\\u0268\":\"i\",\"\\u0131\":\"i\",\"\\u24d9\":\"j\",\"\\uff4a\":\"j\",\"\\u0135\":\"j\",\"\\u01f0\":\"j\",\"\\u0249\":\"j\",\"\\u24da\":\"k\",\"\\uff4b\":\"k\",\"\\u1e31\":\"k\",\"\\u01e9\":\"k\",\"\\u1e33\":\"k\",\"\\u0137\":\"k\",\"\\u1e35\":\"k\",\"\\u0199\":\"k\",\"\\u2c6a\":\"k\",\"\\ua741\":\"k\",\"\\ua743\":\"k\",\"\\ua745\":\"k\",\"\\ua7a3\":\"k\",\"\\u24db\":\"l\",\"\\uff4c\":\"l\",\"\\u0140\":\"l\",\"\\u013a\":\"l\",\"\\u013e\":\"l\",\"\\u1e37\":\"l\",\"\\u1e39\":\"l\",\"\\u013c\":\"l\",\"\\u1e3d\":\"l\",\"\\u1e3b\":\"l\",\"\\u017f\":\"l\",\"\\u0142\":\"l\",\"\\u019a\":\"l\",\"\\u026b\":\"l\",\"\\u2c61\":\"l\",\"\\ua749\":\"l\",\"\\ua781\":\"l\",\"\\ua747\":\"l\",\"\\u01c9\":\"lj\",\"\\u24dc\":\"m\",\"\\uff4d\":\"m\",\"\\u1e3f\":\"m\",\"\\u1e41\":\"m\",\"\\u1e43\":\"m\",\"\\u0271\":\"m\",\"\\u026f\":\"m\",\"\\u24dd\":\"n\",\"\\uff4e\":\"n\",\"\\u01f9\":\"n\",\"\\u0144\":\"n\",\"\\xf1\":\"n\",\"\\u1e45\":\"n\",\"\\u0148\":\"n\",\"\\u1e47\":\"n\",\"\\u0146\":\"n\",\"\\u1e4b\":\"n\",\"\\u1e49\":\"n\",\"\\u019e\":\"n\",\"\\u0272\":\"n\",\"\\u0149\":\"n\",\"\\ua791\":\"n\",\"\\ua7a5\":\"n\",\"\\u01cc\":\"nj\",\"\\u24de\":\"o\",\"\\uff4f\":\"o\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\u1ed3\":\"o\",\"\\u1ed1\":\"o\",\"\\u1ed7\":\"o\",\"\\u1ed5\":\"o\",\"\\xf5\":\"o\",\"\\u1e4d\":\"o\",\"\\u022d\":\"o\",\"\\u1e4f\":\"o\",\"\\u014d\":\"o\",\"\\u1e51\":\"o\",\"\\u1e53\":\"o\",\"\\u014f\":\"o\",\"\\u022f\":\"o\",\"\\u0231\":\"o\",\"\\xf6\":\"o\",\"\\u022b\":\"o\",\"\\u1ecf\":\"o\",\"\\u0151\":\"o\",\"\\u01d2\":\"o\",\"\\u020d\":\"o\",\"\\u020f\":\"o\",\"\\u01a1\":\"o\",\"\\u1edd\":\"o\",\"\\u1edb\":\"o\",\"\\u1ee1\":\"o\",\"\\u1edf\":\"o\",\"\\u1ee3\":\"o\",\"\\u1ecd\":\"o\",\"\\u1ed9\":\"o\",\"\\u01eb\":\"o\",\"\\u01ed\":\"o\",\"\\xf8\":\"o\",\"\\u01ff\":\"o\",\"\\u0254\":\"o\",\"\\ua74b\":\"o\",\"\\ua74d\":\"o\",\"\\u0275\":\"o\",\"\\u01a3\":\"oi\",\"\\u0223\":\"ou\",\"\\ua74f\":\"oo\",\"\\u24df\":\"p\",\"\\uff50\":\"p\",\"\\u1e55\":\"p\",\"\\u1e57\":\"p\",\"\\u01a5\":\"p\",\"\\u1d7d\":\"p\",\"\\ua751\":\"p\",\"\\ua753\":\"p\",\"\\ua755\":\"p\",\"\\u24e0\":\"q\",\"\\uff51\":\"q\",\"\\u024b\":\"q\",\"\\ua757\":\"q\",\"\\ua759\":\"q\",\"\\u24e1\":\"r\",\"\\uff52\":\"r\",\"\\u0155\":\"r\",\"\\u1e59\":\"r\",\"\\u0159\":\"r\",\"\\u0211\":\"r\",\"\\u0213\":\"r\",\"\\u1e5b\":\"r\",\"\\u1e5d\":\"r\",\"\\u0157\":\"r\",\"\\u1e5f\":\"r\",\"\\u024d\":\"r\",\"\\u027d\":\"r\",\"\\ua75b\":\"r\",\"\\ua7a7\":\"r\",\"\\ua783\":\"r\",\"\\u24e2\":\"s\",\"\\uff53\":\"s\",\"\\xdf\":\"s\",\"\\u015b\":\"s\",\"\\u1e65\":\"s\",\"\\u015d\":\"s\",\"\\u1e61\":\"s\",\"\\u0161\":\"s\",\"\\u1e67\":\"s\",\"\\u1e63\":\"s\",\"\\u1e69\":\"s\",\"\\u0219\":\"s\",\"\\u015f\":\"s\",\"\\u023f\":\"s\",\"\\ua7a9\":\"s\",\"\\ua785\":\"s\",\"\\u1e9b\":\"s\",\"\\u24e3\":\"t\",\"\\uff54\":\"t\",\"\\u1e6b\":\"t\",\"\\u1e97\":\"t\",\"\\u0165\":\"t\",\"\\u1e6d\":\"t\",\"\\u021b\":\"t\",\"\\u0163\":\"t\",\"\\u1e71\":\"t\",\"\\u1e6f\":\"t\",\"\\u0167\":\"t\",\"\\u01ad\":\"t\",\"\\u0288\":\"t\",\"\\u2c66\":\"t\",\"\\ua787\":\"t\",\"\\ua729\":\"tz\",\"\\u24e4\":\"u\",\"\\uff55\":\"u\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\u0169\":\"u\",\"\\u1e79\":\"u\",\"\\u016b\":\"u\",\"\\u1e7b\":\"u\",\"\\u016d\":\"u\",\"\\xfc\":\"u\",\"\\u01dc\":\"u\",\"\\u01d8\":\"u\",\"\\u01d6\":\"u\",\"\\u01da\":\"u\",\"\\u1ee7\":\"u\",\"\\u016f\":\"u\",\"\\u0171\":\"u\",\"\\u01d4\":\"u\",\"\\u0215\":\"u\",\"\\u0217\":\"u\",\"\\u01b0\":\"u\",\"\\u1eeb\":\"u\",\"\\u1ee9\":\"u\",\"\\u1eef\":\"u\",\"\\u1eed\":\"u\",\"\\u1ef1\":\"u\",\"\\u1ee5\":\"u\",\"\\u1e73\":\"u\",\"\\u0173\":\"u\",\"\\u1e77\":\"u\",\"\\u1e75\":\"u\",\"\\u0289\":\"u\",\"\\u24e5\":\"v\",\"\\uff56\":\"v\",\"\\u1e7d\":\"v\",\"\\u1e7f\":\"v\",\"\\u028b\":\"v\",\"\\ua75f\":\"v\",\"\\u028c\":\"v\",\"\\ua761\":\"vy\",\"\\u24e6\":\"w\",\"\\uff57\":\"w\",\"\\u1e81\":\"w\",\"\\u1e83\":\"w\",\"\\u0175\":\"w\",\"\\u1e87\":\"w\",\"\\u1e85\":\"w\",\"\\u1e98\":\"w\",\"\\u1e89\":\"w\",\"\\u2c73\":\"w\",\"\\u24e7\":\"x\",\"\\uff58\":\"x\",\"\\u1e8b\":\"x\",\"\\u1e8d\":\"x\",\"\\u24e8\":\"y\",\"\\uff59\":\"y\",\"\\u1ef3\":\"y\",\"\\xfd\":\"y\",\"\\u0177\":\"y\",\"\\u1ef9\":\"y\",\"\\u0233\":\"y\",\"\\u1e8f\":\"y\",\"\\xff\":\"y\",\"\\u1ef7\":\"y\",\"\\u1e99\":\"y\",\"\\u1ef5\":\"y\",\"\\u01b4\":\"y\",\"\\u024f\":\"y\",\"\\u1eff\":\"y\",\"\\u24e9\":\"z\",\"\\uff5a\":\"z\",\"\\u017a\":\"z\",\"\\u1e91\":\"z\",\"\\u017c\":\"z\",\"\\u017e\":\"z\",\"\\u1e93\":\"z\",\"\\u1e95\":\"z\",\"\\u01b6\":\"z\",\"\\u0225\":\"z\",\"\\u0240\":\"z\",\"\\u2c6c\":\"z\",\"\\ua763\":\"z\",\"\\u0386\":\"\\u0391\",\"\\u0388\":\"\\u0395\",\"\\u0389\":\"\\u0397\",\"\\u038a\":\"\\u0399\",\"\\u03aa\":\"\\u0399\",\"\\u038c\":\"\\u039f\",\"\\u038e\":\"\\u03a5\",\"\\u03ab\":\"\\u03a5\",\"\\u038f\":\"\\u03a9\",\"\\u03ac\":\"\\u03b1\",\"\\u03ad\":\"\\u03b5\",\"\\u03ae\":\"\\u03b7\",\"\\u03af\":\"\\u03b9\",\"\\u03ca\":\"\\u03b9\",\"\\u0390\":\"\\u03b9\",\"\\u03cc\":\"\\u03bf\",\"\\u03cd\":\"\\u03c5\",\"\\u03cb\":\"\\u03c5\",\"\\u03b0\":\"\\u03c5\",\"\\u03c9\":\"\\u03c9\",\"\\u03c2\":\"\\u03c3\"};j=a(document),g=function(){var a=1;return function(){return a++}}(),d=O(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(c){var d,e,f=\".select2-results\";this.opts=c=this.prepareOpts(c),this.id=c.id,c.element.data(\"select2\")!==b&&null!==c.element.data(\"select2\")&&c.element.data(\"select2\").destroy(),this.container=this.createContainer(),this.liveRegion=a(\"<span>\",{role:\"status\",\"aria-live\":\"polite\"}).addClass(\"select2-hidden-accessible\").appendTo(document.body),this.containerId=\"s2id_\"+(c.element.attr(\"id\")||\"autogen\"+g()),this.containerEventName=this.containerId.replace(/([.])/g,\"_\").replace(/([;&,\\-\\.\\+\\*\\~':\"\\!\\^#$%@\\[\\]\\(\\)=>\\|])/g,\"\\\\$1\"),this.container.attr(\"id\",this.containerId),this.container.attr(\"title\",c.element.attr(\"title\")),this.body=a(\"body\"),D(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.attr(\"style\",c.element.attr(\"style\")),this.container.css(K(c.containerCss,this.opts.element)),this.container.addClass(K(c.containerCssClass,this.opts.element)),this.elementTabIndex=this.opts.element.attr(\"tabindex\"),this.opts.element.data(\"select2\",this).attr(\"tabindex\",\"-1\").before(this.container).on(\"click.select2\",A),this.container.data(\"select2\",this),this.dropdown=this.container.find(\".select2-drop\"),D(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass),this.dropdown.addClass(K(c.dropdownCssClass,this.opts.element)),this.dropdown.data(\"select2\",this),this.dropdown.on(\"click\",A),this.results=d=this.container.find(f),this.search=e=this.container.find(\"input.select2-input\"),this.queryCount=0,this.resultsPage=0,this.context=null,this.initContainer(),this.container.on(\"click\",A),v(this.results),this.dropdown.on(\"mousemove-filtered\",f,this.bind(this.highlightUnderEvent)),this.dropdown.on(\"touchstart touchmove touchend\",f,this.bind(function(a){this._touchEvent=!0,this.highlightUnderEvent(a)})),this.dropdown.on(\"touchmove\",f,this.bind(this.touchMoved)),this.dropdown.on(\"touchstart touchend\",f,this.bind(this.clearTouchMoved)),this.dropdown.on(\"click\",this.bind(function(){this._touchEvent&&(this._touchEvent=!1,this.selectHighlighted())})),x(80,this.results),this.dropdown.on(\"scroll-debounced\",f,this.bind(this.loadMoreIfNeeded)),a(this.container).on(\"change\",\".select2-input\",function(a){a.stopPropagation()}),a(this.dropdown).on(\"change\",\".select2-input\",function(a){a.stopPropagation()}),a.fn.mousewheel&&d.mousewheel(function(a,b,c,e){var f=d.scrollTop();e>0&&0>=f-e?(d.scrollTop(0),A(a)):0>e&&d.get(0).scrollHeight-d.scrollTop()+e<=d.height()&&(d.scrollTop(d.get(0).scrollHeight-d.height()),A(a))}),u(e),e.on(\"keyup-change input paste\",this.bind(this.updateResults)),e.on(\"focus\",function(){e.addClass(\"select2-focused\")}),e.on(\"blur\",function(){e.removeClass(\"select2-focused\")}),this.dropdown.on(\"mouseup\",f,this.bind(function(b){a(b.target).closest(\".select2-result-selectable\").length>0&&(this.highlightUnderEvent(b),this.selectHighlighted(b))})),this.dropdown.on(\"click mouseup mousedown touchstart touchend focusin\",function(a){a.stopPropagation()}),this.nextSearchTerm=b,a.isFunction(this.opts.initSelection)&&(this.initSelection(),this.monitorSource()),null!==c.maximumInputLength&&this.search.attr(\"maxlength\",c.maximumInputLength);var h=c.element.prop(\"disabled\");h===b&&(h=!1),this.enable(!h);var i=c.element.prop(\"readonly\");i===b&&(i=!1),this.readonly(i),k=k||q(),this.autofocus=c.element.prop(\"autofocus\"),c.element.prop(\"autofocus\",!1),this.autofocus&&this.focus(),this.search.attr(\"placeholder\",c.searchInputPlaceholder)},destroy:function(){var a=this.opts.element,c=a.data(\"select2\"),d=this;this.close(),a.length&&a[0].detachEvent&&d._sync&&a.each(function(){this.detachEvent(\"onpropertychange\",d._sync)}),this.propertyObserver&&(this.propertyObserver.disconnect(),this.propertyObserver=null),this._sync=null,c!==b&&(c.container.remove(),c.liveRegion.remove(),c.dropdown.remove(),a.removeClass(\"select2-offscreen\").removeData(\"select2\").off(\".select2\").prop(\"autofocus\",this.autofocus||!1),this.elementTabIndex?a.attr({tabindex:this.elementTabIndex}):a.removeAttr(\"tabindex\"),a.show()),N.call(this,\"container\",\"liveRegion\",\"dropdown\",\"results\",\"search\")},optionToData:function(a){return a.is(\"option\")?{id:a.prop(\"value\"),text:a.text(),element:a.get(),css:a.attr(\"class\"),disabled:a.prop(\"disabled\"),locked:r(a.attr(\"locked\"),\"locked\")||r(a.data(\"locked\"),!0)}:a.is(\"optgroup\")?{text:a.attr(\"label\"),children:[],element:a.get(),css:a.attr(\"class\")}:void 0},prepareOpts:function(c){var d,e,f,h,i=this;if(d=c.element,\"select\"===d.get(0).tagName.toLowerCase()&&(this.select=e=c.element),e&&a.each([\"id\",\"multiple\",\"ajax\",\"query\",\"createSearchChoice\",\"initSelection\",\"data\",\"tags\"],function(){if(this in c)throw new Error(\"Option '\"+this+\"' is not allowed for Select2 when attached to a <select> element.\")}),c=a.extend({},{populateResults:function(d,e,f){var h,j=this.opts.id,k=this.liveRegion;h=function(d,e,l){var m,n,o,p,q,r,s,t,u,v;d=c.sortResults(d,e,f);var w=[];for(m=0,n=d.length;n>m;m+=1)o=d[m],q=o.disabled===!0,p=!q&&j(o)!==b,r=o.children&&o.children.length>0,s=a(\"<li></li>\"),s.addClass(\"select2-results-dept-\"+l),s.addClass(\"select2-result\"),s.addClass(p?\"select2-result-selectable\":\"select2-result-unselectable\"),q&&s.addClass(\"select2-disabled\"),r&&s.addClass(\"select2-result-with-children\"),s.addClass(i.opts.formatResultCssClass(o)),s.attr(\"role\",\"presentation\"),t=a(document.createElement(\"div\")),t.addClass(\"select2-result-label\"),t.attr(\"id\",\"select2-result-label-\"+g()),t.attr(\"role\",\"option\"),v=c.formatResult(o,t,f,i.opts.escapeMarkup),v!==b&&(t.html(v),s.append(t)),r&&(u=a(\"<ul></ul>\"),u.addClass(\"select2-result-sub\"),h(o.children,u,l+1),s.append(u)),s.data(\"select2-data\",o),w.push(s[0]);e.append(w),k.text(c.formatMatches(d.length))},h(e,d,0)}},a.fn.select2.defaults,c),\"function\"!=typeof c.id&&(f=c.id,c.id=function(a){return a[f]}),a.isArray(c.element.data(\"select2Tags\"))){if(\"tags\"in c)throw\"tags specified as both an attribute 'data-select2-tags' and in options of Select2 \"+c.element.attr(\"id\");c.tags=c.element.data(\"select2Tags\")}if(e?(c.query=this.bind(function(a){var f,g,h,c={results:[],more:!1},e=a.term;h=function(b,c){var d;b.is(\"option\")?a.matcher(e,b.text(),b)&&c.push(i.optionToData(b)):b.is(\"optgroup\")&&(d=i.optionToData(b),b.children().each2(function(a,b){h(b,d.children)}),d.children.length>0&&c.push(d))},f=d.children(),this.getPlaceholder()!==b&&f.length>0&&(g=this.getPlaceholderOption(),g&&(f=f.not(g))),f.each2(function(a,b){h(b,c.results)}),a.callback(c)}),c.id=function(a){return a.id}):\"query\"in c||(\"ajax\"in c?(h=c.element.data(\"ajax-url\"),h&&h.length>0&&(c.ajax.url=h),c.query=G.call(c.element,c.ajax)):\"data\"in c?c.query=H(c.data):\"tags\"in c&&(c.query=I(c.tags),c.createSearchChoice===b&&(c.createSearchChoice=function(b){return{id:a.trim(b),text:a.trim(b)}}),c.initSelection===b&&(c.initSelection=function(b,d){var e=[];a(s(b.val(),c.separator)).each(function(){var b={id:this,text:this},d=c.tags;a.isFunction(d)&&(d=d()),a(d).each(function(){return r(this.id,b.id)?(b=this,!1):void 0}),e.push(b)}),d(e)}))),\"function\"!=typeof c.query)throw\"query function not defined for Select2 \"+c.element.attr(\"id\");if(\"top\"===c.createSearchChoicePosition)c.createSearchChoicePosition=function(a,b){a.unshift(b)};else if(\"bottom\"===c.createSearchChoicePosition)c.createSearchChoicePosition=function(a,b){a.push(b)};else if(\"function\"!=typeof c.createSearchChoicePosition)throw\"invalid createSearchChoicePosition option must be 'top', 'bottom' or a custom function\";return c},monitorSource:function(){var d,c=this.opts.element,e=this;c.on(\"change.select2\",this.bind(function(){this.opts.element.data(\"select2-change-triggered\")!==!0&&this.initSelection()})),this._sync=this.bind(function(){var a=c.prop(\"disabled\");a===b&&(a=!1),this.enable(!a);var d=c.prop(\"readonly\");d===b&&(d=!1),this.readonly(d),D(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.addClass(K(this.opts.containerCssClass,this.opts.element)),D(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass),this.dropdown.addClass(K(this.opts.dropdownCssClass,this.opts.element))}),c.length&&c[0].attachEvent&&c.each(function(){this.attachEvent(\"onpropertychange\",e._sync)}),d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,d!==b&&(this.propertyObserver&&(delete this.propertyObserver,this.propertyObserver=null),this.propertyObserver=new d(function(b){a.each(b,e._sync)}),this.propertyObserver.observe(c.get(0),{attributes:!0,subtree:!1}))},triggerSelect:function(b){var c=a.Event(\"select2-selecting\",{val:this.id(b),object:b,choice:b});return this.opts.element.trigger(c),!c.isDefaultPrevented()},triggerChange:function(b){b=b||{},b=a.extend({},b,{type:\"change\",val:this.val()}),this.opts.element.data(\"select2-change-triggered\",!0),this.opts.element.trigger(b),this.opts.element.data(\"select2-change-triggered\",!1),this.opts.element.click(),this.opts.blurOnChange&&this.opts.element.blur()},isInterfaceEnabled:function(){return this.enabledInterface===!0},enableInterface:function(){var a=this._enabled&&!this._readonly,b=!a;return a===this.enabledInterface?!1:(this.container.toggleClass(\"select2-container-disabled\",b),this.close(),this.enabledInterface=a,!0)},enable:function(a){a===b&&(a=!0),this._enabled!==a&&(this._enabled=a,this.opts.element.prop(\"disabled\",!a),this.enableInterface())},disable:function(){this.enable(!1)},readonly:function(a){a===b&&(a=!1),this._readonly!==a&&(this._readonly=a,this.opts.element.prop(\"readonly\",a),this.enableInterface())},opened:function(){return this.container?this.container.hasClass(\"select2-dropdown-open\"):!1},positionDropdown:function(){var t,u,v,w,x,b=this.dropdown,c=this.container.offset(),d=this.container.outerHeight(!1),e=this.container.outerWidth(!1),f=b.outerHeight(!1),g=a(window),h=g.width(),i=g.height(),j=g.scrollLeft()+h,l=g.scrollTop()+i,m=c.top+d,n=c.left,o=l>=m+f,p=c.top-f>=g.scrollTop(),q=b.outerWidth(!1),r=j>=n+q,s=b.hasClass(\"select2-drop-above\");s?(u=!0,!p&&o&&(v=!0,u=!1)):(u=!1,!o&&p&&(v=!0,u=!0)),v&&(b.hide(),c=this.container.offset(),d=this.container.outerHeight(!1),e=this.container.outerWidth(!1),f=b.outerHeight(!1),j=g.scrollLeft()+h,l=g.scrollTop()+i,m=c.top+d,n=c.left,q=b.outerWidth(!1),r=j>=n+q,b.show(),this.focusSearch()),this.opts.dropdownAutoWidth?(x=a(\".select2-results\",b)[0],b.addClass(\"select2-drop-auto-width\"),b.css(\"width\",\"\"),q=b.outerWidth(!1)+(x.scrollHeight===x.clientHeight?0:k.width),q>e?e=q:q=e,f=b.outerHeight(!1),r=j>=n+q):this.container.removeClass(\"select2-drop-auto-width\"),\"static\"!==this.body.css(\"position\")&&(t=this.body.offset(),m-=t.top,n-=t.left),r||(n=c.left+this.container.outerWidth(!1)-q),w={left:n,width:e},u?(w.top=c.top-f,w.bottom=\"auto\",this.container.addClass(\"select2-drop-above\"),b.addClass(\"select2-drop-above\")):(w.top=m,w.bottom=\"auto\",this.container.removeClass(\"select2-drop-above\"),b.removeClass(\"select2-drop-above\")),w=a.extend(w,K(this.opts.dropdownCss,this.opts.element)),b.css(w)},shouldOpen:function(){var b;return this.opened()?!1:this._enabled===!1||this._readonly===!0?!1:(b=a.Event(\"select2-opening\"),this.opts.element.trigger(b),!b.isDefaultPrevented())},clearDropdownAlignmentPreference:function(){this.container.removeClass(\"select2-drop-above\"),this.dropdown.removeClass(\"select2-drop-above\")},open:function(){return this.shouldOpen()?(this.opening(),j.on(\"mousemove.select2Event\",function(a){i.x=a.pageX,i.y=a.pageY}),!0):!1},opening:function(){var f,b=this.containerEventName,c=\"scroll.\"+b,d=\"resize.\"+b,e=\"orientationchange.\"+b;this.container.addClass(\"select2-dropdown-open\").addClass(\"select2-container-active\"),this.clearDropdownAlignmentPreference(),this.dropdown[0]!==this.body.children().last()[0]&&this.dropdown.detach().appendTo(this.body),f=a(\"#select2-drop-mask\"),0==f.length&&(f=a(document.createElement(\"div\")),f.attr(\"id\",\"select2-drop-mask\").attr(\"class\",\"select2-drop-mask\"),f.hide(),f.appendTo(this.body),f.on(\"mousedown touchstart\",function(b){n(f);var d,c=a(\"#select2-drop\");c.length>0&&(d=c.data(\"select2\"),d.opts.selectOnBlur&&d.selectHighlighted({noFocus:!0}),d.close(),b.preventDefault(),b.stopPropagation())})),this.dropdown.prev()[0]!==f[0]&&this.dropdown.before(f),a(\"#select2-drop\").removeAttr(\"id\"),this.dropdown.attr(\"id\",\"select2-drop\"),f.show(),this.positionDropdown(),this.dropdown.show(),this.positionDropdown(),this.dropdown.addClass(\"select2-drop-active\");var g=this;this.container.parents().add(window).each(function(){a(this).on(d+\" \"+c+\" \"+e,function(){g.opened()&&g.positionDropdown()})})},close:function(){if(this.opened()){var b=this.containerEventName,c=\"scroll.\"+b,d=\"resize.\"+b,e=\"orientationchange.\"+b;this.container.parents().add(window).each(function(){a(this).off(c).off(d).off(e)}),this.clearDropdownAlignmentPreference(),a(\"#select2-drop-mask\").hide(),this.dropdown.removeAttr(\"id\"),this.dropdown.hide(),this.container.removeClass(\"select2-dropdown-open\").removeClass(\"select2-container-active\"),this.results.empty(),j.off(\"mousemove.select2Event\"),this.clearSearch(),this.search.removeClass(\"select2-active\"),this.opts.element.trigger(a.Event(\"select2-close\"))}},externalSearch:function(a){this.open(),this.search.val(a),this.updateResults(!1)},clearSearch:function(){},getMaximumSelectionSize:function(){return K(this.opts.maximumSelectionSize,this.opts.element)},ensureHighlightVisible:function(){var c,d,e,f,g,h,i,j,b=this.results;if(d=this.highlight(),!(0>d)){if(0==d)return b.scrollTop(0),void 0;c=this.findHighlightableChoices().find(\".select2-result-label\"),e=a(c[d]),j=(e.offset()||{}).top||0,f=j+e.outerHeight(!0),d===c.length-1&&(i=b.find(\"li.select2-more-results\"),i.length>0&&(f=i.offset().top+i.outerHeight(!0))),g=b.offset().top+b.outerHeight(!0),f>g&&b.scrollTop(b.scrollTop()+(f-g)),h=j-b.offset().top,0>h&&\"none\"!=e.css(\"display\")&&b.scrollTop(b.scrollTop()+h)}},findHighlightableChoices:function(){return this.results.find(\".select2-result-selectable:not(.select2-disabled):not(.select2-selected)\")},moveHighlight:function(b){for(var c=this.findHighlightableChoices(),d=this.highlight();d>-1&&d<c.length;){d+=b;var e=a(c[d]);if(e.hasClass(\"select2-result-selectable\")&&!e.hasClass(\"select2-disabled\")&&!e.hasClass(\"select2-selected\")){this.highlight(d);\nbreak}}},highlight:function(b){var d,e,c=this.findHighlightableChoices();return 0===arguments.length?p(c.filter(\".select2-highlighted\")[0],c.get()):(b>=c.length&&(b=c.length-1),0>b&&(b=0),this.removeHighlight(),d=a(c[b]),d.addClass(\"select2-highlighted\"),this.search.attr(\"aria-activedescendant\",d.find(\".select2-result-label\").attr(\"id\")),this.ensureHighlightVisible(),this.liveRegion.text(d.text()),e=d.data(\"select2-data\"),e&&this.opts.element.trigger({type:\"select2-highlight\",val:this.id(e),choice:e}),void 0)},removeHighlight:function(){this.results.find(\".select2-highlighted\").removeClass(\"select2-highlighted\")},touchMoved:function(){this._touchMoved=!0},clearTouchMoved:function(){this._touchMoved=!1},countSelectableResults:function(){return this.findHighlightableChoices().length},highlightUnderEvent:function(b){var c=a(b.target).closest(\".select2-result-selectable\");if(c.length>0&&!c.is(\".select2-highlighted\")){var d=this.findHighlightableChoices();this.highlight(d.index(c))}else 0==c.length&&this.removeHighlight()},loadMoreIfNeeded:function(){var c,a=this.results,b=a.find(\"li.select2-more-results\"),d=this.resultsPage+1,e=this,f=this.search.val(),g=this.context;0!==b.length&&(c=b.offset().top-a.offset().top-a.height(),c<=this.opts.loadMorePadding&&(b.addClass(\"select2-active\"),this.opts.query({element:this.opts.element,term:f,page:d,context:g,matcher:this.opts.matcher,callback:this.bind(function(c){e.opened()&&(e.opts.populateResults.call(this,a,c.results,{term:f,page:d,context:g}),e.postprocessResults(c,!1,!1),c.more===!0?(b.detach().appendTo(a).text(K(e.opts.formatLoadMore,e.opts.element,d+1)),window.setTimeout(function(){e.loadMoreIfNeeded()},10)):b.remove(),e.positionDropdown(),e.resultsPage=d,e.context=c.context,this.opts.element.trigger({type:\"select2-loaded\",items:c}))})})))},tokenize:function(){},updateResults:function(c){function m(){d.removeClass(\"select2-active\"),h.positionDropdown(),e.find(\".select2-no-results,.select2-selection-limit,.select2-searching\").length?h.liveRegion.text(e.text()):h.liveRegion.text(h.opts.formatMatches(e.find(\".select2-result-selectable\").length))}function n(a){e.html(a),m()}var g,i,l,d=this.search,e=this.results,f=this.opts,h=this,j=d.val(),k=a.data(this.container,\"select2-last-term\");if((c===!0||!k||!r(j,k))&&(a.data(this.container,\"select2-last-term\",j),c===!0||this.showSearchInput!==!1&&this.opened())){l=++this.queryCount;var o=this.getMaximumSelectionSize();if(o>=1&&(g=this.data(),a.isArray(g)&&g.length>=o&&J(f.formatSelectionTooBig,\"formatSelectionTooBig\")))return n(\"<li class='select2-selection-limit'>\"+K(f.formatSelectionTooBig,f.element,o)+\"</li>\"),void 0;if(d.val().length<f.minimumInputLength)return J(f.formatInputTooShort,\"formatInputTooShort\")?n(\"<li class='select2-no-results'>\"+K(f.formatInputTooShort,f.element,d.val(),f.minimumInputLength)+\"</li>\"):n(\"\"),c&&this.showSearch&&this.showSearch(!0),void 0;if(f.maximumInputLength&&d.val().length>f.maximumInputLength)return J(f.formatInputTooLong,\"formatInputTooLong\")?n(\"<li class='select2-no-results'>\"+K(f.formatInputTooLong,f.element,d.val(),f.maximumInputLength)+\"</li>\"):n(\"\"),void 0;f.formatSearching&&0===this.findHighlightableChoices().length&&n(\"<li class='select2-searching'>\"+K(f.formatSearching,f.element)+\"</li>\"),d.addClass(\"select2-active\"),this.removeHighlight(),i=this.tokenize(),i!=b&&null!=i&&d.val(i),this.resultsPage=1,f.query({element:f.element,term:d.val(),page:this.resultsPage,context:null,matcher:f.matcher,callback:this.bind(function(g){var i;if(l==this.queryCount){if(!this.opened())return this.search.removeClass(\"select2-active\"),void 0;if(g.hasError!==b&&J(f.formatAjaxError,\"formatAjaxError\"))return n(\"<li class='select2-ajax-error'>\"+K(f.formatAjaxError,f.element,g.jqXHR,g.textStatus,g.errorThrown)+\"</li>\"),void 0;if(this.context=g.context===b?null:g.context,this.opts.createSearchChoice&&\"\"!==d.val()&&(i=this.opts.createSearchChoice.call(h,d.val(),g.results),i!==b&&null!==i&&h.id(i)!==b&&null!==h.id(i)&&0===a(g.results).filter(function(){return r(h.id(this),h.id(i))}).length&&this.opts.createSearchChoicePosition(g.results,i)),0===g.results.length&&J(f.formatNoMatches,\"formatNoMatches\"))return n(\"<li class='select2-no-results'>\"+K(f.formatNoMatches,f.element,d.val())+\"</li>\"),void 0;e.empty(),h.opts.populateResults.call(this,e,g.results,{term:d.val(),page:this.resultsPage,context:null}),g.more===!0&&J(f.formatLoadMore,\"formatLoadMore\")&&(e.append(\"<li class='select2-more-results'>\"+f.escapeMarkup(K(f.formatLoadMore,f.element,this.resultsPage))+\"</li>\"),window.setTimeout(function(){h.loadMoreIfNeeded()},10)),this.postprocessResults(g,c),m(),this.opts.element.trigger({type:\"select2-loaded\",items:g})}})})}},cancel:function(){this.close()},blur:function(){this.opts.selectOnBlur&&this.selectHighlighted({noFocus:!0}),this.close(),this.container.removeClass(\"select2-container-active\"),this.search[0]===document.activeElement&&this.search.blur(),this.clearSearch(),this.selection.find(\".select2-search-choice-focus\").removeClass(\"select2-search-choice-focus\")},focusSearch:function(){y(this.search)},selectHighlighted:function(a){if(this._touchMoved)return this.clearTouchMoved(),void 0;var b=this.highlight(),c=this.results.find(\".select2-highlighted\"),d=c.closest(\".select2-result\").data(\"select2-data\");d?(this.highlight(b),this.onSelect(d,a)):a&&a.noFocus&&this.close()},getPlaceholder:function(){var a;return this.opts.element.attr(\"placeholder\")||this.opts.element.attr(\"data-placeholder\")||this.opts.element.data(\"placeholder\")||this.opts.placeholder||((a=this.getPlaceholderOption())!==b?a.text():b)},getPlaceholderOption:function(){if(this.select){var c=this.select.children(\"option\").first();if(this.opts.placeholderOption!==b)return\"first\"===this.opts.placeholderOption&&c||\"function\"==typeof this.opts.placeholderOption&&this.opts.placeholderOption(this.select);if(\"\"===a.trim(c.text())&&\"\"===c.val())return c}},initContainerWidth:function(){function c(){var c,d,e,f,g,h;if(\"off\"===this.opts.width)return null;if(\"element\"===this.opts.width)return 0===this.opts.element.outerWidth(!1)?\"auto\":this.opts.element.outerWidth(!1)+\"px\";if(\"copy\"===this.opts.width||\"resolve\"===this.opts.width){if(c=this.opts.element.attr(\"style\"),c!==b)for(d=c.split(\";\"),f=0,g=d.length;g>f;f+=1)if(h=d[f].replace(/\\s/g,\"\"),e=h.match(/^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i),null!==e&&e.length>=1)return e[1];return\"resolve\"===this.opts.width?(c=this.opts.element.css(\"width\"),c.indexOf(\"%\")>0?c:0===this.opts.element.outerWidth(!1)?\"auto\":this.opts.element.outerWidth(!1)+\"px\"):null}return a.isFunction(this.opts.width)?this.opts.width():this.opts.width}var d=c.call(this);null!==d&&this.container.css(\"width\",d)}}),e=O(d,{createContainer:function(){var b=a(document.createElement(\"div\")).attr({\"class\":\"select2-container\"}).html([\"<a href='javascript:void(0)' class='select2-choice' tabindex='-1'>\",\" <span class='select2-chosen'>&#160;</span><abbr class='select2-search-choice-close'></abbr>\",\" <span class='select2-arrow' role='presentation'><b role='presentation'></b></span>\",\"</a>\",\"<label for='' class='select2-offscreen'></label>\",\"<input class='select2-focusser select2-offscreen' type='text' aria-haspopup='true' role='button' />\",\"<div class='select2-drop select2-display-none'>\",\" <div class='select2-search'>\",\" <label for='' class='select2-offscreen'></label>\",\" <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input' role='combobox' aria-expanded='true'\",\" aria-autocomplete='list' />\",\" </div>\",\" <ul class='select2-results' role='listbox'>\",\" </ul>\",\"</div>\"].join(\"\"));return b},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.focusser.prop(\"disabled\",!this.isInterfaceEnabled())},opening:function(){var c,d,e;this.opts.minimumResultsForSearch>=0&&this.showSearch(!0),this.parent.opening.apply(this,arguments),this.showSearchInput!==!1&&this.search.val(this.focusser.val()),this.opts.shouldFocusInput(this)&&(this.search.focus(),c=this.search.get(0),c.createTextRange?(d=c.createTextRange(),d.collapse(!1),d.select()):c.setSelectionRange&&(e=this.search.val().length,c.setSelectionRange(e,e))),\"\"===this.search.val()&&this.nextSearchTerm!=b&&(this.search.val(this.nextSearchTerm),this.search.select()),this.focusser.prop(\"disabled\",!0).val(\"\"),this.updateResults(!0),this.opts.element.trigger(a.Event(\"select2-open\"))},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.focusser.prop(\"disabled\",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},focus:function(){this.opened()?this.close():(this.focusser.prop(\"disabled\",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},isFocused:function(){return this.container.hasClass(\"select2-container-active\")},cancel:function(){this.parent.cancel.apply(this,arguments),this.focusser.prop(\"disabled\",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus()},destroy:function(){a(\"label[for='\"+this.focusser.attr(\"id\")+\"']\").attr(\"for\",this.opts.element.attr(\"id\")),this.parent.destroy.apply(this,arguments),N.call(this,\"selection\",\"focusser\")},initContainer:function(){var b,h,d=this.container,e=this.dropdown,f=g();this.opts.minimumResultsForSearch<0?this.showSearch(!1):this.showSearch(!0),this.selection=b=d.find(\".select2-choice\"),this.focusser=d.find(\".select2-focusser\"),b.find(\".select2-chosen\").attr(\"id\",\"select2-chosen-\"+f),this.focusser.attr(\"aria-labelledby\",\"select2-chosen-\"+f),this.results.attr(\"id\",\"select2-results-\"+f),this.search.attr(\"aria-owns\",\"select2-results-\"+f),this.focusser.attr(\"id\",\"s2id_autogen\"+f),h=a(\"label[for='\"+this.opts.element.attr(\"id\")+\"']\"),this.focusser.prev().text(h.text()).attr(\"for\",this.focusser.attr(\"id\"));var i=this.opts.element.attr(\"title\");this.opts.element.attr(\"title\",i||h.text()),this.focusser.attr(\"tabindex\",this.elementTabIndex),this.search.attr(\"id\",this.focusser.attr(\"id\")+\"_search\"),this.search.prev().text(a(\"label[for='\"+this.focusser.attr(\"id\")+\"']\").text()).attr(\"for\",this.search.attr(\"id\")),this.search.on(\"keydown\",this.bind(function(a){if(this.isInterfaceEnabled()&&229!=a.keyCode){if(a.which===c.PAGE_UP||a.which===c.PAGE_DOWN)return A(a),void 0;switch(a.which){case c.UP:case c.DOWN:return this.moveHighlight(a.which===c.UP?-1:1),A(a),void 0;case c.ENTER:return this.selectHighlighted(),A(a),void 0;case c.TAB:return this.selectHighlighted({noFocus:!0}),void 0;case c.ESC:return this.cancel(a),A(a),void 0}}})),this.search.on(\"blur\",this.bind(function(){document.activeElement===this.body.get(0)&&window.setTimeout(this.bind(function(){this.opened()&&this.search.focus()}),0)})),this.focusser.on(\"keydown\",this.bind(function(a){if(this.isInterfaceEnabled()&&a.which!==c.TAB&&!c.isControl(a)&&!c.isFunctionKey(a)&&a.which!==c.ESC){if(this.opts.openOnEnter===!1&&a.which===c.ENTER)return A(a),void 0;if(a.which==c.DOWN||a.which==c.UP||a.which==c.ENTER&&this.opts.openOnEnter){if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return;return this.open(),A(a),void 0}return a.which==c.DELETE||a.which==c.BACKSPACE?(this.opts.allowClear&&this.clear(),A(a),void 0):void 0}})),u(this.focusser),this.focusser.on(\"keyup-change input\",this.bind(function(a){if(this.opts.minimumResultsForSearch>=0){if(a.stopPropagation(),this.opened())return;this.open()}})),b.on(\"mousedown touchstart\",\"abbr\",this.bind(function(a){this.isInterfaceEnabled()&&(this.clear(),B(a),this.close(),this.selection.focus())})),b.on(\"mousedown touchstart\",this.bind(function(c){n(b),this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),A(c)})),e.on(\"mousedown touchstart\",this.bind(function(){this.opts.shouldFocusInput(this)&&this.search.focus()})),b.on(\"focus\",this.bind(function(a){A(a)})),this.focusser.on(\"focus\",this.bind(function(){this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.container.addClass(\"select2-container-active\")})).on(\"blur\",this.bind(function(){this.opened()||(this.container.removeClass(\"select2-container-active\"),this.opts.element.trigger(a.Event(\"select2-blur\")))})),this.search.on(\"focus\",this.bind(function(){this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.container.addClass(\"select2-container-active\")})),this.initContainerWidth(),this.opts.element.addClass(\"select2-offscreen\"),this.setPlaceholder()},clear:function(b){var c=this.selection.data(\"select2-data\");if(c){var d=a.Event(\"select2-clearing\");if(this.opts.element.trigger(d),d.isDefaultPrevented())return;var e=this.getPlaceholderOption();this.opts.element.val(e?e.val():\"\"),this.selection.find(\".select2-chosen\").empty(),this.selection.removeData(\"select2-data\"),this.setPlaceholder(),b!==!1&&(this.opts.element.trigger({type:\"select2-removed\",val:this.id(c),choice:c}),this.triggerChange({removed:c}))}},initSelection:function(){if(this.isPlaceholderOptionSelected())this.updateSelection(null),this.close(),this.setPlaceholder();else{var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.setPlaceholder(),c.nextSearchTerm=c.opts.nextSearchTerm(a,c.search.val()))})}},isPlaceholderOptionSelected:function(){var a;return this.getPlaceholder()===b?!1:(a=this.getPlaceholderOption())!==b&&a.prop(\"selected\")||\"\"===this.opts.element.val()||this.opts.element.val()===b||null===this.opts.element.val()},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return\"select\"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=a.find(\"option\").filter(function(){return this.selected&&!this.disabled});b(c.optionToData(d))}:\"data\"in b&&(b.initSelection=b.initSelection||function(c,d){var e=c.val(),f=null;b.query({matcher:function(a,c,d){var g=r(e,b.id(d));return g&&(f=d),g},callback:a.isFunction(d)?function(){d(f)}:a.noop})}),b},getPlaceholder:function(){return this.select&&this.getPlaceholderOption()===b?b:this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var a=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&a!==b){if(this.select&&this.getPlaceholderOption()===b)return;this.selection.find(\".select2-chosen\").html(this.opts.escapeMarkup(a)),this.selection.addClass(\"select2-default\"),this.container.removeClass(\"select2-allowclear\")}},postprocessResults:function(a,b,c){var d=0,e=this;if(this.findHighlightableChoices().each2(function(a,b){return r(e.id(b.data(\"select2-data\")),e.opts.element.val())?(d=a,!1):void 0}),c!==!1&&(b===!0&&d>=0?this.highlight(d):this.highlight(0)),b===!0){var g=this.opts.minimumResultsForSearch;g>=0&&this.showSearch(L(a.results)>=g)}},showSearch:function(b){this.showSearchInput!==b&&(this.showSearchInput=b,this.dropdown.find(\".select2-search\").toggleClass(\"select2-search-hidden\",!b),this.dropdown.find(\".select2-search\").toggleClass(\"select2-offscreen\",!b),a(this.dropdown,this.container).toggleClass(\"select2-with-searchbox\",b))},onSelect:function(a,b){if(this.triggerSelect(a)){var c=this.opts.element.val(),d=this.data();this.opts.element.val(this.id(a)),this.updateSelection(a),this.opts.element.trigger({type:\"select2-selected\",val:this.id(a),choice:a}),this.nextSearchTerm=this.opts.nextSearchTerm(a,this.search.val()),this.close(),b&&b.noFocus||!this.opts.shouldFocusInput(this)||this.focusser.focus(),r(c,this.id(a))||this.triggerChange({added:a,removed:d})}},updateSelection:function(a){var d,e,c=this.selection.find(\".select2-chosen\");this.selection.data(\"select2-data\",a),c.empty(),null!==a&&(d=this.opts.formatSelection(a,c,this.opts.escapeMarkup)),d!==b&&c.append(d),e=this.opts.formatSelectionCssClass(a,c),e!==b&&c.addClass(e),this.selection.removeClass(\"select2-default\"),this.opts.allowClear&&this.getPlaceholder()!==b&&this.container.addClass(\"select2-allowclear\")},val:function(){var a,c=!1,d=null,e=this,f=this.data();if(0===arguments.length)return this.opts.element.val();if(a=arguments[0],arguments.length>1&&(c=arguments[1]),this.select)this.select.val(a).find(\"option\").filter(function(){return this.selected}).each2(function(a,b){return d=e.optionToData(b),!1}),this.updateSelection(d),this.setPlaceholder(),c&&this.triggerChange({added:d,removed:f});else{if(!a&&0!==a)return this.clear(c),void 0;if(this.opts.initSelection===b)throw new Error(\"cannot call val() if initSelection() is not defined\");this.opts.element.val(a),this.opts.initSelection(this.opts.element,function(a){e.opts.element.val(a?e.id(a):\"\"),e.updateSelection(a),e.setPlaceholder(),c&&e.triggerChange({added:a,removed:f})})}},clearSearch:function(){this.search.val(\"\"),this.focusser.val(\"\")},data:function(a){var c,d=!1;return 0===arguments.length?(c=this.selection.data(\"select2-data\"),c==b&&(c=null),c):(arguments.length>1&&(d=arguments[1]),a?(c=this.data(),this.opts.element.val(a?this.id(a):\"\"),this.updateSelection(a),d&&this.triggerChange({added:a,removed:c})):this.clear(d),void 0)}}),f=O(d,{createContainer:function(){var b=a(document.createElement(\"div\")).attr({\"class\":\"select2-container select2-container-multi\"}).html([\"<ul class='select2-choices'>\",\" <li class='select2-search-field'>\",\" <label for='' class='select2-offscreen'></label>\",\" <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'>\",\" </li>\",\"</ul>\",\"<div class='select2-drop select2-drop-multi select2-display-none'>\",\" <ul class='select2-results'>\",\" </ul>\",\"</div>\"].join(\"\"));return b},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return\"select\"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=[];a.find(\"option\").filter(function(){return this.selected&&!this.disabled}).each2(function(a,b){d.push(c.optionToData(b))}),b(d)}:\"data\"in b&&(b.initSelection=b.initSelection||function(c,d){var e=s(c.val(),b.separator),f=[];b.query({matcher:function(c,d,g){var h=a.grep(e,function(a){return r(a,b.id(g))}).length;return h&&f.push(g),h},callback:a.isFunction(d)?function(){for(var a=[],c=0;c<e.length;c++)for(var g=e[c],h=0;h<f.length;h++){var i=f[h];if(r(g,b.id(i))){a.push(i),f.splice(h,1);break}}d(a)}:a.noop})}),b},selectChoice:function(a){var b=this.container.find(\".select2-search-choice-focus\");b.length&&a&&a[0]==b[0]||(b.length&&this.opts.element.trigger(\"choice-deselected\",b),b.removeClass(\"select2-search-choice-focus\"),a&&a.length&&(this.close(),a.addClass(\"select2-search-choice-focus\"),this.opts.element.trigger(\"choice-selected\",a)))},destroy:function(){a(\"label[for='\"+this.search.attr(\"id\")+\"']\").attr(\"for\",this.opts.element.attr(\"id\")),this.parent.destroy.apply(this,arguments),N.call(this,\"searchContainer\",\"selection\")},initContainer:function(){var d,b=\".select2-choices\";this.searchContainer=this.container.find(\".select2-search-field\"),this.selection=d=this.container.find(b);var e=this;this.selection.on(\"click\",\".select2-container:not(.select2-container-disabled) .select2-search-choice:not(.select2-locked)\",function(){e.search[0].focus(),e.selectChoice(a(this))}),this.search.attr(\"id\",\"s2id_autogen\"+g()),this.search.prev().text(a(\"label[for='\"+this.opts.element.attr(\"id\")+\"']\").text()).attr(\"for\",this.search.attr(\"id\")),this.search.on(\"input paste\",this.bind(function(){this.search.attr(\"placeholder\")&&0==this.search.val().length||this.isInterfaceEnabled()&&(this.opened()||this.open())})),this.search.attr(\"tabindex\",this.elementTabIndex),this.keydowns=0,this.search.on(\"keydown\",this.bind(function(a){if(this.isInterfaceEnabled()){++this.keydowns;var b=d.find(\".select2-search-choice-focus\"),e=b.prev(\".select2-search-choice:not(.select2-locked)\"),f=b.next(\".select2-search-choice:not(.select2-locked)\"),g=z(this.search);if(b.length&&(a.which==c.LEFT||a.which==c.RIGHT||a.which==c.BACKSPACE||a.which==c.DELETE||a.which==c.ENTER)){var h=b;return a.which==c.LEFT&&e.length?h=e:a.which==c.RIGHT?h=f.length?f:null:a.which===c.BACKSPACE?this.unselect(b.first())&&(this.search.width(10),h=e.length?e:f):a.which==c.DELETE?this.unselect(b.first())&&(this.search.width(10),h=f.length?f:null):a.which==c.ENTER&&(h=null),this.selectChoice(h),A(a),h&&h.length||this.open(),void 0}if((a.which===c.BACKSPACE&&1==this.keydowns||a.which==c.LEFT)&&0==g.offset&&!g.length)return this.selectChoice(d.find(\".select2-search-choice:not(.select2-locked)\").last()),A(a),void 0;if(this.selectChoice(null),this.opened())switch(a.which){case c.UP:case c.DOWN:return this.moveHighlight(a.which===c.UP?-1:1),A(a),void 0;case c.ENTER:return this.selectHighlighted(),A(a),void 0;case c.TAB:return this.selectHighlighted({noFocus:!0}),this.close(),void 0;case c.ESC:return this.cancel(a),A(a),void 0}if(a.which!==c.TAB&&!c.isControl(a)&&!c.isFunctionKey(a)&&a.which!==c.BACKSPACE&&a.which!==c.ESC){if(a.which===c.ENTER){if(this.opts.openOnEnter===!1)return;if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return}this.open(),(a.which===c.PAGE_UP||a.which===c.PAGE_DOWN)&&A(a),a.which===c.ENTER&&A(a)}}})),this.search.on(\"keyup\",this.bind(function(){this.keydowns=0,this.resizeSearch()})),this.search.on(\"blur\",this.bind(function(b){this.container.removeClass(\"select2-container-active\"),this.search.removeClass(\"select2-focused\"),this.selectChoice(null),this.opened()||this.clearSearch(),b.stopImmediatePropagation(),this.opts.element.trigger(a.Event(\"select2-blur\"))})),this.container.on(\"click\",b,this.bind(function(b){this.isInterfaceEnabled()&&(a(b.target).closest(\".select2-search-choice\").length>0||(this.selectChoice(null),this.clearPlaceholder(),this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.open(),this.focusSearch(),b.preventDefault()))})),this.container.on(\"focus\",b,this.bind(function(){this.isInterfaceEnabled()&&(this.container.hasClass(\"select2-container-active\")||this.opts.element.trigger(a.Event(\"select2-focus\")),this.container.addClass(\"select2-container-active\"),this.dropdown.addClass(\"select2-drop-active\"),this.clearPlaceholder())})),this.initContainerWidth(),this.opts.element.addClass(\"select2-offscreen\"),this.clearSearch()},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.search.prop(\"disabled\",!this.isInterfaceEnabled())},initSelection:function(){if(\"\"===this.opts.element.val()&&\"\"===this.opts.element.text()&&(this.updateSelection([]),this.close(),this.clearSearch()),this.select||\"\"!==this.opts.element.val()){var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.clearSearch())})}},clearSearch:function(){var a=this.getPlaceholder(),c=this.getMaxSearchWidth();a!==b&&0===this.getVal().length&&this.search.hasClass(\"select2-focused\")===!1?(this.search.val(a).addClass(\"select2-default\"),this.search.width(c>0?c:this.container.css(\"width\"))):this.search.val(\"\").width(10)},clearPlaceholder:function(){this.search.hasClass(\"select2-default\")&&this.search.val(\"\").removeClass(\"select2-default\")},opening:function(){this.clearPlaceholder(),this.resizeSearch(),this.parent.opening.apply(this,arguments),this.focusSearch(),\"\"===this.search.val()&&this.nextSearchTerm!=b&&(this.search.val(this.nextSearchTerm),this.search.select()),this.updateResults(!0),this.opts.shouldFocusInput(this)&&this.search.focus(),this.opts.element.trigger(a.Event(\"select2-open\"))},close:function(){this.opened()&&this.parent.close.apply(this,arguments)},focus:function(){this.close(),this.search.focus()},isFocused:function(){return this.search.hasClass(\"select2-focused\")},updateSelection:function(b){var c=[],d=[],e=this;a(b).each(function(){p(e.id(this),c)<0&&(c.push(e.id(this)),d.push(this))}),b=d,this.selection.find(\".select2-search-choice\").remove(),a(b).each(function(){e.addSelectedChoice(this)}),e.postprocessResults()},tokenize:function(){var a=this.search.val();a=this.opts.tokenizer.call(this,a,this.data(),this.bind(this.onSelect),this.opts),null!=a&&a!=b&&(this.search.val(a),a.length>0&&this.open())},onSelect:function(a,c){this.triggerSelect(a)&&\"\"!==a.text&&(this.addSelectedChoice(a),this.opts.element.trigger({type:\"selected\",val:this.id(a),choice:a}),this.nextSearchTerm=this.opts.nextSearchTerm(a,this.search.val()),this.clearSearch(),this.updateResults(),(this.select||!this.opts.closeOnSelect)&&this.postprocessResults(a,!1,this.opts.closeOnSelect===!0),this.opts.closeOnSelect?(this.close(),this.search.width(10)):this.countSelectableResults()>0?(this.search.width(10),this.resizeSearch(),this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()?this.updateResults(!0):this.nextSearchTerm!=b&&(this.search.val(this.nextSearchTerm),this.updateResults(),this.search.select()),this.positionDropdown()):(this.close(),this.search.width(10)),this.triggerChange({added:a}),c&&c.noFocus||this.focusSearch())},cancel:function(){this.close(),this.focusSearch()},addSelectedChoice:function(c){var j,k,d=!c.locked,e=a(\"<li class='select2-search-choice'> <div></div> <a href='#' class='select2-search-choice-close' tabindex='-1'></a></li>\"),f=a(\"<li class='select2-search-choice select2-locked'><div></div></li>\"),g=d?e:f,h=this.id(c),i=this.getVal();j=this.opts.formatSelection(c,g.find(\"div\"),this.opts.escapeMarkup),j!=b&&g.find(\"div\").replaceWith(\"<div>\"+j+\"</div>\"),k=this.opts.formatSelectionCssClass(c,g.find(\"div\")),k!=b&&g.addClass(k),d&&g.find(\".select2-search-choice-close\").on(\"mousedown\",A).on(\"click dblclick\",this.bind(function(b){this.isInterfaceEnabled()&&(this.unselect(a(b.target)),this.selection.find(\".select2-search-choice-focus\").removeClass(\"select2-search-choice-focus\"),A(b),this.close(),this.focusSearch())})).on(\"focus\",this.bind(function(){this.isInterfaceEnabled()&&(this.container.addClass(\"select2-container-active\"),this.dropdown.addClass(\"select2-drop-active\"))})),g.data(\"select2-data\",c),g.insertBefore(this.searchContainer),i.push(h),this.setVal(i)},unselect:function(b){var d,e,c=this.getVal();if(b=b.closest(\".select2-search-choice\"),0===b.length)throw\"Invalid argument: \"+b+\". Must be .select2-search-choice\";if(d=b.data(\"select2-data\")){var f=a.Event(\"select2-removing\");if(f.val=this.id(d),f.choice=d,this.opts.element.trigger(f),f.isDefaultPrevented())return!1;for(;(e=p(this.id(d),c))>=0;)c.splice(e,1),this.setVal(c),this.select&&this.postprocessResults();return b.remove(),this.opts.element.trigger({type:\"select2-removed\",val:this.id(d),choice:d}),this.triggerChange({removed:d}),!0}},postprocessResults:function(a,b,c){var d=this.getVal(),e=this.results.find(\".select2-result\"),f=this.results.find(\".select2-result-with-children\"),g=this;e.each2(function(a,b){var c=g.id(b.data(\"select2-data\"));p(c,d)>=0&&(b.addClass(\"select2-selected\"),b.find(\".select2-result-selectable\").addClass(\"select2-selected\"))}),f.each2(function(a,b){b.is(\".select2-result-selectable\")||0!==b.find(\".select2-result-selectable:not(.select2-selected)\").length||b.addClass(\"select2-selected\")}),-1==this.highlight()&&c!==!1&&g.highlight(0),!this.opts.createSearchChoice&&!e.filter(\".select2-result:not(.select2-selected)\").length>0&&(!a||a&&!a.more&&0===this.results.find(\".select2-no-results\").length)&&J(g.opts.formatNoMatches,\"formatNoMatches\")&&this.results.append(\"<li class='select2-no-results'>\"+K(g.opts.formatNoMatches,g.opts.element,g.search.val())+\"</li>\")},getMaxSearchWidth:function(){return this.selection.width()-t(this.search)},resizeSearch:function(){var a,b,c,d,e,f=t(this.search);a=C(this.search)+10,b=this.search.offset().left,c=this.selection.width(),d=this.selection.offset().left,e=c-(b-d)-f,a>e&&(e=c-f),40>e&&(e=c-f),0>=e&&(e=a),this.search.width(Math.floor(e))},getVal:function(){var a;return this.select?(a=this.select.val(),null===a?[]:a):(a=this.opts.element.val(),s(a,this.opts.separator))},setVal:function(b){var c;this.select?this.select.val(b):(c=[],a(b).each(function(){p(this,c)<0&&c.push(this)}),this.opts.element.val(0===c.length?\"\":c.join(this.opts.separator)))},buildChangeDetails:function(a,b){for(var b=b.slice(0),a=a.slice(0),c=0;c<b.length;c++)for(var d=0;d<a.length;d++)r(this.opts.id(b[c]),this.opts.id(a[d]))&&(b.splice(c,1),c>0&&c--,a.splice(d,1),d--);return{added:b,removed:a}},val:function(c,d){var e,f=this;if(0===arguments.length)return this.getVal();if(e=this.data(),e.length||(e=[]),!c&&0!==c)return this.opts.element.val(\"\"),this.updateSelection([]),this.clearSearch(),d&&this.triggerChange({added:this.data(),removed:e}),void 0;if(this.setVal(c),this.select)this.opts.initSelection(this.select,this.bind(this.updateSelection)),d&&this.triggerChange(this.buildChangeDetails(e,this.data()));else{if(this.opts.initSelection===b)throw new Error(\"val() cannot be called if initSelection() is not defined\");this.opts.initSelection(this.opts.element,function(b){var c=a.map(b,f.id);f.setVal(c),f.updateSelection(b),f.clearSearch(),d&&f.triggerChange(f.buildChangeDetails(e,f.data()))})}this.clearSearch()},onSortStart:function(){if(this.select)throw new Error(\"Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.\");this.search.width(0),this.searchContainer.hide()},onSortEnd:function(){var b=[],c=this;this.searchContainer.show(),this.searchContainer.appendTo(this.searchContainer.parent()),this.resizeSearch(),this.selection.find(\".select2-search-choice\").each(function(){b.push(c.opts.id(a(this).data(\"select2-data\")))}),this.setVal(b),this.triggerChange()},data:function(b,c){var e,f,d=this;return 0===arguments.length?this.selection.children(\".select2-search-choice\").map(function(){return a(this).data(\"select2-data\")}).get():(f=this.data(),b||(b=[]),e=a.map(b,function(a){return d.opts.id(a)}),this.setVal(e),this.updateSelection(b),this.clearSearch(),c&&this.triggerChange(this.buildChangeDetails(f,this.data())),void 0)}}),a.fn.select2=function(){var d,e,f,g,h,c=Array.prototype.slice.call(arguments,0),i=[\"val\",\"destroy\",\"opened\",\"open\",\"close\",\"focus\",\"isFocused\",\"container\",\"dropdown\",\"onSortStart\",\"onSortEnd\",\"enable\",\"disable\",\"readonly\",\"positionDropdown\",\"data\",\"search\"],j=[\"opened\",\"isFocused\",\"container\",\"dropdown\"],k=[\"val\",\"data\"],l={search:\"externalSearch\"};return this.each(function(){if(0===c.length||\"object\"==typeof c[0])d=0===c.length?{}:a.extend({},c[0]),d.element=a(this),\"select\"===d.element.get(0).tagName.toLowerCase()?h=d.element.prop(\"multiple\"):(h=d.multiple||!1,\"tags\"in d&&(d.multiple=h=!0)),e=h?new window.Select2[\"class\"].multi:new window.Select2[\"class\"].single,e.init(d);else{if(\"string\"!=typeof c[0])throw\"Invalid arguments to select2 plugin: \"+c;if(p(c[0],i)<0)throw\"Unknown method: \"+c[0];if(g=b,e=a(this).data(\"select2\"),e===b)return;if(f=c[0],\"container\"===f?g=e.container:\"dropdown\"===f?g=e.dropdown:(l[f]&&(f=l[f]),g=e[f].apply(e,c.slice(1))),p(c[0],j)>=0||p(c[0],k)>=0&&1==c.length)return!1}}),g===b?this:g},a.fn.select2.defaults={width:\"copy\",loadMorePadding:0,closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:\"\",dropdownCssClass:\"\",formatResult:function(a,b,c,d){var e=[];return E(a.text,c.term,e,d),e.join(\"\")},formatSelection:function(a,c,d){return a?d(a.text):b},sortResults:function(a){return a},formatResultCssClass:function(a){return a.css},formatSelectionCssClass:function(){return b},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(a){return a==b?null:a.id},matcher:function(a,b){return o(\"\"+b).toUpperCase().indexOf(o(\"\"+a).toUpperCase())>=0},separator:\",\",tokenSeparators:[],tokenizer:M,escapeMarkup:F,blurOnChange:!1,selectOnBlur:!1,adaptContainerCssClass:function(a){return a},adaptDropdownCssClass:function(){return null},nextSearchTerm:function(){return b},searchInputPlaceholder:\"\",createSearchChoicePosition:\"top\",shouldFocusInput:function(a){var b=\"ontouchstart\"in window||navigator.msMaxTouchPoints>0;return b?a.opts.minimumResultsForSearch<0?!1:!0:!0}},a.fn.select2.locales=[],a.fn.select2.locales.en={formatMatches:function(a){return 1===a?\"One result is available, press enter to select it.\":a+\" results are available, use up and down arrow keys to navigate.\"\n},formatNoMatches:function(){return\"No matches found\"},formatAjaxError:function(){return\"Loading failed\"},formatInputTooShort:function(a,b){var c=b-a.length;return\"Please enter \"+c+\" or more character\"+(1==c?\"\":\"s\")},formatInputTooLong:function(a,b){var c=a.length-b;return\"Please delete \"+c+\" character\"+(1==c?\"\":\"s\")},formatSelectionTooBig:function(a){return\"You can only select \"+a+\" item\"+(1==a?\"\":\"s\")},formatLoadMore:function(){return\"Loading more results\\u2026\"},formatSearching:function(){return\"Searching\\u2026\"}},a.extend(a.fn.select2.defaults,a.fn.select2.locales.en),a.fn.select2.ajaxDefaults={transport:a.ajax,params:{type:\"GET\",cache:!1,dataType:\"json\"}},window.Select2={query:{ajax:G,local:H,tags:I},util:{debounce:w,markMatch:E,escapeMarkup:F,stripDiacritics:o},\"class\":{\"abstract\":d,single:e,multi:f}}}}(jQuery);\n});\n","/*\n * qTip2 - Pretty powerful tooltips - v2.2.1\n * http://qtip2.com\n *\n * Copyright (c) 2015 \n * Released under the MIT licenses\n * http://jquery.org/license\n *\n * Date: Tue Aug 11 2015 04:30 EDT-0400\n * Plugins: tips viewport svg modal\n * Styles: core basic css3\n */\n/*global window: false, jQuery: false, console: false, define: false */\n\n/* Cache window, document, undefined */\n(function( window, document, undefined ) {\n\n// Uses AMD or browser globals to create a jQuery plugin.\n(function( factory ) {\n\t\"use strict\";\n\tif(typeof define === 'function' && define.amd) {\n\t\tdefine('qtip',['jquery'], factory);\n\t}\n\telse if(jQuery && !jQuery.fn.qtip) {\n\t\tfactory(jQuery);\n\t}\n}\n(function($) {\n\t\"use strict\"; // Enable ECMAScript \"strict\" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/\n;// Munge the primitives - Paul Irish tip\nvar TRUE = true,\nFALSE = false,\nNULL = null,\n\n// Common variables\nX = 'x', Y = 'y',\nWIDTH = 'width',\nHEIGHT = 'height',\n\n// Positioning sides\nTOP = 'top',\nLEFT = 'left',\nBOTTOM = 'bottom',\nRIGHT = 'right',\nCENTER = 'center',\n\n// Position adjustment types\nFLIP = 'flip',\nFLIPINVERT = 'flipinvert',\nSHIFT = 'shift',\n\n// Shortcut vars\nQTIP, PROTOTYPE, CORNER, CHECKS,\nPLUGINS = {},\nNAMESPACE = 'qtip',\nATTR_HAS = 'data-hasqtip',\nATTR_ID = 'data-qtip-id',\nWIDGET = ['ui-widget', 'ui-tooltip'],\nSELECTOR = '.'+NAMESPACE,\nINACTIVE_EVENTS = 'click dblclick mousedown mouseup mousemove mouseleave mouseenter'.split(' '),\n\nCLASS_FIXED = NAMESPACE+'-fixed',\nCLASS_DEFAULT = NAMESPACE + '-default',\nCLASS_FOCUS = NAMESPACE + '-focus',\nCLASS_HOVER = NAMESPACE + '-hover',\nCLASS_DISABLED = NAMESPACE+'-disabled',\n\nreplaceSuffix = '_replacedByqTip',\noldtitle = 'oldtitle',\ntrackingBound,\n\n// Browser detection\nBROWSER = {\n\t/*\n\t * IE version detection\n\t *\n\t * Adapted from: http://ajaxian.com/archives/attack-of-the-ie-conditional-comment\n\t * Credit to James Padolsey for the original implemntation!\n\t */\n\tie: (function(){\n\t\tfor (\n\t\t\tvar v = 4, i = document.createElement(\"div\");\n\t\t\t(i.innerHTML = \"<!--[if gt IE \" + v + \"]><i></i><![endif]-->\") && i.getElementsByTagName(\"i\")[0];\n\t\t\tv+=1\n\t\t) {}\n\t\treturn v > 4 ? v : NaN;\n\t}()),\n\n\t/*\n\t * iOS version detection\n\t */\n\tiOS: parseFloat(\n\t\t('' + (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0,''])[1])\n\t\t.replace('undefined', '3_2').replace('_', '.').replace('_', '')\n\t) || FALSE\n};\n;function QTip(target, options, id, attr) {\n\t// Elements and ID\n\tthis.id = id;\n\tthis.target = target;\n\tthis.tooltip = NULL;\n\tthis.elements = { target: target };\n\n\t// Internal constructs\n\tthis._id = NAMESPACE + '-' + id;\n\tthis.timers = { img: {} };\n\tthis.options = options;\n\tthis.plugins = {};\n\n\t// Cache object\n\tthis.cache = {\n\t\tevent: {},\n\t\ttarget: $(),\n\t\tdisabled: FALSE,\n\t\tattr: attr,\n\t\tonTooltip: FALSE,\n\t\tlastClass: ''\n\t};\n\n\t// Set the initial flags\n\tthis.rendered = this.destroyed = this.disabled = this.waiting =\n\t\tthis.hiddenDuringWait = this.positioning = this.triggering = FALSE;\n}\nPROTOTYPE = QTip.prototype;\n\nPROTOTYPE._when = function(deferreds) {\n\treturn $.when.apply($, deferreds);\n};\n\nPROTOTYPE.render = function(show) {\n\tif(this.rendered || this.destroyed) { return this; } // If tooltip has already been rendered, exit\n\n\tvar self = this,\n\t\toptions = this.options,\n\t\tcache = this.cache,\n\t\telements = this.elements,\n\t\ttext = options.content.text,\n\t\ttitle = options.content.title,\n\t\tbutton = options.content.button,\n\t\tposOptions = options.position,\n\t\tnamespace = '.'+this._id+' ',\n\t\tdeferreds = [],\n\t\ttooltip;\n\n\t// Add ARIA attributes to target\n\t$.attr(this.target[0], 'aria-describedby', this._id);\n\n\t// Create public position object that tracks current position corners\n\tcache.posClass = this._createPosClass(\n\t\t(this.position = { my: posOptions.my, at: posOptions.at }).my\n\t);\n\n\t// Create tooltip element\n\tthis.tooltip = elements.tooltip = tooltip = $('<div/>', {\n\t\t'id': this._id,\n\t\t'class': [ NAMESPACE, CLASS_DEFAULT, options.style.classes, cache.posClass ].join(' '),\n\t\t'width': options.style.width || '',\n\t\t'height': options.style.height || '',\n\t\t'tracking': posOptions.target === 'mouse' && posOptions.adjust.mouse,\n\n\t\t/* ARIA specific attributes */\n\t\t'role': 'alert',\n\t\t'aria-live': 'polite',\n\t\t'aria-atomic': FALSE,\n\t\t'aria-describedby': this._id + '-content',\n\t\t'aria-hidden': TRUE\n\t})\n\t.toggleClass(CLASS_DISABLED, this.disabled)\n\t.attr(ATTR_ID, this.id)\n\t.data(NAMESPACE, this)\n\t.appendTo(posOptions.container)\n\t.append(\n\t\t// Create content element\n\t\telements.content = $('<div />', {\n\t\t\t'class': NAMESPACE + '-content',\n\t\t\t'id': this._id + '-content',\n\t\t\t'aria-atomic': TRUE\n\t\t})\n\t);\n\n\t// Set rendered flag and prevent redundant reposition calls for now\n\tthis.rendered = -1;\n\tthis.positioning = TRUE;\n\n\t// Create title...\n\tif(title) {\n\t\tthis._createTitle();\n\n\t\t// Update title only if its not a callback (called in toggle if so)\n\t\tif(!$.isFunction(title)) {\n\t\t\tdeferreds.push( this._updateTitle(title, FALSE) );\n\t\t}\n\t}\n\n\t// Create button\n\tif(button) { this._createButton(); }\n\n\t// Set proper rendered flag and update content if not a callback function (called in toggle)\n\tif(!$.isFunction(text)) {\n\t\tdeferreds.push( this._updateContent(text, FALSE) );\n\t}\n\tthis.rendered = TRUE;\n\n\t// Setup widget classes\n\tthis._setWidget();\n\n\t// Initialize 'render' plugins\n\t$.each(PLUGINS, function(name) {\n\t\tvar instance;\n\t\tif(this.initialize === 'render' && (instance = this(self))) {\n\t\t\tself.plugins[name] = instance;\n\t\t}\n\t});\n\n\t// Unassign initial events and assign proper events\n\tthis._unassignEvents();\n\tthis._assignEvents();\n\n\t// When deferreds have completed\n\tthis._when(deferreds).then(function() {\n\t\t// tooltiprender event\n\t\tself._trigger('render');\n\n\t\t// Reset flags\n\t\tself.positioning = FALSE;\n\n\t\t// Show tooltip if not hidden during wait period\n\t\tif(!self.hiddenDuringWait && (options.show.ready || show)) {\n\t\t\tself.toggle(TRUE, cache.event, FALSE);\n\t\t}\n\t\tself.hiddenDuringWait = FALSE;\n\t});\n\n\t// Expose API\n\tQTIP.api[this.id] = this;\n\n\treturn this;\n};\n\nPROTOTYPE.destroy = function(immediate) {\n\t// Set flag the signify destroy is taking place to plugins\n\t// and ensure it only gets destroyed once!\n\tif(this.destroyed) { return this.target; }\n\n\tfunction process() {\n\t\tif(this.destroyed) { return; }\n\t\tthis.destroyed = TRUE;\n\n\t\tvar target = this.target,\n\t\t\ttitle = target.attr(oldtitle),\n\t\t\ttimer;\n\n\t\t// Destroy tooltip if rendered\n\t\tif(this.rendered) {\n\t\t\tthis.tooltip.stop(1,0).find('*').remove().end().remove();\n\t\t}\n\n\t\t// Destroy all plugins\n\t\t$.each(this.plugins, function(name) {\n\t\t\tthis.destroy && this.destroy();\n\t\t});\n\n\t\t// Clear timers\n\t\tfor(timer in this.timers) {\n\t\t\tclearTimeout(this.timers[timer]);\n\t\t}\n\n\t\t// Remove api object and ARIA attributes\n\t\ttarget.removeData(NAMESPACE)\n\t\t\t.removeAttr(ATTR_ID)\n\t\t\t.removeAttr(ATTR_HAS)\n\t\t\t.removeAttr('aria-describedby');\n\n\t\t// Reset old title attribute if removed\n\t\tif(this.options.suppress && title) {\n\t\t\ttarget.attr('title', title).removeAttr(oldtitle);\n\t\t}\n\n\t\t// Remove qTip events associated with this API\n\t\tthis._unassignEvents();\n\n\t\t// Remove ID from used id objects, and delete object references\n\t\t// for better garbage collection and leak protection\n\t\tthis.options = this.elements = this.cache = this.timers =\n\t\t\tthis.plugins = this.mouse = NULL;\n\n\t\t// Delete epoxsed API object\n\t\tdelete QTIP.api[this.id];\n\t}\n\n\t// If an immediate destory is needed\n\tif((immediate !== TRUE || this.triggering === 'hide') && this.rendered) {\n\t\tthis.tooltip.one('tooltiphidden', $.proxy(process, this));\n\t\t!this.triggering && this.hide();\n\t}\n\n\t// If we're not in the process of hiding... process\n\telse { process.call(this); }\n\n\treturn this.target;\n};\n;function invalidOpt(a) {\n\treturn a === NULL || $.type(a) !== 'object';\n}\n\nfunction invalidContent(c) {\n\treturn !( $.isFunction(c) || (c && c.attr) || c.length || ($.type(c) === 'object' && (c.jquery || c.then) ));\n}\n\n// Option object sanitizer\nfunction sanitizeOptions(opts) {\n\tvar content, text, ajax, once;\n\n\tif(invalidOpt(opts)) { return FALSE; }\n\n\tif(invalidOpt(opts.metadata)) {\n\t\topts.metadata = { type: opts.metadata };\n\t}\n\n\tif('content' in opts) {\n\t\tcontent = opts.content;\n\n\t\tif(invalidOpt(content) || content.jquery || content.done) {\n\t\t\tcontent = opts.content = {\n\t\t\t\ttext: (text = invalidContent(content) ? FALSE : content)\n\t\t\t};\n\t\t}\n\t\telse { text = content.text; }\n\n\t\t// DEPRECATED - Old content.ajax plugin functionality\n\t\t// Converts it into the proper Deferred syntax\n\t\tif('ajax' in content) {\n\t\t\tajax = content.ajax;\n\t\t\tonce = ajax && ajax.once !== FALSE;\n\t\t\tdelete content.ajax;\n\n\t\t\tcontent.text = function(event, api) {\n\t\t\t\tvar loading = text || $(this).attr(api.options.content.attr) || 'Loading...',\n\n\t\t\t\tdeferred = $.ajax(\n\t\t\t\t\t$.extend({}, ajax, { context: api })\n\t\t\t\t)\n\t\t\t\t.then(ajax.success, NULL, ajax.error)\n\t\t\t\t.then(function(content) {\n\t\t\t\t\tif(content && once) { api.set('content.text', content); }\n\t\t\t\t\treturn content;\n\t\t\t\t},\n\t\t\t\tfunction(xhr, status, error) {\n\t\t\t\t\tif(api.destroyed || xhr.status === 0) { return; }\n\t\t\t\t\tapi.set('content.text', status + ': ' + error);\n\t\t\t\t});\n\n\t\t\t\treturn !once ? (api.set('content.text', loading), deferred) : loading;\n\t\t\t};\n\t\t}\n\n\t\tif('title' in content) {\n\t\t\tif($.isPlainObject(content.title)) {\n\t\t\t\tcontent.button = content.title.button;\n\t\t\t\tcontent.title = content.title.text;\n\t\t\t}\n\n\t\t\tif(invalidContent(content.title || FALSE)) {\n\t\t\t\tcontent.title = FALSE;\n\t\t\t}\n\t\t}\n\t}\n\n\tif('position' in opts && invalidOpt(opts.position)) {\n\t\topts.position = { my: opts.position, at: opts.position };\n\t}\n\n\tif('show' in opts && invalidOpt(opts.show)) {\n\t\topts.show = opts.show.jquery ? { target: opts.show } :\n\t\t\topts.show === TRUE ? { ready: TRUE } : { event: opts.show };\n\t}\n\n\tif('hide' in opts && invalidOpt(opts.hide)) {\n\t\topts.hide = opts.hide.jquery ? { target: opts.hide } : { event: opts.hide };\n\t}\n\n\tif('style' in opts && invalidOpt(opts.style)) {\n\t\topts.style = { classes: opts.style };\n\t}\n\n\t// Sanitize plugin options\n\t$.each(PLUGINS, function() {\n\t\tthis.sanitize && this.sanitize(opts);\n\t});\n\n\treturn opts;\n}\n\n// Setup builtin .set() option checks\nCHECKS = PROTOTYPE.checks = {\n\tbuiltin: {\n\t\t// Core checks\n\t\t'^id$': function(obj, o, v, prev) {\n\t\t\tvar id = v === TRUE ? QTIP.nextid : v,\n\t\t\t\tnew_id = NAMESPACE + '-' + id;\n\n\t\t\tif(id !== FALSE && id.length > 0 && !$('#'+new_id).length) {\n\t\t\t\tthis._id = new_id;\n\n\t\t\t\tif(this.rendered) {\n\t\t\t\t\tthis.tooltip[0].id = this._id;\n\t\t\t\t\tthis.elements.content[0].id = this._id + '-content';\n\t\t\t\t\tthis.elements.title[0].id = this._id + '-title';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse { obj[o] = prev; }\n\t\t},\n\t\t'^prerender': function(obj, o, v) {\n\t\t\tv && !this.rendered && this.render(this.options.show.ready);\n\t\t},\n\n\t\t// Content checks\n\t\t'^content.text$': function(obj, o, v) {\n\t\t\tthis._updateContent(v);\n\t\t},\n\t\t'^content.attr$': function(obj, o, v, prev) {\n\t\t\tif(this.options.content.text === this.target.attr(prev)) {\n\t\t\t\tthis._updateContent( this.target.attr(v) );\n\t\t\t}\n\t\t},\n\t\t'^content.title$': function(obj, o, v) {\n\t\t\t// Remove title if content is null\n\t\t\tif(!v) { return this._removeTitle(); }\n\n\t\t\t// If title isn't already created, create it now and update\n\t\t\tv && !this.elements.title && this._createTitle();\n\t\t\tthis._updateTitle(v);\n\t\t},\n\t\t'^content.button$': function(obj, o, v) {\n\t\t\tthis._updateButton(v);\n\t\t},\n\t\t'^content.title.(text|button)$': function(obj, o, v) {\n\t\t\tthis.set('content.'+o, v); // Backwards title.text/button compat\n\t\t},\n\n\t\t// Position checks\n\t\t'^position.(my|at)$': function(obj, o, v){\n\t\t\t'string' === typeof v && (this.position[o] = obj[o] = new CORNER(v, o === 'at'));\n\t\t},\n\t\t'^position.container$': function(obj, o, v){\n\t\t\tthis.rendered && this.tooltip.appendTo(v);\n\t\t},\n\n\t\t// Show checks\n\t\t'^show.ready$': function(obj, o, v) {\n\t\t\tv && (!this.rendered && this.render(TRUE) || this.toggle(TRUE));\n\t\t},\n\n\t\t// Style checks\n\t\t'^style.classes$': function(obj, o, v, p) {\n\t\t\tthis.rendered && this.tooltip.removeClass(p).addClass(v);\n\t\t},\n\t\t'^style.(width|height)': function(obj, o, v) {\n\t\t\tthis.rendered && this.tooltip.css(o, v);\n\t\t},\n\t\t'^style.widget|content.title': function() {\n\t\t\tthis.rendered && this._setWidget();\n\t\t},\n\t\t'^style.def': function(obj, o, v) {\n\t\t\tthis.rendered && this.tooltip.toggleClass(CLASS_DEFAULT, !!v);\n\t\t},\n\n\t\t// Events check\n\t\t'^events.(render|show|move|hide|focus|blur)$': function(obj, o, v) {\n\t\t\tthis.rendered && this.tooltip[($.isFunction(v) ? '' : 'un') + 'bind']('tooltip'+o, v);\n\t\t},\n\n\t\t// Properties which require event reassignment\n\t\t'^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)': function() {\n\t\t\tif(!this.rendered) { return; }\n\n\t\t\t// Set tracking flag\n\t\t\tvar posOptions = this.options.position;\n\t\t\tthis.tooltip.attr('tracking', posOptions.target === 'mouse' && posOptions.adjust.mouse);\n\n\t\t\t// Reassign events\n\t\t\tthis._unassignEvents();\n\t\t\tthis._assignEvents();\n\t\t}\n\t}\n};\n\n// Dot notation converter\nfunction convertNotation(options, notation) {\n\tvar i = 0, obj, option = options,\n\n\t// Split notation into array\n\tlevels = notation.split('.');\n\n\t// Loop through\n\twhile( option = option[ levels[i++] ] ) {\n\t\tif(i < levels.length) { obj = option; }\n\t}\n\n\treturn [obj || options, levels.pop()];\n}\n\nPROTOTYPE.get = function(notation) {\n\tif(this.destroyed) { return this; }\n\n\tvar o = convertNotation(this.options, notation.toLowerCase()),\n\t\tresult = o[0][ o[1] ];\n\n\treturn result.precedance ? result.string() : result;\n};\n\nfunction setCallback(notation, args) {\n\tvar category, rule, match;\n\n\tfor(category in this.checks) {\n\t\tfor(rule in this.checks[category]) {\n\t\t\tif(match = (new RegExp(rule, 'i')).exec(notation)) {\n\t\t\t\targs.push(match);\n\n\t\t\t\tif(category === 'builtin' || this.plugins[category]) {\n\t\t\t\t\tthis.checks[category][rule].apply(\n\t\t\t\t\t\tthis.plugins[category] || this, args\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nvar rmove = /^position\\.(my|at|adjust|target|container|viewport)|style|content|show\\.ready/i,\n\trrender = /^prerender|show\\.ready/i;\n\nPROTOTYPE.set = function(option, value) {\n\tif(this.destroyed) { return this; }\n\n\tvar rendered = this.rendered,\n\t\treposition = FALSE,\n\t\toptions = this.options,\n\t\tchecks = this.checks,\n\t\tname;\n\n\t// Convert singular option/value pair into object form\n\tif('string' === typeof option) {\n\t\tname = option; option = {}; option[name] = value;\n\t}\n\telse { option = $.extend({}, option); }\n\n\t// Set all of the defined options to their new values\n\t$.each(option, function(notation, value) {\n\t\tif(rendered && rrender.test(notation)) {\n\t\t\tdelete option[notation]; return;\n\t\t}\n\n\t\t// Set new obj value\n\t\tvar obj = convertNotation(options, notation.toLowerCase()), previous;\n\t\tprevious = obj[0][ obj[1] ];\n\t\tobj[0][ obj[1] ] = value && value.nodeType ? $(value) : value;\n\n\t\t// Also check if we need to reposition\n\t\treposition = rmove.test(notation) || reposition;\n\n\t\t// Set the new params for the callback\n\t\toption[notation] = [obj[0], obj[1], value, previous];\n\t});\n\n\t// Re-sanitize options\n\tsanitizeOptions(options);\n\n\t/*\n\t * Execute any valid callbacks for the set options\n\t * Also set positioning flag so we don't get loads of redundant repositioning calls.\n\t */\n\tthis.positioning = TRUE;\n\t$.each(option, $.proxy(setCallback, this));\n\tthis.positioning = FALSE;\n\n\t// Update position if needed\n\tif(this.rendered && this.tooltip[0].offsetWidth > 0 && reposition) {\n\t\tthis.reposition( options.position.target === 'mouse' ? NULL : this.cache.event );\n\t}\n\n\treturn this;\n};\n;PROTOTYPE._update = function(content, element, reposition) {\n\tvar self = this,\n\t\tcache = this.cache;\n\n\t// Make sure tooltip is rendered and content is defined. If not return\n\tif(!this.rendered || !content) { return FALSE; }\n\n\t// Use function to parse content\n\tif($.isFunction(content)) {\n\t\tcontent = content.call(this.elements.target, cache.event, this) || '';\n\t}\n\n\t// Handle deferred content\n\tif($.isFunction(content.then)) {\n\t\tcache.waiting = TRUE;\n\t\treturn content.then(function(c) {\n\t\t\tcache.waiting = FALSE;\n\t\t\treturn self._update(c, element);\n\t\t}, NULL, function(e) {\n\t\t\treturn self._update(e, element);\n\t\t});\n\t}\n\n\t// If content is null... return false\n\tif(content === FALSE || (!content && content !== '')) { return FALSE; }\n\n\t// Append new content if its a DOM array and show it if hidden\n\tif(content.jquery && content.length > 0) {\n\t\telement.empty().append(\n\t\t\tcontent.css({ display: 'block', visibility: 'visible' })\n\t\t);\n\t}\n\n\t// Content is a regular string, insert the new content\n\telse { element.html(content); }\n\n\t// Wait for content to be loaded, and reposition\n\treturn this._waitForContent(element).then(function(images) {\n\t\tif(self.rendered && self.tooltip[0].offsetWidth > 0) {\n\t\t\tself.reposition(cache.event, !images.length);\n\t\t}\n\t});\n};\n\nPROTOTYPE._waitForContent = function(element) {\n\tvar cache = this.cache;\n\n\t// Set flag\n\tcache.waiting = TRUE;\n\n\t// If imagesLoaded is included, ensure images have loaded and return promise\n\treturn ( $.fn.imagesLoaded ? element.imagesLoaded() : $.Deferred().resolve([]) )\n\t\t.done(function() { cache.waiting = FALSE; })\n\t\t.promise();\n};\n\nPROTOTYPE._updateContent = function(content, reposition) {\n\tthis._update(content, this.elements.content, reposition);\n};\n\nPROTOTYPE._updateTitle = function(content, reposition) {\n\tif(this._update(content, this.elements.title, reposition) === FALSE) {\n\t\tthis._removeTitle(FALSE);\n\t}\n};\n\nPROTOTYPE._createTitle = function()\n{\n\tvar elements = this.elements,\n\t\tid = this._id+'-title';\n\n\t// Destroy previous title element, if present\n\tif(elements.titlebar) { this._removeTitle(); }\n\n\t// Create title bar and title elements\n\telements.titlebar = $('<div />', {\n\t\t'class': NAMESPACE + '-titlebar ' + (this.options.style.widget ? createWidgetClass('header') : '')\n\t})\n\t.append(\n\t\telements.title = $('<div />', {\n\t\t\t'id': id,\n\t\t\t'class': NAMESPACE + '-title',\n\t\t\t'aria-atomic': TRUE\n\t\t})\n\t)\n\t.insertBefore(elements.content)\n\n\t// Button-specific events\n\t.delegate('.qtip-close', 'mousedown keydown mouseup keyup mouseout', function(event) {\n\t\t$(this).toggleClass('ui-state-active ui-state-focus', event.type.substr(-4) === 'down');\n\t})\n\t.delegate('.qtip-close', 'mouseover mouseout', function(event){\n\t\t$(this).toggleClass('ui-state-hover', event.type === 'mouseover');\n\t});\n\n\t// Create button if enabled\n\tif(this.options.content.button) { this._createButton(); }\n};\n\nPROTOTYPE._removeTitle = function(reposition)\n{\n\tvar elements = this.elements;\n\n\tif(elements.title) {\n\t\telements.titlebar.remove();\n\t\telements.titlebar = elements.title = elements.button = NULL;\n\n\t\t// Reposition if enabled\n\t\tif(reposition !== FALSE) { this.reposition(); }\n\t}\n};\n;PROTOTYPE._createPosClass = function(my) {\n\treturn NAMESPACE + '-pos-' + (my || this.options.position.my).abbrev();\n};\n\nPROTOTYPE.reposition = function(event, effect) {\n\tif(!this.rendered || this.positioning || this.destroyed) { return this; }\n\n\t// Set positioning flag\n\tthis.positioning = TRUE;\n\n\tvar cache = this.cache,\n\t\ttooltip = this.tooltip,\n\t\tposOptions = this.options.position,\n\t\ttarget = posOptions.target,\n\t\tmy = posOptions.my,\n\t\tat = posOptions.at,\n\t\tviewport = posOptions.viewport,\n\t\tcontainer = posOptions.container,\n\t\tadjust = posOptions.adjust,\n\t\tmethod = adjust.method.split(' '),\n\t\ttooltipWidth = tooltip.outerWidth(FALSE),\n\t\ttooltipHeight = tooltip.outerHeight(FALSE),\n\t\ttargetWidth = 0,\n\t\ttargetHeight = 0,\n\t\ttype = tooltip.css('position'),\n\t\tposition = { left: 0, top: 0 },\n\t\tvisible = tooltip[0].offsetWidth > 0,\n\t\tisScroll = event && event.type === 'scroll',\n\t\twin = $(window),\n\t\tdoc = container[0].ownerDocument,\n\t\tmouse = this.mouse,\n\t\tpluginCalculations, offset, adjusted, newClass;\n\n\t// Check if absolute position was passed\n\tif($.isArray(target) && target.length === 2) {\n\t\t// Force left top and set position\n\t\tat = { x: LEFT, y: TOP };\n\t\tposition = { left: target[0], top: target[1] };\n\t}\n\n\t// Check if mouse was the target\n\telse if(target === 'mouse') {\n\t\t// Force left top to allow flipping\n\t\tat = { x: LEFT, y: TOP };\n\n\t\t// Use the mouse origin that caused the show event, if distance hiding is enabled\n\t\tif((!adjust.mouse || this.options.hide.distance) && cache.origin && cache.origin.pageX) {\n\t\t\tevent = cache.origin;\n\t\t}\n\n\t\t// Use cached event for resize/scroll events\n\t\telse if(!event || (event && (event.type === 'resize' || event.type === 'scroll'))) {\n\t\t\tevent = cache.event;\n\t\t}\n\n\t\t// Otherwise, use the cached mouse coordinates if available\n\t\telse if(mouse && mouse.pageX) {\n\t\t\tevent = mouse;\n\t\t}\n\n\t\t// Calculate body and container offset and take them into account below\n\t\tif(type !== 'static') { position = container.offset(); }\n\t\tif(doc.body.offsetWidth !== (window.innerWidth || doc.documentElement.clientWidth)) {\n\t\t\toffset = $(document.body).offset();\n\t\t}\n\n\t\t// Use event coordinates for position\n\t\tposition = {\n\t\t\tleft: event.pageX - position.left + (offset && offset.left || 0),\n\t\t\ttop: event.pageY - position.top + (offset && offset.top || 0)\n\t\t};\n\n\t\t// Scroll events are a pain, some browsers\n\t\tif(adjust.mouse && isScroll && mouse) {\n\t\t\tposition.left -= (mouse.scrollX || 0) - win.scrollLeft();\n\t\t\tposition.top -= (mouse.scrollY || 0) - win.scrollTop();\n\t\t}\n\t}\n\n\t// Target wasn't mouse or absolute...\n\telse {\n\t\t// Check if event targetting is being used\n\t\tif(target === 'event') {\n\t\t\tif(event && event.target && event.type !== 'scroll' && event.type !== 'resize') {\n\t\t\t\tcache.target = $(event.target);\n\t\t\t}\n\t\t\telse if(!event.target) {\n\t\t\t\tcache.target = this.elements.target;\n\t\t\t}\n\t\t}\n\t\telse if(target !== 'event'){\n\t\t\tcache.target = $(target.jquery ? target : this.elements.target);\n\t\t}\n\t\ttarget = cache.target;\n\n\t\t// Parse the target into a jQuery object and make sure there's an element present\n\t\ttarget = $(target).eq(0);\n\t\tif(target.length === 0) { return this; }\n\n\t\t// Check if window or document is the target\n\t\telse if(target[0] === document || target[0] === window) {\n\t\t\ttargetWidth = BROWSER.iOS ? window.innerWidth : target.width();\n\t\t\ttargetHeight = BROWSER.iOS ? window.innerHeight : target.height();\n\n\t\t\tif(target[0] === window) {\n\t\t\t\tposition = {\n\t\t\t\t\ttop: (viewport || target).scrollTop(),\n\t\t\t\t\tleft: (viewport || target).scrollLeft()\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// Check if the target is an <AREA> element\n\t\telse if(PLUGINS.imagemap && target.is('area')) {\n\t\t\tpluginCalculations = PLUGINS.imagemap(this, target, at, PLUGINS.viewport ? method : FALSE);\n\t\t}\n\n\t\t// Check if the target is an SVG element\n\t\telse if(PLUGINS.svg && target && target[0].ownerSVGElement) {\n\t\t\tpluginCalculations = PLUGINS.svg(this, target, at, PLUGINS.viewport ? method : FALSE);\n\t\t}\n\n\t\t// Otherwise use regular jQuery methods\n\t\telse {\n\t\t\ttargetWidth = target.outerWidth(FALSE);\n\t\t\ttargetHeight = target.outerHeight(FALSE);\n\t\t\tposition = target.offset();\n\t\t}\n\n\t\t// Parse returned plugin values into proper variables\n\t\tif(pluginCalculations) {\n\t\t\ttargetWidth = pluginCalculations.width;\n\t\t\ttargetHeight = pluginCalculations.height;\n\t\t\toffset = pluginCalculations.offset;\n\t\t\tposition = pluginCalculations.position;\n\t\t}\n\n\t\t// Adjust position to take into account offset parents\n\t\tposition = this.reposition.offset(target, position, container);\n\n\t\t// Adjust for position.fixed tooltips (and also iOS scroll bug in v3.2-4.0 & v4.3-4.3.2)\n\t\tif((BROWSER.iOS > 3.1 && BROWSER.iOS < 4.1) ||\n\t\t\t(BROWSER.iOS >= 4.3 && BROWSER.iOS < 4.33) ||\n\t\t\t(!BROWSER.iOS && type === 'fixed')\n\t\t){\n\t\t\tposition.left -= win.scrollLeft();\n\t\t\tposition.top -= win.scrollTop();\n\t\t}\n\n\t\t// Adjust position relative to target\n\t\tif(!pluginCalculations || (pluginCalculations && pluginCalculations.adjustable !== FALSE)) {\n\t\t\tposition.left += at.x === RIGHT ? targetWidth : at.x === CENTER ? targetWidth / 2 : 0;\n\t\t\tposition.top += at.y === BOTTOM ? targetHeight : at.y === CENTER ? targetHeight / 2 : 0;\n\t\t}\n\t}\n\n\t// Adjust position relative to tooltip\n\tposition.left += adjust.x + (my.x === RIGHT ? -tooltipWidth : my.x === CENTER ? -tooltipWidth / 2 : 0);\n\tposition.top += adjust.y + (my.y === BOTTOM ? -tooltipHeight : my.y === CENTER ? -tooltipHeight / 2 : 0);\n\n\t// Use viewport adjustment plugin if enabled\n\tif(PLUGINS.viewport) {\n\t\tadjusted = position.adjusted = PLUGINS.viewport(\n\t\t\tthis, position, posOptions, targetWidth, targetHeight, tooltipWidth, tooltipHeight\n\t\t);\n\n\t\t// Apply offsets supplied by positioning plugin (if used)\n\t\tif(offset && adjusted.left) { position.left += offset.left; }\n\t\tif(offset && adjusted.top) { position.top += offset.top; }\n\n\t\t// Apply any new 'my' position\n\t\tif(adjusted.my) { this.position.my = adjusted.my; }\n\t}\n\n\t// Viewport adjustment is disabled, set values to zero\n\telse { position.adjusted = { left: 0, top: 0 }; }\n\n\t// Set tooltip position class if it's changed\n\tif(cache.posClass !== (newClass = this._createPosClass(this.position.my))) {\n\t\ttooltip.removeClass(cache.posClass).addClass( (cache.posClass = newClass) );\n\t}\n\n\t// tooltipmove event\n\tif(!this._trigger('move', [position, viewport.elem || viewport], event)) { return this; }\n\tdelete position.adjusted;\n\n\t// If effect is disabled, target it mouse, no animation is defined or positioning gives NaN out, set CSS directly\n\tif(effect === FALSE || !visible || isNaN(position.left) || isNaN(position.top) || target === 'mouse' || !$.isFunction(posOptions.effect)) {\n\t\ttooltip.css(position);\n\t}\n\n\t// Use custom function if provided\n\telse if($.isFunction(posOptions.effect)) {\n\t\tposOptions.effect.call(tooltip, this, $.extend({}, position));\n\t\ttooltip.queue(function(next) {\n\t\t\t// Reset attributes to avoid cross-browser rendering bugs\n\t\t\t$(this).css({ opacity: '', height: '' });\n\t\t\tif(BROWSER.ie) { this.style.removeAttribute('filter'); }\n\n\t\t\tnext();\n\t\t});\n\t}\n\n\t// Set positioning flag\n\tthis.positioning = FALSE;\n\n\treturn this;\n};\n\n// Custom (more correct for qTip!) offset calculator\nPROTOTYPE.reposition.offset = function(elem, pos, container) {\n\tif(!container[0]) { return pos; }\n\n\tvar ownerDocument = $(elem[0].ownerDocument),\n\t\tquirks = !!BROWSER.ie && document.compatMode !== 'CSS1Compat',\n\t\tparent = container[0],\n\t\tscrolled, position, parentOffset, overflow;\n\n\tfunction scroll(e, i) {\n\t\tpos.left += i * e.scrollLeft();\n\t\tpos.top += i * e.scrollTop();\n\t}\n\n\t// Compensate for non-static containers offset\n\tdo {\n\t\tif((position = $.css(parent, 'position')) !== 'static') {\n\t\t\tif(position === 'fixed') {\n\t\t\t\tparentOffset = parent.getBoundingClientRect();\n\t\t\t\tscroll(ownerDocument, -1);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tparentOffset = $(parent).position();\n\t\t\t\tparentOffset.left += (parseFloat($.css(parent, 'borderLeftWidth')) || 0);\n\t\t\t\tparentOffset.top += (parseFloat($.css(parent, 'borderTopWidth')) || 0);\n\t\t\t}\n\n\t\t\tpos.left -= parentOffset.left + (parseFloat($.css(parent, 'marginLeft')) || 0);\n\t\t\tpos.top -= parentOffset.top + (parseFloat($.css(parent, 'marginTop')) || 0);\n\n\t\t\t// If this is the first parent element with an overflow of \"scroll\" or \"auto\", store it\n\t\t\tif(!scrolled && (overflow = $.css(parent, 'overflow')) !== 'hidden' && overflow !== 'visible') { scrolled = $(parent); }\n\t\t}\n\t}\n\twhile((parent = parent.offsetParent));\n\n\t// Compensate for containers scroll if it also has an offsetParent (or in IE quirks mode)\n\tif(scrolled && (scrolled[0] !== ownerDocument[0] || quirks)) {\n\t\tscroll(scrolled, 1);\n\t}\n\n\treturn pos;\n};\n\n// Corner class\nvar C = (CORNER = PROTOTYPE.reposition.Corner = function(corner, forceY) {\n\tcorner = ('' + corner).replace(/([A-Z])/, ' $1').replace(/middle/gi, CENTER).toLowerCase();\n\tthis.x = (corner.match(/left|right/i) || corner.match(/center/) || ['inherit'])[0].toLowerCase();\n\tthis.y = (corner.match(/top|bottom|center/i) || ['inherit'])[0].toLowerCase();\n\tthis.forceY = !!forceY;\n\n\tvar f = corner.charAt(0);\n\tthis.precedance = (f === 't' || f === 'b' ? Y : X);\n}).prototype;\n\nC.invert = function(z, center) {\n\tthis[z] = this[z] === LEFT ? RIGHT : this[z] === RIGHT ? LEFT : center || this[z];\n};\n\nC.string = function(join) {\n\tvar x = this.x, y = this.y;\n\n\tvar result = x !== y ?\n\t\t(x === 'center' || y !== 'center' && (this.precedance === Y || this.forceY) ? \n\t\t\t[y,x] : [x,y]\n\t\t) :\n\t[x];\n\n\treturn join !== false ? result.join(' ') : result;\n};\n\nC.abbrev = function() {\n\tvar result = this.string(false);\n\treturn result[0].charAt(0) + (result[1] && result[1].charAt(0) || '');\n};\n\nC.clone = function() {\n\treturn new CORNER( this.string(), this.forceY );\n};\n\n;\nPROTOTYPE.toggle = function(state, event) {\n\tvar cache = this.cache,\n\t\toptions = this.options,\n\t\ttooltip = this.tooltip;\n\n\t// Try to prevent flickering when tooltip overlaps show element\n\tif(event) {\n\t\tif((/over|enter/).test(event.type) && cache.event && (/out|leave/).test(cache.event.type) &&\n\t\t\toptions.show.target.add(event.target).length === options.show.target.length &&\n\t\t\ttooltip.has(event.relatedTarget).length) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Cache event\n\t\tcache.event = $.event.fix(event);\n\t}\n\n\t// If we're currently waiting and we've just hidden... stop it\n\tthis.waiting && !state && (this.hiddenDuringWait = TRUE);\n\n\t// Render the tooltip if showing and it isn't already\n\tif(!this.rendered) { return state ? this.render(1) : this; }\n\telse if(this.destroyed || this.disabled) { return this; }\n\n\tvar type = state ? 'show' : 'hide',\n\t\topts = this.options[type],\n\t\totherOpts = this.options[ !state ? 'show' : 'hide' ],\n\t\tposOptions = this.options.position,\n\t\tcontentOptions = this.options.content,\n\t\twidth = this.tooltip.css('width'),\n\t\tvisible = this.tooltip.is(':visible'),\n\t\tanimate = state || opts.target.length === 1,\n\t\tsameTarget = !event || opts.target.length < 2 || cache.target[0] === event.target,\n\t\tidenticalState, allow, showEvent, delay, after;\n\n\t// Detect state if valid one isn't provided\n\tif((typeof state).search('boolean|number')) { state = !visible; }\n\n\t// Check if the tooltip is in an identical state to the new would-be state\n\tidenticalState = !tooltip.is(':animated') && visible === state && sameTarget;\n\n\t// Fire tooltip(show/hide) event and check if destroyed\n\tallow = !identicalState ? !!this._trigger(type, [90]) : NULL;\n\n\t// Check to make sure the tooltip wasn't destroyed in the callback\n\tif(this.destroyed) { return this; }\n\n\t// If the user didn't stop the method prematurely and we're showing the tooltip, focus it\n\tif(allow !== FALSE && state) { this.focus(event); }\n\n\t// If the state hasn't changed or the user stopped it, return early\n\tif(!allow || identicalState) { return this; }\n\n\t// Set ARIA hidden attribute\n\t$.attr(tooltip[0], 'aria-hidden', !!!state);\n\n\t// Execute state specific properties\n\tif(state) {\n\t\t// Store show origin coordinates\n\t\tthis.mouse && (cache.origin = $.event.fix(this.mouse));\n\n\t\t// Update tooltip content & title if it's a dynamic function\n\t\tif($.isFunction(contentOptions.text)) { this._updateContent(contentOptions.text, FALSE); }\n\t\tif($.isFunction(contentOptions.title)) { this._updateTitle(contentOptions.title, FALSE); }\n\n\t\t// Cache mousemove events for positioning purposes (if not already tracking)\n\t\tif(!trackingBound && posOptions.target === 'mouse' && posOptions.adjust.mouse) {\n\t\t\t$(document).bind('mousemove.'+NAMESPACE, this._storeMouse);\n\t\t\ttrackingBound = TRUE;\n\t\t}\n\n\t\t// Update the tooltip position (set width first to prevent viewport/max-width issues)\n\t\tif(!width) { tooltip.css('width', tooltip.outerWidth(FALSE)); }\n\t\tthis.reposition(event, arguments[2]);\n\t\tif(!width) { tooltip.css('width', ''); }\n\n\t\t// Hide other tooltips if tooltip is solo\n\t\tif(!!opts.solo) {\n\t\t\t(typeof opts.solo === 'string' ? $(opts.solo) : $(SELECTOR, opts.solo))\n\t\t\t\t.not(tooltip).not(opts.target).qtip('hide', $.Event('tooltipsolo'));\n\t\t}\n\t}\n\telse {\n\t\t// Clear show timer if we're hiding\n\t\tclearTimeout(this.timers.show);\n\n\t\t// Remove cached origin on hide\n\t\tdelete cache.origin;\n\n\t\t// Remove mouse tracking event if not needed (all tracking qTips are hidden)\n\t\tif(trackingBound && !$(SELECTOR+'[tracking=\"true\"]:visible', opts.solo).not(tooltip).length) {\n\t\t\t$(document).unbind('mousemove.'+NAMESPACE);\n\t\t\ttrackingBound = FALSE;\n\t\t}\n\n\t\t// Blur the tooltip\n\t\tthis.blur(event);\n\t}\n\n\t// Define post-animation, state specific properties\n\tafter = $.proxy(function() {\n\t\tif(state) {\n\t\t\t// Prevent antialias from disappearing in IE by removing filter\n\t\t\tif(BROWSER.ie) { tooltip[0].style.removeAttribute('filter'); }\n\n\t\t\t// Remove overflow setting to prevent tip bugs\n\t\t\ttooltip.css('overflow', '');\n\n\t\t\t// Autofocus elements if enabled\n\t\t\tif('string' === typeof opts.autofocus) {\n\t\t\t\t$(this.options.show.autofocus, tooltip).focus();\n\t\t\t}\n\n\t\t\t// If set, hide tooltip when inactive for delay period\n\t\t\tthis.options.show.target.trigger('qtip-'+this.id+'-inactive');\n\t\t}\n\t\telse {\n\t\t\t// Reset CSS states\n\t\t\ttooltip.css({\n\t\t\t\tdisplay: '',\n\t\t\t\tvisibility: '',\n\t\t\t\topacity: '',\n\t\t\t\tleft: '',\n\t\t\t\ttop: ''\n\t\t\t});\n\t\t}\n\n\t\t// tooltipvisible/tooltiphidden events\n\t\tthis._trigger(state ? 'visible' : 'hidden');\n\t}, this);\n\n\t// If no effect type is supplied, use a simple toggle\n\tif(opts.effect === FALSE || animate === FALSE) {\n\t\ttooltip[ type ]();\n\t\tafter();\n\t}\n\n\t// Use custom function if provided\n\telse if($.isFunction(opts.effect)) {\n\t\ttooltip.stop(1, 1);\n\t\topts.effect.call(tooltip, this);\n\t\ttooltip.queue('fx', function(n) {\n\t\t\tafter(); n();\n\t\t});\n\t}\n\n\t// Use basic fade function by default\n\telse { tooltip.fadeTo(90, state ? 1 : 0, after); }\n\n\t// If inactive hide method is set, active it\n\tif(state) { opts.target.trigger('qtip-'+this.id+'-inactive'); }\n\n\treturn this;\n};\n\nPROTOTYPE.show = function(event) { return this.toggle(TRUE, event); };\n\nPROTOTYPE.hide = function(event) { return this.toggle(FALSE, event); };\n;PROTOTYPE.focus = function(event) {\n\tif(!this.rendered || this.destroyed) { return this; }\n\n\tvar qtips = $(SELECTOR),\n\t\ttooltip = this.tooltip,\n\t\tcurIndex = parseInt(tooltip[0].style.zIndex, 10),\n\t\tnewIndex = QTIP.zindex + qtips.length,\n\t\tfocusedElem;\n\n\t// Only update the z-index if it has changed and tooltip is not already focused\n\tif(!tooltip.hasClass(CLASS_FOCUS)) {\n\t\t// tooltipfocus event\n\t\tif(this._trigger('focus', [newIndex], event)) {\n\t\t\t// Only update z-index's if they've changed\n\t\t\tif(curIndex !== newIndex) {\n\t\t\t\t// Reduce our z-index's and keep them properly ordered\n\t\t\t\tqtips.each(function() {\n\t\t\t\t\tif(this.style.zIndex > curIndex) {\n\t\t\t\t\t\tthis.style.zIndex = this.style.zIndex - 1;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Fire blur event for focused tooltip\n\t\t\t\tqtips.filter('.' + CLASS_FOCUS).qtip('blur', event);\n\t\t\t}\n\n\t\t\t// Set the new z-index\n\t\t\ttooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex;\n\t\t}\n\t}\n\n\treturn this;\n};\n\nPROTOTYPE.blur = function(event) {\n\tif(!this.rendered || this.destroyed) { return this; }\n\n\t// Set focused status to FALSE\n\tthis.tooltip.removeClass(CLASS_FOCUS);\n\n\t// tooltipblur event\n\tthis._trigger('blur', [ this.tooltip.css('zIndex') ], event);\n\n\treturn this;\n};\n;PROTOTYPE.disable = function(state) {\n\tif(this.destroyed) { return this; }\n\n\t// If 'toggle' is passed, toggle the current state\n\tif(state === 'toggle') {\n\t\tstate = !(this.rendered ? this.tooltip.hasClass(CLASS_DISABLED) : this.disabled);\n\t}\n\n\t// Disable if no state passed\n\telse if('boolean' !== typeof state) {\n\t\tstate = TRUE;\n\t}\n\n\tif(this.rendered) {\n\t\tthis.tooltip.toggleClass(CLASS_DISABLED, state)\n\t\t\t.attr('aria-disabled', state);\n\t}\n\n\tthis.disabled = !!state;\n\n\treturn this;\n};\n\nPROTOTYPE.enable = function() { return this.disable(FALSE); };\n;PROTOTYPE._createButton = function()\n{\n\tvar self = this,\n\t\telements = this.elements,\n\t\ttooltip = elements.tooltip,\n\t\tbutton = this.options.content.button,\n\t\tisString = typeof button === 'string',\n\t\tclose = isString ? button : 'Close tooltip';\n\n\tif(elements.button) { elements.button.remove(); }\n\n\t// Use custom button if one was supplied by user, else use default\n\tif(button.jquery) {\n\t\telements.button = button;\n\t}\n\telse {\n\t\telements.button = $('<a />', {\n\t\t\t'class': 'qtip-close ' + (this.options.style.widget ? '' : NAMESPACE+'-icon'),\n\t\t\t'title': close,\n\t\t\t'aria-label': close\n\t\t})\n\t\t.prepend(\n\t\t\t$('<span />', {\n\t\t\t\t'class': 'ui-icon ui-icon-close',\n\t\t\t\t'html': '&times;'\n\t\t\t})\n\t\t);\n\t}\n\n\t// Create button and setup attributes\n\telements.button.appendTo(elements.titlebar || tooltip)\n\t\t.attr('role', 'button')\n\t\t.click(function(event) {\n\t\t\tif(!tooltip.hasClass(CLASS_DISABLED)) { self.hide(event); }\n\t\t\treturn FALSE;\n\t\t});\n};\n\nPROTOTYPE._updateButton = function(button)\n{\n\t// Make sure tooltip is rendered and if not, return\n\tif(!this.rendered) { return FALSE; }\n\n\tvar elem = this.elements.button;\n\tif(button) { this._createButton(); }\n\telse { elem.remove(); }\n};\n;// Widget class creator\nfunction createWidgetClass(cls) {\n\treturn WIDGET.concat('').join(cls ? '-'+cls+' ' : ' ');\n}\n\n// Widget class setter method\nPROTOTYPE._setWidget = function()\n{\n\tvar on = this.options.style.widget,\n\t\telements = this.elements,\n\t\ttooltip = elements.tooltip,\n\t\tdisabled = tooltip.hasClass(CLASS_DISABLED);\n\n\ttooltip.removeClass(CLASS_DISABLED);\n\tCLASS_DISABLED = on ? 'ui-state-disabled' : 'qtip-disabled';\n\ttooltip.toggleClass(CLASS_DISABLED, disabled);\n\n\ttooltip.toggleClass('ui-helper-reset '+createWidgetClass(), on).toggleClass(CLASS_DEFAULT, this.options.style.def && !on);\n\n\tif(elements.content) {\n\t\telements.content.toggleClass( createWidgetClass('content'), on);\n\t}\n\tif(elements.titlebar) {\n\t\telements.titlebar.toggleClass( createWidgetClass('header'), on);\n\t}\n\tif(elements.button) {\n\t\telements.button.toggleClass(NAMESPACE+'-icon', !on);\n\t}\n};\n;function delay(callback, duration) {\n\t// If tooltip has displayed, start hide timer\n\tif(duration > 0) {\n\t\treturn setTimeout(\n\t\t\t$.proxy(callback, this), duration\n\t\t);\n\t}\n\telse{ callback.call(this); }\n}\n\nfunction showMethod(event) {\n\tif(this.tooltip.hasClass(CLASS_DISABLED)) { return; }\n\n\t// Clear hide timers\n\tclearTimeout(this.timers.show);\n\tclearTimeout(this.timers.hide);\n\n\t// Start show timer\n\tthis.timers.show = delay.call(this,\n\t\tfunction() { this.toggle(TRUE, event); },\n\t\tthis.options.show.delay\n\t);\n}\n\nfunction hideMethod(event) {\n\tif(this.tooltip.hasClass(CLASS_DISABLED) || this.destroyed) { return; }\n\n\t// Check if new target was actually the tooltip element\n\tvar relatedTarget = $(event.relatedTarget),\n\t\tontoTooltip = relatedTarget.closest(SELECTOR)[0] === this.tooltip[0],\n\t\tontoTarget = relatedTarget[0] === this.options.show.target[0];\n\n\t// Clear timers and stop animation queue\n\tclearTimeout(this.timers.show);\n\tclearTimeout(this.timers.hide);\n\n\t// Prevent hiding if tooltip is fixed and event target is the tooltip.\n\t// Or if mouse positioning is enabled and cursor momentarily overlaps\n\tif(this !== relatedTarget[0] &&\n\t\t(this.options.position.target === 'mouse' && ontoTooltip) ||\n\t\t(this.options.hide.fixed && (\n\t\t\t(/mouse(out|leave|move)/).test(event.type) && (ontoTooltip || ontoTarget))\n\t\t))\n\t{\n\t\ttry {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopImmediatePropagation();\n\t\t} catch(e) {}\n\n\t\treturn;\n\t}\n\n\t// If tooltip has displayed, start hide timer\n\tthis.timers.hide = delay.call(this,\n\t\tfunction() { this.toggle(FALSE, event); },\n\t\tthis.options.hide.delay,\n\t\tthis\n\t);\n}\n\nfunction inactiveMethod(event) {\n\tif(this.tooltip.hasClass(CLASS_DISABLED) || !this.options.hide.inactive) { return; }\n\n\t// Clear timer\n\tclearTimeout(this.timers.inactive);\n\n\tthis.timers.inactive = delay.call(this,\n\t\tfunction(){ this.hide(event); },\n\t\tthis.options.hide.inactive\n\t);\n}\n\nfunction repositionMethod(event) {\n\tif(this.rendered && this.tooltip[0].offsetWidth > 0) { this.reposition(event); }\n}\n\n// Store mouse coordinates\nPROTOTYPE._storeMouse = function(event) {\n\t(this.mouse = $.event.fix(event)).type = 'mousemove';\n\treturn this;\n};\n\n// Bind events\nPROTOTYPE._bind = function(targets, events, method, suffix, context) {\n\tif(!targets || !method || !events.length) { return; }\n\tvar ns = '.' + this._id + (suffix ? '-'+suffix : '');\n\t$(targets).bind(\n\t\t(events.split ? events : events.join(ns + ' ')) + ns,\n\t\t$.proxy(method, context || this)\n\t);\n\treturn this;\n};\nPROTOTYPE._unbind = function(targets, suffix) {\n\ttargets && $(targets).unbind('.' + this._id + (suffix ? '-'+suffix : ''));\n\treturn this;\n};\n\n// Global delegation helper\nfunction delegate(selector, events, method) {\n\t$(document.body).delegate(selector,\n\t\t(events.split ? events : events.join('.'+NAMESPACE + ' ')) + '.'+NAMESPACE,\n\t\tfunction() {\n\t\t\tvar api = QTIP.api[ $.attr(this, ATTR_ID) ];\n\t\t\tapi && !api.disabled && method.apply(api, arguments);\n\t\t}\n\t);\n}\n// Event trigger\nPROTOTYPE._trigger = function(type, args, event) {\n\tvar callback = $.Event('tooltip'+type);\n\tcallback.originalEvent = (event && $.extend({}, event)) || this.cache.event || NULL;\n\n\tthis.triggering = type;\n\tthis.tooltip.trigger(callback, [this].concat(args || []));\n\tthis.triggering = FALSE;\n\n\treturn !callback.isDefaultPrevented();\n};\n\nPROTOTYPE._bindEvents = function(showEvents, hideEvents, showTargets, hideTargets, showMethod, hideMethod) {\n\t// Get tasrgets that lye within both\n\tvar similarTargets = showTargets.filter( hideTargets ).add( hideTargets.filter(showTargets) ),\n\t\ttoggleEvents = [];\n\n\t// If hide and show targets are the same...\n\tif(similarTargets.length) {\n\n\t\t// Filter identical show/hide events\n\t\t$.each(hideEvents, function(i, type) {\n\t\t\tvar showIndex = $.inArray(type, showEvents);\n\n\t\t\t// Both events are identical, remove from both hide and show events\n\t\t\t// and append to toggleEvents\n\t\t\tshowIndex > -1 && toggleEvents.push( showEvents.splice( showIndex, 1 )[0] );\n\t\t});\n\n\t\t// Toggle events are special case of identical show/hide events, which happen in sequence\n\t\tif(toggleEvents.length) {\n\t\t\t// Bind toggle events to the similar targets\n\t\t\tthis._bind(similarTargets, toggleEvents, function(event) {\n\t\t\t\tvar state = this.rendered ? this.tooltip[0].offsetWidth > 0 : false;\n\t\t\t\t(state ? hideMethod : showMethod).call(this, event);\n\t\t\t});\n\n\t\t\t// Remove the similar targets from the regular show/hide bindings\n\t\t\tshowTargets = showTargets.not(similarTargets);\n\t\t\thideTargets = hideTargets.not(similarTargets);\n\t\t}\n\t}\n\n\t// Apply show/hide/toggle events\n\tthis._bind(showTargets, showEvents, showMethod);\n\tthis._bind(hideTargets, hideEvents, hideMethod);\n};\n\nPROTOTYPE._assignInitialEvents = function(event) {\n\tvar options = this.options,\n\t\tshowTarget = options.show.target,\n\t\thideTarget = options.hide.target,\n\t\tshowEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [],\n\t\thideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : [];\n\n\t// Catch remove/removeqtip events on target element to destroy redundant tooltips\n\tthis._bind(this.elements.target, ['remove', 'removeqtip'], function(event) {\n\t\tthis.destroy(true);\n\t}, 'destroy');\n\n\t/*\n\t * Make sure hoverIntent functions properly by using mouseleave as a hide event if\n\t * mouseenter/mouseout is used for show.event, even if it isn't in the users options.\n\t */\n\tif(/mouse(over|enter)/i.test(options.show.event) && !/mouse(out|leave)/i.test(options.hide.event)) {\n\t\thideEvents.push('mouseleave');\n\t}\n\n\t/*\n\t * Also make sure initial mouse targetting works correctly by caching mousemove coords\n\t * on show targets before the tooltip has rendered. Also set onTarget when triggered to\n\t * keep mouse tracking working.\n\t */\n\tthis._bind(showTarget, 'mousemove', function(event) {\n\t\tthis._storeMouse(event);\n\t\tthis.cache.onTarget = TRUE;\n\t});\n\n\t// Define hoverIntent function\n\tfunction hoverIntent(event) {\n\t\t// Only continue if tooltip isn't disabled\n\t\tif(this.disabled || this.destroyed) { return FALSE; }\n\n\t\t// Cache the event data\n\t\tthis.cache.event = event && $.event.fix(event);\n\t\tthis.cache.target = event && $(event.target);\n\n\t\t// Start the event sequence\n\t\tclearTimeout(this.timers.show);\n\t\tthis.timers.show = delay.call(this,\n\t\t\tfunction() { this.render(typeof event === 'object' || options.show.ready); },\n\t\t\toptions.prerender ? 0 : options.show.delay\n\t\t);\n\t}\n\n\t// Filter and bind events\n\tthis._bindEvents(showEvents, hideEvents, showTarget, hideTarget, hoverIntent, function() {\n\t\tif(!this.timers) { return FALSE; }\n\t\tclearTimeout(this.timers.show);\n\t});\n\n\t// Prerendering is enabled, create tooltip now\n\tif(options.show.ready || options.prerender) { hoverIntent.call(this, event); }\n};\n\n// Event assignment method\nPROTOTYPE._assignEvents = function() {\n\tvar self = this,\n\t\toptions = this.options,\n\t\tposOptions = options.position,\n\n\t\ttooltip = this.tooltip,\n\t\tshowTarget = options.show.target,\n\t\thideTarget = options.hide.target,\n\t\tcontainerTarget = posOptions.container,\n\t\tviewportTarget = posOptions.viewport,\n\t\tdocumentTarget = $(document),\n\t\tbodyTarget = $(document.body),\n\t\twindowTarget = $(window),\n\n\t\tshowEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [],\n\t\thideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : [];\n\n\n\t// Assign passed event callbacks\n\t$.each(options.events, function(name, callback) {\n\t\tself._bind(tooltip, name === 'toggle' ? ['tooltipshow','tooltiphide'] : ['tooltip'+name], callback, null, tooltip);\n\t});\n\n\t// Hide tooltips when leaving current window/frame (but not select/option elements)\n\tif(/mouse(out|leave)/i.test(options.hide.event) && options.hide.leave === 'window') {\n\t\tthis._bind(documentTarget, ['mouseout', 'blur'], function(event) {\n\t\t\tif(!/select|option/.test(event.target.nodeName) && !event.relatedTarget) {\n\t\t\t\tthis.hide(event);\n\t\t\t}\n\t\t});\n\t}\n\n\t// Enable hide.fixed by adding appropriate class\n\tif(options.hide.fixed) {\n\t\thideTarget = hideTarget.add( tooltip.addClass(CLASS_FIXED) );\n\t}\n\n\t/*\n\t * Make sure hoverIntent functions properly by using mouseleave to clear show timer if\n\t * mouseenter/mouseout is used for show.event, even if it isn't in the users options.\n\t */\n\telse if(/mouse(over|enter)/i.test(options.show.event)) {\n\t\tthis._bind(hideTarget, 'mouseleave', function() {\n\t\t\tclearTimeout(this.timers.show);\n\t\t});\n\t}\n\n\t// Hide tooltip on document mousedown if unfocus events are enabled\n\tif(('' + options.hide.event).indexOf('unfocus') > -1) {\n\t\tthis._bind(containerTarget.closest('html'), ['mousedown', 'touchstart'], function(event) {\n\t\t\tvar elem = $(event.target),\n\t\t\t\tenabled = this.rendered && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0,\n\t\t\t\tisAncestor = elem.parents(SELECTOR).filter(this.tooltip[0]).length > 0;\n\n\t\t\tif(elem[0] !== this.target[0] && elem[0] !== this.tooltip[0] && !isAncestor &&\n\t\t\t\t!this.target.has(elem[0]).length && enabled\n\t\t\t) {\n\t\t\t\tthis.hide(event);\n\t\t\t}\n\t\t});\n\t}\n\n\t// Check if the tooltip hides when inactive\n\tif('number' === typeof options.hide.inactive) {\n\t\t// Bind inactive method to show target(s) as a custom event\n\t\tthis._bind(showTarget, 'qtip-'+this.id+'-inactive', inactiveMethod, 'inactive');\n\n\t\t// Define events which reset the 'inactive' event handler\n\t\tthis._bind(hideTarget.add(tooltip), QTIP.inactiveEvents, inactiveMethod);\n\t}\n\n\t// Filter and bind events\n\tthis._bindEvents(showEvents, hideEvents, showTarget, hideTarget, showMethod, hideMethod);\n\n\t// Mouse movement bindings\n\tthis._bind(showTarget.add(tooltip), 'mousemove', function(event) {\n\t\t// Check if the tooltip hides when mouse is moved a certain distance\n\t\tif('number' === typeof options.hide.distance) {\n\t\t\tvar origin = this.cache.origin || {},\n\t\t\t\tlimit = this.options.hide.distance,\n\t\t\t\tabs = Math.abs;\n\n\t\t\t// Check if the movement has gone beyond the limit, and hide it if so\n\t\t\tif(abs(event.pageX - origin.pageX) >= limit || abs(event.pageY - origin.pageY) >= limit) {\n\t\t\t\tthis.hide(event);\n\t\t\t}\n\t\t}\n\n\t\t// Cache mousemove coords on show targets\n\t\tthis._storeMouse(event);\n\t});\n\n\t// Mouse positioning events\n\tif(posOptions.target === 'mouse') {\n\t\t// If mouse adjustment is on...\n\t\tif(posOptions.adjust.mouse) {\n\t\t\t// Apply a mouseleave event so we don't get problems with overlapping\n\t\t\tif(options.hide.event) {\n\t\t\t\t// Track if we're on the target or not\n\t\t\t\tthis._bind(showTarget, ['mouseenter', 'mouseleave'], function(event) {\n\t\t\t\t\tif(!this.cache) {return FALSE; }\n\t\t\t\t\tthis.cache.onTarget = event.type === 'mouseenter';\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Update tooltip position on mousemove\n\t\t\tthis._bind(documentTarget, 'mousemove', function(event) {\n\t\t\t\t// Update the tooltip position only if the tooltip is visible and adjustment is enabled\n\t\t\t\tif(this.rendered && this.cache.onTarget && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0) {\n\t\t\t\t\tthis.reposition(event);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t// Adjust positions of the tooltip on window resize if enabled\n\tif(posOptions.adjust.resize || viewportTarget.length) {\n\t\tthis._bind( $.event.special.resize ? viewportTarget : windowTarget, 'resize', repositionMethod );\n\t}\n\n\t// Adjust tooltip position on scroll of the window or viewport element if present\n\tif(posOptions.adjust.scroll) {\n\t\tthis._bind( windowTarget.add(posOptions.container), 'scroll', repositionMethod );\n\t}\n};\n\n// Un-assignment method\nPROTOTYPE._unassignEvents = function() {\n\tvar options = this.options,\n\t\tshowTargets = options.show.target,\n\t\thideTargets = options.hide.target,\n\t\ttargets = $.grep([\n\t\t\tthis.elements.target[0],\n\t\t\tthis.rendered && this.tooltip[0],\n\t\t\toptions.position.container[0],\n\t\t\toptions.position.viewport[0],\n\t\t\toptions.position.container.closest('html')[0], // unfocus\n\t\t\twindow,\n\t\t\tdocument\n\t\t], function(i) {\n\t\t\treturn typeof i === 'object';\n\t\t});\n\n\t// Add show and hide targets if they're valid\n\tif(showTargets && showTargets.toArray) {\n\t\ttargets = targets.concat(showTargets.toArray());\n\t}\n\tif(hideTargets && hideTargets.toArray) {\n\t\ttargets = targets.concat(hideTargets.toArray());\n\t}\n\n\t// Unbind the events\n\tthis._unbind(targets)\n\t\t._unbind(targets, 'destroy')\n\t\t._unbind(targets, 'inactive');\n};\n\n// Apply common event handlers using delegate (avoids excessive .bind calls!)\n$(function() {\n\tdelegate(SELECTOR, ['mouseenter', 'mouseleave'], function(event) {\n\t\tvar state = event.type === 'mouseenter',\n\t\t\ttooltip = $(event.currentTarget),\n\t\t\ttarget = $(event.relatedTarget || event.target),\n\t\t\toptions = this.options;\n\n\t\t// On mouseenter...\n\t\tif(state) {\n\t\t\t// Focus the tooltip on mouseenter (z-index stacking)\n\t\t\tthis.focus(event);\n\n\t\t\t// Clear hide timer on tooltip hover to prevent it from closing\n\t\t\ttooltip.hasClass(CLASS_FIXED) && !tooltip.hasClass(CLASS_DISABLED) && clearTimeout(this.timers.hide);\n\t\t}\n\n\t\t// On mouseleave...\n\t\telse {\n\t\t\t// When mouse tracking is enabled, hide when we leave the tooltip and not onto the show target (if a hide event is set)\n\t\t\tif(options.position.target === 'mouse' && options.position.adjust.mouse &&\n\t\t\t\toptions.hide.event && options.show.target && !target.closest(options.show.target[0]).length) {\n\t\t\t\tthis.hide(event);\n\t\t\t}\n\t\t}\n\n\t\t// Add hover class\n\t\ttooltip.toggleClass(CLASS_HOVER, state);\n\t});\n\n\t// Define events which reset the 'inactive' event handler\n\tdelegate('['+ATTR_ID+']', INACTIVE_EVENTS, inactiveMethod);\n});\n;// Initialization method\nfunction init(elem, id, opts) {\n\tvar obj, posOptions, attr, config, title,\n\n\t// Setup element references\n\tdocBody = $(document.body),\n\n\t// Use document body instead of document element if needed\n\tnewTarget = elem[0] === document ? docBody : elem,\n\n\t// Grab metadata from element if plugin is present\n\tmetadata = (elem.metadata) ? elem.metadata(opts.metadata) : NULL,\n\n\t// If metadata type if HTML5, grab 'name' from the object instead, or use the regular data object otherwise\n\tmetadata5 = opts.metadata.type === 'html5' && metadata ? metadata[opts.metadata.name] : NULL,\n\n\t// Grab data from metadata.name (or data-qtipopts as fallback) using .data() method,\n\thtml5 = elem.data(opts.metadata.name || 'qtipopts');\n\n\t// If we don't get an object returned attempt to parse it manualyl without parseJSON\n\ttry { html5 = typeof html5 === 'string' ? $.parseJSON(html5) : html5; } catch(e) {}\n\n\t// Merge in and sanitize metadata\n\tconfig = $.extend(TRUE, {}, QTIP.defaults, opts,\n\t\ttypeof html5 === 'object' ? sanitizeOptions(html5) : NULL,\n\t\tsanitizeOptions(metadata5 || metadata));\n\n\t// Re-grab our positioning options now we've merged our metadata and set id to passed value\n\tposOptions = config.position;\n\tconfig.id = id;\n\n\t// Setup missing content if none is detected\n\tif('boolean' === typeof config.content.text) {\n\t\tattr = elem.attr(config.content.attr);\n\n\t\t// Grab from supplied attribute if available\n\t\tif(config.content.attr !== FALSE && attr) { config.content.text = attr; }\n\n\t\t// No valid content was found, abort render\n\t\telse { return FALSE; }\n\t}\n\n\t// Setup target options\n\tif(!posOptions.container.length) { posOptions.container = docBody; }\n\tif(posOptions.target === FALSE) { posOptions.target = newTarget; }\n\tif(config.show.target === FALSE) { config.show.target = newTarget; }\n\tif(config.show.solo === TRUE) { config.show.solo = posOptions.container.closest('body'); }\n\tif(config.hide.target === FALSE) { config.hide.target = newTarget; }\n\tif(config.position.viewport === TRUE) { config.position.viewport = posOptions.container; }\n\n\t// Ensure we only use a single container\n\tposOptions.container = posOptions.container.eq(0);\n\n\t// Convert position corner values into x and y strings\n\tposOptions.at = new CORNER(posOptions.at, TRUE);\n\tposOptions.my = new CORNER(posOptions.my);\n\n\t// Destroy previous tooltip if overwrite is enabled, or skip element if not\n\tif(elem.data(NAMESPACE)) {\n\t\tif(config.overwrite) {\n\t\t\telem.qtip('destroy', true);\n\t\t}\n\t\telse if(config.overwrite === FALSE) {\n\t\t\treturn FALSE;\n\t\t}\n\t}\n\n\t// Add has-qtip attribute\n\telem.attr(ATTR_HAS, id);\n\n\t// Remove title attribute and store it if present\n\tif(config.suppress && (title = elem.attr('title'))) {\n\t\t// Final attr call fixes event delegatiom and IE default tooltip showing problem\n\t\telem.removeAttr('title').attr(oldtitle, title).attr('title', '');\n\t}\n\n\t// Initialize the tooltip and add API reference\n\tobj = new QTip(elem, config, id, !!attr);\n\telem.data(NAMESPACE, obj);\n\n\treturn obj;\n}\n\n// jQuery $.fn extension method\nQTIP = $.fn.qtip = function(options, notation, newValue)\n{\n\tvar command = ('' + options).toLowerCase(), // Parse command\n\t\treturned = NULL,\n\t\targs = $.makeArray(arguments).slice(1),\n\t\tevent = args[args.length - 1],\n\t\topts = this[0] ? $.data(this[0], NAMESPACE) : NULL;\n\n\t// Check for API request\n\tif((!arguments.length && opts) || command === 'api') {\n\t\treturn opts;\n\t}\n\n\t// Execute API command if present\n\telse if('string' === typeof options) {\n\t\tthis.each(function() {\n\t\t\tvar api = $.data(this, NAMESPACE);\n\t\t\tif(!api) { return TRUE; }\n\n\t\t\t// Cache the event if possible\n\t\t\tif(event && event.timeStamp) { api.cache.event = event; }\n\n\t\t\t// Check for specific API commands\n\t\t\tif(notation && (command === 'option' || command === 'options')) {\n\t\t\t\tif(newValue !== undefined || $.isPlainObject(notation)) {\n\t\t\t\t\tapi.set(notation, newValue);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturned = api.get(notation);\n\t\t\t\t\treturn FALSE;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Execute API command\n\t\t\telse if(api[command]) {\n\t\t\t\tapi[command].apply(api, args);\n\t\t\t}\n\t\t});\n\n\t\treturn returned !== NULL ? returned : this;\n\t}\n\n\t// No API commands. validate provided options and setup qTips\n\telse if('object' === typeof options || !arguments.length) {\n\t\t// Sanitize options first\n\t\topts = sanitizeOptions($.extend(TRUE, {}, options));\n\n\t\treturn this.each(function(i) {\n\t\t\tvar api, id;\n\n\t\t\t// Find next available ID, or use custom ID if provided\n\t\t\tid = $.isArray(opts.id) ? opts.id[i] : opts.id;\n\t\t\tid = !id || id === FALSE || id.length < 1 || QTIP.api[id] ? QTIP.nextid++ : id;\n\n\t\t\t// Initialize the qTip and re-grab newly sanitized options\n\t\t\tapi = init($(this), id, opts);\n\t\t\tif(api === FALSE) { return TRUE; }\n\t\t\telse { QTIP.api[id] = api; }\n\n\t\t\t// Initialize plugins\n\t\t\t$.each(PLUGINS, function() {\n\t\t\t\tif(this.initialize === 'initialize') { this(api); }\n\t\t\t});\n\n\t\t\t// Assign initial pre-render events\n\t\t\tapi._assignInitialEvents(event);\n\t\t});\n\t}\n};\n\n// Expose class\n$.qtip = QTip;\n\n// Populated in render method\nQTIP.api = {};\n;$.each({\n\t/* Allow other plugins to successfully retrieve the title of an element with a qTip applied */\n\tattr: function(attr, val) {\n\t\tif(this.length) {\n\t\t\tvar self = this[0],\n\t\t\t\ttitle = 'title',\n\t\t\t\tapi = $.data(self, 'qtip');\n\n\t\t\tif(attr === title && api && 'object' === typeof api && api.options.suppress) {\n\t\t\t\tif(arguments.length < 2) {\n\t\t\t\t\treturn $.attr(self, oldtitle);\n\t\t\t\t}\n\n\t\t\t\t// If qTip is rendered and title was originally used as content, update it\n\t\t\t\tif(api && api.options.content.attr === title && api.cache.attr) {\n\t\t\t\t\tapi.set('content.text', val);\n\t\t\t\t}\n\n\t\t\t\t// Use the regular attr method to set, then cache the result\n\t\t\t\treturn this.attr(oldtitle, val);\n\t\t\t}\n\t\t}\n\n\t\treturn $.fn['attr'+replaceSuffix].apply(this, arguments);\n\t},\n\n\t/* Allow clone to correctly retrieve cached title attributes */\n\tclone: function(keepData) {\n\t\tvar titles = $([]), title = 'title',\n\n\t\t// Clone our element using the real clone method\n\t\telems = $.fn['clone'+replaceSuffix].apply(this, arguments);\n\n\t\t// Grab all elements with an oldtitle set, and change it to regular title attribute, if keepData is false\n\t\tif(!keepData) {\n\t\t\telems.filter('['+oldtitle+']').attr('title', function() {\n\t\t\t\treturn $.attr(this, oldtitle);\n\t\t\t})\n\t\t\t.removeAttr(oldtitle);\n\t\t}\n\n\t\treturn elems;\n\t}\n}, function(name, func) {\n\tif(!func || $.fn[name+replaceSuffix]) { return TRUE; }\n\n\tvar old = $.fn[name+replaceSuffix] = $.fn[name];\n\t$.fn[name] = function() {\n\t\treturn func.apply(this, arguments) || old.apply(this, arguments);\n\t};\n});\n\n/* Fire off 'removeqtip' handler in $.cleanData if jQuery UI not present (it already does similar).\n * This snippet is taken directly from jQuery UI source code found here:\n * http://code.jquery.com/ui/jquery-ui-git.js\n */\nif(!$.ui) {\n\t$['cleanData'+replaceSuffix] = $.cleanData;\n\t$.cleanData = function( elems ) {\n\t\tfor(var i = 0, elem; (elem = $( elems[i] )).length; i++) {\n\t\t\tif(elem.attr(ATTR_HAS)) {\n\t\t\t\ttry { elem.triggerHandler('removeqtip'); }\n\t\t\t\tcatch( e ) {}\n\t\t\t}\n\t\t}\n\t\t$['cleanData'+replaceSuffix].apply(this, arguments);\n\t};\n}\n;// qTip version\nQTIP.version = '2.2.1';\n\n// Base ID for all qTips\nQTIP.nextid = 0;\n\n// Inactive events array\nQTIP.inactiveEvents = INACTIVE_EVENTS;\n\n// Base z-index for all qTips\nQTIP.zindex = 15000;\n\n// Define configuration defaults\nQTIP.defaults = {\n\tprerender: FALSE,\n\tid: FALSE,\n\toverwrite: TRUE,\n\tsuppress: TRUE,\n\tcontent: {\n\t\ttext: TRUE,\n\t\tattr: 'title',\n\t\ttitle: FALSE,\n\t\tbutton: FALSE\n\t},\n\tposition: {\n\t\tmy: 'top left',\n\t\tat: 'bottom right',\n\t\ttarget: FALSE,\n\t\tcontainer: FALSE,\n\t\tviewport: FALSE,\n\t\tadjust: {\n\t\t\tx: 0, y: 0,\n\t\t\tmouse: TRUE,\n\t\t\tscroll: TRUE,\n\t\t\tresize: TRUE,\n\t\t\tmethod: 'flipinvert flipinvert'\n\t\t},\n\t\teffect: function(api, pos, viewport) {\n\t\t\t$(this).animate(pos, {\n\t\t\t\tduration: 200,\n\t\t\t\tqueue: FALSE\n\t\t\t});\n\t\t}\n\t},\n\tshow: {\n\t\ttarget: FALSE,\n\t\tevent: 'mouseenter',\n\t\teffect: TRUE,\n\t\tdelay: 90,\n\t\tsolo: FALSE,\n\t\tready: FALSE,\n\t\tautofocus: FALSE\n\t},\n\thide: {\n\t\ttarget: FALSE,\n\t\tevent: 'mouseleave',\n\t\teffect: TRUE,\n\t\tdelay: 0,\n\t\tfixed: FALSE,\n\t\tinactive: FALSE,\n\t\tleave: 'window',\n\t\tdistance: FALSE\n\t},\n\tstyle: {\n\t\tclasses: '',\n\t\twidget: FALSE,\n\t\twidth: FALSE,\n\t\theight: FALSE,\n\t\tdef: TRUE\n\t},\n\tevents: {\n\t\trender: NULL,\n\t\tmove: NULL,\n\t\tshow: NULL,\n\t\thide: NULL,\n\t\ttoggle: NULL,\n\t\tvisible: NULL,\n\t\thidden: NULL,\n\t\tfocus: NULL,\n\t\tblur: NULL\n\t}\n};\n;var TIP,\n\n// .bind()/.on() namespace\nTIPNS = '.qtip-tip',\n\n// Common CSS strings\nMARGIN = 'margin',\nBORDER = 'border',\nCOLOR = 'color',\nBG_COLOR = 'background-color',\nTRANSPARENT = 'transparent',\nIMPORTANT = ' !important',\n\n// Check if the browser supports <canvas/> elements\nHASCANVAS = !!document.createElement('canvas').getContext,\n\n// Invalid colour values used in parseColours()\nINVALID = /rgba?\\(0, 0, 0(, 0)?\\)|transparent|#123456/i;\n\n// Camel-case method, taken from jQuery source\n// http://code.jquery.com/jquery-1.8.0.js\nfunction camel(s) { return s.charAt(0).toUpperCase() + s.slice(1); }\n\n/*\n * Modified from Modernizr's testPropsAll()\n * http://modernizr.com/downloads/modernizr-latest.js\n */\nvar cssProps = {}, cssPrefixes = [\"Webkit\", \"O\", \"Moz\", \"ms\"];\nfunction vendorCss(elem, prop) {\n\tvar ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),\n\t\tprops = (prop + ' ' + cssPrefixes.join(ucProp + ' ') + ucProp).split(' '),\n\t\tcur, val, i = 0;\n\n\t// If the property has already been mapped...\n\tif(cssProps[prop]) { return elem.css(cssProps[prop]); }\n\n\twhile((cur = props[i++])) {\n\t\tif((val = elem.css(cur)) !== undefined) {\n\t\t\treturn cssProps[prop] = cur, val;\n\t\t}\n\t}\n}\n\n// Parse a given elements CSS property into an int\nfunction intCss(elem, prop) {\n\treturn Math.ceil(parseFloat(vendorCss(elem, prop)));\n}\n\n\n// VML creation (for IE only)\nif(!HASCANVAS) {\n\tvar createVML = function(tag, props, style) {\n\t\treturn '<qtipvml:'+tag+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"qtip-vml\" '+(props||'')+\n\t\t\t' style=\"behavior: url(#default#VML); '+(style||'')+ '\" />';\n\t};\n}\n\n// Canvas only definitions\nelse {\n\tvar PIXEL_RATIO = window.devicePixelRatio || 1,\n\t\tBACKING_STORE_RATIO = (function() {\n\t\t\tvar context = document.createElement('canvas').getContext('2d');\n\t\t\treturn context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio ||\n\t\t\t\t\tcontext.msBackingStorePixelRatio || context.oBackingStorePixelRatio || 1;\n\t\t}()),\n\t\tSCALE = PIXEL_RATIO / BACKING_STORE_RATIO;\n}\n\n\nfunction Tip(qtip, options) {\n\tthis._ns = 'tip';\n\tthis.options = options;\n\tthis.offset = options.offset;\n\tthis.size = [ options.width, options.height ];\n\n\t// Initialize\n\tthis.init( (this.qtip = qtip) );\n}\n\n$.extend(Tip.prototype, {\n\tinit: function(qtip) {\n\t\tvar context, tip;\n\n\t\t// Create tip element and prepend to the tooltip\n\t\ttip = this.element = qtip.elements.tip = $('<div />', { 'class': NAMESPACE+'-tip' }).prependTo(qtip.tooltip);\n\n\t\t// Create tip drawing element(s)\n\t\tif(HASCANVAS) {\n\t\t\t// save() as soon as we create the canvas element so FF2 doesn't bork on our first restore()!\n\t\t\tcontext = $('<canvas />').appendTo(this.element)[0].getContext('2d');\n\n\t\t\t// Setup constant parameters\n\t\t\tcontext.lineJoin = 'miter';\n\t\t\tcontext.miterLimit = 100000;\n\t\t\tcontext.save();\n\t\t}\n\t\telse {\n\t\t\tcontext = createVML('shape', 'coordorigin=\"0,0\"', 'position:absolute;');\n\t\t\tthis.element.html(context + context);\n\n\t\t\t// Prevent mousing down on the tip since it causes problems with .live() handling in IE due to VML\n\t\t\tqtip._bind( $('*', tip).add(tip), ['click', 'mousedown'], function(event) { event.stopPropagation(); }, this._ns);\n\t\t}\n\n\t\t// Bind update events\n\t\tqtip._bind(qtip.tooltip, 'tooltipmove', this.reposition, this._ns, this);\n\n\t\t// Create it\n\t\tthis.create();\n\t},\n\n\t_swapDimensions: function() {\n\t\tthis.size[0] = this.options.height;\n\t\tthis.size[1] = this.options.width;\n\t},\n\t_resetDimensions: function() {\n\t\tthis.size[0] = this.options.width;\n\t\tthis.size[1] = this.options.height;\n\t},\n\n\t_useTitle: function(corner) {\n\t\tvar titlebar = this.qtip.elements.titlebar;\n\t\treturn titlebar && (\n\t\t\tcorner.y === TOP || (corner.y === CENTER && this.element.position().top + (this.size[1] / 2) + this.options.offset < titlebar.outerHeight(TRUE))\n\t\t);\n\t},\n\n\t_parseCorner: function(corner) {\n\t\tvar my = this.qtip.options.position.my;\n\n\t\t// Detect corner and mimic properties\n\t\tif(corner === FALSE || my === FALSE) {\n\t\t\tcorner = FALSE;\n\t\t}\n\t\telse if(corner === TRUE) {\n\t\t\tcorner = new CORNER( my.string() );\n\t\t}\n\t\telse if(!corner.string) {\n\t\t\tcorner = new CORNER(corner);\n\t\t\tcorner.fixed = TRUE;\n\t\t}\n\n\t\treturn corner;\n\t},\n\n\t_parseWidth: function(corner, side, use) {\n\t\tvar elements = this.qtip.elements,\n\t\t\tprop = BORDER + camel(side) + 'Width';\n\n\t\treturn (use ? intCss(use, prop) : (\n\t\t\tintCss(elements.content, prop) ||\n\t\t\tintCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) ||\n\t\t\tintCss(elements.tooltip, prop)\n\t\t)) || 0;\n\t},\n\n\t_parseRadius: function(corner) {\n\t\tvar elements = this.qtip.elements,\n\t\t\tprop = BORDER + camel(corner.y) + camel(corner.x) + 'Radius';\n\n\t\treturn BROWSER.ie < 9 ? 0 :\n\t\t\tintCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) ||\n\t\t\tintCss(elements.tooltip, prop) || 0;\n\t},\n\n\t_invalidColour: function(elem, prop, compare) {\n\t\tvar val = elem.css(prop);\n\t\treturn !val || (compare && val === elem.css(compare)) || INVALID.test(val) ? FALSE : val;\n\t},\n\n\t_parseColours: function(corner) {\n\t\tvar elements = this.qtip.elements,\n\t\t\ttip = this.element.css('cssText', ''),\n\t\t\tborderSide = BORDER + camel(corner[ corner.precedance ]) + camel(COLOR),\n\t\t\tcolorElem = this._useTitle(corner) && elements.titlebar || elements.content,\n\t\t\tcss = this._invalidColour, color = [];\n\n\t\t// Attempt to detect the background colour from various elements, left-to-right precedance\n\t\tcolor[0] = css(tip, BG_COLOR) || css(colorElem, BG_COLOR) || css(elements.content, BG_COLOR) ||\n\t\t\tcss(elements.tooltip, BG_COLOR) || tip.css(BG_COLOR);\n\n\t\t// Attempt to detect the correct border side colour from various elements, left-to-right precedance\n\t\tcolor[1] = css(tip, borderSide, COLOR) || css(colorElem, borderSide, COLOR) ||\n\t\t\tcss(elements.content, borderSide, COLOR) || css(elements.tooltip, borderSide, COLOR) || elements.tooltip.css(borderSide);\n\n\t\t// Reset background and border colours\n\t\t$('*', tip).add(tip).css('cssText', BG_COLOR+':'+TRANSPARENT+IMPORTANT+';'+BORDER+':0'+IMPORTANT+';');\n\n\t\treturn color;\n\t},\n\n\t_calculateSize: function(corner) {\n\t\tvar y = corner.precedance === Y,\n\t\t\twidth = this.options['width'],\n\t\t\theight = this.options['height'],\n\t\t\tisCenter = corner.abbrev() === 'c',\n\t\t\tbase = (y ? width: height) * (isCenter ? 0.5 : 1),\n\t\t\tpow = Math.pow,\n\t\t\tround = Math.round,\n\t\t\tbigHyp, ratio, result,\n\n\t\tsmallHyp = Math.sqrt( pow(base, 2) + pow(height, 2) ),\n\t\thyp = [ (this.border / base) * smallHyp, (this.border / height) * smallHyp ];\n\n\t\thyp[2] = Math.sqrt( pow(hyp[0], 2) - pow(this.border, 2) );\n\t\thyp[3] = Math.sqrt( pow(hyp[1], 2) - pow(this.border, 2) );\n\n\t\tbigHyp = smallHyp + hyp[2] + hyp[3] + (isCenter ? 0 : hyp[0]);\n\t\tratio = bigHyp / smallHyp;\n\n\t\tresult = [ round(ratio * width), round(ratio * height) ];\n\t\treturn y ? result : result.reverse();\n\t},\n\n\t// Tip coordinates calculator\n\t_calculateTip: function(corner, size, scale) {\n\t\tscale = scale || 1;\n\t\tsize = size || this.size;\n\n\t\tvar width = size[0] * scale,\n\t\t\theight = size[1] * scale,\n\t\t\twidth2 = Math.ceil(width / 2), height2 = Math.ceil(height / 2),\n\n\t\t// Define tip coordinates in terms of height and width values\n\t\ttips = {\n\t\t\tbr:\t[0,0,\t\twidth,height,\twidth,0],\n\t\t\tbl:\t[0,0,\t\twidth,0,\t\t0,height],\n\t\t\ttr:\t[0,height,\twidth,0,\t\twidth,height],\n\t\t\ttl:\t[0,0,\t\t0,height,\t\twidth,height],\n\t\t\ttc:\t[0,height,\twidth2,0,\t\twidth,height],\n\t\t\tbc:\t[0,0,\t\twidth,0,\t\twidth2,height],\n\t\t\trc:\t[0,0,\t\twidth,height2,\t0,height],\n\t\t\tlc:\t[width,0,\twidth,height,\t0,height2]\n\t\t};\n\n\t\t// Set common side shapes\n\t\ttips.lt = tips.br; tips.rt = tips.bl;\n\t\ttips.lb = tips.tr; tips.rb = tips.tl;\n\n\t\treturn tips[ corner.abbrev() ];\n\t},\n\n\t// Tip coordinates drawer (canvas)\n\t_drawCoords: function(context, coords) {\n\t\tcontext.beginPath();\n\t\tcontext.moveTo(coords[0], coords[1]);\n\t\tcontext.lineTo(coords[2], coords[3]);\n\t\tcontext.lineTo(coords[4], coords[5]);\n\t\tcontext.closePath();\n\t},\n\n\tcreate: function() {\n\t\t// Determine tip corner\n\t\tvar c = this.corner = (HASCANVAS || BROWSER.ie) && this._parseCorner(this.options.corner);\n\n\t\t// If we have a tip corner...\n\t\tif( (this.enabled = !!this.corner && this.corner.abbrev() !== 'c') ) {\n\t\t\t// Cache it\n\t\t\tthis.qtip.cache.corner = c.clone();\n\n\t\t\t// Create it\n\t\t\tthis.update();\n\t\t}\n\n\t\t// Toggle tip element\n\t\tthis.element.toggle(this.enabled);\n\n\t\treturn this.corner;\n\t},\n\n\tupdate: function(corner, position) {\n\t\tif(!this.enabled) { return this; }\n\n\t\tvar elements = this.qtip.elements,\n\t\t\ttip = this.element,\n\t\t\tinner = tip.children(),\n\t\t\toptions = this.options,\n\t\t\tcurSize = this.size,\n\t\t\tmimic = options.mimic,\n\t\t\tround = Math.round,\n\t\t\tcolor, precedance, context,\n\t\t\tcoords, bigCoords, translate, newSize, border, BACKING_STORE_RATIO;\n\n\t\t// Re-determine tip if not already set\n\t\tif(!corner) { corner = this.qtip.cache.corner || this.corner; }\n\n\t\t// Use corner property if we detect an invalid mimic value\n\t\tif(mimic === FALSE) { mimic = corner; }\n\n\t\t// Otherwise inherit mimic properties from the corner object as necessary\n\t\telse {\n\t\t\tmimic = new CORNER(mimic);\n\t\t\tmimic.precedance = corner.precedance;\n\n\t\t\tif(mimic.x === 'inherit') { mimic.x = corner.x; }\n\t\t\telse if(mimic.y === 'inherit') { mimic.y = corner.y; }\n\t\t\telse if(mimic.x === mimic.y) {\n\t\t\t\tmimic[ corner.precedance ] = corner[ corner.precedance ];\n\t\t\t}\n\t\t}\n\t\tprecedance = mimic.precedance;\n\n\t\t// Ensure the tip width.height are relative to the tip position\n\t\tif(corner.precedance === X) { this._swapDimensions(); }\n\t\telse { this._resetDimensions(); }\n\n\t\t// Update our colours\n\t\tcolor = this.color = this._parseColours(corner);\n\n\t\t// Detect border width, taking into account colours\n\t\tif(color[1] !== TRANSPARENT) {\n\t\t\t// Grab border width\n\t\t\tborder = this.border = this._parseWidth(corner, corner[corner.precedance]);\n\n\t\t\t// If border width isn't zero, use border color as fill if it's not invalid (1.0 style tips)\n\t\t\tif(options.border && border < 1 && !INVALID.test(color[1])) { color[0] = color[1]; }\n\n\t\t\t// Set border width (use detected border width if options.border is true)\n\t\t\tthis.border = border = options.border !== TRUE ? options.border : border;\n\t\t}\n\n\t\t// Border colour was invalid, set border to zero\n\t\telse { this.border = border = 0; }\n\n\t\t// Determine tip size\n\t\tnewSize = this.size = this._calculateSize(corner);\n\t\ttip.css({\n\t\t\twidth: newSize[0],\n\t\t\theight: newSize[1],\n\t\t\tlineHeight: newSize[1]+'px'\n\t\t});\n\n\t\t// Calculate tip translation\n\t\tif(corner.precedance === Y) {\n\t\t\ttranslate = [\n\t\t\t\tround(mimic.x === LEFT ? border : mimic.x === RIGHT ? newSize[0] - curSize[0] - border : (newSize[0] - curSize[0]) / 2),\n\t\t\t\tround(mimic.y === TOP ? newSize[1] - curSize[1] : 0)\n\t\t\t];\n\t\t}\n\t\telse {\n\t\t\ttranslate = [\n\t\t\t\tround(mimic.x === LEFT ? newSize[0] - curSize[0] : 0),\n\t\t\t\tround(mimic.y === TOP ? border : mimic.y === BOTTOM ? newSize[1] - curSize[1] - border : (newSize[1] - curSize[1]) / 2)\n\t\t\t];\n\t\t}\n\n\t\t// Canvas drawing implementation\n\t\tif(HASCANVAS) {\n\t\t\t// Grab canvas context and clear/save it\n\t\t\tcontext = inner[0].getContext('2d');\n\t\t\tcontext.restore(); context.save();\n\t\t\tcontext.clearRect(0,0,6000,6000);\n\n\t\t\t// Calculate coordinates\n\t\t\tcoords = this._calculateTip(mimic, curSize, SCALE);\n\t\t\tbigCoords = this._calculateTip(mimic, this.size, SCALE);\n\n\t\t\t// Set the canvas size using calculated size\n\t\t\tinner.attr(WIDTH, newSize[0] * SCALE).attr(HEIGHT, newSize[1] * SCALE);\n\t\t\tinner.css(WIDTH, newSize[0]).css(HEIGHT, newSize[1]);\n\n\t\t\t// Draw the outer-stroke tip\n\t\t\tthis._drawCoords(context, bigCoords);\n\t\t\tcontext.fillStyle = color[1];\n\t\t\tcontext.fill();\n\n\t\t\t// Draw the actual tip\n\t\t\tcontext.translate(translate[0] * SCALE, translate[1] * SCALE);\n\t\t\tthis._drawCoords(context, coords);\n\t\t\tcontext.fillStyle = color[0];\n\t\t\tcontext.fill();\n\t\t}\n\n\t\t// VML (IE Proprietary implementation)\n\t\telse {\n\t\t\t// Calculate coordinates\n\t\t\tcoords = this._calculateTip(mimic);\n\n\t\t\t// Setup coordinates string\n\t\t\tcoords = 'm' + coords[0] + ',' + coords[1] + ' l' + coords[2] +\n\t\t\t\t',' + coords[3] + ' ' + coords[4] + ',' + coords[5] + ' xe';\n\n\t\t\t// Setup VML-specific offset for pixel-perfection\n\t\t\ttranslate[2] = border && /^(r|b)/i.test(corner.string()) ?\n\t\t\t\tBROWSER.ie === 8 ? 2 : 1 : 0;\n\n\t\t\t// Set initial CSS\n\t\t\tinner.css({\n\t\t\t\tcoordsize: (newSize[0]+border) + ' ' + (newSize[1]+border),\n\t\t\t\tantialias: ''+(mimic.string().indexOf(CENTER) > -1),\n\t\t\t\tleft: translate[0] - (translate[2] * Number(precedance === X)),\n\t\t\t\ttop: translate[1] - (translate[2] * Number(precedance === Y)),\n\t\t\t\twidth: newSize[0] + border,\n\t\t\t\theight: newSize[1] + border\n\t\t\t})\n\t\t\t.each(function(i) {\n\t\t\t\tvar $this = $(this);\n\n\t\t\t\t// Set shape specific attributes\n\t\t\t\t$this[ $this.prop ? 'prop' : 'attr' ]({\n\t\t\t\t\tcoordsize: (newSize[0]+border) + ' ' + (newSize[1]+border),\n\t\t\t\t\tpath: coords,\n\t\t\t\t\tfillcolor: color[0],\n\t\t\t\t\tfilled: !!i,\n\t\t\t\t\tstroked: !i\n\t\t\t\t})\n\t\t\t\t.toggle(!!(border || i));\n\n\t\t\t\t// Check if border is enabled and add stroke element\n\t\t\t\t!i && $this.html( createVML(\n\t\t\t\t\t'stroke', 'weight=\"'+(border*2)+'px\" color=\"'+color[1]+'\" miterlimit=\"1000\" joinstyle=\"miter\"'\n\t\t\t\t) );\n\t\t\t});\n\t\t}\n\n\t\t// Opera bug #357 - Incorrect tip position\n\t\t// https://github.com/Craga89/qTip2/issues/367\n\t\twindow.opera && setTimeout(function() {\n\t\t\telements.tip.css({\n\t\t\t\tdisplay: 'inline-block',\n\t\t\t\tvisibility: 'visible'\n\t\t\t});\n\t\t}, 1);\n\n\t\t// Position if needed\n\t\tif(position !== FALSE) { this.calculate(corner, newSize); }\n\t},\n\n\tcalculate: function(corner, size) {\n\t\tif(!this.enabled) { return FALSE; }\n\n\t\tvar self = this,\n\t\t\telements = this.qtip.elements,\n\t\t\ttip = this.element,\n\t\t\tuserOffset = this.options.offset,\n\t\t\tisWidget = elements.tooltip.hasClass('ui-widget'),\n\t\t\tposition = { },\n\t\t\tprecedance, corners;\n\n\t\t// Inherit corner if not provided\n\t\tcorner = corner || this.corner;\n\t\tprecedance = corner.precedance;\n\n\t\t// Determine which tip dimension to use for adjustment\n\t\tsize = size || this._calculateSize(corner);\n\n\t\t// Setup corners and offset array\n\t\tcorners = [ corner.x, corner.y ];\n\t\tif(precedance === X) { corners.reverse(); }\n\n\t\t// Calculate tip position\n\t\t$.each(corners, function(i, side) {\n\t\t\tvar b, bc, br;\n\n\t\t\tif(side === CENTER) {\n\t\t\t\tb = precedance === Y ? LEFT : TOP;\n\t\t\t\tposition[ b ] = '50%';\n\t\t\t\tposition[MARGIN+'-' + b] = -Math.round(size[ precedance === Y ? 0 : 1 ] / 2) + userOffset;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tb = self._parseWidth(corner, side, elements.tooltip);\n\t\t\t\tbc = self._parseWidth(corner, side, elements.content);\n\t\t\t\tbr = self._parseRadius(corner);\n\n\t\t\t\tposition[ side ] = Math.max(-self.border, i ? bc : (userOffset + (br > b ? br : -b)));\n\t\t\t}\n\t\t});\n\n\t\t// Adjust for tip size\n\t\tposition[ corner[precedance] ] -= size[ precedance === X ? 0 : 1 ];\n\n\t\t// Set and return new position\n\t\ttip.css({ margin: '', top: '', bottom: '', left: '', right: '' }).css(position);\n\t\treturn position;\n\t},\n\n\treposition: function(event, api, pos, viewport) {\n\t\tif(!this.enabled) { return; }\n\n\t\tvar cache = api.cache,\n\t\t\tnewCorner = this.corner.clone(),\n\t\t\tadjust = pos.adjusted,\n\t\t\tmethod = api.options.position.adjust.method.split(' '),\n\t\t\thorizontal = method[0],\n\t\t\tvertical = method[1] || method[0],\n\t\t\tshift = { left: FALSE, top: FALSE, x: 0, y: 0 },\n\t\t\toffset, css = {}, props;\n\n\t\tfunction shiftflip(direction, precedance, popposite, side, opposite) {\n\t\t\t// Horizontal - Shift or flip method\n\t\t\tif(direction === SHIFT && newCorner.precedance === precedance && adjust[side] && newCorner[popposite] !== CENTER) {\n\t\t\t\tnewCorner.precedance = newCorner.precedance === X ? Y : X;\n\t\t\t}\n\t\t\telse if(direction !== SHIFT && adjust[side]){\n\t\t\t\tnewCorner[precedance] = newCorner[precedance] === CENTER ?\n\t\t\t\t\t(adjust[side] > 0 ? side : opposite) : (newCorner[precedance] === side ? opposite : side);\n\t\t\t}\n\t\t}\n\n\t\tfunction shiftonly(xy, side, opposite) {\n\t\t\tif(newCorner[xy] === CENTER) {\n\t\t\t\tcss[MARGIN+'-'+side] = shift[xy] = offset[MARGIN+'-'+side] - adjust[side];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tprops = offset[opposite] !== undefined ?\n\t\t\t\t\t[ adjust[side], -offset[side] ] : [ -adjust[side], offset[side] ];\n\n\t\t\t\tif( (shift[xy] = Math.max(props[0], props[1])) > props[0] ) {\n\t\t\t\t\tpos[side] -= adjust[side];\n\t\t\t\t\tshift[side] = FALSE;\n\t\t\t\t}\n\n\t\t\t\tcss[ offset[opposite] !== undefined ? opposite : side ] = shift[xy];\n\t\t\t}\n\t\t}\n\n\t\t// If our tip position isn't fixed e.g. doesn't adjust with viewport...\n\t\tif(this.corner.fixed !== TRUE) {\n\t\t\t// Perform shift/flip adjustments\n\t\t\tshiftflip(horizontal, X, Y, LEFT, RIGHT);\n\t\t\tshiftflip(vertical, Y, X, TOP, BOTTOM);\n\n\t\t\t// Update and redraw the tip if needed (check cached details of last drawn tip)\n\t\t\tif(newCorner.string() !== cache.corner.string() || cache.cornerTop !== adjust.top || cache.cornerLeft !== adjust.left) {\n\t\t\t\tthis.update(newCorner, FALSE);\n\t\t\t}\n\t\t}\n\n\t\t// Setup tip offset properties\n\t\toffset = this.calculate(newCorner);\n\n\t\t// Readjust offset object to make it left/top\n\t\tif(offset.right !== undefined) { offset.left = -offset.right; }\n\t\tif(offset.bottom !== undefined) { offset.top = -offset.bottom; }\n\t\toffset.user = this.offset;\n\n\t\t// Perform shift adjustments\n\t\tif(shift.left = (horizontal === SHIFT && !!adjust.left)) { shiftonly(X, LEFT, RIGHT); }\n\t\tif(shift.top = (vertical === SHIFT && !!adjust.top)) { shiftonly(Y, TOP, BOTTOM); }\n\n\t\t/*\n\t\t* If the tip is adjusted in both dimensions, or in a\n\t\t* direction that would cause it to be anywhere but the\n\t\t* outer border, hide it!\n\t\t*/\n\t\tthis.element.css(css).toggle(\n\t\t\t!((shift.x && shift.y) || (newCorner.x === CENTER && shift.y) || (newCorner.y === CENTER && shift.x))\n\t\t);\n\n\t\t// Adjust position to accomodate tip dimensions\n\t\tpos.left -= offset.left.charAt ? offset.user :\n\t\t\thorizontal !== SHIFT || shift.top || !shift.left && !shift.top ? offset.left + this.border : 0;\n\t\tpos.top -= offset.top.charAt ? offset.user :\n\t\t\tvertical !== SHIFT || shift.left || !shift.left && !shift.top ? offset.top + this.border : 0;\n\n\t\t// Cache details\n\t\tcache.cornerLeft = adjust.left; cache.cornerTop = adjust.top;\n\t\tcache.corner = newCorner.clone();\n\t},\n\n\tdestroy: function() {\n\t\t// Unbind events\n\t\tthis.qtip._unbind(this.qtip.tooltip, this._ns);\n\n\t\t// Remove the tip element(s)\n\t\tif(this.qtip.elements.tip) {\n\t\t\tthis.qtip.elements.tip.find('*')\n\t\t\t\t.remove().end().remove();\n\t\t}\n\t}\n});\n\nTIP = PLUGINS.tip = function(api) {\n\treturn new Tip(api, api.options.style.tip);\n};\n\n// Initialize tip on render\nTIP.initialize = 'render';\n\n// Setup plugin sanitization options\nTIP.sanitize = function(options) {\n\tif(options.style && 'tip' in options.style) {\n\t\tvar opts = options.style.tip;\n\t\tif(typeof opts !== 'object') { opts = options.style.tip = { corner: opts }; }\n\t\tif(!(/string|boolean/i).test(typeof opts.corner)) { opts.corner = TRUE; }\n\t}\n};\n\n// Add new option checks for the plugin\nCHECKS.tip = {\n\t'^position.my|style.tip.(corner|mimic|border)$': function() {\n\t\t// Make sure a tip can be drawn\n\t\tthis.create();\n\n\t\t// Reposition the tooltip\n\t\tthis.qtip.reposition();\n\t},\n\t'^style.tip.(height|width)$': function(obj) {\n\t\t// Re-set dimensions and redraw the tip\n\t\tthis.size = [ obj.width, obj.height ];\n\t\tthis.update();\n\n\t\t// Reposition the tooltip\n\t\tthis.qtip.reposition();\n\t},\n\t'^content.title|style.(classes|widget)$': function() {\n\t\tthis.update();\n\t}\n};\n\n// Extend original qTip defaults\n$.extend(TRUE, QTIP.defaults, {\n\tstyle: {\n\t\ttip: {\n\t\t\tcorner: TRUE,\n\t\t\tmimic: FALSE,\n\t\t\twidth: 6,\n\t\t\theight: 6,\n\t\t\tborder: TRUE,\n\t\t\toffset: 0\n\t\t}\n\t}\n});\n;PLUGINS.viewport = function(api, position, posOptions, targetWidth, targetHeight, elemWidth, elemHeight)\n{\n\tvar target = posOptions.target,\n\t\ttooltip = api.elements.tooltip,\n\t\tmy = posOptions.my,\n\t\tat = posOptions.at,\n\t\tadjust = posOptions.adjust,\n\t\tmethod = adjust.method.split(' '),\n\t\tmethodX = method[0],\n\t\tmethodY = method[1] || method[0],\n\t\tviewport = posOptions.viewport,\n\t\tcontainer = posOptions.container,\n\t\tcache = api.cache,\n\t\tadjusted = { left: 0, top: 0 },\n\t\tfixed, newMy, containerOffset, containerStatic,\n\t\tviewportWidth, viewportHeight, viewportScroll, viewportOffset;\n\n\t// If viewport is not a jQuery element, or it's the window/document, or no adjustment method is used... return\n\tif(!viewport.jquery || target[0] === window || target[0] === document.body || adjust.method === 'none') {\n\t\treturn adjusted;\n\t}\n\n\t// Cach container details\n\tcontainerOffset = container.offset() || adjusted;\n\tcontainerStatic = container.css('position') === 'static';\n\n\t// Cache our viewport details\n\tfixed = tooltip.css('position') === 'fixed';\n\tviewportWidth = viewport[0] === window ? viewport.width() : viewport.outerWidth(FALSE);\n\tviewportHeight = viewport[0] === window ? viewport.height() : viewport.outerHeight(FALSE);\n\tviewportScroll = { left: fixed ? 0 : viewport.scrollLeft(), top: fixed ? 0 : viewport.scrollTop() };\n\tviewportOffset = viewport.offset() || adjusted;\n\n\t// Generic calculation method\n\tfunction calculate(side, otherSide, type, adjust, side1, side2, lengthName, targetLength, elemLength) {\n\t\tvar initialPos = position[side1],\n\t\t\tmySide = my[side],\n\t\t\tatSide = at[side],\n\t\t\tisShift = type === SHIFT,\n\t\t\tmyLength = mySide === side1 ? elemLength : mySide === side2 ? -elemLength : -elemLength / 2,\n\t\t\tatLength = atSide === side1 ? targetLength : atSide === side2 ? -targetLength : -targetLength / 2,\n\t\t\tsideOffset = viewportScroll[side1] + viewportOffset[side1] - (containerStatic ? 0 : containerOffset[side1]),\n\t\t\toverflow1 = sideOffset - initialPos,\n\t\t\toverflow2 = initialPos + elemLength - (lengthName === WIDTH ? viewportWidth : viewportHeight) - sideOffset,\n\t\t\toffset = myLength - (my.precedance === side || mySide === my[otherSide] ? atLength : 0) - (atSide === CENTER ? targetLength / 2 : 0);\n\n\t\t// shift\n\t\tif(isShift) {\n\t\t\toffset = (mySide === side1 ? 1 : -1) * myLength;\n\n\t\t\t// Adjust position but keep it within viewport dimensions\n\t\t\tposition[side1] += overflow1 > 0 ? overflow1 : overflow2 > 0 ? -overflow2 : 0;\n\t\t\tposition[side1] = Math.max(\n\t\t\t\t-containerOffset[side1] + viewportOffset[side1],\n\t\t\t\tinitialPos - offset,\n\t\t\t\tMath.min(\n\t\t\t\t\tMath.max(\n\t\t\t\t\t\t-containerOffset[side1] + viewportOffset[side1] + (lengthName === WIDTH ? viewportWidth : viewportHeight),\n\t\t\t\t\t\tinitialPos + offset\n\t\t\t\t\t),\n\t\t\t\t\tposition[side1],\n\n\t\t\t\t\t// Make sure we don't adjust complete off the element when using 'center'\n\t\t\t\t\tmySide === 'center' ? initialPos - myLength : 1E9\n\t\t\t\t)\n\t\t\t);\n\n\t\t}\n\n\t\t// flip/flipinvert\n\t\telse {\n\t\t\t// Update adjustment amount depending on if using flipinvert or flip\n\t\t\tadjust *= (type === FLIPINVERT ? 2 : 0);\n\n\t\t\t// Check for overflow on the left/top\n\t\t\tif(overflow1 > 0 && (mySide !== side1 || overflow2 > 0)) {\n\t\t\t\tposition[side1] -= offset + adjust;\n\t\t\t\tnewMy.invert(side, side1);\n\t\t\t}\n\n\t\t\t// Check for overflow on the bottom/right\n\t\t\telse if(overflow2 > 0 && (mySide !== side2 || overflow1 > 0) ) {\n\t\t\t\tposition[side1] -= (mySide === CENTER ? -offset : offset) + adjust;\n\t\t\t\tnewMy.invert(side, side2);\n\t\t\t}\n\n\t\t\t// Make sure we haven't made things worse with the adjustment and reset if so\n\t\t\tif(position[side1] < viewportScroll && -position[side1] > overflow2) {\n\t\t\t\tposition[side1] = initialPos; newMy = my.clone();\n\t\t\t}\n\t\t}\n\n\t\treturn position[side1] - initialPos;\n\t}\n\n\t// Set newMy if using flip or flipinvert methods\n\tif(methodX !== 'shift' || methodY !== 'shift') { newMy = my.clone(); }\n\n\t// Adjust position based onviewport and adjustment options\n\tadjusted = {\n\t\tleft: methodX !== 'none' ? calculate( X, Y, methodX, adjust.x, LEFT, RIGHT, WIDTH, targetWidth, elemWidth ) : 0,\n\t\ttop: methodY !== 'none' ? calculate( Y, X, methodY, adjust.y, TOP, BOTTOM, HEIGHT, targetHeight, elemHeight ) : 0,\n\t\tmy: newMy\n\t};\n\n\treturn adjusted;\n};\n;PLUGINS.polys = {\n\t// POLY area coordinate calculator\n\t//\tSpecial thanks to Ed Cradock for helping out with this.\n\t//\tUses a binary search algorithm to find suitable coordinates.\n\tpolygon: function(baseCoords, corner) {\n\t\tvar result = {\n\t\t\twidth: 0, height: 0,\n\t\t\tposition: {\n\t\t\t\ttop: 1e10, right: 0,\n\t\t\t\tbottom: 0, left: 1e10\n\t\t\t},\n\t\t\tadjustable: FALSE\n\t\t},\n\t\ti = 0, next,\n\t\tcoords = [],\n\t\tcompareX = 1, compareY = 1,\n\t\trealX = 0, realY = 0,\n\t\tnewWidth, newHeight;\n\n\t\t// First pass, sanitize coords and determine outer edges\n\t\ti = baseCoords.length; while(i--) {\n\t\t\tnext = [ parseInt(baseCoords[--i], 10), parseInt(baseCoords[i+1], 10) ];\n\n\t\t\tif(next[0] > result.position.right){ result.position.right = next[0]; }\n\t\t\tif(next[0] < result.position.left){ result.position.left = next[0]; }\n\t\t\tif(next[1] > result.position.bottom){ result.position.bottom = next[1]; }\n\t\t\tif(next[1] < result.position.top){ result.position.top = next[1]; }\n\n\t\t\tcoords.push(next);\n\t\t}\n\n\t\t// Calculate height and width from outer edges\n\t\tnewWidth = result.width = Math.abs(result.position.right - result.position.left);\n\t\tnewHeight = result.height = Math.abs(result.position.bottom - result.position.top);\n\n\t\t// If it's the center corner...\n\t\tif(corner.abbrev() === 'c') {\n\t\t\tresult.position = {\n\t\t\t\tleft: result.position.left + (result.width / 2),\n\t\t\t\ttop: result.position.top + (result.height / 2)\n\t\t\t};\n\t\t}\n\t\telse {\n\t\t\t// Second pass, use a binary search algorithm to locate most suitable coordinate\n\t\t\twhile(newWidth > 0 && newHeight > 0 && compareX > 0 && compareY > 0)\n\t\t\t{\n\t\t\t\tnewWidth = Math.floor(newWidth / 2);\n\t\t\t\tnewHeight = Math.floor(newHeight / 2);\n\n\t\t\t\tif(corner.x === LEFT){ compareX = newWidth; }\n\t\t\t\telse if(corner.x === RIGHT){ compareX = result.width - newWidth; }\n\t\t\t\telse{ compareX += Math.floor(newWidth / 2); }\n\n\t\t\t\tif(corner.y === TOP){ compareY = newHeight; }\n\t\t\t\telse if(corner.y === BOTTOM){ compareY = result.height - newHeight; }\n\t\t\t\telse{ compareY += Math.floor(newHeight / 2); }\n\n\t\t\t\ti = coords.length; while(i--)\n\t\t\t\t{\n\t\t\t\t\tif(coords.length < 2){ break; }\n\n\t\t\t\t\trealX = coords[i][0] - result.position.left;\n\t\t\t\t\trealY = coords[i][1] - result.position.top;\n\n\t\t\t\t\tif((corner.x === LEFT && realX >= compareX) ||\n\t\t\t\t\t(corner.x === RIGHT && realX <= compareX) ||\n\t\t\t\t\t(corner.x === CENTER && (realX < compareX || realX > (result.width - compareX))) ||\n\t\t\t\t\t(corner.y === TOP && realY >= compareY) ||\n\t\t\t\t\t(corner.y === BOTTOM && realY <= compareY) ||\n\t\t\t\t\t(corner.y === CENTER && (realY < compareY || realY > (result.height - compareY)))) {\n\t\t\t\t\t\tcoords.splice(i, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tresult.position = { left: coords[0][0], top: coords[0][1] };\n\t\t}\n\n\t\treturn result;\n\t},\n\n\trect: function(ax, ay, bx, by) {\n\t\treturn {\n\t\t\twidth: Math.abs(bx - ax),\n\t\t\theight: Math.abs(by - ay),\n\t\t\tposition: {\n\t\t\t\tleft: Math.min(ax, bx),\n\t\t\t\ttop: Math.min(ay, by)\n\t\t\t}\n\t\t};\n\t},\n\n\t_angles: {\n\t\ttc: 3 / 2, tr: 7 / 4, tl: 5 / 4,\n\t\tbc: 1 / 2, br: 1 / 4, bl: 3 / 4,\n\t\trc: 2, lc: 1, c: 0\n\t},\n\tellipse: function(cx, cy, rx, ry, corner) {\n\t\tvar c = PLUGINS.polys._angles[ corner.abbrev() ],\n\t\t\trxc = c === 0 ? 0 : rx * Math.cos( c * Math.PI ),\n\t\t\trys = ry * Math.sin( c * Math.PI );\n\n\t\treturn {\n\t\t\twidth: (rx * 2) - Math.abs(rxc),\n\t\t\theight: (ry * 2) - Math.abs(rys),\n\t\t\tposition: {\n\t\t\t\tleft: cx + rxc,\n\t\t\t\ttop: cy + rys\n\t\t\t},\n\t\t\tadjustable: FALSE\n\t\t};\n\t},\n\tcircle: function(cx, cy, r, corner) {\n\t\treturn PLUGINS.polys.ellipse(cx, cy, r, r, corner);\n\t}\n};\n;PLUGINS.svg = function(api, svg, corner)\n{\n\tvar doc = $(document),\n\t\telem = svg[0],\n\t\troot = $(elem.ownerSVGElement),\n\t\townerDocument = elem.ownerDocument,\n\t\tstrokeWidth2 = (parseInt(svg.css('stroke-width'), 10) || 0) / 2,\n\t\tframeOffset, mtx, transformed, viewBox,\n\t\tlen, next, i, points,\n\t\tresult, position, dimensions;\n\n\t// Ascend the parentNode chain until we find an element with getBBox()\n\twhile(!elem.getBBox) { elem = elem.parentNode; }\n\tif(!elem.getBBox || !elem.parentNode) { return FALSE; }\n\n\t// Determine which shape calculation to use\n\tswitch(elem.nodeName) {\n\t\tcase 'ellipse':\n\t\tcase 'circle':\n\t\t\tresult = PLUGINS.polys.ellipse(\n\t\t\t\telem.cx.baseVal.value,\n\t\t\t\telem.cy.baseVal.value,\n\t\t\t\t(elem.rx || elem.r).baseVal.value + strokeWidth2,\n\t\t\t\t(elem.ry || elem.r).baseVal.value + strokeWidth2,\n\t\t\t\tcorner\n\t\t\t);\n\t\tbreak;\n\n\t\tcase 'line':\n\t\tcase 'polygon':\n\t\tcase 'polyline':\n\t\t\t// Determine points object (line has none, so mimic using array)\n\t\t\tpoints = elem.points || [\n\t\t\t\t{ x: elem.x1.baseVal.value, y: elem.y1.baseVal.value },\n\t\t\t\t{ x: elem.x2.baseVal.value, y: elem.y2.baseVal.value }\n\t\t\t];\n\n\t\t\tfor(result = [], i = -1, len = points.numberOfItems || points.length; ++i < len;) {\n\t\t\t\tnext = points.getItem ? points.getItem(i) : points[i];\n\t\t\t\tresult.push.apply(result, [next.x, next.y]);\n\t\t\t}\n\n\t\t\tresult = PLUGINS.polys.polygon(result, corner);\n\t\tbreak;\n\n\t\t// Unknown shape or rectangle? Use bounding box\n\t\tdefault:\n\t\t\tresult = elem.getBBox();\n\t\t\tresult = {\n\t\t\t\twidth: result.width,\n\t\t\t\theight: result.height,\n\t\t\t\tposition: {\n\t\t\t\t\tleft: result.x,\n\t\t\t\t\ttop: result.y\n\t\t\t\t}\n\t\t\t};\n\t\tbreak;\n\t}\n\n\t// Shortcut assignments\n\tposition = result.position;\n\troot = root[0];\n\n\t// Convert position into a pixel value\n\tif(root.createSVGPoint) {\n\t\tmtx = elem.getScreenCTM();\n\t\tpoints = root.createSVGPoint();\n\n\t\tpoints.x = position.left;\n\t\tpoints.y = position.top;\n\t\ttransformed = points.matrixTransform( mtx );\n\t\tposition.left = transformed.x;\n\t\tposition.top = transformed.y;\n\t}\n\n\t// Check the element is not in a child document, and if so, adjust for frame elements offset\n\tif(ownerDocument !== document && api.position.target !== 'mouse') {\n\t\tframeOffset = $((ownerDocument.defaultView || ownerDocument.parentWindow).frameElement).offset();\n\t\tif(frameOffset) {\n\t\t\tposition.left += frameOffset.left;\n\t\t\tposition.top += frameOffset.top;\n\t\t}\n\t}\n\n\t// Adjust by scroll offset of owner document\n\townerDocument = $(ownerDocument);\n\tposition.left += ownerDocument.scrollLeft();\n\tposition.top += ownerDocument.scrollTop();\n\n\treturn result;\n};\n;var MODAL, OVERLAY,\n\tMODALCLASS = 'qtip-modal',\n\tMODALSELECTOR = '.'+MODALCLASS;\n\nOVERLAY = function()\n{\n\tvar self = this,\n\t\tfocusableElems = {},\n\t\tcurrent, onLast,\n\t\tprevState, elem;\n\n\t// Modified code from jQuery UI 1.10.0 source\n\t// http://code.jquery.com/ui/1.10.0/jquery-ui.js\n\tfunction focusable(element) {\n\t\t// Use the defined focusable checker when possible\n\t\tif($.expr[':'].focusable) { return $.expr[':'].focusable; }\n\n\t\tvar isTabIndexNotNaN = !isNaN($.attr(element, 'tabindex')),\n\t\t\tnodeName = element.nodeName && element.nodeName.toLowerCase(),\n\t\t\tmap, mapName, img;\n\n\t\tif('area' === nodeName) {\n\t\t\tmap = element.parentNode;\n\t\t\tmapName = map.name;\n\t\t\tif(!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\timg = $('img[usemap=#' + mapName + ']')[0];\n\t\t\treturn !!img && img.is(':visible');\n\t\t}\n\t\treturn (/input|select|textarea|button|object/.test( nodeName ) ?\n\t\t\t\t!element.disabled :\n\t\t\t\t'a' === nodeName ?\n\t\t\t\t\telement.href || isTabIndexNotNaN :\n\t\t\t\t\tisTabIndexNotNaN\n\t\t\t);\n\t}\n\n\t// Focus inputs using cached focusable elements (see update())\n\tfunction focusInputs(blurElems) {\n\t\t// Blurring body element in IE causes window.open windows to unfocus!\n\t\tif(focusableElems.length < 1 && blurElems.length) { blurElems.not('body').blur(); }\n\n\t\t// Focus the inputs\n\t\telse { focusableElems.first().focus(); }\n\t}\n\n\t// Steal focus from elements outside tooltip\n\tfunction stealFocus(event) {\n\t\tif(!elem.is(':visible')) { return; }\n\n\t\tvar target = $(event.target),\n\t\t\ttooltip = current.tooltip,\n\t\t\tcontainer = target.closest(SELECTOR),\n\t\t\ttargetOnTop;\n\n\t\t// Determine if input container target is above this\n\t\ttargetOnTop = container.length < 1 ? FALSE :\n\t\t\t(parseInt(container[0].style.zIndex, 10) > parseInt(tooltip[0].style.zIndex, 10));\n\n\t\t// If we're showing a modal, but focus has landed on an input below\n\t\t// this modal, divert focus to the first visible input in this modal\n\t\t// or if we can't find one... the tooltip itself\n\t\tif(!targetOnTop && target.closest(SELECTOR)[0] !== tooltip[0]) {\n\t\t\tfocusInputs(target);\n\t\t}\n\n\t\t// Detect when we leave the last focusable element...\n\t\tonLast = event.target === focusableElems[focusableElems.length - 1];\n\t}\n\n\t$.extend(self, {\n\t\tinit: function() {\n\t\t\t// Create document overlay\n\t\t\telem = self.elem = $('<div />', {\n\t\t\t\tid: 'qtip-overlay',\n\t\t\t\thtml: '<div></div>',\n\t\t\t\tmousedown: function() { return FALSE; }\n\t\t\t})\n\t\t\t.hide();\n\n\t\t\t// Make sure we can't focus anything outside the tooltip\n\t\t\t$(document.body).bind('focusin'+MODALSELECTOR, stealFocus);\n\n\t\t\t// Apply keyboard \"Escape key\" close handler\n\t\t\t$(document).bind('keydown'+MODALSELECTOR, function(event) {\n\t\t\t\tif(current && current.options.show.modal.escape && event.keyCode === 27) {\n\t\t\t\t\tcurrent.hide(event);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Apply click handler for blur option\n\t\t\telem.bind('click'+MODALSELECTOR, function(event) {\n\t\t\t\tif(current && current.options.show.modal.blur) {\n\t\t\t\t\tcurrent.hide(event);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn self;\n\t\t},\n\n\t\tupdate: function(api) {\n\t\t\t// Update current API reference\n\t\t\tcurrent = api;\n\n\t\t\t// Update focusable elements if enabled\n\t\t\tif(api.options.show.modal.stealfocus !== FALSE) {\n\t\t\t\tfocusableElems = api.tooltip.find('*').filter(function() {\n\t\t\t\t\treturn focusable(this);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse { focusableElems = []; }\n\t\t},\n\n\t\ttoggle: function(api, state, duration) {\n\t\t\tvar docBody = $(document.body),\n\t\t\t\ttooltip = api.tooltip,\n\t\t\t\toptions = api.options.show.modal,\n\t\t\t\teffect = options.effect,\n\t\t\t\ttype = state ? 'show': 'hide',\n\t\t\t\tvisible = elem.is(':visible'),\n\t\t\t\tvisibleModals = $(MODALSELECTOR).filter(':visible:not(:animated)').not(tooltip),\n\t\t\t\tzindex;\n\n\t\t\t// Set active tooltip API reference\n\t\t\tself.update(api);\n\n\t\t\t// If the modal can steal the focus...\n\t\t\t// Blur the current item and focus anything in the modal we an\n\t\t\tif(state && options.stealfocus !== FALSE) {\n\t\t\t\tfocusInputs( $(':focus') );\n\t\t\t}\n\n\t\t\t// Toggle backdrop cursor style on show\n\t\t\telem.toggleClass('blurs', options.blur);\n\n\t\t\t// Append to body on show\n\t\t\tif(state) {\n\t\t\t\telem.appendTo(document.body);\n\t\t\t}\n\n\t\t\t// Prevent modal from conflicting with show.solo, and don't hide backdrop is other modals are visible\n\t\t\tif((elem.is(':animated') && visible === state && prevState !== FALSE) || (!state && visibleModals.length)) {\n\t\t\t\treturn self;\n\t\t\t}\n\n\t\t\t// Stop all animations\n\t\t\telem.stop(TRUE, FALSE);\n\n\t\t\t// Use custom function if provided\n\t\t\tif($.isFunction(effect)) {\n\t\t\t\teffect.call(elem, state);\n\t\t\t}\n\n\t\t\t// If no effect type is supplied, use a simple toggle\n\t\t\telse if(effect === FALSE) {\n\t\t\t\telem[ type ]();\n\t\t\t}\n\n\t\t\t// Use basic fade function\n\t\t\telse {\n\t\t\t\telem.fadeTo( parseInt(duration, 10) || 90, state ? 1 : 0, function() {\n\t\t\t\t\tif(!state) { elem.hide(); }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Reset position and detach from body on hide\n\t\t\tif(!state) {\n\t\t\t\telem.queue(function(next) {\n\t\t\t\t\telem.css({ left: '', top: '' });\n\t\t\t\t\tif(!$(MODALSELECTOR).length) { elem.detach(); }\n\t\t\t\t\tnext();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Cache the state\n\t\t\tprevState = state;\n\n\t\t\t// If the tooltip is destroyed, set reference to null\n\t\t\tif(current.destroyed) { current = NULL; }\n\n\t\t\treturn self;\n\t\t}\n\t});\n\n\tself.init();\n};\nOVERLAY = new OVERLAY();\n\nfunction Modal(api, options) {\n\tthis.options = options;\n\tthis._ns = '-modal';\n\n\tthis.init( (this.qtip = api) );\n}\n\n$.extend(Modal.prototype, {\n\tinit: function(qtip) {\n\t\tvar tooltip = qtip.tooltip;\n\n\t\t// If modal is disabled... return\n\t\tif(!this.options.on) { return this; }\n\n\t\t// Set overlay reference\n\t\tqtip.elements.overlay = OVERLAY.elem;\n\n\t\t// Add unique attribute so we can grab modal tooltips easily via a SELECTOR, and set z-index\n\t\ttooltip.addClass(MODALCLASS).css('z-index', QTIP.modal_zindex + $(MODALSELECTOR).length);\n\n\t\t// Apply our show/hide/focus modal events\n\t\tqtip._bind(tooltip, ['tooltipshow', 'tooltiphide'], function(event, api, duration) {\n\t\t\tvar oEvent = event.originalEvent;\n\n\t\t\t// Make sure mouseout doesn't trigger a hide when showing the modal and mousing onto backdrop\n\t\t\tif(event.target === tooltip[0]) {\n\t\t\t\tif(oEvent && event.type === 'tooltiphide' && /mouse(leave|enter)/.test(oEvent.type) && $(oEvent.relatedTarget).closest(OVERLAY.elem[0]).length) {\n\t\t\t\t\ttry { event.preventDefault(); } catch(e) {}\n\t\t\t\t}\n\t\t\t\telse if(!oEvent || (oEvent && oEvent.type !== 'tooltipsolo')) {\n\t\t\t\t\tthis.toggle(event, event.type === 'tooltipshow', duration);\n\t\t\t\t}\n\t\t\t}\n\t\t}, this._ns, this);\n\n\t\t// Adjust modal z-index on tooltip focus\n\t\tqtip._bind(tooltip, 'tooltipfocus', function(event, api) {\n\t\t\t// If focus was cancelled before it reached us, don't do anything\n\t\t\tif(event.isDefaultPrevented() || event.target !== tooltip[0]) { return; }\n\n\t\t\tvar qtips = $(MODALSELECTOR),\n\n\t\t\t// Keep the modal's lower than other, regular qtips\n\t\t\tnewIndex = QTIP.modal_zindex + qtips.length,\n\t\t\tcurIndex = parseInt(tooltip[0].style.zIndex, 10);\n\n\t\t\t// Set overlay z-index\n\t\t\tOVERLAY.elem[0].style.zIndex = newIndex - 1;\n\n\t\t\t// Reduce modal z-index's and keep them properly ordered\n\t\t\tqtips.each(function() {\n\t\t\t\tif(this.style.zIndex > curIndex) {\n\t\t\t\t\tthis.style.zIndex -= 1;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Fire blur event for focused tooltip\n\t\t\tqtips.filter('.' + CLASS_FOCUS).qtip('blur', event.originalEvent);\n\n\t\t\t// Set the new z-index\n\t\t\ttooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex;\n\n\t\t\t// Set current\n\t\t\tOVERLAY.update(api);\n\n\t\t\t// Prevent default handling\n\t\t\ttry { event.preventDefault(); } catch(e) {}\n\t\t}, this._ns, this);\n\n\t\t// Focus any other visible modals when this one hides\n\t\tqtip._bind(tooltip, 'tooltiphide', function(event) {\n\t\t\tif(event.target === tooltip[0]) {\n\t\t\t\t$(MODALSELECTOR).filter(':visible').not(tooltip).last().qtip('focus', event);\n\t\t\t}\n\t\t}, this._ns, this);\n\t},\n\n\ttoggle: function(event, state, duration) {\n\t\t// Make sure default event hasn't been prevented\n\t\tif(event && event.isDefaultPrevented()) { return this; }\n\n\t\t// Toggle it\n\t\tOVERLAY.toggle(this.qtip, !!state, duration);\n\t},\n\n\tdestroy: function() {\n\t\t// Remove modal class\n\t\tthis.qtip.tooltip.removeClass(MODALCLASS);\n\n\t\t// Remove bound events\n\t\tthis.qtip._unbind(this.qtip.tooltip, this._ns);\n\n\t\t// Delete element reference\n\t\tOVERLAY.toggle(this.qtip, FALSE);\n\t\tdelete this.qtip.elements.overlay;\n\t}\n});\n\n\nMODAL = PLUGINS.modal = function(api) {\n\treturn new Modal(api, api.options.show.modal);\n};\n\n// Setup sanitiztion rules\nMODAL.sanitize = function(opts) {\n\tif(opts.show) {\n\t\tif(typeof opts.show.modal !== 'object') { opts.show.modal = { on: !!opts.show.modal }; }\n\t\telse if(typeof opts.show.modal.on === 'undefined') { opts.show.modal.on = TRUE; }\n\t}\n};\n\n// Base z-index for all modal tooltips (use qTip core z-index as a base)\nQTIP.modal_zindex = QTIP.zindex - 200;\n\n// Plugin needs to be initialized on render\nMODAL.initialize = 'render';\n\n// Setup option set checks\nCHECKS.modal = {\n\t'^show.modal.(on|blur)$': function() {\n\t\t// Initialise\n\t\tthis.destroy();\n\t\tthis.init();\n\n\t\t// Show the modal if not visible already and tooltip is visible\n\t\tthis.qtip.elems.overlay.toggle(\n\t\t\tthis.qtip.tooltip[0].offsetWidth > 0\n\t\t);\n\t}\n};\n\n// Extend original api defaults\n$.extend(TRUE, QTIP.defaults, {\n\tshow: {\n\t\tmodal: {\n\t\t\ton: FALSE,\n\t\t\teffect: TRUE,\n\t\t\tblur: TRUE,\n\t\t\tstealfocus: TRUE,\n\t\t\tescape: TRUE\n\t\t}\n\t}\n});\n;}));\n}( window, document ));\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('ui/tooltip',['jquery', 'lodash', 'core/dataattrhandler', 'qtip'], function($, _, DataAttrHandler){\n 'use strict';\n\n var themes = ['dark', 'default', 'info', 'warning', 'error', 'success', 'danger'],\n themesMap = {\n 'default' : 'qtip-rounded qtip-plain',\n 'dark' : 'qtip-rounded qtip-dark',\n 'error' : 'qtip-rounded qtip-red',\n 'success' :'qtip-rounded qtip-green',\n 'info' : 'qtip-rounded qtip-blue',\n 'warning' : 'qtip-rounded qtip-orange',\n 'danger' : 'qtip-rounded qtip-danger'\n },\n defaultOptions = {\n theme : 'warning',\n position: {\n my : 'bottom center',\n at : 'top center',\n viewport: $(window),\n },\n };\n\n var qtipConstructor = $.fn.qtip;\n\n $.fn.qtip = function (options, notation, newValue) {\n\n if('object' === typeof options) {\n options = _.merge({}, defaultOptions, options);\n if (options.theme && themesMap[options.theme]) {\n if (options.style === undefined) {\n options.style = {};\n }\n options.style.classes = themesMap[options.theme];\n options = _.omit(options, ['theme']);\n }\n }\n\n return qtipConstructor.call(this, options, notation, newValue);\n };\n\n /**\n * Look up for tooltips and initialize them\n *\n * @public\n * @param {jQueryElement} $container - the root context to lookup inside\n */\n return function lookupSelector($container){\n $('[data-tooltip]', $container).each(function(){\n var $elt = $(this),\n $target = DataAttrHandler.getTarget('tooltip', $elt),\n theme = _.contains(themes, $elt.data('tooltip-theme')) ? $elt.data('tooltip-theme') : 'default';\n\n $elt.qtip({\n theme : theme,\n content: {\n text: $target\n }\n });\n });\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/InlineChoiceInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/inlineChoiceInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'select2',\n 'ui/tooltip'\n], function($, _, __, tpl, containerHelper, instructionMgr, pciResponse){\n 'use strict';\n\n /**\n * The value of the \"empty\" option\n * @type String\n */\n var _emptyValue = 'empty';\n\n var _defaultOptions = {\n allowEmpty:true,\n placeholderText:__('select a choice')\n };\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n */\n var render = function(interaction, options){\n\n var opts = _.clone(_defaultOptions),\n required = !!interaction.attr('required');\n _.extend(opts, options);\n\n var $container = containerHelper.get(interaction);\n\n if(opts.allowEmpty && !required){\n $container.find('option[value=' + _emptyValue + ']').text('--- ' + __('leave empty') + ' ---');\n }else{\n $container.find('option[value=' + _emptyValue + ']').remove();\n }\n\n $container.select2({\n width : 'element',\n placeholder : opts.placeholderText,\n minimumResultsForSearch : -1,\n dropdownCssClass : 'qti-inlineChoiceInteraction-dropdown'\n });\n\n var $el = $container.select2('container');\n\n _setInstructions(interaction);\n\n $container.on('change', function(){\n\n if(required && $container.val() !== \"\") {\n $el.qtip('hide');\n }\n\n containerHelper.triggerResponseChangeEvent(interaction);\n\n }).on('select2-open', function(){\n if(required){\n $el.qtip('hide');\n }\n }).on('select2-close', function(){\n if(required && $container.val() === \"\") {\n $el.qtip('show');\n }\n });\n };\n\n var _setInstructions = function(interaction){\n\n var required = !!interaction.attr('required'),\n $container = interaction.getContainer(),\n $el = $container.select2('container');\n\n if(required){\n //set up the tooltip plugin for the input\n $el.qtip({\n theme : 'warning',\n content: {\n text: __('A choice must be selected')\n }\n });\n\n if($container.val() === \"\") {\n $el.qtip('show');\n }\n }\n\n };\n\n var resetResponse = function(interaction){\n _setVal(interaction, _emptyValue);\n };\n\n var _setVal = function(interaction, choiceIdentifier){\n\n containerHelper.get(interaction)\n .val(choiceIdentifier)\n .select2('val', choiceIdentifier);\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n\n _setVal(interaction, pciResponse.unserialize(response, interaction)[0]);\n };\n\n var _getRawResponse = function(interaction){\n var value = containerHelper.get(interaction).val();\n return (value && value !== _emptyValue) ? [value] : [];\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n return pciResponse.serialize(_getRawResponse(interaction), interaction);\n };\n\n /**\n * Clean interaction destroy\n * @param {Object} interaction\n */\n var destroy = function(interaction){\n\n var $container = containerHelper.get(interaction);\n\n //remove event\n $(document).off('.commonRenderer');\n\n $container.select2('destroy');\n\n //remove instructions\n instructionMgr.removeInstructions(interaction);\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n var $container;\n\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n\n //restore order of previously shuffled choices\n if(_.isArray(state.order) && state.order.length === _.size(interaction.getChoices())){\n\n $container = containerHelper.get(interaction);\n\n //just in case the dropdown is opened\n $container.select2('disable')\n .select2('close');\n\n $('option[data-identifier]', $container)\n .sort(function(a, b){\n var aIndex = _.indexOf(state.order, $(a).data('identifier'));\n var bIndex = _.indexOf(state.order, $(b).data('identifier'));\n if(aIndex > bIndex) {\n return 1;\n }\n if(aIndex < bIndex) {\n return -1;\n }\n return 0;\n })\n .detach()\n .appendTo($container);\n\n $container.select2('enable');\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n\n //we store also the choice order if shuffled\n if(interaction.attr('shuffle') === true){\n $container = containerHelper.get(interaction);\n\n state.order = [];\n $('option[data-identifier]', $container).each(function(){\n state.order.push($(this).data('identifier'));\n });\n }\n return state;\n };\n\n /**\n * Expose the common renderer for the inline choice interaction\n * @exports qtiCommonRenderer/renderers/interactions/InlineChoiceInteraction\n */\n return {\n qtiClass : 'inlineChoiceInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/matchInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program7(depth0,data) {\n \n var stack1;\n stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program9(depth0,data,depth1) {\n \n var buffer = \"\", stack1;\n buffer += \"\\n <tr>\\n \";\n stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n \";\n stack1 = helpers.each.call(depth0, (depth1 && depth1.matchSet1), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </tr>\\n \";\n return buffer;\n }\nfunction program10(depth0,data) {\n \n \n return \"\\n <td>\\n <label>\\n <input type=\\\"checkbox\\\" >\\n <span class=\\\"icon-checkbox cross\\\"></span>\\n </label>\\n </td>\\n \";\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-matchInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"matchInteraction\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"match-interaction-area\\\">\\n <table class=\\\"matrix\\\">\\n <thead>\\n <tr>\\n <th> </th>\\n \";\n options={hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data}\n if (helper = helpers.matchSet1) { stack1 = helper.call(depth0, options); }\n else { helper = (depth0 && depth0.matchSet1); stack1 = typeof helper === functionType ? helper.call(depth0, options) : helper; }\n if (!helpers.matchSet1) { stack1 = blockHelperMissing.call(depth0, stack1, {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data}); }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </tr>\\n </thead>\\n <tbody>\\n \";\n options={hash:{},inverse:self.noop,fn:self.programWithDepth(9, program9, data, depth0),data:data}\n if (helper = helpers.matchSet2) { stack1 = helper.call(depth0, options); }\n else { helper = (depth0 && depth0.matchSet2); stack1 = typeof helper === functionType ? helper.call(depth0, options) : helper; }\n if (!helpers.matchSet2) { stack1 = blockHelperMissing.call(depth0, stack1, {hash:{},inverse:self.noop,fn:self.programWithDepth(9, program9, data, depth0),data:data}); }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"notification-container\\\"></div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/MatchInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/matchInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse'\n], function($, _, __,tpl, containerHelper, instructionMgr, pciResponse){\n 'use strict';\n\n /**\n * TODO do not use global context var, it's value is shared between interaction instances\n *\n * Flag to not throw warning instruction if already\n * displaying the warning. If such a flag is not used,\n * disturbances can be seen by the candidate if he clicks\n * like hell on choices.\n */\n var inWarning = false;\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10296\n *\n * @param {object} interaction\n */\n var render = function(interaction){\n var $container = containerHelper.get(interaction);\n\n // Initialize instructions system.\n _setInstructions(interaction);\n\n $container.on('click.commonRenderer', 'input[type=checkbox]', function(e){\n _onCheckboxSelected(interaction, e);\n });\n\n instructionMgr.validateInstructions(interaction);\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10296\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n\n response = _filterResponse(response);\n\n if(typeof response.list !== 'undefined' && typeof response.list.directedPair !== 'undefined'){\n _(response.list.directedPair).forEach(function(directedPair){\n var x = $('th[data-identifier=' + directedPair[0] + ']').index() - 1;\n var y = $('th[data-identifier=' + directedPair[1] + ']').parent().index();\n\n $('.matrix > tbody tr').eq(y).find('input[type=checkbox]').eq(x).attr('checked', true);\n });\n }\n\n instructionMgr.validateInstructions(interaction);\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10296\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n var response = pciResponse.serialize(_getRawResponse(interaction), interaction);\n return response;\n };\n\n var resetResponse = function(interaction){\n\n var $container = containerHelper.get(interaction);\n $('input[type=checkbox]:checked', $container).each(function(){\n $(this).prop('checked', false);\n });\n\n instructionMgr.validateInstructions(interaction);\n };\n\n var _filterResponse = function(response){\n if(typeof response.list === 'undefined'){\n // Maybe it's a base?\n if(typeof response.base === 'undefined'){\n // Oops, it is even not a base.\n throw 'The given response is not compliant with PCI JSON representation.';\n }\n else{\n // It's a base, Is it a directedPair? Null?\n if (response.base === null) {\n return {\"list\" : {\"directedPair\" : []}};\n }\n else if (typeof response.base.directedPair === 'undefined'){\n // Oops again, it is not a directedPair.\n throw 'The matchInteraction only accepts directedPair values as responses.';\n }\n else{\n return {\"list\" : {\"directedPair\" : [response.base.directedPair]}};\n }\n }\n }\n else if(typeof response.list.directedPair === 'undefined'){\n // Oops, not a directedPair.\n throw 'The matchInteraction only accept directedPair values as responses.';\n }\n else{\n return response;\n }\n };\n\n var _getRawResponse = function(interaction){\n var $container = containerHelper.get(interaction);\n var values = [];\n\n $container.find('input[type=checkbox]:checked').each(function(){\n values.push(_inferValue(this));\n });\n\n return values;\n };\n\n var _inferValue = function(element){\n var $element = $(element);\n var y = $element.closest('tr').index();\n var x = $element.closest('td').index();\n var firstId = $('.matrix > thead th').eq(x).data('identifier');\n var secondId = $('.matrix > tbody th').eq(y).data('identifier');\n return [firstId, secondId];\n };\n\n var _onCheckboxSelected = function(interaction, e){\n\n var choice;\n var currentResponse = _getRawResponse(interaction);\n var minAssociations = interaction.attr('minAssociations');\n var maxAssociations = interaction.attr('maxAssociations');\n\n if(maxAssociations === 0){\n maxAssociations = _countChoices(interaction);\n }\n\n if(_.size(currentResponse) > maxAssociations){\n // No more associations possible.\n e.preventDefault();\n instructionMgr.validateInstructions(interaction);\n\n }else if((choice = _maxMatchReached(interaction, e.target)) !== false){\n\n // Check if matchmax is respected for both choices\n // involved in the selection.\n e.preventDefault();\n instructionMgr.validateInstructions(interaction, choice);\n\n }else{\n\n containerHelper.triggerResponseChangeEvent(interaction, {});\n instructionMgr.validateInstructions(interaction);\n }\n\n };\n\n var _maxMatchReached = function(interaction, input){\n\n var association = _inferValue(input);\n var overflow = false;\n\n _(association).forEach(function(identifier){\n var choice = _getChoiceDefinitionByIdentifier(interaction, identifier);\n var matchMin = choice.attributes.matchMin;\n var matchMax = choice.attributes.matchMax;\n var assoc = _countAssociations(interaction, choice);\n\n if(matchMax > 0 && assoc > matchMax){\n overflow = choice;\n }\n });\n\n return overflow;\n };\n\n var _countAssociations = function(interaction, choice){\n\n var rawResponse = _getRawResponse(interaction);\n var count = 0;\n\n // How much time can we find rawChoice in rawResponses?\n _(rawResponse).forEach(function(response){\n if((response[0] === choice.attributes.identifier || response[1] === choice.attributes.identifier)){\n count++;\n }\n });\n\n return count;\n };\n\n var _countChoices = function(interaction){\n var $container = containerHelper.get(interaction);\n return $container.find('input[type=checkbox]').length;\n };\n\n var _getChoiceDefinitionByIdentifier = function(interaction, identifier){\n var rawChoices = _getRawChoices(interaction);\n return rawChoices[identifier];\n };\n\n var _getRawChoices = function(interaction){\n var rawChoices = {};\n\n _(interaction.choices).forEach(function(matchset){\n _(matchset).forEach(function(choice){\n rawChoices[choice.attributes.identifier] = choice;\n });\n });\n\n return rawChoices;\n };\n\n var _setInstructions = function(interaction){\n\n var msg;\n var minAssociations = interaction.attr('minAssociations');\n var maxAssociations = interaction.attr('maxAssociations');\n var choiceCount = _countChoices(interaction);\n\n // Super closure is here again to save our souls! Houray!\n // ~~~~~~~ |==||||0__\n\n var superClosure = function(){\n\n var onMaxChoicesReached = function(report, msg){\n if(inWarning === false){\n inWarning = true;\n\n report.update({\n level : 'warning',\n message : __('Maximum number of choices reached.'),\n timeout : 2000,\n stop : function(){\n report.update({level : 'success', message : msg});\n inWarning = false;\n }\n });\n }\n };\n\n var onMatchMaxReached = function(interaction, choice, report, msg, level){\n\n var $container = containerHelper.get(interaction);\n\n if(inWarning === false){\n inWarning = true;\n\n var $choice = $container.find('.qti-simpleAssociableChoice[data-identifier=\"' + choice.attributes.identifier + '\"]');\n var originalBackgroundColor = $choice.css('background-color');\n var originalColor = $choice.css('color');\n\n report.update({\n level : 'warning',\n message : __('The highlighted choice cannot be associated more than %d time(s).').replace('%d', choice.attributes.matchMax),\n timeout : 3000,\n start : function(){\n $choice.animate({\n backgroundColor : '#fff',\n color : '#ba122b'\n }, 250, function(){\n $choice.animate({\n backgroundColor : '#ba122b',\n color : '#fff'\n }, 250);\n });\n },\n stop : function(){\n $choice.animate({\n backgroundColor : originalBackgroundColor,\n color : originalColor\n }, 500);\n report.update({level : level, message : msg});\n inWarning = false;\n }\n });\n }\n };\n\n if(minAssociations === 0 && maxAssociations > 0){\n // No minimum but maximum.\n msg = __('You must select 0 to %d choices.').replace('%d', maxAssociations);\n\n instructionMgr.appendInstruction(interaction, msg, function(choice){\n var responseCount = _.size(_getRawResponse(interaction));\n\n if(choice && choice.attributes && choice.attributes.matchMax > 0 && _countAssociations(interaction, choice) > choice.attributes.matchMax){\n onMatchMaxReached(interaction, choice, this, msg, this.getLevel());\n }\n else if(responseCount <= maxAssociations){\n this.setLevel('success');\n }\n else if(responseCount > maxAssociations){\n onMaxChoicesReached(this, msg);\n }\n else{\n this.reset();\n }\n });\n }\n else if(minAssociations === 0 && maxAssociations === 0){\n // No minimum, no maximum.\n msg = __('You must select 0 to %d choices.').replace('%d', choiceCount);\n\n instructionMgr.appendInstruction(interaction, msg, function(choice){\n\n if(choice && choice.attributes && choice.attributes.matchMax > 0 && _countAssociations(interaction, choice) > choice.attributes.matchMax){\n onMatchMaxReached(interaction, choice, this, msg, this.getLevel());\n }\n else{\n this.setLevel('success');\n }\n });\n }\n else if(minAssociations > 0 && maxAssociations === 0){\n // minimum but no maximum.\n msg = __('You must select %1$d to %2$d choices.');\n msg = msg.replace('%1$d', minAssociations);\n msg = msg.replace('%2$d', choiceCount);\n\n instructionMgr.appendInstruction(interaction, msg, function(choice){\n var responseCount = _.size(_getRawResponse(interaction));\n\n if(choice && choice.attributes && choice.attributes.matchMax > 0 && _countAssociations(interaction, choice) > choice.attributes.matchMax){\n onMatchMaxReached(interaction, choice, this, msg, this.getLevel());\n }\n else if(responseCount < minAssociations){\n this.setLevel('info');\n }\n else if(responseCount > choiceCount){\n onMaxChoicesReached(this, msg);\n }\n else{\n this.setLevel('success');\n }\n });\n }\n else if(minAssociations > 0 && maxAssociations > 0){\n // minimum and maximum.\n if(minAssociations !== maxAssociations){\n msg = __('You must select %1$d to %2$d choices.');\n msg = msg.replace('%1$d', minAssociations);\n msg = msg.replace('%2$d', maxAssociations);\n }\n else{\n msg = __('You must select exactly %d choice(s).');\n msg = msg.replace('%d', minAssociations);\n }\n\n instructionMgr.appendInstruction(interaction, msg, function(choice){\n var responseCount = _.size(_getRawResponse(interaction));\n\n if(choice && choice.attributes && choice.attributes.matchMax > 0 && _countAssociations(interaction, choice) > choice.attributes.matchMax){\n onMatchMaxReached(interaction, choice, this, msg, this.getLevel());\n }\n else if(responseCount < minAssociations){\n this.setLevel('info');\n }\n else if(responseCount > maxAssociations){\n onMaxChoicesReached(this, msg);\n }\n else if(responseCount >= minAssociations && responseCount <= maxAssociations){\n this.setLevel('success');\n }\n });\n }\n };\n\n superClosure();\n };\n\n var destroy = function(interaction){\n\n var $container = containerHelper.get(interaction);\n $container.off('.commonRenderer');\n\n instructionMgr.removeInstructions(interaction);\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n var $container;\n\n if(_.isObject(state)){\n\n //restore order of previously shuffled choices\n if(_.isArray(state.order) && state.order.length === 2){\n\n $container = containerHelper.get(interaction);\n\n $('thead .qti-choice', $container)\n .sort(function(a, b){\n var aIndex = _.indexOf(state.order[0], $(a).data('identifier'));\n var bIndex = _.indexOf(state.order[0], $(b).data('identifier'));\n if(aIndex > bIndex) {\n return 1;\n }\n if(aIndex < bIndex) {\n return -1;\n }\n return 0;\n })\n .detach()\n .appendTo($('thead tr', $container));\n\n $('tbody .qti-choice', $container)\n .sort(function(a, b){\n var aIndex = _.indexOf(state.order[1], $(a).data('identifier'));\n var bIndex = _.indexOf(state.order[1], $(b).data('identifier'));\n if(aIndex > bIndex) {\n return 1;\n }\n if(aIndex < bIndex) {\n return -1;\n }\n return 0;\n })\n .detach()\n .each(function(index, elt){\n $(elt).prependTo($('tbody tr', $container).eq(index));\n });\n }\n\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n\n //we store also the choice order if shuffled\n if(interaction.attr('shuffle') === true){\n $container = containerHelper.get(interaction);\n\n state.order = [[], []];\n $('thead .qti-choice', $container).each(function(){\n state.order[0].push($(this).data('identifier'));\n });\n $('tbody .qti-choice', $container).each(function(){\n state.order[1].push($(this).data('identifier'));\n });\n }\n return state;\n };\n\n /**\n * Expose the common renderer for the match interaction\n * @exports qtiCommonRenderer/renderers/interactions/MatchInteraction\n */\n return {\n qtiClass : 'matchInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState,\n inferValue : _inferValue\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/mediaInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-mediaInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"media-container\\\"></div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Martin for OAT S.A. <code@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/MediaInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/mediaInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'ui/mediaplayer'\n], function($, _, __, Promise, tpl, pciResponse, containerHelper, mediaplayer) {\n 'use strict';\n\n /**\n * Resize video player elements to fit container size\n * @param {Object} mediaElement - player instance\n * @param {jQueryElement} $container - container element to adapt\n */\n var resizeVideo = function (mediaElement, $container) {\n var height = $container.find('.media-container').height(),\n width = $container.find('.media-container').width();\n mediaElement.resize(width, height);\n };\n\n //some default values\n var defaults = {\n type : 'video/mp4',\n video : {\n width: 480,\n height: 270\n },\n audio : {\n width: 400,\n height: 30\n }\n };\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10391\n *\n * @param {object} interaction\n * @fires playerready when the player is sucessfully loaded and configured\n */\n var render = function render(interaction) {\n var self = this;\n return new Promise(function(resolve, reject) {\n var $container = containerHelper.get(interaction);\n var $item = $container.parents('.qti-item');\n var media = interaction.object;\n var maxPlays = parseInt(interaction.attr('maxPlays'), 10) || 0;\n var url = media.attr('data') || '';\n\n //intialize the player if not yet done\n var initMediaPlayer = function initMediaPlayer(){\n if (!interaction.mediaElement) {\n interaction.mediaElement = mediaplayer({\n url: url && self.resolveUrl(url),\n type: media.attr('type') || defaults.type,\n canPause: $container.hasClass('pause'),\n maxPlays: maxPlays,\n width: media.attr('width'),\n height: media.attr('height'),\n volume: 100,\n autoStart: !!interaction.attr('autostart') && canBePlayed(),\n loop: !!interaction.attr('loop'),\n renderTo: $('.media-container', $container)\n })\n .on('render', function() {\n var mediaElement = this;\n var rTimer;\n\n resizeVideo(this, $container);\n\n var delayedResize = function () {\n clearTimeout(rTimer);\n rTimer = setTimeout(function () {\n resizeVideo(mediaElement, $container);\n }, 200);\n };\n\n $(window).off('resize.video')\n .on('resize.video', delayedResize);\n\n $item.off('resize.gridEdit')\n .on('resize.gridEdit', delayedResize);\n\n resolve();\n })\n .on('ready', function() {\n resizeVideo(this, $container);\n\n /**\n * @event playerready\n */\n $container.trigger('playerready');\n })\n .on('ended', function() {\n $container.data('timesPlayed', $container.data('timesPlayed') + 1);\n containerHelper.triggerResponseChangeEvent(interaction);\n\n if (!canBePlayed() ) {\n this.disable();\n }\n });\n }\n };\n\n //check if the media can be played (using timesPlayed and maxPlays)\n var canBePlayed = function canBePlayed(){\n var current = parseInt($container.data('timesPlayed'), 10);\n return maxPlays === 0 || maxPlays > current;\n };\n\n if(_.size(media.attributes) === 0){\n //TODO move to afterCreate\n media.attr('type', defaults.type);\n media.attr('width', $container.innerWidth());\n media.attr('height', defaults.video.height);\n media.attr('data', '');\n }\n\n //set up the number of times played\n if (!$container.data('timesPlayed')) {\n $container.data('timesPlayed', 0);\n }\n\n //initialize the component\n $container.on('responseSet', function() {\n initMediaPlayer();\n });\n\n //gives a small chance to the responseSet event before initializing the player\n initMediaPlayer();\n });\n };\n\n /**\n * Destroy the current interaction\n * @param {Object} interaction\n */\n var destroy = function(interaction) {\n var $container = containerHelper.get(interaction);\n\n if (interaction.mediaElement) {\n interaction.mediaElement.destroy();\n interaction.mediaElement = undefined;\n }\n\n $('.instruction-container', $container).empty();\n $('.media-container', $container).empty();\n\n $container.removeData('timesPlayed');\n\n $(window).off('resize.video');\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Get the responses from the interaction\n * @private\n * @param {Object} interaction\n * @returns {Array} of points\n */\n var _getRawResponse = function _getRawResponse(interaction) {\n return [containerHelper.get(interaction).data('timesPlayed') || 0];\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response) {\n if (response) {\n try {\n //try to unserialize the pci response\n var responseValues;\n responseValues = pciResponse.unserialize(response, interaction);\n containerHelper.get(interaction).data('timesPlayed', responseValues[0]);\n } catch (e) {\n // something went wrong\n }\n }\n };\n\n /**\n * Reset the current responses of the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var resetResponse = function resetResponse(interaction) {\n containerHelper.get(interaction).data('timesPlayed', 0);\n };\n\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction) {\n return pciResponse.serialize(_getRawResponse(interaction), interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n\n /**\n * Expose the common renderer for the interaction\n * @exports qtiCommonRenderer/renderers/interactions/MediaInteraction\n */\n return {\n qtiClass : 'mediaInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/orderInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n \n return \" qti-horizontal\";\n }\n\nfunction program5(depth0,data) {\n \n \n return \" qti-vertical\";\n }\n\nfunction program7(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program9(depth0,data) {\n \n \n return \"horizontal\";\n }\n\nfunction program11(depth0,data) {\n \n \n return \"vertical\";\n }\n\nfunction program13(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program15(depth0,data) {\n \n var stack1;\n stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program17(depth0,data) {\n \n \n return \"icon-down\";\n }\n\nfunction program19(depth0,data) {\n \n \n return \"icon-right\";\n }\n\nfunction program21(depth0,data) {\n \n \n return \"icon-up\";\n }\n\nfunction program23(depth0,data) {\n \n \n return \"icon-left\";\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-orderInteraction\";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.horizontal), {hash:{},inverse:self.program(5, program5, data),fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\"\\n data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\"\\n data-qti-class=\\\"orderInteraction\\\"\\n data-orientation=\\\"\";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.horizontal), {hash:{},inverse:self.program(11, program11, data),fn:self.program(9, program9, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"order-interaction-area\\\">\\n <ul class=\\\"choice-area square source solid block-listing \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.horizontal), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\">\\n \";\n options={hash:{},inverse:self.noop,fn:self.program(15, program15, data),data:data}\n if (helper = helpers.choices) { stack1 = helper.call(depth0, options); }\n else { helper = (depth0 && depth0.choices); stack1 = typeof helper === functionType ? helper.call(depth0, options) : helper; }\n if (!helpers.choices) { stack1 = blockHelperMissing.call(depth0, stack1, {hash:{},inverse:self.noop,fn:self.program(15, program15, data),data:data}); }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </ul>\\n <div class=\\\"arrow-bar middle\\\">\\n <span class=\\\"icon-add-to-selection \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.horizontal), {hash:{},inverse:self.program(19, program19, data),fn:self.program(17, program17, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\"></span>\\n <span class=\\\"icon-remove-from-selection \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.horizontal), {hash:{},inverse:self.program(23, program23, data),fn:self.program(21, program21, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" inactive\\\"></span>\\n </div>\\n <ul class=\\\"drag-container block-listing\\\"></ul>\\n <ul class=\\\"result-area decimal target solid block-listing \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.horizontal), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\">\\n </ul>\\n <div class=\\\"arrow-bar\\\">\\n <span class=\\\"icon-move-before \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.horizontal), {hash:{},inverse:self.program(21, program21, data),fn:self.program(23, program23, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" inactive\\\"></span>\\n <span class=\\\"icon-move-after \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.horizontal), {hash:{},inverse:self.program(17, program17, data),fn:self.program(19, program19, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" inactive\\\"></span>\\n </div>\\n </div>\\n <div class=\\\"notification-container\\\"></div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/OrderInteraction',[\n 'lodash',\n 'jquery',\n 'i18n',\n 'core/mouseEvent',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/orderInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'interact',\n 'ui/interactUtils'\n], function(_, $, __, triggerMouseEvent, tpl, containerHelper, instructionMgr, pciResponse, interact, interactUtils){\n 'use strict';\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10283\n *\n * @param {Object} interaction - the interaction instance\n */\n var render = function(interaction){\n\n var $container = containerHelper.get(interaction),\n $choiceArea = $container.find('.choice-area'),\n $resultArea = $container.find('.result-area'),\n $iconAdd = $container.find('.icon-add-to-selection'),\n $iconRemove = $container.find('.icon-remove-from-selection'),\n $iconBefore = $container.find('.icon-move-before'),\n $iconAfter = $container.find('.icon-move-after'),\n $activeChoice = null,\n\n choiceSelector = $choiceArea.selector + ' >li:not(.deactivated)',\n resultSelector = $resultArea.selector + ' >li',\n\n isDragAndDropEnabled,\n dragOptions,\n $dropzoneElement,\n $dragContainer = $container.find('.drag-container'),\n\n orientation = (interaction.attr('orientation')) ? interaction.attr('orientation') : 'vertical';\n\n var _activeControls = function _activeControls(){\n $iconAdd.addClass('inactive');\n $iconRemove.removeClass('inactive').addClass('active');\n $iconBefore.removeClass('inactive').addClass('active');\n $iconAfter.removeClass('inactive').addClass('active');\n };\n\n var _resetControls = function _resetControls(){\n $iconAdd.removeClass('inactive');\n $iconRemove.removeClass('active').addClass('inactive');\n $iconBefore.removeClass('active').addClass('inactive');\n $iconAfter.removeClass('active').addClass('inactive');\n };\n\n var _setSelection = function _setSelection($choice){\n if($activeChoice){\n $activeChoice.removeClass('active');\n }\n $activeChoice = $choice;\n $activeChoice.addClass('active');\n };\n\n var _resetSelection = function _resetSelection(){\n if($activeChoice){\n $activeChoice.removeClass('active');\n $activeChoice = null;\n }\n _resetControls();\n };\n\n var _addChoiceToSelection = function _addChoiceToSelection($target, position) {\n var $results = $(resultSelector);\n _resetSelection();\n\n //move choice to the result list:\n if (typeof(position) !== 'undefined' && position < $results.length) {\n $results.eq(position).before($target);\n } else {\n $resultArea.append($target);\n }\n\n containerHelper.triggerResponseChangeEvent(interaction);\n\n //update constraints :\n instructionMgr.validateInstructions(interaction);\n };\n\n var _toggleResultSelection = function _toggleResultSelection($target) {\n if($target.hasClass('active')){\n _resetSelection();\n }else{\n _setSelection($target);\n _activeControls();\n }\n };\n\n var _removeChoice = function _removeChoice() {\n if($activeChoice){\n\n //restore choice back to choice list\n $choiceArea.append($activeChoice);\n containerHelper.triggerResponseChangeEvent(interaction);\n\n //update constraints :\n instructionMgr.validateInstructions(interaction);\n }\n\n _resetSelection();\n };\n\n var _moveResultBefore = function _moveResultBefore() {\n var $prev = $activeChoice.prev();\n\n if($prev.length){\n $prev.before($activeChoice);\n containerHelper.triggerResponseChangeEvent(interaction);\n }\n };\n\n var _moveResultAfter = function _moveResultAfter() {\n var $next = $activeChoice.next();\n\n if($next.length){\n $next.after($activeChoice);\n containerHelper.triggerResponseChangeEvent(interaction);\n }\n };\n\n\n // Point & click handlers\n\n interact($container.selector).on('tap', function () {\n _resetSelection();\n });\n\n interact(choiceSelector).on('tap', function (e) {\n var $target = $(e.currentTarget);\n e.stopPropagation();\n\n $iconAdd.addClass('triggered');\n setTimeout(function(){\n $iconAdd.removeClass('triggered');\n }, 150);\n\n _addChoiceToSelection($target);\n });\n\n interact(resultSelector).on('tap', function (e) {\n var $target = $(e.currentTarget);\n e.stopPropagation();\n _toggleResultSelection($target);\n });\n\n interact($iconRemove.selector).on('tap', function (e) {\n e.stopPropagation();\n _removeChoice();\n });\n\n interact($iconBefore.selector).on('tap', function (e) {\n e.stopPropagation();\n _moveResultBefore();\n });\n\n interact($iconAfter.selector).on('tap', function (e) {\n e.stopPropagation();\n _moveResultAfter();\n });\n\n\n // Drag & drop handlers\n\n if (this.getOption && this.getOption(\"enableDragAndDrop\") && this.getOption(\"enableDragAndDrop\").order) {\n isDragAndDropEnabled = this.getOption(\"enableDragAndDrop\").order;\n }\n\n function _iFrameDragFix(draggableSelector, target) {\n interactUtils.iFrameDragFixOn(function () {\n if (_isDropzoneVisible()) {\n interact($resultArea.selector).fire({\n type: 'drop',\n target: $dropzoneElement.eq(0),\n relatedTarget: target\n });\n }\n interact(draggableSelector).fire({\n type: 'dragend',\n target: target\n });\n });\n }\n\n if (isDragAndDropEnabled) {\n $dropzoneElement = $('<li>', {'class' : 'dropzone qti-choice'});\n $('<div>', {'class': 'qti-block'}).appendTo($dropzoneElement);\n\n dragOptions = {\n inertia: false,\n autoScroll: true,\n restrict: {\n restriction: \".qti-interaction\",\n endOnly: false,\n elementRect: {top: 0, left: 0, bottom: 1, right: 1}\n }\n };\n\n // makes choices draggables\n interact(choiceSelector).draggable(_.assign({}, dragOptions, {\n onstart: function (e) {\n var $target = $(e.target);\n $target.addClass(\"dragged\");\n\n _iFrameDragFix(choiceSelector, e.target);\n },\n onmove: function (e) {\n var $target = $(e.target);\n interactUtils.moveElement(e.target, e.dx, e.dy);\n if (_isDropzoneVisible()) {\n _adjustDropzonePosition($target);\n }\n },\n onend: function (e) {\n var $target = $(e.target);\n $target.removeClass(\"dragged\");\n\n interactUtils.restoreOriginalPosition($target);\n interactUtils.iFrameDragFixOff();\n }\n })).styleCursor(false);\n\n // makes result draggables\n interact(resultSelector).draggable(_.assign({}, dragOptions, {\n onstart: function (e) {\n var $target = $(e.target);\n $target.addClass(\"dragged\");\n\n _setSelection($target);\n\n // move dragged result to drag container\n $dragContainer.show();\n $dragContainer.offset($target.offset());\n if (orientation === 'horizontal') {\n $dragContainer.width($(e.currentTarget).width());\n } else {\n $dragContainer.width($target.parent().width());\n }\n $dragContainer.append($target);\n\n _iFrameDragFix(resultSelector, e.target);\n },\n onmove: function (e) {\n var $target = $(e.target);\n interactUtils.moveElement(e.target, e.dx, e.dy);\n if (_isDropzoneVisible()) {\n _adjustDropzonePosition($target);\n }\n },\n onend: function (e) {\n var $target = $(e.target),\n hasBeenDroppedInResultArea = ($target.parent === $resultArea);\n\n $target.removeClass(\"dragged\");\n $dragContainer.hide();\n\n if (! hasBeenDroppedInResultArea) {\n _removeChoice();\n }\n\n interactUtils.restoreOriginalPosition($target);\n interactUtils.iFrameDragFixOff();\n }\n })).styleCursor(false);\n\n // makes result area droppable\n interact($resultArea.selector).dropzone({\n overlap: 0.5,\n ondragenter: function (e) {\n var $dragged = $(e.relatedTarget);\n _insertDropzone($dragged);\n $dragged.addClass('droppable');\n },\n ondrop: function (e) {\n var $dragged = $(e.relatedTarget),\n dropzoneIndex = $(resultSelector).index($dropzoneElement);\n\n this.ondragleave(e);\n\n _addChoiceToSelection($dragged, dropzoneIndex);\n interactUtils.restoreOriginalPosition($dragged);\n },\n ondragleave: function (e) {\n var $dragged = $(e.relatedTarget);\n $dropzoneElement.remove();\n $dragged.removeClass('droppable');\n }\n });\n }\n\n function _isDropzoneVisible() {\n return $.contains($container.get(0), $dropzoneElement.get(0));\n }\n\n function _insertDropzone($dragged) {\n var draggedMiddle = _getMiddleOf($dragged),\n previousMiddle = {\n x: 0,\n y: 0\n },\n insertPosition,\n $dropzone;\n\n // look for position where to insert dropzone\n $(resultSelector).each(function(index) {\n var currentMiddle = _getMiddleOf($(this));\n\n if (orientation !== 'horizontal') {\n if (draggedMiddle.y > previousMiddle.y && draggedMiddle.y < currentMiddle.y) {\n insertPosition = index;\n return false;\n }\n previousMiddle.y = currentMiddle.y;\n } else {\n if (draggedMiddle.x > previousMiddle.x && draggedMiddle.x < currentMiddle.x) {\n insertPosition = index;\n return false;\n }\n previousMiddle.x = currentMiddle.x;\n }\n });\n // append dropzone to DOM\n if (typeof(insertPosition) !== 'undefined') {\n $(resultSelector).eq(insertPosition).before($dropzoneElement);\n } else {\n // no index found, we just append to the end\n $resultArea.append($dropzoneElement);\n }\n\n // style dropzone\n $dropzoneElement.height($dragged.height());\n $dropzoneElement.find('div').text($dragged.text());\n }\n\n function _adjustDropzonePosition($dragged) {\n var draggedBox = $dragged.get(0).getBoundingClientRect(),\n $prevResult = $dropzoneElement.prev('.qti-choice'),\n $nextResult = $dropzoneElement.next('.qti-choice'),\n prevMiddle = ($prevResult.length > 0) ? _getMiddleOf($prevResult) : false,\n nextMiddle = ($nextResult.length > 0) ? _getMiddleOf($nextResult) : false;\n\n if (orientation !== 'horizontal') {\n if (prevMiddle && (draggedBox.top < prevMiddle.y)) {\n $prevResult.before($dropzoneElement);\n }\n if (nextMiddle && (draggedBox.bottom > nextMiddle.y)) {\n $nextResult.after($dropzoneElement);\n }\n } else {\n if (prevMiddle && (draggedBox.left < prevMiddle.x)) {\n $prevResult.before($dropzoneElement);\n }\n if (nextMiddle && (draggedBox.right > nextMiddle.x)) {\n $nextResult.after($dropzoneElement);\n }\n }\n }\n\n function _getMiddleOf($element) {\n var elementBox = $element.get(0).getBoundingClientRect();\n return {\n x: elementBox.left + elementBox.width / 2,\n y: elementBox.top + elementBox.height / 2\n };\n }\n\n // rendering init\n\n _setInstructions(interaction);\n\n //bind event listener in case the attributes change dynamically on runtime\n $(document).on('attributeChange.qti-widget.commonRenderer', function(e, data){\n if(data.element.getSerial() === interaction.getSerial()){\n if(data.key === 'maxChoices' || data.key === 'minChoices'){\n instructionMgr.removeInstructions(interaction);\n _setInstructions(interaction);\n instructionMgr.validateInstructions(interaction);\n }\n }\n });\n\n _freezeSize($container);\n };\n\n var _freezeSize = function($container){\n var $orderArea = $container.find('.order-interaction-area');\n $orderArea.height($orderArea.height());\n };\n\n var _setInstructions = function(interaction){\n\n var $container = containerHelper.get(interaction);\n var $choiceArea = $('.choice-area', $container),\n $resultArea = $('.result-area', $container),\n min = parseInt(interaction.attr('minChoices'), 10),\n max = parseInt(interaction.attr('maxChoices'), 10);\n\n if(min){\n instructionMgr.appendInstruction(interaction, __('You must use at least %d choices', min), function(){\n if($resultArea.find('>li').length >= min){\n this.setLevel('success');\n }else{\n this.reset();\n }\n });\n }\n\n if(max && max < _.size(interaction.getChoices())){\n var instructionMax = instructionMgr.appendInstruction(interaction, __('You can use maximum %d choices', max), function(){\n if($resultArea.find('>li').length >= max){\n $choiceArea.find('>li').addClass('deactivated');\n this.setMessage(__('Maximum choices reached'));\n }else{\n $choiceArea.find('>li').removeClass('deactivated');\n this.reset();\n }\n });\n\n interact($choiceArea.selector + ' >li.deactivated').on('tap', function(e) {\n var $target = $(e.currentTarget);\n $target.addClass('brd-error');\n instructionMax.setLevel('warning', 2000);\n setTimeout(function(){\n $target.removeClass('brd-error');\n }, 150);\n });\n\n // we don't check for isDragAndDropEnabled on purpose, as this binding is not to allow dragging,\n // but only to provide feedback in case of a drag action on an inactive choice\n interact($choiceArea.selector + ' >li.deactivated').draggable({\n onstart: function (e) {\n var $target = $(e.target);\n $target.addClass('brd-error');\n instructionMax.setLevel('warning');\n },\n onend: function (e) {\n var $target = $(e.target);\n $target.removeClass('brd-error');\n instructionMax.setLevel('info');\n }\n }).styleCursor(false);\n }\n };\n\n var resetResponse = function(interaction){\n\n var $container = containerHelper.get(interaction);\n var initialOrder = _.keys(interaction.getChoices());\n var $choiceArea = $('.choice-area', $container).append($('.result-area>li', $container));\n var $choices = $choiceArea.children('.qti-choice');\n\n $container.find('.qti-choice.active').each(function deactivateChoice() {\n interactUtils.tapOn(this);\n });\n\n $choices.detach().sort(function(choice1, choice2){\n return (_.indexOf(initialOrder, $(choice1).data('serial')) > _.indexOf(initialOrder, $(choice2).data('serial')));\n });\n $choiceArea.prepend($choices);\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10283\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n\n var $container = containerHelper.get(interaction);\n var $choiceArea = $('.choice-area', $container);\n var $resultArea = $('.result-area', $container);\n\n if(response === null || _.isEmpty(response)){\n resetResponse(interaction);\n }else{\n try{\n _.each(pciResponse.unserialize(response, interaction), function(identifier){\n $resultArea.append($choiceArea.find('[data-identifier=' + identifier + ']'));\n });\n }catch(e){\n throw new Error('wrong response format in argument : ' + e);\n }\n }\n\n instructionMgr.validateInstructions(interaction);\n };\n\n var _getRawResponse = function(interaction){\n var $container = containerHelper.get(interaction);\n var response = [];\n $('.result-area>li', $container).each(function(){\n response.push($(this).data('identifier'));\n });\n return response;\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10283\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n return pciResponse.serialize(_getRawResponse(interaction), interaction);\n };\n\n /**\n * Set additionnal data to the template (data that are not really part of the model).\n * @param {Object} interaction - the interaction\n * @param {Object} [data] - interaction custom data\n * @returns {Object} custom data\n */\n var getCustomData = function(interaction, data){\n\n return _.merge(data || {}, {\n horizontal : (interaction.attr('orientation') === 'horizontal')\n });\n\n };\n\n /**\n * Destroy the interaction by leaving the DOM exactly in the same state it was before loading the interaction.\n * @param {Object} interaction - the interaction\n */\n var destroy = function(interaction){\n\n var $container = containerHelper.get(interaction);\n\n //first, remove all events\n var selectors = [\n '.choice-area >li:not(.deactivated)',\n '.result-area >li',\n '.icon-add-to-selection',\n '.icon-remove-from-selection',\n '.icon-move-before',\n '.icon-move-after'\n ];\n selectors.forEach(function unbindInteractEvents(selector) {\n interact($container.find(selector).selector).unset();\n });\n\n $(document).off('.commonRenderer');\n\n $container.find('.order-interaction-area').removeAttr('style');\n\n instructionMgr.removeInstructions(interaction);\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n var $container;\n\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n\n //restore order of previously shuffled choices\n if(_.isArray(state.order) && state.order.length === _.size(interaction.getChoices())){\n\n $container = containerHelper.get(interaction);\n\n $('.choice-area .qti-choice', $container)\n .sort(function(a, b){\n var aIndex = _.indexOf(state.order, $(a).data('identifier'));\n var bIndex = _.indexOf(state.order, $(b).data('identifier'));\n if(aIndex > bIndex) {\n return 1;\n }\n if(aIndex < bIndex) {\n return -1;\n }\n return 0;\n })\n .detach()\n .appendTo($('.choice-area', $container));\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n\n //we store also the choice order if shuffled\n if(interaction.attr('shuffle') === true){\n $container = containerHelper.get(interaction);\n\n state.order = [];\n $('.choice-area .qti-choice', $container).each(function(){\n state.order.push($(this).data('identifier'));\n });\n }\n return state;\n };\n\n /**\n * Expose the common renderer for the order interaction\n * @exports qtiCommonRenderer/renderers/interactions/OrderInteraction\n */\n return {\n qtiClass : 'orderInteraction',\n getData : getCustomData,\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse: resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/customInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div class=\\\"qti-interaction qti-customInteraction\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n if (helper = helpers.markup) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.markup); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n</div>\";\n return buffer;\n });\n});\n\n","define('qtiCustomInteractionContext',[],function(){\n\n //need a global reference to have pciHooks shared in two different requirejs context (\"default\" and \"portableCustomInteraction\")\n window._pciHooks = window._pciHooks || {};\n\n /**\n * Global object accessible by all PCIs\n * \n * @type Object\n */\n var taoQtiCustomInteractionContext = {\n /**\n * register a custom interaction (its runtime model) in global registery\n * register a renderer\n * \n * @param {Object} pciHook\n * @returns {undefined}\n */\n register : function(pciHook){\n //@todo check pciHook validity\n window._pciHooks[pciHook.getTypeIdentifier()] = pciHook;\n },\n /**\n * notify when a custom interaction is ready for test taker interaction\n * \n * @param {string} pciInstance\n * @fires custominteractionready\n */\n notifyReady : function(pciInstance){\n //@todo add pciIntance as event data and notify event to delivery engine\n },\n /**\n * notify when a custom interaction is completed by test taker\n * \n * @param {string} pciInstance\n * @fires custominteractiondone\n */\n notifyDone : function(pciInstance){\n //@todo add pciIntance as event data and notify event to delivery engine\n },\n /**\n * Get a cloned object representing the PCI model\n * \n * @param {string} pciTypeIdentifier\n * @returns {Object} clonedPciModel\n */\n createPciInstance : function(pciTypeIdentifier){\n\n if(window._pciHooks[pciTypeIdentifier]){\n\n var instance = {},\n proto = window._pciHooks[pciTypeIdentifier];\n\n for(var name in proto){\n if(typeof proto[name] === 'function'){\n //@todo : delegate function call for better performance ?\n instance[name] = proto[name];\n }else if(proto[name] !== null && typeof proto[name] === 'object'){\n //a plain object:\n instance[name] = proto[name].constructor();\n }else{\n //not an object (nor a function) : e.g. 0, 123, '123', null, undefined\n instance[name] = proto[name];\n }\n }\n\n return instance;\n\n }else{\n throw 'no portable custom interaction hook found with the id ' + pciTypeIdentifier;\n }\n }\n };\n \n \n return taoQtiCustomInteractionContext;\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/PortableCustomInteraction',[\n 'lodash',\n 'context',\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/customInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/PortableElement',\n 'qtiCustomInteractionContext',\n 'taoQtiItem/qtiItem/helper/util'\n], function(_, context, Promise, tpl, containerHelper, PortableElement, qtiCustomInteractionContext, util){\n 'use strict';\n\n /**\n * Get the PCI instance associated to the interaction object\n * If none exists, create a new one based on the PCI typeIdentifier\n *\n * @param {Object} interaction - the js object representing the interaction\n * @returns {Object} PCI instance\n */\n var _getPci = function(interaction){\n\n var pciTypeIdentifier,\n pci = interaction.data('pci') || undefined;\n\n if(!pci){\n\n pciTypeIdentifier = interaction.typeIdentifier;\n pci = qtiCustomInteractionContext.createPciInstance(pciTypeIdentifier);\n\n if(pci){\n\n //binds the PCI instance to TAO interaction object and vice versa\n interaction.data('pci', pci);\n pci._taoCustomInteraction = interaction;\n\n }else{\n throw 'no custom interaction hook found for the type ' + pciTypeIdentifier;\n }\n }\n\n return pci;\n };\n\n /**\n * Execute javascript codes to bring the interaction to life.\n * At this point, the html markup must already be ready in the document.\n *\n * It is done in 5 steps :\n * 1. configure the paths\n * 2. require all required libs\n * 3. create a pci instance based on the interaction model\n * 4. initialize the rendering\n * 5. restore full state if applicable (state and/or response)\n *\n * @param {Object} interaction\n */\n var render = function(interaction, options){\n var self = this;\n\n options = options || {};\n return new Promise(function(resolve, reject){\n var runtimeLocation;\n var state = {}; //@todo pass state and response to renderer here:\n var localRequireConfig = { paths : {} };\n var response = { base : null};\n var id = interaction.attr('responseIdentifier');\n var typeIdentifier = interaction.typeIdentifier;\n var runtimeLocations = options.runtimeLocations ? options.runtimeLocations : self.getOption('runtimeLocations');\n var config = _.clone(interaction.properties); //pass a clone instead\n var $dom = containerHelper.get(interaction).children();\n var entryPoint = interaction.entryPoint.replace(/\\.js$/, ''); //ensure it's an AMD module\n\n //update config with runtime paths\n if(runtimeLocations && runtimeLocations[typeIdentifier]){\n runtimeLocation = runtimeLocations[typeIdentifier];\n } else{\n runtimeLocation = self.getAssetManager().resolveBy('portableElementLocation', typeIdentifier);\n }\n if(runtimeLocation){\n localRequireConfig.paths[typeIdentifier] = runtimeLocation;\n require.config(localRequireConfig);\n }\n\n //load the entrypoint\n require([entryPoint], function(){\n\n var pci = _getPci(interaction);\n if(pci){\n //call pci initialize() to render the pci\n pci.initialize(id, $dom[0], config);\n //restore context (state + response)\n pci.setSerializedState(state);\n pci.setResponse(response);\n\n //forward internal PCI event responseChange\n interaction.onPci('responseChange', function(){\n containerHelper.triggerResponseChangeEvent(interaction);\n });\n\n return resolve();\n }\n\n return reject('Unable to initiliaze pci : ' + id);\n\n }, reject);\n });\n };\n\n /**\n * Programmatically set the response following the json schema described in\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * @param {Object} interaction\n * @param {Object} response\n */\n var setResponse = function(interaction, response){\n _getPci(interaction).setResponse(response);\n };\n\n /**\n * Get the response in the json format described in\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * @param {Object} interaction\n * @returns {Object}\n */\n var getResponse = function(interaction){\n return _getPci(interaction).getResponse();\n };\n\n /**\n * Remove the current response set in the interaction\n * The state may not be restored at this point.\n *\n * @param {Object} interaction\n */\n var resetResponse = function(interaction){\n _getPci(interaction).resetResponse();\n };\n\n /**\n * Reverse operation performed by render()\n * After this function is executed, only the inital naked markup remains\n * Event listeners are removed and the state and the response are reset\n *\n * @param {Object} interaction\n */\n var destroy = function(interaction){\n _getPci(interaction).destroy();\n };\n\n /**\n * Restore the state of the interaction from the serializedState.\n *\n * @param {Object} interaction\n * @param {Object} serializedState - json format\n */\n var setSerializedState = function(interaction, serializedState){\n _getPci(interaction).setSerializedState(serializedState);\n };\n\n /**\n * Get the current state of the interaction as a string.\n * It enables saving the state for later usage.\n *\n * @param {Object} interaction\n * @returns {Object} json format\n */\n var getSerializedState = function(interaction){\n return _getPci(interaction).getSerializedState();\n };\n\n return {\n qtiClass : 'customInteraction',\n template : tpl,\n getData : function(customInteraction, data){\n\n //remove ns + fix media file path\n var markup = data.markup;\n markup = util.removeMarkupNamespaces(markup);\n markup = PortableElement.fixMarkupMediaSources(markup, this);\n data.markup = markup;\n\n return data;\n },\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n getSerializedState : getSerializedState,\n setSerializedState : setSerializedState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/prompt', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div class=\\\"qti-prompt-container\\\" data-html-editable-container>\\n <div class=\\\"qti-prompt\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-html-editable>\";\n if (helper = helpers.body) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.body); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"</div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/Prompt',[\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/prompt',\n 'taoQtiItem/qtiCommonRenderer/helpers/container'],\nfunction(tpl, containerHelper){\n 'use strict';\n\n return {\n qtiClass : 'prompt',\n template : tpl,\n getContainer : containerHelper.get\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/selectPointInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-graphicInteraction qti-selectPointInteraction clearfix\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n <div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"image-editor solid\\\">\\n <div id='graphic-paper-\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"' class=\\\"main-image-box\\\"></div>\\n </div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/SelectPointInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'core/promise',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/selectPointInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/Graphic',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager'\n], function($, _, __, Promise, tpl, graphic, pciResponse, containerHelper, instructionMgr){\n 'use strict';\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n */\n var render = function render(interaction){\n var self = this;\n\n return new Promise(function(resolve, reject){\n var $container = containerHelper.get(interaction);\n var background = interaction.object.attributes;\n\n $container\n .off('resized.qti-widget.resolve')\n .one('resized.qti-widget.resolve', resolve);\n\n //create the paper\n interaction.paper = graphic.responsivePaper( 'graphic-paper-' + interaction.serial, interaction.serial, {\n width : background.width,\n height : background.height,\n img : self.resolveUrl(background.data),\n imgId : 'bg-image-' + interaction.serial,\n container : $container\n });\n\n //enable to select the paper to position a target\n _enableSelection(interaction);\n\n //set up the constraints instructions\n instructionMgr.minMaxChoiceInstructions(interaction, {\n min: interaction.attr('minChoices'),\n max: interaction.attr('maxChoices'),\n choiceCount : false,\n getResponse : _getRawResponse,\n onError : function(data){\n if(data){\n graphic.highlightError(data.target, 'success');\n }\n }\n });\n });\n };\n\n /**\n * Make the image clickable and place targets at the given position.\n * @private\n * @param {object} interaction\n */\n var _enableSelection = function _enableSelection(interaction){\n var maxChoices = interaction.attr('maxChoices');\n var $container = containerHelper.get(interaction);\n var $imageBox = $container.find('.main-image-box');\n var isResponsive = $container.hasClass('responsive');\n var image = interaction.paper.getById('bg-image-' + interaction.serial);\n var isTouch = false;\n\n //used to see if we are in a touch context\n image.touchstart(function(){\n isTouch = true;\n image.untouchstart();\n });\n\n //get the point on click\n image.click(function imageClicked(event){\n\n if(maxChoices > 0 && _getRawResponse(interaction).length >= maxChoices){\n instructionMgr.validateInstructions(interaction);\n return;\n }\n\n //get the current mouse point, even on a responsive paper\n var point = graphic.getPoint(event, interaction.paper, $imageBox, isResponsive);\n\n //add the point to the paper\n graphic.createTarget(interaction.paper, {\n point : point,\n create : changePoint,\n remove : function pointRemoved (){\n changePoint();\n }\n });\n });\n\n /**\n * When there is point added or reomved\n */\n function changePoint(target){\n if(isTouch && target){\n graphic.createTouchCircle(interaction.paper, target.getBBox());\n }\n containerHelper.triggerResponseChangeEvent(interaction);\n instructionMgr.validateInstructions(interaction, {target : target});\n }\n };\n /**\n * Get the responses from the interaction\n * @private\n * @param {Object} interaction\n * @returns {Array} of points\n */\n var _getRawResponse = function _getRawResponse(interaction){\n var points = [];\n interaction.paper.forEach(function(element){\n var point = element.data('point');\n if(typeof point === 'object' && point.x && point.y){\n points.push([Math.round(point.x), Math.round(point.y)]);\n }\n });\n return points;\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n\n var responseValues;\n if(response && interaction.paper){\n\n try{\n responseValues = pciResponse.unserialize(response, interaction);\n }catch(e){\n }\n\n if(_.isArray(responseValues)){\n _(responseValues)\n .flatten()\n .map(function(value, index){\n if(index % 2 === 0){\n return {x : value, y : responseValues[index + 1]};\n }\n })\n .filter(_.isObject)\n .forEach(function(point){\n graphic.createTarget(interaction.paper, {\n point : point\n });\n });\n }\n }\n };\n\n /**\n * Reset the current responses of the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var resetResponse = function resetResponse(interaction){\n interaction.paper.forEach(function(element){\n var point = element.data('point');\n if(typeof point === 'object'){\n graphic.trigger(element, 'click');\n }\n });\n };\n\n\n /**\n i* Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n var raw = _getRawResponse(interaction);\n var response = pciResponse.serialize(_getRawResponse(interaction), interaction);\n return response;\n };\n\n /**\n * Clean interaction destroy\n * @param {Object} interaction\n */\n var destroy = function destroy(interaction){\n var $container;\n if(interaction.paper){\n $container = containerHelper.get(interaction);\n\n $(window).off('resize.qti-widget.' + interaction.serial);\n $container.off('resize.qti-widget.' + interaction.serial);\n\n interaction.paper.clear();\n instructionMgr.removeInstructions(interaction);\n\n $('.main-image-box', $container).empty().removeAttr('style');\n $('.image-editor', $container).removeAttr('style');\n }\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n\n /**\n * Expose the common renderer for the interaction\n * @exports qtiCommonRenderer/renderers/interactions/SelectPointInteraction\n */\n return {\n qtiClass : 'selectPointInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/sliderInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-blockInteraction qti-sliderInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"sliderInteraction\\\" >\\r\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\r\\n <div class=\\\"instruction-container\\\"></div>\\r\\n</div>\\r\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/SliderInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/sliderInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'nouislider'\n], function($, _, __,tpl, containerHelper, instructionMgr, pciResponse){\n 'use strict';\n\n var _slideTo = function(options){\n options.sliderCurrentValue.find('.qti-slider-cur-value').text(options.value);\n options.sliderValue.val(options.value);\n };\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10333\n *\n * @param {object} interaction\n */\n var render = function(interaction){\n\n var attributes = interaction.getAttributes(),\n $container = interaction.getContainer(),\n $el = $('<div />').attr({'id' : attributes.responseIdentifier + '-qti-slider', 'class' : 'qti-slider'}), //slider element\n $sliderLabels = $('<div />').attr({'class' : 'qti-slider-values'}),\n $sliderCurrentValue = $('<div />').attr({'id' : attributes.responseIdentifier + '-qti-slider-cur-value', 'class' : 'qti-slider-cur-value'}), //show the current selected value\n $sliderValue = $('<input />').attr({'type' : 'hidden', 'id' : attributes.responseIdentifier + '-qti-slider-value'}); //the input that always holds the slider value\n\n //getting the options\n var orientation = 'horizontal',\n reverse = typeof attributes.reverse !== 'undefined' && attributes.reverse ? true : false, //setting the slider whether to be reverse or not\n min = parseInt(attributes.lowerBound),\n max = parseInt(attributes.upperBound),\n step = typeof attributes.step !== 'undefined' && attributes.step ? parseInt(attributes.step) : 1, //default value as per QTI standard\n steps = (max - min) / step; //number of the steps\n\n //add the containers\n $sliderCurrentValue.append('<span class=\"qti-slider-cur-value-text\">'+__('Current value:')+' </span>')\n .append('<span class=\"qti-slider-cur-value\"></span>');\n\n $sliderLabels.append('<span class=\"slider-min\">' + (!reverse ? min : max) + '</span>')\n .append('<span class=\"slider-max\">' + (!reverse ? max : min) + '</span>');\n\n interaction.getContainer().append($el)\n .append($sliderLabels)\n .append($sliderCurrentValue)\n .append($sliderValue);\n\n //setting the orientation of the slider\n if(typeof attributes.orientation !== 'undefined' && $.inArray(attributes.orientation, ['horizontal', 'vertical']) > -1){\n orientation = attributes.orientation;\n }\n\n var sliderSize = 0;\n\n if(orientation === 'horizontal'){\n $container.addClass('qti-slider-horizontal');\n }else{\n var maxHeight = 300;\n sliderSize = steps * 20;\n if(sliderSize > maxHeight){\n sliderSize = maxHeight;\n }\n $container.addClass('qti-slider-vertical');\n $el.height(sliderSize + 'px');\n $sliderLabels.height(sliderSize + 'px');\n }\n\n //set the middle value if the stepLabel attribute is enabled\n if(typeof attributes.stepLabel !== 'undefined' && attributes.stepLabel){\n var middleStep = parseInt(steps / 2),\n leftOffset = (100 / steps) * middleStep,\n middleValue = reverse ? max - (middleStep * step) : min + (middleStep * step);\n\n if(orientation === 'horizontal'){\n $sliderLabels.find('.slider-min').after('<span class=\"slider-middle\" style=\"left:' + leftOffset + '%\">' + middleValue + '</span>');\n }else{\n $sliderLabels.find('.slider-min').after('<span class=\"slider-middle\" style=\"top:' + leftOffset + '%\">' + middleValue + '</span>');\n }\n\n }\n\n //create the slider\n $el.noUiSlider({\n start : reverse ? max : min,\n range: {\n 'min': min,\n 'max': max\n },\n step : step,\n orientation : orientation\n }).on('slide', function(e){\n var val = parseInt($(this).val());\n if((interaction.attr('reverse'))){\n val = (max + min) - val;\n }\n val = Math.round(val * 1000) / 1000;\n _slideTo({\n 'value' : val,\n 'sliderValue' : $sliderValue,\n 'sliderCurrentValue' : $sliderCurrentValue\n });\n\n containerHelper.triggerResponseChangeEvent(interaction);\n });\n\n _slideTo({\n 'value' : min,\n 'sliderValue' : $sliderValue,\n 'sliderCurrentValue' : $sliderCurrentValue\n });\n };\n\n var resetResponse = function(interaction){\n var attributes = interaction.getAttributes(),\n $el = $('#' + attributes.responseIdentifier + '-qti-slider'),\n $sliderValue = $('#' + attributes.responseIdentifier + '-qti-slider-value'),\n $sliderCurrentValue = $('#' + attributes.responseIdentifier + '-qti-slider-cur-value'),\n min = parseInt(attributes.lowerBound),\n max = parseInt(attributes.upperBound),\n reverse = typeof attributes.reverse !== 'undefined' && attributes.reverse ? true : false,\n startValue = reverse ? max : min;\n\n _slideTo({\n 'value' : min,\n 'sliderValue' : $sliderValue,\n 'sliderCurrentValue' : $sliderCurrentValue\n });\n\n $el.val(startValue);\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10333\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n var attributes = interaction.getAttributes(),\n $sliderValue = $('#' + attributes.responseIdentifier + '-qti-slider-value'),\n $sliderCurrentValue = $('#' + attributes.responseIdentifier + '-qti-slider-cur-value'),\n $el = $('#' + attributes.responseIdentifier + '-qti-slider'),\n min = parseInt(attributes.lowerBound),\n max = parseInt(attributes.upperBound),\n value;\n\n value = pciResponse.unserialize(response, interaction)[0];\n\n _slideTo({\n 'value' : value,\n 'sliderValue' : $sliderValue,\n 'sliderCurrentValue' : $sliderCurrentValue\n });\n\n $el.val(interaction.attr('reverse') ? (max + min) - value : value);\n };\n\n var _getRawResponse = function(interaction){\n\n var value,\n attributes = interaction.getAttributes(),\n baseType = interaction.getResponseDeclaration().attr('baseType'),\n min = parseInt(attributes.lowerBound),\n $sliderValue = $('#' + attributes.responseIdentifier + '-qti-slider-value');\n \n if(baseType === 'integer'){\n value = parseInt($sliderValue.val());\n }else if(baseType === 'float'){\n value = parseFloat($sliderValue.val());\n }\n\n return isNaN(value) ? min : value;\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10333\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n return pciResponse.serialize([_getRawResponse(interaction)], interaction);\n };\n\n var destroy = function(interaction) {\n var $container = interaction.getContainer();\n\n $container.empty();\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n\n return {\n qtiClass : 'sliderInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/textEntryInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \"id=\\\"\"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))\n + \"\\\"\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1;\n buffer += \" \"\n + escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class'])),typeof stack1 === functionType ? stack1.apply(depth0) : stack1));\n return buffer;\n }\n\n buffer += \"<input \";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1.id), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \" class=\\\"qti-interaction qti-inlineInteraction qti-textEntryInteraction\";\n stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.attributes)),stack1 == null || stack1 === false ? stack1 : stack1['class']), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" data-qti-class=\\\"textEntryInteraction\\\" type=\\\"text\\\">\\n\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n * @author Ivan Klimchuk <klimchuk@1pt.com>\n */\ndefine('util/locale',['module'], function (module) {\n 'use strict';\n\n var configuration = module.config();\n\n /**\n * Util object for manipulate locale dependent data\n * @exports util/locale\n */\n return {\n\n /**\n * Returns config of component\n * @returns {*}\n */\n getConfig: function getConfig() {\n return configuration;\n },\n\n /**\n * Sets config of component\n * @param config\n */\n setConfig: function setConfig(config) {\n configuration = config || {};\n },\n\n /**\n * Returns current system decimal separator\n * @returns {string}\n */\n getDecimalSeparator: function getDecimalSeparator() {\n return this.getConfig() && this.getConfig().decimalSeparator ? this.getConfig().decimalSeparator : '.';\n },\n\n /**\n * Returns current system thousands separator\n * @returns {string}\n */\n getThousandsSeparator: function getThousandsSeparator() {\n return this.getConfig() && this.getConfig().thousandsSeparator ? this.getConfig().thousandsSeparator : '';\n },\n\n /**\n * Parse float values with process locale features\n * @param number\n * @returns {Number}\n */\n parseFloat: function (number) {\n if (!number) {\n return parseFloat(number);\n }\n\n var parts = number.split(this.getDecimalSeparator(), 2);\n var ones = parts[0];\n\n if (this.getThousandsSeparator().length) {\n ones = parts[0].replace(new RegExp('\\\\' + this.getThousandsSeparator(), 'g'), '');\n }\n\n return parseFloat(ones) + parseFloat('0.' + parts[1]);\n },\n\n /**\n * Parse integer values with process locale features\n * @param number\n * @param numericBase\n * @returns {Number}\n */\n parseInt: function (number, numericBase) {\n\n if (this.getThousandsSeparator().length) {\n number = number.replace(new RegExp('\\\\' + this.getThousandsSeparator(), 'g'), '');\n }\n\n return parseInt(number, numericBase);\n }\n };\n\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/TextEntryInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/textEntryInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/PciResponse',\n 'util/locale',\n 'polyfill/placeholders',\n 'ui/tooltip'\n], function($, _, __, tpl, containerHelper, instructionMgr, pciResponse, locale){\n 'use strict';\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10333\n *\n * @param {object} interaction\n */\n var render = function(interaction){\n var attributes = interaction.getAttributes(),\n $el = interaction.getContainer();\n\n\n\n //setting up the width of the input field\n if(attributes.expectedLength){\n $el.css('width', parseInt(attributes.expectedLength) + 'ch');\n }\n\n //checking if there's a pattern mask for the input\n if(attributes.patternMask){\n //set up the tooltip plugin for the input\n $el.qtip({\n theme : 'error',\n show : {\n event : 'custom'\n },\n hide : {\n event : 'custom'\n },\n content: {\n text: __('This is not a valid answer')\n }\n });\n }\n\n //checking if there's a placeholder for the input\n if(attributes.placeholderText){\n $el.attr('placeholder', attributes.placeholderText);\n }\n\n $el.on('keyup.commonRenderer', _.debounce(function(){\n \n var regex;\n if(attributes.patternMask){\n regex = new RegExp('^' + attributes.patternMask + '$');\n if(regex.test($el.val())){\n $el.removeClass('invalid').qtip('hide');\n } else {\n $el.addClass('invalid').qtip('show');//adding the class invalid prevent the invalid response to be submitted\n }\n }\n containerHelper.triggerResponseChangeEvent(interaction);\n \n }, 600)).on('keydown.commonRenderer', function(){\n //hide the error message while the test taker is inputing an error (let's be indulgent, she is trying to fix her error)\n if(attributes.patternMask){\n $el.qtip('hide');\n }\n });\n };\n\n var resetResponse = function(interaction){\n interaction.getContainer().val('');\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10333\n *\n * Special value: the empty object value {} resets the interaction responses\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function(interaction, response){\n\n var responseValue;\n\n try{\n responseValue = pciResponse.unserialize(response, interaction);\n }catch(e){\n }\n\n if(responseValue && responseValue.length){\n interaction.getContainer().val(responseValue[0]);\n }\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10333\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function(interaction){\n var ret = {'base' : {}},\n value,\n $el = interaction.getContainer(),\n attributes = interaction.getAttributes(),\n baseType = interaction.getResponseDeclaration().attr('baseType'),\n numericBase = attributes.base || 10;\n \n if($el.hasClass('invalid') || (attributes.placeholderText && $el.val() === attributes.placeholderText)){\n //invalid response or response equals to the placeholder text are considered empty\n value = '';\n }else{\n if (baseType === 'integer') {\n value = locale.parseInt($el.val(), numericBase);\n } else if (baseType === 'float') {\n value = locale.parseFloat($el.val());\n } else if (baseType === 'string') {\n value = $el.val();\n }\n }\n\n ret.base[baseType] = isNaN(value) && typeof value === 'number' ? '' : value;\n\n return ret;\n };\n\n var destroy = function(interaction){\n\n //remove event\n $(document).off('.commonRenderer');\n containerHelper.get(interaction).off('.commonRenderer');\n\n //remove instructions\n instructionMgr.removeInstructions(interaction);\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state){\n if(_.isObject(state)){\n if(state.response){\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction){\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if(response){\n state.response = response;\n }\n return state;\n };\n\n\n return {\n qtiClass : 'textEntryInteraction',\n template : tpl,\n render : render,\n getContainer : containerHelper.get,\n setResponse : setResponse,\n getResponse : getResponse,\n resetResponse : resetResponse,\n destroy : destroy,\n setState : setState,\n getState : getState\n };\n});\n\n","\ndefine('tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/uploadInteraction', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;\n\nfunction program1(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers.prompt) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.prompt); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"accept=\\\"\";\n if (helper = helpers.accept) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.accept); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\"\";\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var stack1, helper;\n if (helper = helpers['visible-file-upload-preview']) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0['visible-file-upload-preview']); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n if(stack1 || stack1 === 0) { return stack1; }\n else { return ''; }\n }\n\n buffer += \"<div class=\\\"qti-interaction qti-blockInteraction qti-uploadInteraction\\\" data-serial=\\\"\";\n if (helper = helpers.serial) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.serial); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\">\\n\t\";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.prompt), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n\t<div class=\\\"instruction-container\\\"></div>\\n <div class=\\\"file-upload fixed-grid-row lft\\\">\\n <div class=\\\"progressbar\\\"></div>\\n <span class=\\\"btn-info small col-4\\\"></span>\\n <span class=\\\"file-name placeholder col-8 truncate\\\"></span>\\n <input type=\\\"file\\\" \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.accept), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"/>\\n </div>\\n <div class=\\\"file-upload-preview lft \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.isPreviewable), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\\">\\n <p class=\\\"nopreview\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"No preview available\", options) : helperMissing.call(depth0, \"__\", \"No preview available\", options)))\n + \"</p>\\n </div>\\n\\n <div class=\\\"file-upload-preview-popup modal\\\">\\n <div class=\\\"modal-body\\\">\\n </div>\\n </div>\\n</div>\\n\";\n return buffer;\n });\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;\n */\ndefine('taoQtiItem/qtiCommonRenderer/helpers/uploadMime',[\n 'i18n'\n], function(__){\n \"use strict\";\n /**\n * @TODO these mime types are not up-to-date, in particular the MS ones\n * refer to http://filext.com/faq/office_mime_types.php\n * @type {{getMimeTypes: getMimeTypes}}\n */\n var uploadMime = {\n getMimeTypes : function() {\n return [\n { \"mime\" : \"application/zip\", \"label\" : __(\"ZIP archive\") },\n { \"mime\" : \"text/plain\", \"label\" : __(\"Plain text\") },\n { \"mime\" : \"application/pdf\", \"label\" : __(\"PDF file\") },\n { \"mime\" : \"image/jpeg\", \"label\" : __(\"JPEG image\") },\n { \"mime\" : \"image/png\", \"label\" : __(\"PNG image\") },\n { \"mime\" : \"image/gif\", \"label\" : __(\"GIF image\") },\n { \"mime\" : \"image/svg+xml\", \"label\" : __(\"SVG image\") },\n { \"mime\" : \"application/ogg\", \"label\" : __(\"MPEG audio\") },\n { \"mime\" : \"audio/x-ms-wma\", \"label\" : __(\"Windows Media audio\") },\n { \"mime\" : \"audio/x-wav\", \"label\" : __(\"WAV audio\") },\n { \"mime\" : \"video/mpeg\", \"label\" : __(\"MPEG video\") },\n { \"mime\" : \"video/mp4\", \"label\" : __(\"MP4 video\") },\n { \"mime\" : \"video/quicktime\", \"label\" : __(\"Quicktime video\") },\n { \"mime\" : \"video/x-ms-wmv\", \"label\" : __(\"Windows Media video\") },\n { \"mime\" : \"video/x-flv\", \"label\" : __(\"Flash video\") },\n { \"mime\" : \"text/csv\", \"label\" : __(\"CSV file\") },\n { \"mime\" : \"application/msword\", \"label\" : __(\"Microsoft Word\") },\n { \"mime\" : \"application/vnd.ms-excel\", \"label\" : __(\"Microsoft Excel\") },\n { \"mime\" : \"application/vnd.ms-powerpoint\", \"label\" : __(\"Microsoft Powerpoint\") }\n ];\n }\n };\n\n return uploadMime;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n/**\n * @author Sam Sipasseuth <sam@taotesting.com>\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoQtiItem/qtiCommonRenderer/renderers/interactions/UploadInteraction',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'context',\n 'tpl!taoQtiItem/qtiCommonRenderer/tpl/interactions/uploadInteraction',\n 'taoQtiItem/qtiCommonRenderer/helpers/container',\n 'taoQtiItem/qtiCommonRenderer/helpers/instructions/instructionManager',\n 'taoQtiItem/qtiCommonRenderer/helpers/uploadMime',\n 'ui/progressbar',\n 'ui/previewer',\n 'ui/modal',\n 'ui/waitForMedia'\n], function ($, _, __, context, tpl, containerHelper, instructionMgr, uploadHelper) {\n 'use strict';\n\n //FIXME this response is global to the app, it must be linked to the interaction!\n var _response = {\"base\": null};\n\n var _initialInstructions = __('Browse your computer and select the appropriate file.');\n\n var _readyInstructions = __('The selected file is ready to be sent.');\n\n var _handleSelectedFiles = function (interaction, file) {\n instructionMgr.removeInstructions(interaction);\n instructionMgr.appendInstruction(interaction, _initialInstructions);\n\n var $container = containerHelper.get(interaction);\n\n // Show information about the processed file to the candidate.\n var filename = file.name;\n var filesize = file.size;\n var filetype = file.type;\n\n if (!validateFileType(file, interaction)) {\n instructionMgr.removeInstructions(interaction);\n var expectedType = _.find(uploadHelper.getMimeTypes(), {mime : interaction.attr('type')}),\n message = __('Wrong type of file. Expected %s', expectedType ? expectedType.label : interaction.attr('type'));\n\n instructionMgr.appendInstruction(interaction, message, function () {\n this.setLevel('error');\n });\n instructionMgr.validateInstructions(interaction);\n return;\n }\n\n $container.find('.file-name').empty()\n .append(filename);\n\n // Let's read the file to get its base64 encoded content.\n var reader = new FileReader();\n\n // Update file processing progress.\n\n reader.onload = function (e) {\n instructionMgr.removeInstructions(interaction);\n instructionMgr.appendInstruction(interaction, _readyInstructions, function () {\n this.setLevel('success');\n });\n instructionMgr.validateInstructions(interaction);\n\n $container.find('.progressbar').progressbar('value', 100);\n\n var base64Data = e.target.result;\n var commaPosition = base64Data.indexOf(',');\n\n // Store the base64 encoded data for later use.\n var base64Raw = base64Data.substring(commaPosition + 1);\n _response = {\"base\": {\"file\": {\"data\": base64Raw, \"mime\": filetype, \"name\": filename}}};\n\n var visibleFileUploadPreview = getCustomData(interaction);\n\n var $previewArea = $container.find('.file-upload-preview');\n\n $previewArea\n .toggleClass('visible-file-upload-preview runtime-visible-file-upload-preview', visibleFileUploadPreview.isPreviewable)\n .previewer({\n url: reader.result,\n name: filename,\n type: filetype.substr(0, filetype.indexOf('/'))\n });\n\n // we wait for the image to be completely loaded\n $previewArea.waitForMedia(function(){\n var $originalImg = $previewArea.find('img'),\n $largeDisplay = $('.file-upload-preview-popup'),\n $item = $('.qti-item'),\n itemWidth = $item.width(),\n winWidth = $(window).width() - 80,\n fullHeight = $('body').height(),\n imgNaturalWidth,\n isOversized,\n modalWidth;\n\n if(!$originalImg.length) {\n return;\n }\n\n imgNaturalWidth = $originalImg[0].naturalWidth;\n isOversized = imgNaturalWidth > itemWidth;\n modalWidth = Math.min(winWidth, imgNaturalWidth);\n\n $previewArea.toggleClass('clickable', isOversized);\n\n if(!isOversized) {\n return;\n }\n\n $previewArea.on('click', function(){\n\n $('.upload-ia-modal-bg').remove();\n\n // remove any previous unnecessary content before inserting the preview image\n var $modalBody = $largeDisplay.find('.modal-body');\n $modalBody.empty().append($originalImg.clone());\n\n $largeDisplay\n .on('opened.modal', function(){\n\n // prevents the rest of the page from scrolling when modal is open\n $('.tao-item-scope.tao-preview-scope').css('overflow', 'hidden');\n\n $largeDisplay.css({\n width: modalWidth,\n height: fullHeight,\n left: (modalWidth - itemWidth -40) / -2\n });\n\n })\n .on('closed.modal', function(){\n // make the page scrollable again\n $('.tao-item-scope.tao-preview-scope').css('overflow', 'auto');\n\n })\n .modal({modalOverlayClass: 'modal-bg upload-ia-modal-bg'});\n\n });\n });\n\n };\n\n reader.onloadstart = function (e) {\n instructionMgr.removeInstructions(interaction);\n $container.find('.progressbar').progressbar('value', 0);\n };\n\n reader.onprogress = function (e) {\n var percentProgress = Math.ceil(Math.round(e.loaded) / Math.round(e.total) * 100);\n $container.find('.progressbar').progressbar('value', percentProgress);\n };\n\n reader.readAsDataURL(file);\n\n };\n\n /**\n * Validate type of selected file\n * @param file\n * @param interaction\n * @returns {boolean}\n */\n function validateFileType (file, interaction) {\n var expectedType = interaction.attr('type'),\n result = true;\n if (expectedType) {\n result = expectedType === file.type;\n }\n return result;\n }\n\n var _resetGui = function (interaction) {\n var $container = containerHelper.get(interaction);\n $container.find('.file-name').text(__('No file selected'));\n $container.find('.btn-info').text(__('Browse...'));\n $container.find('.file-upload-preview').toggleClass(\n 'visible-file-upload-preview',\n (interaction.attr('type') && interaction.attr('type').indexOf('image') === 0) ? true : false\n );\n };\n\n /**\n * Init rendering, called after template injected into the DOM\n * All options are listed in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n */\n var render = function (interaction, options) {\n var $container = containerHelper.get(interaction);\n _resetGui(interaction);\n\n instructionMgr.appendInstruction(interaction, _initialInstructions);\n\n var changeListener = function (e) {\n var file = e.target.files[0];\n\n // Are you really sure something was selected\n // by the user... huh? :)\n if (typeof(file) !== 'undefined') {\n _handleSelectedFiles(interaction, file);\n }\n };\n\n var $input = $container.find('input');\n\n $container.find('.progressbar').progressbar();\n\n if (!window.FileReader) {\n throw new Error('FileReader API not supported! Please use a compliant browser!');\n }\n $input.bind('change', changeListener);\n\n // IE Specific hack, prevents button to slightly move on click\n $input.bind('mousedown', function (e) {\n e.preventDefault();\n $(this).blur();\n return false;\n });\n };\n\n var resetResponse = function (interaction) {\n _resetGui(interaction);\n };\n\n /**\n * Set the response to the rendered interaction.\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @param {object} response\n */\n var setResponse = function (interaction, response) {\n var $container = containerHelper.get(interaction);\n\n if (response.base !== null) {\n var filename = (typeof response.base.file.name !== 'undefined') ? response.base.file.name :\n 'previously-uploaded-file';\n $container.find('.file-name').empty()\n .text(filename);\n }\n\n _response = response;\n };\n\n /**\n * Return the response of the rendered interaction\n *\n * The response format follows the IMS PCI recommendation :\n * http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html#_Toc353965343\n *\n * Available base types are defined in the QTI v2.1 information model:\n * http://www.imsglobal.org/question/qtiv2p1/imsqti_infov2p1.html#element10321\n *\n * @param {object} interaction\n * @returns {object}\n */\n var getResponse = function (interaction) {\n return _response;\n };\n\n var destroy = function (interaction) {\n\n //remove event\n $(document).off('.commonRenderer');\n containerHelper.get(interaction).off('.commonRenderer');\n\n //remove instructions\n instructionMgr.removeInstructions(interaction);\n\n //remove all references to a cache container\n containerHelper.reset(interaction);\n };\n\n /**\n * Set the interaction state. It could be done anytime with any state.\n *\n * @param {Object} interaction - the interaction instance\n * @param {Object} state - the interaction state\n */\n var setState = function setState(interaction, state) {\n if (_.isObject(state)) {\n if (state.response) {\n interaction.resetResponse();\n interaction.setResponse(state.response);\n }\n }\n };\n\n /**\n * Get the interaction state.\n *\n * @param {Object} interaction - the interaction instance\n * @returns {Object} the interaction current state\n */\n var getState = function getState(interaction) {\n var $container;\n var state = {};\n var response = interaction.getResponse();\n\n if (response) {\n state.response = response;\n }\n return state;\n };\n\n /**\n * Set additional data to the template (data that are not really part of the model).\n * @param {Object} interaction - the interaction\n * @param {Object} [data] - interaction custom data\n * @returns {Object} custom data\n * @TODO isPreviwable could be nicely implemented using tao/views/js/core/mimetype.js\n * This way we could cover a lot more types. How could this be matched with the preview templates\n * in tao/views/js/ui/previewer.js\n */\n function getCustomData (interaction, data) {\n data = _.merge(data || {}, {\n isPreviewable: interaction.attr('type') && interaction.attr('type').indexOf('image') === 0,\n accept : interaction.attr('type') || undefined\n });\n return data;\n };\n\n return {\n qtiClass: 'uploadInteraction',\n template: tpl,\n render: render,\n getContainer: containerHelper.get,\n setResponse: setResponse,\n getResponse: getResponse,\n resetResponse: resetResponse,\n destroy: destroy,\n setState: setState,\n getState: getState,\n getData: getCustomData,\n\n // Exposed private methods for qtiCreator\n resetGui: _resetGui\n };\n\n});\n\n","\n(function(c){var d=document,a='appendChild',i='styleSheet',s=d.createElement('style');s.type='text/css';d.getElementsByTagName('head')[0][a](s);s[i]?s[i].cssText=c:s[a](d.createTextNode(c));})\n('@-o-keyframes loadingbar{0%{left:-10%}50%{left:90%}100%{left:-10%}}@-moz-keyframes loadingbar{0%{left:-10%}50%{left:90%}100%{left:-10%}}@-webkit-keyframes loadingbar{0%{left:-10%}50%{left:90%}100%{left:-10%}}@keyframes loadingbar{0%{left:-10%}50%{left:90%}100%{left:-10%}}.loading-bar{height:6px;position:absolute;width:100%;top:0px;display:none;overflow-x:hidden;overflow-y:visible;z-index:10000}.loading-bar.fixed{position:fixed;width:100%}.loading-bar.fixed:before{top:0 !important}.loading-bar.loading{display:block}.loading-bar.loading:before{position:absolute;top:86px;content:\\'\\';height:6px;width:20%;display:block;transform:translateZ(0);background:-webkit-linear-gradient(to right, transparent 0%, #c35a13 20%, #c35a13 80%, transparent 100%);background:-moz-linear-gradient(to right, transparent 0%, #c35a13 20%, #c35a13 80%, transparent 100%);background:-ms-linear-gradient(to right, transparent 0%, #c35a13 20%, #c35a13 80%, transparent 100%);background:-o-linear-gradient(to right, transparent 0%, #c35a13 20%, #c35a13 80%, transparent 100%);background:linear-gradient(to right, transparent 0%, #c35a13 20%, #c35a13 80%, transparent 100%);-webkit-animation:loadingbar 5s linear infinite;-moz-animation:loadingbar 5s linear infinite;-ms-animation:loadingbar 5s linear infinite;-o-animation:loadingbar 5s linear infinite;animation:loadingbar 5s linear infinite}.no-version-warning .loading-bar:before{top:58px}.action-bar{background:#266d9c;padding:3px;overflow:hidden;color:#e6eef4}.action-bar li{float:left}.action-bar li .li-inner{padding-bottom:1px;text-decoration:none !important;outline:0;display:inline-block;color:inherit}.action-bar li .li-inner:hover{color:white}.action-bar li span.glyph{text-shadow:0 0 0 transparent;color:inherit}.action-bar li input{width:100%;font-size:12px;font-size:1.2rem;padding:2px 4px}.action-bar li.active .li-inner{color:white}.action-bar.horizontal-action-bar{padding:5px;height:35px}.action-bar.horizontal-action-bar .search-area{margin:2px 0 0 0;border:none;float:right;display:inline-block;position:relative;padding:0 30px 0 0}.action-bar.horizontal-action-bar .search-area input{padding-right:34px;min-width:250px !important}.action-bar.horizontal-action-bar .search-area button{position:absolute;right:32px;top:-2px;cursor:default;opacity:.5;background:transparent;width:25px;height:25px}.action-bar.horizontal-action-bar .search-area button:before{color:#666}.action-bar.horizontal-action-bar .search-area .icon-help{position:absolute;right:5px;top:-1px;text-shadow:0px 0px transparent;color:white;cursor:pointer;display:block;width:24px;height:24px;line-height:24px;text-align:center}.action-bar.horizontal-action-bar li{margin:0 1px;border:1px transparent solid;text-align:center;float:left}.action-bar.horizontal-action-bar li .glyph{width:14px}.action-bar.horizontal-action-bar li.btn-info{overflow:hidden;background:transparent}.action-bar.horizontal-action-bar li.btn-info:hover,.action-bar.horizontal-action-bar li.btn-info.active{border-color:rgba(255,255,255,0.3);opacity:1}.action-bar.horizontal-action-bar li.disabled{background:none !important;text-shadow:inherit !important;opacity:0.45 !important;color:inherit !important}.action-bar.horizontal-action-bar li.disabled a{cursor:not-allowed !important}.action-bar.vertical-action-bar li{max-height:60px}.action-bar.vertical-action-bar li .li-inner{height:60px;display:block;overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:12px;font-size:1.2rem;line-height:12px}.action-bar.vertical-action-bar li .glyph{display:block;margin:12px auto 3px;width:20px;height:20px}.action-bar.tree-action-bar{background:#f2f0ee;position:relative;left:-1px;padding:0;margin:0 2.85714% 8px 2.85714%;width:94.64286%;font-size:13px;font-size:1.3rem}.action-bar.tree-action-bar li{background:rgba(255,255,255,0.5);border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;line-height:1.3;padding:0;text-align:center;float:left;width:65px;height:65px;margin:0 1px 1px 0}.action-bar.tree-action-bar li .glyph{display:block;color:#0e5d91;margin:12px auto 1px !important;font-size:17px !important;font-size:1.7rem !important}.action-bar.tree-action-bar li .li-inner{display:block;height:65px;padding:2px;font-size:11px;font-size:1.1rem;color:#222}.action-bar.tree-action-bar li:hover{background:#ddd;color:#666}.action-bar .tree-filters{width:160px;position:relative}.action-bar .tree-filters input{padding-right:24px}.action-bar .tree-filters span{position:absolute;right:3px;color:#555;width:22px;top:2px;line-height:20px;display:inline-block;text-align:center;text-shadow:0 0 0 transparent;border-left:1px solid #ddd;cursor:pointer}.action-bar .tree-filters span.icon-close{display:none}.action-bar .tree-filters span:hover{color:#0e5d91}@media (max-width: 1150px){.action-bar.horizontal-action-bar .search-area{float:none;position:absolute;right:0px}.action-bar.horizontal-action-bar .search-area input{padding-right:30px;min-width:auto !important;width:150px}.action-bar.horizontal-action-bar .search-area input:focus{width:220px}}body.oversized-nav:not(.delivery-scope) .action-bar.horizontal-action-bar .search-area{float:none;position:absolute;right:0px}body.oversized-nav:not(.delivery-scope) .action-bar.horizontal-action-bar .search-area input{padding-right:30px;min-width:auto !important;width:150px}body.oversized-nav:not(.delivery-scope) .action-bar.horizontal-action-bar .search-area input:focus{width:220px}.section-container{top:0 !important}.section-container .flex-container-full{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 100%;-webkit-flex:0 0 100%;flex:0 0 100%}.section-container .flex-container-half{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 50%;-webkit-flex:0 0 50%;flex:0 0 50%}.section-container .flex-container-third{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 33.33333%;-webkit-flex:0 0 33.33333%;flex:0 0 33.33333%}.section-container .flex-container-quarter{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 25%;-webkit-flex:0 0 25%;flex:0 0 25%}.section-container .flex-container-remaining{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:1 1 480px;-webkit-flex:1 1 480px;flex:1 1 480px}.section-container .flex-container-main-form{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 500px;-webkit-flex:0 0 500px;flex:0 0 500px;margin:0 20px 20px 0}.section-container .flex-container-navi{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 280px;-webkit-flex:0 0 280px;flex:0 0 280px}.section-container .section-header{border:none}.section-container .content-panel{width:100%;height:100%;margin:0;padding:0;border:none !important;display:box;display:-ms-flexbox;display:-webkit-flexbox;display:flexbox;display:-ms-flex;display:-webkit-flex;display:flex;-ms-direction:row;-webkit-direction:row;direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;flex-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;flex-line-pack:start;-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start;flex-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;align-items:stretch}.section-container .tab-container{border:none;display:none;list-style-type:none;padding:0;margin:0}.section-container .tab-container li{float:left;position:relative;top:0;padding:0;margin:0 1px 0px 0;border-top:1px solid #f2f0ee !important;border-bottom:1px solid #f2f0ee !important;background:#f2f0ee !important}.section-container .tab-container li a{top:0 !important;margin-bottom:0 !important;padding:6px 16px;text-decoration:none;min-height:32px;color:#222;float:left}.section-container .tab-container li.active,.section-container .tab-container li:hover{border-bottom-color:#4a85ac !important;border-top-color:#6e9dbd !important;background:#266d9c !important}.section-container .tab-container li.active a,.section-container .tab-container li:hover a{background:transparent !important;border-color:transparent !important;color:#fff !important;text-shadow:1px 1px 0 rgba(0,0,0,0.2)}.section-container .tab-container li.disabled:hover{background:#f2f0ee !important}.section-container .tab-container li.disabled:hover a{cursor:not-allowed !important;color:#222 !important}.section-container .navi-container{display:none;background:#f2f0ee;-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 280px;-webkit-flex:0 0 280px;flex:0 0 280px;border-right:1px #ddd solid}.section-container .navi-container .block-title{font-size:14px;font-size:1.4rem;padding:2px 8px;margin:0}.section-container .navi-container .tree-action-bar-box{margin:10px 0;opacity:0}.section-container .navi-container .tree-action-bar-box.active{opacity:1;-webkit-opacity:0.25s ease-in-out;-moz-opacity:0.25s ease-in-out;opacity:0.25s ease-in-out}.section-container .content-container{border:none;-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto;-ms-flex:1 1;-webkit-flex:1 1;flex:1 1}.section-container .content-block{padding:20px;overflow-y:auto;display:box;display:-ms-flexbox;display:-webkit-flexbox;display:flexbox;display:-ms-flex;display:-webkit-flex;display:flex;-ms-direction:row;-webkit-direction:row;direction:row;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;flex-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;flex-line-pack:start;-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start;flex-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;align-items:stretch}.section-container .content-block>.grid-container{width:100%}.section-container .content-block .data-container-wrapper{padding:0px 20px 0 0}.section-container .content-block .data-container-wrapper:before,.section-container .content-block .data-container-wrapper:after{content:\\\" \\\";display:table}.section-container .content-block .data-container-wrapper:after{clear:both}.section-container .content-block .data-container-wrapper>section,.section-container .content-block .data-container-wrapper .data-container{width:260px;margin:0 20px 20px 0;float:left;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px}.section-container .content-block .data-container-wrapper>section.double,.section-container .content-block .data-container-wrapper .data-container.double{width:540px}.section-container .content-block .data-container-wrapper>section .emptyContentFooter,.section-container .content-block .data-container-wrapper .data-container .emptyContentFooter{display:none}.section-container .content-block .data-container-wrapper>section .tree,.section-container .content-block .data-container-wrapper .data-container .tree{border:none;max-width:none;max-height:none}.section-container .content-block .data-container-wrapper>section form,.section-container .content-block .data-container-wrapper .data-container form{background:none;border:none;margin:0;padding:0}.section-container .content-block .data-container-wrapper>section>header,.section-container .content-block .data-container-wrapper>section .ui-widget-header,.section-container .content-block .data-container-wrapper .data-container>header,.section-container .content-block .data-container-wrapper .data-container .ui-widget-header{background:#f2f0ee;border-width:0px !important;border-bottom:1px #ddd solid !important}.section-container .content-block .data-container-wrapper>section>header h1,.section-container .content-block .data-container-wrapper>section>header h6,.section-container .content-block .data-container-wrapper>section .ui-widget-header h1,.section-container .content-block .data-container-wrapper>section .ui-widget-header h6,.section-container .content-block .data-container-wrapper .data-container>header h1,.section-container .content-block .data-container-wrapper .data-container>header h6,.section-container .content-block .data-container-wrapper .data-container .ui-widget-header h1,.section-container .content-block .data-container-wrapper .data-container .ui-widget-header h6{padding:4px;margin:0;font-size:14px;font-size:1.4rem}.section-container .content-block .data-container-wrapper>section>div,.section-container .content-block .data-container-wrapper>section .ui-widget-content,.section-container .content-block .data-container-wrapper>section .container-content,.section-container .content-block .data-container-wrapper .data-container>div,.section-container .content-block .data-container-wrapper .data-container .ui-widget-content,.section-container .content-block .data-container-wrapper .data-container .container-content{border-width:0px !important;overflow-y:auto;min-height:250px;padding:5px}.section-container .content-block .data-container-wrapper>section>div .icon-grip,.section-container .content-block .data-container-wrapper>section .ui-widget-content .icon-grip,.section-container .content-block .data-container-wrapper>section .container-content .icon-grip,.section-container .content-block .data-container-wrapper .data-container>div .icon-grip,.section-container .content-block .data-container-wrapper .data-container .ui-widget-content .icon-grip,.section-container .content-block .data-container-wrapper .data-container .container-content .icon-grip{cursor:move}.section-container .content-block .data-container-wrapper>section>footer,.section-container .content-block .data-container-wrapper>section .data-container-footer,.section-container .content-block .data-container-wrapper .data-container>footer,.section-container .content-block .data-container-wrapper .data-container .data-container-footer{background:#f2f0ee;text-align:right !important;padding:4px;border-width:0px !important;border-top:1px #ddd solid !important}.section-container .content-block .data-container-wrapper>section>footer .square,.section-container .content-block .data-container-wrapper>section .data-container-footer .square,.section-container .content-block .data-container-wrapper .data-container>footer .square,.section-container .content-block .data-container-wrapper .data-container .data-container-footer .square{width:28px}.section-container .content-block .data-container-wrapper>section>footer .square span,.section-container .content-block .data-container-wrapper>section .data-container-footer .square span,.section-container .content-block .data-container-wrapper .data-container>footer .square span,.section-container .content-block .data-container-wrapper .data-container .data-container-footer .square span{padding:0;left:0}.section-container .content-block .data-container-wrapper>section ol,.section-container .content-block .data-container-wrapper .data-container ol{margin:0 0 0 15px;padding:10px}.section-container .content-block #form-container.ui-widget-content{border:none !important}.section-container .content-block form:not(.list-container){border:1px #ddd solid;background:#f2f0ee;padding:30px;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px}.section-container .content-block [class^=\\\"btn-\\\"],.section-container .content-block [class*=\\\" btn-\\\"]{margin:0 2px}.qti-navigator{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;display:box;display:-ms-flexbox;display:-webkit-flexbox;display:flexbox;display:-ms-flex;display:-webkit-flex;display:flex;-ms-direction:row;-webkit-direction:row;direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;flex-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;flex-line-pack:start;-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start;flex-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;-o-flex-direction:column;flex-direction:column;padding:0;cursor:default;min-width:calc(18rem - 8px);height:100%;position:relative}.qti-navigator span{display:inline-block}.qti-navigator .collapsed .collapsible-panel{display:none !important}.qti-navigator .collapsed .qti-navigator-label .icon-up{display:none}.qti-navigator .collapsed .qti-navigator-label .icon-down{display:inline-block}.qti-navigator .collapsible>.qti-navigator-label,.qti-navigator .qti-navigator-item>.qti-navigator-label{cursor:pointer}.qti-navigator.scope-test-section .qti-navigator-part>.qti-navigator-label{display:none !important}.qti-navigator .qti-navigator-label{display:box;display:-ms-flexbox;display:-webkit-flexbox;display:flexbox;display:-ms-flex;display:-webkit-flex;display:flex;-ms-direction:row;-webkit-direction:row;direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;flex-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;flex-line-pack:start;-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start;flex-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;align-items:stretch;min-width:calc(100% - 12px);padding:0 6px;line-height:3rem}.qti-navigator .qti-navigator-label .icon-up,.qti-navigator .qti-navigator-label .icon-down{line-height:3rem;margin-left:auto}.qti-navigator .qti-navigator-label .icon-down{display:none}.qti-navigator .qti-navigator-label .qti-navigator-number{display:none}.qti-navigator .qti-navigator-icon,.qti-navigator .icon{position:relative;top:1px;display:inline-block;width:2rem;line-height:2.8rem}.qti-navigator .unseen .qti-navigator-icon{cursor:default}.qti-navigator.prevents-unseen .unseen .qti-navigator-icon,.qti-navigator.prevents-unseen .unseen .qti-navigator-label{cursor:not-allowed !important}.qti-navigator .icon-answered:before{content:\\\"\\\\e69a\\\"}.qti-navigator .icon-viewed:before{content:\\\"\\\\e631\\\"}.qti-navigator .icon-flagged:before{content:\\\"\\\\e64e\\\"}.qti-navigator .icon-unanswered:before,.qti-navigator .icon-unseen:before{content:\\\"\\\\e6a5\\\"}.qti-navigator .qti-navigator-counter{text-align:right;margin-left:auto;font-size:12px;font-size:1.2rem}.qti-navigator .qti-navigator-actions{text-align:center}.qti-navigator .qti-navigator-info.collapsed{height:calc(3rem + 1px)}.qti-navigator .qti-navigator-info{height:calc(5 * (3rem + 1px));overflow:hidden}.qti-navigator .qti-navigator-info>.qti-navigator-label{min-width:calc(100% - 16px);padding:0 8px}.qti-navigator .qti-navigator-info ul{padding:0 4px}.qti-navigator .qti-navigator-info ul .qti-navigator-label span.qti-navigator-text{padding:0 6px;min-width:10rem}.qti-navigator .qti-navigator-info ul .qti-navigator-label span.qti-navigator-icon{min-width:1.5rem}.qti-navigator .qti-navigator-info ul .qti-navigator-label span.qti-navigator-counter{min-width:5rem}.qti-navigator .qti-navigator-filters{margin-top:1rem;text-align:center;width:15rem;height:calc(3rem + (2 * 1px))}.qti-navigator .qti-navigator-filters ul{display:box;display:-ms-flexbox;display:-webkit-flexbox;display:flexbox;display:-ms-flex;display:-webkit-flex;display:flex;-ms-direction:row;-webkit-direction:row;direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;flex-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;flex-line-pack:start;-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start;flex-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;align-items:stretch}.qti-navigator .qti-navigator-filters li{display:block}.qti-navigator .qti-navigator-filters li span{border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;border-left:none;line-height:3rem;width:5rem;cursor:pointer}.qti-navigator .qti-navigator-tree{-webkit-flex:1;-moz-flex:1;-ms-flex:1;-o-flex:1;flex:1;overflow-y:auto}.qti-navigator .qti-navigator-linear,.qti-navigator .qti-navigator-linear-part{padding:8px}.qti-navigator .qti-navigator-linear .icon,.qti-navigator .qti-navigator-linear-part .icon{display:none}.qti-navigator .qti-navigator-linear .qti-navigator-label,.qti-navigator .qti-navigator-linear-part .qti-navigator-label{font-size:14px;font-size:1.4rem}.qti-navigator .qti-navigator-linear .qti-navigator-title,.qti-navigator .qti-navigator-linear-part .qti-navigator-title{font-size:14px;font-size:1.4rem;margin:8px 0}.qti-navigator .qti-navigator-linear .qti-navigator-message,.qti-navigator .qti-navigator-linear-part .qti-navigator-message{font-size:14px;font-size:1.4rem}.qti-navigator .qti-navigator-part>.qti-navigator-label{padding:0 8px}.qti-navigator .qti-navigator-part:not(:first-child){margin-top:1px}.qti-navigator .qti-navigator-section>.qti-navigator-label{padding:0 8px}.qti-navigator .qti-navigator-item{margin:1px 0;padding-left:10px}.qti-navigator .qti-navigator-item:first-child{margin-top:0}.qti-navigator .qti-navigator-item.disabled>.qti-navigator-label{cursor:not-allowed}.qti-navigator .qti-navigator-collapsible{cursor:pointer;text-align:center;display:none;position:absolute;top:0;bottom:0;right:0;padding-top:50%}.qti-navigator .qti-navigator-collapsible .icon{font-size:20px;font-size:2rem;width:1rem !important;height:2rem !important}.qti-navigator .qti-navigator-collapsible .qti-navigator-expand{display:none}.qti-navigator.collapsible{padding-right:calc(1rem + 10px) !important}.qti-navigator.collapsible .qti-navigator-collapsible{display:block}.qti-navigator.collapsed{width:calc(8rem + 1rem + 10px);min-width:8rem}.qti-navigator.collapsed ul{padding:0 !important}.qti-navigator.collapsed .qti-navigator-text,.qti-navigator.collapsed .qti-navigator-info>.qti-navigator-label,.qti-navigator.collapsed .qti-navigator-part>.qti-navigator-label,.qti-navigator.collapsed .qti-navigator-section>.qti-navigator-label,.qti-navigator.collapsed .qti-navigator-message{display:none !important}.qti-navigator.collapsed .qti-navigator-label{padding:0 2px !important;width:calc(8rem - 4px);min-width:calc(8rem - 4px)}.qti-navigator.collapsed .qti-navigator-icon,.qti-navigator.collapsed .icon{width:auto}.qti-navigator.collapsed .qti-navigator-counter{margin-left:0;min-width:4rem !important}.qti-navigator.collapsed .qti-navigator-collapsible .qti-navigator-collapse{display:none}.qti-navigator.collapsed .qti-navigator-collapsible .qti-navigator-expand{display:block}.qti-navigator.collapsed .qti-navigator-info{height:calc(4 * (3rem + 1px))}.qti-navigator.collapsed .qti-navigator-info.collapsed .collapsible-panel{display:block !important}.qti-navigator.collapsed .qti-navigator-filters{width:calc(8rem - 16px)}.qti-navigator.collapsed .qti-navigator-filter span{display:none}.qti-navigator.collapsed .qti-navigator-filter.active span{display:block;border:0 none;width:calc(8rem - 16px)}.qti-navigator.collapsed .qti-navigator-item,.qti-navigator.collapsed .qti-navigator-linear,.qti-navigator.collapsed .qti-navigator-linear-part{padding-left:2px;text-align:center}.qti-navigator.collapsed .qti-navigator-item{overflow:hidden}.qti-navigator.collapsed .qti-navigator-item .qti-navigator-icon{padding-left:6px;width:2rem}.qti-navigator.collapsed .qti-navigator-item .qti-navigator-number{display:inline-block;margin-left:6px;margin-right:8rem}.qti-navigator.collapsed .qti-navigator-linear,.qti-navigator.collapsed .qti-navigator-linear-part{padding:0 0 8px 0}.qti-navigator.collapsed .qti-navigator-linear .icon,.qti-navigator.collapsed .qti-navigator-linear-part .icon{display:block}.qti-navigator.collapsed .qti-navigator-actions button{padding:0 9px 0 5px}.qti-navigator .qti-navigator-info>.qti-navigator-label{background-color:#D4D5D7;color:#222;border-top:1px solid #D4D5D7}.qti-navigator .qti-navigator-info li{border-bottom:1px solid #fff}.qti-navigator .qti-navigator-filter span{background-color:#fff}.qti-navigator .qti-navigator-filter span:hover{background-color:#3e7da7;color:#fff}.qti-navigator .qti-navigator-filter.active span{background-color:#a3a9b1;color:#fff}.qti-navigator .qti-navigator-linear,.qti-navigator .qti-navigator-linear-part{background:#fff}.qti-navigator .qti-navigator-part>.qti-navigator-label{background-color:#dcdee1}.qti-navigator .qti-navigator-part>.qti-navigator-label:hover{background-color:#c6c9ce}.qti-navigator .qti-navigator-part.active>.qti-navigator-label{background-color:#c0c4c9}.qti-navigator .qti-navigator-section>.qti-navigator-label{border-bottom:1px solid #fff}.qti-navigator .qti-navigator-section>.qti-navigator-label:hover{background-color:#eae7e4}.qti-navigator .qti-navigator-section.active>.qti-navigator-label{background-color:#ded9d4}.qti-navigator .qti-navigator-item{background:#fff}.qti-navigator .qti-navigator-item.active{background:#f4f7f8}.qti-navigator .qti-navigator-item:hover{background:#eef3f5}.qti-navigator .qti-navigator-item.disabled{background-color:#e2ded9 !important}.qti-navigator .qti-navigator-collapsible{background-color:#dee0e3;color:#222}.qti-navigator .qti-navigator-collapsible .icon{color:#fff}body.delivery-scope{min-height:100vh;max-height:100vh;margin-bottom:0}.test-runner-scope{position:relative;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:calc(100vh - 99px)}.test-runner-scope .test-runner-sections{-webkit-flex:1 1 0%;-ms-flex:1 1 0%;flex:1 1 0%;overflow:hidden;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.test-runner-scope .test-sidebar{background:#f2f0ee;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;height:calc(100vh - 179px);overflow-y:auto;max-width:350px}.test-runner-scope .test-sidebar>.qti-panel{max-width:350px;padding:10px}@media only screen and (max-device-width: 800px){.test-runner-scope .test-sidebar{max-width:200px}.test-runner-scope .test-sidebar>.qti-panel{max-width:200px}}@media only screen and (min-device-width: 800px) and (max-device-width: 1280px){.test-runner-scope .test-sidebar{max-width:250px}.test-runner-scope .test-sidebar>.qti-panel{max-width:250px}}@media only screen and (min-device-width: 1280px) and (max-device-width: 1440px){.test-runner-scope .test-sidebar{max-width:300px}.test-runner-scope .test-sidebar>.qti-panel{max-width:300px}}.test-runner-scope .test-sidebar-left{border-right:1px #ddd solid}.test-runner-scope .test-sidebar-right{border-left:1px #ddd solid}.test-runner-scope .content-wrapper{position:relative;-webkit-flex:1 1 0%;-ms-flex:1 1 0%;flex:1 1 0%;overflow:auto}.test-runner-scope .content-wrapper .overlay{position:absolute;left:0;right:0;top:0;bottom:0;width:100%;opacity:.9}.test-runner-scope .content-wrapper .overlay-full{background-color:#fff;opacity:1}.test-runner-scope #qti-content{max-width:1024px;width:100%;margin:auto}.test-runner-scope #qti-item{width:100%;min-width:100%;height:auto;overflow:visible}.test-runner-scope .size-wrapper{max-width:1280px;margin:auto;width:100%}.test-runner-scope #qti-rubrics{margin:auto;max-width:1024px;width:100%;padding:15px}.test-runner-scope #qti-rubrics .qti-rubricBlock{margin:20px 0}.test-runner-scope #qti-rubrics .hidden{display:none}.test-runner-scope .action-bar li{margin:2px 0 0 10px}.test-runner-scope .action-bar li.btn-info{border-color:rgba(255,255,255,0.3)}.test-runner-scope .action-bar li.btn-info.btn-group{border:none !important;overflow:hidden;padding:0}.test-runner-scope .action-bar li.btn-info.btn-group a{float:left;margin:0 2px;padding:0 15px;border:1px solid rgba(255,255,255,0.3);border-radius:0px;display:inline-block;height:inherit}.test-runner-scope .action-bar li.btn-info.btn-group a:first-of-type{border-top-left-radius:3px;border-bottom-left-radius:3px;margin-left:0}.test-runner-scope .action-bar li.btn-info.btn-group a:last-of-type{border-top-right-radius:3px;border-bottom-right-radius:3px;margin-right:0}.test-runner-scope .action-bar li.btn-info.btn-group a:hover,.test-runner-scope .action-bar li.btn-info.btn-group a.active{border-color:rgba(255,255,255,0.8)}.test-runner-scope .action-bar li.btn-info.btn-group a .no-label{padding-right:0}.test-runner-scope .action-bar li.btn-info:hover,.test-runner-scope .action-bar li.btn-info.active{border-color:rgba(255,255,255,0.8)}.test-runner-scope .action-bar.horizontal-action-bar{opacity:1;height:40px}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box{height:40px;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:space-between;-ms-flex-pack:space-between;justify-content:space-between}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .title-box{font-size:14px;font-size:1.4rem;padding:4px 0 0;-ms-flex:0 1 auto;-webkit-flex:0 1 auto;flex:0 1 auto}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .progress-box,.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .item-number-box{padding-top:4px;white-space:nowrap;-ms-flex:0 1 auto;-webkit-flex:0 1 auto;flex:0 1 auto}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .progress-box .qti-controls,.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .item-number-box .qti-controls{display:inline-block;margin-left:20px;white-space:nowrap}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .timer-box{padding-top:0;white-space:nowrap;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .timer-box .qti-timer{display:inline-block;text-align:center;vertical-align:top;line-height:1.2;position:relative;padding:0 20px;margin-top:-1px}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .timer-box .qti-timer .qti-timer_label{max-width:130px;display:block;font-size:12px;font-size:1.2rem}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .timer-box .qti-timer::before{content:\\' \\';background:rgba(255,255,255,0.3);width:1px;height:20px;position:absolute;left:0;top:5px}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .timer-box .qti-timer:first-child::before{content:none}.test-runner-scope .action-bar.horizontal-action-bar.top-action-bar>.control-box .progressbar{margin-top:5px;min-width:150px;max-width:200px;height:0.6em}.test-runner-scope .action-bar.horizontal-action-bar>.control-box{color:rgba(255,255,255,0.9);text-shadow:1px 1px 0 black}.test-runner-scope .action-bar.horizontal-action-bar>.control-box .lft,.test-runner-scope .action-bar.horizontal-action-bar>.control-box .rgt{padding-left:20px}.test-runner-scope .action-bar.horizontal-action-bar>.control-box .lft:first-child,.test-runner-scope .action-bar.horizontal-action-bar>.control-box .rgt:first-child{padding-left:0}.test-runner-scope .action-bar.horizontal-action-bar>.control-box .lft:last-child ul,.test-runner-scope .action-bar.horizontal-action-bar>.control-box .rgt:last-child ul{display:inline-block}.test-runner-scope .action-bar.horizontal-action-bar>.control-box [class^=\\\"btn-\\\"],.test-runner-scope .action-bar.horizontal-action-bar>.control-box [class*=\\\" btn-\\\"]{white-space:nowrap}.test-runner-scope .action-bar.horizontal-action-bar .tools-box .action{position:relative;overflow:visible}.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu{color:#222;background:#f2f0ee;overflow:auto;list-style:none;min-width:150px;margin:0;padding:0;position:absolute;bottom:30px;left:0}.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu .action{display:inline-block;text-align:left;width:100%;white-space:nowrap;overflow:hidden;color:#222;margin:0;-moz-border-radius:0px;-webkit-border-radius:0px;border-radius:0px;height:32px;padding:6px 15px;line-height:1}.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu .action.selected{background-color:#3e7da7;color:#fff}.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu .action.selected .label,.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu .action.selected .icon{color:#fff}.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu .action:hover{background-color:#0e5d91;color:#fff}.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu .action:hover .label,.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu .action:hover .icon{color:#fff}.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu .action .label,.test-runner-scope .action-bar.horizontal-action-bar .tools-box .menu .action .icon{font-size:14px;font-size:1.4rem;text-shadow:none;color:#222}.test-runner-scope .action-bar.horizontal-action-bar.bottom-action-bar{overflow:visible}.test-runner-scope .action-bar.horizontal-action-bar.bottom-action-bar .action{line-height:1.6}.test-runner-scope [data-control=\\\"exit\\\"]{margin-left:20px}.test-runner-scope [data-control=\\\"comment-toggle\\\"]{display:none}.test-runner-scope.non-lti-context .title-box{display:none}.test-runner-scope [data-control=\\\"qti-comment\\\"]{background-color:#f2f0ee;position:absolute;bottom:33px;left:8px;z-index:9999;text-align:right;padding:5px;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;-webkit-box-shadow:0 0 15px 1px rgba(0,0,0,0.2);-moz-box-shadow:0 0 15px 1px rgba(0,0,0,0.2);-ms-box-shadow:0 0 15px 1px rgba(0,0,0,0.2);-o-box-shadow:0 0 15px 1px rgba(0,0,0,0.2);box-shadow:0 0 15px 1px rgba(0,0,0,0.2)}.test-runner-scope [data-control=\\\"qti-comment\\\"] textarea{display:block;height:100px;resize:none;width:350px;padding:3px;margin:0 0 10px 0;border:none;font-size:13px;font-size:1.3rem;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px}.test-runner-scope .tools-box{position:relative;overflow:visible}\\n/*# sourceMappingURL=new-test-runner.css.map */\\n.mediaplayer{position:relative;border:1px solid #333;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background:#000}.mediaplayer .icon-sound:before{content:\\\"\\\\e6af\\\"}.mediaplayer .icon-mute:before{content:\\\"\\\\e69e\\\"}.mediaplayer .error{display:none}.mediaplayer .player{position:relative}.mediaplayer .player iframe{pointer-events:none}.mediaplayer .player .overlay{position:absolute;z-index:1;top:0;left:0;bottom:0;right:0;opacity:1;background:transparent none}.mediaplayer .player .action{position:absolute;z-index:2;top:50%;left:50%;width:64px;height:64px;margin-top:-32px;margin-left:-32px;text-align:center;text-decoration:none;display:none;font-size:64px;font-size:6.4rem;color:#fff}.mediaplayer .player .action .icon{-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;padding:6px 12px;background-color:#000;opacity:0.2}.mediaplayer .player .action .icon:hover{opacity:0.6}.mediaplayer .controls{visibility:hidden;position:relative;padding:5px;display:table;table-layout:fixed;width:100%;border-top:1px solid #333}.mediaplayer .controls .bar{display:table-row}.mediaplayer .controls .control{display:table-cell}.mediaplayer .controls .actions{position:relative}.mediaplayer .controls .actions .action{text-align:center;line-height:2.2rem;width:2.2rem;height:2.2rem;text-decoration:none;color:#dcdcdc}.mediaplayer .controls .actions .action:hover{opacity:1}.mediaplayer .controls .actions .action .icon{line-height:2.2rem}.mediaplayer .controls .actions .play{opacity:0.7;border-right:1px solid #333}.mediaplayer .controls .actions .mute{opacity:0.8;border-left:1px solid #333}.mediaplayer .controls .slider{cursor:pointer;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;background:#fff}.mediaplayer .controls .slider .noUi-background{-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;background:#fff}.mediaplayer .controls .slider.noUi-connect,.mediaplayer .controls .slider .noUi-connect{-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;background:#333}.mediaplayer .controls .slider .noUi-handle{width:11px;height:11px;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;background:#858585}.mediaplayer .controls .slider .noUi-handle:hover{background:#5c5c5c}.mediaplayer .controls .slider .noUi-handle:after{display:none}.mediaplayer .controls .slider.noUi-horizontal{height:9px}.mediaplayer .controls .slider.noUi-horizontal .noUi-handle{top:-2px}.mediaplayer .controls .slider.noUi-vertical{width:9px}.mediaplayer .controls .slider.noUi-vertical .noUi-handle{left:-2px}.mediaplayer .controls .infos{cursor:default;margin:0 1rem;line-height:2.2rem;color:#999;font-size:10px;font-size:1rem;font-weight:bold}.mediaplayer .controls .infos [data-control=\\\"time-end\\\"]:before{content:\\' / \\'}.mediaplayer .controls .timer{width:8rem;text-align:center}.mediaplayer .controls .seek{position:relative;height:1rem;margin-top:5px;padding-left:1rem}.mediaplayer .controls .playback{margin-right:1rem;width:2.2rem}.mediaplayer .controls .sound{width:2.2rem;height:2.2rem}.mediaplayer .controls .sound:hover .volume{display:block}.mediaplayer .controls .sound .volume{cursor:default;position:absolute;z-index:3;display:none;padding:7px}.mediaplayer .controls .sound .slider .noUi-handle{width:9px;height:9px}.mediaplayer .controls .sound .slider.noUi-horizontal{width:50px;height:7px}.mediaplayer .controls .sound .slider.noUi-vertical{width:7px;height:100px}.mediaplayer .controls [data-control=\\\"play\\\"]{display:none}.mediaplayer .controls [data-control=\\\"pause\\\"]{display:none}.mediaplayer .controls [data-control=\\\"mute\\\"]{display:inline-block}.mediaplayer .controls [data-control=\\\"unmute\\\"]{display:none}.mediaplayer.video .sound .volume,.mediaplayer.youtube .sound .volume{width:2.2rem;bottom:2.2rem;right:0}.mediaplayer.audio .sound .volume{height:2.2rem;right:2.2rem;bottom:0}.mediaplayer.ready .controls{visibility:visible}.mediaplayer.ready.paused.canplay .overlay{cursor:pointer}.mediaplayer.ready.paused.canplay .player:hover [data-control=\\\"play\\\"]{display:inline-block}.mediaplayer.ready.paused.canplay.youtube.ended .player:hover [data-control=\\\"play\\\"]{display:none}.mediaplayer.ready.playing.canpause .overlay{cursor:pointer}.mediaplayer.ready.playing.canpause .player:hover [data-control=\\\"pause\\\"]{display:inline-block}.mediaplayer.playing.canpause .controls [data-control=\\\"pause\\\"]{display:inline-block}.mediaplayer.paused.canplay .controls [data-control=\\\"play\\\"]{display:inline-block}.mediaplayer.paused.canplay .controls [data-control=\\\"pause\\\"]{display:none}.mediaplayer.muted .controls [data-control=\\\"mute\\\"]{display:none}.mediaplayer.muted .controls [data-control=\\\"unmute\\\"]{display:inline-block}.mediaplayer.nogui .player iframe{pointer-events:inherit}.mediaplayer.nogui .overlay{display:none !important}.mediaplayer.nogui .controls{display:none !important}.mediaplayer.error .media,.mediaplayer.error .controls{display:none}.mediaplayer.error .error{display:table;text-align:center;width:100%;height:100%}.mediaplayer.error .error .message{color:#ba122b;display:table-cell;vertical-align:middle}\\n/*# sourceMappingURL=player.css.map */\\n');\n"]}