{"version":3,"sources":["webpack:///scripts/core--4836ac4db9ac3e819aaa.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/debug/src/debug.js","webpack:///./node_modules/ms/index.js","webpack:///./node_modules/process/browser.js","webpack:///./project/client/src/core/components/ajax-submit/index--split.js","webpack:///./project/client/src/core/components/alerts/dismiss.js","webpack:///./project/client/src/core/components/alerts/index.js","webpack:///./project/client/src/core/components/choose-form/index--split.js","webpack:///./project/client/src/core/components/cover-selector/index--split.js","webpack:///./project/client/src/core/components/date-field/index--split.js","webpack:///./project/client/src/core/components/epi-blocks/index.js","webpack:///./project/client/src/core/components/epi-blocks/quote-cta/index--split.js","webpack:///./project/client/src/core/components/index.js","webpack:///./project/client/src/core/components/localize-date/index--split.js","webpack:///./project/client/src/core/components/modal/index.js","webpack:///./project/client/src/core/components/product-card/index--split.js","webpack:///./project/client/src/core/components/quote-form/index--split.js","webpack:///./project/client/src/core/components/required-field/index--split.js","webpack:///./project/client/src/core/components/required-field/required-field.js","webpack:///./project/client/src/core/components/scrollbar-width/index.js","webpack:///./project/client/src/core/components/scrollbar-width/scrollbar-width.js","webpack:///./project/client/src/core/components/search/global-search/index.js","webpack:///./project/client/src/core/components/search/global-search/search-form-collapsible.js","webpack:///./project/client/src/core/components/search/index.js","webpack:///./project/client/src/core/components/site-header/index.js","webpack:///./project/client/src/core/components/site-header/navigation--obscurable.js","webpack:///./project/client/src/core/components/site-header/site-header-controller.js","webpack:///./project/client/src/core/components/sync-same-name/index--split.js","webpack:///./project/client/src/core/components/wysiwyg/index.js","webpack:///./project/client/src/core/components/wysiwyg/table-cell-icons.js","webpack:///./project/client/src/core/index.js","webpack:///./project/client/src/core/plugins/index.js","webpack:///./project/client/src/core/plugins/jquery__add-element-classes/index.js","webpack:///./project/client/src/core/plugins/jquery__collapsible/collapsible.js","webpack:///./project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js","webpack:///./project/client/src/core/plugins/jquery__emit-on-dirty/index.js","webpack:///./project/client/src/core/plugins/jquery__focus-within/index.js","webpack:///./project/client/src/core/plugins/jquery__focus/index.js","webpack:///./project/client/src/core/plugins/jquery__form-loading/form-loading.js","webpack:///./project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js","webpack:///./project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js","webpack:///./project/client/src/core/plugins/jquery__radio-selection/radio-selection.js","webpack:///./project/client/src/core/plugins/jquery__remove-element-classes/index.js","webpack:///./project/client/src/core/plugins/jquery__toggle-element-classes/index.js","webpack:///./project/client/src/core/plugins/jquery__trigger-event/index.js","webpack:///./project/client/src/core/plugins/lib/fn.js","webpack:///./project/client/src/core/plugins/lib/index.js","webpack:///./project/client/src/core/plugins/lib/objects.js","webpack:///./project/client/src/core/plugins/lib/selectors.js","webpack:///./project/client/src/core/plugins/lib/strings.js","webpack:///external \"jQuery\""],"names":["webpackJsonp","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js","module","exports","__webpack_require__","process","useColors","window","type","navigator","userAgent","toLowerCase","match","document","documentElement","style","WebkitAppearance","console","firebug","exception","table","parseInt","RegExp","$1","formatArgs","args","this","namespace","humanize","diff","c","color","splice","index","lastC","replace","log","_typeof","Function","prototype","apply","call","arguments","save","namespaces","storage","removeItem","debug","e","load","r","env","DEBUG","Symbol","iterator","obj","constructor","chrome","local","localStorage","colors","formatters","j","v","JSON","stringify","err","message","enable","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/debug.js","selectColor","i","hash","charCodeAt","Math","abs","length","createDebug","enabled","self","curr","Date","ms","prevTime","prev","Array","coerce","unshift","format","formatter","val","bind","destroy","init","instances","push","indexOf","names","skips","split","len","substr","instance","disable","name","test","Error","stack","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/ms/index.js","parse","str","String","exec","n","parseFloat","y","d","h","m","s","fmtShort","round","fmtLong","plural","floor","ceil","options","isNaN","long","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/process/browser.js","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","run","Item","array","noop","nextTick","title","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/ajax-submit/index--split.js","_interopRequireDefault","__esModule","default","_jquery","_jquery2","_lib","_lib2","querySelectorAll","forEach","element","then","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/dismiss.js","_debug","_debug2","ALERT_SELECTOR","ALERT_BUTTON_SELECTOR","hidePanel","alertToHide","hide","removeClass","dismissAlert","alertApi","alertId","$","get","id","alertElements","each","dataset","alertButton","find","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/choose-form/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/cover-selector/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/date-field/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/quote-cta/index--split.js","ready","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/localize-date/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/modal/index.js","Object","defineProperty","value","PLUGIN_NAME","ELEMENT_SELECTOR","undefined","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/product-card/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/quote-form/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/index--split.js","Promise","resolve","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/required-field.js","_toConsumableArray","arr","isArray","arr2","from","_classCallCheck","Constructor","TypeError","getJSONValue","stringValue","error","getRegexValidator","validators","data","valRegexPatternName","valRegexPattern","regex","truthy","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","at_least_one_checked","inputs","filter","input","checked","expression","RequiredField","isFieldset","nodeName","inputSet","querySelector","errorElementSelectorScope","errorSelector","errorElement","showErrors","attributeObserver","MutationObserver","onAttributeChange","watch","updateValidity","validateInput","addEventListener","observe","attributes","validity","valid","validator","rule","setCustomValidity","hidden","isValid","updateFieldsetValidity","updateErrorMessage","mutationList","observer","mutation","attributeName","componentErrorAttribute","onShowErrorsChange","_this","tests","validateField","results","map","errors","result","DEFAULTS","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/scrollbar-width/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/scrollbar-width/scrollbar-width.js","calculateScrollbarWidth","setProperty","innerWidth","clientWidth","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/search-form-collapsible.js","SearchFormCollapsible","$element","formElements","selectors","selectTarget","elementsSelector","$target","toggle","removeAttr","focus","attr","handler","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/navigation--obscurable.js","_selectors","ObscurableNavigationPlugin","tolerancePx","components","obscuredItemContainer","obscuredItemContainerSelector","visibleItemContainer","visibleItemContainerSelector","obscuredItemContainerToggle","obscuredItemContainerToggleSelector","currentTestId","resize","addClass","fn","debounce","testTimeoutMs","unObscureItems","testItems","$testElement","width","outerWidth","rightEdgePosition","accumulatedWidth","actualContainerWidth","_this2","intersectingItemSelector","obscuredItemClasses","visibleItemClasses","append","detach","show","items","_this3","toggleWidth","$items","obscuredItems","isItemObscured","is","moveItem","children","reflowOnResize","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/site-header-controller.js","HeaderController","isSearchCollapsible","searchComponentSelector","searchComponent","phoneComponent","phoneComponentSelector","tryConcealSearch","closePhoneComponent","collapsibleOpen","trigger","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/sync-same-name/index--split.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/table-cell-icons.js","getIconClassString","keyword","keywordFormatter","ICON_BRACKET_OPEN","ICON_BRACKET_CLOSE","keywordUnformatter","substring","iconLookup","KEYWORD_ICON","TABLE_DATA_ATTRIBUTE","TABLE_IGNORE","ICON_KEYWORDS","yes","restricted","no","keywordReplacer","iconName","$label","$labelTemplate","clone","text","$iconTemplate","prop","$tables","$this","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","next","done","original","html","updated","return","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/collapsible.js","Collapsible","scopes","contentSelectorIsId","contentSelector","contentSelectorScope","button","buttonSelector","content","collapseWith","collapsedClass","toggleMethod","toggleWithClass","toggleWithHidden","bindDocumentEvents","closeWithDocumentClick","bindDocumentClick","unbindDocumentEvents","unbindDocumentClick","doCollapse","open","isCollapsed","setAttribute","classList","add","remove","selfClosing","close","onDocumentClick","removeEventListener","event","clickTarget","contains","startsWith","onOpenChanged","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js","_collapsible","_collapsible2","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/form-loading.js","FormLoading","applyLoadingState","dataKey","dataValue","submitButton","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js","_formLoading","_formLoading2","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js","_radioSelection","_radioSelection2","RadioSelection","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/radio-selection.js","form","formSelector","closest","elements","updateValue","checkedInput","label","warn","textContent","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/index.js","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js","func","wait","immediate","context","later","callNow","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js","_interopRequireWildcard","newObj","hasOwnProperty","plugin","pluginName","klass","shortHand","formattedPluginName","_strings","toCamelCase","dataName","$bus","subscribe","publish","$util","objects","strings","inViewport","elm","rect","getBoundingClientRect","viewHeight","max","clientHeight","innerHeight","bottom","top","option","overrides","elementOptions","keys","reduce","path","extend","$utils","jquery","defaults","_fn","_objects","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js","elementAttrtibutesToObject","filterFn","transformFn","output","attrs","ZERO","attribute","Boolean","objectPath","delimiter","final","pop","part","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js","selectorPattern","_len","directives","_key","join","selector","isClosestAncestoral","SELECTOR_PATTERNS","parent","isAllAncestoral","parents","isRetargeted","isAllDescendants","isGenerational","here","isSiblings","siblings","isSelfish","$newElement","newSelector","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js","preserveCamelCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","toUpperCase","x","trim","p1","tmpl","item","$tmpl","templateString","mustache","template","invert","ctx","shift","render","inverted","childCode","depth","assign","","code","z","raw","comment","isRaw","partial","Option","innerHTML","booleanify","lower","/tool/project/client/src/core/vendor/index.js","external \"jQuery\"","jQuery","multi /tool/project/client/src/core/index.js"],"mappings":"AAAAA,cAAc,SAERC,4IACA,SAAUC,EAAQC,EAASC,GAEjC,cAC4B,SAASC,GCqCrC,QAASC,KAIP,QAAsB,mBAAXC,UAA0BA,OAAOF,SAAmC,aAAxBE,OAAOF,QAAQG,QAK7C,mBAAdC,aAA6BA,UAAUC,YAAaD,UAAUC,UAAUC,cAAcC,MAAM,4BAM3E,mBAAbC,WAA4BA,SAASC,iBAAmBD,SAASC,gBAAgBC,OAASF,SAASC,gBAAgBC,MAAMC,kBAEnH,mBAAXT,SAA0BA,OAAOU,UAAYV,OAAOU,QAAQC,SAAYX,OAAOU,QAAQE,WAAaZ,OAAOU,QAAQG,QAGrG,mBAAdX,YAA6BA,UAAUC,WAAaD,UAAUC,UAAUC,cAAcC,MAAM,mBAAqBS,SAASC,OAAOC,GAAI,KAAO,IAE9H,mBAAdd,YAA6BA,UAAUC,WAAaD,UAAUC,UAAUC,cAAcC,MAAM,uBAsBxG,QAASY,GAAWC,GAClB,GAAInB,GAAYoB,KAAKpB,SASrB,IAPAmB,EAAK,IAAMnB,EAAY,KAAO,IAC1BoB,KAAKC,WACJrB,EAAY,MAAQ,KACrBmB,EAAK,IACJnB,EAAY,MAAQ,KACrB,IAAMH,EAAQyB,SAASF,KAAKG,MAE3BvB,EAAL,CAEA,GAAIwB,GAAI,UAAYJ,KAAKK,KACzBN,GAAKO,OAAO,EAAG,EAAGF,EAAG,iBAKrB,IAAIG,GAAQ,EACRC,EAAQ,CACZT,GAAK,GAAGU,QAAQ,cAAe,SAASvB,GAClC,OAASA,IACbqB,IACI,OAASrB,IAGXsB,EAAQD,MAIZR,EAAKO,OAAOE,EAAO,EAAGJ,IAUxB,QAASM,KAGP,MAAO,+BAAoBnB,SAApB,YAAAoB,EAAoBpB,WACtBA,QAAQmB,KACRE,SAASC,UAAUC,MAAMC,KAAKxB,QAAQmB,IAAKnB,QAASyB,WAU3D,QAASC,GAAKC,GACZ,IACM,MAAQA,EACVzC,EAAQ0C,QAAQC,WAAW,SAE3B3C,EAAQ0C,QAAQE,MAAQH,EAE1B,MAAMI,KAUV,QAASC,KACP,GAAIC,EACJ,KACEA,EAAI/C,EAAQ0C,QAAQE,MACpB,MAAMC,IAOR,OAJKE,OAAwB,KAAZ7C,GAA2B,OAASA,KACnD6C,EAAI7C,EAAQ8C,IAAIC,OAGXF,EDlKT,GAAIb,GAA4B,kBAAXgB,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOd,UAAY,eAAkBgB,GCFtQpD,GAAUD,EAAOC,QAAUC,EAAQ,2IACnCD,EAAQiC,IAAMA,EACdjC,EAAQqB,WAAaA,EACrBrB,EAAQwC,KAAOA,EACfxC,EAAQ8C,KAAOA,EACf9C,EAAQG,UAAYA,EACpBH,EAAQ0C,QAAU,mBAAsBY,aACtB,KAAsBA,OAAOZ,QAC3BY,OAAOZ,QAAQa,MAgLnC,WACE,IACE,MAAOnD,QAAOoD,aACd,MAAOX,QA5KX7C,EAAQyD,QACN,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,WAwCzDzD,EAAQ0D,WAAWC,EAAI,SAASC,GAC9B,IACE,MAAOC,MAAKC,UAAUF,GACtB,MAAOG,GACP,MAAO,+BAAiCA,EAAIC,UAqGhDhE,EAAQiE,OAAOnB,ODKcR,KAAKtC,EAASC,EAAoB,6IAIzDiE,0IACA,SAAUnE,EAAQC,EAASC,GAEjC,YEnJA,SAASkE,GAAY3C,GACnB,GAAc4C,GAAVC,EAAO,CAEX,KAAKD,IAAK5C,GACR6C,GAAUA,GAAQ,GAAKA,EAAQ7C,EAAU8C,WAAWF,GACpDC,GAAQ,CAGV,OAAOrE,GAAQyD,OAAOc,KAAKC,IAAIH,GAAQrE,EAAQyD,OAAOgB,QAWxD,QAASC,GAAYlD,GAInB,QAASoB,KAEP,GAAKA,EAAM+B,QAAX,CAEA,GAAIC,GAAOhC,EAGPiC,GAAQ,GAAIC,MACZC,EAAKF,GAAQG,GAAYH,EAC7BD,GAAKlD,KAAOqD,EACZH,EAAKK,KAAOD,EACZJ,EAAKC,KAAOA,EACZG,EAAWH,CAIX,KAAK,GADDvD,GAAO,GAAI4D,OAAM3C,UAAUkC,QACtBL,EAAI,EAAGA,EAAI9C,EAAKmD,OAAQL,IAC/B9C,EAAK8C,GAAK7B,UAAU6B,EAGtB9C,GAAK,GAAKtB,EAAQmF,OAAO7D,EAAK,IAE1B,gBAAoBA,GAAK,IAE3BA,EAAK8D,QAAQ,KAIf,IAAItD,GAAQ,CACZR,GAAK,GAAKA,EAAK,GAAGU,QAAQ,gBAAiB,SAASvB,EAAO4E,GAEzD,GAAc,OAAV5E,EAAgB,MAAOA,EAC3BqB,IACA,IAAIwD,GAAYtF,EAAQ0D,WAAW2B,EACnC,IAAI,kBAAsBC,GAAW,CACnC,GAAIC,GAAMjE,EAAKQ,EACfrB,GAAQ6E,EAAUhD,KAAKsC,EAAMW,GAG7BjE,EAAKO,OAAOC,EAAO,GACnBA,IAEF,MAAOrB,KAITT,EAAQqB,WAAWiB,KAAKsC,EAAMtD,IAElBsB,EAAMX,KAAOjC,EAAQiC,KAAOnB,QAAQmB,IAAIuD,KAAK1E,UACnDuB,MAAMuC,EAAMtD,IAnDpB,GAAI0D,EAmEJ,OAbApC,GAAMpB,UAAYA,EAClBoB,EAAM+B,QAAU3E,EAAQ2E,QAAQnD,GAChCoB,EAAMzC,UAAYH,EAAQG,YAC1ByC,EAAMhB,MAAQuC,EAAY3C,GAC1BoB,EAAM6C,QAAUA,EAGZ,kBAAsBzF,GAAQ0F,MAChC1F,EAAQ0F,KAAK9C,GAGf5C,EAAQ2F,UAAUC,KAAKhD,GAEhBA,EAGT,QAAS6C,KACP,GAAI3D,GAAQ9B,EAAQ2F,UAAUE,QAAQtE,KACtC,QAAe,IAAXO,IACF9B,EAAQ2F,UAAU9D,OAAOC,EAAO,IACzB,GAcX,QAASmC,GAAOxB,GACdzC,EAAQwC,KAAKC,GAEbzC,EAAQ8F,SACR9F,EAAQ+F,QAER,IAAI3B,GACA4B,GAA+B,gBAAfvD,GAA0BA,EAAa,IAAIuD,MAAM,UACjEC,EAAMD,EAAMvB,MAEhB,KAAKL,EAAI,EAAGA,EAAI6B,EAAK7B,IACd4B,EAAM5B,KACX3B,EAAauD,EAAM5B,GAAGpC,QAAQ,MAAO,OACf,MAAlBS,EAAW,GACbzC,EAAQ+F,MAAMH,KAAK,GAAIzE,QAAO,IAAMsB,EAAWyD,OAAO,GAAK,MAE3DlG,EAAQ8F,MAAMF,KAAK,GAAIzE,QAAO,IAAMsB,EAAa,MAIrD,KAAK2B,EAAI,EAAGA,EAAIpE,EAAQ2F,UAAUlB,OAAQL,IAAK,CAC7C,GAAI+B,GAAWnG,EAAQ2F,UAAUvB,EACjC+B,GAASxB,QAAU3E,EAAQ2E,QAAQwB,EAAS3E,YAUhD,QAAS4E,KACPpG,EAAQiE,OAAO,IAWjB,QAASU,GAAQ0B,GACf,GAA8B,MAA1BA,EAAKA,EAAK5B,OAAS,GACrB,OAAO,CAET,IAAIL,GAAG6B,CACP,KAAK7B,EAAI,EAAG6B,EAAMjG,EAAQ+F,MAAMtB,OAAQL,EAAI6B,EAAK7B,IAC/C,GAAIpE,EAAQ+F,MAAM3B,GAAGkC,KAAKD,GACxB,OAAO,CAGX,KAAKjC,EAAI,EAAG6B,EAAMjG,EAAQ8F,MAAMrB,OAAQL,EAAI6B,EAAK7B,IAC/C,GAAIpE,EAAQ8F,MAAM1B,GAAGkC,KAAKD,GACxB,OAAO,CAGX,QAAO,EAWT,QAASlB,GAAOI,GACd,MAAIA,aAAegB,OAAchB,EAAIiB,OAASjB,EAAIvB,QAC3CuB,EAvNTvF,EAAUD,EAAOC,QAAU0E,EAAY9B,MAAQ8B,EAAA,QAAyBA,EACxE1E,EAAQmF,OAASA,EACjBnF,EAAQoG,QAAUA,EAClBpG,EAAQiE,OAASA,EACjBjE,EAAQ2E,QAAUA,EAClB3E,EAAQyB,SAAWxB,EAAQ,oIAK3BD,EAAQ2F,aAMR3F,EAAQ8F,SACR9F,EAAQ+F,SAQR/F,EAAQ0D,eFmYF+C,mIACA,SAAU1G,EAAQC,EAASC,GAEjC,YGzXA,SAASyG,GAAMC,GAEb,GADAA,EAAMC,OAAOD,KACTA,EAAIlC,OAAS,KAAjB,CAGA,GAAIhE,GAAQ,wHAAwHoG,KAClIF,EAEF,IAAKlG,EAAL,CAGA,GAAIqG,GAAIC,WAAWtG,EAAM,GAEzB,SADYA,EAAM,IAAM,MAAMD,eAE5B,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,MAAOsG,GAAIE,CACb,KAAK,OACL,IAAK,MACL,IAAK,IACH,MAAOF,GAAIG,CACb,KAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,MAAOH,GAAII,CACb,KAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,MAAOJ,GAAIK,CACb,KAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,MAAOL,GAAIM,CACb,KAAK,eACL,IAAK,cACL,IAAK,QACL,IAAK,OACL,IAAK,KACH,MAAON,EACT,SACE,UAYN,QAASO,GAAStC,GAChB,MAAIA,IAAMkC,EACD1C,KAAK+C,MAAMvC,EAAKkC,GAAK,IAE1BlC,GAAMmC,EACD3C,KAAK+C,MAAMvC,EAAKmC,GAAK,IAE1BnC,GAAMoC,EACD5C,KAAK+C,MAAMvC,EAAKoC,GAAK,IAE1BpC,GAAMqC,EACD7C,KAAK+C,MAAMvC,EAAKqC,GAAK,IAEvBrC,EAAK,KAWd,QAASwC,GAAQxC,GACf,MAAOyC,GAAOzC,EAAIkC,EAAG,QACnBO,EAAOzC,EAAImC,EAAG,SACdM,EAAOzC,EAAIoC,EAAG,WACdK,EAAOzC,EAAIqC,EAAG,WACdrC,EAAK,MAOT,QAASyC,GAAOzC,EAAI+B,EAAGT,GACrB,KAAItB,EAAK+B,GAGT,MAAI/B,GAAS,IAAJ+B,EACAvC,KAAKkD,MAAM1C,EAAK+B,GAAK,IAAMT,EAE7B9B,KAAKmD,KAAK3C,EAAK+B,GAAK,IAAMT,EAAO,IHoR1C,GAAInE,GAA4B,kBAAXgB,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOd,UAAY,eAAkBgB,IGtalQgE,EAAI,IACJD,EAAQ,GAAJC,EACJF,EAAQ,GAAJC,EACJF,EAAQ,GAAJC,EACJF,EAAQ,OAAJC,CAgBRlH,GAAOC,QAAU,SAASuF,EAAKoC,GAC7BA,EAAUA,KACV,IAAItH,OAAA,KAAckF,EAAd,YAAArD,EAAcqD,EAClB,IAAa,WAATlF,GAAqBkF,EAAId,OAAS,EACpC,MAAOiC,GAAMnB,EACR,IAAa,WAATlF,IAAoC,IAAfuH,MAAMrC,GACpC,MAAOoC,GAAQE,KAAON,EAAQhC,GAAO8B,EAAS9B,EAEhD,MAAM,IAAIgB,OACR,wDACE1C,KAAKC,UAAUyB,MH4hBfuC,0IACA,SAAU/H,EAAQC,EAASC,GAEjC,YItjBA,SAAS8H,KACL,KAAM,IAAIxB,OAAM,mCAEpB,QAASyB,KACL,KAAM,IAAIzB,OAAM,qCAsBpB,QAAS0B,GAAWC,GAChB,GAAIC,IAAqBC,WAErB,MAAOA,YAAWF,EAAK,EAG3B,KAAKC,IAAqBJ,IAAqBI,IAAqBC,WAEhE,MADAD,GAAmBC,WACZA,WAAWF,EAAK,EAE3B,KAEI,MAAOC,GAAiBD,EAAK,GAC/B,MAAMrF,GACJ,IAEI,MAAOsF,GAAiB7F,KAAK,KAAM4F,EAAK,GAC1C,MAAMrF,GAEJ,MAAOsF,GAAiB7F,KAAKf,KAAM2G,EAAK,KAMpD,QAASG,GAAgBC,GACrB,GAAIC,IAAuBC,aAEvB,MAAOA,cAAaF,EAGxB,KAAKC,IAAuBP,IAAwBO,IAAuBC,aAEvE,MADAD,GAAqBC,aACdA,aAAaF,EAExB,KAEI,MAAOC,GAAmBD,GAC5B,MAAOzF,GACL,IAEI,MAAO0F,GAAmBjG,KAAK,KAAMgG,GACvC,MAAOzF,GAGL,MAAO0F,GAAmBjG,KAAKf,KAAM+G,KAYjD,QAASG,KACAC,GAAaC,IAGlBD,GAAW,EACPC,EAAalE,OACbmE,EAAQD,EAAaE,OAAOD,GAE5BE,GAAc,EAEdF,EAAMnE,QACNsE,KAIR,QAASA,KACL,IAAIL,EAAJ,CAGA,GAAIM,GAAUf,EAAWQ,EACzBC,IAAW,CAGX,KADA,GAAIzC,GAAM2C,EAAMnE,OACVwB,GAAK,CAGP,IAFA0C,EAAeC,EACfA,OACSE,EAAa7C,GACd0C,GACAA,EAAaG,GAAYG,KAGjCH,IAAc,EACd7C,EAAM2C,EAAMnE,OAEhBkE,EAAe,KACfD,GAAW,EACXL,EAAgBW,IAiBpB,QAASE,GAAKhB,EAAKiB,GACf5H,KAAK2G,IAAMA,EACX3G,KAAK4H,MAAQA,EAYjB,QAASC,MAhKT,GAOIjB,GACAI,EARArI,EAAUH,EAAOC,YAgBpB,WACG,IAEQmI,EADsB,kBAAfC,YACYA,WAEAL,EAEzB,MAAOlF,GACLsF,EAAmBJ,EAEvB,IAEQQ,EADwB,kBAAjBC,cACcA,aAEAR,EAE3B,MAAOnF,GACL0F,EAAqBP,KAuD7B,IAEIW,GAFAC,KACAF,GAAW,EAEXI,GAAc,CAyClB5I,GAAQmJ,SAAW,SAAUnB,GACzB,GAAI5G,GAAO,GAAI4D,OAAM3C,UAAUkC,OAAS,EACxC,IAAIlC,UAAUkC,OAAS,EACnB,IAAK,GAAIL,GAAI,EAAGA,EAAI7B,UAAUkC,OAAQL,IAClC9C,EAAK8C,EAAI,GAAK7B,UAAU6B,EAGhCwE,GAAMhD,KAAK,GAAIsD,GAAKhB,EAAK5G,IACJ,IAAjBsH,EAAMnE,QAAiBiE,GACvBT,EAAWc,IASnBG,EAAK9G,UAAU6G,IAAM,WACjB1H,KAAK2G,IAAI7F,MAAM,KAAMd,KAAK4H,QAE9BjJ,EAAQoJ,MAAQ,UAChBpJ,EAAQqJ,SAAU,EAClBrJ,EAAQ8C,OACR9C,EAAQsJ,QACRtJ,EAAQuJ,QAAU,GAClBvJ,EAAQwJ,YAIRxJ,EAAQyJ,GAAKP,EACblJ,EAAQ0J,YAAcR,EACtBlJ,EAAQ2J,KAAOT,EACflJ,EAAQ4J,IAAMV,EACdlJ,EAAQ6J,eAAiBX,EACzBlJ,EAAQ8J,mBAAqBZ,EAC7BlJ,EAAQ+J,KAAOb,EACflJ,EAAQgK,gBAAkBd,EAC1BlJ,EAAQiK,oBAAsBf,EAE9BlJ,EAAQkK,UAAY,SAAU/D,GAAQ,UAEtCnG,EAAQmK,QAAU,SAAUhE,GACxB,KAAM,IAAIE,OAAM,qCAGpBrG,EAAQoK,IAAM,WAAc,MAAO,KACnCpK,EAAQqK,MAAQ,SAAUC,GACtB,KAAM,IAAIjE,OAAM,mCAEpBrG,EAAQuK,MAAQ,WAAa,MAAO,KJykB9BC,yKACA,SAAU3K,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GK9wBvF,GAAA0H,GAAA7K,EAAA,qBLwwBI8K,EAAWJ,EAAuBG,GKvwBtCE,EAAA/K,EAAA,wJL2wBIgL,EAAQN,EAAuBK,EKtwBlBtK,UAASwK,iBAHD,sBAKhBC,QAAQ,SAACC,GACjBnL,EAAA4C,EAAA,eAAAwI,KAAApL,EAAAuF,KAAA,+KAEE6F,KAAK,SAACtL,IACP,EAAAkL,EAAAJ,SARkB,aAQE9K,EAAO8K,UAC3B,EAAAE,EAAAF,SAAEO,GAAF,kBLixBIE,+JACA,SAAUvL,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GMtyBvF,GAAA0H,GAAA7K,EAAA,qBNgyBI8K,EAAWJ,EAAuBG,GM/xBtCS,EAAAtL,EAAA,6INmyBIuL,EAAUb,EAAuBY,GMlyB/BtJ,GAAM,EAAAuJ,EAAAX,SAAM,UAKZY,EAAiB,eACjBC,EAAwB,SAExBC,EAAY,SAAUC,IAC3B,EAAAb,EAAAF,SAAEe,GAAaC,QACf,EAAAd,EAAAF,SAAE,QAAQiB,YAAY,cAGjBC,EAAe,SAAU5F,GAAU,GACjCiF,GAA8BjF,EAA9BiF,QAASY,EAAqB7F,EAArB6F,SAAUC,EAAW9F,EAAX8F,OAC1BC,WAAEC,IAAIH,GACLI,GAAIH,IAELN,EAAUP,KAGX,WACC,GAAMiB,IAAgB,EAAAtB,EAAAF,SAAEY,EACxBxJ,GAAIoK,GACJA,EAAcC,KAAK,SAASxK,EAAOsJ,GAClC,GAAMY,GAAWZ,EAAQmB,QAAQP,SAC3BC,EAAUb,EAAQgB,GAClBI,GAAc,EAAAzB,EAAAF,SAAEO,GAASqB,KAAKf,EAEhCc,GAAY/H,OACf+H,EAAY7C,GAAG,QAASoC,EAAavG,KAAK,MAAO4F,UAASY,WAAUC,aAEpEhK,EAAI,qCNwzBDyK,6JACA,SAAU3M,EAAQC,EAASC,GAEjC,YOn2BAA,GAAA,iKP02BM0M,yKACA,SAAU5M,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GQx3BvF,GAAA0H,GAAA7K,EAAA,qBRk3BI8K,EAAWJ,EAAuBG,GQj3BtCE,EAAA/K,EAAA,wJRq3BIgL,EAAQN,EAAuBK,IQh3BnC,EAAAD,EAAAF,SAAE,YACD,EAAAE,EAAAF,SAJwB,sBAIJyB,KAAK,WACxB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,eAAAwI,KAAApL,EAAAuF,KAAA,+KAEE6F,KAAK,SAACtL,IACP,EAAAkL,EAAAJ,SARiB,aAQG9K,EAAO8K,UAC3B,EAAAE,EAAAF,SAAEO,GAAF,oBR43BGwB,4KACA,SAAU7M,EAAQC,EAASC,GAEjC,YS54BAiM,GAAE,WACDA,EAAE,yBAAyBI,KAAK,WAE/BrM,EAAA4C,EAAA,kBAAAwI,KAAApL,EAAAuF,KAAA,iLTq5BIqH,wKACA,SAAU9M,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GUt6BvF,GAAA0H,GAAA7K,EAAA,qBVg6BI8K,EAAWJ,EAAuBG,GU/5BtCE,EAAA/K,EAAA,wJVm6BIgL,EAAQN,EAAuBK,IU95BnC,EAAAD,EAAAF,SAAE,YACD,EAAAE,EAAAF,SAJwB,qBAIJyB,KAAK,WACxB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,cAAAwI,KAAApL,EAAAuF,KAAA,6KAEE6F,KAAK,SAACtL,IACP,EAAAkL,EAAAJ,SARiB,YAQG9K,EAAO8K,UAC3B,EAAAE,EAAAF,SAAEO,GAAF,mBV06BG0B,iKACA,SAAU/M,EAAQC,EAASC,GAEjC,YW17BAA,GAAA,oLXi8BM8M,kLACA,SAAUhN,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GY/8BvF,GAAA0H,GAAA7K,EAAA,qBZy8BI8K,EAAWJ,EAAuBG,GYx8BtCE,EAAA/K,EAAA,wJZ48BIgL,EAAQN,EAAuBK,IYv8BnC,EAAAD,EAAAF,SAAEnK,UAAUsM,MAAM,YACjB,EAAAjC,EAAAF,SAJwB,+BAIJyB,KAAK,WACxB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,aAAAwI,KAAApL,EAAAuF,KAAA,sLAEE6F,KAAK,SAACtL,IACP,EAAAkL,EAAAJ,SARiB,qBAQG9K,EAAO8K,UAC3B,EAAAE,EAAAF,SAAEO,GAAF,4BZm9BG6B,sJACA,SAAUlN,EAAQC,EAASC,GAEjC,Ya/9BAA,GAAA,yKACAA,EAAA,0KACAA,EAAA,2KACAA,EAAA,6KACAA,EAAA,6KACAA,EAAA,yKACAA,EAAA,4KACAA,EAAA,mKACAA,EAAA,6JACAA,EAAA,8JACAA,EAAA,kKACAA,EAAA,8JACAA,EAAA,+JACAA,EAAA,uKACAA,EAAA,0KACAA,EAAA,8Kbq/BMiN,2KACA,SAAUnN,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GcthCvF,GAAA0H,GAAA7K,EAAA,qBdghCI8K,EAAWJ,EAAuBG,Gc/gCtCE,EAAA/K,EAAA,wJdmhCIgL,EAAQN,EAAuBK,Ic9gCnC,EAAAD,EAAAF,SAAE,YACD,EAAAE,EAAAF,SAJwB,wBAIJyB,KAAK,WACxB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,cAAAwI,KAAApL,EAAAuF,KAAA,mLAEE6F,KAAK,SAACtL,IACP,EAAAkL,EAAAJ,SARiB,eAQG9K,EAAO8K,UAC3B,EAAAE,EAAAF,SAAEO,GAAF,sBd0hCG+B,4JACA,SAAUpN,EAAQC,EAASC,GAEjC,YAGAmN,QAAOC,eAAerN,EAAS,cAC9BsN,OAAO,IAERtN,EAAQuN,YAAcvN,EAAQwN,qBAAmBC,EehjCjD,IAAA3C,GAAA7K,EAAA,qBfojCI8K,EAEJ,SAAgC3H,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFjD0H,GehjCzB0C,qBAAmB,eACnBD,gBAAc,SAE3B,EAAAxC,EAAAF,SAAEnK,UAAUsM,MAAM,YACjB,EAAAjC,EAAAF,SAAE2C,GAAkBlB,KAAK,WACxB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,oBAAAwI,KAAApL,EAAAuF,KAAA,mKAEE6F,KAAK,YACN,EAAAN,EAAAF,SAAEO,GAASmC,Yf2jCRG,0KACA,SAAU3N,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GgBtlCvF,GAAA0H,GAAA7K,EAAA,qBhBglCI8K,EAAWJ,EAAuBG,GgB/kCtCE,EAAA/K,EAAA,wJhBmlCIgL,EAAQN,EAAuBK,IgB9kCnC,EAAAD,EAAAF,SAAE,YACD,EAAAE,EAAAF,SAJwB,uBAIJyB,KAAK,WACxB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,gBAAAwI,KAAApL,EAAAuF,KAAA,iLAEE6F,KAAK,SAACtL,IACP,EAAAkL,EAAAJ,SARiB,cAQG9K,EAAO8K,UAC3B,EAAAE,EAAAF,SAAEO,GAAF,qBhB0lCGuC,wKACA,SAAU5N,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GiBrnCvF,GAAA0H,GAAA7K,EAAA,qBjB+mCI8K,EAAWJ,EAAuBG,GiB9mCtCE,EAAA/K,EAAA,wJjBknCIgL,EAAQN,EAAuBK,IiB7mCnC,EAAAD,EAAAF,SAAE,YACD,EAAAE,EAAAF,SAJwB,qBAIJyB,KAAK,WACxB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,cAAAwI,KAAApL,EAAAuF,KAAA,6KAEE6F,KAAK,SAACtL,IACP,EAAAkL,EAAAJ,SARiB,YAQG9K,EAAO8K,UAC3B,EAAAE,EAAAF,SAAEO,GAAF,mBjBynCGwC,4KACA,SAAU7N,EAAQC,EAASC,GAEjC,YAaA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GkBtpCvFnD,EAAA,8KAEA,IAAA6K,GAAA7K,EAAA,qBlB8oCI8K,EAAWJ,EAAuBG,GkB7oCtCE,EAAA/K,EAAA,wJlBipCIgL,EAAQN,EAAuBK,IkB5oCnC,EAAAD,EAAAF,SAAE,YACD,EAAAE,EAAAF,SAJwB,yBAIJyB,KAAK,WACxB,GAAMlB,GAAU7J,IAChB,IAAAsM,SAAA,SAAAC,SAAAzC,KAAApL,EAAAuF,KAAA,qLAEE6F,KAAK,SAACtL,IACP,EAAAkL,EAAAJ,SARiB,gBAQG9K,EAAO8K,UAC3B,EAAAE,EAAAF,SAAEO,GAAF,uBlBwpCG2C,8KACA,SAAUhO,EAAQC,EAASC,GAEjC,YAeA,SAAS+N,GAAmBC,GAAO,GAAI/I,MAAMgJ,QAAQD,GAAM,CAAE,IAAK,GAAI7J,GAAI,EAAG+J,EAAOjJ,MAAM+I,EAAIxJ,QAASL,EAAI6J,EAAIxJ,OAAQL,IAAO+J,EAAK/J,GAAK6J,EAAI7J,EAAM,OAAO+J,GAAe,MAAOjJ,OAAMkJ,KAAKH,GAE1L,QAASI,GAAgBlI,EAAUmI,GAAe,KAAMnI,YAAoBmI,IAAgB,KAAM,IAAIC,WAAU,qCmBvrChH,QAASC,GAAaC,GACrB,IACC,MAAO5K,MAAK6C,MAAM+H,GACjB,MAAOC,GACR,MAAOD,IAwJT,QAASE,GAAkBC,EAAYC,GAItC,QAAIA,IAKAA,EAAKC,qBAAuBF,EAAWC,EAAKC,sBACtCxI,KAAMsI,EAAWC,EAAKC,qBAAsB9K,QARtC,aAUZ6K,EAAKE,kBAEPzI,KAAMsI,EAAWI,MAAMxJ,KAAK,KAAMqJ,EAAKE,iBACvC/K,QAbc,YAmBjB,QAASiL,GAAO3B,GACf,MAAOA,GnBu/BRF,OAAOC,eAAerN,EAAS,cAC9BsN,OAAO,GAGR,IAAI4B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIjL,GAAI,EAAGA,EAAIiL,EAAM5K,OAAQL,IAAK,CAAE,GAAIkL,GAAaD,EAAMjL,EAAIkL,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMrC,OAAOC,eAAe+B,EAAQE,EAAWI,IAAKJ,IAAiB,MAAO,UAAUhB,EAAaqB,EAAYC,GAAiJ,MAA9HD,IAAYR,EAAiBb,EAAYlM,UAAWuN,GAAiBC,GAAaT,EAAiBb,EAAasB,GAAqBtB,MmBjrChiB/C,EAAAtL,EAAA,6InBqrCIuL,EAEJ,SAAgCpI,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFlDmI,GmBnrC/BtJ,GAAM,EAAAuJ,EAAAX,SAAM,kBAUZ+D,GACLiB,qBAAwB,SAACC,GACxB,MAAOA,GAAOC,OAAO,SAACC,GACrB,MAAOA,GAAMC,UACXxL,OAAS,EAAI,GAAK,sBAEtBuK,MAAO,SAACkB,EAAYF,GAEnB,MADc,IAAI7O,QAAO+O,GACZ5J,KAAK0J,EAAM1C,SAIpB6C,EnB2rCc,WmB1rCnB,QAAAA,GAAY/E,EAASzD,GAAS0G,EAAA9M,KAAA4O,GAC7BlO,EAAI,UAAWmJ,GACfnJ,EAAI,UAAW0F,GAEfpG,KAAKoG,QAAUA,EACfpG,KAAK6J,QAAUA,EAEf7J,KAAK6O,WAAuC,aAA1B7O,KAAK6J,QAAQiF,SAE/B9O,KAAK+O,YAALzH,OAAAmF,EAAoBzM,KAAK6J,QAAQF,iBAAb,UACT3J,KAAKoG,QAAQ2I,SADJ,QAIpB/O,KAAKyO,MAAQzO,KAAK6J,QAAQmF,cAAb,UACFhP,KAAKoG,QAAQtB,KADX,MAIb9E,KAAKiP,0BAC8B,MAAlCjP,KAAKoG,QAAQ8I,cAAc,GAAa/P,SAAWa,KAAK6J,QAEzD7J,KAAKmP,aAAenP,KAAKiP,0BAA0BD,cAClDhP,KAAKoG,QAAQ8I,eAGdlP,KAAKoP,WAAanC,EAAajN,KAAK6J,QAAQmB,QAAQoE,YAEpDpP,KAAKqP,kBAAoB,GAAIC,kBAC5BtP,KAAKuP,kBAAkBtL,KAAKjE,OAG7BA,KAAKmE,OACLnE,KAAKwP,QAEL9O,EAAI,QAASV,KAAMA,KAAK6J,SnBmxCzB,MA5FA8D,GAAaiB,IACZT,IAAK,OACLpC,MAAO,WmBrrCP/L,KAAKyP,iBACLzP,KAAK0P,mBnByrCLvB,IAAK,QACLpC,MAAO,WmBtrCPrL,EAAI,YACJV,KAAK6J,QAAQ8F,iBAAiB,SAAU3P,KAAKyP,eAAexL,KAAKjE,OACjEA,KAAKqP,kBAAkBO,QAAQ5P,KAAK6J,SAAWgG,YAAY,IAC3D7P,KAAKyO,MAAMkB,iBAAiB,QAAS3P,KAAKyP,eAAexL,KAAKjE,OAC9DA,KAAKyO,MAAMkB,iBACV,WACA3P,KAAKyP,eAAexL,KAAKjE,UnBwrC1BmO,IAAK,UACLpC,MAAO,WmBnrCP,OAD0B/L,KAAK6O,WAAa7O,KAAK6J,QAAU7J,KAAKyO,OACvCqB,SAASC,SnBwrClC5B,IAAK,yBACLpC,MAAO,WmBrrCP,GAAMiE,GAAY3C,EAAWrN,KAAKoG,QAAQ6J,KAC1C,KAAKjQ,KAAK6O,aAAemB,EACxB,OAAO,CAGRhQ,MAAK6J,QAAQqG,kBAAkBF,EAAUhQ,KAAK+O,cnByrC9CZ,IAAK,qBACLpC,MAAO,WmBtrCP/L,KAAKmP,aAAagB,OAASnQ,KAAKoQ,anB0rChCjC,IAAK,iBACLpC,MAAO,WmBvrCP/L,KAAKqQ,yBACLrQ,KAAK0P,gBAED1P,KAAKoP,YACRpP,KAAKsQ,wBnB4rCNnC,IAAK,oBACLpC,MAAO,SmBzrCUwE,EAAcC,GAC/BD,EACE/B,OACA,SAASiC,GACR,MACmB,eAAlBA,EAAS3R,MACT2R,EAASC,gBACR1Q,KAAKoG,QAAQuK,yBAEd1M,KAAKjE,OAEP4J,QAAQ5J,KAAK4Q,mBAAmB3M,KAAKjE,UnBorCvCmO,IAAK,qBACLpC,MAAO,SmBlrCW0E,GAClBzQ,KAAKoP,WAAanC,EAAajN,KAAK6J,QAAQmB,QAAQoE,YACpDpP,KAAKsQ,wBnBqrCLnC,IAAK,gBACLpC,MAAO,WmBnrCQ,GAAA8E,GAAA7Q,IACf,KAAIA,KAAKyO,MAER,OAAO,CAGR,IAAMqC,IACL1D,EAAkBC,EAAYrN,KAAKyO,MAAMzD,UACxCwD,OAAOd,EAGT,IAA2C,UAAvC1N,KAAK6J,QAAQmB,QAAQ+F,cAExB,MADA/Q,MAAK6J,QAAQqG,kBAAkB,KACxB,CAGR,IAAyB,KAArBlQ,KAAKyO,MAAM1C,OAAgB+E,EAAM5N,OAAQ,CAC5C,GAAM8N,GAAUF,EAAMG,IAAI,SAACjB,GAC1B,MAAOA,GAAUjL,KAChB8L,EAAKpC,OAEH,GACAuB,EAAUvN,UAGRyO,EAASF,EAAQxC,OAAO,SAAC2C,GAC9B,MAAkB,KAAXA,GAGRnR,MAAKyO,MAAMyB,kBAAkBgB,EAAOhO,OAASgO,EAAO,GAAK,QAEzDlR,MAAKyO,MAAMyB,kBAAkB,QnBmrCxBtB,ImBppCRA,GAAcwC,UACbT,wBAAyB,oBnBkrC1BlS,EAAQ6K,QmB/qCOsF,GnBmrCTyC,sKACA,SAAU7S,EAAQC,EAASC,GAEjC,YoBn3CAA,GAAA,kLpB03CM4S,gLACA,SAAU9S,EAAQC,EAASC,GAEjC,YqB73CA,SAAS6S,KACRpS,SAASC,gBAAgBC,MAAMmS,YAC9B,yBACA3S,OAAO4S,WAAatS,SAASC,gBAAgBsS,YAAc,MAG7D7S,OAAO8Q,iBAAiB,SAAU4B,GAAyB,GAE3DA,KrBi4CMI,2KACA,SAAUnT,EAAQC,EAASC,GAEjC,YsB54CAA,GAAA,+LtBm5CMkT,6LACA,SAAUpT,EAAQC,EAASC,GAEjC,YAiBA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GAEvF,QAASiL,GAAgBlI,EAAUmI,GAAe,KAAMnI,YAAoBmI,IAAgB,KAAM,IAAIC,WAAU,qCAhBhH,GAAIW,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIjL,GAAI,EAAGA,EAAIiL,EAAM5K,OAAQL,IAAK,CAAE,GAAIkL,GAAaD,EAAMjL,EAAIkL,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMrC,OAAOC,eAAe+B,EAAQE,EAAWI,IAAKJ,IAAiB,MAAO,UAAUhB,EAAaqB,EAAYC,GAAiJ,MAA9HD,IAAYR,EAAiBb,EAAYlM,UAAWuN,GAAiBC,GAAaT,EAAiBb,EAAasB,GAAqBtB,MuBz5ChiBxD,EAAA7K,EAAA,qBvB65CI8K,EAAWJ,EAAuBG,GuB55CtCS,EAAAtL,EAAA,6IvBg6CIuL,EAAUb,EAAuBY,GuB/5CrCP,EAAA/K,EAAA,wJvBm6CIgL,EAAQN,EAAuBK,GuB95C7B/I,GAAM,EAAAuJ,EAAAX,SAAM,wCAEZuI,EvBu6CsB,WuBt6C3B,QAAAA,GAAYhI,EAASzD,GAAS0G,EAAA9M,KAAA6R,GAC7BnR,EAAI,UAAWmJ,GACfnJ,EAAI,UAAW0F,GAEfpG,KAAKoG,QAAUA,EACfpG,KAAK6J,QAAUA,EACf7J,KAAK8R,UAAW,EAAAtI,EAAAF,SAAEO,GAElB7J,KAAKoD,SAAU,EAEfpD,KAAK+R,aAAe/R,KAAKgS,UAAUC,aAClCjS,KAAKoG,QAAQ8L,iBACblS,KAAK8R,UAGN9R,KAAKwP,QAEL9O,EAAI,QAASV,KAAMA,KAAKmS,SvBy8CzB,MAhCAxE,GAAakE,IACZ1D,IAAK,QACLpC,MAAO,WuBv6CPrL,EAAI,YAEJV,KAAK8R,SAAS1J,GAAG,eAAgBpI,KAAKoS,OAAOnO,KAAKjE,OAClDA,KAAK8R,SAAS1J,GAAG,gBAAiBpI,KAAK6E,QAAQZ,KAAKjE,UvB26CpDmO,IAAK,SACLpC,MAAO,WuBx6CP/L,KAAK+R,aAAaM,WAAW,YAC7BrS,KAAKoD,SAAU,EACfpD,KAAK+R,aAAa,GAAGO,QACrB5R,EAAI,avB46CJyN,IAAK,UACLpC,MAAO,WuBz6CP/L,KAAK+R,aAAaQ,KAAK,WAAY,YACnCvS,KAAKoD,SAAU,EACf1C,EAAI,cvB66CJyN,IAAK,SACLpC,MAAO,WuB16CP,GAAMyG,GAAUxS,KAAKoD,QAClBpD,KAAK6E,QAAQZ,KAAKjE,MAClBA,KAAK0C,OAAOuB,KAAKjE,KACpBU,GAAI,UACJ8R,QvB66CMX,IuBz6CRA,GAAsBT,aAEtB,EAAA1H,EAAAJ,SAxDoB,wBAwDAuI,IAEpB,EAAArI,EAAAF,SAAEnK,UAAUsM,MAAM,YACjB,EAAAjC,EAAAF,SA5DwB,kCA4DxB,2BvBi7CKmJ,6JACA,SAAUjU,EAAQC,EAASC,GAEjC,YwBp/CAA,GAAA,6KxB2/CMgU,kKACA,SAAUlU,EAAQC,EAASC,GAEjC,YyB9/CAA,GAAA,oLACAA,EAAA,qLzBsgDMiU,mLACA,SAAUnU,EAAQC,EAASC,GAEjC,YA+BA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GAEvF,QAASiL,GAAgBlI,EAAUmI,GAAe,KAAMnI,YAAoBmI,IAAgB,KAAM,IAAIC,WAAU,qCA9BhH,GAAIW,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIjL,GAAI,EAAGA,EAAIiL,EAAM5K,OAAQL,IAAK,CAAE,GAAIkL,GAAaD,EAAMjL,EAAIkL,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMrC,OAAOC,eAAe+B,EAAQE,EAAWI,IAAKJ,IAAiB,MAAO,UAAUhB,EAAaqB,EAAYC,GAAiJ,MAA9HD,IAAYR,EAAiBb,EAAYlM,UAAWuN,GAAiBC,GAAaT,EAAiBb,EAAasB,GAAqBtB,M0BhgDhiBxD,EAAA7K,EAAA,qB1BghDI8K,EAAWJ,EAAuBG,G0B9gDtCS,EAAAtL,EAAA,6I1BkhDIuL,EAAUb,EAAuBY,G0BjhDrCP,EAAA/K,EAAA,wJ1BqhDIgL,EAAQN,EAAuBK,G0BphDnCmJ,EAAAlU,EAAA,4JAIMgC,GAAM,EAAAuJ,EAAAX,SAAM,sDAGZuJ,E1ByhD2B,W0BvhD/B,QAAAA,GAAYhJ,GAAuB,GAAdzD,GAAcpF,UAAAkC,OAAA,OAAAgJ,KAAAlL,UAAA,GAAAA,UAAA,KAAA8L,GAAA9M,KAAA6S,GAEjC7S,KAAK6J,QAAUA,EACf7J,KAAK8R,UAAW,EAAAtI,EAAAF,SAAEO,GAClB7J,KAAKoG,QAAUA,EACfpG,KAAKoG,QAAQ0M,YAAcnT,SAASK,KAAKoG,QAAQ0M,aAEjDpS,EAAI,WAAYmJ,UAASzD,QAASpG,KAAKoG,UACvCpG,KAAK+S,YACHC,uBAAuB,EAAAJ,EAAAX,cAAajS,KAAKoG,QAAQ6M,8BAA+BjT,KAAK8R,UACrFoB,sBAAsB,EAAAN,EAAAX,cAAajS,KAAKoG,QAAQ+M,6BAA8BnT,KAAK8R,UACnFsB,6BAA6B,EAAAR,EAAAX,cAAajS,KAAKoG,QAAQiN,oCAAqCrT,KAAK8R,WAGnG9R,KAAKwP,Q1B+oDP,MAjHA7B,GAAakF,IACX1E,IAAK,QACLpC,MAAO,W0B5hDA,GAAA8E,GAAA7Q,IACPU,GAAI,SACJV,KAAKsT,cAAgB,GACrB,EAAA9J,EAAAF,SAAEzK,QAAQ0U,OAAO,WACf1C,EAAKkC,WAAWG,qBAAqBM,SAAS,cAEhD,EAAAhK,EAAAF,SAAEzK,QAAQ0U,OAAOvT,KAAKyT,GAAGC,SAAS1T,KAAK+E,KAAKd,KAAKjE,MAAOA,KAAKoG,QAAQuN,eAAe,KACpF,EAAAnK,EAAAF,SAAEzK,QAAQ0U,OAAOvT,KAAKyT,GAAGC,SAAS1T,KAAK+E,KAAKd,KAAKjE,MAAOA,KAAKoG,QAAQuN,gBACrE9M,WAAW7G,KAAK+E,KAAKd,KAAKjE,MAAOA,KAAKoG,QAAQuN,kB1BiiD9CxF,IAAK,OACLpC,MAAO,W0B9hDPrL,EAAI,QACJV,KAAK4T,iBACL5T,KAAK6T,e1BkiDL1F,IAAK,iBACLpC,MAAO,S0BhiDOlC,GACdnJ,EAAI,iBAAkBmJ,EACtB,IAAMiK,IAAe,EAAAtK,EAAAF,SAAEO,GACjBkK,EAAQD,EAAaE,YAAW,GAChCC,EAAoBF,EAAQ/T,KAAKoG,QAAQ0M,YAAc9S,KAAKkU,iBAC5D/C,EAAS8C,EAAoBjU,KAAKmU,oBAGxC,OAFAzT,GAAI,iBAAkBuT,EAAmBjU,KAAKmU,qBAAsBhD,GACpEnR,KAAKkU,kBAAoBH,EAClB5C,K1BmiDPhD,IAAK,iBACLpC,MAAO,W0BjiDQ,GAAAqI,GAAApU,IACfU,GAAI,mBAGJ,EAAAkS,EAAAX,cAAajS,KAAKoG,QAAQiO,yBAA0BrU,KAAK+S,WAAWC,uBACjEzI,YAAYvK,KAAKoG,QAAQkO,qBACzBd,SAASxT,KAAKoG,QAAQmO,oBACtBxJ,KAAK,SAACxK,EAAOsJ,GACZuK,EAAKrB,WAAWG,qBAAqBsB,QAAO,EAAAhL,EAAAF,SAAEO,GAAS4K,e1BoiD3DtG,IAAK,WACLpC,MAAO,S0BjiDClC,GACRnJ,EAAI,WAAYmJ,EAChB,IAAMiI,IAAW,EAAAtI,EAAAF,SAAEO,GAAS4K,QAE5B3C,GACG0B,SAASxT,KAAKoG,QAAQkO,qBACtB/J,YAAYvK,KAAKoG,QAAQmO,oBAE5BvU,KAAK+S,WAAWC,sBACbwB,OAAO1C,GAEVA,EAAS4C,U1BiiDTvG,IAAK,YACLpC,MAAO,S0B/hDE4I,GAAO,GAAAC,GAAA5U,IAChBU,GAAI,YACJ,IAAMmU,GAAc7U,KAAK+S,WAAWK,4BAA4B3B,YAChEzR,MAAK+S,WAAWK,4BAA4BqB,SAG5CzU,KAAK+S,WAAWK,4BAA4BsB,MAC5C,IAAMI,IAAS,EAAAlC,EAAAX,cAAajS,KAAKoG,QAAQiO,yBAA0BrU,KAAK+S,WAAWG,qBACnFxS,GAAI,kBAAmBoU,GAEvB9U,KAAKmU,qBAAuBnU,KAAK+S,WAAWG,qBAAqBzB,aAEjEzR,KAAKkU,iBAAmB,CACxB,IAAIa,GAAgBD,EAAOtG,OAAO,SAACjO,EAAOsJ,GAAR,MAAoB+K,GAAKI,eAAenL,IAC1EnJ,GAAI,0BAA2BqU,GAG1B/U,KAAK+S,WAAWG,qBAAqB+B,GAAG,YAIpCF,EAAc7R,OAAS,IAE9BlD,KAAKmU,qBAAuBnU,KAAKmU,qBAAuBU,EACxDnU,EAAI,8BAA+BV,KAAKmU,sBAExCnU,KAAKkU,iBAAmB,EACxBa,EAAgBD,EAEbtG,OAAO,SAACjO,EAAOsJ,GAAR,MAAoB+K,GAAKI,eAAenL,KAE/CkB,KAAK,SAACxK,EAAOsJ,GAAR,MAAoB+K,GAAKM,SAASrL,MAb1CiL,EAAO/J,KAAK,SAACxK,EAAOsJ,GAAR,MAAoB+K,GAAKM,SAASrL,MAiB5CkL,EAAc7R,OAAS,GAAK6R,EAAc7R,QAAU4R,EAAO5R,SAC7DlD,KAAK+S,WAAWG,qBACbsB,OAAOxU,KAAK+S,WAAWK,8BAGvBpT,KAAK+S,WAAWC,sBAAsBmC,WAAWjS,OAAS,GAC7DlD,KAAK+S,WAAWK,4BAA4B9I,OAG9CtK,KAAK+S,WAAWG,qBAAqB3I,YAAY,e1ByiD5CsI,I0BniDTA,GAA2BzB,UACzB0B,YAAa,GACba,cAAe,IACfyB,gBAAgB,EAChBb,mBAAoB,+BACpBD,oBAAqB,6BACrBnB,6BAA8B,8CAC9BkB,yBAA0B,kDAC1BpB,8BAA+B,+CAC/BI,oCAAqC,wDAGvC,EAAA3J,EAAAJ,SA7IoB,uBA6IAuJ,IAEpB,EAAArJ,EAAAF,SAAEnK,UAAUsM,MAAM,YAChB,EAAAjC,EAAAF,SA/IuB,gCA+IvB,0B1B2iDI+L,mLACA,SAAU7W,EAAQC,EAASC,GAEjC,YAiBA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GAEvF,QAASiL,GAAgBlI,EAAUmI,GAAe,KAAMnI,YAAoBmI,IAAgB,KAAM,IAAIC,WAAU,qCAhBhH,GAAIW,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIjL,GAAI,EAAGA,EAAIiL,EAAM5K,OAAQL,IAAK,CAAE,GAAIkL,GAAaD,EAAMjL,EAAIkL,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMrC,OAAOC,eAAe+B,EAAQE,EAAWI,IAAKJ,IAAiB,MAAO,UAAUhB,EAAaqB,EAAYC,GAAiJ,MAA9HD,IAAYR,EAAiBb,EAAYlM,UAAWuN,GAAiBC,GAAaT,EAAiBb,EAAasB,GAAqBtB,M2BptDhiBxD,EAAA7K,EAAA,qB3BwtDI8K,EAAWJ,EAAuBG,G2BvtDtCS,EAAAtL,EAAA,6I3B2tDIuL,EAAUb,EAAuBY,G2B1tDrCP,EAAA/K,EAAA,wJ3B8tDIgL,EAAQN,EAAuBK,G2BztD7B/I,GAAM,EAAAuJ,EAAAX,SAAM,wCAEZgM,E3BkuDiB,W2BjuDtB,QAAAA,GAAYzL,EAASzD,GAAS0G,EAAA9M,KAAAsV,GAC7B5U,EAAI,UAAWmJ,GACfnJ,EAAI,UAAW0F,GAEfpG,KAAKoG,QAAUA,EACfpG,KAAK6J,QAAUA,EACf7J,KAAK8R,UAAW,EAAAtI,EAAAF,SAAEO,GAElB7J,KAAKuV,sBAAwBvV,KAAKoG,QAAQoP,wBAE1CxV,KAAKyV,gBAAkBzV,KAAKuV,qBAAuBvV,KAAKgS,UAAUC,aACjEjS,KAAKoG,QAAQoP,wBACbxV,KAAK8R,UAGN9R,KAAK0V,eAAiB1V,KAAKgS,UAAUC,aACpCjS,KAAKoG,QAAQuP,uBACb3V,KAAK8R,UAKN9R,KAAKwP,QAEL9O,EAAI,QAASV,KAAMA,KAAKmS,S3B0vDzB,MA3BAxE,GAAa2H,IACZnH,IAAK,QACLpC,MAAO,W2B7tDPrL,EAAI,YAEJV,KAAK8R,SAAS1J,GAAG,gBAAiBpI,KAAK4V,iBAAiB3R,KAAKjE,OAC7DA,KAAK8R,SAAS1J,GAAG,aAAcpI,KAAK6V,oBAAoB5R,KAAKjE,U3BiuD7DmO,IAAK,sBACLpC,MAAO,W2B9tDH/L,KAAK0V,eAAexS,SACvBlD,KAAK0V,eAAe,GAAG1K,QAAQ8K,iBAAkB,M3BmuDlD3H,IAAK,mBACLpC,MAAO,W2B/tDPrL,EAAI,gCACAV,KAAKuV,oBACRvV,KAAKyV,gBAAgBM,QAAQ,iBAE7BrV,EAAI,iC3BquDC4U,I2B9tDRA,GAAiBlE,aAEjB,EAAA1H,EAAAJ,SA3DoB,mBA2DAgM,IAEpB,EAAA9L,EAAAF,SAAEnK,UAAUsM,MAAM,YACjB,EAAAjC,EAAAF,SA/DwB,4BA+DxB,sB3BsuDK0M,4KACA,SAAUxX,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,G4BvzDvF,GAAA0H,GAAA7K,EAAA,qB5BizDI8K,EAAWJ,EAAuBG,G4BhzDtCE,EAAA/K,EAAA,wJ5BozDIgL,EAAQN,EAAuBK,E4B/yDlBtK,UAASwK,iBAHD,yBAKhBC,QAAQ,SAACC,GACjBnL,EAAA4C,EAAA,kBAAAwI,KAAApL,EAAAuF,KAAA,qLAEE6F,KAAK,SAACtL,IACP,EAAAkL,EAAAJ,SARkB,eAQE9K,EAAO8K,UAC3B,EAAAE,EAAAF,SAAEO,GAAF,oB5B0zDIoM,8JACA,SAAUzX,EAAQC,EAASC,GAEjC,Y6B10DAA,GAAA,2K7Bi1DMwX,yKACA,SAAU1X,EAAQC,EAASC,GAEjC,YAWA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,G8Bz0DvF,QAASsU,GAAmBC,GAC3B,eAAgBA,EAGjB,QAASC,GAAiBD,GACzB,SAAUE,EAAoBF,EAAUG,EAIzC,QAASC,GAAmBJ,GAC3B,MAAOA,GAAQK,UAAUH,EAAkBpT,OAAQkT,EAAQlT,OAASqT,EAAmBrT,QAGxF,QAASwT,GAAWN,GACnB,MAAOO,GAAaP,IAAYA,EA9BjC,GAAA7M,GAAA7K,EAAA,qB9Bm1DI8K,EAAWJ,EAAuBG,G8Bl1DtCS,EAAAtL,EAAA,6I9Bs1DIuL,EAAUb,EAAuBY,G8Br1D/BtJ,GAAM,EAAAuJ,EAAAX,SAAM,4CAGZsN,EAAuB,mBACvBC,EAAe,SACfC,GAAiB,MAAO,aAAc,MACtCR,EAAoB,IACpBC,EAAqB,IACrBI,GACLI,IAAO,UACPC,WAAc,aACdC,GAAM,aAuBP,WAoBC,QAASC,GAAgBhY,GACxB,GAAMkX,GAAUI,EAAmBtX,GAClCiY,EAAWT,EAAWN,GACtBgB,EAASC,EAAeC,QAAQC,KAAKnB,EAEtC,OAAOoB,GAAcF,QACnB9D,SAAS2C,EAAmBgB,IAC5B3D,SAFK,8BAEkC4C,GACvC5B,OAAO4C,GACPK,KAAK,aA5BR/W,EAAI,aAGJ,IAAIgX,IAAU,EAAAlO,EAAAF,SAAE,SAASkF,OAAX,SAA2BoI,EAA3B,KAAoDC,EAApD,MAEd,KAAKa,EAAQxU,OAEZ,WADAxC,GAAI,sBAKLgX,GAAQnF,KAAKqE,EAAsB,eACnClW,EAAI,iBAAkBgX,EAGtB,IAAIL,IAAiB,EAAA7N,EAAAF,SAAE,UAAUkK,SAAS,iCACzCgE,GAAgB,EAAAhO,EAAAF,SAAE,OAAOkK,SAAS,OAgBnCkE,GAAQxM,KAAK,MAAMH,KAAK,WACvB,GAAI4M,IAAQ,EAAAnO,EAAAF,SAAEtJ,MADqB4X,GAAA,EAAAC,GAAA,EAAAC,MAAA5L,EAAA,KAKnC,OAAA6L,GAAAC,EAAoBlB,EAApBnV,OAAAC,cAAAgW,GAAAG,EAAAC,EAAAC,QAAAC,MAAAN,GAAA,EAAmC,IAA1BxB,GAA0B2B,EAAAhM,MAC9BoM,EAAWR,EAAMS,OACpBC,EAAUF,EAAS1X,QAAQ4V,EAAiBD,GAAUc,EAEnDiB,KAAaE,IAChB3X,EAAI,sCAAuCyX,EAAU,aAAcE,GACnEV,EAAMS,KAAKC,KAXsB,MAAA7V,GAAAqV,GAAA,EAAAC,EAAAtV,EAAA,aAAAoV,GAAAI,EAAAM,QAAAN,EAAAM,SAAA,WAAAT,EAAA,KAAAC,OAiBpCJ,EAAQnF,KAAKqE,GAAsB,O9Bu3D9B2B,2IACA,SAAU/Z,EAAQC,EAASC,GAEjC,YAiBA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,G+Bv+DvF,GAAA0H,GAAA7K,EAAA,qB/B29DI8K,EAAWJ,EAAuBG,G+B19DtCS,EAAAtL,EAAA,6I/B89DIuL,EAAUb,EAAuBY,E+B19DrCtL,GAAA,oJACAA,EAAA,uJACAA,EAAA,gDAEA,IAAMgC,IAAM,EAAAuJ,EAAAX,SAAM,gBAElB,EAAAE,EAAAF,SAAE,WACD5I,EAAI,Y/By+DC8X,mJACA,SAAUha,EAAQC,EAASC,GAEjC,YgC39DAA,GAAA,kLACAA,EAAA,sLACAA,EAAA,mLACAA,EAAA,mLACAA,EAAA,gLACAA,EAAA,yKACAA,EAAA,kKACAA,EAAA,mLACAA,EAAA,0KACAA,EAAA,2KhC2+DM+Z,+KACA,SAAUja,EAAQC,EAASC,GAEjC,YAGAmN,QAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,EAAQuN,YAAcvN,EAAQwN,qBAAmBC,EiCzhEjD,IAAA3C,GAAA7K,EAAA,qBjC6hEI8K,EAEJ,SAAgC3H,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFjD0H,GiC3hEzB0C,qBAAmB,6BACnBD,gBAAc,qBAE3B,EAAAxC,EAAAF,SAAEnK,UAAUsM,MAAM,YAChB,EAAAjC,EAAAF,SAAE2C,GAAkBlB,KAAK,WACvB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,+BAAAwI,KAAApL,EAAAuF,KAAA,uLACG6F,KAAK,YACJ,EAAAN,EAAAF,SAAEO,GAASmC,YjCqiEb0M,6KACA,SAAUla,EAAQC,EAASC,GAEjC,YAeA,SAASoO,GAAgBlI,EAAUmI,GAAe,KAAMnI,YAAoBmI,IAAgB,KAAM,IAAIC,WAAU,qCkC9jEhH,QAASC,GAAaC,GACrB,IACC,MAAO5K,MAAK6C,MAAM+H,GACjB,MAAOC,GACR,MAAOD,IlC8iETrB,OAAOC,eAAerN,EAAS,cAC9BsN,OAAO,GAGR,IAAI4B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIjL,GAAI,EAAGA,EAAIiL,EAAM5K,OAAQL,IAAK,CAAE,GAAIkL,GAAaD,EAAMjL,EAAIkL,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMrC,OAAOC,eAAe+B,EAAQE,EAAWI,IAAKJ,IAAiB,MAAO,UAAUhB,EAAaqB,EAAYC,GAAiJ,MAA9HD,IAAYR,EAAiBb,EAAYlM,UAAWuN,GAAiBC,GAAaT,EAAiBb,EAAasB,GAAqBtB,MkC1jEhiB/C,EAAAtL,EAAA,6IlC8jEIuL,EAEJ,SAAgCpI,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFlDmI,GkC5jE/BtJ,GAAM,EAAAuJ,EAAAX,SAAM,eAUZqP,ElCkkEY,WkCjkEjB,QAAAA,GAAY9O,EAASzD,GAAS0G,EAAA9M,KAAA2Y,GAC7B3Y,KAAK6J,QAAUA,EACf7J,KAAKoG,QAAUA,CAEf,IAAMwS,IACLzZ,SAAUA,SACV0K,QAAS7J,KAAK6J,SAITgP,EACL7Y,KAAKoG,QAAQ0S,iBACuB,MAApC9Y,KAAKoG,QAAQ0S,gBAAgB,EAG7B9Y,MAAK+Y,qBADFF,EACyBD,EAAA,SAEAA,EAC3B5Y,KAAKoG,QAAQ2S,sBAEXH,EAAO5Y,KAAKoG,QAAQ2S,sBACpBH,EAAA,QAIJ5Y,KAAKgZ,OAAShZ,KAAKoG,QAAQ6S,eACxBjZ,KAAK6J,QAAQmF,cAAchP,KAAKoG,QAAQ6S,gBACxCjZ,KAAK6J,QAIR7J,KAAKkZ,QACJlZ,KAAKoG,QAAQ0S,iBACb9Y,KAAK+Y,qBAAqB/J,cACzBhP,KAAKoG,QAAQ0S,iBAEf9Y,KAAKmZ,aAAenZ,KAAKoG,QAAQgT,eAAiB,QAAU,SAC5DpZ,KAAKoZ,eAAiBpZ,KAAKoG,QAAQgT,eAEnCpZ,KAAKqZ,aACkB,UAAtBrZ,KAAKmZ,aACFnZ,KAAKsZ,gBACLtZ,KAAKuZ,iBAETvZ,KAAKqP,kBAAoB,GAAIC,kBAC5BtP,KAAKuP,kBAAkBtL,KAAKjE,OAG7BA,KAAKwZ,mBAAqBxZ,KAAKoG,QAAQqT,uBACpCzZ,KAAK0Z,kBACL,aAEH1Z,KAAK2Z,qBAAuB3Z,KAAKoG,QAAQqT,uBACtCzZ,KAAK4Z,oBACL,aAEH5Z,KAAKmE,OACLnE,KAAKwP,QlCyqEN,MAvHA7B,GAAagL,IACZxK,IAAK,OACLpC,MAAO,WkC/iEP/L,KAAKgZ,OAAO7I,QAAS,CAIrB,IAAI0J,OACmB3N,KAAtBlM,KAAKoG,QAAQ0T,OAAsB9Z,KAAKoG,QAAQ0T,IAEjD9Z,MAAKqZ,aAAaQ,GAClB7Z,KAAK+Z,YAAcF,KlCmjEnB1L,IAAK,QACLpC,MAAO,WkChjEP/L,KAAKgZ,OAAOrJ,iBAAiB,QAAS3P,KAAKoS,OAAOnO,KAAKjE,OACvDA,KAAKqP,kBAAkBO,QAAQ5P,KAAK6J,SAAWgG,YAAY,OlCojE3D1B,IAAK,mBACLpC,MAAO,SkCljES8N,GAGhB,GAFA7Z,KAAKgZ,OAAOgB,aAAa,iBAAkBH,IAEtC7Z,KAAKkZ,QACT,OAAO,CAERlZ,MAAKkZ,QAAQ/I,OAAS0J,KlCqjEtB1L,IAAK,kBACLpC,MAAO,SkCnjEQ8N,GAGf,GAFA7Z,KAAKgZ,OAAOgB,aAAa,iBAAkBH,IAEtC7Z,KAAKkZ,QACT,OAAO,CAEJW,GACH7Z,KAAKkZ,QAAQe,UAAUC,IAAIla,KAAKoZ,gBAEhCpZ,KAAKkZ,QAAQe,UAAUE,OAAOna,KAAKoZ,mBlC0jEpCjL,IAAK,SACLpC,MAAO,WkCrjEP,IAAK/L,KAAKoG,QAAQgU,cAAgBpa,KAAK+Z,YACtC,OAAO,GAGQ/Z,KAAK+Z,YAClB/Z,KAAK8Z,KAAK7V,KAAKjE,MACfA,KAAKqa,MAAMpW,KAAKjE,YlCwjEnBmO,IAAK,OACLpC,MAAO,WkCpjEP/L,KAAKqZ,cAAa,GAClBrZ,KAAK+Z,aAAc,EACnB/Z,KAAK6J,QAAQmB,QAAQ8K,iBAAkB,EACvC9V,KAAKwZ,wBlCwjELrL,IAAK,QACLpC,MAAO,WkCrjEP/L,KAAKqZ,cAAa,GAClBrZ,KAAK+Z,aAAc,EACnB/Z,KAAK6J,QAAQmB,QAAQ8K,iBAAkB,EACvC9V,KAAK2Z,0BlCyjELxL,IAAK,oBACLpC,MAAO,WkCtjEP5M,SAASwQ,iBAAiB,QAAS3P,KAAKsa,gBAAgBrW,KAAKjE,UlC0jE7DmO,IAAK,sBACLpC,MAAO,WkCvjEP5M,SAASob,oBAAoB,QAASva,KAAKsa,oBlC2jE3CnM,IAAK,kBACLpC,MAAO,SkCzjEQyO,GACf,GAAMC,GAAcD,EAAM3M,MAG1B,OAAI4M,KAAgBza,KAAKgZ,QAAUhZ,KAAKgZ,OAAO0B,SAASD,IACvD/Z,EAAI,mBACG,GAKPV,KAAKkZ,UACJuB,IAAgBza,KAAKkZ,SAAWlZ,KAAKkZ,QAAQwB,SAASD,KAEvD/Z,EAAI,iCACG,OAGRV,MAAKqa,WlCyjELlM,IAAK,oBACLpC,MAAO,SkCvjEUwE,EAAcC,GAC/BD,EACE/B,OAAO,SAAAiC,GACP,MACmB,eAAlBA,EAAS3R,MACT2R,EAASC,cAAciK,WAAW,2BAGnC/Q,QAAQ5J,KAAK4a,cAAc3W,KAAKjE,UlCqjElCmO,IAAK,gBACLpC,MAAO,SkCnjEM0E,GACb,GAAMoJ,IAAc5M,EAAajN,KAAK6J,QAAQmB,QAAQ8K,gBAClD9V,MAAK+Z,cAAgBF,IACxB7Z,KAAKqZ,aAAaQ,GAClB7Z,KAAK+Z,YAAcF,OlCwjEdlB,IkCnjERA,GAAYvH,UACXgJ,aAAa,GlCyjEd3b,EAAQ6K,QkCtjEOqP,GlC0jETkC,iLACA,SAAUrc,EAAQC,EAASC,GAEjC,YAeA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GmC5wEvF,GAAA0H,GAAA7K,EAAA,qBnCkwEI8K,EAAWJ,EAAuBG,GmCjwEtCE,EAAA/K,EAAA,wJnCqwEIgL,EAAQN,EAAuBK,GmCpwEnCqR,EAAApc,EAAA,8KnCwwEIqc,EAAgB3R,EAAuB0R,ImCnwE3C,EAAApR,EAAAJ,SAFoB,cAEAqP,YAEpB,EAAAnP,EAAAF,SAAEnK,UAAUsM,MAAM,YACjB,EAAAjC,EAAAF,SANwB,sBAMxB,iBnC+wEK0R,yKACA,SAAUxc,EAAQC,EAASC,GAEjC,YAGAmN,QAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,EAAQuN,YAAcvN,EAAQwN,qBAAmBC,EoClyEjD,IAAA3C,GAAA7K,EAAA,qBpCsyEI8K,EAEJ,SAAgC3H,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFjD0H,GoCpyEzB0C,qBAAmB,uBACnBD,gBAAc,eAG3B,EAAAxC,EAAAF,SAAEnK,UAAUsM,MAAM,YAChB,EAAAjC,EAAAF,SAAE2C,GAAkBlB,KAAK,WACvB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,yBAAAwI,KAAApL,EAAAuF,KAAA,iLACG6F,KAAK,YACJ,EAAAN,EAAAF,SAAEO,GAASmC,YpC6yEbiP,wKACA,SAAUzc,EAAQC,EAASC,GAEjC,YAGAmN,QAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,EAAQuN,YAAcvN,EAAQwN,qBAAmBC,EqCj0EjD,IAAA3C,GAAA7K,EAAA,qBrCq0EI8K,EAEJ,SAAgC3H,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFjD0H,GqCn0EzB0C,qBAAmB,sBACnBD,gBAAc,eAE3B,EAAAxC,EAAAF,SAAEnK,UAAUsM,MAAM,YAChB,EAAAjC,EAAAF,SAAE2C,GAAkBlB,KAAK,WACvB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,wBAAAwI,KAAApL,EAAAuF,KAAA,gLACG6F,KAAK,YACJ,EAAAN,EAAAF,SAAEO,GAASmC,YrC60EbkP,iKACA,SAAU1c,EAAQC,EAASC,GAEjC,YAGAmN,QAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,EAAQuN,YAAcvN,EAAQwN,qBAAmBC,EsCh2EjD,IAAA3C,GAAA7K,EAAA,qBtCo2EI8K,EAEJ,SAAgC3H,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFjD0H,GsCl2EzB0C,qBAAmB,uBACnBD,gBAAc,gBAG3B,EAAAxC,EAAAF,SAAEnK,UAAUsM,MAAM,YAChB,EAAAjC,EAAAF,SAAE2C,GAAkBlB,KAAK,WACvB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,yBAAAwI,KAAApL,EAAAuF,KAAA,yKACG6F,KAAK,YACJ,EAAAN,EAAAF,SAAEO,GAASmC,YtC22EbmP,+KACA,SAAU3c,EAAQC,EAASC,GAEjC,YASA,SAASoO,GAAgBlI,EAAUmI,GAAe,KAAMnI,YAAoBmI,IAAgB,KAAM,IAAIC,WAAU,qCANhHnB,OAAOC,eAAerN,EAAS,cAC9BsN,OAAO,GAGR,IAAI4B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIjL,GAAI,EAAGA,EAAIiL,EAAM5K,OAAQL,IAAK,CAAE,GAAIkL,GAAaD,EAAMjL,EAAIkL,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMrC,OAAOC,eAAe+B,EAAQE,EAAWI,IAAKJ,IAAiB,MAAO,UAAUhB,EAAaqB,EAAYC,GAAiJ,MAA9HD,IAAYR,EAAiBb,EAAYlM,UAAWuN,GAAiBC,GAAaT,EAAiBb,EAAasB,GAAqBtB,MuCh4E1hBqO,EvCo4EY,WuCn4EjB,QAAAA,GAAYvR,EAASzD,GAAS0G,EAAA9M,KAAAob,GAC7Bpb,KAAK6J,QAAUA,EACf7J,KAAKoG,QAAUA,EACfpG,KAAKwP,QvCy5EN,MAhBA7B,GAAayN,IACZjN,IAAK,QACLpC,MAAO,WuCv4EP/L,KAAK6J,QAAQ8F,iBAAiB,SAAU3P,KAAKqb,kBAAkBpX,KAAKjE,UvC24EpEmO,IAAK,oBACLpC,MAAO,WuCx4EP/L,KAAK6J,QAAQmB,QAAQhL,KAAKoG,QAAQkV,SAAWtb,KAAKoG,QAAQmV,SAC1D,IAAMC,GAAexb,KAAK6J,QAAQmF,cAAc,sBAC7B,OAAhBwM,GAEFA,EAAaxB,aAAa,aAAcha,KAAKoG,QAAQmV,evC64EhDH,IuCv4ERA,GAAYhK,UACXkK,QAAS,QACTC,UAAW,WvC44EZ9c,EAAQ6K,QuC14EO8R,GvC84ETK,kLACA,SAAUjd,EAAQC,EAASC,GAEjC,YAeA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GwC17EvF,GAAA0H,GAAA7K,EAAA,qBxCg7EI8K,EAAWJ,EAAuBG,GwC/6EtCE,EAAA/K,EAAA,wJxCm7EIgL,EAAQN,EAAuBK,GwCl7EnCiS,EAAAhd,EAAA,gLxCs7EIid,EAAgBvS,EAAuBsS,IwCj7E3C,EAAAhS,EAAAJ,SAFoB,cAEA8R,YAEpB,EAAA5R,EAAAF,SAAEnK,UAAUsM,MAAM,YACjB,EAAAjC,EAAAF,SANwB,uBAMxB,iBxC67EKsS,qLACA,SAAUpd,EAAQC,EAASC,GAEjC,YAeA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GyCz9EvF,GAAA0H,GAAA7K,EAAA,qBzC+8EI8K,EAAWJ,EAAuBG,GyC98EtCE,EAAA/K,EAAA,wJzCk9EIgL,EAAQN,EAAuBK,GyCj9EnCoS,EAAAnd,EAAA,sLzCq9EIod,EAAmB1S,EAAuByS,IyCh9E9C,EAAAnS,EAAAJ,SAFoB,iBAEAyS,YAEpB,EAAAvS,EAAAF,SAAEnK,UAAUsM,MAAM,YACjB,EAAAjC,EAAAF,SANwB,0BAMxB,oBzC49EK0S,qLACA,SAAUxd,EAAQC,EAASC,GAEjC,YASA,SAAS+N,GAAmBC,GAAO,GAAI/I,MAAMgJ,QAAQD,GAAM,CAAE,IAAK,GAAI7J,GAAI,EAAG+J,EAAOjJ,MAAM+I,EAAIxJ,QAASL,EAAI6J,EAAIxJ,OAAQL,IAAO+J,EAAK/J,GAAK6J,EAAI7J,EAAM,OAAO+J,GAAe,MAAOjJ,OAAMkJ,KAAKH,GAE1L,QAASI,GAAgBlI,EAAUmI,GAAe,KAAMnI,YAAoBmI,IAAgB,KAAM,IAAIC,WAAU,qCARhHnB,OAAOC,eAAerN,EAAS,cAC9BsN,OAAO,GAGR,IAAI4B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIjL,GAAI,EAAGA,EAAIiL,EAAM5K,OAAQL,IAAK,CAAE,GAAIkL,GAAaD,EAAMjL,EAAIkL,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMrC,OAAOC,eAAe+B,EAAQE,EAAWI,IAAKJ,IAAiB,MAAO,UAAUhB,EAAaqB,EAAYC,GAAiJ,MAA9HD,IAAYR,EAAiBb,EAAYlM,UAAWuN,GAAiBC,GAAaT,EAAiBb,EAAasB,GAAqBtB,M0C5+E1hBgP,E1Cs/Ee,W0Cr/EpB,QAAAA,GAAYlS,EAASzD,GAYpB,GAZ6B0G,EAAA9M,KAAA+b,GAC7B/b,KAAK6J,QAAUA,EACf7J,KAAKoG,QAAUA,EAGfpG,KAAKic,KAAOjc,KAAKoG,QAAQ8V,aACtBlc,KAAK6J,QAAQmF,cAAchP,KAAKoG,QAAQ8V,cACxClc,KAAK6J,QAAQsS,QAAQ,QAGxBnc,KAAKuO,OAASvO,KAAKic,KAAKG,SAASpc,KAAKoG,QAAQtB,OAEzC9E,KAAKic,OAASjc,KAAKoG,QAAQtB,OAAS9E,KAAKuO,OAC7C,OAAO,CAGRvO,MAAKmE,OACLnE,KAAKwP,Q1CohFN,MA5BA7B,GAAaoO,IACZ5N,IAAK,OACLpC,MAAO,W0Ct/EP/L,KAAKqc,iB1C0/ELlO,IAAK,QACLpC,MAAO,W0Cx/ED,GAAA8E,GAAA7Q,QACNsH,OAAAmF,EAAIzM,KAAKuO,SAAQ3E,QAAQ,SAAC6E,GACzBA,EAAMkB,iBAAiB,SAAUkB,EAAKwL,YAAYpY,KAAK4M,S1C8/ExD1C,IAAK,cACLpC,MAAO,W0C1/EP,GAAMA,GAAQ/L,KAAKuO,OAAOxC,MACpBuQ,EAAetc,KAAKic,KAAKjN,cAAV,UAAkChP,KAAKoG,QAAQtB,KAA/C,aAAgEiH,EAAhE,MACfwQ,EAAQvc,KAAKic,KAAKjN,cAAV,cAAsCsN,EAAazR,GAAnD,KAET0R,IACJhd,QAAQid,KAAK,gCAAiCF,GAE/Ctc,KAAK6J,QAAQ4S,YAAcF,EAAME,gB1C+/E3BV,I0C1/ERA,GAAe3K,Y1C+/Ef3S,EAAQ6K,Q0C7/EOyS,G1CigFTW,kLACA,SAAUle,EAAQC,EAASC,GAEjC,YAGAmN,QAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,EAAQuN,YAAcvN,EAAQwN,qBAAmBC,E2C3jFjD,IAAA3C,GAAA7K,EAAA,qB3C+jFI8K,EAEJ,SAAgC3H,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFjD0H,G2C7jFzB0C,qBAAmB,gCACnBD,gBAAc,wBAG3B,EAAAxC,EAAAF,SAAEnK,UAAUsM,MAAM,YAChB,EAAAjC,EAAAF,SAAE2C,GAAkBlB,KAAK,WACvB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,kCAAAwI,KAAApL,EAAAuF,KAAA,0LACG6F,KAAK,YACJ,EAAAN,EAAAF,SAAEO,GAASmC,Y3CskFb2Q,kLACA,SAAUne,EAAQC,EAASC,GAEjC,YAGAmN,QAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,EAAQuN,YAAcvN,EAAQwN,qBAAmBC,E4C3lFjD,IAAA3C,GAAA7K,EAAA,qB5C+lFI8K,EAEJ,SAAgC3H,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFjD0H,G4C7lFzB0C,qBAAmB,gCACnBD,gBAAc,wBAG3B,EAAAxC,EAAAF,SAAEnK,UAAUsM,MAAM,YAChB,EAAAjC,EAAAF,SAAE2C,GAAkBlB,KAAK,WACvB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,kCAAAwI,KAAApL,EAAAuF,KAAA,0LACG6F,KAAK,YACJ,EAAAN,EAAAF,SAAEO,GAASmC,Y5CsmFb4Q,yKACA,SAAUpe,EAAQC,EAASC,GAEjC,YAGAmN,QAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,EAAQuN,YAAcvN,EAAQwN,qBAAmBC,E6C1nFjD,IAAA3C,GAAA7K,EAAA,qB7C8nFI8K,EAEJ,SAAgC3H,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAFjD0H,G6C5nFzB0C,qBAAmB,uBACnBD,gBAAc,gBAG3B,EAAAxC,EAAAF,SAAEnK,UAAUsM,MAAM,YAChB,EAAAjC,EAAAF,SAAE2C,GAAkBlB,KAAK,WACvB,GAAMlB,GAAU7J,IAChBtB,GAAA4C,EAAA,yBAAAwI,KAAApL,EAAAuF,KAAA,iLACG6F,KAAK,YACJ,EAAAN,EAAAF,SAAEO,GAASmC,Y7CqoFb6Q,oJACA,SAAUre,EAAQC,EAASC,GAEjC,Y8C/oFO,SAASgV,GAASoJ,EAAMC,EAAMC,GACnC,GAAIvV,EACJ,OAAO,YACL,GAAIwV,GAAUjd,KAAMD,EAAOiB,UACvBkc,EAAQ,WACVzV,EAAU,KACLuV,GAAWF,EAAKhc,MAAMmc,EAASld,IAElCod,EAAUH,IAAcvV,CAC5BR,cAAaQ,GACbA,EAAUZ,WAAWqW,EAAOH,GACxBI,GAASL,EAAKhc,MAAMmc,EAASld,I9CuoFrC8L,OAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,E8CrpFgBiV,Y9C4qFV0J,uJACA,SAAU5e,EAAQC,EAASC,GAEjC,YAqFA,SAAS2e,GAAwBxb,GAAO,GAAIA,GAAOA,EAAIwH,WAAc,MAAOxH,EAAc,IAAIyb,KAAa,IAAW,MAAPzb,EAAe,IAAK,GAAIsM,KAAOtM,GAAWgK,OAAOhL,UAAU0c,eAAexc,KAAKc,EAAKsM,KAAMmP,EAAOnP,GAAOtM,EAAIsM,GAAgC,OAAtBmP,GAAOhU,QAAUzH,EAAYyb,EAElQ,QAASlU,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,G+C7sFxE,QAAS2b,GAAOC,EAAYC,GAA0B,GAAnBC,GAAmB3c,UAAAkC,OAAA,OAAAgJ,KAAAlL,UAAA,IAAAA,UAAA,GAC7D4c,GAAsB,EAAAC,EAAAC,aAAYL,GAClCM,OAAgBH,CACVjT,WAAE8I,GAAGmK,EAGjBF,GAAMM,MACFC,UAAW,SAASzD,EAAO/G,IACvB,EAAAjK,EAAAF,SAAEtJ,MAAMiE,KAAKuW,EAAO/G,IAExByK,QAAS,SAAS1D,EAAOlN,IACrB,EAAA9D,EAAAF,SAAEtJ,MAAM+V,QAAQyE,GAAQlN,MAIhCoQ,EAAMS,OACJ1K,KACA2K,UACAC,UACArM,aAGF0L,EAAM7c,UAAUmR,UAAYA,EAC5B0L,EAAM7c,UAAUwd,QAAUA,EAC1BX,EAAM7c,UAAUud,QAAUA,EAC1BV,EAAM7c,UAAU4S,GAAKA,EACrBiK,EAAM7c,UAAUyd,WAAa,SAAUC,GACrC,GAAIC,GAAOD,EAAIE,wBACXC,EAAa1b,KAAK2b,IAAIxf,SAASC,gBAAgBwf,aAAc/f,OAAOggB,YACxE,SAASL,EAAKM,OAAS,GAAKN,EAAKO,IAAML,GAAc,IAGvD/T,UAAE8I,GAAGgK,GAAc,SAAwBuB,GACzC,MAAOhf,MAAK+K,KAAK,WACf,GAAM4M,IAAQ,EAAAnO,EAAAF,SAAEtJ,MACVsN,EAAOqK,EAAMrK,OACb2R,EAA8B,gBAAlB,KAAOD,EAAP,YAAAre,EAAOqe,KAAuBA,EAC1CE,EAAiBrT,OAClBsT,KAAK7R,GACLkB,OAAO,SAACL,GACP,OAAO,EAAA0P,EAAAC,aAAY3P,GAAK7J,QAAQsZ,IApC7B,IAsCJwB,OAAO,SAACjO,EAAQkO,GACf,GAAM/R,GAAO+R,GAAQ1H,EAAMrK,KAAK+R,GAC1BlR,GAAM,EAAA0P,EAAAC,aAAYuB,EAAK5e,QAAQ,GAAIb,QAAUge,EAAd,MAAwC,IAM7E,OALAld,GAAI2e,EAAMlR,EAAKwJ,EAAMrK,KAAK+R,IAEtBlR,OAAgBjC,KAAToB,IACT6D,EAAOhD,GAAOb,GAET6D,MAEbzQ,GAAI+c,GAAcyB,kBAClB,IAAIta,GAAW+S,EAAMrK,KAAKyQ,GACpB3X,EAAUuE,UAAE2U,UAAW5B,EAAMtM,SAAU8N,EAAgBD,EAGxDra,KACHA,EAAW,GAAI8Y,GAAM1d,KAAMoG,GAC3BxB,EAAS2a,OAAS7B,EAAMS,MACxBxG,EAAMrK,KAAKyQ,EAAUnZ,GACrB+S,EAAMnE,SAAN,KAAoBiK,IAIA,gBAAXuB,IACTpa,EAASoa,QAMXrB,IACFhT,UAAEiT,GAAuB,SAACxX,GAAD,OAAa,EAAAoD,EAAAF,aAAMsU,GAAqBxX,KAS9D,QAASoZ,GAAQ1a,GACpB,MAAO,UAAmB+I,GACtB2P,EAAO1Y,EAAM+I,IAId,QAAS4R,GAAUrZ,GACtB,MAAO,UAAmByH,GACtBA,EAAOuD,SAAWhL,G/C+hF1ByF,OAAOC,eAAerN,EAAS,cAC7BsN,OAAO,GAGT,IAAIpL,GAA4B,kBAAXgB,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOd,UAAY,eAAkBgB,GAkDtQpD,GAAQ6K,Q+C/qFgBkU,E/CgrFxB/e,E+C9lFgB+gB,S/C+lFhB/gB,E+CzlFgBghB,UAtGhB,IAAAlW,GAAA7K,EAAA,qB/CmsFI8K,EAAWJ,EAAuBG,G+ClsFtCS,EAAAtL,EAAA,6I/CssFIuL,EAAUb,EAAuBY,G+CpsFrC0V,EAAAhhB,EAAA,qJAAY+U,E/CwsFH4J,EAAwBqC,G+CvsFjC7B,EAAAnf,EAAA,0JAAY2f,E/C2sFEhB,EAAwBQ,G+C1sFtC8B,EAAAjhB,EAAA,0JAAY0f,E/C8sFEf,EAAwBsC,G+C7sFtC/M,EAAAlU,EAAA,4JAAYsT,E/CitFIqL,EAAwBzK,G+C3sFlClS,GAAM,EAAAuJ,EAAAX,SAAM,qB/CozFZsW,yJACA,SAAUphB,EAAQC,EAASC,GAEjC,YgDn2FO,SAASmhB,GAA2BhW,GAA2E,GAAlEiW,GAAkE9e,UAAAkC,OAAA,OAAAgJ,KAAAlL,UAAA,GAAAA,UAAA,GAAvD,kBAAM,GAAM+e,EAA2C/e,UAAAkC,OAAA,OAAAgJ,KAAAlL,UAAA,GAAAA,UAAA,GAA7B,SAAC8D,GAAD,OAAU,EAAA+Y,EAAAC,aAAYhZ,IACvGkb,KACAC,EAAQtc,MAAMkJ,KAAKlC,EAAEd,GAASe,IAAIsV,GAAMrQ,WAE9C,OAAKoQ,IAILvf,4CAA+Cuf,GAExCA,EAAMb,OAAO,SAACjO,EAAQgP,GAC3B,GAAIL,EAASK,GAAY,CACvB,GAAMrb,GAAOib,EAAYI,EAAUrb,MAC/BiH,EAAQoU,EAAUpU,KAER,WAAVA,GAA+B,SAAVA,IACvBA,EAAQqU,QAAQrU,IAElBoF,EAAOrM,GAAQqb,EAAUpU,MAG3B,MAAOoF,IACN6O,IAjBMA,EAgCJ,QAASK,GAAYxe,EAAKwd,EAAMrb,GAKrC,IAAK,GALqCoC,GAA4BpF,UAAAkC,OAAA,OAAAgJ,KAAAlL,UAAA,GAAAA,UAAA,IAAjBsf,UAAW,KAC1DxS,EAAQuR,EAAK5a,MAAM2B,EAAQka,WAC3BC,EAAQzS,EAAM0S,MAChBC,SAEKlgB,EAAQ,EAAGA,EAAQuN,EAAM5K,OAAQ3C,IAAS,CAEjD,GADAkgB,EAAO3S,EAAMvN,OACY,KAAdsB,EAAI4e,GAAuB,CAEpC,OAAmB,KAARzc,GAAuBzD,GAASuN,EAAM5K,OAK/C,MAHArB,GAAI4e,MAMR5e,EAAMA,EAAI4e,GAEZ,WAAsB,KAARzc,EAAuBnC,EAAI0e,GAASvc,EAAOnC,EAAI0e,GhD8yF/D1U,OAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,EgDz2FgBohB,6BhD02FhBphB,EgDr0FgB4hB,YApDhB,IAAArW,GAAAtL,EAAA,6IhD63FIuL,EAIJ,SAAgCpI,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,IAJlDmI,GgD53FrC6T,EAAAnf,EAAA,0JAEMgC,GAAM,EAAAuJ,EAAAX,SADQ,wBAId4W,EAAO,GhD48FPQ,2JACA,SAAUliB,EAAQC,EAASC,GAEjC,YAkBA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GiDn+FhF,QAAS8e,KAAgC,OAAAC,GAAA5f,UAAAkC,OAAZ2d,EAAYld,MAAAid,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAZD,EAAYC,GAAA9f,UAAA8f,EAC9C,OAAO,IAAIlhB,QAAJ,OAAkBihB,EAAWE,KAAK,KAAlC,oBAiBF,QAAS9O,GAAa+O,EAAUlP,GACrC,GAAIK,UAEE8O,EAAsBD,EAAS9hB,MAAMgiB,EAAkBC,QACvDC,EAAkBJ,EAAS9hB,MAAMgiB,EAAkBG,SACnDC,EAAeN,EAAS9hB,MAAMgiB,EAAkBrU,MAChD0U,EAAmBP,EAAS9hB,MAAMgiB,EAAkB/L,UACpDqM,EAAiBR,EAAS9hB,MAAMgiB,EAAkBO,MAClDC,EAAaV,EAAS9hB,MAAMgiB,EAAkBS,UAC9CC,EAAYZ,EAAS9hB,MAAMgiB,EAAkB7d,KAGnD,IAAIie,EAAc,CAChB5gB,EAAI,eAAgB4gB,EAAa,GAAIA,EAAa,GAClD,IAAMO,GAAc5P,EAAaqP,EAAa,GAAIxP,GAC5CgQ,gBAA4BR,EAAa,EAC/C5gB,GAAI,0BAA2BmhB,GAC/BnhB,EAAI,2BAA4BohB,GAChC3P,EAAUF,EAAa6P,EAAaD,GACpCnhB,EAAI,sBAAuByR,OAIxB,IAAIiP,EACP1gB,EAAI,kBAAmB0gB,GACvBjP,EAAUL,EAASuP,QAAQD,EAAgBA,EAAgBle,OAAS,QAGjE,IAAI+d,EACPvgB,EAAI,sBAAuBugB,GAC3B9O,EAAUL,EAASqK,QAAQ8E,EAAoBA,EAAoB/d,OAAS,QAGzE,IAAIse,EACP9gB,EAAI,iBAAkB8gB,GACtBrP,EAAUL,EAASqP,SAASjW,KAAKsW,EAAeA,EAAete,OAAS,QAGrE,IAAIqe,EACP7gB,EAAI,mBAAoB6gB,GACxBpP,EAAUL,EAAS5G,KAAKqW,EAAiBA,EAAiBre,OAAS,QAGhE,IAAIwe,EACPhhB,EAAI,aAAcghB,GAClBvP,EAAUL,EAAS6P,SAASD,EAAWA,EAAWxe,OAAS,QAGxD,KAAK8d,GAAYY,EAAW,CAC/BlhB,EAAI,YAAakhB,EACjB,IAAIZ,GAAWY,EAAUA,EAAU1e,OAAS,IAAM,GAClDiP,GAAUL,EAAStD,OAAOwS,OAI1BtgB,GAAI,SAAUsgB,GACd7O,GAAU,EAAA3I,EAAAF,SAAE0X,EAEd,OAAO7O,GjDw4FTtG,OAAOC,eAAerN,EAAS,cAC7BsN,OAAO,IAETtN,EAAQyiB,sBAAoBhV,GAC5BzN,EiDx9FgBkiB,kBjDy9FhBliB,EiDv8FgBwT,cAtBhB,IAAA1I,GAAA7K,EAAA,qBjDi+FI8K,EAAWJ,EAAuBG,GiDh+FtCS,EAAAtL,EAAA,6IjDo+FIuL,EAAUb,EAAuBY,GiDn+F/BtJ,GAAM,EAAAuJ,EAAAX,SAAM,8BAML4X,uBAGX/L,SAAYwL,EAAgB,YAG5BQ,OAAUR,EAAgB,UAC1B9T,KAAQ8T,EAAgB,QACxBU,QAAWV,EAAgB,WAC3BgB,SAAYhB,EAAgB,YAC5Bc,KAAQd,EAAgB,QACxBtd,KAAQsd,EAAgB,UjD6iGpBoB,yJACA,SAAUvjB,EAAQC,EAASC,GAEjC,YAuBA,SAAS0K,GAAuBvH,GAAO,MAAOA,IAAOA,EAAIwH,WAAaxH,GAAQyH,QAASzH,GkDrlGvF,QAASmgB,GAAkB5c,GAKzB,IAAK,GAJD6c,IAAkB,EAClBC,GAAkB,EAClBC,GAAsB,EAEjBtf,EAAI,EAAGA,EAAIuC,EAAIlC,OAAQL,IAAK,CACnC,GAAMzC,GAAIgF,EAAIvC,EAEVof,IAAmB,WAAWld,KAAK3E,IAAMA,EAAEgiB,gBAAkBhiB,GAC/DgF,EAAMA,EAAIT,OAAO,EAAG9B,GAAK,IAAMuC,EAAIT,OAAO9B,GAC1Cof,GAAkB,EAClBE,EAAsBD,EACtBA,GAAkB,EAClBrf,KACSqf,GAAmBC,GAAuB,WAAWpd,KAAK3E,IAAMA,EAAEnB,gBAAkBmB,GAC7FgF,EAAMA,EAAIT,OAAO,EAAG9B,EAAI,GAAK,IAAMuC,EAAIT,OAAO9B,EAAI,GAClDsf,EAAsBD,EACtBA,GAAkB,EAClBD,GAAkB,IAElBA,EAAkB7hB,EAAEnB,gBAAkBmB,EACtC+hB,EAAsBD,EACtBA,EAAkB9hB,EAAEgiB,gBAAkBhiB,GAI1C,MAAOgF,GAGF,QAAS0Y,GAAa1Y,GAU3B,MAREA,GADEpE,UAAUkC,OAAS,EACfS,MAAMkJ,KAAK7L,WACdiQ,IAAI,SAAAoR,GAAA,MAAKA,GAAEC,SACX9T,OAAO,SAAA6T,GAAA,MAAKA,GAAEnf,SACd6d,KAAK,KAEF3b,EAAIkd,OAGO,IAAfld,EAAIlC,OACC,GAGU,IAAfkC,EAAIlC,OACCkC,EAAInG,cAGT,cAAc8F,KAAKK,GACdA,GAGYA,IAAQA,EAAInG,gBAG/BmG,EAAM4c,EAAkB5c,IAGnBA,EACJ3E,QAAQ,YAAa,IACrBxB,cACAwB,QAAQ,kBAAmB,SAACmF,EAAG2c,GAAJ,MAAWA,GAAGH,iBAIvC,QAASI,GAAKpd,EAAK6X,GACxB,GAAI9L,GAAS/L,CAUb,OARI+L,IAEFtF,OAAOsT,KAAKlC,GACTrT,QAAQ,SAAC6Y,GACRtR,EAASA,EAAO1Q,QAAP,KAAoBgiB,EAApB,KAA8BxF,EAAQwF,MAI9CtR,EAGF,QAASuR,GAAM7Y,EAASoT,GAC7B,GAAM9K,IAAU,EAAA3I,EAAAF,SAAEO,GACZ8Y,EAAiBxQ,EAAQI,KAAK,sBAC9BpB,EAASqR,EAAKG,EAAgB1F,EAEpC9K,GAAQoF,KAAKpG,GAYR,QAASyR,GAASC,EAAUxf,EAAM8d,EAAQ2B,GAO/C,QAASlY,GAAImY,EAAK1D,GAGhB,MAFAA,GAAOA,EAAKmB,IAAMnB,EAAOA,EAAK5a,MAAM,KACpCse,EAAMA,EAAI1D,EAAK2D,UAAY,GACnB,IAAK3D,GAAQzU,EAAImY,EAAK1D,GAAQ0D,EATxC,GAEIlgB,GAFAogB,EAASL,EACT5C,EAAS,EAGbtf,GAAI,YAAamiB,WAAUxf,OAAM8d,SAAQ2B,WAQzCzf,EAAOM,MAAMgJ,QAAQtJ,GAAQA,EAAQA,GAAQA,MAC7CA,EAAOyf,EAAU,IAAKzf,OAAc,GAAKA,CAEzC,KAAKR,EAAI,EAAGA,EAAIQ,EAAKH,OAAQL,IAAK,CAChC,GAEIqgB,GAFAC,EAAY,GACZC,EAAQ,EAERL,EAAyB,UAAlBpiB,EAAO0C,EAAKR,IAAkBQ,EAAKR,KAC1CkgB,GAAMlX,OAAOwX,UAAWlC,EAAQ4B,GAChCA,EAAI,KAAQO,GAAIjgB,EAAKR,IAEzBggB,EAASpiB,QAAQ,wCACf,SAAUvB,EAAOqkB,EAAM9d,EAAG+d,EAAGnJ,EAAOyI,EAAQhe,GAErCse,EAaHD,GAAaC,IAAU/I,GAAS+I,EAAQ,EAAIlkB,EAAQqkB,GAZpDvD,GAAUuD,EAAK9iB,QAAQ,qCACrB,SAAUvB,EAAOukB,EAAKC,EAASC,EAAOC,EAAS9e,GAC7C,MAAO2e,GAAM7Y,EAAImY,EAAKU,GAClBE,EAAQ/Y,EAAImY,EAAKje,GACf8e,EAAUX,EAAOrY,EAAImY,EAAKje,GAAOie,GAC9BW,EACC,GADS,GAAIG,QAAOjZ,EAAImY,EAAKje,IAAOgf,YAIlDZ,EAAWJ,GAMTzI,IACK+I,IACLte,EAAO8F,EAAImY,EAAKje,GACZ,KAAKC,SAAL,KAAiBD,EAAjB,YAAAnE,EAAiBmE,IACnBkb,GAAUlb,EAAK/D,KAAKgiB,EAAKI,EAAW,SAAUN,GAC5C,MAAOI,GAAOJ,EAAUE,KAG1B/C,GAAUiD,EAAOE,EAAWre,EAAMie,EAAKG,GAEzCC,EAAY,MAIZC,EAEJ1iB,qBAAuB0iB,GAAUpD,aAKvC,MADAtf,GAAI,mBAAoBsf,WACjBA,EAGF,QAAS+D,GAAWhY,GACzB,GAAMiY,GAAQjY,EAAM9M,aACpB,OAAc,UAAV+kB,GAA+B,MAAVA,GAGlB,GAAI5D,SAAQrU,GlD05FrBF,OAAOC,eAAerN,EAAS,cAC7BsN,OAAO,GAGT,IAAIpL,GAA4B,kBAAXgB,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOd,UAAY,eAAkBgB,GAEtQpD,GkD1iGgBqf,clD2iGhBrf,EkDxgGgB+jB,OlDygGhB/jB,EkD3/FgBikB,QlD4/FhBjkB,EkD3+FgBmkB,WlD4+FhBnkB,EkDz6FgBslB,YAvKhB,IAAAxa,GAAA7K,EAAA,qBlDolGI8K,EAAWJ,EAAuBG,GkDnlGtCS,EAAAtL,EAAA,6IlDulGIuL,EAAUb,EAAuBY,GkDrlG/BtJ,GAAM,EAAAuJ,EAAAX,SAAM,+BlD2vGZ2a,gDACA,SAAUzlB,EAAQC,KAOlBylB,oBACA,SAAU1lB,EAAQC,GmDvwGxBD,EAAAC,QAAA0lB,QnD6wGMC,+CACA,SAAU5lB,EAAQC,EAASC,GAEjCF,EAAOC,QAAUC,EAAoB,+IAKlC","file":"scripts/core--4836ac4db9ac3e819aaa.js","sourcesContent":["webpackJsonp([\"core\"],{\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/debug.js\");\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 ||\n // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === (typeof console === 'undefined' ? 'undefined' : _typeof(console)) && console.log && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch (e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/process/browser.js\")))\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/debug.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/ms/index.js\");\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0,\n i;\n\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy() {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/ms/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val === 'undefined' ? 'undefined' : _typeof(val);\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') || plural(ms, h, 'hour') || plural(ms, m, 'minute') || plural(ms, s, 'second') || ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/process/browser.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/ajax-submit/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = \"[data-ajax-submit]\";\nvar PLUGIN_NAME = \"ajaxSubmit\";\n\nvar elements = document.querySelectorAll(ELEMENT_SELECTOR);\n\nelements.forEach(function (element) {\n\t__webpack_require__.e/* import() */(\"ajax-submit\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/ajax-submit/ajax-submit.js\")).then(function (module) {\n\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/dismiss.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\r\n * Dismiss\r\n * Alerts\r\n * @author Oliver Boermans\r\n */\n\nvar log = (0, _debug2.default)(\"alerts\");\n\n//\n// Config\n// ===========\nvar ALERT_SELECTOR = \"[data-alert]\";\nvar ALERT_BUTTON_SELECTOR = 'button';\n\nvar hidePanel = function hidePanel(alertToHide) {\n\t(0, _jquery2.default)(alertToHide).hide();\n\t(0, _jquery2.default)('body').removeClass('has-alert');\n};\n\nvar dismissAlert = function dismissAlert(instance) {\n\tvar element = instance.element,\n\t alertApi = instance.alertApi,\n\t alertId = instance.alertId;\n\n\t_jquery2.default.get(alertApi, {\n\t\tid: alertId\n\t});\n\thidePanel(element);\n};\n\nfunction init() {\n\tvar alertElements = (0, _jquery2.default)(ALERT_SELECTOR);\n\tlog(alertElements);\n\talertElements.each(function (index, element) {\n\t\tvar alertApi = element.dataset.alertApi;\n\t\tvar alertId = element.id;\n\t\tvar alertButton = (0, _jquery2.default)(element).find(ALERT_BUTTON_SELECTOR);\n\n\t\tif (alertButton.length) {\n\t\t\talertButton.on('click', dismissAlert.bind(null, { element: element, alertApi: alertApi, alertId: alertId }));\n\t\t} else {\n\t\t\tlog(\"No site alert button found.\");\n\t\t}\n\t});\n};\n\ninit();\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/dismiss.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/choose-form/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-choose-form]';\nvar PLUGIN_NAME = 'chooseForm';\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"choose-form\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/choose-form/choose-form.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/cover-selector/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n$(function () {\n\t$(\"[data-cover-selector]\").each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"cover-selector\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/cover-selector/index.js\"));\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/date-field/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = \"[data-date-field]\";\nvar PLUGIN_NAME = \"dateField\";\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"date-field\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/date-field/date-field.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/quote-cta/index--split.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/quote-cta/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-quote-cta-controller]';\nvar PLUGIN_NAME = 'quoteCtaController';\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"quote-cta\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/quote-cta/quote-cta.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/quote-form/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/choose-form/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/product-card/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/cover-selector/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/date-field/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/localize-date/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/modal/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/epi-blocks/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/alerts/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/scrollbar-width/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/ajax-submit/index--split.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/sync-same-name/index--split.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/localize-date/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = \"[data-localize-date]\";\nvar PLUGIN_NAME = \"localizeDate\";\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"date-field\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/localize-date/localize-date.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/modal/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Modaal is not a spelling error!\n// It is the name of the 3rd party modal component we are using\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-modal]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'modal';\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"component--modal\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/modal/modal.js\")).then(function () {\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/product-card/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-product-card]';\nvar PLUGIN_NAME = 'productCard';\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"product-card\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/product-card/product-card.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/quote-form/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-quote-form]';\nvar PLUGIN_NAME = 'quoteForm';\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\t__webpack_require__.e/* import() */(\"quote-form\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/quote-form/quote-form.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/required-field.js\");\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = \"[data-required-field]\";\nvar PLUGIN_NAME = \"requiredField\";\n\n(0, _jquery2.default)(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n\t\tvar element = this;\n\t\tnew Promise(function(resolve) { resolve(); }).then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/required-field.js\")).then(function (module) {\n\t\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t\t});\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/required-field/required-field.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar log = (0, _debug2.default)(\"required-field\");\n\nfunction getJSONValue(stringValue) {\n\ttry {\n\t\treturn JSON.parse(stringValue);\n\t} catch (error) {\n\t\treturn stringValue;\n\t}\n}\n\nvar validators = {\n\t'at_least_one_checked': function at_least_one_checked(inputs) {\n\t\treturn inputs.filter(function (input) {\n\t\t\treturn input.checked;\n\t\t}).length > 0 ? '' : 'check at least one';\n\t},\n\tregex: function regex(expression, input) {\n\t\tvar regex = new RegExp(expression);\n\t\treturn regex.test(input.value);\n\t}\n};\n\nvar RequiredField = function () {\n\tfunction RequiredField(element, options) {\n\t\t_classCallCheck(this, RequiredField);\n\n\t\tlog(\"element\", element);\n\t\tlog(\"options\", options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\n\t\tthis.isFieldset = this.element.nodeName === 'FIELDSET';\n\n\t\tthis.inputSet = [].concat(_toConsumableArray(this.element.querySelectorAll(\"[name=\\\"\" + this.options.inputSet + \"\\\"]\")));\n\n\t\tthis.input = this.element.querySelector(\"[name=\\\"\" + this.options.name + \"\\\"]\");\n\n\t\tthis.errorElementSelectorScope = this.options.errorSelector[0] === \"#\" ? document : this.element;\n\n\t\tthis.errorElement = this.errorElementSelectorScope.querySelector(this.options.errorSelector);\n\n\t\tthis.showErrors = getJSONValue(this.element.dataset.showErrors);\n\n\t\tthis.attributeObserver = new MutationObserver(this.onAttributeChange.bind(this));\n\n\t\tthis.init();\n\t\tthis.watch();\n\n\t\tlog(\"ready\", this, this.element);\n\t}\n\n\t_createClass(RequiredField, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {\n\t\t\tthis.updateValidity();\n\t\t\tthis.validateInput();\n\t\t}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tlog(\"watching\");\n\t\t\tthis.element.addEventListener(\"change\", this.updateValidity.bind(this));\n\t\t\tthis.attributeObserver.observe(this.element, { attributes: true });\n\t\t\tthis.input.addEventListener(\"input\", this.updateValidity.bind(this));\n\t\t\tthis.input.addEventListener(\"validate\", this.updateValidity.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"isValid\",\n\t\tvalue: function isValid() {\n\t\t\tvar elementToValidate = this.isFieldset ? this.element : this.input;\n\t\t\treturn elementToValidate.validity.valid;\n\t\t}\n\t}, {\n\t\tkey: \"updateFieldsetValidity\",\n\t\tvalue: function updateFieldsetValidity() {\n\t\t\tvar validator = validators[this.options.rule];\n\t\t\tif (!this.isFieldset || !validator) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.element.setCustomValidity(validator(this.inputSet));\n\t\t}\n\t}, {\n\t\tkey: \"updateErrorMessage\",\n\t\tvalue: function updateErrorMessage() {\n\t\t\tthis.errorElement.hidden = this.isValid();\n\t\t}\n\t}, {\n\t\tkey: \"updateValidity\",\n\t\tvalue: function updateValidity() {\n\t\t\tthis.updateFieldsetValidity();\n\t\t\tthis.validateInput();\n\n\t\t\tif (this.showErrors) {\n\t\t\t\tthis.updateErrorMessage();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"onAttributeChange\",\n\t\tvalue: function onAttributeChange(mutationList, observer) {\n\t\t\tmutationList.filter(function (mutation) {\n\t\t\t\treturn mutation.type === \"attributes\" && mutation.attributeName === this.options.componentErrorAttribute;\n\t\t\t}.bind(this)).forEach(this.onShowErrorsChange.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"onShowErrorsChange\",\n\t\tvalue: function onShowErrorsChange(mutation) {\n\t\t\tthis.showErrors = getJSONValue(this.element.dataset.showErrors);\n\t\t\tthis.updateErrorMessage();\n\t\t}\n\t}, {\n\t\tkey: \"validateInput\",\n\t\tvalue: function validateInput() {\n\t\t\tvar _this = this;\n\n\t\t\tif (!this.input) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar tests = [getRegexValidator(validators, this.input.dataset)].filter(truthy);\n\n\t\t\t// Validation may have been disabled if this field was hidden\n\t\t\tif (this.element.dataset.validateField === \"false\") {\n\t\t\t\tthis.element.setCustomValidity(\"\");\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.input.value !== \"\" && tests.length) {\n\t\t\t\tvar results = tests.map(function (validator) {\n\t\t\t\t\treturn validator.test(_this.input) ? \"\" : validator.message;\n\t\t\t\t});\n\n\t\t\t\tvar errors = results.filter(function (result) {\n\t\t\t\t\treturn result !== \"\";\n\t\t\t\t});\n\n\t\t\t\tthis.input.setCustomValidity(errors.length ? errors[0] : \"\");\n\t\t\t} else {\n\t\t\t\tthis.input.setCustomValidity(\"\");\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn RequiredField;\n}();\n\nfunction getRegexValidator(validators, data) {\n\t//const message = data.valRegexMessage || data.valRegex;\n\tvar message = 'Invalid';\n\n\tif (!data) {\n\t\treturn false;\n\t}\n\n\tif (data.valRegexPatternName && validators[data.valRegexPatternName]) {\n\t\treturn { test: validators[data.valRegexPatternName], message: message };\n\t}\n\tif (data.valRegexPattern) {\n\t\treturn {\n\t\t\ttest: validators.regex.bind(null, data.valRegexPattern),\n\t\t\tmessage: message\n\t\t};\n\t}\n\treturn false;\n}\n\nfunction truthy(value) {\n\treturn value;\n}\n\nRequiredField.DEFAULTS = {\n\tcomponentErrorAttribute: \"data-show-errors\"\n};\n\nexports.default = RequiredField;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/scrollbar-width/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/scrollbar-width/scrollbar-width.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/scrollbar-width/scrollbar-width.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction calculateScrollbarWidth() {\n\tdocument.documentElement.style.setProperty(\"--root-scrollbar-width\", window.innerWidth - document.documentElement.clientWidth + \"px\");\n}\nwindow.addEventListener(\"resize\", calculateScrollbarWidth, false);\n\ncalculateScrollbarWidth();\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/search-form-collapsible.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/search-form-collapsible.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ELEMENT_SELECTOR = '[data-search-form-collapsible]';\nvar PLUGIN_NAME = 'searchFormCollapsible';\n\nvar log = (0, _debug2.default)('site-header/header-controller:search');\n\nvar SearchFormCollapsible = function () {\n\tfunction SearchFormCollapsible(element, options) {\n\t\t_classCallCheck(this, SearchFormCollapsible);\n\n\t\tlog('element', element);\n\t\tlog('options', options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\t\tthis.$element = (0, _jquery2.default)(element);\n\n\t\tthis.enabled = false;\n\n\t\tthis.formElements = this.selectors.selectTarget(this.options.elementsSelector, this.$element);\n\n\t\tthis.watch();\n\n\t\tlog('ready', this, this.$target);\n\t}\n\n\t_createClass(SearchFormCollapsible, [{\n\t\tkey: 'watch',\n\t\tvalue: function watch() {\n\t\t\tlog('watching');\n\n\t\t\tthis.$element.on('togglesearch', this.toggle.bind(this));\n\t\t\tthis.$element.on('disablesearch', this.disable.bind(this));\n\t\t}\n\t}, {\n\t\tkey: 'enable',\n\t\tvalue: function enable() {\n\t\t\tthis.formElements.removeAttr('disabled');\n\t\t\tthis.enabled = true;\n\t\t\tthis.formElements[0].focus();\n\t\t\tlog('enable');\n\t\t}\n\t}, {\n\t\tkey: 'disable',\n\t\tvalue: function disable() {\n\t\t\tthis.formElements.attr('disabled', 'disabled');\n\t\t\tthis.enabled = false;\n\t\t\tlog('disable');\n\t\t}\n\t}, {\n\t\tkey: 'toggle',\n\t\tvalue: function toggle() {\n\t\t\tvar handler = this.enabled ? this.disable.bind(this) : this.enable.bind(this);\n\t\t\tlog('toggle');\n\t\t\thandler();\n\t\t}\n\t}]);\n\n\treturn SearchFormCollapsible;\n}();\n\nSearchFormCollapsible.DEFAULTS = {};\n\n(0, _lib2.default)(PLUGIN_NAME, SearchFormCollapsible);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/search/global-search/index.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/navigation--obscurable.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/site-header-controller.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/navigation--obscurable.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**\r\n * Obscurable Navigation\r\n * @original-idea Kate York\r\n * @original-idea Oliver Boermans\r\n * @author Zenobius Jiricek\r\n *\r\n * @example\r\n * see ./header.scss\r\n */\n\n//\n// Utilities\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _selectors = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PLUGIN_NAME = \"ObscurableNavigation\";\nvar ELEMENT_SELECTOR = \"[data-navigation-obscurable]\";\nvar log = (0, _debug2.default)('core/components/site-header/navigation--obscurable');\n\nvar ObscurableNavigationPlugin = function () {\n function ObscurableNavigationPlugin(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, ObscurableNavigationPlugin);\n\n this.element = element;\n this.$element = (0, _jquery2.default)(element);\n this.options = options;\n this.options.tolerancePx = parseInt(this.options.tolerancePx);\n\n log('created', { element: element, options: this.options });\n this.components = {\n obscuredItemContainer: (0, _selectors.selectTarget)(this.options.obscuredItemContainerSelector, this.$element),\n visibleItemContainer: (0, _selectors.selectTarget)(this.options.visibleItemContainerSelector, this.$element),\n obscuredItemContainerToggle: (0, _selectors.selectTarget)(this.options.obscuredItemContainerToggleSelector, this.$element)\n };\n\n this.watch();\n }\n\n _createClass(ObscurableNavigationPlugin, [{\n key: 'watch',\n value: function watch() {\n var _this = this;\n\n log('watch');\n this.currentTestId = 0;\n (0, _jquery2.default)(window).resize(function () {\n _this.components.visibleItemContainer.addClass('testing');\n });\n (0, _jquery2.default)(window).resize(this.fn.debounce(this.test.bind(this), this.options.testTimeoutMs, true));\n (0, _jquery2.default)(window).resize(this.fn.debounce(this.test.bind(this), this.options.testTimeoutMs));\n setTimeout(this.test.bind(this), this.options.testTimeoutMs);\n }\n }, {\n key: 'test',\n value: function test() {\n log('test');\n this.unObscureItems();\n this.testItems();\n }\n }, {\n key: 'isItemObscured',\n value: function isItemObscured(element) {\n log('isItemObscured', element);\n var $testElement = (0, _jquery2.default)(element);\n var width = $testElement.outerWidth(true);\n var rightEdgePosition = width + this.options.tolerancePx + this.accumulatedWidth;\n var result = rightEdgePosition > this.actualContainerWidth;\n log('isItemObscured', rightEdgePosition, this.actualContainerWidth, result);\n this.accumulatedWidth += width;\n return result;\n }\n }, {\n key: 'unObscureItems',\n value: function unObscureItems() {\n var _this2 = this;\n\n log('unObscureItems');\n // Put everything back in main nav\n // to prepare for testing if they in fact fit.\n (0, _selectors.selectTarget)(this.options.intersectingItemSelector, this.components.obscuredItemContainer).removeClass(this.options.obscuredItemClasses).addClass(this.options.visibleItemClasses).each(function (index, element) {\n _this2.components.visibleItemContainer.append((0, _jquery2.default)(element).detach());\n });\n }\n }, {\n key: 'moveItem',\n value: function moveItem(element) {\n log('moveItem', element);\n var $element = (0, _jquery2.default)(element).detach();\n\n $element.addClass(this.options.obscuredItemClasses).removeClass(this.options.visibleItemClasses);\n\n this.components.obscuredItemContainer.append($element);\n\n $element.show();\n }\n }, {\n key: 'testItems',\n value: function testItems(items) {\n var _this3 = this;\n\n log('testItems');\n var toggleWidth = this.components.obscuredItemContainerToggle.innerWidth();\n this.components.obscuredItemContainerToggle.detach();\n\n // Move the items that don't fit back to mobile nav\n this.components.obscuredItemContainerToggle.show();\n var $items = (0, _selectors.selectTarget)(this.options.intersectingItemSelector, this.components.visibleItemContainer);\n log('testItems.items', $items);\n\n this.actualContainerWidth = this.components.visibleItemContainer.innerWidth();\n // build a list of items that don't fit\n this.accumulatedWidth = 0;\n var obscuredItems = $items.filter(function (index, element) {\n return _this3.isItemObscured(element);\n });\n log('testItems.obscuredItems', obscuredItems);\n\n // if at least one item doesn't fit\n if (!this.components.visibleItemContainer.is(':visible')) {\n $items.each(function (index, element) {\n return _this3.moveItem(element);\n });\n } else if (obscuredItems.length > 0) {\n // reduce width of container\n this.actualContainerWidth = this.actualContainerWidth - toggleWidth;\n log('testItems.atLeatOneObscured', this.actualContainerWidth);\n\n this.accumulatedWidth = 0;\n obscuredItems = $items\n // re-test visible items based on new container width\n .filter(function (index, element) {\n return _this3.isItemObscured(element);\n })\n // then move them\n .each(function (index, element) {\n return _this3.moveItem(element);\n });\n }\n\n if (obscuredItems.length > 0 || obscuredItems.length == $items.length) {\n this.components.visibleItemContainer.append(this.components.obscuredItemContainerToggle);\n }\n\n if (!this.components.obscuredItemContainer.children().length > 0) {\n this.components.obscuredItemContainerToggle.hide();\n }\n\n this.components.visibleItemContainer.removeClass('testing');\n }\n }]);\n\n return ObscurableNavigationPlugin;\n}();\n\nObscurableNavigationPlugin.DEFAULTS = {\n tolerancePx: 40,\n testTimeoutMs: 150,\n reflowOnResize: true,\n visibleItemClasses: 'navigation__item--unobscured',\n obscuredItemClasses: 'navigation__item--obscured',\n visibleItemContainerSelector: '(children) [data-navigation--visible-items]',\n intersectingItemSelector: '(children) [data-navigation--intersecting-item]',\n obscuredItemContainerSelector: '(children) [data-navigation--obscured-items]',\n obscuredItemContainerToggleSelector: '(children) [data-navigation--obscured-items-toggle]'\n};\n\n(0, _lib2.default)(PLUGIN_NAME, ObscurableNavigationPlugin);\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/site-header/site-header-controller.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ELEMENT_SELECTOR = '[data-header-controller]';\nvar PLUGIN_NAME = 'headerController';\n\nvar log = (0, _debug2.default)('site-header/header-controller:header');\n\nvar HeaderController = function () {\n\tfunction HeaderController(element, options) {\n\t\t_classCallCheck(this, HeaderController);\n\n\t\tlog('element', element);\n\t\tlog('options', options);\n\n\t\tthis.options = options;\n\t\tthis.element = element;\n\t\tthis.$element = (0, _jquery2.default)(element);\n\n\t\tthis.isSearchCollapsible = !!this.options.searchComponentSelector;\n\n\t\tthis.searchComponent = this.isSearchCollapsible && this.selectors.selectTarget(this.options.searchComponentSelector, this.$element);\n\n\t\tthis.phoneComponent = this.selectors.selectTarget(this.options.phoneComponentSelector, this.$element);\n\n\t\tthis.watch();\n\n\t\tlog('ready', this, this.$target);\n\t}\n\n\t_createClass(HeaderController, [{\n\t\tkey: 'watch',\n\t\tvalue: function watch() {\n\t\t\tlog('watching');\n\n\t\t\tthis.$element.on('concealsearch', this.tryConcealSearch.bind(this));\n\t\t\tthis.$element.on('closephone', this.closePhoneComponent.bind(this));\n\t\t}\n\t}, {\n\t\tkey: 'closePhoneComponent',\n\t\tvalue: function closePhoneComponent() {\n\t\t\tif (this.phoneComponent.length) {\n\t\t\t\tthis.phoneComponent[0].dataset.collapsibleOpen = false;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'tryConcealSearch',\n\t\tvalue: function tryConcealSearch() {\n\t\t\tlog('attempting to disable search');\n\t\t\tif (this.isSearchCollapsible) {\n\t\t\t\tthis.searchComponent.trigger('disablesearch');\n\t\t\t} else {\n\t\t\t\tlog('Search is not collapsible');\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn HeaderController;\n}();\n\nHeaderController.DEFAULTS = {};\n\n(0, _lib2.default)(PLUGIN_NAME, HeaderController);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/sync-same-name/index--split.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = \"[data-sync-same-name]\";\nvar PLUGIN_NAME = \"syncSameName\";\n\nvar elements = document.querySelectorAll(ELEMENT_SELECTOR);\n\nelements.forEach(function (element) {\n\t__webpack_require__.e/* import() */(\"sync-same-name\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/sync-same-name/sync-same-name.js\")).then(function (module) {\n\t\t(0, _lib2.default)(PLUGIN_NAME, module.default);\n\t\t(0, _jquery2.default)(element)[PLUGIN_NAME]();\n\t});\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/table-cell-icons.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/wysiwyg/table-cell-icons.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\r\n * Table Cell Icons\r\n * Replaces table cell content based on cell content.\r\n * @author Rhys Lloyd\r\n */\n\nvar log = (0, _debug2.default)('core/components/wysiwyg/table-cell-icons');\n\n// Constants\nvar TABLE_DATA_ATTRIBUTE = 'data-table-icons';\nvar TABLE_IGNORE = 'ignore';\nvar ICON_KEYWORDS = ['yes', 'restricted', 'no'];\nvar ICON_BRACKET_OPEN = '[';\nvar ICON_BRACKET_CLOSE = ']';\nvar KEYWORD_ICON = {\n\t'yes': 'covered',\n\t'restricted': 'restricted',\n\t'no': 'excluded'\n};\n\nfunction getIconClassString(keyword) {\n\treturn 'icon--' + keyword;\n}\n\nfunction keywordFormatter(keyword) {\n\treturn '' + ICON_BRACKET_OPEN + keyword + ICON_BRACKET_CLOSE;\n}\n\n//noinspection SpellCheckingInspection\nfunction keywordUnformatter(keyword) {\n\treturn keyword.substring(ICON_BRACKET_OPEN.length, keyword.length - ICON_BRACKET_CLOSE.length);\n}\n\nfunction iconLookup(keyword) {\n\treturn KEYWORD_ICON[keyword] || keyword;\n}\n\n/**\r\n * Run plugin\r\n */\nfunction exec() {\n\tlog('Running...');\n\n\t// Find tables\n\tvar $tables = (0, _jquery2.default)('table').filter(':not([' + TABLE_DATA_ATTRIBUTE + '=\"' + TABLE_IGNORE + '\"])');\n\n\tif (!$tables.length) {\n\t\tlog('No tables to parse.');\n\t\treturn;\n\t}\n\n\t// Add data attribute - in progress value\n\t$tables.attr(TABLE_DATA_ATTRIBUTE, 'in-progress');\n\tlog('Parsing tables', $tables);\n\n\t// Cell icon template\n\tvar $labelTemplate = (0, _jquery2.default)('').addClass('icon__label u-visually-hidden'),\n\t $iconTemplate = (0, _jquery2.default)('').addClass('icon');\n\n\t// Match replacer - nested function for closure access to $iconTemplate\n\tfunction keywordReplacer(match) {\n\t\tvar keyword = keywordUnformatter(match),\n\t\t iconName = iconLookup(keyword),\n\t\t $label = $labelTemplate.clone().text(keyword);\n\n\t\treturn $iconTemplate.clone().addClass(getIconClassString(iconName)).addClass('keyword-icon keyword-icon--' + keyword).append($label).prop('outerHTML');\n\t}\n\n\t// Loop through all TD cells\n\t$tables.find('td').each(function () {\n\t\tvar $this = (0, _jquery2.default)(this);\n\n\t\t// For each keyword, loop through cell contents and replace\n\t\t// keyword with icon template\n\t\tvar _iteratorNormalCompletion = true;\n\t\tvar _didIteratorError = false;\n\t\tvar _iteratorError = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator = ICON_KEYWORDS[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\tvar keyword = _step.value;\n\n\t\t\t\tvar original = $this.html(),\n\t\t\t\t updated = original.replace(keywordFormatter(keyword), keywordReplacer);\n\n\t\t\t\tif (original !== updated) {\n\t\t\t\t\tlog('Replacing cell contents:\\nOriginal:', original, '\\nUpdated:', updated);\n\t\t\t\t\t$this.html(updated);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError = true;\n\t\t\t_iteratorError = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t\t_iterator.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError) {\n\t\t\t\t\tthrow _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// Set data attribute to indicate done\n\t$tables.attr(TABLE_DATA_ATTRIBUTE, true);\n}\n\nexec();\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/components/index.js\");\n\n__webpack_require__(\"/tool/project/client/src/core/vendor/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('fusion-core');\n\n// See polyfills bundle - this should not be needed here too\n// import \"./polyfills\";\n\n\n(0, _jquery2.default)(function () {\n\tlog('ready');\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/index.js\");\n\n__webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/index.js\");\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-add-element-classes]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'AddElementClasses';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--add-element-classes\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__add-element-classes/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/collapsible.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar log = (0, _debug2.default)(\"collapsible\");\n\nfunction getJSONValue(stringValue) {\n\ttry {\n\t\treturn JSON.parse(stringValue);\n\t} catch (error) {\n\t\treturn stringValue;\n\t}\n}\n\nvar Collapsible = function () {\n\tfunction Collapsible(element, options) {\n\t\t_classCallCheck(this, Collapsible);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\n\t\tvar scopes = {\n\t\t\tdocument: document,\n\t\t\telement: this.element\n\t\t};\n\n\t\t//\tLook for the content element within this element or elsewhere\n\t\tvar contentSelectorIsId = this.options.contentSelector && this.options.contentSelector[0] === \"#\";\n\n\t\tif (contentSelectorIsId) {\n\t\t\tthis.contentSelectorScope = scopes[\"document\"];\n\t\t} else {\n\t\t\tthis.contentSelectorScope = scopes[this.options.contentSelectorScope] ? scopes[this.options.contentSelectorScope] : scopes[\"element\"];\n\t\t}\n\n\t\t// if no button is specified perhaps this is the button\n\t\tthis.button = this.options.buttonSelector ? this.element.querySelector(this.options.buttonSelector) : this.element;\n\n\t\t// Content is optional\n\t\t//\twe may be toggling with CSS based on aria-expanded button attr\n\t\tthis.content = this.options.contentSelector && this.contentSelectorScope.querySelector(this.options.contentSelector);\n\t\tthis.collapseWith = this.options.collapsedClass ? \"class\" : \"hidden\";\n\t\tthis.collapsedClass = this.options.collapsedClass;\n\n\t\tthis.toggleMethod = this.collapseWith === \"class\" ? this.toggleWithClass : this.toggleWithHidden;\n\n\t\tthis.attributeObserver = new MutationObserver(this.onAttributeChange.bind(this));\n\n\t\tthis.bindDocumentEvents = this.options.closeWithDocumentClick ? this.bindDocumentClick : function () {};\n\n\t\tthis.unbindDocumentEvents = this.options.closeWithDocumentClick ? this.unbindDocumentClick : function () {};\n\n\t\tthis.init();\n\t\tthis.watch();\n\t}\n\n\t_createClass(Collapsible, [{\n\t\tkey: \"init\",\n\t\tvalue: function init() {\n\t\t\t// component enabled - show the button\n\t\t\tthis.button.hidden = false;\n\n\t\t\t// Determine initial collapse state\n\t\t\t//\tif set open option determines init state\n\t\t\tvar doCollapse = this.options.open !== undefined ? !this.options.open : true;\n\n\t\t\tthis.toggleMethod(doCollapse);\n\t\t\tthis.isCollapsed = doCollapse;\n\t\t}\n\t}, {\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tthis.button.addEventListener(\"click\", this.toggle.bind(this));\n\t\t\tthis.attributeObserver.observe(this.element, { attributes: true });\n\t\t}\n\t}, {\n\t\tkey: \"toggleWithHidden\",\n\t\tvalue: function toggleWithHidden(doCollapse) {\n\t\t\tthis.button.setAttribute(\"aria-expanded\", !doCollapse);\n\n\t\t\tif (!this.content) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.content.hidden = doCollapse;\n\t\t}\n\t}, {\n\t\tkey: \"toggleWithClass\",\n\t\tvalue: function toggleWithClass(doCollapse) {\n\t\t\tthis.button.setAttribute(\"aria-expanded\", !doCollapse);\n\n\t\t\tif (!this.content) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (doCollapse) {\n\t\t\t\tthis.content.classList.add(this.collapsedClass);\n\t\t\t} else {\n\t\t\t\tthis.content.classList.remove(this.collapsedClass);\n\t\t\t}\n\t\t}\n\n\t\t// button click handler\n\n\t}, {\n\t\tkey: \"toggle\",\n\t\tvalue: function toggle() {\n\t\t\tif (!this.options.selfClosing && !this.isCollapsed) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar handler = this.isCollapsed ? this.open.bind(this) : this.close.bind(this);\n\t\t\thandler();\n\t\t}\n\t}, {\n\t\tkey: \"open\",\n\t\tvalue: function open() {\n\t\t\tthis.toggleMethod(false);\n\t\t\tthis.isCollapsed = false;\n\t\t\tthis.element.dataset.collapsibleOpen = true;\n\t\t\tthis.bindDocumentEvents();\n\t\t}\n\t}, {\n\t\tkey: \"close\",\n\t\tvalue: function close() {\n\t\t\tthis.toggleMethod(true);\n\t\t\tthis.isCollapsed = true;\n\t\t\tthis.element.dataset.collapsibleOpen = false;\n\t\t\tthis.unbindDocumentEvents();\n\t\t}\n\t}, {\n\t\tkey: \"bindDocumentClick\",\n\t\tvalue: function bindDocumentClick() {\n\t\t\tdocument.addEventListener(\"click\", this.onDocumentClick.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"unbindDocumentClick\",\n\t\tvalue: function unbindDocumentClick() {\n\t\t\tdocument.removeEventListener(\"click\", this.onDocumentClick);\n\t\t}\n\t}, {\n\t\tkey: \"onDocumentClick\",\n\t\tvalue: function onDocumentClick(event) {\n\t\t\tvar clickTarget = event.target;\n\n\t\t\t// clicked this.button\n\t\t\tif (clickTarget === this.button || this.button.contains(clickTarget)) {\n\t\t\t\tlog(\"clicked button\");\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// clicked this.content\n\t\t\tif (this.content && (clickTarget === this.content || this.content.contains(clickTarget))) {\n\t\t\t\tlog(\"clicked content or inside it\");\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.close();\n\t\t}\n\t}, {\n\t\tkey: \"onAttributeChange\",\n\t\tvalue: function onAttributeChange(mutationList, observer) {\n\t\t\tmutationList.filter(function (mutation) {\n\t\t\t\treturn mutation.type === \"attributes\" && mutation.attributeName.startsWith(\"data-collapsible-open\");\n\t\t\t}).forEach(this.onOpenChanged.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"onOpenChanged\",\n\t\tvalue: function onOpenChanged(mutation) {\n\t\t\tvar doCollapse = !getJSONValue(this.element.dataset.collapsibleOpen);\n\t\t\tif (this.isCollapsed !== doCollapse) {\n\t\t\t\tthis.toggleMethod(doCollapse);\n\t\t\t\tthis.isCollapsed = doCollapse;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn Collapsible;\n}();\n\nCollapsible.DEFAULTS = {\n\tselfClosing: true\n};\n\nexports.default = Collapsible;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _collapsible = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__collapsible/collapsible.js\");\n\nvar _collapsible2 = _interopRequireDefault(_collapsible);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-collapsible]';\nvar PLUGIN_NAME = 'Collapsible';\n\n(0, _lib2.default)(PLUGIN_NAME, _collapsible2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-emit-on-dirty]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'EmitOnDirty';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--emit-on-dirty\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-focus-within]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'FocusWithin';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--focus-within\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus-within/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-focus-element]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'FocusElement';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--focus-element\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/form-loading.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FormLoading = function () {\n\tfunction FormLoading(element, options) {\n\t\t_classCallCheck(this, FormLoading);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\t\tthis.watch();\n\t}\n\n\t_createClass(FormLoading, [{\n\t\tkey: \"watch\",\n\t\tvalue: function watch() {\n\t\t\tthis.element.addEventListener(\"submit\", this.applyLoadingState.bind(this));\n\t\t}\n\t}, {\n\t\tkey: \"applyLoadingState\",\n\t\tvalue: function applyLoadingState() {\n\t\t\tthis.element.dataset[this.options.dataKey] = this.options.dataValue;\n\t\t\tvar submitButton = this.element.querySelector(\"button[type=submit]\");\n\t\t\tif (submitButton != null) {\n\t\t\t\tsubmitButton.setAttribute(\"aria-label\", this.options.dataValue);\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn FormLoading;\n}();\n\nFormLoading.DEFAULTS = {\n\tdataKey: 'state',\n\tdataValue: 'loading'\n};\nexports.default = FormLoading;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _formLoading = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__form-loading/form-loading.js\");\n\nvar _formLoading2 = _interopRequireDefault(_formLoading);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-form-loading]';\nvar PLUGIN_NAME = 'FormLoading';\n\n(0, _lib2.default)(PLUGIN_NAME, _formLoading2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _radioSelection = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/radio-selection.js\");\n\nvar _radioSelection2 = _interopRequireDefault(_radioSelection);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = '[data-radio-selection]';\nvar PLUGIN_NAME = 'RadioSelection';\n\n(0, _lib2.default)(PLUGIN_NAME, _radioSelection2.default);\n\n(0, _jquery2.default)(document).ready(function () {\n\t(0, _jquery2.default)(ELEMENT_SELECTOR)[PLUGIN_NAME]();\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__radio-selection/radio-selection.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// IE Needs element.closest polyfill - see polyfills\n// https://gomakethings.com/a-native-vanilla-javascript-way-to-get-the-closest-matching-parent-element/\n\n\nvar RadioSelection = function () {\n\tfunction RadioSelection(element, options) {\n\t\t_classCallCheck(this, RadioSelection);\n\n\t\tthis.element = element;\n\t\tthis.options = options;\n\n\t\t// scoped to parent form or other form if specified\n\t\tthis.form = this.options.formSelector ? this.element.querySelector(this.options.formSelector) : this.element.closest('form');\n\n\t\tthis.inputs = this.form.elements[this.options.name];\n\n\t\tif (!this.form || !this.options.name || !this.inputs) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.init();\n\t\tthis.watch();\n\t}\n\n\t_createClass(RadioSelection, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tthis.updateValue();\n\t\t}\n\t}, {\n\t\tkey: 'watch',\n\t\tvalue: function watch() {\n\t\t\tvar _this = this;\n\n\t\t\t[].concat(_toConsumableArray(this.inputs)).forEach(function (input) {\n\t\t\t\tinput.addEventListener('change', _this.updateValue.bind(_this));\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'updateValue',\n\t\tvalue: function updateValue() {\n\t\t\tvar value = this.inputs.value;\n\t\t\tvar checkedInput = this.form.querySelector('[name=\"' + this.options.name + '\"][value=\"' + value + '\"]');\n\t\t\tvar label = this.form.querySelector('label[for=\"' + checkedInput.id + '\"]');\n\n\t\t\tif (!label) {\n\t\t\t\tconsole.warn('Label missing for radio input', checkedInput);\n\t\t\t}\n\t\t\tthis.element.textContent = label.textContent;\n\t\t}\n\t}]);\n\n\treturn RadioSelection;\n}();\n\nRadioSelection.DEFAULTS = {};\n\nexports.default = RadioSelection;\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-remove-element-classes]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'RemoveElementClasses';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--remove-element-classes\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__remove-element-classes/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-toggle-element-classes]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'ToggleElementClasses';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--toggle-element-classes\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__toggle-element-classes/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PLUGIN_NAME = exports.ELEMENT_SELECTOR = undefined;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ELEMENT_SELECTOR = exports.ELEMENT_SELECTOR = '[data-trigger-event]';\nvar PLUGIN_NAME = exports.PLUGIN_NAME = 'triggerEvent';\n\n(0, _jquery2.default)(document).ready(function () {\n (0, _jquery2.default)(ELEMENT_SELECTOR).each(function () {\n var element = this;\n __webpack_require__.e/* import() */(\"plugin--trigger-event\").then(__webpack_require__.bind(null, \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__trigger-event/plugin.js\")).then(function () {\n (0, _jquery2.default)(element)[PLUGIN_NAME]();\n });\n });\n});\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.debounce = debounce;\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /*\r\n jQuery plugin\r\n \r\n \r\n ```\r\n import debug from 'debug';\r\n import plugin from '@core/plugins/lib';\r\n \r\n const ELEMENT_SELECTOR = '[data-my-plugin]';\r\n const PLUGIN_NAME = 'MyPlugin';\r\n const MODULE_NAME = 'plugins/my-plugin';\r\n const log = debug(MODULE_NAME);\r\n \r\n class PluginKlass {\r\n constructor(element, options) {\r\n log('new instance', element, options);\r\n \r\n this.element = element;\r\n this.options = options;\r\n this.$element = $(element);\r\n \r\n log('ready', this.$element);\r\n \r\n this.init();\r\n }\r\n }\r\n \r\n PluginKlass.DEFAULTS = {\r\n someCamelCasedProperty: `${PLUGIN_NAME}:something`,\r\n };\r\n \r\n plugin(PLUGIN_NAME, PluginKlass);\r\n \r\n $(document).ready(() => {\r\n $(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n });\r\n ```\r\n \r\n Then using it in html:\r\n ```\r\n
\r\n ```\r\n \r\n Styelguide Core.Global.Javascript.JqueryPlugin\r\n */\n\n// import * as events from './events';\n\nexports.default = plugin;\nexports.jquery = jquery;\nexports.defaults = defaults;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _fn = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/fn.js\");\n\nvar fn = _interopRequireWildcard(_fn);\n\nvar _strings = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js\");\n\nvar strings = _interopRequireWildcard(_strings);\n\nvar _objects = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js\");\n\nvar objects = _interopRequireWildcard(_objects);\n\nvar _selectors = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js\");\n\nvar selectors = _interopRequireWildcard(_selectors);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/plugins/lib');\n\nfunction plugin(pluginName, klass) {\n var shortHand = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var formattedPluginName = (0, _strings.toCamelCase)(pluginName);\n var dataName = '__' + formattedPluginName;\n var old = _jquery2.default.fn[formattedPluginName];\n var ZERO = 0;\n\n klass.$bus = {\n subscribe: function subscribe(event, fn) {\n (0, _jquery2.default)(this).bind(event, fn);\n },\n publish: function publish(event, data) {\n (0, _jquery2.default)(this).trigger(event, [data]);\n }\n };\n\n klass.$util = {\n fn: fn,\n objects: objects,\n strings: strings,\n selectors: selectors\n };\n\n klass.prototype.selectors = selectors;\n klass.prototype.strings = strings;\n klass.prototype.objects = objects;\n klass.prototype.fn = fn;\n klass.prototype.inViewport = function (elm) {\n var rect = elm.getBoundingClientRect();\n var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n return !(rect.bottom < 0 || rect.top - viewHeight >= 0);\n };\n\n _jquery2.default.fn[pluginName] = function PluginFactory(option) {\n return this.each(function PluginInstanceFactory() {\n var $this = (0, _jquery2.default)(this);\n var data = $this.data();\n var overrides = (typeof option === 'undefined' ? 'undefined' : _typeof(option)) === 'object' && option;\n var elementOptions = Object.keys(data).filter(function (key) {\n return (0, _strings.toCamelCase)(key).indexOf(formattedPluginName) >= ZERO;\n }).reduce(function (result, path) {\n var data = path && $this.data(path);\n var key = (0, _strings.toCamelCase)(path.replace(new RegExp(formattedPluginName + '-?'), ''));\n log(path, key, $this.data(path));\n\n if (key && data !== undefined) {\n result[key] = data;\n }\n return result;\n }, {});\n log(pluginName, { elementOptions: elementOptions });\n var instance = $this.data(dataName);\n var options = _jquery2.default.extend({}, klass.DEFAULTS, elementOptions, overrides);\n\n // store reference to instance\n if (!instance) {\n instance = new klass(this, options);\n instance.$utils = klass.$util;\n $this.data(dataName, instance);\n $this.addClass('u-' + pluginName);\n }\n\n // execute instance method\n if (typeof option === 'string') {\n instance[option]();\n }\n });\n };\n\n // - Short hand\n if (shortHand) {\n _jquery2.default[formattedPluginName] = function (options) {\n return (0, _jquery2.default)({})[formattedPluginName](options);\n };\n }\n\n // - No conflict\n // $.fn[formattedPluginName].noConflict = function noConflict () {\n // $.fn[formattedPluginName] = old;\n // };\n}\n\nfunction jquery(name) {\n return function decorate(target) {\n plugin(name, target);\n };\n}\n\nfunction defaults(options) {\n return function decorate(target) {\n target.DEFAULTS = options;\n };\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/objects.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.elementAttrtibutesToObject = elementAttrtibutesToObject;\nexports.objectPath = objectPath;\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _strings = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MODULE_NAME = 'app.core/lib/objects';\nvar log = (0, _debug2.default)(MODULE_NAME);\n\nvar ZERO = 0;\n\n/**\r\n * Convert an elements attributes to an object, optionally filtering based on some predicate.\r\n * @param {DOMElement} element [description]\r\n * @param {Function} filterFn filtering function. return false to omit attribute.\r\n * @param {Function} transformFn transform attribute name function. returns camelCase by default\r\n * @return {[type]} [description]\r\n */\nfunction elementAttrtibutesToObject(element) {\n var filterFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {\n return true;\n };\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (name) {\n return (0, _strings.toCamelCase)(name);\n };\n\n var output = {};\n var attrs = Array.from($(element).get(ZERO).attributes);\n\n if (!attrs) {\n return output;\n }\n\n log('converting element attributes to object', attrs);\n\n return attrs.reduce(function (result, attribute) {\n if (filterFn(attribute)) {\n var name = transformFn(attribute.name);\n var value = attribute.value;\n\n if (value === 'false' || value === 'true') {\n value = Boolean(value);\n }\n result[name] = attribute.value;\n }\n\n return result;\n }, output);\n}\n\n/**\r\n * Object.prop()\r\n *\r\n * Allows dot-notation access to object properties for both getting and setting.\r\n *\r\n * @param {Object} obj The object we're getting from or setting\r\n * @param {string} prop The dot-notated string defining the property location\r\n * @param {mixed} val For setting only; the value to set\r\n */\n\nfunction objectPath(obj, path, val) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { delimiter: '.' };\n\n var props = path.split(options.delimiter);\n var final = props.pop();\n var part = void 0;\n\n for (var index = 0; index < props.length; index++) {\n part = props[index];\n if (typeof obj[part] === 'undefined') {\n // If we're setting\n if (typeof val !== 'undefined' && index != props.length) {\n // If we're not at the end of the props, keep adding new empty objects\n obj[part] = {};\n } else {\n return undefined;\n }\n }\n obj = obj[part];\n }\n return typeof val !== \"undefined\" ? obj[final] = val : obj[final];\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/selectors.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SELECTOR_PATTERNS = undefined;\nexports.selectorPattern = selectorPattern;\nexports.selectTarget = selectTarget;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/plugins/lib/selectors');\n\nfunction selectorPattern() {\n for (var _len = arguments.length, directives = Array(_len), _key = 0; _key < _len; _key++) {\n directives[_key] = arguments[_key];\n }\n\n return new RegExp('\\\\((' + directives.join('|') + ')(.*)\\\\)\\\\s?(.*)');\n}\n\nvar SELECTOR_PATTERNS = exports.SELECTOR_PATTERNS = {\n\n // .find\n \"children\": selectorPattern('children'),\n\n // .closest\n \"parent\": selectorPattern('parent'),\n \"from\": selectorPattern('from'),\n \"parents\": selectorPattern('parents'),\n \"siblings\": selectorPattern('siblings'),\n \"here\": selectorPattern('here'),\n \"self\": selectorPattern('self')\n};\n\nfunction selectTarget(selector, $element) {\n var $target = void 0;\n\n var isClosestAncestoral = selector.match(SELECTOR_PATTERNS.parent);\n var isAllAncestoral = selector.match(SELECTOR_PATTERNS.parents);\n var isRetargeted = selector.match(SELECTOR_PATTERNS.from);\n var isAllDescendants = selector.match(SELECTOR_PATTERNS.children);\n var isGenerational = selector.match(SELECTOR_PATTERNS.here);\n var isSiblings = selector.match(SELECTOR_PATTERNS.siblings);\n var isSelfish = selector.match(SELECTOR_PATTERNS.self);\n\n // special retargeting root\n if (isRetargeted) {\n log('isRetargeted', isRetargeted[2], isRetargeted[3]);\n var $newElement = selectTarget(isRetargeted[2], $element);\n var newSelector = '(children) ' + isRetargeted[3];\n log('isRetargeted.newElement', $newElement);\n log('isRetargeted.newSelector', newSelector);\n $target = selectTarget(newSelector, $newElement);\n log('isRetargeted.target', $target);\n }\n\n // target is all ancestors\n else if (isAllAncestoral) {\n log('isAllAncestoral', isAllAncestoral);\n $target = $element.parents(isAllAncestoral[isAllAncestoral.length - 1]);\n }\n // target is closest ancestor\n else if (isClosestAncestoral) {\n log('isClosestAncestoral', isClosestAncestoral);\n $target = $element.closest(isClosestAncestoral[isClosestAncestoral.length - 1]);\n }\n // target is somewhere under current parent\n else if (isGenerational) {\n log('isGenerational', isGenerational);\n $target = $element.parent().find(isGenerational[isGenerational.length - 1]);\n }\n // target is only under self\n else if (isAllDescendants) {\n log('isAllDescendants', isAllDescendants);\n $target = $element.find(isAllDescendants[isAllDescendants.length - 1]);\n }\n // target is somewhere in siblings only\n else if (isSiblings) {\n log('isSiblings', isSiblings);\n $target = $element.siblings(isSiblings[isSiblings.length - 1]);\n }\n // target is source\n else if (!selector || isSelfish) {\n log('isSelfish', isSelfish);\n var selector = isSelfish[isSelfish.length - 1] || '*';\n $target = $element.filter(selector);\n }\n // target could be anywhere\n else {\n log('global', selector);\n $target = (0, _jquery2.default)(selector);\n }\n return $target;\n}\n\n/***/ }),\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/strings.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.toCamelCase = toCamelCase;\nexports.tmpl = tmpl;\nexports.$tmpl = $tmpl;\nexports.mustache = mustache;\nexports.booleanify = booleanify;\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar log = (0, _debug2.default)('core/jquery_plugin/strings');\n\nfunction preserveCamelCase(str) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {\n str = str.substr(0, i) + '-' + str.substr(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {\n str = str.substr(0, i - 1) + '-' + str.substr(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = c.toLowerCase() === c;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = c.toUpperCase() === c;\n }\n }\n\n return str;\n}\n\nfunction toCamelCase(str) {\n if (arguments.length > 1) {\n str = Array.from(arguments).map(function (x) {\n return x.trim();\n }).filter(function (x) {\n return x.length;\n }).join('-');\n } else {\n str = str.trim();\n }\n\n if (str.length === 0) {\n return '';\n }\n\n if (str.length === 1) {\n return str.toLowerCase();\n }\n\n if (/^[a-z0-9]+$/.test(str)) {\n return str;\n }\n\n var hasUpperCase = str !== str.toLowerCase();\n\n if (hasUpperCase) {\n str = preserveCamelCase(str);\n }\n\n return str.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, function (m, p1) {\n return p1.toUpperCase();\n });\n};\n\nfunction tmpl(str, context) {\n var result = str;\n\n if (result) {\n\n Object.keys(context).forEach(function (item) {\n result = result.replace('{{' + item + '}}', context[item]);\n });\n }\n\n return result;\n}\n\nfunction $tmpl(element, context) {\n var $target = (0, _jquery2.default)(element);\n var templateString = $target.attr('data-text-template');\n var result = tmpl(templateString, context);\n\n $target.text(result);\n}\n\n/**\r\n * https://github.com/aishikaty/tiny-mustache\r\n * https://mustache.github.io/\r\n * @param {String} template [description]\r\n * @param {[type]} self [description]\r\n * @param {[type]} parent [description]\r\n * @param {[type]} invert [description]\r\n * @return {[type]} [description]\r\n */\nfunction mustache(template, self, parent, invert) {\n var render = mustache;\n var output = \"\";\n var i;\n\n log('mustache', { template: template, self: self, parent: parent, invert: invert });\n\n function get(ctx, path) {\n path = path.pop ? path : path.split(\".\");\n ctx = ctx[path.shift()] || \"\";\n return 0 in path ? get(ctx, path) : ctx;\n }\n\n self = Array.isArray(self) ? self : self ? [self] : [];\n self = invert ? 0 in self ? [] : [1] : self;\n\n for (i = 0; i < self.length; i++) {\n var childCode = '';\n var depth = 0;\n var inverted;\n var ctx = _typeof(self[i]) == \"object\" ? self[i] : {};\n ctx = Object.assign({}, parent, ctx);\n ctx[\"\"] = { \"\": self[i] };\n\n template.replace(/([\\s\\S]*?)({{((\\/)|(\\^)|#)(.*?)}}|$)/g, function (match, code, y, z, close, invert, name) {\n\n if (!depth) {\n output += code.replace(/{{{(.*?)}}}|{{(!?)(&?)(>?)(.*?)}}/g, function (match, raw, comment, isRaw, partial, name) {\n return raw ? get(ctx, raw) : isRaw ? get(ctx, name) : partial ? render(get(ctx, name), ctx) : !comment ? new Option(get(ctx, name)).innerHTML : \"\";\n });\n inverted = invert;\n } else {\n childCode += depth && !close || depth > 1 ? match : code;\n }\n\n if (close) {\n if (! --depth) {\n name = get(ctx, name);\n if (/^f/.test(typeof name === 'undefined' ? 'undefined' : _typeof(name))) {\n output += name.call(ctx, childCode, function (template) {\n return render(template, ctx);\n });\n } else {\n output += render(childCode, name, ctx, inverted);\n }\n childCode = \"\";\n }\n } else {\n ++depth;\n }\n log('mustache.output.' + depth, { output: output });\n });\n }\n log('mustache.output', { output: output });\n return output;\n}\n\nfunction booleanify(value) {\n var lower = value.toLowerCase();\n if (lower === 'false' || lower === '0') {\n return false;\n }\n return new Boolean(value);\n}\n\n/***/ }),\n\n/***/ \"/tool/project/client/src/core/vendor/index.js\":\n/***/ (function(module, exports) {\n\n// Note vendor js loaded with System in components directly\r\n\n\n/***/ }),\n\n/***/ \"external \\\"jQuery\\\"\":\n/***/ (function(module, exports) {\n\nmodule.exports = jQuery;\n\n/***/ }),\n\n/***/ \"multi /tool/project/client/src/core/index.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/index.js\");\n\n\n/***/ })\n\n},[\"multi /tool/project/client/src/core/index.js\"]);\n\n\n// WEBPACK FOOTER //\n// scripts/core--4836ac4db9ac3e819aaa.js","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/debug/src/browser.js","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy () {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/debug/src/debug.js","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ms/index.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/process/browser.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-ajax-submit]\";\r\nconst PLUGIN_NAME = \"ajaxSubmit\";\r\n\r\nconst elements = document.querySelectorAll(ELEMENT_SELECTOR);\r\n\r\nelements.forEach((element) => {\r\n\tSystem.import(\r\n\t\t/* webpackChunkName: \"ajax-submit\" */ \"./ajax-submit\"\r\n\t).then((module) => {\r\n\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t$(element)[PLUGIN_NAME]();\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/ajax-submit/index--split.js","/**\r\n * Dismiss\r\n * Alerts\r\n * @author Oliver Boermans\r\n */\r\n\r\nimport $ from \"jquery\";\r\nimport debug from \"debug\";\r\nconst log = debug(\"alerts\");\r\n\r\n//\r\n// Config\r\n// ===========\r\nconst ALERT_SELECTOR = \"[data-alert]\";\r\nconst ALERT_BUTTON_SELECTOR = 'button';\r\n\r\nconst hidePanel = function (alertToHide) {\r\n\t$(alertToHide).hide();\r\n\t$('body').removeClass('has-alert');\r\n};\r\n\r\nconst dismissAlert = function (instance) {\r\n\tconst {element, alertApi, alertId} = instance;\r\n\t$.get(alertApi, {\r\n\t\tid: alertId\r\n\t});\r\n\thidePanel(element);\r\n};\r\n\r\nfunction init (){\r\n\tconst alertElements = $(ALERT_SELECTOR);\r\n\tlog(alertElements);\r\n\talertElements.each(function(index, element){\r\n\t\tconst alertApi = element.dataset.alertApi;\r\n\t\tconst alertId = element.id;\r\n\t\tconst alertButton = $(element).find(ALERT_BUTTON_SELECTOR);\r\n\r\n\t\tif (alertButton.length) {\r\n\t\t\talertButton.on('click', dismissAlert.bind(null, {element, alertApi, alertId}));\r\n\t\t} else {\r\n\t\t\tlog(\"No site alert button found.\");\r\n\t\t}\r\n\t});\r\n\r\n};\r\n\r\ninit();\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/alerts/dismiss.js","import './dismiss';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/alerts/index.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = '[data-choose-form]';\r\nconst PLUGIN_NAME = 'chooseForm';\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"choose-form\" */ './choose-form'\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/choose-form/index--split.js","$(() => {\r\n\t$(\"[data-cover-selector]\").each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"cover-selector\" */ \"./index\"\r\n\t\t);\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/cover-selector/index--split.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-date-field]\";\r\nconst PLUGIN_NAME = \"dateField\";\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"date-field\" */ \"./date-field\"\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/date-field/index--split.js","import './quote-cta/index--split';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/epi-blocks/index.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\n\r\nconst ELEMENT_SELECTOR = '[data-quote-cta-controller]';\r\nconst PLUGIN_NAME = 'quoteCtaController';\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"quote-cta\" */ './quote-cta'\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/epi-blocks/quote-cta/index--split.js","/*\r\nJS Components\r\n*/\r\n\r\nimport \"./quote-form/index--split\";\r\nimport \"./choose-form/index--split\";\r\nimport \"./product-card/index--split\";\r\nimport \"./cover-selector/index--split\";\r\nimport \"./required-field/index--split\";\r\nimport \"./date-field/index--split\";\r\nimport \"./localize-date/index--split\";\r\nimport \"./site-header\";\r\nimport \"./modal/index\";\r\nimport \"./search\";\r\nimport \"./epi-blocks\";\r\nimport \"./alerts\";\r\nimport \"./wysiwyg/index\";\r\nimport \"./scrollbar-width/index\";\r\nimport \"./ajax-submit/index--split\";\r\nimport \"./sync-same-name/index--split\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/index.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-localize-date]\";\r\nconst PLUGIN_NAME = \"localizeDate\";\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"date-field\" */ \"./localize-date\"\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/localize-date/index--split.js","import $ from 'jquery';\r\n\r\n// Modaal is not a spelling error!\r\n// It is the name of the 3rd party modal component we are using\r\nexport const ELEMENT_SELECTOR = '[data-modal]';\r\nexport const PLUGIN_NAME = 'modal';\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"component--modal\" */ './modal'\r\n\t\t).then(() => {\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/modal/index.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = '[data-product-card]';\r\nconst PLUGIN_NAME = 'productCard';\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"product-card\" */ \"./product-card\"\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/product-card/index--split.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = '[data-quote-form]';\r\nconst PLUGIN_NAME = 'quoteForm';\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"quote-form\" */ \"./quote-form\"\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/quote-form/index--split.js","import './required-field';\r\n\r\nimport $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-required-field]\";\r\nconst PLUGIN_NAME = \"requiredField\";\r\n\r\n$(() => {\r\n\t$(ELEMENT_SELECTOR).each(function() {\r\n\t\tconst element = this;\r\n\t\tSystem.import(\r\n\t\t\t/* webpackChunkName: \"required-field\" */ \"./required-field\"\r\n\t\t).then((module) => {\r\n\t\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t\t$(element)[PLUGIN_NAME]();\r\n\t\t});\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/required-field/index--split.js","import debug from \"debug\";\r\n\r\nconst log = debug(\"required-field\");\r\n\r\nfunction getJSONValue(stringValue) {\r\n\ttry {\r\n\t\treturn JSON.parse(stringValue);\r\n\t} catch (error) {\r\n\t\treturn stringValue;\r\n\t}\r\n}\r\n\r\nconst validators = {\r\n\t'at_least_one_checked': (inputs) => {\r\n\t\treturn inputs.filter((input) => {\r\n\t\t\treturn input.checked;\r\n\t\t}).length > 0 ? '' : 'check at least one';\r\n\t},\r\n\tregex: (expression, input) => {\r\n\t\tconst regex = new RegExp(expression);\r\n\t\treturn regex.test(input.value);\r\n\t}\r\n};\r\n\r\nclass RequiredField {\r\n\tconstructor(element, options) {\r\n\t\tlog(\"element\", element);\r\n\t\tlog(\"options\", options);\r\n\r\n\t\tthis.options = options;\r\n\t\tthis.element = element;\r\n\r\n\t\tthis.isFieldset = this.element.nodeName === 'FIELDSET';\r\n\r\n\t\tthis.inputSet = [...this.element.querySelectorAll(\r\n\t\t\t`[name=\"${this.options.inputSet}\"]`\r\n\t\t)];\r\n\r\n\t\tthis.input = this.element.querySelector(\r\n\t\t\t`[name=\"${this.options.name}\"]`\r\n\t\t);\r\n\r\n\t\tthis.errorElementSelectorScope =\r\n\t\t\tthis.options.errorSelector[0] === \"#\" ? document : this.element;\r\n\r\n\t\tthis.errorElement = this.errorElementSelectorScope.querySelector(\r\n\t\t\tthis.options.errorSelector\r\n\t\t);\r\n\r\n\t\tthis.showErrors = getJSONValue(this.element.dataset.showErrors);\r\n\r\n\t\tthis.attributeObserver = new MutationObserver(\r\n\t\t\tthis.onAttributeChange.bind(this)\r\n\t\t);\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\r\n\t\tlog(\"ready\", this, this.element);\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.updateValidity();\t\t\t\r\n\t\tthis.validateInput();\t\t\t\t\r\n\t}\r\n\r\n\twatch() {\r\n\t\tlog(\"watching\");\r\n\t\tthis.element.addEventListener(\"change\", this.updateValidity.bind(this));\r\n\t\tthis.attributeObserver.observe(this.element, { attributes: true });\r\n\t\tthis.input.addEventListener(\"input\", this.updateValidity.bind(this));\r\n\t\tthis.input.addEventListener(\r\n\t\t\t\"validate\",\r\n\t\t\tthis.updateValidity.bind(this)\r\n\t\t);\r\n\t}\r\n\r\n\tisValid() {\r\n\t\tconst elementToValidate = this.isFieldset ? this.element : this.input;\r\n\t\treturn elementToValidate.validity.valid;\r\n\t}\r\n\r\n\tupdateFieldsetValidity() {\r\n\t\tconst validator = validators[this.options.rule];\r\n\t\tif (!this.isFieldset || !validator) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.element.setCustomValidity(validator(this.inputSet));\r\n\t}\r\n\r\n\tupdateErrorMessage() {\r\n\t\tthis.errorElement.hidden = this.isValid();\r\n\t}\r\n\r\n\tupdateValidity() {\r\n\t\tthis.updateFieldsetValidity();\r\n\t\tthis.validateInput();\r\n\r\n\t\tif (this.showErrors) {\r\n\t\t\tthis.updateErrorMessage();\r\n\t\t}\r\n\t}\r\n\r\n\tonAttributeChange(mutationList, observer) {\r\n\t\tmutationList\r\n\t\t\t.filter(\r\n\t\t\t\tfunction(mutation) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\tmutation.type === \"attributes\" &&\r\n\t\t\t\t\t\tmutation.attributeName ===\r\n\t\t\t\t\t\t\tthis.options.componentErrorAttribute\r\n\t\t\t\t\t);\r\n\t\t\t\t}.bind(this)\r\n\t\t\t)\r\n\t\t\t.forEach(this.onShowErrorsChange.bind(this));\r\n\t}\r\n\r\n\tonShowErrorsChange(mutation) {\r\n\t\tthis.showErrors = getJSONValue(this.element.dataset.showErrors);\r\n\t\tthis.updateErrorMessage();\r\n\t}\r\n\r\n\tvalidateInput() {\r\n\t\tif(!this.input)\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst tests = [\t\t\t\r\n\t\t\tgetRegexValidator(validators, this.input.dataset),\r\n\t\t].filter(truthy);\r\n\r\n\t\t// Validation may have been disabled if this field was hidden\r\n\t\tif (this.element.dataset.validateField === \"false\") {\r\n\t\t\tthis.element.setCustomValidity(\"\");\r\n\t\t\treturn false;\r\n\t\t}\t\r\n\t\t\r\n\t\tif (this.input.value !== \"\" && tests.length) {\r\n\t\t\tconst results = tests.map((validator) => {\r\n\t\t\t\treturn validator.test(\r\n\t\t\t\t\tthis.input,\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t\t\t? \"\"\r\n\t\t\t\t\t: validator.message;\r\n\t\t\t});\r\n\r\n\t\t\tconst errors = results.filter((result) => {\r\n\t\t\t\treturn result !== \"\";\r\n\t\t\t});\r\n\r\n\t\t\tthis.input.setCustomValidity(errors.length ? errors[0] : \"\");\r\n\t\t} else {\r\n\t\t\tthis.input.setCustomValidity(\"\");\r\n\t\t}\t\r\n\r\n\t}\r\n}\r\n\r\nfunction getRegexValidator(validators, data) {\r\n\t//const message = data.valRegexMessage || data.valRegex;\r\n\tconst message = 'Invalid';\r\n\r\n\tif(!data)\r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tif (data.valRegexPatternName && validators[data.valRegexPatternName]) {\r\n\t\treturn { test: validators[data.valRegexPatternName], message };\r\n\t}\r\n\tif (data.valRegexPattern) {\r\n\t\treturn {\r\n\t\t\ttest: validators.regex.bind(null, data.valRegexPattern),\r\n\t\t\tmessage,\r\n\t\t};\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction truthy(value) {\r\n\treturn value;\r\n}\r\n\r\nRequiredField.DEFAULTS = {\r\n\tcomponentErrorAttribute: \"data-show-errors\"\r\n};\r\n\r\nexport default RequiredField;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/required-field/required-field.js","import \"./scrollbar-width\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/scrollbar-width/index.js","function calculateScrollbarWidth() {\r\n\tdocument.documentElement.style.setProperty(\r\n\t\t\"--root-scrollbar-width\",\r\n\t\twindow.innerWidth - document.documentElement.clientWidth + \"px\"\r\n\t);\r\n}\r\nwindow.addEventListener(\"resize\", calculateScrollbarWidth, false);\r\n\r\ncalculateScrollbarWidth();\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/scrollbar-width/scrollbar-width.js","import './search-form-collapsible';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/search/global-search/index.js","import $ from 'jquery';\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\n\r\nconst ELEMENT_SELECTOR = '[data-search-form-collapsible]';\r\nconst PLUGIN_NAME = 'searchFormCollapsible';\r\n\r\nconst log = debug('site-header/header-controller:search');\r\n\r\nclass SearchFormCollapsible {\r\n\tconstructor(element, options) {\r\n\t\tlog('element', element);\r\n\t\tlog('options', options);\r\n\r\n\t\tthis.options = options;\r\n\t\tthis.element = element;\r\n\t\tthis.$element = $(element);\r\n\r\n\t\tthis.enabled = false;\r\n\r\n\t\tthis.formElements = this.selectors.selectTarget(\r\n\t\t\tthis.options.elementsSelector,\r\n\t\t\tthis.$element\r\n\t\t);\r\n\r\n\t\tthis.watch();\r\n\r\n\t\tlog('ready', this, this.$target);\r\n\t}\r\n\r\n\twatch() {\r\n\t\tlog('watching');\r\n\r\n\t\tthis.$element.on('togglesearch', this.toggle.bind(this));\r\n\t\tthis.$element.on('disablesearch', this.disable.bind(this));\r\n\t}\r\n\r\n\tenable() {\r\n\t\tthis.formElements.removeAttr('disabled');\r\n\t\tthis.enabled = true;\r\n\t\tthis.formElements[0].focus();\r\n\t\tlog('enable');\r\n\t}\r\n\r\n\tdisable() {\r\n\t\tthis.formElements.attr('disabled', 'disabled');\r\n\t\tthis.enabled = false;\r\n\t\tlog('disable');\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\tconst handler = this.enabled\r\n\t\t\t? this.disable.bind(this)\r\n\t\t\t: this.enable.bind(this);\r\n\t\tlog('toggle');\r\n\t\thandler();\r\n\t}\r\n}\r\n\r\nSearchFormCollapsible.DEFAULTS = {};\r\n\r\nplugin(PLUGIN_NAME, SearchFormCollapsible);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/search/global-search/search-form-collapsible.js","import './global-search';\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/search/index.js","import \"./navigation--obscurable\";\r\nimport \"./site-header-controller\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-header/index.js","/**\r\n * Obscurable Navigation\r\n * @original-idea Kate York\r\n * @original-idea Oliver Boermans\r\n * @author Zenobius Jiricek\r\n *\r\n * @example\r\n * see ./header.scss\r\n */\r\n\r\n\r\n//\r\n// Utilities\r\nimport $ from 'jquery';\r\n\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\nimport { selectTarget } from '@core/plugins/lib/selectors';\r\n\r\nconst PLUGIN_NAME = \"ObscurableNavigation\";\r\nconst ELEMENT_SELECTOR = \"[data-navigation-obscurable]\";\r\nconst log = debug('core/components/site-header/navigation--obscurable');\r\n\r\n\r\nclass ObscurableNavigationPlugin {\r\n\r\n constructor(element, options = {}) {\r\n\r\n this.element = element;\r\n this.$element = $(element);\r\n this.options = options;\r\n this.options.tolerancePx = parseInt(this.options.tolerancePx);\r\n\r\n log('created', {element, options: this.options});\r\n this.components = {\r\n obscuredItemContainer: selectTarget(this.options.obscuredItemContainerSelector, this.$element),\r\n visibleItemContainer: selectTarget(this.options.visibleItemContainerSelector, this.$element),\r\n obscuredItemContainerToggle: selectTarget(this.options.obscuredItemContainerToggleSelector, this.$element)\r\n };\r\n\r\n this.watch();\r\n\r\n }\r\n\r\n watch () {\r\n log('watch');\r\n this.currentTestId = 0;\r\n $(window).resize(() => {\r\n this.components.visibleItemContainer.addClass('testing');\r\n });\r\n $(window).resize(this.fn.debounce(this.test.bind(this), this.options.testTimeoutMs, true));\r\n $(window).resize(this.fn.debounce(this.test.bind(this), this.options.testTimeoutMs));\r\n setTimeout(this.test.bind(this), this.options.testTimeoutMs);\r\n }\r\n\r\n test () {\r\n log('test');\r\n this.unObscureItems();\r\n this.testItems();\r\n }\r\n\r\n isItemObscured (element) {\r\n log('isItemObscured', element);\r\n const $testElement = $(element);\r\n const width = $testElement.outerWidth(true);\r\n const rightEdgePosition = width + this.options.tolerancePx + this.accumulatedWidth;\r\n const result = rightEdgePosition > this.actualContainerWidth;\r\n log('isItemObscured', rightEdgePosition, this.actualContainerWidth, result);\r\n this.accumulatedWidth += width;\r\n return result;\r\n }\r\n\r\n unObscureItems() {\r\n log('unObscureItems');\r\n // Put everything back in main nav\r\n // to prepare for testing if they in fact fit.\r\n selectTarget(this.options.intersectingItemSelector, this.components.obscuredItemContainer)\r\n .removeClass(this.options.obscuredItemClasses)\r\n .addClass(this.options.visibleItemClasses)\r\n .each((index, element) => {\r\n this.components.visibleItemContainer.append($(element).detach());\r\n });\r\n }\r\n\r\n moveItem (element) {\r\n log('moveItem', element);\r\n const $element = $(element).detach();\r\n\r\n $element\r\n .addClass(this.options.obscuredItemClasses)\r\n .removeClass(this.options.visibleItemClasses);\r\n\r\n this.components.obscuredItemContainer\r\n .append($element);\r\n\r\n $element.show();\r\n }\r\n\r\n testItems (items) {\r\n log('testItems');\r\n const toggleWidth = this.components.obscuredItemContainerToggle.innerWidth();\r\n this.components.obscuredItemContainerToggle.detach();\r\n\r\n // Move the items that don't fit back to mobile nav\r\n this.components.obscuredItemContainerToggle.show();\r\n const $items = selectTarget(this.options.intersectingItemSelector, this.components.visibleItemContainer);\r\n log('testItems.items', $items);\r\n\r\n this.actualContainerWidth = this.components.visibleItemContainer.innerWidth();\r\n // build a list of items that don't fit\r\n this.accumulatedWidth = 0;\r\n let obscuredItems = $items.filter((index, element) => this.isItemObscured(element));\r\n log('testItems.obscuredItems', obscuredItems);\r\n\r\n // if at least one item doesn't fit\r\n if (!this.components.visibleItemContainer.is(':visible')) {\r\n $items.each((index, element) => this.moveItem(element));\r\n }\r\n\r\n else if (obscuredItems.length > 0) {\r\n // reduce width of container\r\n this.actualContainerWidth = this.actualContainerWidth - toggleWidth;\r\n log('testItems.atLeatOneObscured', this.actualContainerWidth);\r\n\r\n this.accumulatedWidth = 0;\r\n obscuredItems = $items\r\n // re-test visible items based on new container width\r\n .filter((index, element) => this.isItemObscured(element))\r\n // then move them\r\n .each((index, element) => this.moveItem(element));\r\n\r\n }\r\n\r\n if (obscuredItems.length > 0 || obscuredItems.length == $items.length ) {\r\n this.components.visibleItemContainer\r\n .append(this.components.obscuredItemContainerToggle);\r\n }\r\n\r\n if (!this.components.obscuredItemContainer.children().length > 0) {\r\n this.components.obscuredItemContainerToggle.hide();\r\n }\r\n\r\n this.components.visibleItemContainer.removeClass('testing');\r\n }\r\n\r\n}\r\n\r\n\r\nObscurableNavigationPlugin.DEFAULTS = {\r\n tolerancePx: 40,\r\n testTimeoutMs: 150,\r\n reflowOnResize: true,\r\n visibleItemClasses: 'navigation__item--unobscured',\r\n obscuredItemClasses: 'navigation__item--obscured',\r\n visibleItemContainerSelector: '(children) [data-navigation--visible-items]',\r\n intersectingItemSelector: '(children) [data-navigation--intersecting-item]',\r\n obscuredItemContainerSelector: '(children) [data-navigation--obscured-items]',\r\n obscuredItemContainerToggleSelector: '(children) [data-navigation--obscured-items-toggle]',\r\n};\r\n\r\nplugin(PLUGIN_NAME, ObscurableNavigationPlugin);\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-header/navigation--obscurable.js","import $ from 'jquery';\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\n\r\nconst ELEMENT_SELECTOR = '[data-header-controller]';\r\nconst PLUGIN_NAME = 'headerController';\r\n\r\nconst log = debug('site-header/header-controller:header');\r\n\r\nclass HeaderController {\r\n\tconstructor(element, options) {\r\n\t\tlog('element', element);\r\n\t\tlog('options', options);\r\n\r\n\t\tthis.options = options;\r\n\t\tthis.element = element;\r\n\t\tthis.$element = $(element);\r\n\r\n\t\tthis.isSearchCollapsible = !!this.options.searchComponentSelector;\r\n\r\n\t\tthis.searchComponent = this.isSearchCollapsible && this.selectors.selectTarget(\r\n\t\t\tthis.options.searchComponentSelector,\r\n\t\t\tthis.$element\r\n\t\t);\r\n\r\n\t\tthis.phoneComponent = this.selectors.selectTarget(\r\n\t\t\tthis.options.phoneComponentSelector,\r\n\t\t\tthis.$element\r\n\t\t);\r\n\r\n\r\n\r\n\t\tthis.watch();\r\n\r\n\t\tlog('ready', this, this.$target);\r\n\t}\r\n\r\n\twatch() {\r\n\t\tlog('watching');\r\n\r\n\t\tthis.$element.on('concealsearch', this.tryConcealSearch.bind(this));\r\n\t\tthis.$element.on('closephone', this.closePhoneComponent.bind(this));\r\n\t}\r\n\r\n\tclosePhoneComponent(){\r\n\t\tif (this.phoneComponent.length) {\r\n\t\t\tthis.phoneComponent[0].dataset.collapsibleOpen = false;\r\n\t\t}\r\n\t}\r\n\r\n\ttryConcealSearch(){\r\n\t\tlog('attempting to disable search');\r\n\t\tif (this.isSearchCollapsible) {\r\n\t\t\tthis.searchComponent.trigger('disablesearch');\r\n\t\t} else {\r\n\t\t\tlog('Search is not collapsible');\r\n\t\t}\r\n\t}\r\n\r\n\r\n}\r\n\r\nHeaderController.DEFAULTS = {};\r\n\r\nplugin(PLUGIN_NAME, HeaderController);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/site-header/site-header-controller.js","import $ from \"jquery\";\r\nimport plugin from \"@core/plugins/lib\";\r\n\r\nconst ELEMENT_SELECTOR = \"[data-sync-same-name]\";\r\nconst PLUGIN_NAME = \"syncSameName\";\r\n\r\nconst elements = document.querySelectorAll(ELEMENT_SELECTOR);\r\n\r\nelements.forEach((element) => {\r\n\tSystem.import(\r\n\t\t/* webpackChunkName: \"sync-same-name\" */ \"./sync-same-name\"\r\n\t).then((module) => {\r\n\t\tplugin(PLUGIN_NAME, module.default);\r\n\t\t$(element)[PLUGIN_NAME]();\r\n\t});\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/sync-same-name/index--split.js","import \"./table-cell-icons\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/wysiwyg/index.js","/**\r\n * Table Cell Icons\r\n * Replaces table cell content based on cell content.\r\n * @author Rhys Lloyd\r\n */\r\n\r\nimport $ from \"jquery\";\r\nimport debug from 'debug';\r\nconst log = debug('core/components/wysiwyg/table-cell-icons');\r\n\r\n// Constants\r\nconst TABLE_DATA_ATTRIBUTE = 'data-table-icons';\r\nconst TABLE_IGNORE = 'ignore';\r\nconst ICON_KEYWORDS = ['yes', 'restricted', 'no'];\r\nconst ICON_BRACKET_OPEN = '[';\r\nconst ICON_BRACKET_CLOSE = ']';\r\nconst KEYWORD_ICON = {\r\n\t'yes': 'covered',\r\n\t'restricted': 'restricted',\r\n\t'no': 'excluded'\r\n};\r\n\r\nfunction getIconClassString(keyword) {\r\n\treturn `icon--${keyword}`;\r\n}\r\n\r\nfunction keywordFormatter(keyword) {\r\n\treturn `${ICON_BRACKET_OPEN}${keyword}${ICON_BRACKET_CLOSE}`;\r\n}\r\n\r\n//noinspection SpellCheckingInspection\r\nfunction keywordUnformatter(keyword) {\r\n\treturn keyword.substring(ICON_BRACKET_OPEN.length, keyword.length - ICON_BRACKET_CLOSE.length);\r\n}\r\n\r\nfunction iconLookup(keyword) {\r\n\treturn KEYWORD_ICON[keyword] || keyword;\r\n}\r\n\r\n/**\r\n * Run plugin\r\n */\r\nfunction exec () {\r\n\tlog('Running...');\r\n\r\n\t// Find tables\r\n\tlet $tables = $('table').filter(`:not([${TABLE_DATA_ATTRIBUTE}=\"${TABLE_IGNORE}\"])`);\r\n\r\n\tif (!$tables.length) {\r\n\t\tlog('No tables to parse.');\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Add data attribute - in progress value\r\n\t$tables.attr(TABLE_DATA_ATTRIBUTE, 'in-progress');\r\n\tlog('Parsing tables', $tables);\r\n\r\n\t// Cell icon template\r\n\tlet $labelTemplate = $('').addClass('icon__label u-visually-hidden'),\r\n\t\t$iconTemplate = $('').addClass('icon');\r\n\r\n\t// Match replacer - nested function for closure access to $iconTemplate\r\n\tfunction keywordReplacer(match) {\r\n\t\tconst keyword = keywordUnformatter(match),\r\n\t\t\ticonName = iconLookup(keyword),\r\n\t\t\t$label = $labelTemplate.clone().text(keyword);\r\n\r\n\t\treturn $iconTemplate.clone()\r\n\t\t\t.addClass(getIconClassString(iconName))\r\n\t\t\t.addClass(`keyword-icon keyword-icon--${keyword}`)\r\n\t\t\t.append($label)\r\n\t\t\t.prop('outerHTML');\r\n\t}\r\n\r\n\t// Loop through all TD cells\r\n\t$tables.find('td').each(function () {\r\n\t\tlet $this = $(this);\r\n\r\n\t\t// For each keyword, loop through cell contents and replace\r\n\t\t// keyword with icon template\r\n\t\tfor (let keyword of ICON_KEYWORDS) {\r\n\t\t\tlet original = $this.html(),\r\n\t\t\t\tupdated = original.replace(keywordFormatter(keyword), keywordReplacer);\r\n\r\n\t\t\tif (original !== updated) {\r\n\t\t\t\tlog('Replacing cell contents:\\nOriginal:', original, '\\nUpdated:', updated);\r\n\t\t\t\t$this.html(updated);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t// Set data attribute to indicate done\r\n\t$tables.attr(TABLE_DATA_ATTRIBUTE, true);\r\n}\r\n\r\nexec();\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/components/wysiwyg/table-cell-icons.js","import $ from 'jquery';\r\nimport debug from \"debug\";\r\n\r\n// See polyfills bundle - this should not be needed here too\r\n// import \"./polyfills\";\r\nimport \"./plugins\";\r\nimport \"./components\";\r\nimport \"./vendor\";\r\n\r\nconst log = debug('fusion-core');\r\n\r\n$(()=>{\r\n\tlog('ready');\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/index.js","/*\r\nJquery Plugins\r\n\r\nThese jquery plugins aim to be used on several levels:\r\n\r\n1. firstly with data attributes in your html\r\n2. secondly as html instance methods once instantiated\r\n3. thirdly via event bus\r\n\r\nSee `Core.Global.Javascript.JqueryPlugin`\r\n\r\n```\r\nTodo\r\n\r\n[.*]--emit-before=\"\"\r\n[.*]--emit-after=\"\"\r\n[.*]--emit-success=\"\"\r\n[.*]--emit-error=\"\"\r\n\r\ndata-navigate\r\ndata-navigate--on=\"click\"\r\ndata-navigate--if=\"\"\r\ndata-navigate--url=\"/some/thing\"\r\n\r\n```\r\n\r\nStyleguide Global.Javascript\r\n*/\r\n\r\nimport \"./jquery__collapsible/plugin--bundled\";\r\nimport \"./jquery__radio-selection/plugin--bundled\";\r\nimport \"./jquery__toggle-element-classes\";\r\nimport \"./jquery__remove-element-classes\";\r\nimport \"./jquery__add-element-classes\";\r\nimport \"./jquery__focus-within\";\r\nimport \"./jquery__focus\";\r\nimport \"./jquery__form-loading/plugin--bundled\";\r\nimport \"./jquery__emit-on-dirty\";\r\nimport \"./jquery__trigger-event\";\r\n\r\n// import \"./jquery__element-transitions\";\r\n// import \"./jquery__anchor-element\";\r\n// import \"./jquery__broadcast-events\";\r\n// import \"./jquery__analytics-trigger\";\r\n// import \"./jquery__execute-method\";\r\n// import \"./jquery__responsive-tables\";\r\n// import \"./jquery__responsive-video\";\r\n\r\n\r\n// import \"./jquery__transport-elements\";\r\n// import \"./jquery__mediaquery-sensor\";\r\n// import \"./jquery__ajax-queue\";\r\n// import \"./jquery__manifest-asset\";\r\n// import \"./jquery__sticky\";\r\n// import \"./jquery__truncate-text\";\r\n// import \"./jquery__prevent-default\";\r\n// import \"./jquery__stop-propagation\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/index.js","\r\nimport $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-add-element-classes]';\r\nexport const PLUGIN_NAME = 'AddElementClasses';\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--add-element-classes\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__add-element-classes/index.js","import debug from \"debug\";\r\n\r\nconst log = debug(\"collapsible\");\r\n\r\nfunction getJSONValue(stringValue) {\r\n\ttry {\r\n\t\treturn JSON.parse(stringValue);\r\n\t} catch (error) {\r\n\t\treturn stringValue;\r\n\t}\r\n}\r\n\r\nclass Collapsible {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\r\n\t\tconst scopes = {\r\n\t\t\tdocument: document,\r\n\t\t\telement: this.element\r\n\t\t};\r\n\r\n\t\t//\tLook for the content element within this element or elsewhere\r\n\t\tconst contentSelectorIsId =\r\n\t\t\tthis.options.contentSelector &&\r\n\t\t\tthis.options.contentSelector[0] === \"#\";\r\n\r\n\t\tif (contentSelectorIsId) {\r\n\t\t\tthis.contentSelectorScope = scopes[\"document\"];\r\n\t\t} else {\r\n\t\t\tthis.contentSelectorScope = scopes[\r\n\t\t\t\tthis.options.contentSelectorScope\r\n\t\t\t]\r\n\t\t\t\t? scopes[this.options.contentSelectorScope]\r\n\t\t\t\t: scopes[\"element\"];\r\n\t\t}\r\n\r\n\t\t// if no button is specified perhaps this is the button\r\n\t\tthis.button = this.options.buttonSelector\r\n\t\t\t? this.element.querySelector(this.options.buttonSelector)\r\n\t\t\t: this.element;\r\n\r\n\t\t// Content is optional\r\n\t\t//\twe may be toggling with CSS based on aria-expanded button attr\r\n\t\tthis.content =\r\n\t\t\tthis.options.contentSelector &&\r\n\t\t\tthis.contentSelectorScope.querySelector(\r\n\t\t\t\tthis.options.contentSelector\r\n\t\t\t);\r\n\t\tthis.collapseWith = this.options.collapsedClass ? \"class\" : \"hidden\";\r\n\t\tthis.collapsedClass = this.options.collapsedClass;\r\n\r\n\t\tthis.toggleMethod =\r\n\t\t\tthis.collapseWith === \"class\"\r\n\t\t\t\t? this.toggleWithClass\r\n\t\t\t\t: this.toggleWithHidden;\r\n\r\n\t\tthis.attributeObserver = new MutationObserver(\r\n\t\t\tthis.onAttributeChange.bind(this)\r\n\t\t);\r\n\r\n\t\tthis.bindDocumentEvents = this.options.closeWithDocumentClick\r\n\t\t\t? this.bindDocumentClick\r\n\t\t\t: function() {};\r\n\r\n\t\tthis.unbindDocumentEvents = this.options.closeWithDocumentClick\r\n\t\t\t? this.unbindDocumentClick\r\n\t\t\t: function() {};\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\tinit() {\r\n\t\t// component enabled - show the button\r\n\t\tthis.button.hidden = false;\r\n\r\n\t\t// Determine initial collapse state\r\n\t\t//\tif set open option determines init state\r\n\t\tvar doCollapse =\r\n\t\t\tthis.options.open !== undefined ? !this.options.open : true;\r\n\r\n\t\tthis.toggleMethod(doCollapse);\r\n\t\tthis.isCollapsed = doCollapse;\r\n\t}\r\n\r\n\twatch() {\r\n\t\tthis.button.addEventListener(\"click\", this.toggle.bind(this));\r\n\t\tthis.attributeObserver.observe(this.element, { attributes: true });\r\n\t}\r\n\r\n\ttoggleWithHidden(doCollapse) {\r\n\t\tthis.button.setAttribute(\"aria-expanded\", !doCollapse);\r\n\r\n\t\tif (!this.content) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tthis.content.hidden = doCollapse;\r\n\t}\r\n\r\n\ttoggleWithClass(doCollapse) {\r\n\t\tthis.button.setAttribute(\"aria-expanded\", !doCollapse);\r\n\r\n\t\tif (!this.content) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (doCollapse) {\r\n\t\t\tthis.content.classList.add(this.collapsedClass);\r\n\t\t} else {\r\n\t\t\tthis.content.classList.remove(this.collapsedClass);\r\n\t\t}\r\n\t}\r\n\r\n\t// button click handler\r\n\ttoggle() {\r\n\t\tif (!this.options.selfClosing && !this.isCollapsed) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst handler = this.isCollapsed\r\n\t\t\t? this.open.bind(this)\r\n\t\t\t: this.close.bind(this);\r\n\t\thandler();\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.toggleMethod(false);\r\n\t\tthis.isCollapsed = false;\r\n\t\tthis.element.dataset.collapsibleOpen = true;\r\n\t\tthis.bindDocumentEvents();\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.toggleMethod(true);\r\n\t\tthis.isCollapsed = true;\r\n\t\tthis.element.dataset.collapsibleOpen = false;\r\n\t\tthis.unbindDocumentEvents();\r\n\t}\r\n\r\n\tbindDocumentClick() {\r\n\t\tdocument.addEventListener(\"click\", this.onDocumentClick.bind(this));\r\n\t}\r\n\r\n\tunbindDocumentClick() {\r\n\t\tdocument.removeEventListener(\"click\", this.onDocumentClick);\r\n\t}\r\n\r\n\tonDocumentClick(event) {\r\n\t\tconst clickTarget = event.target;\r\n\r\n\t\t// clicked this.button\r\n\t\tif (clickTarget === this.button || this.button.contains(clickTarget)) {\r\n\t\t\tlog(\"clicked button\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// clicked this.content\r\n\t\tif (\r\n\t\t\tthis.content &&\r\n\t\t\t(clickTarget === this.content || this.content.contains(clickTarget))\r\n\t\t) {\r\n\t\t\tlog(\"clicked content or inside it\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.close();\r\n\t}\r\n\r\n\tonAttributeChange(mutationList, observer) {\r\n\t\tmutationList\r\n\t\t\t.filter(mutation => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tmutation.type === \"attributes\" &&\r\n\t\t\t\t\tmutation.attributeName.startsWith(\"data-collapsible-open\")\r\n\t\t\t\t);\r\n\t\t\t})\r\n\t\t\t.forEach(this.onOpenChanged.bind(this));\r\n\t}\r\n\r\n\tonOpenChanged(mutation) {\r\n\t\tconst doCollapse = !getJSONValue(this.element.dataset.collapsibleOpen);\r\n\t\tif (this.isCollapsed !== doCollapse) {\r\n\t\t\tthis.toggleMethod(doCollapse);\r\n\t\t\tthis.isCollapsed = doCollapse;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nCollapsible.DEFAULTS = {\r\n\tselfClosing: true\r\n};\r\n\r\nexport default Collapsible;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__collapsible/collapsible.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\nimport Collapsible from './collapsible';\r\n\r\nconst ELEMENT_SELECTOR = '[data-collapsible]';\r\nconst PLUGIN_NAME = 'Collapsible';\r\n\r\nplugin(PLUGIN_NAME, Collapsible);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__collapsible/plugin--bundled.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-emit-on-dirty]';\r\nexport const PLUGIN_NAME = 'EmitOnDirty';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--emit-on-dirty\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__emit-on-dirty/index.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-focus-within]';\r\nexport const PLUGIN_NAME = 'FocusWithin';\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--focus-within\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__focus-within/index.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-focus-element]';\r\nexport const PLUGIN_NAME = 'FocusElement';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--focus-element\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__focus/index.js","class FormLoading {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\twatch() {\r\n\t\tthis.element.addEventListener(\"submit\", this.applyLoadingState.bind(this));\r\n\t}\r\n\r\n\tapplyLoadingState() {\r\n\t\tthis.element.dataset[this.options.dataKey] = this.options.dataValue;\r\n\t\tconst submitButton = this.element.querySelector(\"button[type=submit]\");\r\n\t\tif(submitButton != null)\r\n\t\t{\r\n\t\t\tsubmitButton.setAttribute(\"aria-label\", this.options.dataValue);\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\nFormLoading.DEFAULTS = {\r\n\tdataKey: 'state',\r\n\tdataValue: 'loading'\r\n};\r\nexport default FormLoading;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__form-loading/form-loading.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\nimport FormLoading from './form-loading';\r\n\r\nconst ELEMENT_SELECTOR = '[data-form-loading]';\r\nconst PLUGIN_NAME = 'FormLoading';\r\n\r\nplugin(PLUGIN_NAME, FormLoading);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__form-loading/plugin--bundled.js","import $ from 'jquery';\r\nimport plugin from '@core/plugins/lib';\r\nimport RadioSelection from './radio-selection';\r\n\r\nconst ELEMENT_SELECTOR = '[data-radio-selection]';\r\nconst PLUGIN_NAME = 'RadioSelection';\r\n\r\nplugin(PLUGIN_NAME, RadioSelection);\r\n\r\n$(document).ready(() => {\r\n\t$(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__radio-selection/plugin--bundled.js","// IE Needs element.closest polyfill - see polyfills\r\n// https://gomakethings.com/a-native-vanilla-javascript-way-to-get-the-closest-matching-parent-element/\r\n\r\n\r\nclass RadioSelection {\r\n\tconstructor(element, options) {\r\n\t\tthis.element = element;\r\n\t\tthis.options = options;\r\n\r\n\t\t// scoped to parent form or other form if specified\r\n\t\tthis.form = this.options.formSelector\r\n\t\t\t? this.element.querySelector(this.options.formSelector)\r\n\t\t\t: this.element.closest('form');\r\n\r\n\r\n\t\tthis.inputs = this.form.elements[this.options.name];\r\n\r\n\t\tif (!this.form || !this.options.name || !this.inputs) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.init();\r\n\t\tthis.watch();\r\n\t}\r\n\r\n\tinit(){\r\n\t\tthis.updateValue();\r\n\t}\r\n\r\n\twatch(){\r\n\t\t[...this.inputs].forEach((input)=>{\r\n\t\t\tinput.addEventListener('change', this.updateValue.bind(this));\r\n\t\t});\r\n\t}\r\n\r\n\tupdateValue(){\r\n\t\tconst value = this.inputs.value;\r\n\t\tconst checkedInput = this.form.querySelector(`[name=\"${this.options.name}\"][value=\"${value}\"]`);\r\n\t\tconst label = this.form.querySelector(`label[for=\"${checkedInput.id}\"]`);\r\n\r\n\t\tif (!label){\r\n\t\t\tconsole.warn('Label missing for radio input', checkedInput);\r\n\t\t}\r\n\t\tthis.element.textContent = label.textContent;\r\n\t}\r\n\r\n}\r\n\r\nRadioSelection.DEFAULTS = {};\r\n\r\nexport default RadioSelection;\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__radio-selection/radio-selection.js","\r\nimport $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-remove-element-classes]';\r\nexport const PLUGIN_NAME = 'RemoveElementClasses';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--remove-element-classes\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__remove-element-classes/index.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-toggle-element-classes]';\r\nexport const PLUGIN_NAME = 'ToggleElementClasses';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--toggle-element-classes\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__toggle-element-classes/index.js","import $ from 'jquery';\r\n\r\nexport const ELEMENT_SELECTOR = '[data-trigger-event]';\r\nexport const PLUGIN_NAME = 'triggerEvent';\r\n\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR).each(function () {\r\n const element = this;\r\n System.import(/* webpackChunkName: \"plugin--trigger-event\" */ './plugin')\r\n .then(() => {\r\n $(element)[PLUGIN_NAME]();\r\n });\r\n });\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__trigger-event/index.js","// Returns a function, that, as long as it continues to be invoked, will not\r\n// be triggered. The function will be called after it stops being called for\r\n// N milliseconds. If `immediate` is passed, trigger the function on the\r\n// leading edge, instead of the trailing.\r\nexport function debounce(func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this, args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/fn.js","/*\r\njQuery plugin\r\n\r\n\r\n```\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\n\r\nconst ELEMENT_SELECTOR = '[data-my-plugin]';\r\nconst PLUGIN_NAME = 'MyPlugin';\r\nconst MODULE_NAME = 'plugins/my-plugin';\r\nconst log = debug(MODULE_NAME);\r\n\r\nclass PluginKlass {\r\n constructor(element, options) {\r\n log('new instance', element, options);\r\n\r\n this.element = element;\r\n this.options = options;\r\n this.$element = $(element);\r\n\r\n log('ready', this.$element);\r\n\r\n this.init();\r\n }\r\n}\r\n\r\nPluginKlass.DEFAULTS = {\r\n someCamelCasedProperty: `${PLUGIN_NAME}:something`,\r\n};\r\n\r\nplugin(PLUGIN_NAME, PluginKlass);\r\n\r\n$(document).ready(() => {\r\n $(ELEMENT_SELECTOR)[PLUGIN_NAME]();\r\n});\r\n```\r\n\r\nThen using it in html:\r\n```\r\n
\r\n```\r\n\r\nStyelguide Core.Global.Javascript.JqueryPlugin\r\n*/\r\nimport $ from 'jquery';\r\nimport debug from 'debug';\r\n\r\nimport * as fn from './fn';\r\nimport * as strings from './strings';\r\nimport * as objects from './objects';\r\nimport * as selectors from './selectors';\r\n// import * as events from './events';\r\n\r\nimport {toCamelCase} from './strings';\r\nimport { selectTarget } from './selectors';\r\n\r\nconst log = debug('core/plugins/lib');\r\n\r\nexport default function plugin(pluginName, klass, shortHand = false) {\r\n const formattedPluginName = toCamelCase(pluginName);\r\n const dataName = `__${formattedPluginName}`;\r\n const old = $.fn[formattedPluginName];\r\n const ZERO = 0;\r\n\r\n klass.$bus = {\r\n subscribe: function(event, fn) {\r\n $(this).bind(event, fn);\r\n },\r\n publish: function(event, data) {\r\n $(this).trigger(event, [data]);\r\n }\r\n };\r\n\r\n klass.$util = {\r\n fn,\r\n objects,\r\n strings,\r\n selectors,\r\n };\r\n\r\n klass.prototype.selectors = selectors;\r\n klass.prototype.strings = strings;\r\n klass.prototype.objects = objects;\r\n klass.prototype.fn = fn;\r\n klass.prototype.inViewport = function (elm) {\r\n var rect = elm.getBoundingClientRect();\r\n var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\r\n return !(rect.bottom < 0 || rect.top - viewHeight >= 0);\r\n };\r\n\r\n $.fn[pluginName] = function PluginFactory (option) {\r\n return this.each(function PluginInstanceFactory () {\r\n const $this = $(this);\r\n const data = $this.data();\r\n const overrides = typeof option === 'object' && option;\r\n const elementOptions = Object\r\n .keys(data)\r\n .filter((key) => {\r\n return toCamelCase(key).indexOf(formattedPluginName) >= ZERO;\r\n })\r\n .reduce((result, path) => {\r\n const data = path && $this.data(path);\r\n const key = toCamelCase(path.replace(new RegExp(`${formattedPluginName}-?`), ''));\r\n log(path, key, $this.data(path));\r\n\r\n if (key && data !== undefined) {\r\n result[key] = data;\r\n }\r\n return result;\r\n }, {});\r\n log(pluginName, { elementOptions});\r\n let instance = $this.data(dataName);\r\n const options = $.extend({}, klass.DEFAULTS, elementOptions, overrides);\r\n\r\n // store reference to instance\r\n if (!instance) {\r\n instance = new klass(this, options);\r\n instance.$utils = klass.$util;\r\n $this.data(dataName, instance);\r\n $this.addClass(`u-${pluginName}`);\r\n }\r\n\r\n // execute instance method\r\n if (typeof option === 'string') {\r\n instance[option]();\r\n }\r\n });\r\n };\r\n\r\n // - Short hand\r\n if (shortHand) {\r\n $[formattedPluginName] = (options) => $({})[formattedPluginName](options);\r\n }\r\n\r\n // - No conflict\r\n // $.fn[formattedPluginName].noConflict = function noConflict () {\r\n // $.fn[formattedPluginName] = old;\r\n // };\r\n}\r\n\r\nexport function jquery (name) {\r\n return function decorate (target) {\r\n plugin(name, target);\r\n };\r\n}\r\n\r\nexport function defaults (options) {\r\n return function decorate (target) {\r\n target.DEFAULTS = options;\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/index.js","import debug from 'debug';\r\nimport { toCamelCase } from './strings';\r\nconst MODULE_NAME = 'app.core/lib/objects';\r\nconst log = debug(MODULE_NAME);\r\n\r\n\r\nconst ZERO = 0;\r\n\r\n/**\r\n * Convert an elements attributes to an object, optionally filtering based on some predicate.\r\n * @param {DOMElement} element [description]\r\n * @param {Function} filterFn filtering function. return false to omit attribute.\r\n * @param {Function} transformFn transform attribute name function. returns camelCase by default\r\n * @return {[type]} [description]\r\n */\r\nexport function elementAttrtibutesToObject(element, filterFn = () => true, transformFn = (name) => toCamelCase(name)) {\r\n const output = {};\r\n const attrs = Array.from($(element).get(ZERO).attributes);\r\n\r\n if (!attrs) {\r\n return output;\r\n }\r\n\r\n log(`converting element attributes to object`, attrs);\r\n\r\n return attrs.reduce((result, attribute) => {\r\n if (filterFn(attribute)) {\r\n const name = transformFn(attribute.name);\r\n let value = attribute.value;\r\n\r\n if (value === 'false' || value === 'true') {\r\n value = Boolean(value);\r\n }\r\n result[name] = attribute.value;\r\n }\r\n\r\n return result;\r\n }, output);\r\n\r\n}\r\n\r\n\r\n/**\r\n * Object.prop()\r\n *\r\n * Allows dot-notation access to object properties for both getting and setting.\r\n *\r\n * @param {Object} obj The object we're getting from or setting\r\n * @param {string} prop The dot-notated string defining the property location\r\n * @param {mixed} val For setting only; the value to set\r\n */\r\n\r\nexport function objectPath (obj, path, val, options = {delimiter: '.'}) {\r\n const props = path.split(options.delimiter);\r\n const final = props.pop();\r\n let part;\r\n\r\n for (var index = 0; index < props.length; index++) {\r\n part = props[index];\r\n if (typeof obj[part] === 'undefined') {\r\n // If we're setting\r\n if (typeof val !== 'undefined' && index != props.length) {\r\n // If we're not at the end of the props, keep adding new empty objects\r\n obj[part] = {};\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n obj = obj[part];\r\n }\r\n return typeof val !== \"undefined\" ? (obj[final] = val) : obj[final];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/objects.js","import $ from 'jquery';\r\nimport debug from 'debug';\r\nconst log = debug('core/plugins/lib/selectors');\r\n\r\nexport function selectorPattern (...directives) {\r\n return new RegExp(`\\\\((${directives.join('|')})(.*)\\\\)\\\\s?(.*)`);\r\n}\r\n\r\nexport const SELECTOR_PATTERNS = {\r\n\r\n // .find\r\n \"children\": selectorPattern('children'),\r\n\r\n // .closest\r\n \"parent\": selectorPattern('parent'),\r\n \"from\": selectorPattern('from'),\r\n \"parents\": selectorPattern('parents'),\r\n \"siblings\": selectorPattern('siblings'),\r\n \"here\": selectorPattern('here'),\r\n \"self\": selectorPattern('self'),\r\n};\r\n\r\nexport function selectTarget(selector, $element) {\r\n let $target;\r\n\r\n const isClosestAncestoral = selector.match(SELECTOR_PATTERNS.parent);\r\n const isAllAncestoral = selector.match(SELECTOR_PATTERNS.parents);\r\n const isRetargeted = selector.match(SELECTOR_PATTERNS.from);\r\n const isAllDescendants = selector.match(SELECTOR_PATTERNS.children);\r\n const isGenerational = selector.match(SELECTOR_PATTERNS.here);\r\n const isSiblings = selector.match(SELECTOR_PATTERNS.siblings);\r\n const isSelfish = selector.match(SELECTOR_PATTERNS.self);\r\n\r\n // special retargeting root\r\n if (isRetargeted) {\r\n log('isRetargeted', isRetargeted[2], isRetargeted[3]);\r\n const $newElement = selectTarget(isRetargeted[2], $element);\r\n const newSelector = `(children) ${isRetargeted[3]}`;\r\n log('isRetargeted.newElement', $newElement);\r\n log('isRetargeted.newSelector', newSelector);\r\n $target = selectTarget(newSelector, $newElement);\r\n log('isRetargeted.target', $target);\r\n }\r\n\r\n // target is all ancestors\r\n else if (isAllAncestoral) {\r\n log('isAllAncestoral', isAllAncestoral);\r\n $target = $element.parents(isAllAncestoral[isAllAncestoral.length - 1]);\r\n }\r\n // target is closest ancestor\r\n else if (isClosestAncestoral) {\r\n log('isClosestAncestoral', isClosestAncestoral);\r\n $target = $element.closest(isClosestAncestoral[isClosestAncestoral.length - 1]);\r\n }\r\n // target is somewhere under current parent\r\n else if (isGenerational) {\r\n log('isGenerational', isGenerational);\r\n $target = $element.parent().find(isGenerational[isGenerational.length - 1]);\r\n }\r\n // target is only under self\r\n else if (isAllDescendants) {\r\n log('isAllDescendants', isAllDescendants);\r\n $target = $element.find(isAllDescendants[isAllDescendants.length - 1]);\r\n }\r\n // target is somewhere in siblings only\r\n else if (isSiblings) {\r\n log('isSiblings', isSiblings);\r\n $target = $element.siblings(isSiblings[isSiblings.length - 1]);\r\n }\r\n // target is source\r\n else if (!selector || isSelfish) {\r\n log('isSelfish', isSelfish);\r\n var selector = isSelfish[isSelfish.length - 1] || '*';\r\n $target = $element.filter(selector);\r\n }\r\n // target could be anywhere\r\n else {\r\n log('global', selector);\r\n $target = $(selector);\r\n }\r\n return $target;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/selectors.js","import $ from 'jquery';\r\nimport debug from 'debug';\r\n\r\nconst log = debug('core/jquery_plugin/strings');\r\n\r\nfunction preserveCamelCase(str) {\r\n let isLastCharLower = false;\r\n let isLastCharUpper = false;\r\n let isLastLastCharUpper = false;\r\n\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str[i];\r\n\r\n if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {\r\n str = str.substr(0, i) + '-' + str.substr(i);\r\n isLastCharLower = false;\r\n isLastLastCharUpper = isLastCharUpper;\r\n isLastCharUpper = true;\r\n i++;\r\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {\r\n str = str.substr(0, i - 1) + '-' + str.substr(i - 1);\r\n isLastLastCharUpper = isLastCharUpper;\r\n isLastCharUpper = false;\r\n isLastCharLower = true;\r\n } else {\r\n isLastCharLower = c.toLowerCase() === c;\r\n isLastLastCharUpper = isLastCharUpper;\r\n isLastCharUpper = c.toUpperCase() === c;\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\nexport function toCamelCase (str) {\r\n if (arguments.length > 1) {\r\n str = Array.from(arguments)\r\n .map(x => x.trim())\r\n .filter(x => x.length)\r\n .join('-');\r\n } else {\r\n str = str.trim();\r\n }\r\n\r\n if (str.length === 0) {\r\n return '';\r\n }\r\n\r\n if (str.length === 1) {\r\n return str.toLowerCase();\r\n }\r\n\r\n if (/^[a-z0-9]+$/.test(str)) {\r\n return str;\r\n }\r\n\r\n const hasUpperCase = str !== str.toLowerCase();\r\n\r\n if (hasUpperCase) {\r\n str = preserveCamelCase(str);\r\n }\r\n\r\n return str\r\n .replace(/^[_.\\- ]+/, '')\r\n .toLowerCase()\r\n .replace(/[_.\\- ]+(\\w|$)/g, (m, p1) => p1.toUpperCase());\r\n};\r\n\r\n\r\nexport function tmpl(str, context) {\r\n let result = str;\r\n\r\n if (result) {\r\n\r\n Object.keys(context)\r\n .forEach((item) => {\r\n result = result.replace(`{{${item}}}`, context[item]);\r\n });\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function $tmpl(element, context) {\r\n const $target = $(element);\r\n const templateString = $target.attr('data-text-template');\r\n const result = tmpl(templateString, context);\r\n\r\n $target.text(result);\r\n}\r\n\r\n/**\r\n * https://github.com/aishikaty/tiny-mustache\r\n * https://mustache.github.io/\r\n * @param {String} template [description]\r\n * @param {[type]} self [description]\r\n * @param {[type]} parent [description]\r\n * @param {[type]} invert [description]\r\n * @return {[type]} [description]\r\n */\r\nexport function mustache(template, self, parent, invert) {\r\n var render = mustache;\r\n var output = \"\";\r\n var i;\r\n\r\n log('mustache', {template, self, parent, invert});\r\n\r\n function get(ctx, path) {\r\n path = path.pop ? path : path.split(\".\");\r\n ctx = ctx[path.shift()] || \"\";\r\n return (0 in path) ? get(ctx, path) : ctx;\r\n }\r\n\r\n self = Array.isArray(self) ? self : (self ? [self] : []);\r\n self = invert ? (0 in self) ? [] : [1] : self;\r\n\r\n for (i = 0; i < self.length; i++) {\r\n var childCode = '';\r\n var depth = 0;\r\n var inverted;\r\n var ctx = (typeof self[i] == \"object\") ? self[i] : {};\r\n ctx = Object.assign({}, parent, ctx);\r\n ctx[\"\"] = { \"\": self[i] };\r\n\r\n template.replace(/([\\s\\S]*?)({{((\\/)|(\\^)|#)(.*?)}}|$)/g,\r\n function (match, code, y, z, close, invert, name) {\r\n\r\n if (!depth) {\r\n output += code.replace(/{{{(.*?)}}}|{{(!?)(&?)(>?)(.*?)}}/g,\r\n function (match, raw, comment, isRaw, partial, name) {\r\n return raw ? get(ctx, raw)\r\n : isRaw ? get(ctx, name)\r\n : partial ? render(get(ctx, name), ctx)\r\n : !comment ? new Option(get(ctx, name)).innerHTML\r\n : \"\";\r\n }\r\n );\r\n inverted = invert;\r\n\r\n } else {\r\n childCode += depth && !close || depth > 1 ? match : code;\r\n }\r\n\r\n if (close) {\r\n if (!--depth) {\r\n name = get(ctx, name);\r\n if (/^f/.test(typeof name)) {\r\n output += name.call(ctx, childCode, function (template) {\r\n return render(template, ctx);\r\n });\r\n } else {\r\n output += render(childCode, name, ctx, inverted);\r\n }\r\n childCode = \"\";\r\n }\r\n\r\n } else {\r\n ++depth;\r\n }\r\n log(`mustache.output.${depth}`, {output});\r\n }\r\n );\r\n }\r\n log('mustache.output', {output});\r\n return output;\r\n}\r\n\r\nexport function booleanify(value) {\r\n const lower = value.toLowerCase();\r\n if (lower === 'false' || lower === '0') {\r\n return false;\r\n }\r\n return new Boolean(value);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/lib/strings.js","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = external \"jQuery\"\n// module chunks = core site__pol site__esh vendor"],"sourceRoot":""}