{“version”:3,“sources”:,“names”:[“e”,“t”,“n”,“r”,“s”,“o”,“u”,“a”,“require”,“i”,“f”,“Error”,“code”,“l”,“exports”,“call”,“length”,“1”,“module”,“arr”,“fn”,“self”,“filter”,“TypeError”,“ret”,“hasOwn”,“val”,“push”,“Object”,“prototype”,“hasOwnProperty”,“2”,“ary”,“callback”,“thisArg”,“forEach”,“3”,“window”,“document”,“createElement”,“createElementNS”,“view”,“classListProp”,“protoProp”,“elemCtrProto”,“Element”,“objCtr”,“strTrim”,“String”,“trim”,“this”,“replace”,“arrIndexOf”,“Array”,“indexOf”,“item”,“len”,“DOMEx”,“type”,“message”,“name”,“DOMException”,“checkTokenAndGetIndex”,“classList”,“token”,“test”,“ClassList”,“elem”,“trimmedClasses”,“getAttribute”,“classes”,“split”,“_updateClassName”,“setAttribute”,“toString”,“classListProto”,“classListGetter”,“contains”,“add”,“tokens”,“arguments”,“updated”,“remove”,“index”,“splice”,“toggle”,“force”,“result”,“method”,“join”,“defineProperty”,“classListPropDesc”,“get”,“enumerable”,“configurable”,“ex”,“undefined”,“number”,“__defineGetter__”,“testElement”,“createMethod”,“original”,“DOMTokenList”,“_toggle”,“4”,“_typeof”,“Symbol”,“iterator”,“obj”,“constructor”,“definition”,“define”,“amd”,“_listener”,“fns”,“doc”,“hack”,“documentElement”,“doScroll”,“domContentLoaded”,“loaded”,“readyState”,“addEventListener”,“removeEventListener”,“shift”,“setTimeout”,“5”,“useNative”,“Boolean”,“dataset”,“aB”,“nativeDataset”,“element”,“getter”,“value”,“setter”,“removeAttribute”,“map”,“attributes”,“j”,“attribute”,“prop”,“slice”,“charAt”,“toUpperCase”,“bind”,“set”,“6”,“ElementProto”,“matches”,“msMatchesSelector”,“mozMatchesSelector”,“webkitMatchesSelector”,“selector”,“elements”,“ownerDocument”,“querySelectorAll”,“closest”,“nodeType”,“parentNode”,“7”,“polyfill”,“KeyboardEvent”,“proto”,“x”,“key”,“keyboardeventKeyPolyfill”,“keys”,“which”,“keyCode”,“isArray”,“shiftKey”,“8”,“9”,“12”,“13”,“16”,“17”,“18”,“19”,“20”,“27”,“28”,“29”,“30”,“31”,“32”,“33”,“34”,“35”,“36”,“37”,“38”,“39”,“40”,“41”,“42”,“43”,“44”,“45”,“46”,“48”,“49”,“50”,“51”,“52”,“53”,“54”,“55”,“56”,“57”,“91”,“93”,“144”,“145”,“181”,“182”,“183”,“186”,“187”,“188”,“189”,“190”,“191”,“192”,“219”,“220”,“221”,“222”,“224”,“225”,“246”,“247”,“248”,“249”,“250”,“251”,“letter”,“fromCharCode”,“toLowerCase”,“global”,“debounce”,“func”,“wait”,“options”,“invokeFunc”,“time”,“args”,“lastArgs”,“lastThis”,“lastInvokeTime”,“apply”,“leadingEdge”,“timerId”,“timerExpired”,“leading”,“remainingWait”,“timeSinceLastCall”,“lastCallTime”,“timeSinceLastInvoke”,“maxing”,“nativeMin”,“maxWait”,“shouldInvoke”,“now”,“trailingEdge”,“trailing”,“cancel”,“clearTimeout”,“flush”,“debounced”,“isInvoking”,“FUNC_ERROR_TEXT”,“toNumber”,“isObject”,“nativeMax”,“isObjectLike”,“isSymbol”,“objectToString”,“symbolTag”,“NAN”,“other”,“valueOf”,“reTrim”,“isBinary”,“reIsBinary”,“reIsOctal”,“freeParseInt”,“reIsBadHex”,“parseInt”,“freeGlobal”,“freeSelf”,“root”,“Function”,“objectProto”,“Math”,“max”,“min”,“Date”,“toObject”,“shouldUseNative”,“assign”,“test1”,“getOwnPropertyNames”,“test2”,“order2”,“test3”,“err”,“getOwnPropertySymbols”,“propIsEnumerable”,“propertyIsEnumerable”,“target”,“source”,“from”,“symbols”,“to”,“10”,“delegate”,“delegateAll”,“DELEGATE_PATTERN”,“SPACE”,“getListeners”,“handler”,“match”,“capture”,“popKey”,“passive”,“listener”,“_type”,“events”,“props”,“listeners”,“reduce”,“memo”,“concat”,“../delegate”,“../delegateAll”,“object-assign”,“11”,“functions”,“some”,“event”,“element-closest”,“compose”,“SPLAT”,“selectors”,“delegates”,“../compose”,“14”,“15”,“behavior”,“ignore”,“keymap”,“./behavior”,“./delegate”,“./delegateAll”,“./ignore”,“./keymap”,“MODIFIERS”,“Alt”,“Control”,“Ctrl”,“Shift”,“MODIFIER_SEPARATOR”,“getEventKey”,“hasModifiers”,“modifier”,“_key”,“keyboardevent-key-polyfill”,“wrapped”,“currentTarget”,“RE_TRIM”,“RE_SPLIT”,“str”,“queryById”,“id”,“querySelector”,“ids”,“getElementById”,“el”,“_defineProperty”,“writable”,“isElementInViewport”,“_require”,“CLICK”,“_require2”,“PREFIX”,“prefix”,“ACCORDION”,“BUTTON”,“EXPANDED”,“MULTISELECTABLE”,“getAccordionButtons”,“accordion”,“buttons”,“button”,“toggleButton”,“expanded”,“safeExpanded”,“multiselectable”,“showButton”,“hideButton”,“preventDefault”,“scrollIntoView”,“init”,“show”,“hide”,“getButtons”,“Accordion”,“on”,“off”,“../config”,“../events”,“../utils/behavior”,“../utils/is-in-viewport”,“../utils/toggle”,“array-filter”,“array-foreach”,“HEADER”,“EXPANDED_CLASS”,“toggleBanner”,“21”,“showPanel”,“innerWidth”,“HIDE_MAX_WIDTH”,“list”,“LIST”,“HIDDEN”,“lists”,“NAV”,“select”,“SCOPE”,“DEBOUNCE_RATE”,“resize”,“hidden”,“teardown”,“../utils/select”,“lodash.debounce”,“22”,“banner”,“footer”,“navigation”,“password”,“search”,“skipnav”,“validator”,“./accordion”,“./banner”,“./footer”,“./navigation”,“./password”,“./search”,“./skipnav”,“./validator”,“23”,“_CLICK”,“FocusTrap”,“NAV_LINKS”,“OPENERS”,“CLOSE_BUTTON”,“OVERLAY”,“CLOSERS”,“TOGGLES”,“ACTIVE_CLASS”,“VISIBLE_CLASS”,“isActive”,“body”,“toggleNav”,“active”,“_document”,“safeActive”,“focusTrap”,“update”,“closeButton”,“menuButton”,“focus”,“activeElement”,“closer”,“getBoundingClientRect”,“width”,“onMenuClose”,“acc”,“btn”,“trapContainer”,“Escape”,“../utils/focus-trap”,“24”,“toggleFormInput”,“LINK”,“../utils/toggle-form-input”,“25”,“showSearch”,“toggleSearch”,“lastButton”,“hideSearch”,“FORM”,“INPUT”,“CONTEXT”,“getForm”,“context”,“form”,“input”,“receptor/ignore”,“26”,“setTabindex”,“MAINCONTENT”,“style”,“outline”,“once”,“receptor/once”,“change”,“validate”,“keyup change”,“input”,“../utils/validate-input”,“elproto”,“HTMLElement”,“hasAttribute”,“./element-hidden”,“classlist-polyfill”,“domready”,“uswds”,“components”,“./components”,“./config”,“./polyfills”,“htmlDocument”,“Behavior”,“sequence”,“_len”,“seq”,“_this”,“receptor/behavior”,“FOCUSABLE”,“tabHandler”,“tabAhead”,“lastTabStop”,“firstTabStop”,“tabBack”,“focusableElements”,“additionalKeyBindings”,“tabEventHandler”,“keyMappings”,“Tab”,“Shift+Tab”,“keydown”,“./active-element”,“./select”,“receptor”,“win”,“docEl”,“rect”,“top”,“left”,“bottom”,“innerHeight”,“clientHeight”,“right”,“clientWidth”,“isElement”,“selection”,“field”,“mask”,“resolveIdRefs”,“toggleFieldMask”,“CONTROLS”,“PRESSED”,“SHOW_ATTR”,“HIDE_ATTR”,“getHideText”,“showText”,“pressed”,“fields”,“textContent”,“hideText”,“./toggle-field-mask”,“resolve-id-refs”,“controls”,“_slicedToArray”,“sliceIterator”,“_arr”,“_n”,“_d”,“_e”,“_s”,“_i”,“next”,“done”,“CHECKED”,“CHECKED_CLASS”,“data”,“validationElement”,“checkList”,“entries”,“_ref”,“_ref2”,“startsWith”,“validatorName”,“substr”,“validatorPattern”,“RegExp”,“validatorSelector”,“validatorCheckbox”,“checked”,“elem-dataset”],“mappings”:“CAAA,WAAA,QAAAA,GAAAC,EAAAC,EAAAC,GAAA,QAAAC,GAAAC,EAAAC,GAAA,IAAAJ,EAAAG,GAAA,CAAA,IAAAJ,EAAAI,GAAA,CAAA,GAAAE,GAAA,kBAAAC,UAAAA,OAAA,KAAAF,GAAAC,EAAA,MAAAA,GAAAF,GAAA,EAAA,IAAAI,EAAA,MAAAA,GAAAJ,GAAA,EAAA,IAAAK,GAAA,GAAAC,OAAA,uBAAAN,EAAA,IAAA,MAAAK,GAAAE,KAAA,mBAAAF,EAAA,GAAAG,GAAAX,EAAAG,IAAAS,WAAAb,GAAAI,GAAA,GAAAU,KAAAF,EAAAC,QAAA,SAAAd,GAAA,GAAAE,GAAAD,EAAAI,GAAA,GAAAL,EAAA,OAAAI,GAAAF,EAAAA,EAAAF,IAAAa,EAAAA,EAAAC,QAAAd,EAAAC,EAAAC,EAAAC,GAAA,MAAAD,GAAAG,GAAAS,QAAA,IAAA,GAAAL,GAAA,kBAAAD,UAAAA,QAAAH,EAAA,EAAAA,EAAAF,EAAAa,OAAAX,IAAAD,EAAAD,EAAAE,GAAA,OAAAD,GAAA,MAAAJ,OAAAiB,GAAA,SAAAT,EAAAU,EAAAJ,GCCA,YCUAI,GAAOJ,QAAU,SAAUK,EAAKC,EAAIC,GAClC,GAAIF,EAAIG,OAAQ,MAAOH,GAAIG,OAAOF,EAAIC,EACtC,IAAI,SAAWF,GAAO,OAASA,EAAK,KAAM,IAAII,UAC9C,IAAI,kBAAqBH,GAAI,KAAM,IAAIG,UAEvC,KAAK,GADDC,MACKf,EAAI,EAAGA,EAAIU,EAAIH,OAAQP,IAC9B,GAAKgB,EAAOV,KAAKI,EAAKV,GAAtB,CACA,GAAIiB,GAAMP,EAAIV,EACVW,GAAGL,KAAKM,EAAMK,EAAKjB,EAAGU,IAAMK,EAAIG,KAAKD,GAE3C,MAAOF,GAGT,IAAIC,GAASG,OAAOC,UAAUC,oBDIxBC,GAAG,SAASvB,EAAQU,EAAOJ,GEjBjC,YAEAI,GAAOJ,QAAU,SAAkBkB,EAAKC,EAAUC,GAC9C,GAAIF,EAAIG,QAEJ,WADAH,GAAIG,QAAQF,EAAUC,EAG1B,KAAK,GAAIzB,GAAI,EAAGA,EAAIuB,EAAIhB,OAAQP,GAAG,EAC/BwB,EAASlB,KAAKmB,EAASF,EAAIvB,GAAIA,EAAGuB,SFiCpCI,GAAG,SAAS5B,EAAQU,EAAOJ,GACjC,YGxCI,aAAcuB,QAAOhB,OAInB,aAAeiB,UAASC,cAAc,QACxCD,SAASE,iBAAqB,aAAeF,UAASE,gBAAgB,6BAA6B,QAEtG,SAAUC,GAIX,GAAM,WAAaA,GAAnB,CAEA,GACGC,GAAgB,YAChBC,EAAY,YACZC,EAAeH,EAAKI,QAAQF,GAC5BG,EAASlB,OACTmB,EAAUC,OAAOL,GAAWM,MAAQ,WACrC,MAAOC,MAAKC,QAAQ,aAAc,KAEjCC,EAAaC,MAAMV,GAAWW,SAAW,SAAUC,GAKpD,IAJA,GACG9C,GAAI,EACJ+C,EAAMN,KAAKlC,OAEPP,EAAI+C,EAAK/C,IACf,GAAIA,IAAKyC,OAAQA,KAAKzC,KAAO8C,EAC5B,MAAO9C,EAGT,WAGCgD,EAAQ,SAAUC,EAAMC,GACzBT,KAAKU,KAAOF,EACZR,KAAKtC,KAAOiD,aAAaH,GACzBR,KAAKS,QAAUA,GAEdG,EAAwB,SAAUC,EAAWC,GAC9C,GAAc,KAAVA,EACH,KAAM,IAAIP,GACP,aACA,6CAGJ,IAAI,KAAKQ,KAAKD,GACb,KAAM,IAAIP,GACP,wBACA,uCAGJ,OAAOL,GAAWrC,KAAKgD,EAAWC,IAEjCE,EAAY,SAAUC,GAOvB,IANA,GACGC,GAAiBrB,EAAQhC,KAAKoD,EAAKE,aAAa,UAAY,IAC5DC,EAAUF,EAAiBA,EAAeG,MAAM,UAChD9D,EAAI,EACJ+C,EAAMc,EAAQtD,OAEVP,EAAI+C,EAAK/C,IACfyC,KAAKvB,KAAK2C,EAAQ7D,GAEnByC,MAAKsB,iBAAmB,WACvBL,EAAKM,aAAa,QAASvB,KAAKwB,cAGhCC,EAAiBT,EAAUvB,MAC3BiC,EAAkB,WACnB,MAAO,IAAIV,GAAUhB,MAmFvB,IA9EAO,EAAMd,GAAahC,MAAMgC,GACzBgC,EAAepB,KAAO,SAAU9C,GAC/B,MAAOyC,MAAKzC,IAAM,MAEnBkE,EAAeE,SAAW,SAAUb,GAEnC,MADAA,IAAS,GACFF,EAAsBZ,KAAMc,SAEpCW,EAAeG,IAAM,WACpB,GAIGd,GAHAe,EAASC,UACTvE,EAAI,EACJI,EAAIkE,EAAO/D,OAEXiE,GAAU,CAEb,GACCjB,GAAQe,EAAOtE,GAAK,GAChBqD,EAAsBZ,KAAMc,UAC/Bd,KAAKvB,KAAKqC,GACViB,GAAU,WAGHxE,EAAII,EAEToE,IACH/B,KAAKsB,oBAGPG,EAAeO,OAAS,WACvB,GAIGlB,GAEAmB,EALAJ,EAASC,UACTvE,EAAI,EACJI,EAAIkE,EAAO/D,OAEXiE,GAAU,CAGb,GAGC,KAFAjB,EAAQe,EAAOtE,GAAK,GACpB0E,EAAQrB,EAAsBZ,KAAMc,GAC7BmB,QACNjC,KAAKkC,OAAOD,EAAO,GACnBF,GAAU,EACVE,EAAQrB,EAAsBZ,KAAMc,WAG7BvD,EAAII,EAEToE,IACH/B,KAAKsB,oBAGPG,EAAeU,OAAS,SAAUrB,EAAOsB,GACxCtB,GAAS,EAET,IACGuB,GAASrC,KAAK2B,SAASb,GACvBwB,EAASD,EACVD,KAAU,GAAQ,SAElBA,KAAU,GAAS,KAOrB,OAJIE,IACHtC,KAAKsC,GAAQxB,GAGVsB,KAAU,GAAQA,KAAU,EACxBA,GAECC,GAGVZ,EAAeD,SAAW,WACzB,MAAOxB,MAAKuC,KAAK,MAGd3C,EAAO4C,eAAgB,CAC1B,GAAIC,IACDC,IAAKhB,EACLiB,YAAY,EACZC,cAAc,EAEjB,KACChD,EAAO4C,eAAe9C,EAAcF,EAAeiD,GAClD,MAAOI,GAGUC,SAAdD,EAAGE,QAAwBF,EAAGE,uBACjCN,EAAkBE,YAAa,EAC/B/C,EAAO4C,eAAe9C,EAAcF,EAAeiD,SAG3C7C,GAAOH,GAAWuD,kBAC5BtD,EAAasD,iBAAiBxD,EAAekC,KAG5CvC,OAAOhB,MAOR,WAGA,GAAI8E,GAAc7D,SAASC,cAAc,IAMzC,IAJA4D,EAAYpC,UAAUe,IAAI,KAAM,OAI3BqB,EAAYpC,UAAUc,SAAS,MAAO,CAC1C,GAAIuB,GAAe,SAASZ,GAC3B,GAAIa,GAAWC,aAAazE,UAAU2D,EAEtCc,cAAazE,UAAU2D,GAAU,SAASxB,GACzC,GAAIvD,GAAG+C,EAAMwB,UAAUhE,MAEvB,KAAKP,EAAI,EAAGA,EAAI+C,EAAK/C,IACpBuD,EAAQgB,UAAUvE,GAClB4F,EAAStF,KAAKmC,KAAMc,IAIvBoC,GAAa,OACbA,EAAa,UAOd,GAJAD,EAAYpC,UAAUsB,OAAO,MAAM,GAI/Bc,EAAYpC,UAAUc,SAAS,MAAO,CACzC,GAAI0B,GAAUD,aAAazE,UAAUwD,MAErCiB,cAAazE,UAAUwD,OAAS,SAASrB,EAAOsB,GAC/C,MAAI,KAAKN,aAAc9B,KAAK2B,SAASb,KAAYsB,EACzCA,EAEAiB,EAAQxF,KAAKmC,KAAMc,IAM7BmC,EAAc,cHmCTK,GAAG,SAAShG,EAAQU,EAAOJ,GACjC,YAEA,IAAI2F,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAO7E,UAAY,eAAkB+E,KI/QrQ,SAAUhD,EAAMkD,GAEM,mBAAV5F,GAAuBA,EAAOJ,QAAUgG,IACzB,kBAAVC,SAA6C,UAArBN,EAAOM,OAAOC,KAAiBD,OAAOD,GACzE5D,KAAKU,GAAQkD,KAElB,WAAY,WAEZ,GAAcG,GAAVC,KACAC,EAAM7E,SACN8E,EAAOD,EAAIE,gBAAgBC,SAC3BC,EAAmB,mBACnBC,GAAUJ,EAAO,aAAe,iBAAiBnD,KAAKkD,EAAIM,WAU9D,OAPKD,IACLL,EAAIO,iBAAiBH,EAAkBN,EAAW,WAGhD,IAFAE,EAAIQ,oBAAoBJ,EAAkBN,GAC1CO,EAAS,EACFP,EAAWC,EAAIU,SAASX,MAG1B,SAAU7F,GACfoG,EAASK,WAAWzG,EAAI,GAAK8F,EAAIvF,KAAKP,WJsRpC0G,GAAG,SAAStH,EAAQU,EAAOJ,GKhTjC,YAKA,SAASiH,KACR,GAAI5D,GAAO7B,SAASC,cAAc,MAGlC,OAFA4B,GAAKM,aAAa,WAAY,KAEvBuD,QAAQ7D,EAAK8D,SAA+B,MAApB9D,EAAK8D,QAAQC,IAG7C,QAASC,GAAcC,GACtB,MAAOA,GAAQH,QAGhB/G,EAAOJ,QAAUiH,IAAcI,EAAgB,SAAUC,GAIxD,QAASC,KACR,MAAOnF,MAAKoF,MAGb,QAASC,GAAO3E,EAAM0E,GACA,mBAAVA,GACVpF,KAAKsF,gBAAgB5E,GAErBV,KAAKuB,aAAab,EAAM0E,GAI1B,IAAK,GAfDG,MACAC,EAAaN,EAAQM,WAchBjI,EAAI,EAAGkI,EAAID,EAAW1H,OAAQP,EAAIkI,EAAGlI,IAAK,CAClD,GAAImI,GAAYF,EAAWjI,EAE3B,IAAImI,EAAW,CACd,GAAIhF,GAAOgF,EAAUhF,IAErB,IAA8B,IAA1BA,EAAKN,QAAQ,SAAgB,CAChC,GAAIuF,GAAOjF,EAAKkF,MAAM,GAAG3F,QAAQ,MAAO,SAAU7C,GACjD,MAAOA,GAAEyI,OAAO,GAAGC,gBAGhBV,EAAQM,EAAUN,KAEtB1G,QAAO8D,eAAe+C,EAAKI,GAC1BhD,YAAY,EACZD,IAAKyC,EAAOY,MAAOX,MAAOA,GAAS,KACnCY,IAAKX,EAAOU,KAAKb,EAASxE,OAM9B,MAAO6E,SLoTFU,GAAG,SAAS3I,EAAQU,EAAOJ,GACjC,cMzWA,SAAWsI,GAC0B,kBAAzBA,GAAaC,UACvBD,EAAaC,QAAUD,EAAaE,mBAAqBF,EAAaG,oBAAsBH,EAAaI,uBAAyB,SAAiBC,GAKlJ,IAJA,GAAIrB,GAAUlF,KACVwG,GAAYtB,EAAQ9F,UAAY8F,EAAQuB,eAAeC,iBAAiBH,GACxEtE,EAAQ,EAELuE,EAASvE,IAAUuE,EAASvE,KAAWiD,KAC3CjD,CAGH,OAAO6C,SAAQ0B,EAASvE,MAIU,kBAAzBiE,GAAaS,UACvBT,EAAaS,QAAU,SAAiBJ,GAGvC,IAFA,GAAIrB,GAAUlF,KAEPkF,GAAgC,IAArBA,EAAQ0B,UAAgB,CACzC,GAAI1B,EAAQiB,QAAQI,GACnB,MAAOrB,EAGRA,GAAUA,EAAQ2B,WAGnB,MAAO,SAGP1H,OAAOQ,QAAQhB,gBN+WZmI,GAAG,SAASxJ,EAAQU,EAAOJ,GACjC,cO9YA,WAwFE,QAASmJ,KACP,KAAM,iBAAmB5H,UACrB,OAAS6H,eAAcrI,UACzB,OAAO,CAIT,IAAIsI,IACFvE,IAAK,SAAUwE,GACb,GAAIC,GAAMC,EAAyBC,KAAKrH,KAAKsH,OAAStH,KAAKuH,QAM3D,OAJIpH,OAAMqH,QAAQL,KAChBA,EAAMA,GAAKnH,KAAKyH,WAGXN,GAIX,OADAzI,QAAO8D,eAAewE,cAAcrI,UAAW,MAAOsI,GAC/CA,EAzGT,GA0EI1J,GA1EA6J,GACFL,SAAUA,EACVM,MACEnI,EAAG,SACH+G,EAAG,OACHyB,EAAG,YACHC,EAAG,MACHC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,UACJC,GAAI,MACJC,GAAI,QACJC,GAAI,WACJC,GAAI,SACJC,GAAI,UACJC,GAAI,aACJC,GAAI,SACJC,GAAI,aACJC,GAAI,IACJC,GAAI,SACJC,GAAI,WACJC,GAAI,MACJC,GAAI,OACJC,GAAI,YACJC,GAAI,UACJC,GAAI,aACJC,GAAI,YACJC,GAAI,SACJC,GAAI,QACJC,GAAI,UACJC,GAAI,cACJC,GAAI,SACJC,GAAI,SACJC,IAAK,IAAK,KACVC,IAAK,IAAK,KACVC,IAAK,IAAK,KACVC,IAAK,IAAK,KACVC,IAAK,IAAK,KACVC,IAAK,IAAK,KACVC,IAAK,IAAK,KACVC,IAAK,IAAK,KACVC,IAAK,IAAK,KACVC,IAAK,IAAK,KACVC,GAAI,KACJC,GAAI,cACJC,IAAK,UACLC,IAAK,aACLC,IAAK,aACLC,IAAK,aACLC,IAAK,WACLC,KAAM,IAAK,KACXC,KAAM,IAAK,KACXC,KAAM,IAAK,KACXC,KAAM,IAAK,KACXC,KAAM,IAAK,KACXC,KAAM,IAAK,KACXC,KAAM,IAAK,KACXC,KAAM,IAAK,KACXC,KAAM,KAAM,KACZC,KAAM,IAAK,KACXC,KAAM,IAAK,KACXC,IAAK,OACLC,IAAK,WACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,WACLC,IAAK,OACLC,IAAK,WAMT,KAAKnO,EAAI,EAAGA,EAAI,GAAIA,IAClB6J,EAAyBC,KAAK,IAAM9J,GAAK,IAAMA,CAIjD,IAAIoO,GAAS,EACb,KAAKpO,EAAI,GAAIA,EAAI,GAAIA,IACnBoO,EAAS7L,OAAO8L,aAAarO,GAC7B6J,EAAyBC,KAAK9J,IAAMoO,EAAOE,cAAeF,EAAO7F,cAyB7C,mBAAXjC,SAAyBA,OAAOC,IACzCD,OAAO,6BAA8BuD,GACT,mBAAZxJ,IAA6C,mBAAXI,GAClDA,EAAOJ,QAAUwJ,EACRjI,SACTA,OAAOiI,yBAA2BA,WPqZhCM,GAAG,SAASpK,EAAQU,EAAOJ,IACjC,SAAWkO,GACX,YQ1YA,SAASC,GAASC,EAAMC,EAAMC,GAuB5B,QAASC,GAAWC,GAClB,GAAIC,GAAOC,EACPtN,EAAUuN,CAKd,OAHAD,GAAWC,EAAWzJ,OACtB0J,EAAiBJ,EACjB/J,EAAS2J,EAAKS,MAAMzN,EAASqN,GAI/B,QAASK,GAAYN,GAMnB,MAJAI,GAAiBJ,EAEjBO,EAAUhI,WAAWiI,EAAcX,GAE5BY,EAAUV,EAAWC,GAAQ/J,EAGtC,QAASyK,GAAcV,GACrB,GAAIW,GAAoBX,EAAOY,EAC3BC,EAAsBb,EAAOI,EAC7BnK,EAAS4J,EAAOc,CAEpB,OAAOG,GAASC,EAAU9K,EAAQ+K,EAAUH,GAAuB5K,EAGrE,QAASgL,GAAajB,GACpB,GAAIW,GAAoBX,EAAOY,EAC3BC,EAAsBb,EAAOI,CAKjC,OAAyB1J,UAAjBkK,GAA+BD,GAAqBd,GACzDc,EAAoB,GAAOG,GAAUD,GAAuBG,EAGjE,QAASR,KACP,GAAIR,GAAOkB,GACX,OAAID,GAAajB,GACRmB,EAAanB,QAGtBO,EAAUhI,WAAWiI,EAAcE,EAAcV,KAGnD,QAASmB,GAAanB,GAKpB,MAJAO,GAAU7J,OAIN0K,GAAYlB,EACPH,EAAWC,IAEpBE,EAAWC,EAAWzJ,OACfT,GAGT,QAASoL,KACS3K,SAAZ6J,GACFe,aAAaf,GAEfH,EAAiB,EACjBF,EAAWU,EAAeT,EAAWI,EAAU7J,OAGjD,QAAS6K,KACP,MAAmB7K,UAAZ6J,EAAwBtK,EAASkL,EAAaD,KAGvD,QAASM,KACP,GAAIxB,GAAOkB,IACPO,EAAaR,EAAajB,EAM9B,IAJAE,EAAWxK,UACXyK,EAAWvM,KACXgN,EAAeZ,EAEXyB,EAAY,CACd,GAAgB/K,SAAZ6J,EACF,MAAOD,GAAYM,EAErB,IAAIE,EAGF,MADAP,GAAUhI,WAAWiI,EAAcX,GAC5BE,EAAWa,GAMtB,MAHgBlK,UAAZ6J,IACFA,EAAUhI,WAAWiI,EAAcX,IAE9B5J,EAlHT,GAAIiK,GACAC,EACAa,EACA/K,EACAsK,EACAK,EACAR,EAAiB,EACjBK,GAAU,EACVK,GAAS,EACTM,GAAW,CAEf,IAAmB,kBAARxB,GACT,KAAM,IAAI3N,WAAUyP,EA0GtB,OAxGA7B,GAAO8B,EAAS9B,IAAS,EACrB+B,EAAS9B,KACXW,IAAYX,EAAQW,QACpBK,EAAS,WAAahB,GACtBkB,EAAUF,EAASe,EAAUF,EAAS7B,EAAQkB,UAAY,EAAGnB,GAAQmB,EACrEI,EAAW,YAActB,KAAYA,EAAQsB,SAAWA,GAiG1DI,EAAUH,OAASA,EACnBG,EAAUD,MAAQA,EACXC,EA4BT,QAASI,GAAS5I,GAChB,GAAI5E,GAAA,mBAAc4E,GAAd,YAAA7B,EAAc6B,EAClB,SAASA,IAAkB,UAAR5E,GAA4B,YAARA,GA2BzC,QAAS0N,GAAa9I,GACpB,QAASA,GAAyB,WAAhB,mBAAOA,GAAP,YAAA7B,EAAO6B,IAoB3B,QAAS+I,GAAS/I,GAChB,MAAuB,WAAhB,mBAAOA,GAAP,YAAA7B,EAAO6B,KACX8I,EAAa9I,IAAUgJ,EAAevQ,KAAKuH,IAAUiJ,EA0B1D,QAASN,GAAS3I,GAChB,GAAoB,gBAATA,GACT,MAAOA,EAET,IAAI+I,EAAS/I,GACX,MAAOkJ,EAET,IAAIN,EAAS5I,GAAQ,CACnB,GAAImJ,GAAgC,kBAAjBnJ,GAAMoJ,QAAwBpJ,EAAMoJ,UAAYpJ,CACnEA,GAAQ4I,EAASO,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,gBAATnJ,GACT,MAAiB,KAAVA,EAAcA,GAASA,CAEhCA,GAAQA,EAAMnF,QAAQwO,EAAQ,GAC9B,IAAIC,GAAWC,EAAW5N,KAAKqE,EAC/B,OAAQsJ,IAAYE,EAAU7N,KAAKqE,GAC/ByJ,EAAazJ,EAAMQ,MAAM,GAAI8I,EAAW,EAAI,GAC3CI,EAAW/N,KAAKqE,GAASkJ,GAAOlJ,ERyJvC,GAAI7B,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAO7E,UAAY,eAAkB+E,IQpgBlQoK,EAAkB,sBAGlBQ,EAAM,IAGND,EAAY,kBAGZI,EAAS,aAGTK,EAAa,qBAGbH,EAAa,aAGbC,EAAY,cAGZC,EAAeE,SAGfC,EAA8B,WAAjB,mBAAOlD,GAAP,YAAAvI,EAAOuI,KAAsBA,GAAUA,EAAOpN,SAAWA,QAAUoN,EAGhFmD,EAA0B,WAAf,mBAAO9Q,MAAP,YAAAoF,EAAOpF,QAAoBA,MAAQA,KAAKO,SAAWA,QAAUP,KAGxE+Q,EAAOF,GAAcC,GAAYE,SAAS,iBAG1CC,EAAc1Q,OAAOC,UAOrByP,EAAiBgB,EAAY5N,SAG7ByM,EAAYoB,KAAKC,IACjBnC,EAAYkC,KAAKE,IAkBjBjC,EAAM,WACR,MAAO4B,GAAKM,KAAKlC,MA+SnBtP,GAAOJ,QAAUmO,IR8gBdlO,KAAKmC,KAAuB,mBAAX8L,QAAyBA,OAAyB,mBAAT3N,MAAuBA,KAAyB,mBAAXgB,QAAyBA,gBAErHwI,GAAG,SAASrK,EAAQU,EAAOJ,GSl4BjC,YAMA,SAAS6R,GAASjR,GACjB,GAAY,OAARA,GAAwBsE,SAARtE,EACnB,KAAM,IAAIH,WAAU,wDAGrB,OAAOK,QAAOF,GAGf,QAASkR,KACR,IACC,IAAKhR,OAAOiR,OACX,OAAO,CAMR,IAAIC,GAAQ,GAAI9P,QAAO,MAEvB,IADA8P,EAAM,GAAK,KACkC,MAAzClR,OAAOmR,oBAAoBD,GAAO,GACrC,OAAO,CAKR,KAAK,GADDE,MACKvS,EAAI,EAAGA,EAAI,GAAIA,IACvBuS,EAAM,IAAMhQ,OAAO8L,aAAarO,IAAMA,CAEvC,IAAIwS,GAASrR,OAAOmR,oBAAoBC,GAAOvK,IAAI,SAAUvI,GAC5D,MAAO8S,GAAM9S,IAEd,IAAwB,eAApB+S,EAAOxN,KAAK,IACf,OAAO,CAIR,IAAIyN,KAIJ,OAHA,uBAAuB3O,MAAM,IAAIpC,QAAQ,SAAU0M,GAClDqE,EAAMrE,GAAUA,IAGf,yBADEjN,OAAO2I,KAAK3I,OAAOiR,UAAWK,IAAQzN,KAAK,IAM9C,MAAO0N,GAER,OAAO,GApDT,GAAIC,GAAwBxR,OAAOwR,sBAC/BtR,EAAiBF,OAAOC,UAAUC,eAClCuR,EAAmBzR,OAAOC,UAAUyR,oBAsDxCpS,GAAOJ,QAAU8R,IAAoBhR,OAAOiR,OAAS,SAAUU,EAAQC,GAKtE,IAAK,GAJDC,GAEAC,EADAC,EAAKhB,EAASY,GAGTnT,EAAI,EAAGA,EAAI4E,UAAUhE,OAAQZ,IAAK,CAC1CqT,EAAO7R,OAAOoD,UAAU5E,GAExB,KAAK,GAAIiK,KAAOoJ,GACX3R,EAAef,KAAK0S,EAAMpJ,KAC7BsJ,EAAGtJ,GAAOoJ,EAAKpJ,GAIjB,IAAI+I,EAAuB,CAC1BM,EAAUN,EAAsBK,EAChC,KAAK,GAAIhT,GAAI,EAAGA,EAAIiT,EAAQ1S,OAAQP,IAC/B4S,EAAiBtS,KAAK0S,EAAMC,EAAQjT,MACvCkT,EAAGD,EAAQjT,IAAMgT,EAAKC,EAAQjT,MAMlC,MAAOkT,ST44BFC,IAAI,SAASpT,EAAQU,EAAOJ,GAClC,YAEA,IAAI2F,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAO7E,UAAY,eAAkB+E,IUv+BhQiM,EAASrS,EAAQ,iBACjBqT,EAAWrT,EAAQ,eACnBsT,EAActT,EAAQ,kBAEtBuT,EAAmB,0BACnBC,EAAQ,IAERC,EAAe,SAASvQ,EAAMwQ,GAClC,GACIzK,GADA0K,EAAQzQ,EAAKyQ,MAAMJ,EAEnBI,KACFzQ,EAAOyQ,EAAM,GACb1K,EAAW0K,EAAM,GAGnB,IAAI/E,EACmB,aAAnB,mBAAO8E,GAAP,YAAAzN,EAAOyN,MACT9E,GACEgF,QAASC,EAAOH,EAAS,WACzBI,QAASD,EAAOH,EAAS,YAI7B,IAAIK,IACF9K,SAAUA,EACVoK,SAA8B,YAAnB,mBAAOK,GAAP,YAAAzN,EAAOyN,IACdJ,EAAYI,GACZzK,EACEoK,EAASpK,EAAUyK,GACnBA,EACN9E,QAASA,EAGX,OAAI1L,GAAKJ,QAAQ0Q,MACRtQ,EAAKa,MAAMyP,GAAOvL,IAAI,SAAS+L,GACpC,MAAO3B,IAAQnP,KAAM8Q,GAAQD,MAG/BA,EAAS7Q,KAAOA,GACR6Q,KAIRF,EAAS,SAASzN,EAAKyD,GACzB,GAAI/B,GAAQ1B,EAAIyD,EAEhB,cADOzD,GAAIyD,GACJ/B,EAGTpH,GAAOJ,QAAU,SAAkB2T,EAAQC,GACzC,GAAMC,GAAY/S,OAAO2I,KAAKkK,GAC3BG,OAAO,SAASC,EAAMnR,GACrB,GAAIiR,GAAYV,EAAavQ,EAAM+Q,EAAO/Q,GAC1C,OAAOmR,GAAKC,OAAOH,OAGvB,OAAO9B,IACL/N,IAAK,SAAqBsD,GACxBuM,EAAUxS,QAAQ,SAASoS,GACzBnM,EAAQV,iBACN6M,EAAS7Q,KACT6Q,EAASV,SACTU,EAASnF,YAIflK,OAAQ,SAAwBkD,GAC9BuM,EAAUxS,QAAQ,SAASoS,GACzBnM,EAAQT,oBACN4M,EAAS7Q,KACT6Q,EAASV,SACTU,EAASnF,aAIdsF,MV+9BFK,cAAc,GAAGC,iBAAiB,GAAGC,gBAAgB,IAAIC,IAAI,SAAS1U,EAAQU,EAAOJ,GACxF,YW3iCAI,GAAOJ,QAAU,SAAiBqU,GAChC,MAAO,UAASnV,GACd,MAAOmV,GAAUC,KAAK,SAAShU,GAC7B,MAAOA,GAAGL,KAAKmC,KAAMlD,MAAO,GAC3BkD,aXijCD4H,IAAI,SAAStK,EAAQU,EAAOJ,GAClC,YYrjCAN,GAAQ,mBAERU,EAAOJ,QAAU,SAAkB2I,EAAUrI,GAC3C,MAAO,UAAoBiU,GACzB,GAAI9B,GAAS8B,EAAM9B,OAAO1J,QAAQJ,EAClC,IAAI8J,EACF,MAAOnS,GAAGL,KAAKwS,EAAQ8B,OZ6jC1BC,kBAAkB,IAAIvK,IAAI,SAASvK,EAAQU,EAAOJ,GACrD,YarkCA,IAAM+S,GAAWrT,EAAQ,eACnB+U,EAAU/U,EAAQ,cAElBgV,EAAQ,GAEdtU,GAAOJ,QAAU,SAAqB2U,GACpC,GAAMlL,GAAO3I,OAAO2I,KAAKkL,EAKzB,IAAoB,IAAhBlL,EAAKvJ,QAAgBuJ,EAAK,KAAOiL,EACnC,MAAOC,GAAUD,EAGnB,IAAME,GAAYnL,EAAKqK,OAAO,SAASC,EAAMpL,GAE3C,MADAoL,GAAKlT,KAAKkS,EAASpK,EAAUgM,EAAUhM,KAChCoL,MAET,OAAOU,GAAQG,Mb0kCdC,aAAa,GAAGZ,cAAc,KAAKa,IAAI,SAASpV,EAAQU,EAAOJ,GAClE,Yc9lCAI,GAAOJ,QAAU,SAAgBsH,EAAShH,GACxC,MAAO,UAAmBpB,GACxB,GAAIoI,IAAYpI,EAAEuT,SAAWnL,EAAQvD,SAAS7E,EAAEuT,QAC9C,MAAOnS,GAAGL,KAAKmC,KAAMlD,UdqmCrB6V,IAAI,SAASrV,EAAQU,EAAOJ,GAClC,YezmCAI,GAAOJ,SACLgV,SAActV,EAAQ,cACtBqT,SAAcrT,EAAQ,cACtBsT,YAActT,EAAQ,iBACtBuV,OAAcvV,EAAQ,YACtBwV,OAAcxV,EAAQ,ef8mCrByV,aAAa,GAAGC,aAAa,GAAGC,gBAAgB,GAAGC,WAAW,GAAGC,WAAW,KAAKrL,IAAI,SAASxK,EAAQU,EAAOJ,GAChH,YgBpnCAN,GAAQ,6BAKR,IAAM8V,IACJC,IAAY,SACZC,QAAY,UACZC,KAAY,UACZC,MAAY,YAGRC,EAAqB,IAErBC,EAAc,SAASvB,EAAOwB,GAClC,GAAIxM,GAAMgL,EAAMhL,GAChB,IAAIwM,EACF,IAAK,GAAIC,KAAYR,GACfjB,EAAMiB,EAAUQ,OAAe,IACjCzM,GAAOyM,EAAUzM,GAAK5E,KAAKkR,GAIjC,OAAOtM,GAGTnJ,GAAOJ,QAAU,SAAgByJ,GAC/B,GAAMsM,GAAejV,OAAO2I,KAAKA,GAAM6K,KAAK,SAAS/K,GACnD,MAAOA,GAAI/G,QAAQqT,OAErB,OAAO,UAAStB,GACd,GAAIhL,GAAMuM,EAAYvB,EAAOwB,EAC7B,QAAQxM,EAAKA,EAAI0E,eACd6F,OAAO,SAASrP,EAAQwR,GAIvB,MAHIA,KAAQxM,KACVhF,EAASgF,EAAKF,GAAKtJ,KAAKmC,KAAMmS,IAEzB9P,GACNS,UAIT9E,EAAOJ,QAAQwV,UAAYA,IhBunCxBU,6BAA6B,IAAI/L,IAAI,SAASzK,EAAQU,EAAOJ,GAChE,YiBlqCAI,GAAOJ,QAAU,SAAcyT,EAAUnF,GACvC,GAAI6H,GAAU,SAAqBjX,GAEjC,MADAA,GAAEkX,cAAcvP,oBAAoB3H,EAAE0D,KAAMuT,EAAS7H,GAC9CmF,EAASxT,KAAKmC,KAAMlD,GAE7B,OAAOiX,SjBuqCH/L,IAAI,SAAS1K,EAAQU,EAAOJ,GkB5qClC,YlB+qCA,IAAI2F,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAO7E,UAAY,eAAkB+E,IkB7qClQuQ,EAAU,iBACVC,EAAW,MAEXnU,EAAOD,OAAOnB,UAAUoB,KACxB,SAASoU,GAAO,MAAOA,GAAIpU,QAC3B,SAASoU,GAAO,MAAOA,GAAIlU,QAAQgU,EAAS,KAE5CG,EAAY,SAASC,GACvB,MAAOrU,MAAKsU,cAAc,QAAUD,EAAGpU,QAAQ,KAAM,OAAS,MAGhEjC,GAAOJ,QAAU,SAAoB2W,EAAKtQ,GACxC,GAAmB,gBAARsQ,GACT,KAAM,IAAI9W,OAAM,8BAAA,mBAAuC8W,GAAvC,YAAAhR,EAAuCgR,IAGpDtQ,KACHA,EAAM9E,OAAOC,SAGf,IAAIoV,GAAiBvQ,EAAIuQ,eACrBvQ,EAAIuQ,eAAezO,KAAK9B,GACxBmQ,EAAUrO,KAAK9B,EAOnB,OALAsQ,GAAMxU,EAAKwU,GAAKlT,MAAM6S,GAKH,IAAfK,EAAIzW,QAA2B,KAAXyW,EAAI,MAIrBA,EACJhP,IAAI,SAAS8O,GACZ,GAAII,GAAKD,EAAeH,EACxB,KAAKI,EACH,KAAM,IAAIhX,OAAM,wBAA0B4W,EAAK,IAEjD,OAAOI,WlBkrCPxM,IAAI,SAAS3K,EAAQU,EAAOJ,GAClC,YAEA,SAAS8W,GAAgBhR,EAAKyD,EAAK/B,GAAiK,MAApJ+B,KAAOzD,GAAOhF,OAAO8D,eAAekB,EAAKyD,GAAO/B,MAAOA,EAAOzC,YAAY,EAAMC,cAAc,EAAM+R,UAAU,IAAkBjR,EAAIyD,GAAO/B,EAAgB1B,EmB9tC3M,GAAMiM,GAASrS,EAAQ,iBACjBc,EAASd,EAAQ,gBACjB2B,EAAU3B,EAAQ,iBAClBsV,EAAWtV,EAAQ,qBACnB6E,EAAS7E,EAAQ,mBACjBsX,EAAsBtX,EAAQ,2BnBkuChCuX,EmBjuCcvX,EAAQ,aAAlBwX,EnBkuCID,EmBluCJC,MnBouCJC,EmBnuCuBzX,EAAQ,aAAnB0X,EnBouCHD,EmBpuCLE,OAGFC,EAAA,IAAgBF,EAAhB,gBAAsCA,EAAtC,sBACAG,EAAA,IAAaH,EAAb,mCACAI,EAAW,gBACXC,EAAkB,uBAQlBC,EAAsB,SAACC,GAC3B,GAAMC,GAAUD,EAAU7O,iBAAiByO,EAE3C,OAAO/W,GAAOoX,EAAS,SAAAC,GAAA,MAAUA,GAAO9O,QAAQuO,KAAeK,KAY3DG,EAAe,SAACD,EAAQE,GAC5B,GAAMJ,GAAYE,EAAO9O,QAAQuO,GAC7BU,EAAeD,CACnB,KAAKJ,EACH,KAAM,IAAI9X,OAAS0X,EAAb,qBAAwCD,EAGhDU,GAAezT,EAAOsT,EAAQE,EAG9B,IAAME,GAA8D,SAA5CN,EAAUpU,aAAakU,EAE3CO,KAAiBC,GACnB5W,EAAQqW,EAAoBC,GAAY,SAAChH,GACnCA,IAAUkH,GACZtT,EAAOoM,GAAO,MAUhBuH,EAAa,SAAAL,GAAA,MAAUC,GAAaD,GAAQ,IAM5CM,EAAa,SAAAN,GAAA,MAAUC,GAAaD,GAAQ,IAE5CF,EAAY3C,EAAA8B,KACfI,EADeJ,KAEbS,EAFa,SAELhD,GACPA,EAAM6D,iBACNN,EAAa1V,MAEuB,SAAhCA,KAAKmB,aAAaiU,KAIfR,EAAoB5U,OAAOA,KAAKiW,sBAK3CC,KADC,SACIhH,GACHjQ,EAAQiQ,EAAKxI,iBAAiByO,GAAS,SAACM,GACtC,GAAME,GAA6C,SAAlCF,EAAOtU,aAAaiU,EACrCM,GAAaD,EAAQE,MAGzBT,UAAAA,EACAC,OAAAA,EACAgB,KAAML,EACNM,KAAML,EACN5T,OAAQuT,EACRW,WAAYf,IASRgB,EAAY,SAAUpH,GAC1BlP,KAAKkP,KAAOA,EACZqG,EAAUgB,GAAGvW,KAAKkP,MAIpBS,GAAO2G,EAAWf,GAElBe,EAAU3X,UAAUwX,KAAOL,EAC3BQ,EAAU3X,UAAUyX,KAAOL,EAE3BO,EAAU3X,UAAUqD,OAAS,WAC3BuT,EAAUiB,IAAIxW,KAAKkP,OAGrBlR,EAAOJ,QAAU0Y,InB2uCdG,YAAY,GAAGC,YAAY,GAAGC,oBAAoB,GAAGC,0BAA0B,GAAGC,kBAAkB,GAAGC,eAAe,EAAEC,gBAAgB,EAAEhF,gBAAgB,IAAI7J,IAAI,SAAS5K,EAAQU,EAAOJ,GAC7L,YAEA,SAAS8W,GAAgBhR,EAAKyD,EAAK/B,GAAiK,MAApJ+B,KAAOzD,GAAOhF,OAAO8D,eAAekB,EAAKyD,GAAO/B,MAAOA,EAAOzC,YAAY,EAAMC,cAAc,EAAM+R,UAAU,IAAkBjR,EAAIyD,GAAO/B,EAAgB1B,EoBr2C3M,GAAMkP,GAAWtV,EAAQ,qBpBy2CrBuX,EoBv2CcvX,EAAQ,aAAlBwX,EpBw2CID,EoBx2CJC,MpB02CJC,EoBz2CuBzX,EAAQ,aAAnB0X,EpB02CHD,EoB12CLE,OAEF+B,EAAA,IAAahC,EAAb,iBACAiC,EAAoBjC,EAApB,0BAEAkC,EAAe,SAAkB/E,GAIrC,MAHAA,GAAM6D,iBACNhW,KAAK2G,QAAQqQ,GAAQnW,UAAUsB,OAAO8U,IAE/B,EAGTjZ,GAAOJ,QAAUgV,EAAA8B,KACdI,EADcJ,KAETsC,EAFS,mBAEkBE,OpB02ChCT,YAAY,GAAGC,YAAY,GAAGC,oBAAoB,KAAKQ,IAAI,SAAS7Z,EAAQU,EAAOJ,GACtF,YAEA,SAAS8W,GAAgBhR,EAAKyD,EAAK/B,GAAiK,MAApJ+B,KAAOzD,GAAOhF,OAAO8D,eAAekB,EAAKyD,GAAO/B,MAAOA,EAAOzC,YAAY,EAAMC,cAAc,EAAM+R,UAAU,IAAkBjR,EAAIyD,GAAO/B,EAAgB1B,EqB52C3M,QAAS0T,KACP,GAAIjY,OAAOkY,WAAaC,EAAgB,CACtC,GAAMC,GAAOvX,KAAK2G,QAAQ6Q,EAC1BD,GAAK1W,UAAUsB,OAAOsV,EAItB,IAAMC,GAAQH,EAAK5Q,QAAQgR,GACxBjR,iBAAiB,KAEpBzH,GAAQyY,EAAO,SAACjD,GACVA,IAAO8C,GACT9C,EAAG5T,UAAUe,IAAI6V,MA7BzB,GAAM1L,GAAWzO,EAAQ,mBACnB2B,EAAU3B,EAAQ,iBAClBsV,EAAWtV,EAAQ,qBACnBsa,EAASta,EAAQ,mBrBi4CnBuX,EqB/3CcvX,EAAQ,aAAlBwX,ErBg4CID,EqBh4CJC,MrBk4CJC,EqBj4CuBzX,EAAQ,aAAnB0X,ErBk4CHD,EqBl4CLE,OAEFwC,EAAS,SACTI,EAAA,IAAY7C,EAAZ,cACA2C,EAASE,EAAT,OACA1C,EAAYwC,EAAZ,KAAoB3C,EAApB,uBACAwC,EAAUG,EAAV,MAEAL,EAAiB,IACjBQ,EAAgB,IAoBhBC,EAAShM,EAAS,WACtB,GAAMiM,GAAS7Y,OAAOkY,WAAaC,CACnCrY,GAAQ2Y,EAAOJ,GAAO,SAACD,GACrBA,EAAK1W,UAAUsB,OAAOsV,EAAQO,MAE/BF,EAEH9Z,GAAOJ,QAAUgV,EAAA8B,KACdI,EADcJ,KAEZS,EAASiC,KAIZE,eAAAA,EACAQ,cAAAA,EAEA5B,KALC,WAMC6B,IACA5Y,OAAOqF,iBAAiB,SAAUuT,IAGpCE,SAVC,WAWC9Y,OAAOsF,oBAAoB,SAAUsT,QrBg4CtCtB,YAAY,GAAGC,YAAY,GAAGC,oBAAoB,GAAGuB,kBAAkB,GAAGnB,gBAAgB,EAAEoB,kBAAkB,IAAIC,IAAI,SAAS9a,EAAQU,EAAOJ,GACjJ,YsB37CA,IAAM2X,GAAYjY,EAAQ,eACpB+a,EAAS/a,EAAQ,YACjBgb,EAAShb,EAAQ,YACjBib,EAAajb,EAAQ,gBACrBkb,EAAWlb,EAAQ,cACnBmb,EAASnb,EAAQ,YACjBob,EAAUpb,EAAQ,aAClBqb,EAAYrb,EAAQ,cAE1BU,GAAOJ,SACL2X,UAAAA,EACA8C,OAAAA,EACAC,OAAAA,EACAC,WAAAA,EACAC,SAAAA,EACAC,OAAAA,EACAC,QAAAA,EACAC,UAAAA,KtBg8CCC,cAAc,GAAGC,WAAW,GAAGC,WAAW,GAAGC,eAAe,GAAGC,aAAa,GAAGC,WAAW,GAAGC,YAAY,GAAGC,cAAc,KAAKC,IAAI,SAAS9b,EAAQU,EAAOJ,GAC9J,YAIA,SAAS8W,GAAgBhR,EAAKyD,EAAK/B,GAAiK,MAApJ+B,KAAOzD,GAAOhF,OAAO8D,eAAekB,EAAKyD,GAAO/B,MAAOA,EAAOzC,YAAY,EAAMC,cAAc,EAAM+R,UAAU,IAAkBjR,EAAIyD,GAAO/B,EAAgB1B,EAF3M,GAAI2V,GuBp9CE1J,EAASrS,EAAQ,iBACjB2B,EAAU3B,EAAQ,iBAClBsV,EAAWtV,EAAQ,qBACnBsa,EAASta,EAAQ,mBACjBgc,EAAYhc,EAAQ,uBACpBiY,EAAYjY,EAAQ,evB09CtBuX,EuBx9CcvX,EAAQ,aAAlBwX,EvBy9CID,EuBz9CJC,MvB29CJC,EuB19CuBzX,EAAQ,aAAnB0X,EvB29CHD,EuB39CLE,OAEF0C,EAAA,IAAU3C,EAAV,OACAuE,EAAe5B,EAAf,KACA6B,EAAA,IAAcxE,EAAd,YACAyE,EAAA,IAAmBzE,EAAnB,aACA0E,EAAA,IAAc1E,EAAd,WACA2E,EAAaF,EAAb,MAA+BzE,EAA/B,WACA4E,GAAWjC,EAAK+B,GAASnX,KAAK,MAE9BsX,EAAe,wBACfC,EAAgB,aAElBvB,EAAA,OAEEwB,EAAW,WAAA,MAAM3a,UAAS4a,KAAKnZ,UAAUc,SAASkY,IAElDI,EAAY,SAAUC,GAAQ,GAAAC,GACjB/a,SAAT4a,EAD0BG,EAC1BH,KACFI,EAA+B,iBAAXF,GAAuBA,GAAUH,GAE3DC,GAAKnZ,UAAUsB,OAAO0X,EAAcO,GAEpCnb,EAAQ2Y,EAAOgC,GAAU,SAAAnF,GAAA,MAAMA,GAAG5T,UAAUsB,OAAO2X,EAAeM,KAElE7B,EAAW8B,UAAUC,OAAOF,EAE5B,IAAMG,GAAcP,EAAK1F,cAAcmF,GACjCe,EAAaR,EAAK1F,cAAckF,EAetC,OAbIY,IAAcG,EAGhBA,EAAYE,SACFL,GAAchb,SAASsb,gBAAkBH,GAAeC,GAMlEA,EAAWC,QAGNL,GAGHrC,EAAS,WACb,GAAM4C,GAASvb,SAAS4a,KAAK1F,cAAcmF,EAEvCM,MAAcY,GAAmD,IAAzCA,EAAOC,wBAAwBC,OAKzDtC,EAAW0B,UAAUpc,KAAK8c,GAAQ,IAIhCG,EAAc,WAAA,MAAMvC,GAAW0B,UAAUpc,KAAK0a,GAAY,GAEhEA,GAAa3F,EAAA8B,KACVI,GADUuE,KAAA3E,EAAA2E,EAERG,EAAUS,GAFFvF,EAAA2E,EAGRM,EAAUM,GAHFvF,EAAA2E,EAIRE,EAJQ,WAWP,GAAMwB,GAAM/a,KAAK2G,QAAQ4O,EAAUL,UAE/B6F,IACFxF,EAAUc,WAAW0E,GAAK9b,QAAQ,SAAA+b,GAAA,MAAOzF,GAAUa,KAAK4E,KAItDjB,KACFxB,EAAW0B,UAAUpc,KAAK0a,GAAY,KAnBjCc,KAwBXnD,KADC,WAEC,GAAM+E,GAAgB7b,SAASkV,cAAcqD,EAEzCsD,KACF1C,EAAW8B,UAAYf,EAAU2B,GAC/BC,OAAQJ,KAIZ/C,IACA5Y,OAAOqF,iBAAiB,SAAUuT,GAAQ,IAE5CE,SAbC,WAcC9Y,OAAOsF,oBAAoB,SAAUsT,GAAQ,IAE/CsC,UAAW,KACXJ,UAAAA,IAQFjc,EAAOJ,QAAU+R,EACf,SAAA8E,GAAA,MAAM8D,GAAWhC,GAAG9B,IACpB8D,KvBk+CC9B,YAAY,GAAGC,YAAY,GAAGC,oBAAoB,GAAGwE,sBAAsB,GAAGjD,kBAAkB,GAAGU,cAAc,GAAG7B,gBAAgB,EAAEhF,gBAAgB,IAAIqJ,IAAI,SAAS9d,EAAQU,EAAOJ,GACzL,YAEA,SAAS8W,GAAgBhR,EAAKyD,EAAK/B,GAAiK,MAApJ+B,KAAOzD,GAAOhF,OAAO8D,eAAekB,EAAKyD,GAAO/B,MAAOA,EAAOzC,YAAY,EAAMC,cAAc,EAAM+R,UAAU,IAAkBjR,EAAIyD,GAAO/B,EAAgB1B,EwBllD3M,QAASvB,GAAOgQ,GACdA,EAAM6D,iBACNqF,EAAgBrb,MAVlB,GAAM4S,GAAWtV,EAAQ,qBACnB+d,EAAkB/d,EAAQ,8BxB8lD5BuX,EwB5lDcvX,EAAQ,aAAlBwX,ExB6lDID,EwB7lDJC,MxB+lDJC,EwB9lDuBzX,EAAQ,aAAnB0X,ExB+lDHD,EwB/lDLE,OAEFqG,EAAA,IAAWtG,EAAX,oBAAqCA,EAArC,qBAONhX,GAAOJ,QAAUgV,EAAA8B,KACdI,EADcJ,KAEZ4G,EAAOnZ,OxB+lDTsU,YAAY,GAAGC,YAAY,GAAGC,oBAAoB,GAAG4E,6BAA6B,KAAKC,IAAI,SAASle,EAAQU,EAAOJ,GACtH,YAEA,SAAS8W,GAAgBhR,EAAKyD,EAAK/B,GAAiK,MAApJ+B,KAAOzD,GAAOhF,OAAO8D,eAAekB,EAAKyD,GAAO/B,MAAOA,EAAOzC,YAAY,EAAMC,cAAc,EAAM+R,UAAU,IAAkBjR,EAAIyD,GAAO/B,EAAgB1B,EyBljD3M,QAAS+X,KACPC,EAAa1b,MAAM,GACnB2b,EAAa3b,KAGf,QAAS4b,KACPF,EAAa1b,MAAM,GACnB2b,EAAa7Y,OAtEf,GAAM6M,GAASrS,EAAQ,iBACjB2B,EAAU3B,EAAQ,iBAClBuV,EAASvV,EAAQ,mBACjBsV,EAAWtV,EAAQ,qBACnBsa,EAASta,EAAQ,mBzBqnDnBuX,EyBnnDcvX,EAAQ,aAAlBwX,EzBonDID,EyBpnDJC,MAEFK,EAAS,oBACT0G,EAAO,kBACPC,EAAQ,gBACRC,EAAU,SAEZJ,EAAA,OAEEK,EAAU,SAACvG,GACf,GAAMwG,GAAUxG,EAAO9O,QAAQoV,EAC/B,OAAOE,GACHA,EAAQ3H,cAAcuH,GACtBzc,SAASkV,cAAcuH,IAGvBH,EAAe,SAACjG,EAAQyE,GAC5B,GAAMgC,GAAOF,EAAQvG,EAErB,KAAKyG,EACH,KAAM,IAAIze,OAAJ,MAAgBoe,EAAhB,+BAAmDE,EAAnD,IAQR,IAJAtG,EAAOuC,OAASkC,EAChBgC,EAAKlE,QAAUkC,EAGVA,EAAL,CAIA,GAAMiC,GAAQD,EAAK5H,cAAcwH,EAE7BK,IACFA,EAAM1B,OAIR,IAAMpJ,GAAWwB,EAAOqJ,EAAM,WACxBP,GACFC,EAAW/d,KAAK8d,GAGlBvc,SAAS4a,KAAKvV,oBAAoBqQ,EAAOzD,IAQ3C1M,YAAW,WACTvF,SAAS4a,KAAKxV,iBAAiBsQ,EAAOzD,IACrC,KAaCoH,EAAS7F,EAAA8B,KACZI,EADYJ,KAEVS,EAASsG,KAGZvF,KADC,SACI7F,GACHpR,EAAQ2Y,EAAOzC,EAAQ9E,GAAS,SAACoF,GAC/BiG,EAAajG,GAAQ,MAGzBwC,SANC,WAQC0D,EAAa7Y,SAUjB9E,GAAOJ,QAAU+R,EACf,SAAA8E,GAAA,MAAMgE,GAAOlC,GAAG9B,IAChBgE,KzBgnDC/B,YAAY,GAAGC,oBAAoB,GAAGuB,kBAAkB,GAAGnB,gBAAgB,EAAEhF,gBAAgB,EAAEqK,kBAAkB,KAAKC,IAAI,SAAS/e,EAAQU,EAAOJ,GACrJ,YAEA,SAAS8W,GAAgBhR,EAAKyD,EAAK/B,GAAiK,MAApJ+B,KAAOzD,GAAOhF,OAAO8D,eAAekB,EAAKyD,GAAO/B,MAAOA,EAAOzC,YAAY,EAAMC,cAAc,EAAM+R,UAAU,IAAkBjR,EAAIyD,GAAO/B,EAAgB1B,E0B3sD3M,QAAS4Y,KAGP,GAAMjI,GAAKrU,KAAKmB,aAAa,QACvBkP,EAASjR,SAASoV,eAAuB,MAAPH,EAAckI,EAAclI,EAAGzO,MAAM,GAEzEyK,KACFA,EAAOmM,MAAMC,QAAU,IACvBpM,EAAO9O,aAAa,WAAY,GAChC8O,EAAOoK,QACPpK,EAAO7L,iBAAiB,OAAQkY,EAAK,WACnCrM,EAAO9O,aAAa,mBApB1B,GAAMmb,GAAOpf,EAAQ,iBACfsV,EAAWtV,EAAQ,qB1BwtDrBuX,E0BttDcvX,EAAQ,aAAlBwX,E1ButDID,E0BvtDJC,M1BytDJC,E0BxtDuBzX,EAAQ,aAAnB0X,E1BytDHD,E0BztDLE,OAEFqG,EAAA,IAAWtG,EAAX,yBAA0CA,EAA1C,oCACAuH,EAAc,cAoBpBve,GAAOJ,QAAUgV,EAAA8B,KACdI,EADcJ,KAEZ4G,EAAOgB,O1BytDT7F,YAAY,GAAGC,YAAY,GAAGC,oBAAoB,GAAGgG,gBAAgB,KAAKxU,IAAI,SAAS7K,EAAQU,EAAOJ,GACzG,Y2BpvDA,SAASgf,KACPC,EAAS7c,MALX,GAAM2P,GAASrS,EAAQ,iBACjBsV,EAAWtV,EAAQ,qBACnBuf,EAAWvf,EAAQ,2BAMnBqb,EAAY/F,GAChBkK,gBACEC,iCAAkCH,IAUtC5e,GAAOJ,QAAU+R,EACf,SAAA8E,GAAA,MAAMkE,GAAUpC,GAAG9B,IACnBkE,K3B4vDChC,oBAAoB,GAAGqG,0BAA0B,GAAGjL,gBAAgB,IAAI3J,IAAI,SAAS9K,EAAQU,EAAOJ,GACvG,Y4BnxDAI,GAAOJ,SACLqX,OAAQ,Y5BwxDJ5M,IAAI,SAAS/K,EAAQU,EAAOJ,GAClC,Y6B1xDAI,GAAOJ,SAaLkX,MAAO,c7B+xDHxM,IAAI,SAAShL,EAAQU,EAAOJ,GAClC,Y8B5yDA,IAAMqf,GAAU9d,OAAO+d,YAAYve,UAC7B8Y,EAAS,QAETA,KAAUwF,IACdve,OAAO8D,eAAeya,EAASxF,GAC7B/U,IADqC,WAEnC,MAAO1C,MAAKmd,aAAa1F,IAE3BzR,IAJqC,SAIjCZ,GACEA,EACFpF,KAAKuB,aAAakW,EAAQ,IAE1BzX,KAAKsF,gBAAgBmS,W9BozDvBlP,IAAI,SAASjL,EAAQU,EAAOJ,GAClC,Y+Bh0DAN,GAAQ,sBAERA,EAAQ,sB/Bq0DL8f,mBAAmB,GAAGC,qBAAqB,IAAI7U,IAAI,SAASlL,EAAQU,EAAOJ,GAC9E,YgCz0DA,IAAM0f,GAAWhgB,EAAQ,WAMzBA,GAAQ,cAER,IAAMigB,GAAQjgB,EAAQ,YAEhBkgB,EAAalgB,EAAQ,eAE3BigB,GAAMC,WAAaA,EAEnBF,EAAS,WACP,GAAMjN,GAASjR,SAAS4a,IACxBtb,QAAO2I,KAAKmW,GACTve,QAAQ,SAACkI,GACR,GAAMyL,GAAW4K,EAAWrW,EAC5ByL,GAAS2D,GAAGlG,OAIlBrS,EAAOJ,QAAU2f,IhC40DdE,eAAe,GAAGC,WAAW,GAAGC,cAAc,GAAGL,SAAW,IAAI7U,IAAI,SAASnL,EAAQU,EAAOJ,GAC/F,YiCr2DAI,GAAOJ,QAAU,WAAA,GAACggB,GAAD9b,UAAAhE,OAAA,GAAAgF,SAAAhB,UAAA,GAAAA,UAAA,GAAgB1C,QAAhB,OAA6Bwe,GAAalD,oBjC42DrDhS,IAAI,SAASpL,EAAQU,EAAOJ,GAClC,YkC72DA,IAAM+R,GAASrS,EAAQ,iBACjB2B,EAAU3B,EAAQ,iBAClBugB,EAAWvgB,EAAQ,qBASnBwgB,EAAW,WAAA,IAAA,GAAAC,GAAAjc,UAAAhE,OAAIkgB,EAAJ7d,MAAA4d,GAAAlK,EAAA,EAAAA,EAAAkK,EAAAlK,IAAImK,EAAJnK,GAAA/R,UAAA+R,EAAA,OAAY,YAA2C,GAAAoK,GAAAje,KAAxBqQ,EAAwBvO,UAAAhE,OAAA,GAAAgF,SAAAhB,UAAA,GAAAA,UAAA,GAAf1C,SAAS4a,IAChE/a,GAAQ+e,EAAK,SAAC1b,GACgB,kBAAjB2b,GAAK3b,IACd2b,EAAK3b,GAAQzE,KAAbogB,EAAwB5N,MAW9BrS,GAAOJ,QAAU,SAAC2T,EAAQC,GAAT,MAAmBqM,GAAStM,EAAQ5B,GACnD4G,GAAIuH,EAAS,OAAQ,OACrBtH,IAAKsH,EAAS,WAAY,WACzBtM,OlC63DAuF,gBAAgB,EAAEhF,gBAAgB,EAAEmM,oBAAoB,KAAKvV,IAAI,SAASrL,EAAQU,EAAOJ,GAC5F,YmC15DA,IAAM+R,GAASrS,EAAQ,iBnC85DnBuX,EmC75DevX,EAAQ,YAAnBwV,EnC85DK+B,EmC95DL/B,OACFF,EAAWtV,EAAQ,cACnBsa,EAASta,EAAQ,YACjBod,EAAgBpd,EAAQ,oBAExB6gB,EAAY,iLAEZC,EAAa,SAACnC,GAOlB,QAASoC,GAASlM,GACZuI,MAAoB4D,IACtBnM,EAAM6D,iBACNuI,EAAa9D,SAIjB,QAAS+D,GAAQrM,GACXuI,MAAoB6D,IACtBpM,EAAM6D,iBACNsI,EAAY7D,SAhBhB,GAAMgE,GAAoB7G,EAAOuG,EAAWlC,GACtCsC,EAAeE,EAAkB,GACjCH,EAAcG,EAAkBA,EAAkB3gB,OAAS,EAkBjE,QACEygB,aAAAA,EACAD,YAAAA,EACAD,SAAAA,EACAG,QAAAA,GAIJxgB,GAAOJ,QAAU,SAACqe,GAAwC,GAA/ByC,GAA+B5c,UAAAhE,OAAA,GAAAgF,SAAAhB,UAAA,GAAAA,UAAA,MAClD6c,EAAkBP,EAAWnC,GAK7B2C,EAAc9L,EAAOnD,GACzBkP,IAAKF,EAAgBN,SACrBS,YAAaH,EAAgBH,SAC5BE,IAEGrE,EAAYzH,GAChBmM,QAASH,IAET1I,KADC,WAICyI,EAAgBJ,aAAa9D,SAE/BH,OANC,SAMMP,GACDA,EACF/Z,KAAKuW,KAELvW,KAAKwW,QAKX,OAAO6D,MnCo6DN2E,mBAAmB,GAAGjM,aAAa,GAAGkM,WAAW,GAAGlN,gBAAgB,EAAEmN,SAAW,KAAKtW,IAAI,SAAStL,EAAQU,EAAOJ,GACrH,YoCr+DA,SAASgX,GAAoBH,GACO,GADH0K,GACGrd,UAAAhE,OAAA,GAAAgF,SAAAhB,UAAA,GAAAA,UAAA,GADG3C,OACrCigB,EAAkCtd,UAAAhE,OAAA,GAAAgF,SAAAhB,UAAA,GAAAA,UAAA,GAA1B1C,SAAS+E,gBACXkb,EAAO5K,EAAGmG,uBAEhB,OACEyE,GAAKC,KAAO,GACTD,EAAKE,MAAQ,GACbF,EAAKG,SAAWL,EAAIM,aAAeL,EAAMM,eACzCL,EAAKM,QAAUR,EAAI9H,YAAc+H,EAAMQ,aAI9C5hB,EAAOJ,QAAUgX,OpCu+DX/L,IAAI,SAASvL,EAAQU,EAAOJ,GAClC,YAEA,IAAI2F,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAO7E,UAAY,eAAkB+E,IqC/+DhQmc,EAAY,SAAAza,GAAA,MAASA,IAA0B,YAAjB,mBAAOA,GAAP,YAAA7B,EAAO6B,KAAyC,IAAnBA,EAAMwB,SAUvE5I,GAAOJ,QAAU,SAAC2I,EAAU0V,GAC1B,GAAwB,gBAAb1V,GACT,QAGG0V,IAAY4D,EAAU5D,KACzBA,EAAU9c,OAAOC,SAGnB,IAAM0gB,GAAY7D,EAAQvV,iBAAiBH,EAC3C,OAAOpG,OAAMxB,UAAUiH,MAAM/H,KAAKiiB,SrC4/D9BhX,IAAI,SAASxL,EAAQU,EAAOJ,GAClC,YsCphEAI,GAAOJ,QAAU,SAACmiB,EAAOC,GACvBD,EAAMxe,aAAa,iBAAkB,OACrCwe,EAAMxe,aAAa,cAAe,OAClCwe,EAAMxe,aAAa,OAAQye,EAAO,WAAa,ctC8hE3CjX,IAAI,SAASzL,EAAQU,EAAOJ,GAClC,YuCviEA,IAAMqB,GAAU3B,EAAQ,iBAClB2iB,EAAgB3iB,EAAQ,mBACxB4iB,EAAkB5iB,EAAQ,uBAE1B6iB,EAAW,gBACXC,EAAU,eACVC,EAAY,iBACZC,EAAY,iBAOZC,EAAc,SAAAC,GAAA,MAAYA,GAASvgB,QAAQ,YAAa,SAAAkW,GAAA,OAAuB,MAAZA,EAAK,GAAa,IAAM,KAAnC,QAW9DnY,GAAOJ,QAAU,SAAC6W,GAIhB,GAAMgM,GAAUhM,EAAG0I,aAAaiD,IACE,SAA7B3L,EAAGtT,aAAaif,GAEfM,EAAST,EAAcxL,EAAGtT,aAAagf,GAC7ClhB,GAAQyhB,EAAQ,SAAAX,GAAA,MAASG,GAAgBH,EAAOU,KAE3ChM,EAAG0I,aAAakD,IACnB5L,EAAGlT,aAAa8e,EAAW5L,EAAGkM,YAGhC,IAAMH,GAAW/L,EAAGtT,aAAakf,GAC3BO,EAAWnM,EAAGtT,aAAamf,IAAcC,EAAYC,EAI3D,OAFA/L,GAAGkM,YAAcF,EAAUD,EAAWI,EACtCnM,EAAGlT,aAAa6e,EAASK,GAClBA,KvCijENI,sBAAsB,GAAG9J,gBAAgB,EAAE+J,kBAAkB,KAAK9X,IAAI,SAAS1L,EAAQU,EAAOJ,GACjG,YwC9lEA,IAAMwX,GAAW,gBACX+K,EAAW,gBACX1I,EAAS,aAEfzZ,GAAOJ,QAAU,SAAC6X,EAAQE,GACxB,GAAIC,GAAeD,CAES,kBAAjBC,KACTA,EAAiD,UAAlCH,EAAOtU,aAAaiU,IAGrCK,EAAOlU,aAAa6T,EAAUQ,EAE9B,IAAMvB,GAAKoB,EAAOtU,aAAagf,GACzBY,EAAW3hB,SAASoV,eAAeH,EACzC,KAAK0M,EACH,KAAM,IAAItjB,OAAJ,oCAA8C4W,EAA9C,IAKR,OAFA0M,GAASxf,aAAakW,GAAS7B,GAExBA,QxCmmEH3M,IAAI,SAAS3L,EAAQU,EAAOJ,GAClC,YAEA,IAAIojB,GAAiB,WAAc,QAASC,GAAchjB,EAAKV,GAAK,GAAI2jB,MAAeC,GAAK,EAAUC,GAAK,EAAWC,EAAKve,MAAW,KAAM,IAAK,GAAiCwe,GAA7BC,EAAKtjB,EAAIuF,OAAOC,cAAmB0d,GAAMG,EAAKC,EAAGC,QAAQC,QAAoBP,EAAKziB,KAAK6iB,EAAGlc,QAAY7H,GAAK2jB,EAAKpjB,SAAWP,GAA3D4jB,GAAK,IAAoE,MAAOlR,GAAOmR,GAAK,EAAMC,EAAKpR,EAAO,QAAU,KAAWkR,GAAMI,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIH,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAUjjB,EAAKV,GAAK,GAAI4C,MAAMqH,QAAQvJ,GAAQ,MAAOA,EAAY,IAAIuF,OAAOC,WAAY/E,QAAOT,GAAQ,MAAOgjB,GAAchjB,EAAKV,EAAa,MAAM,IAAIc,WAAU,4DyC1nEhlB0G,EAAUzH,EAAQ,gBzC8nEpBuX,EyC5nEuBvX,EAAQ,aAAnB0X,EzC6nEHH,EyC7nELI,OAEFyM,EAAU,eACVC,EAAmB3M,EAAnB,oBAENhX,GAAOJ,QAAU,SAAkB6W,GACjC,GAAMmN,GAAO7c,EAAQ0P,GACfJ,EAAKuN,EAAKC,kBACVC,EAA6B,MAAjBzN,EAAGxO,OAAO,GACxBzG,SAASkV,cAAcD,GACvBjV,SAASoV,eAAeH,EAE5B,KAAKyN,EACH,KAAM,IAAIrkB,OAAJ,yCAAmD4W,EAAnD,IAGR3V,QAAOqjB,QAAQH,GAAM3iB,QAAQ,SAAA+iB,GAAkB,GAAAC,GAAAjB,EAAAgB,EAAA,GAAhB7a,EAAgB8a,EAAA,GAAX7c,EAAW6c,EAAA,EAC7C,IAAI9a,EAAI+a,WAAW,YAAa,CAC9B,GAAMC,GAAgBhb,EAAIib,OAAO,WAAWtkB,QAAQ+N,cAC9CwW,EAAmB,GAAIC,QAAOld,GAC9Bmd,EAAA,oBAAwCJ,EAAxC,KACAK,EAAoBV,EAAUxN,cAAciO,EAElD,KAAKC,EACH,KAAM,IAAI/kB,OAAJ,qCAA+C0kB,EAA/C,IAGR,IAAMM,GAAUJ,EAAiBthB,KAAK0T,EAAGrP,MACzCod,GAAkB3hB,UAAUsB,OAAOwf,EAAec,GAClDD,EAAkBjhB,aAAamgB,EAASe,SzCooE3ChM,YAAY,GAAGiM,eAAe,SAAS”,“file”:“uswds.min.js”,“sourcesContent”:[“(function(){function e(t,n,r){function s(o,u){if(!n){if(!t){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"o
"'");throw f.code="MODULE_NOT_FOUND",f}var l=n={exports:{}};t[0].call(l.exports,function(e){var n=t[1];return s(n?n:e)},l,l.exports,e,t,n,r)}return n.exports}var i=typeof require=="function"&&require;for(var o=0;oo
"'");throw f.code="MODULE_NOT_FOUND",f}var l=n={exports:{}};t[0].call(l.exports,function(e){var n=t[1];return s(n?n:e)},l,l.exports,e,t,n,r)}return n.exports}var i=typeof require=="function"&&require;for(var o=0;o]0x[0-9a-f]
$/i;nn/** Used to detect binary string values. */nvar reIsBinary = /^0b+$/i;nn/** Used to detect octal string values. */nvar reIsOctal = /^0o+$/i;nn/** Built-in method references without a dependency on `root`. */nvar freeParseInt = parseInt;nn/** Detect free variable `global` from Node.js. */nvar freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global && global.Object === Object && global;nn/** Detect free variable `self`. */nvar freeSelf = (typeof self === 'undefined' ? 'undefined' : _typeof(self)) == 'object' && self && self.Object === Object && self;nn/** Used as a reference to the global object. */nvar root = freeGlobal || freeSelf || Function('return this')();nn/** Used for built-in method references. */nvar objectProto = Object.prototype;nn/**n * Used to resolve then * [`toStringTag`](ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)n * of values.n */nvar objectToString = objectProto.toString;nn/* Built-in method references for those with the same name as other `lodash` methods. */nvar nativeMax = Math.max,n nativeMin = Math.min;nn/**n * Gets the timestamp of the number of milliseconds that have elapsed sincen * the Unix epoch (1 January 1970 00:00:00 UTC).n *n * @staticn * @memberOf _n * @since 2.4.0n * @category Daten * @returns {number} Returns the timestamp.n * @examplen *n * _.defer(function(stamp) {n * console.log(_.now() - stamp);n * }, _.now());n * // => Logs the number of milliseconds it took for the deferred invocation.n */nvar now = function now() {n return root.Date.now();n};nn/**n * Creates a debounced function that delays invoking `func` until after `wait`n * milliseconds have elapsed since the last time the debounced function wasn * invoked. The debounced function comes with a `cancel` method to canceln * delayed `func` invocations and a `flush` method to immediately invoke them.n * Provide `options` to indicate whether `func` should be invoked on then * leading and/or trailing edge of the `wait` timeout. The `func` is invokedn * with the last arguments provided to the debounced function. Subsequentn * calls to the debounced function return the result of the last `func`n * invocation.n *n * Note: If `leading` and `trailing` options are `true`, `func` isn * invoked on the trailing edge of the timeout only if the debounced functionn * is invoked more than once during the `wait` timeout.n *n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferredn * until to the next tick, similar to `setTimeout` with a timeout of `0`.n *n * See [David Corbacho's article](css-tricks.com/debouncing-throttling-explained-examples/)n * for details over the differences between `_.debounce` and `_.throttle`.n *n * @staticn * @memberOf _n * @since 0.1.0n * @category Functionn * @param {Function} func The function to debounce.n * @param {number} [wait=0] The number of milliseconds to delay.n * @param {Object} [options={}] The options object.n * @param {boolean} [options.leading=false]n * Specify invoking on the leading edge of the timeout.n * @param {number} [options.maxWait]n * The maximum time `func` is allowed to be delayed before it's invoked.n * @param {boolean} [options.trailing=true]n * Specify invoking on the trailing edge of the timeout.n * @returns {Function} Returns the new debounced function.n * @examplen *n * // Avoid costly calculations while the window size is in flux.n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));n *n * // Invoke `sendMail` when clicked, debouncing subsequent calls.n * jQuery(element).on('click', _.debounce(sendMail, 300, {n * 'leading': true,n * 'trailing': falsen * }));n *n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });n * var source = new EventSource('/stream');n * jQuery(source).on('message', debounced);n *n * // Cancel the trailing debounced invocation.n * jQuery(window).on('popstate', debounced.cancel);n */nfunction debounce(func, wait, options) {n var lastArgs,n lastThis,n maxWait,n result,n timerId,n lastCallTime,n lastInvokeTime = 0,n leading = false,n maxing = false,n trailing = true;nn if (typeof func != 'function') {n throw new TypeError(FUNC_ERROR_TEXT);n }n wait = toNumber(wait) || 0;n if (isObject(options)) {n leading = !!options.leading;n maxing = 'maxWait' in options;n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;n trailing = 'trailing' in options ? !!options.trailing : trailing;n }nn function invokeFunc(time) {n var args = lastArgs,n thisArg = lastThis;nn lastArgs = lastThis = undefined;n lastInvokeTime = time;n result = func.apply(thisArg, args);n return result;n }nn function leadingEdge(time) {n // Reset any `maxWait` timer.n lastInvokeTime = time;n // Start the timer for the trailing edge.n timerId = setTimeout(timerExpired, wait);n // Invoke the leading edge.n return leading ? invokeFunc(time) : result;n }nn function remainingWait(time) {n var timeSinceLastCall = time - lastCallTime,n timeSinceLastInvoke = time - lastInvokeTime,n result = wait - timeSinceLastCall;nn return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;n }nn function shouldInvoke(time) {n var timeSinceLastCall = time - lastCallTime,n timeSinceLastInvoke = time - lastInvokeTime;nn // Either this is the first call, activity has stopped and we're at then // trailing edge, the system time has gone backwards and we're treatingn // it as the trailing edge, or we've hit the `maxWait` limit.n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;n }nn function timerExpired() {n var time = now();n if (shouldInvoke(time)) {n return trailingEdge(time);n }n // Restart the timer.n timerId = setTimeout(timerExpired, remainingWait(time));n }nn function trailingEdge(time) {n timerId = undefined;nn // Only invoke if we have `lastArgs` which means `func` has beenn // debounced at least once.n if (trailing && lastArgs) {n return invokeFunc(time);n }n lastArgs = lastThis = undefined;n return result;n }nn function cancel() {n if (timerId !== undefined) {n clearTimeout(timerId);n }n lastInvokeTime = 0;n lastArgs = lastCallTime = lastThis = timerId = undefined;n }nn function flush() {n return timerId === undefined ? result : trailingEdge(now());n }nn function debounced() {n var time = now(),n isInvoking = shouldInvoke(time);nn lastArgs = arguments;n lastThis = this;n lastCallTime = time;nn if (isInvoking) {n if (timerId === undefined) {n return leadingEdge(lastCallTime);n }n if (maxing) {n // Handle invocations in a tight loop.n timerId = setTimeout(timerExpired, wait);n return invokeFunc(lastCallTime);n }n }n if (timerId === undefined) {n timerId = setTimeout(timerExpired, wait);n }n return result;n }n debounced.cancel = cancel;n debounced.flush = flush;n return debounced;n}nn/**n * Checks if `value` is then * [language type](www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)n *n * @staticn * @memberOf _n * @since 0.1.0n * @category Langn * @param {*} value The value to check.n * @returns {boolean} Returns `true` if `value` is an object, else `false`.n * @examplen *n * _.isObject({});n * // => truen *n * _.isObject([1, 2, 3]);n * // => truen *n * .isObject(.noop);n * // => truen *n * _.isObject(null);n * // => falsen */nfunction isObject(value) {n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);n return !!value && (type == 'object' || type == 'function');n}nn/**n * Checks if `value` is object-like. A value is object-like if it's not `null`n * and has a `typeof` result of "object".n *n * @staticn * @memberOf _n * @since 4.0.0n * @category Langn * @param {*} value The value to check.n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.n * @examplen *n * _.isObjectLike({});n * // => truen *n * _.isObjectLike([1, 2, 3]);n * // => truen *n * .isObjectLike(.noop);n * // => falsen *n * _.isObjectLike(null);n * // => falsen */nfunction isObjectLike(value) {n return !!value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'object';n}nn/**n * Checks if `value` is classified as a `Symbol` primitive or object.n *n * @staticn * @memberOf _n * @since 4.0.0n * @category Langn * @param {*} value The value to check.n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.n * @examplen *n * _.isSymbol(Symbol.iterator);n * // => truen *n * _.isSymbol('abc');n * // => falsen */nfunction isSymbol(value) {n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;n}nn/**n * Converts `value` to a number.n *n * @staticn * @memberOf _n * @since 4.0.0n * @category Langn * @param {*} value The value to process.n * @returns {number} Returns the number.n * @examplen *n * _.toNumber(3.2);n * // => 3.2n *n * _.toNumber(Number.MIN_VALUE);n * // => 5e-324n *n * _.toNumber(Infinity);n * // => Infinityn *n * _.toNumber('3.2');n * // => 3.2n */nfunction toNumber(value) {n if (typeof value == 'number') {n return value;n }n if (isSymbol(value)) {n return NAN;n }n if (isObject(value)) {n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;n value = isObject(other) ? other + '' : other;n }n if (typeof value != 'string') {n return value === 0 ? value : +value;n }n value = value.replace(reTrim, '');n var isBinary = reIsBinary.test(value);n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;n}nnmodule.exports = debounce;nn}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})nn},{}],9:[function(require,module,exports){n/*nobject-assignn© Sindre Sorhusn@license MITn*/nn'use strict';n/* eslint-disable no-unused-vars */nnvar getOwnPropertySymbols = Object.getOwnPropertySymbols;nvar hasOwnProperty = Object.prototype.hasOwnProperty;nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;nnfunction toObject(val) {ntif (val === null || val === undefined) {nttthrow new TypeError('Object.assign cannot be called with null or undefined');nt}nntreturn Object(val);n}nnfunction shouldUseNative() {nttry {nttif (!Object.assign) {ntttreturn false;ntt}nntt// Detect buggy property enumeration order in older V8 versions.nntt// bugs.chromium.org/p/v8/issues/detail?id=4118nttvar test1 = new String('abc'); // eslint-disable-line no-new-wrappersntttest1 = 'de';nttif (Object.getOwnPropertyNames(test1) === '5') {ntttreturn false;ntt}nntt// bugs.chromium.org/p/v8/issues/detail?id=3056nttvar test2 = {};nttfor (var i = 0; i < 10; i++) {nttttest2['_' + String.fromCharCode(i)] = i;ntt}nttvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {ntttreturn test2;ntt});nttif (order2.join('') !== '0123456789') {ntttreturn false;ntt}nntt// bugs.chromium.org/p/v8/issues/detail?id=3056nttvar test3 = {};ntt'abcdefghijklmnopqrst'.split('').forEach(function (letter) {nttttest3 = letter;ntt});nttif (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {ntttreturn false;ntt}nnttreturn true;nt} catch (err) {ntt// We don't expect any of the above to throw, but better to be safe.nttreturn false;nt}n}nnmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {ntvar from;ntvar to = toObject(target);ntvar symbols;nntfor (var s = 1; s < arguments.length; s++) {nttfrom = Object(arguments);nnttfor (var key in from) {ntttif (hasOwnProperty.call(from, key)) {nttttto = from;nttt}ntt}nnttif (getOwnPropertySymbols) {ntttsymbols = getOwnPropertySymbols(from);ntttfor (var i = 0; i < symbols.length; i++) {nttttif (propIsEnumerable.call(from, symbols)) {ntttttto[symbols] = from[symbols];ntttt}nttt}ntt}nt}nntreturn to;n};nn},{}],10:[function(require,module,exports){n'use strict';nnvar _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; };nnvar assign = require('object-assign');nvar delegate = require('../delegate');nvar delegateAll = require('../delegateAll');nnvar DELEGATE_PATTERN = /^(.+):delegate\((.+)\)$/;nvar SPACE = ' ';nnvar getListeners = function getListeners(type, handler) {n var match = type.match(DELEGATE_PATTERN);n var selector;n if (match) {n type = match;n selector = match;n }nn var options;n if ((typeof handler === 'undefined' ? 'undefined' : _typeof(handler)) === 'object') {n options = {n capture: popKey(handler, 'capture'),n passive: popKey(handler, 'passive')n };n }nn var listener = {n selector: selector,n delegate: (typeof handler === 'undefined' ? 'undefined' : _typeof(handler)) === 'object' ? delegateAll(handler) : selector ? delegate(selector, handler) : handler,n options: optionsn };nn if (type.indexOf(SPACE) > -1) {n return type.split(SPACE).map(function (_type) {n return assign({ type: _type }, listener);n });n } else {n listener.type = type;n return [listener];n }n};nnvar popKey = function popKey(obj, key) {n var value = obj;n delete obj;n return value;n};nnmodule.exports = function behavior(events, props) {n var listeners = Object.keys(events).reduce(function (memo, type) {n var listeners = getListeners(type, events);n return memo.concat(listeners);n }, []);nn return assign({n add: function addBehavior(element) {n listeners.forEach(function (listener) {n element.addEventListener(listener.type, listener.delegate, listener.options);n });n },n remove: function removeBehavior(element) {n listeners.forEach(function (listener) {n element.removeEventListener(listener.type, listener.delegate, listener.options);n });n }n }, props);n};nn},{"../delegate":12,"../delegateAll":13,"object-assign":9}],11:[function(require,module,exports){n"use strict";nnmodule.exports = function compose(functions) {n return function (e) {n return functions.some(function (fn) {n return fn.call(this, e) === false;n }, this);n };n};nn},{}],12:[function(require,module,exports){n'use strict';nn// polyfill Element.prototype.closestnrequire('element-closest');nnmodule.exports = function delegate(selector, fn) {n return function delegation(event) {n var target = event.target.closest(selector);n if (target) {n return fn.call(target, event);n }n };n};nn},{"element-closest":6}],13:[function(require,module,exports){n'use strict';nnvar delegate = require('../delegate');nvar compose = require('../compose');nnvar SPLAT = '*';nnmodule.exports = function delegateAll(selectors) {n var keys = Object.keys(selectors);nn // XXX optimization: if there is only one handler and it applies ton // all elements (the "*" CSS selector), then just return thatn // handlern if (keys.length === 1 && keys === SPLAT) {n return selectors;n }nn var delegates = keys.reduce(function (memo, selector) {n memo.push(delegate(selector, selectors));n return memo;n }, []);n return compose(delegates);n};nn},{"../compose":11,"../delegate":12}],14:[function(require,module,exports){n"use strict";nnmodule.exports = function ignore(element, fn) {n return function ignorance(e) {n if (element !== e.target && !element.contains(e.target)) {n return fn.call(this, e);n }n };n};nn},{}],15:[function(require,module,exports){n'use strict';nnmodule.exports = {n behavior: require('./behavior'),n delegate: require('./delegate'),n delegateAll: require('./delegateAll'),n ignore: require('./ignore'),n keymap: require('./keymap')n};nn},{"./behavior":10,"./delegate":12,"./delegateAll":13,"./ignore":14,"./keymap":16}],16:[function(require,module,exports){n'use strict';nnrequire('keyboardevent-key-polyfill');nn// these are the only relevant modifiers supported on all platforms,n// according to MDN:n// <event[MODIFIERS] === true) {n key = [modifier, key].join(MODIFIER_SEPARATOR);n }n }n }n return key;n};nnmodule.exports = function keymap(keys) {n var hasModifiers = Object.keys(keys).some(function (key) {n return key.indexOf(MODIFIER_SEPARATOR) > -1;n });n return function (event) {n var key = getEventKey(event, hasModifiers);n return [key, key.toLowerCase()].reduce(function (result, _key) {n if (_key in keys) {n result = keys.call(this, event);n }n return result;n }, undefined);n };n};nnmodule.exports.MODIFIERS = MODIFIERS;nn},{"keyboardevent-key-polyfill":7}],17:[function(require,module,exports){n"use strict";nnmodule.exports = function once(listener, options) {n var wrapped = function wrappedOnce(e) {n e.currentTarget.removeEventListener(e.type, wrapped, options);n return listener.call(this, e);n };n return wrapped;n};nn},{}],18:[function(require,module,exports){n'use strict';nnvar _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; };nnvar RE_TRIM = /(^\s+)|(\s+$)/g;nvar RE_SPLIT = /\s+/;nnvar trim = String.prototype.trim ? function (str) {n return str.trim();n} : function (str) {n return str.replace(RE_TRIM, '');n};nnvar queryById = function queryById(id) {n return this.querySelector('[id="' + id.replace(/"/g, '\\"') + '"]');n};nnmodule.exports = function resolveIds(ids, doc) {n if (typeof ids !== 'string') {n throw new Error('Expected a string but got ' + (typeof ids === 'undefined' ? 'undefined' : _typeof(ids)));n }nn if (!doc) {n doc = window.document;n }nn var getElementById = doc.getElementById ? doc.getElementById.bind(doc) : queryById.bind(doc);nn ids = trim(ids).split(RE_SPLIT);nn // XXX we can short-circuit here because trimming and splitting an // string of just whitespace produces an array containing a single,n // empty stringn if (ids.length === 1 && ids === '') {n return [];n }nn return ids.map(function (id) {n var el = getElementById(id);n if (!el) {n throw new Error('no element with id: "' + id + '"');n }n return el;n });n};nn},{}],19:[function(require,module,exports){n'use strict';nnfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj = value; } return obj; }nnvar assign = require('object-assign');nvar filter = require('array-filter');nvar forEach = require('array-foreach');nvar behavior = require('../utils/behavior');nvar toggle = require('../utils/toggle');nvar isElementInViewport = require('../utils/is-in-viewport');nnvar _require = require('../events'),n CLICK = _require.CLICK;nnvar _require2 = require('../config'),n PREFIX = _require2.prefix;nn// XXX match .usa-accordion and .usa-accordion-borderednnnvar ACCORDION = '.' + PREFIX + '-accordion, .' + PREFIX + '-accordion-bordered';nvar BUTTON = '.' + PREFIX + '-accordion-button';nvar EXPANDED = 'aria-expanded';nvar MULTISELECTABLE = 'aria-multiselectable';nn/**n * Get an Array of button elements belonging directly to the givenn * accordion element.n * @param {HTMLElement} accordionn * @return {array<HTMLButtonElement>}n */nvar getAccordionButtons = function getAccordionButtons(accordion) {n var buttons = accordion.querySelectorAll(BUTTON);nn return filter(buttons, function (button) {n return button.closest(ACCORDION) === accordion;n });n};nn/**n * Toggle a button's "pressed" state, optionally providing a targetn * state.n *n * @param {HTMLButtonElement} buttonn * @param {boolean?} expanded If no state is provided, the currentn * state will be toggled (from false to true, and vice-versa).n * @return {boolean} the resulting staten */nvar toggleButton = function toggleButton(button, expanded) {n var accordion = button.closest(ACCORDION);n var safeExpanded = expanded;n if (!accordion) {n throw new Error(BUTTON + ' is missing outer ' + ACCORDION);n }nn safeExpanded = toggle(button, expanded);nn // XXX multiselectable is opt-in, to preserve legacy behaviorn var multiselectable = accordion.getAttribute(MULTISELECTABLE) === 'true';nn if (safeExpanded && !multiselectable) {n forEach(getAccordionButtons(accordion), function (other) {n if (other !== button) {n toggle(other, false);n }n });n }n};nn/**n * @param {HTMLButtonElement} buttonn * @return {boolean} truen */nvar showButton = function showButton(button) {n return toggleButton(button, true);n};nn/**n * @param {HTMLButtonElement} buttonn * @return {boolean} falsen */nvar hideButton = function hideButton(button) {n return toggleButton(button, false);n};nnvar accordion = behavior(_defineProperty({}, CLICK, _defineProperty({}, BUTTON, function (event) {n event.preventDefault();n toggleButton(this);nn if (this.getAttribute(EXPANDED) === 'true') {n // We were just expanded, but if another accordion was also justn // collapsed, we may no longer be in the viewport. This ensuresn // that we are still visible, so the user isn't confused.n if (!isElementInViewport(this)) this.scrollIntoView();n }n})), {n init: function init(root) {n forEach(root.querySelectorAll(BUTTON), function (button) {n var expanded = button.getAttribute(EXPANDED) === 'true';n toggleButton(button, expanded);n });n },nn ACCORDION: ACCORDION,n BUTTON: BUTTON,n show: showButton,n hide: hideButton,n toggle: toggleButton,n getButtons: getAccordionButtonsn});nn/**n * TODO: for 2.0, remove everything below this comment and export then * behavior directly:n *n * module.exports = behavior({…});n */nvar Accordion = function Accordion(root) {n this.root = root;n accordion.on(this.root);n};nn// copy all of the behavior methods and props to Accordionnassign(Accordion, accordion);nnAccordion.prototype.show = showButton;nAccordion.prototype.hide = hideButton;nnAccordion.prototype.remove = function () {n accordion.off(this.root);n};nnmodule.exports = Accordion;nn},{"../config":28,"../events":29,"../utils/behavior":34,"../utils/is-in-viewport":36,"../utils/toggle":40,"array-filter":1,"array-foreach":2,"object-assign":9}],20:[function(require,module,exports){n'use strict';nnfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj = value; } return obj; }nnvar behavior = require('../utils/behavior');nnvar _require = require('../events'),n CLICK = _require.CLICK;nnvar _require2 = require('../config'),n PREFIX = _require2.prefix;nnvar HEADER = '.' + PREFIX + '-banner-header';nvar EXPANDED_CLASS = PREFIX + '-banner-header-expanded';nnvar toggleBanner = function toggleEl(event) {n event.preventDefault();n this.closest(HEADER).classList.toggle(EXPANDED_CLASS);nn return false;n};nnmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, HEADER + ' [aria-controls]', toggleBanner)));nn},{"../config":28,"../events":29,"../utils/behavior":34}],21:[function(require,module,exports){n'use strict';nnfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj = value; } return obj; }nnvar debounce = require('lodash.debounce');nvar forEach = require('array-foreach');nvar behavior = require('../utils/behavior');nvar select = require('../utils/select');nnvar _require = require('../events'),n CLICK = _require.CLICK;nnvar _require2 = require('../config'),n PREFIX = _require2.prefix;nnvar HIDDEN = 'hidden';nvar SCOPE = '.' + PREFIX + '-footer-big';nvar NAV = SCOPE + ' nav';nvar BUTTON = NAV + ' .' + PREFIX + '-footer-primary-link';nvar LIST = NAV + ' ul';nnvar HIDE_MAX_WIDTH = 600;nvar DEBOUNCE_RATE = 180;nnfunction showPanel() {n if (window.innerWidth < HIDE_MAX_WIDTH) {n var list = this.closest(LIST);n list.classList.toggle(HIDDEN);nn // NB: this should always succeed because the buttonn // selector is scoped to ".{prefix}-footer-big nav"n var lists = list.closest(NAV).querySelectorAll('ul');nn forEach(lists, function (el) {n if (el !== list) {n el.classList.add(HIDDEN);n }n });n }n}nnvar resize = debounce(function () {n var hidden = window.innerWidth < HIDE_MAX_WIDTH;n forEach(select(LIST), function (list) {n list.classList.toggle(HIDDEN, hidden);n });n}, DEBOUNCE_RATE);nnmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, BUTTON, showPanel)), {n // export for use elsewheren HIDE_MAX_WIDTH: HIDE_MAX_WIDTH,n DEBOUNCE_RATE: DEBOUNCE_RATE,nn init: function init() {n resize();n window.addEventListener('resize', resize);n },n teardown: function teardown() {n window.removeEventListener('resize', resize);n }n});nn},{"../config":28,"../events":29,"../utils/behavior":34,"../utils/select":37,"array-foreach":2,"lodash.debounce":8}],22:[function(require,module,exports){n'use strict';nnvar accordion = require('./accordion');nvar banner = require('./banner');nvar footer = require('./footer');nvar navigation = require('./navigation');nvar password = require('./password');nvar search = require('./search');nvar skipnav = require('./skipnav');nvar validator = require('./validator');nnmodule.exports = {n accordion: accordion,n banner: banner,n footer: footer,n navigation: navigation,n password: password,n search: search,n skipnav: skipnav,n validator: validatorn};nn},{"./accordion":19,"./banner":20,"./footer":21,"./navigation":23,"./password":24,"./search":25,"./skipnav":26,"./validator":27}],23:[function(require,module,exports){n'use strict';nnvar _CLICK;nnfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj = value; } return obj; }nnvar assign = require('object-assign');nvar forEach = require('array-foreach');nvar behavior = require('../utils/behavior');nvar select = require('../utils/select');nvar FocusTrap = require('../utils/focus-trap');nvar accordion = require('./accordion');nnvar _require = require('../events'),n CLICK = _require.CLICK;nnvar _require2 = require('../config'),n PREFIX = _require2.prefix;nnvar NAV = '.' + PREFIX + '-nav';nvar NAV_LINKS = NAV + ' a';nvar OPENERS = '.' + PREFIX + '-menu-btn';nvar CLOSE_BUTTON = '.' + PREFIX + '-nav-close';nvar OVERLAY = '.' + PREFIX + '-overlay';nvar CLOSERS = CLOSE_BUTTON + ', .' + PREFIX + '-overlay';nvar TOGGLES = [NAV, OVERLAY].join(', ');nnvar ACTIVE_CLASS = 'usa-mobile_nav-active';nvar VISIBLE_CLASS = 'is-visible';nnvar navigation = void 0;nnvar isActive = function isActive() {n return document.body.classList.contains(ACTIVE_CLASS);n};nnvar toggleNav = function toggleNav(active) {n var _document = document,n body = _document.body;nn var safeActive = typeof active === 'boolean' ? active : !isActive();nn body.classList.toggle(ACTIVE_CLASS, safeActive);nn forEach(select(TOGGLES), function (el) {n return el.classList.toggle(VISIBLE_CLASS, safeActive);n });nn navigation.focusTrap.update(safeActive);nn var closeButton = body.querySelector(CLOSE_BUTTON);n var menuButton = body.querySelector(OPENERS);nn if (safeActive && closeButton) {n // The mobile nav was just activated, so focus on the close button,n // which is just before all the nav elements in the tab order.n closeButton.focus();n } else if (!safeActive && document.activeElement === closeButton && menuButton) {n // The mobile nav was just deactivated, and focus was on the closen // button, which is no longer visible. We don't want the focus ton // disappear into the void, so focus on the menu button if it'sn // visible (this may have been what the user was just focused on,n // if they triggered the mobile nav by mistake).n menuButton.focus();n }nn return safeActive;n};nnvar resize = function resize() {n var closer = document.body.querySelector(CLOSE_BUTTON);nn if (isActive() && closer && closer.getBoundingClientRect().width === 0) {n // The mobile nav is active, but the close box isn't visible, whichn // means the user's viewport has been resized so that it is no longern // in mobile mode. Let's make the page state consistent byn // deactivating the mobile nav.n navigation.toggleNav.call(closer, false);n }n};nnvar onMenuClose = function onMenuClose() {n return navigation.toggleNav.call(navigation, false);n};nnnavigation = behavior(_defineProperty({}, CLICK, (_CLICK = {}, _defineProperty(_CLICK, OPENERS, toggleNav), _defineProperty(_CLICK, CLOSERS, toggleNav), _defineProperty(_CLICK, NAV_LINKS, function () {n // A navigation link has been clicked! We want to collapse anyn // hierarchical navigation UI it's a part of, so that the usern // can focus on whatever they've just selected.nn // Some navigation links are inside accordions; when they'ren // clicked, we want to collapse those accordions.n var acc = this.closest(accordion.ACCORDION);nn if (acc) {n accordion.getButtons(acc).forEach(function (btn) {n return accordion.hide(btn);n });n }nn // If the mobile navigation menu is active, we want to hide it.n if (isActive()) {n navigation.toggleNav.call(navigation, false);n }n}), _CLICK)), {n init: function init() {n var trapContainer = document.querySelector(NAV);nn if (trapContainer) {n navigation.focusTrap = FocusTrap(trapContainer, {n Escape: onMenuClosen });n }nn resize();n window.addEventListener('resize', resize, false);n },n teardown: function teardown() {n window.removeEventListener('resize', resize, false);n },nn focusTrap: null,n toggleNav: toggleNavn});nn/**n * TODO for 2.0, remove this statement and export `navigation` directly:n *n * module.exports = behavior({…});n */nmodule.exports = assign(function (el) {n return navigation.on(el);n}, navigation);nn},{"../config":28,"../events":29,"../utils/behavior":34,"../utils/focus-trap":35,"../utils/select":37,"./accordion":19,"array-foreach":2,"object-assign":9}],24:[function(require,module,exports){n'use strict';nnfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj = value; } return obj; }nnvar behavior = require('../utils/behavior');nvar toggleFormInput = require('../utils/toggle-form-input');nnvar _require = require('../events'),n CLICK = _require.CLICK;nnvar _require2 = require('../config'),n PREFIX = _require2.prefix;nnvar LINK = '.' + PREFIX + '-show_password, .' + PREFIX + '-show_multipassword';nnfunction toggle(event) {n event.preventDefault();n toggleFormInput(this);n}nnmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, LINK, toggle)));nn},{"../config":28,"../events":29,"../utils/behavior":34,"../utils/toggle-form-input":39}],25:[function(require,module,exports){n'use strict';nnfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj = value; } return obj; }nnvar assign = require('object-assign');nvar forEach = require('array-foreach');nvar ignore = require('receptor/ignore');nvar behavior = require('../utils/behavior');nvar select = require('../utils/select');nnvar _require = require('../events'),n CLICK = _require.CLICK;nnvar BUTTON = '.js-search-button';nvar FORM = '.js-search-form';nvar INPUT = '[type=search]';nvar CONTEXT = 'header'; // XXXnnvar lastButton = void 0;nnvar getForm = function getForm(button) {n var context = button.closest(CONTEXT);n return context ? context.querySelector(FORM) : document.querySelector(FORM);n};nnvar toggleSearch = function toggleSearch(button, active) {n var form = getForm(button);nn if (!form) {n throw new Error('No ' + FORM + ' found for search toggle in ' + CONTEXT + '!');n }nn /* eslint-disable no-param-reassign */n button.hidden = active;n form.hidden = !active;n /* eslint-enable*/nn if (!active) {n return;n }nn var input = form.querySelector(INPUT);nn if (input) {n input.focus();n }n // when the user clicks outside of the form w/ignore(): hide then // search, then remove the listenern var listener = ignore(form, function () {n if (lastButton) {n hideSearch.call(lastButton); // eslint-disable-line no-use-before-definen }nn document.body.removeEventListener(CLICK, listener);n });nn // Normally we would just run this code without a timeout, butn // IE11 and Edge will actually call the listener immediately becausen // they are currently handling this exact type of event, so we'lln // make sure the browser is done handling the current click event,n // if any, before we attach the listener.n setTimeout(function () {n document.body.addEventListener(CLICK, listener);n }, 0);n};nnfunction showSearch() {n toggleSearch(this, true);n lastButton = this;n}nnfunction hideSearch() {n toggleSearch(this, false);n lastButton = undefined;n}nnvar search = behavior(_defineProperty({}, CLICK, _defineProperty({}, BUTTON, showSearch)), {n init: function init(target) {n forEach(select(BUTTON, target), function (button) {n toggleSearch(button, false);n });n },n teardown: function teardown() {n // forget the last button clickedn lastButton = undefined;n }n});nn/**n * TODO for 2.0, remove this statement and export `navigation` directly:n *n * module.exports = behavior({…});n */nnmodule.exports = assign(function (el) {n return search.on(el);n}, search);nn},{"../events":29,"../utils/behavior":34,"../utils/select":37,"array-foreach":2,"object-assign":9,"receptor/ignore":14}],26:[function(require,module,exports){n'use strict';nnfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj = value; } return obj; }nnvar once = require('receptor/once');nvar behavior = require('../utils/behavior');nnvar _require = require('../events'),n CLICK = _require.CLICK;nnvar _require2 = require('../config'),n PREFIX = _require2.prefix;nnvar LINK = '.' + PREFIX + '-skipnav, .' + PREFIX + '-footer-return-to-top [href^="#"]';nvar MAINCONTENT = 'main-content';nnfunction setTabindex() {n // NB: we know because of the selector we're delegating to below that then // href already begins with '#'n var id = this.getAttribute('href');n var target = document.getElementById(id === '#' ? MAINCONTENT : id.slice(1));nn if (target) {n target.style.outline = '0';n target.setAttribute('tabindex', 0);n target.focus();n target.addEventListener('blur', once(function () {n target.setAttribute('tabindex', -1);n }));n } else {n // throw an error?n }n}nnmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, LINK, setTabindex)));nn},{"../config":28,"../events":29,"../utils/behavior":34,"receptor/once":17}],27:[function(require,module,exports){n'use strict';nnvar assign = require('object-assign');nvar behavior = require('../utils/behavior');nvar validate = require('../utils/validate-input');nnfunction change() {n validate(this);n}nnvar validator = behavior({n 'keyup change': {n 'input': changen }n});nn/**n * TODO for 2.0, remove this statement and export `navigation` directly:n *n * module.exports = behavior({…});n */nnmodule.exports = assign(function (el) {n return validator.on(el);n}, validator);nn},{"../utils/behavior":34,"../utils/validate-input":41,"object-assign":9}],28:[function(require,module,exports){n'use strict';nnmodule.exports = {n prefix: 'usa'n};nn},{}],29:[function(require,module,exports){n'use strict';nnmodule.exports = {n // This used to be conditionally dependent on whether then // browser supported touch events; if it did, `CLICK` was set ton // `touchstart`. However, this had downsides:n //n // * It pre-empted mobile browsers' default behavior of detectingn // whether a touch turned into a scroll, thereby preventingn // users from using some of our components as scroll surfaces.n //n // * Some devices, such as the Microsoft Surface Pro, support bothn // touch and clicks. This meant the conditional effectively droppedn // support for the user's mouse, frustrating users who preferredn // it on those systems.n CLICK: 'click'n};nn},{}],30:[function(require,module,exports){n'use strict';nnvar elproto = window.HTMLElement.prototype;nvar HIDDEN = 'hidden';nnif (!(HIDDEN in elproto)) {n Object.defineProperty(elproto, HIDDEN, {n get: function get() {n return this.hasAttribute(HIDDEN);n },n set: function set(value) {n if (value) {n this.setAttribute(HIDDEN, '');n } else {n this.removeAttribute(HIDDEN);n }n }n });n}nn},{}],31:[function(require,module,exports){n'use strict';nn// polyfills HTMLElement.prototype.classList and DOMTokenListnrequire('classlist-polyfill');n// polyfills HTMLElement.prototype.hiddennrequire('./element-hidden');nn},{"./element-hidden":30,"classlist-polyfill":3}],32:[function(require,module,exports){n'use strict';nnvar domready = require('domready');nn/**n * The 'polyfills' define key ECMAScript 5 methods that may be missing fromn * older browsers, so must be loaded first.n */nrequire('./polyfills');nnvar uswds = require('./config');nnvar components = require('./components');nnuswds.components = components;nndomready(function () {n var target = document.body;n Object.keys(components).forEach(function (key) {n var behavior = components;n behavior.on(target);n });n});nnmodule.exports = uswds;nn},{"./components":22,"./config":28,"./polyfills":31,"domready":4}],33:[function(require,module,exports){n"use strict";nnmodule.exports = function () {n var htmlDocument = arguments.length > 0 && arguments !== undefined ? arguments : document;n return htmlDocument.activeElement;n};nn},{}],34:[function(require,module,exports){n'use strict';nnvar assign = require('object-assign');nvar forEach = require('array-foreach');nvar Behavior = require('receptor/behavior');nn/**n * @name sequencen * @param {…Function} seq an array of functionsn * @return { closure } callHooksn */n// We use a named function here because we want it to inherit its lexical scopen// from the behavior props object, not from the modulenvar sequence = function sequence() {n for (var _len = arguments.length, seq = Array(_len), _key = 0; _key < _len; _key++) {n seq = arguments;n }nn return function callHooks() {n var _this = this;nn var target = arguments.length > 0 && arguments !== undefined ? arguments : document.body;nn forEach(seq, function (method) {n if (typeof _this === 'function') {n _this.call(_this, target);n }n });n };n};nn/**n * @name behaviorn * @param {object} eventsn * @param {object?} propsn * @return {receptor.behavior}n */nmodule.exports = function (events, props) {n return Behavior(events, assign({n on: sequence('init', 'add'),n off: sequence('teardown', 'remove')n }, props));n};nn},{"array-foreach":2,"object-assign":9,"receptor/behavior":10}],35:[function(require,module,exports){n'use strict';nnvar assign = require('object-assign');nnvar _require = require('receptor'),n keymap = _require.keymap;nnvar behavior = require('./behavior');nvar select = require('./select');nvar activeElement = require('./active-element');nnvar FOCUSABLE = 'a, area, input:not(), select:not(), textarea:not(), button:not(), iframe, object, embed, [tabindex="0"], [contenteditable]';nnvar tabHandler = function tabHandler(context) {n var focusableElements = select(FOCUSABLE, context);n var firstTabStop = focusableElements;n var lastTabStop = focusableElements[focusableElements.length - 1];nn // Special rules for when the user is tabbing forward from the last focusable element,n // or when tabbing backwards from the first focusable elementn function tabAhead(event) {n if (activeElement() === lastTabStop) {n event.preventDefault();n firstTabStop.focus();n }n }nn function tabBack(event) {n if (activeElement() === firstTabStop) {n event.preventDefault();n lastTabStop.focus();n }n }nn return {n firstTabStop: firstTabStop,n lastTabStop: lastTabStop,n tabAhead: tabAhead,n tabBack: tabBackn };n};nnmodule.exports = function (context) {n var additionalKeyBindings = arguments.length > 1 && arguments !== undefined ? arguments : {};nn var tabEventHandler = tabHandler(context);nn // TODO: In the future, loop over additional keybindings and pass an arrayn // of functions, if necessary, to the map keys. Then people implementingn // the focus trap could pass callbacks to fire when tabbingn var keyMappings = keymap(assign({n Tab: tabEventHandler.tabAhead,n 'Shift+Tab': tabEventHandler.tabBackn }, additionalKeyBindings));nn var focusTrap = behavior({n keydown: keyMappingsn }, {n init: function init() {n // TODO: is this desireable behavior? Should the trap always do this by default or shouldn // the component getting decorated handle this?n tabEventHandler.firstTabStop.focus();n },n update: function update(isActive) {n if (isActive) {n this.on();n } else {n this.off();n }n }n });nn return focusTrap;n};nn},{"./active-element":33,"./behavior":34,"./select":37,"object-assign":9,"receptor":15}],36:[function(require,module,exports){n"use strict";nn// stackoverflow.com/a/7557433nfunction isElementInViewport(el) {n var win = arguments.length > 1 && arguments !== undefined ? arguments : window;n var docEl = arguments.length > 2 && arguments !== undefined ? arguments : document.documentElement;nn var rect = el.getBoundingClientRect();nn return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (win.innerHeight || docEl.clientHeight) && rect.right <= (win.innerWidth || docEl.clientWidth);n}nnmodule.exports = isElementInViewport;nn},{}],37:[function(require,module,exports){n'use strict';nnvar _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; };nn/**n * @name isElementn * @desc returns whether or not the given argument is a DOM element.n * @param {any} valuen * @return {boolean}n */nvar isElement = function isElement(value) {n return value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.nodeType === 1;n};nn/**n * @name selectn * @desc selects elements from the DOM by class selector or ID selector.n * @param {string} selector - The selector to traverse the DOM with.n * @param {Document|HTMLElement?} context - The context to traverse the DOMn * in. If not provided, it defaults to the document.n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.n */nmodule.exports = function (selector, context) {n if (typeof selector !== 'string') {n return [];n }nn if (!context || !isElement(context)) {n context = window.document; // eslint-disable-line no-param-reassignn }nn var selection = context.querySelectorAll(selector);n return Array.prototype.slice.call(selection);n};nn},{}],38:[function(require,module,exports){n'use strict';nn/**n * Flips given INPUT elements between masked (hiding the field value) and unmaskedn * @param {Array.HTMLElement} fields - An array of INPUT elementsn * @param {Boolean} mask - Whether the mask should be applied, hiding the field valuen */nmodule.exports = function (field, mask) {n field.setAttribute('autocapitalize', 'off');n field.setAttribute('autocorrect', 'off');n field.setAttribute('type', mask ? 'password' : 'text');n};nn},{}],39:[function(require,module,exports){n'use strict';nnvar forEach = require('array-foreach');nvar resolveIdRefs = require('resolve-id-refs');nvar toggleFieldMask = require('./toggle-field-mask');nnvar CONTROLS = 'aria-controls';nvar PRESSED = 'aria-pressed';nvar SHOW_ATTR = 'data-show-text';nvar HIDE_ATTR = 'data-hide-text';nn/**n * Replace the word "Show" (or "show") with "Hide" (or "hide") in a string.n * @param {string} showTextn * @return {strong} hideTextn */nvar getHideText = function getHideText(showText) {n return showText.replace(/\bShow\b/i, function (show) {n return (show === 'S' ? 'H' : 'h') + 'ide';n });n};nn/**n * Component that decorates an HTML element with the ability to toggle then * masked state of an input field (like a password) when clicked.n * The ids of the fields to be masked will be pulled directly from the button'sn * `aria-controls` attribute.n *n * @param {HTMLElement} el Parent element containing the fields to be maskedn * @return {boolean}n */nmodule.exports = function (el) {n // this is the target state:n // * if the element has the attr and it's !== "true", pressed is truen // * otherwise, pressed is falsen var pressed = el.hasAttribute(PRESSED) && el.getAttribute(PRESSED) !== 'true';nn var fields = resolveIdRefs(el.getAttribute(CONTROLS));n forEach(fields, function (field) {n return toggleFieldMask(field, pressed);n });nn if (!el.hasAttribute(SHOW_ATTR)) {n el.setAttribute(SHOW_ATTR, el.textContent);n }nn var showText = el.getAttribute(SHOW_ATTR);n var hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);nn el.textContent = pressed ? showText : hideText; // eslint-disable-line no-param-reassignn el.setAttribute(PRESSED, pressed);n return pressed;n};nn},{"./toggle-field-mask":38,"array-foreach":2,"resolve-id-refs":18}],40:[function(require,module,exports){n'use strict';nnvar EXPANDED = 'aria-expanded';nvar CONTROLS = 'aria-controls';nvar HIDDEN = 'aria-hidden';nnmodule.exports = function (button, expanded) {n var safeExpanded = expanded;nn if (typeof safeExpanded !== 'boolean') {n safeExpanded = button.getAttribute(EXPANDED) === 'false';n }nn button.setAttribute(EXPANDED, safeExpanded);nn var id = button.getAttribute(CONTROLS);n var controls = document.getElementById(id);n if (!controls) {n throw new Error('No toggle target found with id: "' + id + '"');n }nn controls.setAttribute(HIDDEN, !safeExpanded);nn return safeExpanded;n};nn},{}],41:[function(require,module,exports){n'use strict';nnvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr(), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i) _i(); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();nnvar dataset = require('elem-dataset');nnvar _require = require('../config'),n PREFIX = _require.prefix;nnvar CHECKED = 'aria-checked';nvar CHECKED_CLASS = PREFIX + '-checklist-checked';nnmodule.exports = function validate(el) {n var data = dataset(el);n var id = data.validationElement;n var checkList = id.charAt(0) === '#' ? document.querySelector(id) : document.getElementById(id);nn if (!checkList) {n throw new Error('No validation element found with id: "' + id + '"');n }nn Object.entries(data).forEach(function (_ref) {n var _ref2 = _slicedToArray(_ref, 2),n key = _ref2,n value = _ref2;nn if (key.startsWith('validate')) {n var validatorName = key.substr('validate'.length).toLowerCase();n var validatorPattern = new RegExp(value);n var validatorSelector = '[data-validator="' + validatorName + '"]';n var validatorCheckbox = checkList.querySelector(validatorSelector);nn if (!validatorCheckbox) {n throw new Error('No validator checkbox found for: "' + validatorName + '"');n }nn var checked = validatorPattern.test(el.value);n validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);n validatorCheckbox.setAttribute(CHECKED, checked);n }n });n};nn},{"../config":28,"elem-dataset":5}]},{},[32])nn“,”n/**n * Array#filter.n *n * @param {Array} arrn * @param {Function} fnn * @param {Object=} selfn * @return {Array}n * @throw TypeErrorn */nnmodule.exports = function (arr, fn, self) {n if (arr.filter) return arr.filter(fn, self);n if (void 0 === arr || null === arr) throw new TypeError;n if ('function' != typeof fn) throw new TypeError;n var ret = [];n for (var i = 0; i < arr.length; i++) {n if (!hasOwn.call(arr, i)) continue;n var val = arr;n if (fn.call(self, val, i, arr)) ret.push(val);n }n return ret;n};nnvar hasOwn = Object.prototype.hasOwnProperty;n“,”/**n * array-foreachn * Array#forEach ponyfill for older browsersn * (Ponyfill: A polyfill that doesn't overwrite the native method)n * n * github.com/twada/array-foreachn *n * Copyright © 2015-2016 Takuto Wadan * Licensed under the MIT license.n * github.com/twada/array-foreach/blob/master/MIT-LICENSEn */n'use strict';nnmodule.exports = function forEach (ary, callback, thisArg) {n if (ary.forEach) {n ary.forEach(callback, thisArg);n return;n }n for (var i = 0; i < ary.length; i+=1) {n callback.call(thisArg, ary, i, ary);n }n};n“,”/*n * classList.js: Cross-browser full element.classList implementation.n * 1.1.20170427n *n * By Eli Grey, eligrey.comn * License: Dedicated to the public domain.n * See github.com/eligrey/classList.js/blob/master/LICENSE.mdn */nn/*global self, document, DOMException */nn/*! @source purl.eligrey.com/github/classList.js/blob/master/classList.js */nnif ("document" in window.self) {nn// Full polyfill for browsers with no classList supportn// Including IE < Edge missing SVGElement.classListnif (!("classList" in document.createElement("_")) nt|| document.createElementNS && !("classList" in document.createElementNS("http://www.w3.org/2000/svg","g"))) {nn(function (view) {nn"use strict";nnif (!('Element' in view)) return;nnvarnt classListProp = "classList"nt, protoProp = "prototype"nt, elemCtrProto = view.Elementnt, objCtr = Objectnt, strTrim = String.trim || function () {nttreturn this.replace(/^\s+|\s+$/g, "");nt}nt, arrIndexOf = Array.indexOf || function (item) {nttvarnttt i = 0nttt, len = this.lengthntt;nttfor (; i < len; i++) {ntttif (i in this && this === item) {nttttreturn i;nttt}ntt}nttreturn -1;nt}nt// Vendors: please allow content code to instantiate DOMExceptionsnt, DOMEx = function (type, message) {nttthis.name = type;nttthis.code = DOMException;nttthis.message = message;nt}nt, checkTokenAndGetIndex = function (classList, token) {nttif (token === "") {ntttthrow new DOMEx(ntttt "SYNTAX_ERR"ntttt, "An invalid or illegal string was specified"nttt);ntt}nttif (/\s/.test(token)) {ntttthrow new DOMEx(ntttt "INVALID_CHARACTER_ERR"ntttt, "String contains an invalid character"nttt);ntt}nttreturn arrIndexOf.call(classList, token);nt}nt, ClassList = function (elem) {nttvarnttt trimmedClasses = strTrim.call(elem.getAttribute("class") || "")nttt, classes = trimmedClasses ? trimmedClasses.split(/\s+/) : []nttt, i = 0nttt, len = classes.lengthntt;nttfor (; i < len; i++) {ntttthis.push(classes);ntt}nttthis._updateClassName = function () {ntttelem.setAttribute("class", this.toString());ntt};nt}nt, classListProto = ClassList = []nt, classListGetter = function () {nttreturn new ClassList(this);nt}n;n// Most DOMException implementations don't allow calling DOMException's toString()n// on non-DOMExceptions. Error's toString() is sufficient here.nDOMEx = Error;nclassListProto.item = function (i) {ntreturn this || null;n};nclassListProto.contains = function (token) {nttoken += "";ntreturn checkTokenAndGetIndex(this, token) !== -1;n};nclassListProto.add = function () {ntvarntt tokens = argumentsntt, i = 0ntt, l = tokens.lengthntt, tokenntt, updated = falsent;ntdo {ntttoken = tokens + "";nttif (checkTokenAndGetIndex(this, token) === -1) {ntttthis.push(token);ntttupdated = true;ntt}nt}ntwhile (++i < l);nntif (updated) {nttthis._updateClassName();nt}n};nclassListProto.remove = function () {ntvarntt tokens = argumentsntt, i = 0ntt, l = tokens.lengthntt, tokenntt, updated = falsentt, indexnt;ntdo {ntttoken = tokens + "";nttindex = checkTokenAndGetIndex(this, token);nttwhile (index !== -1) {ntttthis.splice(index, 1);ntttupdated = true;ntttindex = checkTokenAndGetIndex(this, token);ntt}nt}ntwhile (++i < l);nntif (updated) {nttthis._updateClassName();nt}n};nclassListProto.toggle = function (token, force) {nttoken += "";nntvarntt result = this.contains(token)ntt, method = result ?ntttforce !== true && "remove"ntt:ntttforce !== false && "add"nt;nntif (method) {nttthis(token);nt}nntif (force === true || force === false) {nttreturn force;nt} else {nttreturn !result;nt}n};nclassListProto.toString = function () {ntreturn this.join(" ");n};nnif (objCtr.defineProperty) {ntvar classListPropDesc = {ntt get: classListGetterntt, enumerable: truentt, configurable: truent};nttry {nttobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);nt} catch (ex) { // IE 8 doesn't support enumerable:truentt// adding undefined to fight this issue github.com/eligrey/classList.js/issues/36ntt// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affectednttif (ex.number === undefined || ex.number === -0x7FF5EC54) {ntttclassListPropDesc.enumerable = false;ntttobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);ntt}nt}n} else if (objCtr.__defineGetter__) {ntelemCtrProto.__defineGetter__(classListProp, classListGetter);n}nn}(window.self));nn}nn// There is full or partial native classList support, so just check if we needn// to normalize the add/remove and toggle APIs.nn(function () {nt"use strict";nntvar testElement = document.createElement("_");nnttestElement.classList.add("c1", "c2");nnt// Polyfill for IE 10/11 and Firefox <26, where classList.add andnt// classList.remove exist but support only one argument at a time.ntif (!testElement.classList.contains("c2")) {nttvar createMethod = function(method) {ntttvar original = DOMTokenList.prototype;nntttDOMTokenList.prototype = function(token) {nttttvar i, len = arguments.length;nnttttfor (i = 0; i < len; i++) {nttttttoken = arguments;ntttttoriginal.call(this, token);ntttt}nttt};ntt};nttcreateMethod('add');nttcreateMethod('remove');nt}nnttestElement.classList.toggle("c3", false);nnt// Polyfill for IE 10 and Firefox <24, where classList.toggle does notnt// support the second argument.ntif (testElement.classList.contains("c3")) {nttvar _toggle = DOMTokenList.prototype.toggle;nnttDOMTokenList.prototype.toggle = function(token, force) {ntttif (1 in arguments && !this.contains(token) === !force) {nttttreturn force;nttt} else {nttttreturn _toggle.call(this, token);nttt}ntt};nnt}nnttestElement = null;n}());nn}n“,”/*!n * domready © Dustin Diaz 2014 - License MITn */n!function (name, definition) {nn if (typeof module != 'undefined') module.exports = definition()n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)n else this = definition()nn}('domready', function () {nn var fns = [], listenern , doc = documentn , hack = doc.documentElement.doScrolln , domContentLoaded = 'DOMContentLoaded'n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)nnn if (!loaded)n doc.addEventListener(domContentLoaded, listener = function () {n doc.removeEventListener(domContentLoaded, listener)n loaded = 1n while (listener = fns.shift()) listener()n })nn return function (fn) {n loaded ? setTimeout(fn, 0) : fns.push(fn)n }nn});n“,”'use strict';nn// <3 Modernizrn// raw.githubusercontent.com/Modernizr/Modernizr/master/feature-detects/dom/dataset.jsnnfunction useNative() {ntvar elem = document.createElement('div');ntelem.setAttribute('data-a-b', 'c');nntreturn Boolean(elem.dataset && elem.dataset.aB === 'c');n}nnfunction nativeDataset(element) {ntreturn element.dataset;n}nnmodule.exports = useNative() ? nativeDataset : function (element) {ntvar map = {};ntvar attributes = element.attributes;nntfunction getter() {nttreturn this.value;nt}nntfunction setter(name, value) {nttif (typeof value === 'undefined') {ntttthis.removeAttribute(name);ntt} else {ntttthis.setAttribute(name, value);ntt}nt}nntfor (var i = 0, j = attributes.length; i < j; i++) {nttvar attribute = attributes;nnttif (attribute) {ntttvar name = attribute.name;nntttif (name.indexOf('data-') === 0) {nttttvar prop = name.slice(5).replace(/-./g, function (u) {ntttttreturn u.charAt(1).toUpperCase();ntttt});nnttttvar value = attribute.value;nnttttObject.defineProperty(map, prop, {ntttttenumerable: true,ntttttget: getter.bind({ value: value || '' }),ntttttset: setter.bind(element, name)ntttt});nttt}ntt}nt}nntreturn map;n};nn“,”// element-closest | CC0-1.0 | github.com/jonathantneal/closestnn(function (ElementProto) {ntif (typeof ElementProto.matches !== 'function') {nttElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {ntttvar element = this;ntttvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);ntttvar index = 0;nntttwhile (elements && elements !== element) {ntttt++index;nttt}nntttreturn Boolean(elements);ntt};nt}nntif (typeof ElementProto.closest !== 'function') {nttElementProto.closest = function closest(selector) {ntttvar element = this;nntttwhile (element && element.nodeType === 1) {nttttif (element.matches(selector)) {ntttttreturn element;ntttt}nnttttelement = element.parentNode;nttt}nntttreturn null;ntt};nt}n})(window.Element.prototype);n“,”/* global define, KeyboardEvent, module */nn(function () {nn var keyboardeventKeyPolyfill = {n polyfill: polyfill,n keys: {n 3: 'Cancel',n 6: 'Help',n 8: 'Backspace',n 9: 'Tab',n 12: 'Clear',n 13: 'Enter',n 16: 'Shift',n 17: 'Control',n 18: 'Alt',n 19: 'Pause',n 20: 'CapsLock',n 27: 'Escape',n 28: 'Convert',n 29: 'NonConvert',n 30: 'Accept',n 31: 'ModeChange',n 32: ' ',n 33: 'PageUp',n 34: 'PageDown',n 35: 'End',n 36: 'Home',n 37: 'ArrowLeft',n 38: 'ArrowUp',n 39: 'ArrowRight',n 40: 'ArrowDown',n 41: 'Select',n 42: 'Print',n 43: 'Execute',n 44: 'PrintScreen',n 45: 'Insert',n 46: 'Delete',n 48: ['0', ')'],n 49: ['1', '!'],n 50: ['2', '@'],n 51: ['3', '#'],n 52: ['4', '$'],n 53: ['5', '%'],n 54: ['6', '^'],n 55: ['7', '&'],n 56: ['8', '*'],n 57: ['9', '('],n 91: 'OS',n 93: 'ContextMenu',n 144: 'NumLock',n 145: 'ScrollLock',n 181: 'VolumeMute',n 182: 'VolumeDown',n 183: 'VolumeUp',n 186: [';', ':'],n 187: ['=', '+'],n 188: [',', '<'],n 189: ['-', '_'],n 190: ['.', '>'],n 191: ['/', '?'],n 192: ['`', '~'],n 219: ['[', '{'],n 220: ['\\', '|'],n 221: [']', '}'],n 222: ["'", '"'],n 224: 'Meta',n 225: 'AltGraph',n 246: 'Attn',n 247: 'CrSel',n 248: 'ExSel',n 249: 'EraseEof',n 250: 'Play',n 251: 'ZoomOut'n }n };nn // Function keys (F1-24).n var i;n for (i = 1; i < 25; i++) {n keyboardeventKeyPolyfill.keys[111 + i] = 'F' + i;n }nn // Printable ASCII characters.n var letter = '';n for (i = 65; i < 91; i++) {n letter = String.fromCharCode(i);n keyboardeventKeyPolyfill.keys = [letter.toLowerCase(), letter.toUpperCase()];n }nn function polyfill () {n if (!('KeyboardEvent' in window) ||n 'key' in KeyboardEvent.prototype) {n return false;n }nn // Polyfill `key` on `KeyboardEvent`.n var proto = {n get: function (x) {n var key = keyboardeventKeyPolyfill.keys[this.which || this.keyCode];nn if (Array.isArray(key)) {n key = key;n }nn return key;n }n };n Object.defineProperty(KeyboardEvent.prototype, 'key', proto);n return proto;n }nn if (typeof define === 'function' && define.amd) {n define('keyboardevent-key-polyfill', keyboardeventKeyPolyfill);n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {n module.exports = keyboardeventKeyPolyfill;n } else if (window) {n window.keyboardeventKeyPolyfill = keyboardeventKeyPolyfill;n }nn})();n“,”/**n * lodash (Custom Build) <n”>jquery.org/>n]0x[0-9a-f]
$/i;nn/** Used to detect binary string values. */nvar reIsBinary = /^0b+$/i;nn/** Used to detect octal string values. */nvar reIsOctal = /^0o+$/i;nn/** Built-in method references without a dependency on `root`. */nvar freeParseInt = parseInt;nn/** Detect free variable `global` from Node.js. */nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;nn/** Detect free variable `self`. */nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;nn/** Used as a reference to the global object. */nvar root = freeGlobal || freeSelf || Function('return this')();nn/** Used for built-in method references. */nvar objectProto = Object.prototype;nn/**n * Used to resolve then * [`toStringTag`](ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)n * of values.n */nvar objectToString = objectProto.toString;nn/* Built-in method references for those with the same name as other `lodash` methods. */nvar nativeMax = Math.max,n nativeMin = Math.min;nn/**n * Gets the timestamp of the number of milliseconds that have elapsed sincen * the Unix epoch (1 January 1970 00:00:00 UTC).n *n * @staticn * @memberOf _n * @since 2.4.0n * @category Daten * @returns {number} Returns the timestamp.n * @examplen *n * _.defer(function(stamp) {n * console.log(_.now() - stamp);n * }, _.now());n * // => Logs the number of milliseconds it took for the deferred invocation.n */nvar now = function() {n return root.Date.now();n};nn/**n * Creates a debounced function that delays invoking `func` until after `wait`n * milliseconds have elapsed since the last time the debounced function wasn * invoked. The debounced function comes with a `cancel` method to canceln * delayed `func` invocations and a `flush` method to immediately invoke them.n * Provide `options` to indicate whether `func` should be invoked on then * leading and/or trailing edge of the `wait` timeout. The `func` is invokedn * with the last arguments provided to the debounced function. Subsequentn * calls to the debounced function return the result of the last `func`n * invocation.n *n * Note: If `leading` and `trailing` options are `true`, `func` isn * invoked on the trailing edge of the timeout only if the debounced functionn * is invoked more than once during the `wait` timeout.n *n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferredn * until to the next tick, similar to `setTimeout` with a timeout of `0`.n *n * See [David Corbacho's article](css-tricks.com/debouncing-throttling-explained-examples/)n * for details over the differences between `_.debounce` and `_.throttle`.n *n * @staticn * @memberOf _n * @since 0.1.0n * @category Functionn * @param {Function} func The function to debounce.n * @param {number} [wait=0] The number of milliseconds to delay.n * @param {Object} [options={}] The options object.n * @param {boolean} [options.leading=false]n * Specify invoking on the leading edge of the timeout.n * @param {number} [options.maxWait]n * The maximum time `func` is allowed to be delayed before it's invoked.n * @param {boolean} [options.trailing=true]n * Specify invoking on the trailing edge of the timeout.n * @returns {Function} Returns the new debounced function.n * @examplen *n * // Avoid costly calculations while the window size is in flux.n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));n *n * // Invoke `sendMail` when clicked, debouncing subsequent calls.n * jQuery(element).on('click', _.debounce(sendMail, 300, {n * 'leading': true,n * 'trailing': falsen * }));n *n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });n * var source = new EventSource('/stream');n * jQuery(source).on('message', debounced);n *n * // Cancel the trailing debounced invocation.n * jQuery(window).on('popstate', debounced.cancel);n */nfunction debounce(func, wait, options) {n var lastArgs,n lastThis,n maxWait,n result,n timerId,n lastCallTime,n lastInvokeTime = 0,n leading = false,n maxing = false,n trailing = true;nn if (typeof func != 'function') {n throw new TypeError(FUNC_ERROR_TEXT);n }n wait = toNumber(wait) || 0;n if (isObject(options)) {n leading = !!options.leading;n maxing = 'maxWait' in options;n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;n trailing = 'trailing' in options ? !!options.trailing : trailing;n }nn function invokeFunc(time) {n var args = lastArgs,n thisArg = lastThis;nn lastArgs = lastThis = undefined;n lastInvokeTime = time;n result = func.apply(thisArg, args);n return result;n }nn function leadingEdge(time) {n // Reset any `maxWait` timer.n lastInvokeTime = time;n // Start the timer for the trailing edge.n timerId = setTimeout(timerExpired, wait);n // Invoke the leading edge.n return leading ? invokeFunc(time) : result;n }nn function remainingWait(time) {n var timeSinceLastCall = time - lastCallTime,n timeSinceLastInvoke = time - lastInvokeTime,n result = wait - timeSinceLastCall;nn return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;n }nn function shouldInvoke(time) {n var timeSinceLastCall = time - lastCallTime,n timeSinceLastInvoke = time - lastInvokeTime;nn // Either this is the first call, activity has stopped and we're at then // trailing edge, the system time has gone backwards and we're treatingn // it as the trailing edge, or we've hit the `maxWait` limit.n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));n }nn function timerExpired() {n var time = now();n if (shouldInvoke(time)) {n return trailingEdge(time);n }n // Restart the timer.n timerId = setTimeout(timerExpired, remainingWait(time));n }nn function trailingEdge(time) {n timerId = undefined;nn // Only invoke if we have `lastArgs` which means `func` has beenn // debounced at least once.n if (trailing && lastArgs) {n return invokeFunc(time);n }n lastArgs = lastThis = undefined;n return result;n }nn function cancel() {n if (timerId !== undefined) {n clearTimeout(timerId);n }n lastInvokeTime = 0;n lastArgs = lastCallTime = lastThis = timerId = undefined;n }nn function flush() {n return timerId === undefined ? result : trailingEdge(now());n }nn function debounced() {n var time = now(),n isInvoking = shouldInvoke(time);nn lastArgs = arguments;n lastThis = this;n lastCallTime = time;nn if (isInvoking) {n if (timerId === undefined) {n return leadingEdge(lastCallTime);n }n if (maxing) {n // Handle invocations in a tight loop.n timerId = setTimeout(timerExpired, wait);n return invokeFunc(lastCallTime);n }n }n if (timerId === undefined) {n timerId = setTimeout(timerExpired, wait);n }n return result;n }n debounced.cancel = cancel;n debounced.flush = flush;n return debounced;n}nn/**n * Checks if `value` is then * [language type](www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)n *n * @staticn * @memberOf _n * @since 0.1.0n * @category Langn * @param {*} value The value to check.n * @returns {boolean} Returns `true` if `value` is an object, else `false`.n * @examplen *n * _.isObject({});n * // => truen *n * _.isObject([1, 2, 3]);n * // => truen *n * .isObject(.noop);n * // => truen *n * _.isObject(null);n * // => falsen */nfunction isObject(value) {n var type = typeof value;n return !!value && (type == 'object' || type == 'function');n}nn/**n * Checks if `value` is object-like. A value is object-like if it's not `null`n * and has a `typeof` result of "object".n *n * @staticn * @memberOf _n * @since 4.0.0n * @category Langn * @param {*} value The value to check.n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.n * @examplen *n * _.isObjectLike({});n * // => truen *n * _.isObjectLike([1, 2, 3]);n * // => truen *n * .isObjectLike(.noop);n * // => falsen *n * _.isObjectLike(null);n * // => falsen */nfunction isObjectLike(value) {n return !!value && typeof value == 'object';n}nn/**n * Checks if `value` is classified as a `Symbol` primitive or object.n *n * @staticn * @memberOf _n * @since 4.0.0n * @category Langn * @param {*} value The value to check.n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.n * @examplen *n * _.isSymbol(Symbol.iterator);n * // => truen *n * _.isSymbol('abc');n * // => falsen */nfunction isSymbol(value) {n return typeof value == 'symbol' ||n (isObjectLike(value) && objectToString.call(value) == symbolTag);n}nn/**n * Converts `value` to a number.n *n * @staticn * @memberOf _n * @since 4.0.0n * @category Langn * @param {*} value The value to process.n * @returns {number} Returns the number.n * @examplen *n * _.toNumber(3.2);n * // => 3.2n *n * _.toNumber(Number.MIN_VALUE);n * // => 5e-324n *n * _.toNumber(Infinity);n * // => Infinityn *n * _.toNumber('3.2');n * // => 3.2n */nfunction toNumber(value) {n if (typeof value == 'number') {n return value;n }n if (isSymbol(value)) {n return NAN;n }n if (isObject(value)) {n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;n value = isObject(other) ? (other + '') : other;n }n if (typeof value != 'string') {n return value === 0 ? value : +value;n }n value = value.replace(reTrim, '');n var isBinary = reIsBinary.test(value);n return (isBinary || reIsOctal.test(value))n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)n : (reIsBadHex.test(value) ? NAN : +value);n}nnmodule.exports = debounce;n“,”/*nobject-assignn© Sindre Sorhusn@license MITn*/nn'use strict';n/* eslint-disable no-unused-vars */nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;nvar hasOwnProperty = Object.prototype.hasOwnProperty;nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;nnfunction toObject(val) {ntif (val === null || val === undefined) {nttthrow new TypeError('Object.assign cannot be called with null or undefined');nt}nntreturn Object(val);n}nnfunction shouldUseNative() {nttry {nttif (!Object.assign) {ntttreturn false;ntt}nntt// Detect buggy property enumeration order in older V8 versions.nntt// bugs.chromium.org/p/v8/issues/detail?id=4118nttvar test1 = new String('abc'); // eslint-disable-line no-new-wrappersntttest1 = 'de';nttif (Object.getOwnPropertyNames(test1) === '5') {ntttreturn false;ntt}nntt// bugs.chromium.org/p/v8/issues/detail?id=3056nttvar test2 = {};nttfor (var i = 0; i < 10; i++) {nttttest2['_' + String.fromCharCode(i)] = i;ntt}nttvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {ntttreturn test2;ntt});nttif (order2.join('') !== '0123456789') {ntttreturn false;ntt}nntt// bugs.chromium.org/p/v8/issues/detail?id=3056nttvar test3 = {};ntt'abcdefghijklmnopqrst'.split('').forEach(function (letter) {nttttest3 = letter;ntt});nttif (Object.keys(Object.assign({}, test3)).join('') !==ntttt'abcdefghijklmnopqrst') {ntttreturn false;ntt}nnttreturn true;nt} catch (err) {ntt// We don't expect any of the above to throw, but better to be safe.nttreturn false;nt}n}nnmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {ntvar from;ntvar to = toObject(target);ntvar symbols;nntfor (var s = 1; s < arguments.length; s++) {nttfrom = Object(arguments);nnttfor (var key in from) {ntttif (hasOwnProperty.call(from, key)) {nttttto = from;nttt}ntt}nnttif (getOwnPropertySymbols) {ntttsymbols = getOwnPropertySymbols(from);ntttfor (var i = 0; i < symbols.length; i++) {nttttif (propIsEnumerable.call(from, symbols)) {ntttttto[symbols] = from[symbols];ntttt}nttt}ntt}nt}nntreturn to;n};n“,”const assign = require('object-assign');nconst delegate = require('../delegate');nconst delegateAll = require('../delegateAll');nnconst DELEGATE_PATTERN = /^(.+):delegate\((.+)\)$/;nconst SPACE = ' ';nnconst getListeners = function(type, handler) {n var match = type.match(DELEGATE_PATTERN);n var selector;n if (match) {n type = match;n selector = match;n }nn var options;n if (typeof handler === 'object') {n options = {n capture: popKey(handler, 'capture'),n passive: popKey(handler, 'passive')n };n }nn var listener = {n selector: selector,n delegate: (typeof handler === 'object')n ? delegateAll(handler)n : selectorn ? delegate(selector, handler)n : handler,n options: optionsn };nn if (type.indexOf(SPACE) > -1) {n return type.split(SPACE).map(function(_type) {n return assign({type: _type}, listener);n });n } else {n listener.type = type;n return [listener];n }n};nnvar popKey = function(obj, key) {n var value = obj;n delete obj;n return value;n};nnmodule.exports = function behavior(events, props) {n const listeners = Object.keys(events)n .reduce(function(memo, type) {n var listeners = getListeners(type, events);n return memo.concat(listeners);n }, []);nn return assign({n add: function addBehavior(element) {n listeners.forEach(function(listener) {n element.addEventListener(n listener.type,n listener.delegate,n listener.optionsn );n });n },n remove: function removeBehavior(element) {n listeners.forEach(function(listener) {n element.removeEventListener(n listener.type,n listener.delegate,n listener.optionsn );n });n }n }, props);n};n“,”module.exports = function compose(functions) {n return function(e) {n return functions.some(function(fn) {n return fn.call(this, e) === false;n }, this);n };n};n“,”// polyfill Element.prototype.closestnrequire('element-closest');nnmodule.exports = function delegate(selector, fn) {n return function delegation(event) {n var target = event.target.closest(selector);n if (target) {n return fn.call(target, event);n }n }n};n“,”const delegate = require('../delegate');nconst compose = require('../compose');nnconst SPLAT = '*';nnmodule.exports = function delegateAll(selectors) {n const keys = Object.keys(selectors)nn // XXX optimization: if there is only one handler and it applies ton // all elements (the "*" CSS selector), then just return thatn // handlern if (keys.length === 1 && keys === SPLAT) {n return selectors;n }nn const delegates = keys.reduce(function(memo, selector) {n memo.push(delegate(selector, selectors));n return memo;n }, []);n return compose(delegates);n};n“,”module.exports = function ignore(element, fn) {n return function ignorance(e) {n if (element !== e.target && !element.contains(e.target)) {n return fn.call(this, e);n }n };n};n“,”module.exports = {n behavior: require('./behavior'),n delegate: require('./delegate'),n delegateAll: require('./delegateAll'),n ignore: require('./ignore'),n keymap: require('./keymap'),n};n“,”require('keyboardevent-key-polyfill');nn// these are the only relevant modifiers supported on all platforms,n// according to MDN:n// <event[MODIFIERS] === true) {n key = [modifier, key].join(MODIFIER_SEPARATOR);n }n }n }n return key;n};nnmodule.exports = function keymap(keys) {n const hasModifiers = Object.keys(keys).some(function(key) {n return key.indexOf(MODIFIER_SEPARATOR) > -1;n });n return function(event) {n var key = getEventKey(event, hasModifiers);n return [key, key.toLowerCase()]n .reduce(function(result, _key) {n if (_key in keys) {n result = keys.call(this, event);n }n return result;n }, undefined);n };n};nnmodule.exports.MODIFIERS = MODIFIERS;n”,“module.exports = function once(listener, options) {n var wrapped = function wrappedOnce(e) {n e.currentTarget.removeEventListener(e.type, wrapped, options);n return listener.call(this, e);n };n return wrapped;n};nn”,“'use strict';nnvar RE_TRIM = /(^\s+)|(\s+$)/g;nvar RE_SPLIT = /\s+/;nnvar trim = String.prototype.trimn ? function(str) { return str.trim(); }n : function(str) { return str.replace(RE_TRIM, ''); };nnvar queryById = function(id) {n return this.querySelector('[id="' + id.replace(/"/g, '\\"') + '"]');n};nnmodule.exports = function resolveIds(ids, doc) {n if (typeof ids !== 'string') {n throw new Error('Expected a string but got ' + (typeof ids));n }nn if (!doc) {n doc = window.document;n }nn var getElementById = doc.getElementByIdn ? doc.getElementById.bind(doc)n : queryById.bind(doc);nn ids = trim(ids).split(RE_SPLIT);nn // XXX we can short-circuit here because trimming and splitting an // string of just whitespace produces an array containing a single,n // empty stringn if (ids.length === 1 && ids === '') {n return [];n }nn return idsn .map(function(id) {n var el = getElementById(id);n if (!el) {n throw new Error('no element with id: "' + id + '"');n }n return el;n });n};n”,“const assign = require('object-assign');nconst filter = require('array-filter');nconst forEach = require('array-foreach');nconst behavior = require('../utils/behavior');nconst toggle = require('../utils/toggle');nconst isElementInViewport = require('../utils/is-in-viewport');nconst { CLICK } = require('../events');nconst { prefix: PREFIX } = require('../config');nn// XXX match .usa-accordion and .usa-accordion-borderednconst ACCORDION = `.${PREFIX}-accordion, .${PREFIX}-accordion-bordered`;nconst BUTTON = `.${PREFIX}-accordion-button`;nconst EXPANDED = 'aria-expanded';nconst MULTISELECTABLE = 'aria-multiselectable';nn/**n * Get an Array of button elements belonging directly to the givenn * accordion element.n * @param {HTMLElement} accordionn * @return {array<HTMLButtonElement>}n */nconst getAccordionButtons = (accordion) => {n const buttons = accordion.querySelectorAll(BUTTON);nn return filter(buttons, button => button.closest(ACCORDION) === accordion);n};nn/**n * Toggle a button's "pressed" state, optionally providing a targetn * state.n *n * @param {HTMLButtonElement} buttonn * @param {boolean?} expanded If no state is provided, the currentn * state will be toggled (from false to true, and vice-versa).n * @return {boolean} the resulting staten */nconst toggleButton = (button, expanded) => {n const accordion = button.closest(ACCORDION);n let safeExpanded = expanded;n if (!accordion) {n throw new Error(`${BUTTON} is missing outer ${ACCORDION}`);n }nn safeExpanded = toggle(button, expanded);nn // XXX multiselectable is opt-in, to preserve legacy behaviorn const multiselectable = accordion.getAttribute(MULTISELECTABLE) === 'true';nn if (safeExpanded && !multiselectable) {n forEach(getAccordionButtons(accordion), (other) => {n if (other !== button) {n toggle(other, false);n }n });n }n};nn/**n * @param {HTMLButtonElement} buttonn * @return {boolean} truen */nconst showButton = button => toggleButton(button, true);nn/**n * @param {HTMLButtonElement} buttonn * @return {boolean} falsen */nconst hideButton = button => toggleButton(button, false);nnconst accordion = behavior({n [CLICK]: {n [BUTTON](event) {n event.preventDefault();n toggleButton(this);nn if (this.getAttribute(EXPANDED) === 'true') {n // We were just expanded, but if another accordion was also justn // collapsed, we may no longer be in the viewport. This ensuresn // that we are still visible, so the user isn't confused.n if (!isElementInViewport(this)) this.scrollIntoView();n }n },n },n}, {n init(root) {n forEach(root.querySelectorAll(BUTTON), (button) => {n const expanded = button.getAttribute(EXPANDED) === 'true';n toggleButton(button, expanded);n });n },n ACCORDION,n BUTTON,n show: showButton,n hide: hideButton,n toggle: toggleButton,n getButtons: getAccordionButtons,n});nn/**n * TODO: for 2.0, remove everything below this comment and export then * behavior directly:n *n * module.exports = behavior({…});n */nconst Accordion = function (root) {n this.root = root;n accordion.on(this.root);n};nn// copy all of the behavior methods and props to Accordionnassign(Accordion, accordion);nnAccordion.prototype.show = showButton;nAccordion.prototype.hide = hideButton;nnAccordion.prototype.remove = function () {n accordion.off(this.root);n};nnmodule.exports = Accordion;n”,“const behavior = require('../utils/behavior');nnconst { CLICK } = require('../events');nconst { prefix: PREFIX } = require('../config');nnconst HEADER = `.${PREFIX}-banner-header`;nconst EXPANDED_CLASS = `${PREFIX}-banner-header-expanded`;nnconst toggleBanner = function toggleEl(event) {n event.preventDefault();n this.closest(HEADER).classList.toggle(EXPANDED_CLASS);nn return false;n};nnmodule.exports = behavior({n [CLICK]: {n [`${HEADER} [aria-controls]`]: toggleBanner,n },n});n”,“nconst debounce = require('lodash.debounce');nconst forEach = require('array-foreach');nconst behavior = require('../utils/behavior');nconst select = require('../utils/select');nnconst { CLICK } = require('../events');nconst { prefix: PREFIX } = require('../config');nnconst HIDDEN = 'hidden';nconst SCOPE = `.${PREFIX}-footer-big`;nconst NAV = `${SCOPE} nav`;nconst BUTTON = `${NAV} .${PREFIX}-footer-primary-link`;nconst LIST = `${NAV} ul`;nnconst HIDE_MAX_WIDTH = 600;nconst DEBOUNCE_RATE = 180;nnfunction showPanel() {n if (window.innerWidth < HIDE_MAX_WIDTH) {n const list = this.closest(LIST);n list.classList.toggle(HIDDEN);nn // NB: this should always succeed because the buttonn // selector is scoped to ".{prefix}-footer-big nav"n const lists = list.closest(NAV)n .querySelectorAll('ul');nn forEach(lists, (el) => {n if (el !== list) {n el.classList.add(HIDDEN);n }n });n }n}nnconst resize = debounce(() => {n const hidden = window.innerWidth < HIDE_MAX_WIDTH;n forEach(select(LIST), (list) => {n list.classList.toggle(HIDDEN, hidden);n });n}, DEBOUNCE_RATE);nnmodule.exports = behavior({n [CLICK]: {n [BUTTON]: showPanel,n },n}, {n // export for use elsewheren HIDE_MAX_WIDTH,n DEBOUNCE_RATE,nn init() {n resize();n window.addEventListener('resize', resize);n },nn teardown() {n window.removeEventListener('resize', resize);n },n});n”,“const accordion = require('./accordion');nconst banner = require('./banner');nconst footer = require('./footer');nconst navigation = require('./navigation');nconst password = require('./password');nconst search = require('./search');nconst skipnav = require('./skipnav');nconst validator = require('./validator');nnmodule.exports = {n accordion,n banner,n footer,n navigation,n password,n search,n skipnav,n validator,n};n”,“const assign = require('object-assign');nconst forEach = require('array-foreach');nconst behavior = require('../utils/behavior');nconst select = require('../utils/select');nconst FocusTrap = require('../utils/focus-trap');nconst accordion = require('./accordion');nnconst { CLICK } = require('../events');nconst { prefix: PREFIX } = require('../config');nnconst NAV = `.${PREFIX}-nav`;nconst NAV_LINKS = `${NAV} a`;nconst OPENERS = `.${PREFIX}-menu-btn`;nconst CLOSE_BUTTON = `.${PREFIX}-nav-close`;nconst OVERLAY = `.${PREFIX}-overlay`;nconst CLOSERS = `${CLOSE_BUTTON}, .${PREFIX}-overlay`;nconst TOGGLES = [NAV, OVERLAY].join(', ');nnconst ACTIVE_CLASS = 'usa-mobile_nav-active';nconst VISIBLE_CLASS = 'is-visible';nnlet navigation;nnconst isActive = () => document.body.classList.contains(ACTIVE_CLASS);nnconst toggleNav = function (active) {n const { body } = document;n const safeActive = typeof active === 'boolean' ? active : !isActive();nn body.classList.toggle(ACTIVE_CLASS, safeActive);nn forEach(select(TOGGLES), el => el.classList.toggle(VISIBLE_CLASS, safeActive));nn navigation.focusTrap.update(safeActive);nn const closeButton = body.querySelector(CLOSE_BUTTON);n const menuButton = body.querySelector(OPENERS);nn if (safeActive && closeButton) {n // The mobile nav was just activated, so focus on the close button,n // which is just before all the nav elements in the tab order.n closeButton.focus();n } else if (!safeActive && document.activeElement === closeButton && menuButton) {n // The mobile nav was just deactivated, and focus was on the closen // button, which is no longer visible. We don't want the focus ton // disappear into the void, so focus on the menu button if it'sn // visible (this may have been what the user was just focused on,n // if they triggered the mobile nav by mistake).n menuButton.focus();n }nn return safeActive;n};nnconst resize = () => {n const closer = document.body.querySelector(CLOSE_BUTTON);nn if (isActive() && closer && closer.getBoundingClientRect().width === 0) {n // The mobile nav is active, but the close box isn't visible, whichn // means the user's viewport has been resized so that it is no longern // in mobile mode. Let's make the page state consistent byn // deactivating the mobile nav.n navigation.toggleNav.call(closer, false);n }n};nnconst onMenuClose = () => navigation.toggleNav.call(navigation, false);nnnavigation = behavior({n [CLICK]: {n [OPENERS]: toggleNav,n [CLOSERS]: toggleNav,n [NAV_LINKS]() {n // A navigation link has been clicked! We want to collapse anyn // hierarchical navigation UI it's a part of, so that the usern // can focus on whatever they've just selected.nn // Some navigation links are inside accordions; when they'ren // clicked, we want to collapse those accordions.n const acc = this.closest(accordion.ACCORDION);nn if (acc) {n accordion.getButtons(acc).forEach(btn => accordion.hide(btn));n }nn // If the mobile navigation menu is active, we want to hide it.n if (isActive()) {n navigation.toggleNav.call(navigation, false);n }n },n },n}, {n init() {n const trapContainer = document.querySelector(NAV);nn if (trapContainer) {n navigation.focusTrap = FocusTrap(trapContainer, {n Escape: onMenuClose,n });n }nn resize();n window.addEventListener('resize', resize, false);n },n teardown() {n window.removeEventListener('resize', resize, false);n },n focusTrap: null,n toggleNav,n});nn/**n * TODO for 2.0, remove this statement and export `navigation` directly:n *n * module.exports = behavior({…});n */nmodule.exports = assign(n el => navigation.on(el),n navigationn);n”,“nconst behavior = require('../utils/behavior');nconst toggleFormInput = require('../utils/toggle-form-input');nnconst { CLICK } = require('../events');nconst { prefix: PREFIX } = require('../config');nnconst LINK = `.${PREFIX}-show_password, .${PREFIX}-show_multipassword`;nnfunction toggle(event) {n event.preventDefault();n toggleFormInput(this);n}nnmodule.exports = behavior({n [CLICK]: {n [LINK]: toggle,n },n});n”,“nconst assign = require('object-assign');nconst forEach = require('array-foreach');nconst ignore = require('receptor/ignore');nconst behavior = require('../utils/behavior');nconst select = require('../utils/select');nnconst { CLICK } = require('../events');nnconst BUTTON = '.js-search-button';nconst FORM = '.js-search-form';nconst INPUT = '[type=search]';nconst CONTEXT = 'header'; // XXXnnlet lastButton;nnconst getForm = (button) => {n const context = button.closest(CONTEXT);n return contextn ? context.querySelector(FORM)n : document.querySelector(FORM);n};nnconst toggleSearch = (button, active) => {n const form = getForm(button);nn if (!form) {n throw new Error(`No ${FORM} found for search toggle in ${CONTEXT}!`);n }nn /* eslint-disable no-param-reassign */n button.hidden = active;n form.hidden = !active;n /* eslint-enable*/nn if (!active) {n return;n }nn const input = form.querySelector(INPUT);nn if (input) {n input.focus();n }n // when the user clicks outside of the form w/ignore(): hide then // search, then remove the listenern const listener = ignore(form, () => {n if (lastButton) {n hideSearch.call(lastButton); // eslint-disable-line no-use-before-definen }nn document.body.removeEventListener(CLICK, listener);n });nn // Normally we would just run this code without a timeout, butn // IE11 and Edge will actually call the listener immediately becausen // they are currently handling this exact type of event, so we'lln // make sure the browser is done handling the current click event,n // if any, before we attach the listener.n setTimeout(() => {n document.body.addEventListener(CLICK, listener);n }, 0);n};nnfunction showSearch() {n toggleSearch(this, true);n lastButton = this;n}nnfunction hideSearch() {n toggleSearch(this, false);n lastButton = undefined;n}nnconst search = behavior({n [CLICK]: {n [BUTTON]: showSearch,n },n}, {n init(target) {n forEach(select(BUTTON, target), (button) => {n toggleSearch(button, false);n });n },n teardown() {n // forget the last button clickedn lastButton = undefined;n },n});nn/**n * TODO for 2.0, remove this statement and export `navigation` directly:n *n * module.exports = behavior({…});n */nnmodule.exports = assign(n el => search.on(el),n searchn);n”,“nconst once = require('receptor/once');nconst behavior = require('../utils/behavior');nnconst { CLICK } = require('../events');nconst { prefix: PREFIX } = require('../config');nnconst LINK = `.${PREFIX}-skipnav, .${PREFIX}-footer-return-to-top [href^="#"]`;nconst MAINCONTENT = 'main-content';nnfunction setTabindex() {n // NB: we know because of the selector we're delegating to below that then // href already begins with '#'n const id = this.getAttribute('href');n const target = document.getElementById((id === '#') ? MAINCONTENT : id.slice(1));nn if (target) {n target.style.outline = '0';n target.setAttribute('tabindex', 0);n target.focus();n target.addEventListener('blur', once(() => {n target.setAttribute('tabindex', -1);n }));n } else {n // throw an error?n }n}nnmodule.exports = behavior({n [CLICK]: {n [LINK]: setTabindex,n },n});n”,“const assign = require('object-assign');nconst behavior = require('../utils/behavior');nconst validate = require('../utils/validate-input');nnfunction change() {n validate(this);n}nnconst validator = behavior({n 'keyup change': {n 'input': change,n },n});nn/**n * TODO for 2.0, remove this statement and export `navigation` directly:n *n * module.exports = behavior({…});n */nnmodule.exports = assign(n el => validator.on(el),n validatorn);n”,“module.exports = {n prefix: 'usa',n};n”,“module.exports = {n // This used to be conditionally dependent on whether then // browser supported touch events; if it did, `CLICK` was set ton // `touchstart`. However, this had downsides:n //n // * It pre-empted mobile browsers' default behavior of detectingn // whether a touch turned into a scroll, thereby preventingn // users from using some of our components as scroll surfaces.n //n // * Some devices, such as the Microsoft Surface Pro, support bothn // touch and clicks. This meant the conditional effectively droppedn // support for the user's mouse, frustrating users who preferredn // it on those systems.n CLICK: 'click',n};n”,“nconst elproto = window.HTMLElement.prototype;nconst HIDDEN = 'hidden';nnif (!(HIDDEN in elproto)) {n Object.defineProperty(elproto, HIDDEN, {n get() {n return this.hasAttribute(HIDDEN);n },n set(value) {n if (value) {n this.setAttribute(HIDDEN, '');n } else {n this.removeAttribute(HIDDEN);n }n },n });n}n”,“n// polyfills HTMLElement.prototype.classList and DOMTokenListnrequire('classlist-polyfill');n// polyfills HTMLElement.prototype.hiddennrequire('./element-hidden');n”,“nconst domready = require('domready');nn/**n * The 'polyfills' define key ECMAScript 5 methods that may be missing fromn * older browsers, so must be loaded first.n */nrequire('./polyfills');nnconst uswds = require('./config');nnconst components = require('./components');nnuswds.components = components;nndomready(() => {n const target = document.body;n Object.keys(components)n .forEach((key) => {n const behavior = components;n behavior.on(target);n });n});nnmodule.exports = uswds;n”,“module.exports = (htmlDocument = document) => htmlDocument.activeElement;n”,“const assign = require('object-assign');nconst forEach = require('array-foreach');nconst Behavior = require('receptor/behavior');nn/**n * @name sequencen * @param {…Function} seq an array of functionsn * @return { closure } callHooksn */n// We use a named function here because we want it to inherit its lexical scopen// from the behavior props object, not from the modulenconst sequence = (…seq) => function callHooks(target = document.body) {n forEach(seq, (method) => {n if (typeof this === 'function') {n this.call(this, target);n }n });n};nn/**n * @name behaviorn * @param {object} eventsn * @param {object?} propsn * @return {receptor.behavior}n */nmodule.exports = (events, props) => Behavior(events, assign({n on: sequence('init', 'add'),n off: sequence('teardown', 'remove'),n}, props));n”,“const assign = require('object-assign');nconst { keymap } = require('receptor');nconst behavior = require('./behavior');nconst select = require('./select');nconst activeElement = require('./active-element');nnconst FOCUSABLE = 'a, area, input:not(), select:not(), textarea:not(), button:not(), iframe, object, embed, [tabindex="0"], [contenteditable]';nnconst tabHandler = (context) => {n const focusableElements = select(FOCUSABLE, context);n const firstTabStop = focusableElements;n const lastTabStop = focusableElements[focusableElements.length - 1];nn // Special rules for when the user is tabbing forward from the last focusable element,n // or when tabbing backwards from the first focusable elementn function tabAhead(event) {n if (activeElement() === lastTabStop) {n event.preventDefault();n firstTabStop.focus();n }n }nn function tabBack(event) {n if (activeElement() === firstTabStop) {n event.preventDefault();n lastTabStop.focus();n }n }nn return {n firstTabStop,n lastTabStop,n tabAhead,n tabBack,n };n};nnmodule.exports = (context, additionalKeyBindings = {}) => {n const tabEventHandler = tabHandler(context);nn // TODO: In the future, loop over additional keybindings and pass an arrayn // of functions, if necessary, to the map keys. Then people implementingn // the focus trap could pass callbacks to fire when tabbingn const keyMappings = keymap(assign({n Tab: tabEventHandler.tabAhead,n 'Shift+Tab': tabEventHandler.tabBack,n }, additionalKeyBindings));nn const focusTrap = behavior({n keydown: keyMappings,n }, {n init() {n // TODO: is this desireable behavior? Should the trap always do this by default or shouldn // the component getting decorated handle this?n tabEventHandler.firstTabStop.focus();n },n update(isActive) {n if (isActive) {n this.on();n } else {n this.off();n }n },n });nn return focusTrap;n};n”,“// stackoverflow.com/a/7557433nfunction isElementInViewport(el, win = window,n docEl = document.documentElement) {n const rect = el.getBoundingClientRect();nn return (n rect.top >= 0n && rect.left >= 0n && rect.bottom <= (win.innerHeight || docEl.clientHeight)n && rect.right <= (win.innerWidth || docEl.clientWidth)n );n}nnmodule.exports = isElementInViewport;n”,“nn/**n * @name isElementn * @desc returns whether or not the given argument is a DOM element.n * @param {any} valuen * @return {boolean}n */nconst isElement = value => value && typeof value === 'object' && value.nodeType === 1;nn/**n * @name selectn * @desc selects elements from the DOM by class selector or ID selector.n * @param {string} selector - The selector to traverse the DOM with.n * @param {Document|HTMLElement?} context - The context to traverse the DOMn * in. If not provided, it defaults to the document.n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.n */nmodule.exports = (selector, context) => {n if (typeof selector !== 'string') {n return [];n }nn if (!context || !isElement(context)) {n context = window.document; // eslint-disable-line no-param-reassignn }nn const selection = context.querySelectorAll(selector);n return Array.prototype.slice.call(selection);n};n”,“/**n * Flips given INPUT elements between masked (hiding the field value) and unmaskedn * @param {Array.HTMLElement} fields - An array of INPUT elementsn * @param {Boolean} mask - Whether the mask should be applied, hiding the field valuen */nmodule.exports = (field, mask) => {n field.setAttribute('autocapitalize', 'off');n field.setAttribute('autocorrect', 'off');n field.setAttribute('type', mask ? 'password' : 'text');n};n”,“const forEach = require('array-foreach');nconst resolveIdRefs = require('resolve-id-refs');nconst toggleFieldMask = require('./toggle-field-mask');nnconst CONTROLS = 'aria-controls';nconst PRESSED = 'aria-pressed';nconst SHOW_ATTR = 'data-show-text';nconst HIDE_ATTR = 'data-hide-text';nn/**n * Replace the word "Show" (or "show") with "Hide" (or "hide") in a string.n * @param {string} showTextn * @return {strong} hideTextn */nconst getHideText = showText => showText.replace(/\bShow\b/i, show => `${show === 'S' ? 'H' : 'h'}ide`);nn/**n * Component that decorates an HTML element with the ability to toggle then * masked state of an input field (like a password) when clicked.n * The ids of the fields to be masked will be pulled directly from the button'sn * `aria-controls` attribute.n *n * @param {HTMLElement} el Parent element containing the fields to be maskedn * @return {boolean}n */nmodule.exports = (el) => {n // this is the target state:n // * if the element has the attr and it's !== "true", pressed is truen // * otherwise, pressed is falsen const pressed = el.hasAttribute(PRESSED)n && el.getAttribute(PRESSED) !== 'true';nn const fields = resolveIdRefs(el.getAttribute(CONTROLS));n forEach(fields, field => toggleFieldMask(field, pressed));nn if (!el.hasAttribute(SHOW_ATTR)) {n el.setAttribute(SHOW_ATTR, el.textContent);n }nn const showText = el.getAttribute(SHOW_ATTR);n const hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);nn el.textContent = pressed ? showText : hideText; // eslint-disable-line no-param-reassignn el.setAttribute(PRESSED, pressed);n return pressed;n};n”,“const EXPANDED = 'aria-expanded';nconst CONTROLS = 'aria-controls';nconst HIDDEN = 'aria-hidden';nnmodule.exports = (button, expanded) => {n let safeExpanded = expanded;nn if (typeof safeExpanded !== 'boolean') {n safeExpanded = button.getAttribute(EXPANDED) === 'false';n }nn button.setAttribute(EXPANDED, safeExpanded);nn const id = button.getAttribute(CONTROLS);n const controls = document.getElementById(id);n if (!controls) {n throw new Error(`No toggle target found with id: "${id}"`);n }nn controls.setAttribute(HIDDEN, !safeExpanded);nn return safeExpanded;n};n”,“nconst dataset = require('elem-dataset');nnconst { prefix: PREFIX } = require('../config');nnconst CHECKED = 'aria-checked';nconst CHECKED_CLASS = `${PREFIX}-checklist-checked`;nnmodule.exports = function validate(el) {n const data = dataset(el);n const id = data.validationElement;n const checkList = id.charAt(0) === '#'n ? document.querySelector(id)n : document.getElementById(id);nn if (!checkList) {n throw new Error(`No validation element found with id: "${id}"`);n }nn Object.entries(data).forEach(([key, value]) => {n if (key.startsWith('validate')) {n const validatorName = key.substr('validate'.length).toLowerCase();n const validatorPattern = new RegExp(value);n const validatorSelector = `[data-validator="${validatorName}"]`;n const validatorCheckbox = checkList.querySelector(validatorSelector);nn if (!validatorCheckbox) {n throw new Error(`No validator checkbox found for: "${validatorName}"`);n }nn const checked = validatorPattern.test(el.value);n validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);n validatorCheckbox.setAttribute(CHECKED, checked);n }n });n};n”]}