{"version":3,"sources":["webpack:////build/source/node_modules/@gitlab/ui/dist/components/shared_components/clear_icon_button/clear_icon_button.js","webpack:///./graphql_shared/constants.js","webpack:////build/source/node_modules/deckar01-task_list/dist/task_list.js","webpack:////build/source/node_modules/lodash/_compareMultiple.js","webpack:///./helpers/event_hub_factory.js","webpack:////build/source/node_modules/lodash/_baseOrderBy.js","webpack:////build/source/node_modules/visibilityjs/index.js","webpack:///./invite_members/event_hub.js","webpack:////build/source/node_modules/lodash/_compareAscending.js","webpack:////build/source/node_modules/dropzone/dist/dropzone.js","webpack:///./graphql_shared/utils.js","webpack:////build/source/node_modules/core-js/modules/esnext.string.at.js","webpack:///./invite_members/components/invite_members_trigger.vue","webpack:///./invite_members/components/invite_members_trigger.vue?f47d","webpack:///invite_members/components/invite_members_trigger.vue","webpack:///./invite_members/components/invite_members_trigger.vue?c527","webpack:////build/source/node_modules/lodash/isError.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/drawer/drawer.js","webpack:////build/source/node_modules/visibilityjs/lib/visibility.timers.js","webpack:///./task_list.js","webpack:////build/source/node_modules/lodash/_baseMap.js","webpack:////build/source/node_modules/lodash/sortBy.js","webpack:////build/source/node_modules/mousetrap/plugins/pause/mousetrap-pause.js","webpack:////build/source/node_modules/lodash/escapeRegExp.js","webpack:///./invite_members/constants.js","webpack:////build/source/node_modules/visibilityjs/lib/visibility.core.js","webpack:////build/source/node_modules/portal-vue/dist/portal-vue.common.js","webpack:////build/source/node_modules/core-js/internals/string-multibyte.js","webpack:////build/source/node_modules/lodash/_baseSortBy.js","webpack:///./vue_shared/plugins/global_toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/toaster.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/toast/toast.js"],"names":["__vue_script__","name","components","GlButton","directives","GlTooltip","props","title","type","String","required","default","tooltipContainer","validator","value","HTMLElement","__vue_component__","render","_h","this","$createElement","_self","_c","_g","rawName","container","expression","modifiers","staticClass","attrs","$listeners","staticRenderFns","undefined","MINIMUM_SEARCH_LENGTH","TYPENAME_BOARD","TYPENAME_CI_BUILD","TYPENAME_CI_RUNNER","TYPENAME_CI_PIPELINE","TYPENAME_CI_STAGE","TYPENAME_CI_TRIGGER","TYPENAME_CI_VARIABLE","TYPENAME_COMMIT_STATUS","TYPENAME_CONTAINER_REPOSITORY","TYPENAME_CRM_CONTACT","TYPENAME_CRM_ORGANIZATION","TYPENAME_DESIGN_VERSION","TYPENAME_DISCUSSION","TYPENAME_DISCUSSION_NOTE","TYPENAME_EPIC","TYPENAME_EPIC_BOARD","TYPENAME_FEATURE_FLAG","TYPENAME_GROUP","TYPENAME_ISSUE","TYPENAME_ITERATION","TYPENAME_ITERATIONS_CADENCE","TYPENAME_LABEL","TYPENAME_MEMBER_ROLE","TYPENAME_MERGE_REQUEST","TYPENAME_MILESTONE","TYPENAME_NOTE","TYPENAME_PACKAGES_PACKAGE","TYPENAME_PROJECT","TYPENAME_SCANNER_PROFILE","TYPENAME_SITE_PROFILE","TYPENAME_TODO","TYPENAME_USER","TYPENAME_VULNERABILITY","TYPENAME_WORK_ITEM","TYPENAME_WORK_ITEM_RELATED_BRANCH","TYPE_ORGANIZATION","TYPE_USERS_SAVED_REPLY","TYPE_WORKSPACE","TYPE_COMPLIANCE_FRAMEWORK","QUERY_PARAM_START_CURSOR","QUERY_PARAM_END_CURSOR","window","module","exports","e","t","n","r","i","l","call","m","c","d","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","__esModule","create","bind","prototype","hasOwnProperty","p","s","a","indexOf","Array","slice","apply","classList","contains","parentNode","Event","bubbles","cancelable","detail","document","createEvent","initCustomEvent","el","field","querySelector","addEventListener","target","updateTaskList","enable","querySelectorAll","length","forEach","add","disabled","dispatchEvent","remove","u","index","checked","defaultPrevented","result","lineNumber","lineSource","updateSource","replace","parentElement","hasAttribute","_updateSourcePosition","_updateSourceRegex","split","getAttribute","parseInt","incompletePattern","complete","completePattern","incomplete","join","itemsInParasPattern","f","match","endFencesPattern","startFencesPattern","trim","itemPattern","push","RegExp","escapePattern","jQuery","fn","taskList","each","data","compareAscending","object","other","orders","objCriteria","criteria","othCriteria","ordersLength","EventHub","constructor","$_all","Map","dispose","clear","$on","handler","handlers","set","$off","newHandlers","filter","x","delete","$once","_this","wrapHandler","args","$emit","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","isArray","collection","iteratees","iteratee","key","createEventHub","isSymbol","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","Dropzone","Emitter","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","noop","without","__slice","__hasProp","on","event","_callbacks","emit","callbacks","_i","_len","arguments","removeListener","off","removeAllListeners","removeEventListener","splice","_super","extend","resolveOption","element","options","elementOptions","fallback","_ref","version","defaultOptions","previewTemplate","clickableElements","listeners","files","nodeType","Error","dropzone","instances","optionsForElement","forceFallback","isBrowserSupported","url","acceptedFiles","acceptedMimeTypes","method","toUpperCase","getExistingFallback","removeChild","previewsContainer","getElement","clickable","getElements","init","child","parent","ctor","__super__","__extends","events","withCredentials","parallelUploads","uploadMultiple","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","filesizeBase","maxFiles","params","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","capture","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","accept","file","done","messageElement","span","className","getElementsByTagName","test","createElement","appendChild","textContent","innerText","getFallbackForm","resize","info","srcRatio","trgRatio","srcX","srcY","srcWidth","width","srcHeight","height","optWidth","optHeight","trgHeight","trgWidth","drop","dragstart","dragend","dragenter","dragover","dragleave","paste","reset","addedfile","removeFileEvent","removeLink","_j","_k","_len1","_len2","_ref1","_ref2","_results","previewElement","innerHTML","filesize","size","_removeLink","preventDefault","stopPropagation","status","UPLOADING","confirm","removeFile","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","thumbnailElement","alt","src","setTimeout","error","message","node","errormultiple","processing","processingmultiple","uploadprogress","progress","bytesSent","nodeName","style","totaluploadprogress","sending","sendingmultiple","success","successmultiple","canceled","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","objects","val","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","QUEUED","getUploadingFiles","getAddedFiles","ADDED","getActiveFiles","eventName","noPropagation","setupHiddenFileInput","tagName","setAttribute","hiddenFileInput","visibility","position","top","left","addFile","URL","webkitURL","updateTotalUploadProgress","returnValue","efct","dataTransfer","effectAllowed","_error","dropEffect","clickableElement","evt","elementInside","click","destroy","disable","removeAllFiles","totalBytes","totalBytesSent","totalUploadProgress","upload","total","_getParamName","existingFallback","fields","fieldsString","form","getFallback","elements","setupEventListeners","elementListeners","listener","_results1","removeEventListeners","cancelUpload","selectedSize","selectedUnit","unit","units","Math","pow","round","items","webkitGetAsEntry","_addFilesFromItems","handleFiles","clipboardData","entry","item","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","directory","path","dirReader","entriesReader","createReader","entries","substring","fullPath","readEntries","console","log","isValidFile","_enqueueThumbnail","_errorProcessing","enqueueFile","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","_processThumbnailQueue","createThumbnail","shift","cancelIfNecessary","callback","fileReader","FileReader","onload","createThumbnailFromUrl","readAsDataURL","imageUrl","crossOrigin","img","canvas","ctx","resizeInfo","_ref3","getContext","trgX","trgY","toDataURL","onerror","processingLength","queuedFiles","processFiles","processFile","uploadFiles","_getFilesWithXhr","xhr","groupedFile","groupedFiles","CANCELED","abort","option","uploadFile","formData","handleError","headerName","headerValue","headers","input","inputName","inputType","response","updateProgress","_l","_len3","_m","_ref4","_ref5","XMLHttpRequest","open","allFilesFinished","loaded","readyState","responseText","getResponseHeader","JSON","parse","_finished","onprogress","setRequestHeader","FormData","append","selected","toLowerCase","submitRequest","send","SUCCESS","ERROR","forElement","autoDiscover","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","File","FileList","Blob","navigator","userAgent","list","rejectedItem","str","charAt","string","div","childNodes","els","question","rejected","baseMimeType","mimeType","validType","ACCEPTED","PROCESSING","ey","ih","py","ratio","sy","naturalWidth","naturalHeight","drawImage","getImageData","sx","sw","sh","dx","dy","dw","dh","vertSquashRatio","win","doc","poll","pre","rem","root","documentElement","doScroll","createEventObject","frameElement","_autoDiscoverFunction","isGid","id","startsWith","parseGid","gid","getIdFromGraphQLId","rawId","Number","isInteger","getTypeFromGraphQLId","mutationOperationMode","convertToGraphQLId","TypeError","includes","convertToGraphQLIds","ids","map","convertNodeIdsFromGraphQLIds","nodes","_isArray","getNodesOrDefault","queryData","nodesField","_queryData$nodesField","toggleQueryPollingByVisibility","queryRef","interval","stopStartQuery","query","Visibility","hidden","stopPolling","startPolling","change","etagQueryHeaders","featureCorrelation","etagResource","fetchOptions","calculateGraphQLPaginationQueryParams","startCursor","endCursor","routeQuery","start_cursor","end_cursor","$","requireObjectCoercible","toIntegerOrInfinity","toString","proto","forced","at","S","len","relativeIndex","k","GlLink","GlDropdownItem","GlDisclosureDropdownItem","displayText","s__","icon","classes","variant","category","triggerSource","triggerElement","computed","componentAttributes","class","text","isButtonTrigger","TRIGGER_ELEMENT_BUTTON","isWithEmojiTrigger","TRIGGER_ELEMENT_WITH_EMOJI","isDropdownWithEmojiTrigger","TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI","isDisclosureTrigger","TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN","methods","openModal","eventHub","source","handleDisclosureDropdownAction","component","_vm","_b","_v","_s","baseGetTag","isObjectLike","isPlainObject","tag","Boolean","headerHeight","headerSticky","zIndex","keys","styles","positionFromTop","maxHeight","$slots","footer","watch","immediate","handleEscape","keyCode","emitOpened","variantClass","_t","$event","shouldRenderFooter","_e","lastTimer","install","every","hiddenInterval","_time","number","_timers","visible","_run","isSupported","_listen","stop","_stop","_timed","_wasHidden","_stopRun","runNow","timer","runner","last","Date","delay","setInterval","clearInterval","clearTimeout","isHidden","wasHidden","TaskList","selector","dataType","fieldName","lockVersion","taskListContainerSelector","updateHandler","update","onUpdate","onSuccess","onError","errorMessages","errors","createAlert","__","taskListField","dataset","getTaskListTarget","currentTarget","disableNonMarkdownTaskListItems","find","not","prop","updateInapplicableTaskListItems","disableTaskListItems","enableTaskListItems","$target","patchData","TYPE_INCIDENT","TYPE_ISSUE","lock_version","update_task","line_number","line_source","axios","patch","attr","then","catch","baseEach","isArrayLike","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","Mousetrap","_originalStopCallback","stopCallback","combo","paused","pause","unpause","reRegExpChar","reHasRegExpChar","PROJECT_SELECT_LABEL_ID","SEARCH_DELAY","VALID_TOKEN_BACKGROUND","WARNING_TOKEN_BACKGROUND","INVALID_TOKEN_BACKGROUND","TOAST_MESSAGE_LOCALSTORAGE_KEY","MEMBERS_WITH_QUEUED_STATUS_LOCALSTORAGE_KEY","GROUP_FILTERS","ALL","DESCENDANT_GROUPS","USERS_FILTER_ALL","USERS_FILTER_SAML_PROVIDER_ID","TOP_NAV_INVITE_MEMBERS_COMPONENT","INVITE_MEMBER_MODAL_TRACKING_CATEGORY","IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_CATEGORY","IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_LABEL","MEMBERS_MODAL_DEFAULT_TITLE","MEMBERS_MODAL_CELEBRATE_TITLE","MEMBERS_MODAL_CELEBRATE_INTRO","MEMBERS_TO_GROUP_DEFAULT_INTRO_TEXT","MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT","MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT","MEMBERS_SEARCH_FIELD","MEMBERS_PLACEHOLDER","GROUP_MODAL_DEFAULT_TITLE","GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT","GROUP_MODAL_TO_PROJECT_DEFAULT_INTRO_TEXT","GROUP_MODAL_TO_GROUP_ALERT_BODY","GROUP_MODAL_TO_GROUP_ALERT_LINK","helpPagePath","anchor","GROUP_MODAL_TO_PROJECT_ALERT_BODY","GROUP_MODAL_TO_PROJECT_ALERT_LINK","GROUP_SEARCH_FIELD","GROUP_PLACEHOLDER","ACCESS_LEVEL","ACCESS_EXPIRE_DATE","TOAST_MESSAGE_SUCCESSFUL","QUEUED_MESSAGE_SUCCESSFUL","INVALID_FEEDBACK_MESSAGE_DEFAULT","READ_MORE_TEXT","READ_MORE_ACCESS_EXPIRATION_TEXT","INVITE_BUTTON_TEXT","INVITE_BUTTON_TEXT_DISABLED","CANCEL_BUTTON_TEXT","HEADER_CLOSE_LABEL","MEMBER_ERROR_LIST_TEXT","COLLAPSED_ERRORS","EXPANDED_ERRORS","EMPTY_INVITES_ALERT_TEXT","MEMBER_MODAL_LABELS","modal","celebrate","intro","toGroup","introText","toProject","searchField","placeHolder","toastMessageSuccessful","memberErrorListText","collapsedErrors","expandedErrors","emptyInvitesAlertText","GROUP_MODAL_LABELS","notificationText","notificationLink","ON_SHOW_TRACK_LABEL","ON_CELEBRATION_TRACK_LABEL","WARNING_ALERT_TITLE","DANGER_ALERT_TITLE","REACHED_LIMIT_VARIANT","CLOSE_TO_LIMIT_VARIANT","REACHED_LIMIT_UPGRADE_SUGGESTION_MESSAGE","concat","CLOSE_TO_LIMIT_MESSAGE","BLOCKED_SEAT_OVERAGES_BODY","BLOCKED_SEAT_OVERAGES_CTA","BLOCKED_SEAT_OVERAGES_CTA_DOCS","BLOCKED_SEAT_OVERAGES_ERROR_REASON","global","lastId","self","onVisible","support","state","unbind","afterPrerendering","_doc","webkitHidden","visibilityState","webkitVisibilityState","_change","_init","attachEvent","ex","Vue","_typeof","obj","iterator","_toConsumableArray","arr","arr2","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","inBrowser","pick","reduce","acc","transports","targets","sources","wormhole","trackInstances","transport","to","passengers","_transport$order","order","Infinity","newTransport","freeze","compareFn","currentIndex","$_getTransportIndex","newTransports","b","v","idx","sort","close","force","registerTarget","vm","warn","$set","unregisterTarget","$delete","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_id","Portal","slim","slotProps","random","created","$nextTick","mounted","sendUpdate","updated","beforeDestroy","newValue","oldValue","closer","normalizeSlots","$scopedSlots","normalizeOwnChildren","children","slotContent","h","Tag","display","PortalTarget","multiple","transition","Function","firstRender","ownTransports","newVal","oldVal","_this2","temp","newPassengers","combinePassengers","noWrapper","_id$1","portalProps","targetProps","MountingPortal","inheritAttrs","bail","mountTo","targetSlim","targetSlotProps","targetTag","$props","portalTarget","mountEl","_props","$parent","propsData","$el","$destroy","manual","$attrs","scopedSlots","content","Vue$$1","portalName","portalTargetName","MountingPortalName","Wormhole","uncurryThis","charCodeAt","stringSlice","createMethod","CONVERT_TO_STRING","$this","pos","first","second","codeAt","array","comparer","use","GlToast","instance","showGlobalToast","$toast","show","DefaultTransition","mixins","afterEnter","onAfterEnter","normalizeSlot","ariaAtomic","ariaLive","role","BToaster","doRender","dead","staticName","emitOnRoot","$toaster","mixin","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","defaultValue","linkProps","appendToast","autoHideDelay","bodyClass","headerClass","headerTag","isStatus","noAutoHide","noFade","noHoverPause","solid","static","toastClass","toaster","BToast","isMounted","localShow","isTransitioning","isHiding","dismissStarted","resumeDismiss","hide","math","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","afterLeave","onAfterLeave","bvAttrs","safeId","tabindex","ensureToaster","$_dismissTimer","listenOnRoot","computedToaster","clearDismissTimer","showEvent","buildEvent","emitEvent","now","hideEvent","setHoverHandler","relatedTarget","vueTarget","componentId","bvEvent","body","bvEventRoot","$mount","computedDuration","$refs","onPause","onUnPause","passed","startDismissTimer","hiddenEvent","slotScope","link","$headerContent","$title","$header","$body","onLinkClick","computedAttrs","ref","isStatic","toastClasses","scopedStyleAttrs","transitionHandlers","makeToast","BASE_PROPS","propsToSlots","toastContent","filterOptions","memo","BVToastPlugin","plugins","plugin","BVToastPop","extends","handleDestroy","bvParent","BvToast","_root","toast","ToastPlugin","DEFAULT_OPTIONS","toastsCount","renderTitle","action","onClick","showToast","$bvToast","onComplete","toastHiddenCallback","$root","updatedAutoHideDelay","isNaN"],"mappings":"iHAAA,6DA4BA,MAAMA,EAvBO,CACXC,KAAM,kBACNC,WAAY,CACVC,SAAA,KAEFC,WAAY,CACVC,UAAW,KAEbC,MAAO,CACLC,MAAO,CACLC,KAAMC,OACNC,UAAU,EACVC,QAAS,IAAM,YAAU,wBAAyB,UAEpDC,iBAAkB,CAChBF,UAAU,EACVC,SAAS,EACTE,UAAWC,IAAmB,IAAVA,GAAoC,iBAAVA,GAAsBA,aAAiBC,eAazF,MAeMC,EAAoB,IACxB,CAAEC,OApBe,WAAa,IAAiBC,EAATC,KAAgBC,eAAuC,OAAvDD,KAA0CE,MAAMC,IAAIJ,GAAa,YAAjEC,KAAiFI,GAAG,CAACnB,WAAW,CAAC,CAACH,KAAK,aAAauB,QAAQ,qBAAqBV,MAAM,CAAGW,UAA1JN,KAAyKP,kBAAoBc,WAAW,kCAAkCC,UAAU,CAAC,OAAQ,KAAQC,YAAY,uBAAuBC,MAAM,CAAC,QAAU,UAAU,SAAW,WAAW,KAAO,QAAQ,KAAO,QAAQ,KAAO,QAAQ,MAAtYV,KAAkZZ,MAAM,aAAxZY,KAAyaZ,QAAzaY,KAAqbW,cAoBjcC,gBAnBA,SAGEC,EAkB5BhC,OAhBuBgC,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GAGW,O,oCC/Df,o5CAAO,MAAMC,EAAwB,EAExBC,EAAiB,QACjBC,EAAoB,YACpBC,EAAqB,aACrBC,EAAuB,eACvBC,EAAoB,YACpBC,EAAsB,cACtBC,EAAuB,eACvBC,EAAyB,eACzBC,EAAgC,sBAChCC,EAAuB,6BACvBC,EAA4B,kCAC5BC,EAA0B,4BAC1BC,EAAsB,aACtBC,EAA2B,iBAC3BC,EAAgB,OAChBC,EAAsB,oBACtBC,EAAwB,cACxBC,EAAiB,QACjBC,EAAiB,QACjBC,EAAqB,YACrBC,EAA8B,sBAC9BC,EAAiB,QACjBC,EAAuB,aACvBC,EAAyB,eACzBC,EAAqB,YACrBC,EAAgB,OAChBC,EAA4B,oBAC5BC,EAAmB,UACnBC,EAA2B,qBAC3BC,EAAwB,kBACxBC,EAAgB,OAChBC,EAAgB,OAChBC,EAAyB,gBACzBC,EAAqB,WACrBC,EAAoC,wBACpCC,EAAoB,8BACpBC,EAAyB,oBACzBC,EAAiB,+BACjBC,EAA4B,kCAE5BC,EAA2B,eAC3BC,EAAyB,c,wBC3CtC,YAAqMC,OAApIC,EAAOC,QAAuJ,SAASC,GAAG,IAAIC,EAAE,GAAG,SAASC,EAAEC,GAAG,GAAGF,EAAEE,GAAG,OAAOF,EAAEE,GAAGJ,QAAQ,IAAIK,EAAEH,EAAEE,GAAG,CAACC,EAAED,EAAEE,GAAE,EAAGN,QAAQ,IAAI,OAAOC,EAAEG,GAAGG,KAAKF,EAAEL,QAAQK,EAAEA,EAAEL,QAAQG,GAAGE,EAAEC,GAAE,EAAGD,EAAEL,QAAQ,OAAOG,EAAEK,EAAEP,EAAEE,EAAEM,EAAEP,EAAEC,EAAEO,EAAE,SAAST,EAAEC,EAAEE,GAAGD,EAAEQ,EAAEV,EAAEC,IAAIU,OAAOC,eAAeZ,EAAEC,EAAE,CAACY,YAAW,EAAGC,IAAIX,KAAKD,EAAEC,EAAE,SAASH,GAAG,oBAAoBe,QAAQA,OAAOC,aAAaL,OAAOC,eAAeZ,EAAEe,OAAOC,YAAY,CAAChF,MAAM,WAAW2E,OAAOC,eAAeZ,EAAE,aAAa,CAAChE,OAAM,KAAMkE,EAAED,EAAE,SAASD,EAAEC,GAAG,GAAG,EAAEA,IAAID,EAAEE,EAAEF,IAAI,EAAEC,EAAE,OAAOD,EAAE,GAAG,EAAEC,GAAG,iBAAiBD,GAAGA,GAAGA,EAAEiB,WAAW,OAAOjB,EAAE,IAAIG,EAAEQ,OAAOO,OAAO,MAAM,GAAGhB,EAAEC,EAAEA,GAAGQ,OAAOC,eAAeT,EAAE,UAAU,CAACU,YAAW,EAAG7E,MAAMgE,IAAI,EAAEC,GAAG,iBAAiBD,EAAE,IAAI,IAAII,KAAKJ,EAAEE,EAAEO,EAAEN,EAAEC,EAAE,SAASH,GAAG,OAAOD,EAAEC,IAAIkB,KAAK,KAAKf,IAAI,OAAOD,GAAGD,EAAEA,EAAE,SAASF,GAAG,IAAIC,EAAED,GAAGA,EAAEiB,WAAW,WAAW,OAAOjB,EAAEnE,SAAS,WAAW,OAAOmE,GAAG,OAAOE,EAAEO,EAAER,EAAE,IAAIA,GAAGA,GAAGC,EAAEQ,EAAE,SAASV,EAAEC,GAAG,OAAOU,OAAOS,UAAUC,eAAef,KAAKN,EAAEC,IAAIC,EAAEoB,EAAE,GAAGpB,EAAEA,EAAEqB,EAAE,GAAj5B,CAAq5B,CAAC,SAASvB,EAAEC,GAAG,IAAIC,EAAEC,EAAEC,EAAEoB,EAAED,EAAE,GAAGE,QAAQvB,EAAE,SAASF,GAAG,OAAO0B,MAAMN,UAAUO,MAAMC,MAAM5B,IAAII,EAAE,SAASJ,EAAEC,GAAG,KAAKD,IAAIA,EAAE6B,UAAUC,SAAS7B,IAAID,EAAEA,EAAE+B,WAAW,OAAO/B,GAAGwB,EAAE,SAASxB,EAAEC,GAAG,IAAIC,EAAE,MAAM,mBAAmB8B,OAAO9B,EAAE,IAAI8B,MAAMhC,EAAE,CAACiC,SAAQ,EAAGC,YAAW,KAAMC,OAAOlC,GAAGC,EAAEkC,SAASC,YAAY,gBAAgBC,gBAAgBtC,GAAE,GAAG,EAAGC,GAAGC,GAAGC,EAAE,WAAW,MAAMH,EAAE,YAAYA,GAAG3D,KAAKkG,GAAGvC,EAAE3D,KAAKM,UAAUyD,EAAE/D,KAAKkG,GAAG,0BAA0BlG,KAAKmG,MAAMnG,KAAKM,UAAU8F,cAAc,uBAAuBpG,KAAKM,UAAU+F,iBAAiB,SAAS1C,IAAI,GAAGA,EAAE2C,OAAOd,UAAUC,SAAS,2BAA2B,OAAOzF,KAAKuG,eAAe5C,EAAE2C,UAAUtG,KAAKwG,SAAS,SAAS,IAAI7C,EAAE,GAAG3D,KAAKM,UAAUmG,iBAAiB,uBAAuBC,OAAO,EAAE,OAAO7C,EAAE7D,KAAKM,UAAUmG,iBAAiB,oBAAoBE,SAAQ,SAAUhD,GAAG,OAAOA,EAAE6B,UAAUoB,IAAI,cAAc/C,EAAE7D,KAAKM,UAAUmG,iBAAiB,6BAA6BE,SAAQ,SAAUhD,GAAG,OAAOA,EAAEkD,UAAS,KAAM7G,KAAKM,UAAUkF,UAAUoB,IAAI,wBAAwBjD,EAAEwB,EAAE,oBAAoBnF,KAAKM,UAAUwG,cAAcnD,GAAG,UAAU,IAAIA,EAAE,OAAOE,EAAE7D,KAAKM,UAAUmG,iBAAiB,oBAAoBE,SAAQ,SAAUhD,GAAG,OAAOA,EAAE6B,UAAUuB,OAAO,cAAclD,EAAE7D,KAAKM,UAAUmG,iBAAiB,6BAA6BE,SAAQ,SAAUhD,GAAG,OAAOA,EAAEkD,UAAS,KAAM7G,KAAKM,UAAUkF,UAAUuB,OAAO,wBAAwBpD,EAAEwB,EAAE,qBAAqBnF,KAAKM,UAAUwG,cAAcnD,GAAG,eAAeC,GAAG,IAAIE,EAAEC,EAAEmB,EAAEf,EAAEH,EAAEK,EAAE2C,EAAE,GAAG9B,EAAElF,KAAKM,UAAUmG,iBAAiB,4BAA4BtC,EAAE,EAAEN,EAAEqB,GAAGE,QAAQxB,GAAGE,EAAEqB,EAAE,kBAAkB,CAAC8B,MAAM9C,EAAE+C,QAAQtD,EAAEsD,UAAUlH,KAAKmG,MAAMW,cAAchD,IAAIA,EAAEqD,iBAAiB,QAAQC,OAAOJ,EAAEK,WAAWrD,EAAEsD,WAAWjD,GAAGV,EAAE4D,aAAavH,KAAKmG,MAAMxG,MAAMwE,EAAEP,EAAEsD,QAAQtD,IAAI5D,KAAKmG,MAAMxG,MAAMqH,EAAElD,EAAEqB,EAAE,UAAUnF,KAAKmG,MAAMW,cAAchD,GAAGC,EAAEoB,EAAE,mBAAmB,CAAC8B,MAAM9C,EAAE+C,QAAQtD,EAAEsD,QAAQG,WAAWrD,EAAEsD,WAAWjD,IAAIrE,KAAKmG,MAAMW,cAAc/C,GAAG,qBAAqBJ,GAAG,OAAOA,EAAE6D,QAAQ,YAAY,QAAQA,QAAQ,KAAK,OAAOA,QAAQ,IAAI,QAAQ,oBAAoB7D,EAAEC,EAAEC,EAAEC,GAAG,OAAOA,EAAE2D,cAAcC,aAAa,kBAAkB1H,KAAK2H,sBAAsBhE,EAAEG,EAAED,GAAG7D,KAAK4H,mBAAmBjE,EAAEC,EAAEC,GAAG,6BAA6BF,EAAEC,EAAEC,GAAG,IAAIC,EAAEC,EAAEoB,EAAED,EAAEf,EAAE,OAAOe,EAAEvB,EAAEkE,MAAM,MAAM1D,EAAEP,EAAE6D,cAAcK,aAAa,kBAAkB3C,EAAED,GAAGnB,EAAEgE,SAAS5D,EAAE0D,MAAM,KAAK,KAAK,GAAG/D,EAAED,EAAEsB,EAAEqC,QAAQxH,KAAKgI,kBAAkBhI,KAAKiI,UAAU9C,EAAEqC,QAAQxH,KAAKkI,gBAAgBlI,KAAKmI,YAAYjD,EAAEnB,EAAE,GAAGD,EAAE,CAACsD,OAAOlC,EAAEkD,KAAK,MAAMf,WAAWtD,EAAEuD,WAAWnC,GAAG,0BAA0BxB,EAAEC,EAAEC,GAAG,IAAIC,EAAEC,EAAEoB,EAAEhB,EAAEH,EAAEK,EAAE2C,EAAE/B,EAAE,OAAOA,EAAEtB,EAAEkE,MAAM,MAAM/D,EAAEH,EAAE6D,QAAQ,MAAM,IAAIA,QAAQxH,KAAKqI,oBAAoB,IAAIR,MAAM,MAAM1D,EAAE,EAAEgB,GAAE,EAAG,CAACiC,OAAO,WAAW,IAAIzD,EAAES,EAAEkE,EAAE,IAAIA,EAAE,GAAGvE,EAAEJ,EAAE,EAAES,EAAEa,EAAEyB,OAAO/C,EAAES,EAAEL,IAAIJ,EAAEK,EAAEiB,EAAElB,GAAGoB,EAAEnB,EAAEuE,MAAMvI,KAAKwI,oBAAoBrD,GAAE,GAAInB,EAAEuE,MAAMvI,KAAKyI,oBAAoBtD,GAAE,EAAGD,EAAEjB,KAAKH,EAAEE,IAAI,GAAGA,EAAE0E,OAAOH,MAAMvI,KAAK2I,eAAexE,GAAG,KAAKP,IAAIS,EAAEN,EAAE,EAAEiD,EAAEhD,EAAEA,EAAEH,EAAEG,EAAEwD,QAAQxH,KAAKgI,kBAAkBhI,KAAKiI,UAAUjE,EAAEwD,QAAQxH,KAAKkI,gBAAgBlI,KAAKmI,aAAaG,EAAEM,KAAK5E,GAAG,OAAOsE,GAAGrE,KAAKjE,MAAMoI,KAAK,MAAMf,WAAWhD,EAAEiD,WAAWN,IAAI,OAAOrD,EAAEwE,WAAW,MAAMxE,EAAEsE,SAAS,MAAMtE,EAAEqE,kBAAkBa,OAAO,GAAGlF,EAAEmF,cAAcnF,EAAEwE,aAAexE,EAAEuE,gBAAgBW,OAAO,GAAGlF,EAAEmF,cAAcnF,EAAEsE,WAAatE,EAAEgF,YAAYE,OAAO,gDAAgDlF,EAAEmF,cAAcnF,EAAEsE,aAAatE,EAAEmF,cAAcnF,EAAEwE,mBAAmBxE,EAAE8E,mBAAmB,WAAW9E,EAAE6E,iBAAiB,SAAS7E,EAAE0E,oBAAoBQ,OAAO,KAAKlF,EAAEmF,cAAcnF,EAAEsE,aAAatE,EAAEmF,cAAcnF,EAAEwE,kBAAkB,KAAKxE,GAAGM,KAAKjE,WAAM,IAAoB+I,IAASA,EAAOC,GAAGC,SAAS,SAAStF,GAAG,OAAO3D,KAAKkJ,MAAK,SAAUtF,EAAEC,GAAG,IAAIE,EAAE,IAAIA,EAAEgF,EAAOlF,GAAGsF,KAAK,gBAAgBpF,EAAE,IAAID,EAAED,GAAGkF,EAAOlF,GAAGsF,KAAK,YAAYpF,GAAGJ,GAAG,WAAWA,GAAG,OAAOI,EAAEJ,GAAG,iBAAiBA,EAAED,QAAQI,O,6CCAtxJ,IAAIsF,EAAmB,EAAQ,QA2C/B3F,EAAOC,QA3BP,SAAyB2F,EAAQC,EAAOC,GAOtC,IANA,IAAItC,GAAS,EACTuC,EAAcH,EAAOI,SACrBC,EAAcJ,EAAMG,SACpB/C,EAAS8C,EAAY9C,OACrBiD,EAAeJ,EAAO7C,SAEjBO,EAAQP,GAAQ,CACvB,IAAIU,EAASgC,EAAiBI,EAAYvC,GAAQyC,EAAYzC,IAC9D,GAAIG,EACF,OAAIH,GAAS0C,EACJvC,EAGFA,GAAmB,QADdmC,EAAOtC,IACiB,EAAI,GAU5C,OAAOoC,EAAOpC,MAAQqC,EAAMrC,Q,4OC9B9B,MAAM2C,EACJC,cACE7J,KAAK8J,MAAQ,IAAIC,IAGnBC,UACEhK,KAAK8J,MAAMG,QASbC,IAAI7K,EAAM8K,GACR,MAAMC,EAAWpK,KAAK8J,MAAMrF,IAAIpF,GAClB+K,GAAYA,EAASxB,KAAKuB,IAGtCnK,KAAK8J,MAAMO,IAAIhL,EAAM,CAAC8K,IAU1BG,KAAKjL,EAAM8K,GACT,MAAMC,EAAWpK,KAAK8J,MAAMrF,IAAIpF,IAAS,GAEnCkL,EAAcJ,EAAUC,EAASI,QAAO,SAACC,GAAC,OAAKA,IAAMN,KAAW,GAElEI,EAAY7D,OACd1G,KAAK8J,MAAMO,IAAIhL,EAAMkL,GAErBvK,KAAK8J,MAAMY,OAAOrL,GAUtBsL,MAAMtL,EAAM8K,GAAS,IAAAS,EAAA,KACnB,MAAMC,EAAc,YAAIC,GACtBF,EAAKN,KAAKjL,EAAMwL,GAChBV,KAAWW,IAEb9K,KAAKkK,IAAI7K,EAAMwL,GASjBE,MAAM1L,KAASyL,IACI9K,KAAK8J,MAAMrF,IAAIpF,IAAS,IAEhCsH,SAAQ,SAACwD,GAChBA,KAAWW,OAeF,eACb,OAAO,IAAIlB,I,uBC5Fb,IAAIoB,EAAW,EAAQ,QACnBC,EAAU,EAAQ,QAClBC,EAAe,EAAQ,QACvBC,EAAU,EAAQ,QAClBC,EAAa,EAAQ,QACrBC,EAAY,EAAQ,QACpBC,EAAkB,EAAQ,QAC1BC,EAAW,EAAQ,QACnBC,EAAU,EAAQ,QAwCtB/H,EAAOC,QA7BP,SAAqB+H,EAAYC,EAAWnC,GAExCmC,EADEA,EAAUhF,OACAsE,EAASU,GAAW,SAASC,GACvC,OAAIH,EAAQG,GACH,SAAShM,GACd,OAAOsL,EAAQtL,EAA2B,IAApBgM,EAASjF,OAAeiF,EAAS,GAAKA,IAGzDA,KAGG,CAACJ,GAGf,IAAItE,GAAS,EACbyE,EAAYV,EAASU,EAAWL,EAAUH,IAE1C,IAAI9D,EAAS+D,EAAQM,GAAY,SAAS9L,EAAOiM,EAAKH,GAIpD,MAAO,CAAE,SAHMT,EAASU,GAAW,SAASC,GAC1C,OAAOA,EAAShM,MAEa,QAAWsH,EAAO,MAAStH,MAG5D,OAAOyL,EAAWhE,GAAQ,SAASiC,EAAQC,GACzC,OAAOgC,EAAgBjC,EAAQC,EAAOC,Q,uBC5C1C9F,EAAOC,QAAU,EAAQ,S,kCCAzB,gBAEemI,mB,qBCFf,IAAIC,EAAW,EAAQ,QAwCvBrI,EAAOC,QA9BP,SAA0B/D,EAAO2J,GAC/B,GAAI3J,IAAU2J,EAAO,CACnB,IAAIyC,OAAyBlL,IAAVlB,EACfqM,EAAsB,OAAVrM,EACZsM,EAAiBtM,GAAUA,EAC3BuM,EAAcJ,EAASnM,GAEvBwM,OAAyBtL,IAAVyI,EACf8C,EAAsB,OAAV9C,EACZ+C,EAAiB/C,GAAUA,EAC3BgD,EAAcR,EAASxC,GAE3B,IAAM8C,IAAcE,IAAgBJ,GAAevM,EAAQ2J,GACtD4C,GAAeC,GAAgBE,IAAmBD,IAAcE,GAChEN,GAAaG,GAAgBE,IAC5BN,GAAgBM,IACjBJ,EACH,OAAO,EAET,IAAMD,IAAcE,IAAgBI,GAAe3M,EAAQ2J,GACtDgD,GAAeP,GAAgBE,IAAmBD,IAAcE,GAChEE,GAAaL,GAAgBE,IAC5BE,GAAgBF,IACjBI,EACH,OAAQ,EAGZ,OAAO,I,qCCVT,WACE,IAAIE,EAAUC,EAASC,EAAUC,EAAeC,EAAsBC,EAAiBC,EAAMC,EAC3FC,EAAU,GAAGzH,MACb0H,EAAY,GAAGhI,eAGjB6H,EAAO,aAEPL,EAAU,WACR,SAASA,KAyDT,OAvDAA,EAAQzH,UAAUsB,iBAAmBmG,EAAQzH,UAAUkI,GAEvDT,EAAQzH,UAAUkI,GAAK,SAASC,EAAOlE,GAMrC,OALAhJ,KAAKmN,WAAanN,KAAKmN,YAAc,GAChCnN,KAAKmN,WAAWD,KACnBlN,KAAKmN,WAAWD,GAAS,IAE3BlN,KAAKmN,WAAWD,GAAOtE,KAAKI,GACrBhJ,MAGTwM,EAAQzH,UAAUqI,KAAO,WACvB,IAAItC,EAAgBuC,EAAWH,EAAOI,EAAIC,EAI1C,GAHAL,EAAQM,UAAU,GAAI1C,EAAO,GAAK0C,UAAU9G,OAASqG,EAAQ9I,KAAKuJ,UAAW,GAAK,GAClFxN,KAAKmN,WAAanN,KAAKmN,YAAc,GACrCE,EAAYrN,KAAKmN,WAAWD,GAE1B,IAAKI,EAAK,EAAGC,EAAOF,EAAU3G,OAAQ4G,EAAKC,EAAMD,IACpCD,EAAUC,GACZ/H,MAAMvF,KAAM8K,GAGzB,OAAO9K,MAGTwM,EAAQzH,UAAU0I,eAAiBjB,EAAQzH,UAAU2I,IAErDlB,EAAQzH,UAAU4I,mBAAqBnB,EAAQzH,UAAU2I,IAEzDlB,EAAQzH,UAAU6I,oBAAsBpB,EAAQzH,UAAU2I,IAE1DlB,EAAQzH,UAAU2I,IAAM,SAASR,EAAOlE,GACtC,IAAcqE,EAAWtJ,EAAGuJ,EAAIC,EAChC,IAAKvN,KAAKmN,YAAmC,IAArBK,UAAU9G,OAEhC,OADA1G,KAAKmN,WAAa,GACXnN,KAGT,KADAqN,EAAYrN,KAAKmN,WAAWD,IAE1B,OAAOlN,KAET,GAAyB,IAArBwN,UAAU9G,OAEZ,cADO1G,KAAKmN,WAAWD,GAChBlN,KAET,IAAK+D,EAAIuJ,EAAK,EAAGC,EAAOF,EAAU3G,OAAQ4G,EAAKC,EAAMxJ,IAAMuJ,EAEzD,GADWD,EAAUtJ,KACJiF,EAAI,CACnBqE,EAAUQ,OAAO9J,EAAG,GACpB,MAGJ,OAAO/D,MAGFwM,EA1DC,IA8DVD,EAAW,SAAUuB,GACnB,IAAIC,EAAQC,EAwTZ,SAASzB,EAAS0B,EAASC,GACzB,IAAIC,EAAgBC,EAAUC,EAU9B,GATArO,KAAKiO,QAAUA,EACfjO,KAAKsO,QAAU/B,EAAS+B,QACxBtO,KAAKuO,eAAeC,gBAAkBxO,KAAKuO,eAAeC,gBAAgBhH,QAAQ,OAAQ,IAC1FxH,KAAKyO,kBAAoB,GACzBzO,KAAK0O,UAAY,GACjB1O,KAAK2O,MAAQ,GACe,iBAAjB3O,KAAKiO,UACdjO,KAAKiO,QAAUlI,SAASK,cAAcpG,KAAKiO,WAEvCjO,KAAKiO,SAAqC,MAAzBjO,KAAKiO,QAAQW,SAClC,MAAM,IAAIC,MAAM,6BAElB,GAAI7O,KAAKiO,QAAQa,SACf,MAAM,IAAID,MAAM,8BAMlB,GAJAtC,EAASwC,UAAUnG,KAAK5I,MACxBA,KAAKiO,QAAQa,SAAW9O,KACxBmO,EAAsE,OAApDE,EAAO9B,EAASyC,kBAAkBhP,KAAKiO,UAAoBI,EAAO,GACpFrO,KAAKkO,QAAUH,EAAO,GAAI/N,KAAKuO,eAAgBJ,EAA2B,MAAXD,EAAkBA,EAAU,IACvFlO,KAAKkO,QAAQe,gBAAkB1C,EAAS2C,qBAC1C,OAAOlP,KAAKkO,QAAQE,SAASnK,KAAKjE,MAKpC,GAHwB,MAApBA,KAAKkO,QAAQiB,MACfnP,KAAKkO,QAAQiB,IAAMnP,KAAKiO,QAAQnG,aAAa,YAE1C9H,KAAKkO,QAAQiB,IAChB,MAAM,IAAIN,MAAM,oBAElB,GAAI7O,KAAKkO,QAAQkB,eAAiBpP,KAAKkO,QAAQmB,kBAC7C,MAAM,IAAIR,MAAM,sGAEd7O,KAAKkO,QAAQmB,oBACfrP,KAAKkO,QAAQkB,cAAgBpP,KAAKkO,QAAQmB,yBACnCrP,KAAKkO,QAAQmB,mBAEtBrP,KAAKkO,QAAQoB,OAAStP,KAAKkO,QAAQoB,OAAOC,eACrCnB,EAAWpO,KAAKwP,wBAA0BpB,EAAS1I,YACtD0I,EAAS1I,WAAW+J,YAAYrB,IAEK,IAAnCpO,KAAKkO,QAAQwB,oBACX1P,KAAKkO,QAAQwB,kBACf1P,KAAK0P,kBAAoBnD,EAASoD,WAAW3P,KAAKkO,QAAQwB,kBAAmB,qBAE7E1P,KAAK0P,kBAAoB1P,KAAKiO,SAG9BjO,KAAKkO,QAAQ0B,aACgB,IAA3B5P,KAAKkO,QAAQ0B,UACf5P,KAAKyO,kBAAoB,CAACzO,KAAKiO,SAE/BjO,KAAKyO,kBAAoBlC,EAASsD,YAAY7P,KAAKkO,QAAQ0B,UAAW,cAG1E5P,KAAK8P,OA86BP,OAh2CY,SAASC,EAAOC,GAAU,IAAK,IAAIpE,KAAOoE,EAAchD,EAAU/I,KAAK+L,EAAQpE,KAAMmE,EAAMnE,GAAOoE,EAAOpE,IAAQ,SAASqE,IAASjQ,KAAK6J,YAAckG,EAASE,EAAKlL,UAAYiL,EAAOjL,UAAWgL,EAAMhL,UAAY,IAAIkL,EAAQF,EAAMG,UAAYF,EAAOjL,UAqErQoL,CAAU5D,EAAUuB,GAEpBvB,EAASxH,UAAUyH,QAAUA,EAW7BD,EAASxH,UAAUqL,OAAS,CAAC,OAAQ,YAAa,UAAW,YAAa,WAAY,YAAa,YAAa,aAAc,cAAe,YAAa,QAAS,gBAAiB,aAAc,qBAAsB,iBAAkB,sBAAuB,UAAW,kBAAmB,UAAW,kBAAmB,WAAY,mBAAoB,WAAY,mBAAoB,QAAS,mBAAoB,kBAAmB,iBAE7a7D,EAASxH,UAAUwJ,eAAiB,CAClCY,IAAK,KACLG,OAAQ,OACRe,iBAAiB,EACjBC,gBAAiB,EACjBC,gBAAgB,EAChBC,YAAa,IACbC,UAAW,OACXC,uBAAuB,EACvBC,qBAAsB,GACtBC,eAAgB,IAChBC,gBAAiB,IACjBC,aAAc,IACdC,SAAU,KACVC,OAAQ,GACRpB,WAAW,EACXqB,mBAAmB,EACnB7B,cAAe,KACfC,kBAAmB,KACnB6B,kBAAkB,EAClBC,WAAW,EACXC,gBAAgB,EAChB1B,kBAAmB,KACnB2B,qBAAsB,OACtBC,QAAS,KACTC,mBAAoB,4BACpBC,oBAAqB,0DACrBC,iBAAkB,kFAClBC,eAAgB,uEAChBC,oBAAqB,uCACrBC,kBAAmB,6CACnBC,iBAAkB,gBAClBC,6BAA8B,+CAC9BC,eAAgB,cAChBC,2BAA4B,KAC5BC,qBAAsB,qCACtBC,OAAQ,SAASC,EAAMC,GACrB,OAAOA,KAETtC,KAAM,WACJ,OAAOjD,GAEToC,eAAe,EACfb,SAAU,WACR,IAAI2B,EAAOsC,EAAgBC,EAAMhF,EAAIC,EAAMc,EAG3C,IAFArO,KAAKiO,QAAQsE,UAAiBvS,KAAKiO,QAAQsE,UAAY,4BAElDjF,EAAK,EAAGC,GADbc,EAAOrO,KAAKiO,QAAQuE,qBAAqB,QAChB9L,OAAQ4G,EAAKC,EAAMD,IAC1CyC,EAAQ1B,EAAKf,GACT,uBAAuBmF,KAAK1C,EAAMwC,aACpCF,EAAiBtC,EACjBA,EAAMwC,UAAY,cAgBtB,OAZKF,IACHA,EAAiB9F,EAASmG,cAAc,+CACxC1S,KAAKiO,QAAQ0E,YAAYN,KAE3BC,EAAOD,EAAeG,qBAAqB,QAAQ,MAEzB,MAApBF,EAAKM,YACPN,EAAKM,YAAc5S,KAAKkO,QAAQsD,oBACL,MAAlBc,EAAKO,YACdP,EAAKO,UAAY7S,KAAKkO,QAAQsD,sBAG3BxR,KAAKiO,QAAQ0E,YAAY3S,KAAK8S,oBAEvCC,OAAQ,SAASZ,GACf,IAAIa,EAAMC,EAAUC,EAiCpB,OAhCAF,EAAO,CACLG,KAAM,EACNC,KAAM,EACNC,SAAUlB,EAAKmB,MACfC,UAAWpB,EAAKqB,QAElBP,EAAWd,EAAKmB,MAAQnB,EAAKqB,OAC7BR,EAAKS,SAAWzT,KAAKkO,QAAQ0C,eAC7BoC,EAAKU,UAAY1T,KAAKkO,QAAQ2C,gBACR,MAAjBmC,EAAKS,UAAwC,MAAlBT,EAAKU,WACnCV,EAAKS,SAAWT,EAAKK,SACrBL,EAAKU,UAAYV,EAAKO,WACI,MAAjBP,EAAKS,SACdT,EAAKS,SAAWR,EAAWD,EAAKU,UACL,MAAlBV,EAAKU,YACdV,EAAKU,UAAa,EAAIT,EAAYD,EAAKS,UAEzCP,EAAWF,EAAKS,SAAWT,EAAKU,UAC5BvB,EAAKqB,OAASR,EAAKU,WAAavB,EAAKmB,MAAQN,EAAKS,UACpDT,EAAKW,UAAYX,EAAKO,UACtBP,EAAKY,SAAWZ,EAAKK,UAEjBJ,EAAWC,GACbF,EAAKO,UAAYpB,EAAKqB,OACtBR,EAAKK,SAAWL,EAAKO,UAAYL,IAEjCF,EAAKK,SAAWlB,EAAKmB,MACrBN,EAAKO,UAAYP,EAAKK,SAAWH,GAGrCF,EAAKG,MAAQhB,EAAKmB,MAAQN,EAAKK,UAAY,EAC3CL,EAAKI,MAAQjB,EAAKqB,OAASR,EAAKO,WAAa,EACtCP,GAWTa,KAAM,SAASlQ,GACb,OAAO3D,KAAKiO,QAAQzI,UAAUuB,OAAO,kBAEvC+M,UAAWjH,EACXkH,QAAS,SAASpQ,GAChB,OAAO3D,KAAKiO,QAAQzI,UAAUuB,OAAO,kBAEvCiN,UAAW,SAASrQ,GAClB,OAAO3D,KAAKiO,QAAQzI,UAAUoB,IAAI,kBAEpCqN,SAAU,SAAStQ,GACjB,OAAO3D,KAAKiO,QAAQzI,UAAUoB,IAAI,kBAEpCsN,UAAW,SAASvQ,GAClB,OAAO3D,KAAKiO,QAAQzI,UAAUuB,OAAO,kBAEvCoN,MAAOtH,EACPuH,MAAO,WACL,OAAOpU,KAAKiO,QAAQzI,UAAUuB,OAAO,eAEvCsN,UAAW,SAASlC,GAClB,IAAUmC,EAAiBC,EAAYjH,EAAIkH,EAAIC,EAAIlH,EAAMmH,EAAOC,EAAOtG,EAAMuG,EAAOC,EAAOC,EAsB7DlK,EAlB9B,GAHI5K,KAAKiO,UAAYjO,KAAK0P,mBACxB1P,KAAKiO,QAAQzI,UAAUoB,IAAI,cAEzB5G,KAAK0P,kBAAmB,CAK1B,IAJAyC,EAAK4C,eAAiBxI,EAASmG,cAAc1S,KAAKkO,QAAQM,gBAAgB9F,QAC1EyJ,EAAK3D,gBAAkB2D,EAAK4C,eAC5B/U,KAAK0P,kBAAkBiD,YAAYR,EAAK4C,gBAEnCzH,EAAK,EAAGC,GADbc,EAAO8D,EAAK4C,eAAetO,iBAAiB,mBACnBC,OAAQ4G,EAAKC,EAAMD,IACnCe,EAAKf,GACPsF,YAAcT,EAAKrT,KAG1B,IAAK0V,EAAK,EAAGE,GADbE,EAAQzC,EAAK4C,eAAetO,iBAAiB,mBAClBC,OAAQ8N,EAAKE,EAAOF,IACtCI,EAAMJ,GACRQ,UAAYhV,KAAKiV,SAAS9C,EAAK+C,MA2BtC,IAzBIlV,KAAKkO,QAAQkD,iBACfe,EAAKgD,YAAc5I,EAASmG,cAAc,oEAA0E1S,KAAKkO,QAAQ6D,eAAiB,QAClJI,EAAK4C,eAAepC,YAAYR,EAAKgD,cAEXvK,EAkBzB5K,KAlBHsU,EACS,SAAS3Q,GAGd,OAFAA,EAAEyR,iBACFzR,EAAE0R,kBACElD,EAAKmD,SAAW/I,EAASgJ,UACpBhJ,EAASiJ,QAAQ5K,EAAMsD,QAAQ4D,8BAA8B,WAClE,OAAOlH,EAAM6K,WAAWtD,MAGtBvH,EAAMsD,QAAQ8D,2BACTzF,EAASiJ,QAAQ5K,EAAMsD,QAAQ8D,4BAA4B,WAChE,OAAOpH,EAAM6K,WAAWtD,MAGnBvH,EAAM6K,WAAWtD,IAMhC2C,EAAW,GACNL,EAAK,EAAGE,GAFbE,EAAQ1C,EAAK4C,eAAetO,iBAAiB,qBAElBC,OAAQ+N,EAAKE,EAAOF,IAC7CF,EAAaM,EAAMJ,GACnBK,EAASlM,KAAK2L,EAAWlO,iBAAiB,QAASiO,IAErD,OAAOQ,IAGXY,YAAa,SAASvD,GACpB,IAAI9D,EAMJ,OALI8D,EAAK4C,gBAC6B,OAA/B1G,EAAO8D,EAAK4C,iBACf1G,EAAK3I,WAAW+J,YAAY0C,EAAK4C,gBAG9B/U,KAAK2V,+BAEdC,UAAW,SAASzD,EAAM0D,GACxB,IAAIC,EAAkBxI,EAAIC,EAAMc,EAChC,GAAI8D,EAAK4C,eAAgB,CAGvB,IAFA5C,EAAK4C,eAAevP,UAAUuB,OAAO,mBAEhCuG,EAAK,EAAGC,GADbc,EAAO8D,EAAK4C,eAAetO,iBAAiB,wBACnBC,OAAQ4G,EAAKC,EAAMD,KAC1CwI,EAAmBzH,EAAKf,IACPyI,IAAM5D,EAAKrT,KAC5BgX,EAAiBE,IAAMH,EAEzB,OAAOI,YACE,WACL,OAAO9D,EAAK4C,eAAevP,UAAUoB,IAAI,sBAElC,KAGfsP,MAAO,SAAS/D,EAAMgE,GACpB,IAAIC,EAAM9I,EAAIC,EAAMc,EAAMyG,EAC1B,GAAI3C,EAAK4C,eAAgB,CAOvB,IANA5C,EAAK4C,eAAevP,UAAUoB,IAAI,YACX,iBAAZuP,GAAwBA,EAAQD,QACzCC,EAAUA,EAAQD,OAGpBpB,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAO8D,EAAK4C,eAAetO,iBAAiB,2BAEnBC,OAAQ4G,EAAKC,EAAMD,IAC1C8I,EAAO/H,EAAKf,GACZwH,EAASlM,KAAKwN,EAAKxD,YAAcuD,GAEnC,OAAOrB,IAGXuB,cAAexJ,EACfyJ,WAAY,SAASnE,GACnB,GAAIA,EAAK4C,iBACP5C,EAAK4C,eAAevP,UAAUoB,IAAI,iBAC9BuL,EAAKgD,aACP,OAAOhD,EAAKgD,YAAYvC,YAAc5S,KAAKkO,QAAQ2D,kBAIzD0E,mBAAoB1J,EACpB2J,eAAgB,SAASrE,EAAMsE,EAAUC,GACvC,IAAIN,EAAM9I,EAAIC,EAAMc,EAAMyG,EAC1B,GAAI3C,EAAK4C,eAAgB,CAGvB,IADAD,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAO8D,EAAK4C,eAAetO,iBAAiB,6BAEnBC,OAAQ4G,EAAKC,EAAMD,IAEpB,cADtB8I,EAAO/H,EAAKf,IACHqJ,SACP7B,EAASlM,KAAKwN,EAAKzW,MAAQ8W,GAE3B3B,EAASlM,KAAKwN,EAAKQ,MAAMtD,MAAamD,EAAW,KAGrD,OAAO3B,IAGX+B,oBAAqBhK,EACrBiK,QAASjK,EACTkK,gBAAiBlK,EACjBmK,QAAS,SAAS7E,GAChB,GAAIA,EAAK4C,eACP,OAAO5C,EAAK4C,eAAevP,UAAUoB,IAAI,eAG7CqQ,gBAAiBpK,EACjBqK,SAAU,SAAS/E,GACjB,OAAOnS,KAAKoN,KAAK,QAAS+E,EAAM,qBAElCgF,iBAAkBtK,EAClB5E,SAAU,SAASkK,GAIjB,GAHIA,EAAKgD,cACPhD,EAAKgD,YAAYvC,YAAc5S,KAAKkO,QAAQ6D,gBAE1CI,EAAK4C,eACP,OAAO5C,EAAK4C,eAAevP,UAAUoB,IAAI,gBAG7CwQ,iBAAkBvK,EAClBwK,iBAAkBxK,EAClByK,gBAAiBzK,EACjB0K,cAAe1K,EACf2K,WAAY3K,EACZ2B,gBAAiB,8lGAGnBT,EAAS,WACP,IAAInC,EAAKvC,EAAQoO,EAASnR,EAAQoR,EAAKpK,EAAIC,EAE3C,IADAjH,EAASkH,UAAU,GACdF,EAAK,EAAGC,GADUkK,EAAU,GAAKjK,UAAU9G,OAASqG,EAAQ9I,KAAKuJ,UAAW,GAAK,IAC1D9G,OAAQ4G,EAAKC,EAAMD,IAE7C,IAAK1B,KADLvC,EAASoO,EAAQnK,GAEfoK,EAAMrO,EAAOuC,GACbtF,EAAOsF,GAAO8L,EAGlB,OAAOpR,GA6DTiG,EAASxH,UAAU4S,iBAAmB,WACpC,IAAIxF,EAAM7E,EAAIC,EAAMc,EAAMyG,EAG1B,IADAA,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAOrO,KAAK2O,OAEajI,OAAQ4G,EAAKC,EAAMD,KAC1C6E,EAAO9D,EAAKf,IACHsK,UACP9C,EAASlM,KAAKuJ,GAGlB,OAAO2C,GAGTvI,EAASxH,UAAU8S,iBAAmB,WACpC,IAAI1F,EAAM7E,EAAIC,EAAMc,EAAMyG,EAG1B,IADAA,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAOrO,KAAK2O,OAEajI,OAAQ4G,EAAKC,EAAMD,KAC1C6E,EAAO9D,EAAKf,IACFsK,UACR9C,EAASlM,KAAKuJ,GAGlB,OAAO2C,GAGTvI,EAASxH,UAAU+S,mBAAqB,SAASxC,GAC/C,IAAInD,EAAM7E,EAAIC,EAAMc,EAAMyG,EAG1B,IADAA,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAOrO,KAAK2O,OAEajI,OAAQ4G,EAAKC,EAAMD,KAC1C6E,EAAO9D,EAAKf,IACHgI,SAAWA,GAClBR,EAASlM,KAAKuJ,GAGlB,OAAO2C,GAGTvI,EAASxH,UAAUgT,eAAiB,WAClC,OAAO/X,KAAK8X,mBAAmBvL,EAASyL,SAG1CzL,EAASxH,UAAUkT,kBAAoB,WACrC,OAAOjY,KAAK8X,mBAAmBvL,EAASgJ,YAG1ChJ,EAASxH,UAAUmT,cAAgB,WACjC,OAAOlY,KAAK8X,mBAAmBvL,EAAS4L,QAG1C5L,EAASxH,UAAUqT,eAAiB,WAClC,IAAIjG,EAAM7E,EAAIC,EAAMc,EAAMyG,EAG1B,IADAA,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAOrO,KAAK2O,OAEajI,OAAQ4G,EAAKC,EAAMD,KAC1C6E,EAAO9D,EAAKf,IACHgI,SAAW/I,EAASgJ,WAAapD,EAAKmD,SAAW/I,EAASyL,QACjElD,EAASlM,KAAKuJ,GAGlB,OAAO2C,GAGTvI,EAASxH,UAAU+K,KAAO,WACxB,IAAIuI,EAAWC,EAAeC,EAAsBjL,EAAIC,EAAMc,EAAMuG,EAQjChK,EA0CnC,IAjD6B,SAAzB5K,KAAKiO,QAAQuK,SACfxY,KAAKiO,QAAQwK,aAAa,UAAW,uBAEnCzY,KAAKiO,QAAQzI,UAAUC,SAAS,cAAgBzF,KAAKiO,QAAQ7H,cAAc,gBAC7EpG,KAAKiO,QAAQ0E,YAAYpG,EAASmG,cAAc,4CAAgD1S,KAAKkO,QAAQqD,mBAAqB,kBAEhIvR,KAAKyO,kBAAkB/H,SACQkE,EAqC9B5K,MArCHuY,EACS,WAuBL,OAtBI3N,EAAM8N,iBACR9N,EAAM8N,gBAAgBhT,WAAW+J,YAAY7E,EAAM8N,iBAErD9N,EAAM8N,gBAAkB3S,SAAS2M,cAAc,SAC/C9H,EAAM8N,gBAAgBD,aAAa,OAAQ,SACZ,MAA1B7N,EAAMsD,QAAQ6C,UAAqBnG,EAAMsD,QAAQ6C,SAAW,IAC/DnG,EAAM8N,gBAAgBD,aAAa,WAAY,YAEjD7N,EAAM8N,gBAAgBnG,UAAY,kBACC,MAA/B3H,EAAMsD,QAAQkB,eAChBxE,EAAM8N,gBAAgBD,aAAa,SAAU7N,EAAMsD,QAAQkB,eAEhC,MAAzBxE,EAAMsD,QAAQoD,SAChB1G,EAAM8N,gBAAgBD,aAAa,UAAW7N,EAAMsD,QAAQoD,SAE9D1G,EAAM8N,gBAAgB9B,MAAM+B,WAAa,SACzC/N,EAAM8N,gBAAgB9B,MAAMgC,SAAW,WACvChO,EAAM8N,gBAAgB9B,MAAMiC,IAAM,IAClCjO,EAAM8N,gBAAgB9B,MAAMkC,KAAO,IACnClO,EAAM8N,gBAAgB9B,MAAMpD,OAAS,IACrC5I,EAAM8N,gBAAgB9B,MAAMtD,MAAQ,IACpCvN,SAASK,cAAcwE,EAAMsD,QAAQmD,sBAAsBsB,YAAY/H,EAAM8N,iBACtE9N,EAAM8N,gBAAgBrS,iBAAiB,UAAU,WACtD,IAAI8L,EAAMxD,EAAOrB,EAAIC,EAErB,IADAoB,EAAQ/D,EAAM8N,gBAAgB/J,OACpBjI,OACR,IAAK4G,EAAK,EAAGC,EAAOoB,EAAMjI,OAAQ4G,EAAKC,EAAMD,IAC3C6E,EAAOxD,EAAMrB,GACb1C,EAAMmO,QAAQ5G,GAIlB,OADAvH,EAAMwC,KAAK,aAAcuB,GAClB4J,YAMfvY,KAAKgZ,IAA6B,OAAtB3K,EAAO7K,OAAOwV,KAAe3K,EAAO7K,OAAOyV,UAElD3L,EAAK,EAAGC,GADbqH,EAAQ5U,KAAKoQ,QACa1J,OAAQ4G,EAAKC,EAAMD,IAC3C+K,EAAYzD,EAAMtH,GAClBtN,KAAKiN,GAAGoL,EAAWrY,KAAKkO,QAAQmK,IA+FlC,OA7FArY,KAAKiN,GAAG,iBAAkB,SAAUrC,GAClC,OAAO,WACL,OAAOA,EAAMsO,6BAFS,CAIvBlZ,OACHA,KAAKiN,GAAG,cAAe,SAAUrC,GAC/B,OAAO,WACL,OAAOA,EAAMsO,6BAFM,CAIpBlZ,OACHA,KAAKiN,GAAG,WAAY,SAAUrC,GAC5B,OAAO,SAASuH,GACd,OAAOvH,EAAMwC,KAAK,WAAY+E,IAFd,CAIjBnS,OACHA,KAAKiN,GAAG,WAAY,SAAUrC,GAC5B,OAAO,SAASuH,GACd,GAAqC,IAAjCvH,EAAMsN,gBAAgBxR,QAAqD,IAArCkE,EAAMqN,oBAAoBvR,QAAkD,IAAlCkE,EAAMmN,iBAAiBrR,OACzG,OAAOuP,YAAW,WAChB,OAAOrL,EAAMwC,KAAK,mBAChB,IALU,CAQjBpN,OACHsY,EAAgB,SAAS3U,GAEvB,OADAA,EAAE0R,kBACE1R,EAAEyR,eACGzR,EAAEyR,iBAEFzR,EAAEwV,aAAc,GAG3BnZ,KAAK0O,UAAY,CACf,CACET,QAASjO,KAAKiO,QACdmC,OAAQ,CACN,UAAa,SAAUxF,GACrB,OAAO,SAASjH,GACd,OAAOiH,EAAMwC,KAAK,YAAazJ,IAFtB,CAIV3D,MACH,UAAa,SAAU4K,GACrB,OAAO,SAASjH,GAEd,OADA2U,EAAc3U,GACPiH,EAAMwC,KAAK,YAAazJ,IAHtB,CAKV3D,MACH,SAAY,SAAU4K,GACpB,OAAO,SAASjH,GACd,IAAIyV,EACJ,IACEA,EAAOzV,EAAE0V,aAAaC,cACtB,MAAOC,IAGT,OAFA5V,EAAE0V,aAAaG,WAAa,SAAWJ,GAAQ,aAAeA,EAAO,OAAS,OAC9Ed,EAAc3U,GACPiH,EAAMwC,KAAK,WAAYzJ,IARtB,CAUT3D,MACH,UAAa,SAAU4K,GACrB,OAAO,SAASjH,GACd,OAAOiH,EAAMwC,KAAK,YAAazJ,IAFtB,CAIV3D,MACH,KAAQ,SAAU4K,GAChB,OAAO,SAASjH,GAEd,OADA2U,EAAc3U,GACPiH,EAAMiJ,KAAKlQ,IAHd,CAKL3D,MACH,QAAW,SAAU4K,GACnB,OAAO,SAASjH,GACd,OAAOiH,EAAMwC,KAAK,UAAWzJ,IAFtB,CAIR3D,SAITA,KAAKyO,kBAAkB9H,QAAQ,SAAUiE,GACvC,OAAO,SAAS6O,GACd,OAAO7O,EAAM8D,UAAU9F,KAAK,CAC1BqF,QAASwL,EACTrJ,OAAQ,CACN,MAAS,SAASsJ,GAIhB,OAHKD,IAAqB7O,EAAMqD,SAAayL,EAAIpT,SAAWsE,EAAMqD,SAAW1B,EAASoN,cAAcD,EAAIpT,OAAQsE,EAAMqD,QAAQ7H,cAAc,kBAC1IwE,EAAM8N,gBAAgBkB,SAEjB,OATc,CAc5B5Z,OACHA,KAAKwG,SACExG,KAAKkO,QAAQ4B,KAAK7L,KAAKjE,OAGhCuM,EAASxH,UAAU8U,QAAU,WAC3B,IAAIxL,EAQJ,OAPArO,KAAK8Z,UACL9Z,KAAK+Z,gBAAe,IACiB,OAAhC1L,EAAOrO,KAAK0Y,iBAA2BrK,EAAK3I,gBAAa,KAC5D1F,KAAK0Y,gBAAgBhT,WAAW+J,YAAYzP,KAAK0Y,iBACjD1Y,KAAK0Y,gBAAkB,aAElB1Y,KAAKiO,QAAQa,SACbvC,EAASwC,UAAUlB,OAAOtB,EAASwC,UAAU3J,QAAQpF,MAAO,IAGrEuM,EAASxH,UAAUmU,0BAA4B,WAC7C,IAAiB/G,EAAM6H,EAAYC,EAAgBC,EAAqB5M,EAAIC,EAAMc,EAIlF,GAHA4L,EAAiB,EACjBD,EAAa,EACCha,KAAKoY,iBACH1R,OAAQ,CAEtB,IAAK4G,EAAK,EAAGC,GADbc,EAAOrO,KAAKoY,kBACa1R,OAAQ4G,EAAKC,EAAMD,IAE1C2M,IADA9H,EAAO9D,EAAKf,IACW6M,OAAOzD,UAC9BsD,GAAc7H,EAAKgI,OAAOC,MAE5BF,EAAsB,IAAMD,EAAiBD,OAE7CE,EAAsB,IAExB,OAAOla,KAAKoN,KAAK,sBAAuB8M,EAAqBF,EAAYC,IAG3E1N,EAASxH,UAAUsV,cAAgB,SAASxW,GAC1C,MAAsC,mBAA3B7D,KAAKkO,QAAQuC,UACfzQ,KAAKkO,QAAQuC,UAAU5M,GAElB7D,KAAKkO,QAAQuC,WAAazQ,KAAKkO,QAAQqC,eAAiB,IAAM1M,EAAI,IAAM,KAIxF0I,EAASxH,UAAU+N,gBAAkB,WACnC,IAAIwH,EAAkBC,EAAQC,EAAcC,EAC5C,OAAIH,EAAmBta,KAAKwP,uBACnB8K,GAETE,EAAe,4BACXxa,KAAKkO,QAAQuD,mBACf+I,GAAgB,MAAQxa,KAAKkO,QAAQuD,iBAAmB,QAE1D+I,GAAgB,4BAAkCxa,KAAKqa,cAAc,GAAM,MAASra,KAAKkO,QAAQqC,eAAiB,2BAAwB,GAAU,iDACpJgK,EAAShO,EAASmG,cAAc8H,GACH,SAAzBxa,KAAKiO,QAAQuK,SACfiC,EAAOlO,EAASmG,cAAc,iBAAoB1S,KAAKkO,QAAQiB,IAAM,2CAAiDnP,KAAKkO,QAAQoB,OAAS,cACvIqD,YAAY4H,IAEjBva,KAAKiO,QAAQwK,aAAa,UAAW,uBACrCzY,KAAKiO,QAAQwK,aAAa,SAAUzY,KAAKkO,QAAQoB,SAEpC,MAARmL,EAAeA,EAAOF,IAG/BhO,EAASxH,UAAUyK,oBAAsB,WACvC,IAAIpB,EAAUsM,EAAalC,EAASlL,EAAIC,EAAMc,EAW9C,IAVAqM,EAAc,SAASC,GACrB,IAAIzU,EAAIoH,EAAIC,EACZ,IAAKD,EAAK,EAAGC,EAAOoN,EAASjU,OAAQ4G,EAAKC,EAAMD,IAE9C,GADApH,EAAKyU,EAASrN,GACV,qBAAqBmF,KAAKvM,EAAGqM,WAC/B,OAAOrM,GAKRoH,EAAK,EAAGC,GADbc,EAAO,CAAC,MAAO,SACU3H,OAAQ4G,EAAKC,EAAMD,IAE1C,GADAkL,EAAUnK,EAAKf,GACXc,EAAWsM,EAAY1a,KAAKiO,QAAQuE,qBAAqBgG,IAC3D,OAAOpK,GAKb7B,EAASxH,UAAU6V,oBAAsB,WACvC,IAAIC,EAAkB3N,EAAO4N,EAAUxN,EAAIC,EAAMc,EAAMyG,EAGvD,IADAA,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAOrO,KAAK0O,WAEahI,OAAQ4G,EAAKC,EAAMD,IAC1CuN,EAAmBxM,EAAKf,GACxBwH,EAASlM,KAAK,WACZ,IAAIgM,EAAOmG,EAGX,IAAK7N,KADL6N,EAAY,GADZnG,EAAQiG,EAAiBzK,OAGvB0K,EAAWlG,EAAM1H,GACjB6N,EAAUnS,KAAKiS,EAAiB5M,QAAQ5H,iBAAiB6G,EAAO4N,GAAU,IAE5E,OAAOC,EARK,IAWhB,OAAOjG,GAGTvI,EAASxH,UAAUiW,qBAAuB,WACxC,IAAIH,EAAkB3N,EAAO4N,EAAUxN,EAAIC,EAAMc,EAAMyG,EAGvD,IADAA,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAOrO,KAAK0O,WAEahI,OAAQ4G,EAAKC,EAAMD,IAC1CuN,EAAmBxM,EAAKf,GACxBwH,EAASlM,KAAK,WACZ,IAAIgM,EAAOmG,EAGX,IAAK7N,KADL6N,EAAY,GADZnG,EAAQiG,EAAiBzK,OAGvB0K,EAAWlG,EAAM1H,GACjB6N,EAAUnS,KAAKiS,EAAiB5M,QAAQL,oBAAoBV,EAAO4N,GAAU,IAE/E,OAAOC,EARK,IAWhB,OAAOjG,GAGTvI,EAASxH,UAAU+U,QAAU,WAC3B,IAAI3H,EAAM7E,EAAIC,EAAMc,EAAMyG,EAO1B,IANA9U,KAAKyO,kBAAkB9H,SAAQ,SAASsH,GACtC,OAAOA,EAAQzI,UAAUuB,OAAO,mBAElC/G,KAAKgb,uBAELlG,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAOrO,KAAK2O,OAEajI,OAAQ4G,EAAKC,EAAMD,IAC1C6E,EAAO9D,EAAKf,GACZwH,EAASlM,KAAK5I,KAAKib,aAAa9I,IAElC,OAAO2C,GAGTvI,EAASxH,UAAUyB,OAAS,WAI1B,OAHAxG,KAAKyO,kBAAkB9H,SAAQ,SAASsH,GACtC,OAAOA,EAAQzI,UAAUoB,IAAI,mBAExB5G,KAAK4a,uBAGdrO,EAASxH,UAAUkQ,SAAW,SAASC,GACrC,IAAYnR,EAAGmX,EAAcC,EAAcC,EAAMC,EAAO/N,EAAIC,EAG5D,GAFA2N,EAAe,EACfC,EAAe,IACXjG,EAAO,EAAG,CAEZ,IAAKnR,EAAIuJ,EAAK,EAAGC,GADjB8N,EAAQ,CAAC,KAAM,KAAM,KAAM,KAAM,MACH3U,OAAQ4G,EAAKC,EAAMxJ,IAAMuJ,EAGrD,GAFA8N,EAAOC,EAAMtX,GAETmR,GADKoG,KAAKC,IAAIvb,KAAKkO,QAAQ4C,aAAc,EAAI/M,GAAK,GAClC,CAClBmX,EAAehG,EAAOoG,KAAKC,IAAIvb,KAAKkO,QAAQ4C,aAAc,EAAI/M,GAC9DoX,EAAeC,EACf,MAGJF,EAAeI,KAAKE,MAAM,GAAKN,GAAgB,GAEjD,MAAO,WAAaA,EAAe,aAAeC,GAGpD5O,EAASxH,UAAU4Q,4BAA8B,WAC/C,OAA8B,MAAzB3V,KAAKkO,QAAQ6C,UAAqB/Q,KAAK2X,mBAAmBjR,QAAU1G,KAAKkO,QAAQ6C,UAChF/Q,KAAK2X,mBAAmBjR,SAAW1G,KAAKkO,QAAQ6C,UAClD/Q,KAAKoN,KAAK,kBAAmBpN,KAAK2O,OAE7B3O,KAAKiO,QAAQzI,UAAUoB,IAAI,yBAE3B5G,KAAKiO,QAAQzI,UAAUuB,OAAO,yBAIzCwF,EAASxH,UAAU8O,KAAO,SAASlQ,GACjC,IAAIgL,EAAO8M,EACN9X,EAAE0V,eAGPrZ,KAAKoN,KAAK,OAAQzJ,GAClBgL,EAAQhL,EAAE0V,aAAa1K,MACvB3O,KAAKoN,KAAK,aAAcuB,GACpBA,EAAMjI,UACR+U,EAAQ9X,EAAE0V,aAAaoC,QACVA,EAAM/U,QAAwC,MAA7B+U,EAAM,GAAGC,iBACrC1b,KAAK2b,mBAAmBF,GAExBzb,KAAK4b,YAAYjN,MAKvBpC,EAASxH,UAAUoP,MAAQ,SAASxQ,GAClC,IAAI8X,EAAOpN,EACX,GAAqF,OAA3E,MAAL1K,GAAwC,OAA3B0K,EAAO1K,EAAEkY,eAAyBxN,EAAKoN,WAAiB,GAK1E,OAFAzb,KAAKoN,KAAK,QAASzJ,IACnB8X,EAAQ9X,EAAEkY,cAAcJ,OACd/U,OACD1G,KAAK2b,mBAAmBF,QADjC,GAKFlP,EAASxH,UAAU6W,YAAc,SAASjN,GACxC,IAAIwD,EAAM7E,EAAIC,EAAMuH,EAEpB,IADAA,EAAW,GACNxH,EAAK,EAAGC,EAAOoB,EAAMjI,OAAQ4G,EAAKC,EAAMD,IAC3C6E,EAAOxD,EAAMrB,GACbwH,EAASlM,KAAK5I,KAAK+Y,QAAQ5G,IAE7B,OAAO2C,GAGTvI,EAASxH,UAAU4W,mBAAqB,SAASF,GAC/C,IAAIK,EAAOC,EAAMzO,EAAIC,EAAMuH,EAE3B,IADAA,EAAW,GACNxH,EAAK,EAAGC,EAAOkO,EAAM/U,OAAQ4G,EAAKC,EAAMD,IAEb,OAD9ByO,EAAON,EAAMnO,IACHoO,mBAA8BI,EAAQC,EAAKL,oBAC/CI,EAAME,OACRlH,EAASlM,KAAK5I,KAAK+Y,QAAQgD,EAAKE,cACvBH,EAAMI,YACfpH,EAASlM,KAAK5I,KAAKmc,uBAAuBL,EAAOA,EAAMhd,OAEvDgW,EAASlM,UAAK,GAEW,MAAlBmT,EAAKE,YACI,MAAbF,EAAKK,MAA+B,SAAdL,EAAKK,MAC9BtH,EAASlM,KAAK5I,KAAK+Y,QAAQgD,EAAKE,cAKlCnH,EAASlM,UAAK,GAGlB,OAAOkM,GAGTvI,EAASxH,UAAUoX,uBAAyB,SAASE,EAAWC,GAC9D,IAAIC,EAAWC,EAEW5R,EAmB1B,OApBA2R,EAAYF,EAAUI,eACI7R,EAkBvB5K,KAlBHwc,EACS,SAASE,GACd,IAAIZ,EAAOxO,EAAIC,EACf,IAAKD,EAAK,EAAGC,EAAOmP,EAAQhW,OAAQ4G,EAAKC,EAAMD,KAC7CwO,EAAQY,EAAQpP,IACN0O,OACRF,EAAM3J,MAAK,SAASA,GAClB,IAAIvH,EAAMsD,QAAQ+C,mBAAmD,MAA9BkB,EAAKrT,KAAK6d,UAAU,EAAG,GAI9D,OADAxK,EAAKyK,SAAgBN,EAAO,IAAMnK,EAAKrT,KAChC8L,EAAMmO,QAAQ5G,MAEd2J,EAAMI,aACftR,EAAMuR,uBAAuBL,EAAYQ,EAAO,IAAMR,EAAMhd,OAK7Dyd,EAAUM,YAAYL,GAAe,SAAStG,GACnD,MAA0B,oBAAZ4G,SAAuC,OAAZA,SAA0C,mBAAhBA,QAAQC,IAAqBD,QAAQC,IAAI7G,QAAkB,MAIlI3J,EAASxH,UAAUmN,OAAS,SAASC,EAAMC,GACzC,OAAID,EAAK+C,KAAkC,KAA3BlV,KAAKkO,QAAQsC,YAAqB,KACzC4B,EAAKpS,KAAKkO,QAAQwD,eAAelK,QAAQ,eAAgB8T,KAAKE,MAAMrJ,EAAK+C,KAAO,KAAO,OAAS,KAAK1N,QAAQ,kBAAmBxH,KAAKkO,QAAQsC,cAC1IjE,EAASyQ,YAAY7K,EAAMnS,KAAKkO,QAAQkB,eAEf,MAAzBpP,KAAKkO,QAAQ6C,UAAqB/Q,KAAK2X,mBAAmBjR,QAAU1G,KAAKkO,QAAQ6C,UAC3FqB,EAAKpS,KAAKkO,QAAQ+D,qBAAqBzK,QAAQ,eAAgBxH,KAAKkO,QAAQ6C,WACrE/Q,KAAKoN,KAAK,mBAAoB+E,IAE9BnS,KAAKkO,QAAQgE,OAAOjO,KAAKjE,KAAMmS,EAAMC,GALrCA,EAAKpS,KAAKkO,QAAQyD,sBAS7BpF,EAASxH,UAAUgU,QAAU,SAAS5G,GAUpC,OATAA,EAAKgI,OAAS,CACZ1D,SAAU,EACV2D,MAAOjI,EAAK+C,KACZwB,UAAW,GAEb1W,KAAK2O,MAAM/F,KAAKuJ,GAChBA,EAAKmD,OAAS/I,EAAS4L,MACvBnY,KAAKoN,KAAK,YAAa+E,GACvBnS,KAAKid,kBAAkB9K,GAChBnS,KAAKkS,OAAOC,GAAgBvH,EAahC5K,KAZM,SAASkW,GAUd,OATIA,GACF/D,EAAKyF,UAAW,EAChBhN,EAAMsS,iBAAiB,CAAC/K,GAAO+D,KAE/B/D,EAAKyF,UAAW,EACZhN,EAAMsD,QAAQiD,WAChBvG,EAAMuS,YAAYhL,IAGfvH,EAAM+K,iCAXQ,IAAU/K,GAgBrC2B,EAASxH,UAAUqY,aAAe,SAASzO,GACzC,IAAIwD,EAAM7E,EAAIC,EACd,IAAKD,EAAK,EAAGC,EAAOoB,EAAMjI,OAAQ4G,EAAKC,EAAMD,IAC3C6E,EAAOxD,EAAMrB,GACbtN,KAAKmd,YAAYhL,GAEnB,OAAO,MAGT5F,EAASxH,UAAUoY,YAAc,SAAShL,GACxC,GAAIA,EAAKmD,SAAW/I,EAAS4L,QAA2B,IAAlBhG,EAAKyF,SAUzC,MAAM,IAAI/I,MAAM,oFARhB,GADAsD,EAAKmD,OAAS/I,EAASyL,OACnBhY,KAAKkO,QAAQgD,iBACf,OAAO+E,YAAsBrL,EAI1B5K,KAHM,WACL,OAAO4K,EAAMyS,iBAEN,GAJQ,IAAUzS,GAWnC2B,EAASxH,UAAUuY,gBAAkB,GAErC/Q,EAASxH,UAAUwY,sBAAuB,EAE1ChR,EAASxH,UAAUkY,kBAAoB,SAAS9K,GAC9C,GAAInS,KAAKkO,QAAQwC,uBAAyByB,EAAK9S,KAAKkJ,MAAM,YAAc4J,EAAK+C,MAA4C,KAApClV,KAAKkO,QAAQyC,qBAA8B,KAE9H,OADA3Q,KAAKsd,gBAAgB1U,KAAKuJ,GACnB8D,YAAsBrL,EAI1B5K,KAHM,WACL,OAAO4K,EAAM4S,2BAEN,GAJQ,IAAU5S,GAQjC2B,EAASxH,UAAUyY,uBAAyB,WAKgB,IAAU5S,EAJpE,IAAI5K,KAAKud,sBAAwD,IAAhCvd,KAAKsd,gBAAgB5W,OAItD,OADA1G,KAAKud,sBAAuB,EACrBvd,KAAKyd,gBAAgBzd,KAAKsd,gBAAgBI,SAAmB9S,EAKjE5K,KAJM,WAEL,OADA4K,EAAM2S,sBAAuB,EACtB3S,EAAM4S,6BAKnBjR,EAASxH,UAAU0Q,WAAa,SAAStD,GAMvC,GALIA,EAAKmD,SAAW/I,EAASgJ,WAC3BvV,KAAKib,aAAa9I,GAEpBnS,KAAK2O,MAAQ7B,EAAQ9M,KAAK2O,MAAOwD,GACjCnS,KAAKoN,KAAK,cAAe+E,GACC,IAAtBnS,KAAK2O,MAAMjI,OACb,OAAO1G,KAAKoN,KAAK,UAIrBb,EAASxH,UAAUgV,eAAiB,SAAS4D,GAC3C,IAAIxL,EAAM7E,EAAIC,EAAMc,EAKpB,IAJyB,MAArBsP,IACFA,GAAoB,GAGjBrQ,EAAK,EAAGC,GADbc,EAAOrO,KAAK2O,MAAMrJ,SACOoB,OAAQ4G,EAAKC,EAAMD,MAC1C6E,EAAO9D,EAAKf,IACHgI,SAAW/I,EAASgJ,WAAaoI,IACxC3d,KAAKyV,WAAWtD,GAGpB,OAAO,MAGT5F,EAASxH,UAAU0Y,gBAAkB,SAAStL,EAAMyL,GAClD,IAAIC,EAE0BjT,EAY9B,OAbAiT,EAAa,IAAIC,YACNC,QAAmBnT,EAW3B5K,KAVM,WACL,MAAkB,kBAAdmS,EAAK9S,MACPuL,EAAMwC,KAAK,YAAa+E,EAAM0L,EAAWzW,aACzB,MAAZwW,GACFA,MAIGhT,EAAMoT,uBAAuB7L,EAAM0L,EAAWzW,OAAQwW,KAG1DC,EAAWI,cAAc9L,IAGlC5F,EAASxH,UAAUiZ,uBAAyB,SAAS7L,EAAM+L,EAAUN,EAAUO,GAC7E,IAAIC,EAKmBxT,EA2BvB,OA/BAwT,EAAMrY,SAAS2M,cAAc,OACzByL,IACFC,EAAID,YAAcA,GAEpBC,EAAIL,QAAmBnT,EAuBpB5K,KAtBM,WACL,IAAIqe,EAAQC,EAAKC,EAAY3I,EAAWvH,EAAMuG,EAAOC,EAAO2J,EAiB5D,GAhBArM,EAAKmB,MAAQ8K,EAAI9K,MACjBnB,EAAKqB,OAAS4K,EAAI5K,OAES,OAD3B+K,EAAa3T,EAAMsD,QAAQ6E,OAAO9O,KAAK2G,EAAOuH,IAC/ByB,WACb2K,EAAW3K,SAAW2K,EAAW9K,UAEP,MAAxB8K,EAAW5K,YACb4K,EAAW5K,UAAY4K,EAAW7K,WAGpC4K,GADAD,EAAStY,SAAS2M,cAAc,WACnB+L,WAAW,MACxBJ,EAAO/K,MAAQiL,EAAW3K,SAC1ByK,EAAO7K,OAAS+K,EAAW5K,UAC3B/G,EAAgB0R,EAAKF,EAAiC,OAA3B/P,EAAOkQ,EAAWpL,MAAgB9E,EAAO,EAAgC,OAA5BuG,EAAQ2J,EAAWnL,MAAgBwB,EAAQ,EAAG2J,EAAWlL,SAAUkL,EAAWhL,UAAwC,OAA5BsB,EAAQ0J,EAAWG,MAAgB7J,EAAQ,EAAgC,OAA5B2J,EAAQD,EAAWI,MAAgBH,EAAQ,EAAGD,EAAW3K,SAAU2K,EAAW5K,WAC/RiC,EAAYyI,EAAOO,UAAU,aAC7BhU,EAAMwC,KAAK,YAAa+E,EAAMyD,GACd,MAAZgI,EACF,OAAOA,MAIG,MAAZA,IACFQ,EAAIS,QAAUjB,GAETQ,EAAIpI,IAAMkI,GAGnB3R,EAASxH,UAAUsY,aAAe,WAChC,IAAItZ,EAAGuM,EAAiBwO,EAAkBC,EAI1C,GAHAzO,EAAkBtQ,KAAKkO,QAAQoC,gBAE/BvM,EADA+a,EAAmB9e,KAAKiY,oBAAoBvR,SAExCoY,GAAoBxO,KAGxByO,EAAc/e,KAAK+X,kBACDrR,OAAS,EAA3B,CAGA,GAAI1G,KAAKkO,QAAQqC,eACf,OAAOvQ,KAAKgf,aAAaD,EAAYzZ,MAAM,EAAGgL,EAAkBwO,IAEhE,KAAO/a,EAAIuM,GAAiB,CAC1B,IAAKyO,EAAYrY,OACf,OAEF1G,KAAKif,YAAYF,EAAYrB,SAC7B3Z,OAKNwI,EAASxH,UAAUka,YAAc,SAAS9M,GACxC,OAAOnS,KAAKgf,aAAa,CAAC7M,KAG5B5F,EAASxH,UAAUia,aAAe,SAASrQ,GACzC,IAAIwD,EAAM7E,EAAIC,EACd,IAAKD,EAAK,EAAGC,EAAOoB,EAAMjI,OAAQ4G,EAAKC,EAAMD,KAC3C6E,EAAOxD,EAAMrB,IACRgJ,YAAa,EAClBnE,EAAKmD,OAAS/I,EAASgJ,UACvBvV,KAAKoN,KAAK,aAAc+E,GAK1B,OAHInS,KAAKkO,QAAQqC,gBACfvQ,KAAKoN,KAAK,qBAAsBuB,GAE3B3O,KAAKkf,YAAYvQ,IAG1BpC,EAASxH,UAAUoa,iBAAmB,SAASC,GAC7C,IAAIjN,EACJ,OAAe,WACb,IAAI7E,EAAIC,EAAMc,EAAMyG,EAGpB,IADAA,EAAW,GACNxH,EAAK,EAAGC,GAFbc,EAAOrO,KAAK2O,OAEajI,OAAQ4G,EAAKC,EAAMD,KAC1C6E,EAAO9D,EAAKf,IACH8R,MAAQA,GACftK,EAASlM,KAAKuJ,GAGlB,OAAO2C,GACN7Q,KAAKjE,OAGVuM,EAASxH,UAAUkW,aAAe,SAAS9I,GACzC,IAAIkN,EAAaC,EAAchS,EAAIkH,EAAIjH,EAAMmH,EAAOrG,EACpD,GAAI8D,EAAKmD,SAAW/I,EAASgJ,UAAW,CAEtC,IAAKjI,EAAK,EAAGC,GADb+R,EAAetf,KAAKmf,iBAAiBhN,EAAKiN,MACT1Y,OAAQ4G,EAAKC,EAAMD,KAClD+R,EAAcC,EAAahS,IACfgI,OAAS/I,EAASgT,SAGhC,IADApN,EAAKiN,IAAII,QACJhL,EAAK,EAAGE,EAAQ4K,EAAa5Y,OAAQ8N,EAAKE,EAAOF,IACpD6K,EAAcC,EAAa9K,GAC3BxU,KAAKoN,KAAK,WAAYiS,GAEpBrf,KAAKkO,QAAQqC,gBACfvQ,KAAKoN,KAAK,mBAAoBkS,QAEtBjR,EAAO8D,EAAKmD,UAAY/I,EAAS4L,OAAS9J,IAAS9B,EAASyL,SACtE7F,EAAKmD,OAAS/I,EAASgT,SACvBvf,KAAKoN,KAAK,WAAY+E,GAClBnS,KAAKkO,QAAQqC,gBACfvQ,KAAKoN,KAAK,mBAAoB,CAAC+E,KAGnC,GAAInS,KAAKkO,QAAQgD,iBACf,OAAOlR,KAAKqd,gBAIhBrP,EAAgB,WACd,IAAIlD,EAAM2U,EAEV,OADAA,EAASjS,UAAU,GAAI1C,EAAO,GAAK0C,UAAU9G,OAASqG,EAAQ9I,KAAKuJ,UAAW,GAAK,GAC7D,mBAAXiS,EACFA,EAAOla,MAAMvF,KAAM8K,GAErB2U,GAGTlT,EAASxH,UAAU2a,WAAa,SAASvN,GACvC,OAAOnS,KAAKkf,YAAY,CAAC/M,KAG3B5F,EAASxH,UAAUma,YAAc,SAASvQ,GACxC,IAAIwD,EAAMwN,EAAUC,EAAaC,EAAYC,EAAaC,EAAShc,EAAGic,EAAOC,EAAWC,EAAWtU,EAAK0D,EAAQmQ,EAAqBU,EAAUC,EAAgBjR,EAAKxP,EAAOyf,EAAK9R,EAAIkH,EAAIC,EAAI4L,EAAI9S,EAAMmH,EAAOC,EAAO2L,EAAOC,EAAIlS,EAAMuG,EAAOC,EAAO2J,EAAOgC,EAAOC,EAWzO7V,EATxB,IADAwU,EAAM,IAAIsB,eACLpT,EAAK,EAAGC,EAAOoB,EAAMjI,OAAQ4G,EAAKC,EAAMD,KAC3C6E,EAAOxD,EAAMrB,IACR8R,IAAMA,EAkGb,IAAKS,KAhGLvQ,EAAStB,EAAchO,KAAKkO,QAAQoB,OAAQX,GAC5CQ,EAAMnB,EAAchO,KAAKkO,QAAQiB,IAAKR,GACtCyQ,EAAIuB,KAAKrR,EAAQH,GAAK,GACtBiQ,EAAI/O,kBAAoBrQ,KAAKkO,QAAQmC,gBACrC8P,EAAW,KACavV,EAUrB5K,KAVH4f,EACS,WACL,IAAIpL,EAAIE,EAAOI,EAEf,IADAA,EAAW,GACNN,EAAK,EAAGE,EAAQ/F,EAAMjI,OAAQ8N,EAAKE,EAAOF,IAC7CrC,EAAOxD,EAAM6F,GACbM,EAASlM,KAAKgC,EAAMsS,iBAAiBvO,EAAOwR,GAAYvV,EAAMsD,QAAQ0D,kBAAkBpK,QAAQ,iBAAkB4X,EAAI9J,QAAS8J,IAEjI,OAAOtK,GAGXsL,EAAiB,SAAUxV,GACzB,OAAO,SAASjH,GACd,IAAIid,EAAkBnK,EAAUjC,EAAIC,EAAI4L,EAAI3L,EAAOC,EAAO2L,EAAOxL,EACjE,GAAS,MAALnR,EAEF,IADA8S,EAAW,IAAM9S,EAAEkd,OAASld,EAAEyW,MACzB5F,EAAK,EAAGE,EAAQ/F,EAAMjI,OAAQ8N,EAAKE,EAAOF,KAC7CrC,EAAOxD,EAAM6F,IACR2F,OAAS,CACZ1D,SAAUA,EACV2D,MAAOzW,EAAEyW,MACT1D,UAAW/S,EAAEkd,YAGZ,CAGL,IAFAD,GAAmB,EACnBnK,EAAW,IACNhC,EAAK,EAAGE,EAAQhG,EAAMjI,OAAQ+N,EAAKE,EAAOF,IAEd,OAD/BtC,EAAOxD,EAAM8F,IACF0F,OAAO1D,UAAoBtE,EAAKgI,OAAOzD,YAAcvE,EAAKgI,OAAOC,QAC1EwG,GAAmB,GAErBzO,EAAKgI,OAAO1D,SAAWA,EACvBtE,EAAKgI,OAAOzD,UAAYvE,EAAKgI,OAAOC,MAEtC,GAAIwG,EACF,OAIJ,IADA9L,EAAW,GACNuL,EAAK,EAAGC,EAAQ3R,EAAMjI,OAAQ2Z,EAAKC,EAAOD,IAC7ClO,EAAOxD,EAAM0R,GACbvL,EAASlM,KAAKgC,EAAMwC,KAAK,iBAAkB+E,EAAMsE,EAAUtE,EAAKgI,OAAOzD,YAEzE,OAAO5B,GAjCM,CAmCd9U,MACHof,EAAIrB,OAAS,SAAUnT,GACrB,OAAO,SAASjH,GACd,IAAI0K,EACJ,GAAIM,EAAM,GAAG2G,SAAW/I,EAASgT,UAGV,IAAnBH,EAAI0B,WAAR,CAIA,GADAX,EAAWf,EAAI2B,aACX3B,EAAI4B,kBAAkB,kBAAoB5B,EAAI4B,kBAAkB,gBAAgB5b,QAAQ,oBAC1F,IACE+a,EAAWc,KAAKC,MAAMf,GACtB,MAAO5G,GACP5V,EAAI4V,EACJ4G,EAAW,qCAIf,OADAC,IACO,MAAQ/R,EAAO+Q,EAAI9J,SAAWjH,EAAO,IAGnCzD,EAAMuW,UAAUxS,EAAOwR,EAAUxc,GAFjCic,MApBA,CAyBV5f,MACHof,EAAIP,QACK,WACL,GAAIlQ,EAAM,GAAG2G,SAAW/I,EAASgT,SAGjC,OAAOK,MAG0B,OAAtBvR,EAAO+Q,EAAIjF,QAAkB9L,EAAO+Q,GACvCgC,WAAahB,EACzBL,EAAU,CACR,OAAU,mBACV,gBAAiB,WACjB,mBAAoB,kBAElB/f,KAAKkO,QAAQ6R,SACfhS,EAAOgS,EAAS/f,KAAKkO,QAAQ6R,SAEZA,GACjBD,EAAcC,EAAQF,KAEpBT,EAAIiC,iBAAiBxB,EAAYC,GAIrC,GADAH,EAAW,IAAI2B,SACXthB,KAAKkO,QAAQ8C,OAEf,IAAKpF,KADLgJ,EAAQ5U,KAAKkO,QAAQ8C,OAEnBrR,EAAQiV,EAAMhJ,GACd+T,EAAS4B,OAAO3V,EAAKjM,GAGzB,IAAK6U,EAAK,EAAGE,EAAQ/F,EAAMjI,OAAQ8N,EAAKE,EAAOF,IAC7CrC,EAAOxD,EAAM6F,GACbxU,KAAKoN,KAAK,UAAW+E,EAAMiN,EAAKO,GAKlC,GAHI3f,KAAKkO,QAAQqC,gBACfvQ,KAAKoN,KAAK,kBAAmBuB,EAAOyQ,EAAKO,GAEd,SAAzB3f,KAAKiO,QAAQuK,QAEf,IAAK/D,EAAK,EAAGE,GADbE,EAAQ7U,KAAKiO,QAAQxH,iBAAiB,oCACXC,OAAQ+N,EAAKE,EAAOF,IAI7C,GAFAwL,GADAD,EAAQnL,EAAMJ,IACI3M,aAAa,QAC/BoY,EAAYF,EAAMlY,aAAa,QACT,WAAlBkY,EAAMxH,SAAwBwH,EAAMtY,aAAa,YAEnD,IAAK2Y,EAAK,EAAGC,GADb9B,EAAQwB,EAAM9R,SACaxH,OAAQ2Z,EAAKC,EAAOD,KAC7CZ,EAASjB,EAAM6B,IACJmB,UACT7B,EAAS4B,OAAOtB,EAAWR,EAAO9f,aAG5BugB,GAAoD,cAArCM,EAAQN,EAAUuB,gBAA2C,UAAVjB,GAAsBR,EAAM9Y,UACxGyY,EAAS4B,OAAOtB,EAAWD,EAAMrgB,OAIvC,IAAKoE,EAAIwc,EAAK,EAAGE,EAAQ9R,EAAMjI,OAAS,EAAG,GAAK+Z,EAAQF,GAAME,EAAQF,GAAME,EAAO1c,EAAI,GAAK0c,IAAUF,IAAOA,EAC3GZ,EAAS4B,OAAOvhB,KAAKqa,cAActW,GAAI4K,EAAM5K,GAAI4K,EAAM5K,GAAGjF,MAE5D,OAAOkB,KAAK0hB,cAActC,EAAKO,EAAUhR,IAG3CpC,EAASxH,UAAU2c,cAAgB,SAAStC,EAAKO,EAAUhR,GACzD,OAAOyQ,EAAIuC,KAAKhC,IAGlBpT,EAASxH,UAAUoc,UAAY,SAASxS,EAAOoS,EAAcpd,GAC3D,IAAIwO,EAAM7E,EAAIC,EACd,IAAKD,EAAK,EAAGC,EAAOoB,EAAMjI,OAAQ4G,EAAKC,EAAMD,KAC3C6E,EAAOxD,EAAMrB,IACRgI,OAAS/I,EAASqV,QACvB5hB,KAAKoN,KAAK,UAAW+E,EAAM4O,EAAcpd,GACzC3D,KAAKoN,KAAK,WAAY+E,GAMxB,GAJInS,KAAKkO,QAAQqC,iBACfvQ,KAAKoN,KAAK,kBAAmBuB,EAAOoS,EAAcpd,GAClD3D,KAAKoN,KAAK,mBAAoBuB,IAE5B3O,KAAKkO,QAAQgD,iBACf,OAAOlR,KAAKqd,gBAIhB9Q,EAASxH,UAAUmY,iBAAmB,SAASvO,EAAOwH,EAASiJ,GAC7D,IAAIjN,EAAM7E,EAAIC,EACd,IAAKD,EAAK,EAAGC,EAAOoB,EAAMjI,OAAQ4G,EAAKC,EAAMD,KAC3C6E,EAAOxD,EAAMrB,IACRgI,OAAS/I,EAASsV,MACvB7hB,KAAKoN,KAAK,QAAS+E,EAAMgE,EAASiJ,GAClCpf,KAAKoN,KAAK,WAAY+E,GAMxB,GAJInS,KAAKkO,QAAQqC,iBACfvQ,KAAKoN,KAAK,gBAAiBuB,EAAOwH,EAASiJ,GAC3Cpf,KAAKoN,KAAK,mBAAoBuB,IAE5B3O,KAAKkO,QAAQgD,iBACf,OAAOlR,KAAKqd,gBAIT9Q,EA9xCE,CAgyCRC,IAEM8B,QAAU,QAEnB/B,EAAS2B,QAAU,GAEnB3B,EAASyC,kBAAoB,SAASf,GACpC,OAAIA,EAAQnG,aAAa,MAChByE,EAAS2B,QAAQzB,EAASwB,EAAQnG,aAAa,aAEtD,GAIJyE,EAASwC,UAAY,GAErBxC,EAASuV,WAAa,SAAS7T,GAI7B,GAHuB,iBAAZA,IACTA,EAAUlI,SAASK,cAAc6H,IAEkB,OAArC,MAAXA,EAAkBA,EAAQa,cAAW,GACxC,MAAM,IAAID,MAAM,kNAElB,OAAOZ,EAAQa,UAGjBvC,EAASwV,cAAe,EAExBxV,EAASyV,SAAW,WAClB,IAAIC,EAAenT,EAAUoT,EAAW5U,EAAIC,EAAMuH,EAsBlD,IArBI/O,SAASU,iBACXyb,EAAYnc,SAASU,iBAAiB,cAEtCyb,EAAY,IACZD,EAAgB,SAAStH,GACvB,IAAIzU,EAAIoH,EAAIC,EAAMuH,EAElB,IADAA,EAAW,GACNxH,EAAK,EAAGC,EAAOoN,EAASjU,OAAQ4G,EAAKC,EAAMD,IAC9CpH,EAAKyU,EAASrN,GACV,qBAAqBmF,KAAKvM,EAAGqM,WAC/BuC,EAASlM,KAAKsZ,EAAUtZ,KAAK1C,IAE7B4O,EAASlM,UAAK,GAGlB,OAAOkM,IAEK/O,SAASyM,qBAAqB,QAC5CyP,EAAclc,SAASyM,qBAAqB,UAE9CsC,EAAW,GACNxH,EAAK,EAAGC,EAAO2U,EAAUxb,OAAQ4G,EAAKC,EAAMD,IAC/CwB,EAAWoT,EAAU5U,IACwB,IAAzCf,EAASyC,kBAAkBF,GAC7BgG,EAASlM,KAAK,IAAI2D,EAASuC,IAE3BgG,EAASlM,UAAK,GAGlB,OAAOkM,GAGTvI,EAAS4V,oBAAsB,CAAC,kCAEhC5V,EAAS2C,mBAAqB,WAC5B,IAAIkT,EAAuB9U,EAAIC,EAAMc,EAErC,GADA+T,GAAiB,EACb5e,OAAO6e,MAAQ7e,OAAOsa,YAActa,OAAO8e,UAAY9e,OAAO+e,MAAQ/e,OAAO8d,UAAYvb,SAASK,cACpG,GAAM,cAAeL,SAAS2M,cAAc,KAI1C,IAAKpF,EAAK,EAAGC,GADbc,EAAO9B,EAAS4V,qBACSzb,OAAQ4G,EAAKC,EAAMD,IAClCe,EAAKf,GACHmF,KAAK+P,UAAUC,aACvBL,GAAiB,QANrBA,GAAiB,OAYnBA,GAAiB,EAEnB,OAAOA,GAGTtV,EAAU,SAAS4V,EAAMC,GACvB,IAAI5G,EAAMzO,EAAIC,EAAMuH,EAEpB,IADAA,EAAW,GACNxH,EAAK,EAAGC,EAAOmV,EAAKhc,OAAQ4G,EAAKC,EAAMD,KAC1CyO,EAAO2G,EAAKpV,MACCqV,GACX7N,EAASlM,KAAKmT,GAGlB,OAAOjH,GAGTrI,EAAW,SAASmW,GAClB,OAAOA,EAAIpb,QAAQ,cAAc,SAASe,GACxC,OAAOA,EAAMsa,OAAO,GAAGtT,kBAI3BhD,EAASmG,cAAgB,SAASoQ,GAChC,IAAIC,EAGJ,OAFAA,EAAMhd,SAAS2M,cAAc,QACzBsC,UAAY8N,EACTC,EAAIC,WAAW,IAGxBzW,EAASoN,cAAgB,SAAS1L,EAAS3N,GACzC,GAAI2N,IAAY3N,EACd,OAAO,EAET,KAAO2N,EAAUA,EAAQvI,YACvB,GAAIuI,IAAY3N,EACd,OAAO,EAGX,OAAO,GAGTiM,EAASoD,WAAa,SAASzJ,EAAIpH,GACjC,IAAImP,EAMJ,GALkB,iBAAP/H,EACT+H,EAAUlI,SAASK,cAAcF,GACT,MAAfA,EAAG0I,WACZX,EAAU/H,GAEG,MAAX+H,EACF,MAAM,IAAIY,MAAM,YAAc/P,EAAO,6EAEvC,OAAOmP,GAGT1B,EAASsD,YAAc,SAASoT,EAAKnkB,GACnC,IAAOoH,EAAIyU,EAAUrN,EAAIkH,EAAIjH,EAAMmH,EAAOrG,EAC1C,GAAI4U,aAAe5d,MAAO,CACxBsV,EAAW,GACX,IACE,IAAKrN,EAAK,EAAGC,EAAO0V,EAAIvc,OAAQ4G,EAAKC,EAAMD,IACzCpH,EAAK+c,EAAI3V,GACTqN,EAAS/R,KAAK5I,KAAK2P,WAAWzJ,EAAIpH,IAEpC,MAAOya,GACHA,EACJoB,EAAW,WAER,GAAmB,iBAARsI,EAGhB,IAFAtI,EAAW,GAENnG,EAAK,EAAGE,GADbrG,EAAOtI,SAASU,iBAAiBwc,IACPvc,OAAQ8N,EAAKE,EAAOF,IAC5CtO,EAAKmI,EAAKmG,GACVmG,EAAS/R,KAAK1C,QAES,MAAhB+c,EAAIrU,WACb+L,EAAW,CAACsI,IAEd,GAAmB,MAAZtI,IAAqBA,EAASjU,OACnC,MAAM,IAAImI,MAAM,YAAc/P,EAAO,8FAEvC,OAAO6b,GAGTpO,EAASiJ,QAAU,SAAS0N,EAAUtL,EAAUuL,GAC9C,OAAI3f,OAAOgS,QAAQ0N,GACVtL,IACc,MAAZuL,EACFA,SADF,GAKT5W,EAASyQ,YAAc,SAAS7K,EAAM/C,GACpC,IAAIgU,EAAcC,EAAUC,EAAWhW,EAAIC,EAC3C,IAAK6B,EACH,OAAO,EAKT,IAHAA,EAAgBA,EAAcvH,MAAM,KAEpCub,GADAC,EAAWlR,EAAK9S,MACQmI,QAAQ,QAAS,IACpC8F,EAAK,EAAGC,EAAO6B,EAAc1I,OAAQ4G,EAAKC,EAAMD,IAGnD,GAA4B,OAD5BgW,GADAA,EAAYlU,EAAc9B,IACJ5E,QACRma,OAAO,IACnB,IAAuG,IAAnG1Q,EAAKrT,KAAK2iB,cAAcrc,QAAQke,EAAU7B,cAAetP,EAAKrT,KAAK4H,OAAS4c,EAAU5c,QACxF,OAAO,OAEJ,GAAI,QAAQ+L,KAAK6Q,IACtB,GAAIF,IAAiBE,EAAU9b,QAAQ,QAAS,IAC9C,OAAO,OAGT,GAAI6b,IAAaC,EACf,OAAO,EAIb,OAAO,GAGL,MAAOva,IACTA,EAAOC,GAAG8F,SAAW,SAASZ,GAC5B,OAAOlO,KAAKkJ,MAAK,WACf,OAAO,IAAIqD,EAASvM,KAAMkO,QAKgB,OAAXzK,EACnCA,EAAOC,QAAU6I,EAEjB/I,OAAO+I,SAAWA,EAGpBA,EAAS4L,MAAQ,QAEjB5L,EAASyL,OAAS,SAElBzL,EAASgX,SAAWhX,EAASyL,OAE7BzL,EAASgJ,UAAY,YAErBhJ,EAASiX,WAAajX,EAASgJ,UAE/BhJ,EAASgT,SAAW,WAEpBhT,EAASsV,MAAQ,QAEjBtV,EAASqV,QAAU,UAUnBjV,EAAuB,SAASyR,GAC9B,IAAWC,EAAQC,EAAKnV,EAAMsa,EAAIC,EAAQC,EAAIC,EAAOC,EAYrD,IAXKzF,EAAI0F,aACTJ,EAAKtF,EAAI2F,eACT1F,EAAStY,SAAS2M,cAAc,WACzBY,MAAQ,EACf+K,EAAO7K,OAASkQ,GAChBpF,EAAMD,EAAOI,WAAW,OACpBuF,UAAU5F,EAAK,EAAG,GACtBjV,EAAOmV,EAAI2F,aAAa,EAAG,EAAG,EAAGP,GAAIva,KACrC0a,EAAK,EACLJ,EAAKC,EACLC,EAAKD,EACEC,EAAKE,GAEI,IADN1a,EAAgB,GAAVwa,EAAK,GAAS,GAE1BF,EAAKE,EAELE,EAAKF,EAEPA,EAAMF,EAAKI,GAAO,EAGpB,OAAc,KADdD,EAAQD,EAAKD,GAEJ,EAEAE,GAIXhX,EAAkB,SAAS0R,EAAKF,EAAK8F,EAAIL,EAAIM,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC/D,IAAIC,EAEJ,OADAA,EAAkB9X,EAAqByR,GAChCE,EAAI0F,UAAU5F,EAAK8F,EAAIL,EAAIM,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAKC,IAkB7D/X,EAAgB,SAASgY,EAAK1b,GAC5B,IAAIpC,EAAK+d,EAAKvS,EAAMtC,EAAM8U,EAAMC,EAAKC,EAAKC,EAAMlM,EA4BhD,GA3BAzG,GAAO,EACPyG,GAAM,EACN8L,EAAMD,EAAI3e,SACVgf,EAAOJ,EAAIK,gBACXpe,EAAO+d,EAAIte,iBAAmB,mBAAqB,cACnDye,EAAOH,EAAIte,iBAAmB,sBAAwB,cACtDwe,EAAOF,EAAIte,iBAAmB,GAAK,KACnCyJ,EAAO,SAASnM,GACd,GAAe,qBAAXA,EAAEtE,MAAkD,aAAnBslB,EAAI7D,WAIzC,OADY,SAAXnd,EAAEtE,KAAkBqlB,EAAMC,GAAKG,GAAKD,EAAMlhB,EAAEtE,KAAMyQ,GAAM,IACpDsC,IAASA,GAAO,GACZpJ,EAAG/E,KAAKygB,EAAK/gB,EAAEtE,MAAQsE,QADhC,GAIFihB,EAAO,WAEL,IACEG,EAAKE,SAAS,QACd,MAAO1L,GAGP,OAFIA,OACJtD,WAAW2O,EAAM,IAGnB,OAAO9U,EAAK,SAES,aAAnB6U,EAAI7D,WAA2B,CACjC,GAAI6D,EAAIO,mBAAqBH,EAAKE,SAAU,CAC1C,IACEpM,GAAO6L,EAAIS,aACX,MAAO5L,IACLV,GACF+L,IAKJ,OAFAD,EAAI/d,GAAKie,EAAM,mBAAoB/U,GAAM,GACzC6U,EAAI/d,GAAKie,EAAM,mBAAoB/U,GAAM,GAClC4U,EAAI9d,GAAKie,EAAM,OAAQ/U,GAAM,KAIxCvD,EAAS6Y,sBAAwB,WAC/B,GAAI7Y,EAASwV,aACX,OAAOxV,EAASyV,YAIpBtV,EAAclJ,OAAQ+I,EAAS6Y,yBAE9BnhB,KAAKjE,Q,6iBC5sDD,MAAMqlB,EAAQ,SAACC,GACpB,QAAkB,iBAAPA,IAAmBA,EAAGC,WAAW,mBAOjCC,EAAW,SAACC,GACvB,MAAOpmB,EAAMimB,IAAM,GAAGG,GAAMje,QAAQ,oBAAqB,IAAIK,MAAM,KACnE,MAAO,CAAExI,OAAMimB,OAWJI,EAAqB,SAACD,EAAM,IACvC,MAAME,EAAQN,EAAMI,GAAOD,EAASC,GAAKH,GAAKG,EACxCH,EAAKvd,SAAS4d,EAAO,IAC3B,OAAOC,OAAOC,UAAUP,GAAMA,EAAK,MAWxBQ,EAAuB,SAACL,EAAM,IACzC,IAAKJ,EAAMI,GAAM,OAAO,KAExB,MAAM,KAAEpmB,GAASmmB,EAASC,GAC1B,OAAOpmB,GAAQ,MAGJ0mB,EAAwB,CACnCxE,OAAQ,SACRxa,OAAQ,SACRS,QAAS,WAYEwe,EAAqB,SAAC3mB,EAAMimB,GACvC,GAAoB,iBAATjmB,EACT,MAAM,IAAI4mB,UAAU,qCAAqC5mB,GAG3D,IAAK,CAAC,SAAU,UAAU6mB,gBAAgBZ,GACxC,MAAM,IAAIW,UAAU,6CAA6CX,GAGnE,OAAID,EAAMC,GACDA,EAGF,gBAAgBjmB,KAAQimB,KAapBa,EAAsB,SAAC9mB,EAAM+mB,GAAG,OAAKA,EAAIC,KAAI,SAACf,GAAE,OAAKU,EAAmB3mB,EAAMimB,OA0B9EgB,EAA+B,SAACC,GAC3C,IAAKC,IAAQD,GACX,MAAM,IAAIN,UAAU,sCAAsCM,GAG5D,OAAOA,EAAMF,KAAI,SAACjQ,GAAI,OAAMA,EAAKkP,GAAK,IAAKlP,EAAMkP,GAAII,EAAmBtP,EAAKkP,KAAQlP,MAW1EqQ,EAAoB,SAACC,EAAWC,EAAa,SAAY,IAAAC,EACpE,OAA8B,QAA9BA,EAAOF,aAAS,EAATA,EAAYC,UAAW,IAAAC,IAAI,IAGvBC,EAAiC,SAACC,EAAUC,EAAW,KAClE,MAAMC,EAAiB,SAACC,GACjBC,IAAWC,SAGdF,EAAMG,cAFNH,EAAMI,aAAaN,IAMvBC,EAAeF,GACfI,IAAWI,OAAON,EAAeliB,KAAK,KAAMgiB,KAGjCS,EAAmB,SAACC,EAAoBC,EAAe,IAClE,MAAO,CACLC,aAAc,CACZpY,OAAQ,OAEVyQ,QAAS,CACP,uCAAwCyH,EACxC,iCAAkCC,EAClC,mBAAoB,oBAKbE,EAAwC,UAAC,YACpDC,EAAW,UACXC,EACAC,YAAY,aAAEC,EAAY,WAAEC,KAAeF,KAE3C,OAAIF,EACK,IACFE,EACH,CAACxkB,KAA2BskB,GAI5BC,EACK,IACFC,EACH,CAACvkB,KAAyBskB,GAIvBC,I,kCCvLT,IAAIG,EAAI,EAAQ,QACZpF,EAAS,EAAQ,QAAiCA,OAClDqF,EAAyB,EAAQ,QACjCC,EAAsB,EAAQ,QAC9BC,EAAW,EAAQ,QAIvBH,EAAE,CAAE3hB,OAAQ,SAAU+hB,OAAO,EAAMC,QAAQ,GAAQ,CACjDC,GAAI,SAAYthB,GACd,IAAIuhB,EAAIJ,EAASF,EAAuBloB,OACpCyoB,EAAMD,EAAE9hB,OACRgiB,EAAgBP,EAAoBlhB,GACpC0hB,EAAID,GAAiB,EAAIA,EAAgBD,EAAMC,EACnD,OAAQC,EAAI,GAAKA,GAAKF,OAAO5nB,EAAYgiB,EAAO2F,EAAGG,O,yCChBvD,I,oFCAmS,ECWpR,CACf5pB,WAAA,CAAAC,aAAA4pB,WAAAC,mBAAAC,8BACA3pB,MAAA,CACA4pB,YAAA,CACA1pB,KAAAC,OACAC,UAAA,EACAC,QAAAwpB,cAAA,sCAEAC,KAAA,CACA5pB,KAAAC,OACAC,UAAA,EACAC,QAAA,IAEA0pB,QAAA,CACA7pB,KAAAC,OACAC,UAAA,EACAC,QAAA,IAEA2pB,QAAA,CACA9pB,KAAAC,OACAC,UAAA,EACAC,aAAAqB,GAEAuoB,SAAA,CACA/pB,KAAAC,OACAC,UAAA,EACAC,aAAAqB,GAEAwoB,cAAA,CACAhqB,KAAAC,OACAC,UAAA,GAEA+pB,eAAA,CACAjqB,KAAAC,OACAC,UAAA,EACAC,QAAA,WAGA+pB,SAAA,CACAC,sBACA,OACAC,MAAA,KAAAP,QACA,wCAGAnN,OACA,OAAA2N,KAAA,KAAAX,cAEAY,kBACA,YAAAL,iBAAAM,KAEAC,qBACA,YAAAP,iBAAAQ,KAEAC,6BACA,YAAAT,iBAAAU,KAEAC,sBACA,YAAAX,iBAAAY,MAGAC,QAAA,CACAC,YACAC,IAAAtf,MAAA,aAAAuf,OAAA,KAAAjB,iBAEAkB,iCACA,KAAAH,YACA,KAAArf,MAAA,mB,YCvEIyf,EAAY,YACd,GHRW,WAAkB,IAAIC,EAAIzqB,KAAKG,EAAGsqB,EAAIvqB,MAAMC,GAAG,OAAQsqB,EAAId,gBAAiBxpB,EAAG,YAAYsqB,EAAIC,GAAG,CAAChqB,MAAM,CAAC,QAAU+pB,EAAItB,QAAQ,SAAWsB,EAAIrB,SAAS,KAAOqB,EAAIxB,MAAMhc,GAAG,CAAC,MAAQwd,EAAIL,YAAY,YAAYK,EAAIjB,qBAAoB,GAAO,CAACiB,EAAIE,GAAG,OAAOF,EAAIG,GAAGH,EAAI1B,aAAa,QAAS0B,EAAIZ,mBAAoB1pB,EAAG,UAAUsqB,EAAIC,GAAG,CAACzd,GAAG,CAAC,MAAQwd,EAAIL,YAAY,UAAUK,EAAIjB,qBAAoB,GAAO,CAACiB,EAAIE,GAAG,OAAOF,EAAIG,GAAGH,EAAI1B,aAAa,QAAQ5oB,EAAG,WAAW,CAACM,YAAY,+CAA+CC,MAAM,CAAC,YAAY+pB,EAAIxB,SAAS,GAAIwB,EAAIV,2BAA4B5pB,EAAG,mBAAmBsqB,EAAIC,GAAG,CAACzd,GAAG,CAAC,MAAQwd,EAAIL,YAAY,mBAAmBK,EAAIjB,qBAAoB,GAAO,CAACiB,EAAIE,GAAG,OAAOF,EAAIG,GAAGH,EAAI1B,aAAa,QAAQ5oB,EAAG,WAAW,CAACM,YAAY,+CAA+CC,MAAM,CAAC,YAAY+pB,EAAIxB,SAAS,GAAIwB,EAAIR,oBAAqB9pB,EAAG,8BAA8BsqB,EAAIC,GAAG,CAAChqB,MAAM,CAAC,KAAO+pB,EAAI1O,MAAM9O,GAAG,CAAC,OAASwd,EAAIF,iCAAiC,8BAA8BE,EAAIjB,qBAAoB,IAAQrpB,EAAG,UAAUsqB,EAAIC,GAAG,CAAChqB,MAAM,CAAC,eAAe,QAAQuM,GAAG,CAAC,MAAQwd,EAAIL,YAAY,UAAUK,EAAIjB,qBAAoB,GAAO,CAACiB,EAAIE,GAAG,OAAOF,EAAIG,GAAGH,EAAI1B,aAAa,UAExrC,IGSpB,EACA,KACA,KACA,MAIa,UAAAyB,E,8BClBf,IAAIK,EAAa,EAAQ,QACrBC,EAAe,EAAQ,QACvBC,EAAgB,EAAQ,QAiC5BtnB,EAAOC,QATP,SAAiB/D,GACf,IAAKmrB,EAAanrB,GAChB,OAAO,EAET,IAAIqrB,EAAMH,EAAWlrB,GACrB,MAzBa,kBAyBNqrB,GA1BO,yBA0BYA,GACC,iBAAjBrrB,EAAMwW,SAA4C,iBAAdxW,EAAMb,OAAqBisB,EAAcprB,K,kCChCzF,sEAmGA,MAAMd,EA7FO,CACXC,KAAM,WACNC,WAAY,CACVC,SAAA,KAEFG,MAAO,CACLwhB,KAAM,CACJthB,KAAM4rB,QACN1rB,UAAU,GAEZ2rB,aAAc,CACZ7rB,KAAMC,OACNC,UAAU,EACVC,QAAS,IAEX2rB,aAAc,CACZ9rB,KAAM4rB,QACN1rB,UAAU,EACVC,SAAS,GAEX4rB,OAAQ,CACN/rB,KAAMumB,OACNrmB,UAAU,EACVC,QAAS,KAEX2pB,QAAS,CACP9pB,KAAMC,OACNC,UAAU,EACVC,QAAS,IAAeA,QACxBE,UAAWC,GAAS2E,OAAO+mB,KAAK,KAAgBnF,SAASvmB,KAG7D4pB,SAAU,CACR,kBACE,OAAQ,IAAQvpB,KAAKkrB,cAAoC,EAApBlrB,KAAKkrB,cAE5C,eACE,MAAMI,EAAS,CACbzS,IAAK7Y,KAAKurB,gBACVH,OAAQprB,KAAKorB,QAKf,OAHIprB,KAAKurB,kBACPD,EAAOE,UAAY,gBAAgBxrB,KAAKurB,oBAEnCD,GAET,qBACE,MAAO,CACLF,OAAQprB,KAAKmrB,aAAe,IAAY,OAG5C,qBAEE,OAAOF,QAAQjrB,KAAKyrB,OAAOC,SAE7B,eAEE,MAAO,aAAa1rB,KAAKmpB,UAG7BwC,MAAO,CACLhL,KAAM,CACJiL,WAAW,EACX,QAAQjL,GACFA,EACF5a,SAASM,iBAAiB,UAAWrG,KAAK6rB,cAE1C9lB,SAAS6H,oBAAoB,UAAW5N,KAAK6rB,iBAKrD,gBACE9lB,SAAS6H,oBAAoB,UAAW5N,KAAK6rB,eAE/C1B,QAAS,CACP,aAKEnqB,KAAK+K,MAAM,WAEb,aAAapH,GAEP3D,KAAK2gB,MADG,KACKhd,EAAEmoB,SACjB9rB,KAAK+K,MAAM,YAcjB,MAeMlL,EAAoB,IACxB,CAAEC,OApBe,WAAa,IAAI2qB,EAAIzqB,KAASD,EAAG0qB,EAAIxqB,eAAmBE,EAAGsqB,EAAIvqB,MAAMC,IAAIJ,EAAG,OAAOI,EAAG,aAAa,CAACO,MAAM,CAAC,KAAO,aAAauM,GAAG,CAAC,cAAcwd,EAAIsB,aAAa,CAAEtB,EAAQ,KAAEtqB,EAAG,QAAQ,CAACM,YAAY,YAAYgpB,MAAMgB,EAAIuB,aAAapV,MAAO6T,EAAgB,cAAG,CAACtqB,EAAG,MAAM,CAACM,YAAY,mBAAmBgpB,MAAM,CAAE,0BAA2BgB,EAAIU,cAAevU,MAAO6T,EAAsB,oBAAG,CAACtqB,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACgqB,EAAIwB,GAAG,SAASxB,EAAIE,GAAG,KAAKxqB,EAAG,YAAY,CAACM,YAAY,yBAAyBC,MAAM,CAAC,SAAW,WAAW,KAAO,QAAQ,KAAO,QAAQ,aAAa,gBAAgBuM,GAAG,CAAC,MAAQ,SAASif,GAAQ,OAAOzB,EAAI1f,MAAM,cAAc,GAAG0f,EAAIE,GAAG,KAAKF,EAAIwB,GAAG,WAAW,GAAGxB,EAAIE,GAAG,KAAKxqB,EAAG,MAAM,CAACM,YAAY,iBAAiBgpB,MAAM,CAAE,wBAAyBgB,EAAI0B,qBAAsB,CAAC1B,EAAIwB,GAAG,YAAY,GAAGxB,EAAIE,GAAG,KAAMF,EAAsB,mBAAEtqB,EAAG,MAAM,CAACM,YAAY,2CAA2CgpB,MAAM,CAAE,iCAAkCgB,EAAI0B,oBAAqBvV,MAAM,CAAGwU,OAAQX,EAAIW,SAAW,CAACX,EAAIwB,GAAG,WAAW,GAAGxB,EAAI2B,OAAO3B,EAAI2B,QAoBjiCxrB,gBAnBA,SAGEC,EAkB5BhC,OAhBuBgC,GAIc,OAFLA,GAkBhC,OACAA,OACAA,OACAA,GAGW,O,sBCtId,SAAW2C,GACR,aAEA,IAAI6oB,GAAa,EAEbC,EAAU,SAAUpF,GAoJpB,OA3HAA,EAAWqF,MAAQ,SAAUxF,EAAUyF,EAAgB5O,GACnDsJ,EAAWuF,QAEL7O,IACFA,EAAW4O,EACXA,EAAiB,MAIrB,IAAIE,EADJL,GAAa,EAab,OAVAnF,EAAWyF,QAAQD,GAAU,CACzBE,QAAU7F,EACVI,OAAUqF,EACV5O,SAAUA,GAEdsJ,EAAW2F,KAAKH,GAAQ,GAEnBxF,EAAW4F,eACZ5F,EAAW6F,UAERL,GAWXxF,EAAW8F,KAAO,SAAS1H,GACvB,QAAM4B,EAAWyF,QAAQrH,KAGzB4B,EAAW+F,MAAM3H,UACV4B,EAAWyF,QAAQrH,IACnB,IAIX4B,EAAWyF,QAAU,GAGrBzF,EAAWuF,MAAQ,WACVvF,EAAWgG,SAGhBhG,EAAWgG,QAAa,EACxBhG,EAAWiG,WAAajG,EAAWC,SAEnCD,EAAWI,QAAO,WACdJ,EAAWkG,WACXlG,EAAWiG,WAAajG,EAAWC,cAU3CD,EAAW2F,KAAO,SAAUvH,EAAI+H,GAC5B,IAAItG,EACAuG,EAAQpG,EAAWyF,QAAQrH,GAE/B,GAAK4B,EAAWC,SAAW,CACvB,GAAK,OAASmG,EAAMnG,OAChB,OAEJJ,EAAWuG,EAAMnG,YAEjBJ,EAAWuG,EAAMV,QAGrB,IAAIW,EAAS,WACTD,EAAME,KAAO,IAAIC,KACjBH,EAAM1P,SAAS3Z,KAAKT,IAGxB,GAAK6pB,EAAS,CACV,IACIG,EADO,IAAIC,KACEH,EAAME,KAElBzG,EAAWyG,EACZF,EAAMI,MAAQzX,YAAW,WACrBqX,EAAMhI,GAAKqI,YAAYJ,EAAQxG,GAC/BwG,MACDxG,EAAWyG,IAEdF,EAAMhI,GAAKqI,YAAYJ,EAAQxG,GAC/BwG,UAIND,EAAMhI,GAAKqI,YAAYJ,EAAQxG,IAKrCG,EAAW+F,MAAQ,SAAU3H,GACzB,IAAIgI,EAAQpG,EAAWyF,QAAQrH,GAC/BsI,cAAcN,EAAMhI,IACpBuI,aAAaP,EAAMI,cACZJ,EAAMhI,UACNgI,EAAMI,OAIjBxG,EAAWkG,SAAW,SAAUlgB,GAC5B,IAAI4gB,EAAY5G,EAAWC,SACvB4G,EAAY7G,EAAWiG,WAE3B,GAAMW,IAAaC,IAAgBD,GAAYC,EAC3C,IAAM,IAAIhqB,KAAKmjB,EAAWyF,QACtBzF,EAAW+F,MAAMlpB,GACjBmjB,EAAW2F,KAAK9oB,GAAI+pB,IAKzB5G,GAG2BzjB,EAAOC,QACzCD,EAAOC,QAAU4oB,EAAQ,EAAQ,SAEjCA,EAAQ9oB,EAAO0jB,YA/JtB,CAkKE1jB,S,2MC3JY,MAAMwqB,EACnBnkB,YAAYqE,EAAU,IACpBlO,KAAKiuB,SAAW/f,EAAQ+f,SACxBjuB,KAAKkuB,SAAWhgB,EAAQggB,SACxBluB,KAAKmuB,UAAYjgB,EAAQigB,UACzBnuB,KAAKouB,YAAclgB,EAAQkgB,YAC3BpuB,KAAKquB,0BAA+BruB,KAAKiuB,SAAR,2BACjCjuB,KAAKsuB,cAAgBtuB,KAAKuuB,OAAOzpB,KAAK9E,MACtCA,KAAKwuB,SAAWtgB,EAAQsgB,UAAa,aACrCxuB,KAAKyuB,UAAYvgB,EAAQugB,WAAc,aACvCzuB,KAAK0uB,QACHxgB,EAAQwgB,SACR,SAAmB/qB,GACjB,IAAIgrB,EAAgB,GAMpB,OAJIhrB,EAAEwc,SAAShX,MAAmC,iBAApBxF,EAAEwc,SAAShX,OACvCwlB,EAAgBhrB,EAAEwc,SAAShX,KAAKylB,OAAOxmB,KAAK,MAGvCymB,sBAAY,CACjB1Y,QAASwY,GAAiBG,aAAG,oBAInC9uB,KAAK8P,OAGPA,OACE9P,KAAK8Z,UAEkB/T,SAASU,iBAC3BzG,KAAKquB,0BAAR,oCAGa1nB,SAAQ,SAACooB,GAEtBA,EAAcpvB,MAAQovB,EAAcC,QAAQrvB,SAG9CK,KAAKwG,SAGPyoB,kBAAkBtrB,GAChB,OAAOA,GAAKA,EAAEurB,cAAgBjH,IAAEtkB,EAAEurB,eAAiBjH,IAAEjoB,KAAKquB,2BAO5Dc,gCAAgCxrB,GAC9B3D,KAAKivB,kBAAkBtrB,GACpByrB,KAAK,mBACLC,IAAI,oBACJD,KAAK,4BACLE,KAAK,YAAY,GAGtBC,gCAAgC5rB,GAC9B3D,KAAKivB,kBAAkBtrB,GACpByrB,KAAK,+CACLE,KAAK,YAAY,GAGtBE,qBAAqB7rB,GACnB3D,KAAKivB,kBAAkBtrB,GAAGsF,SAAS,WACnCjJ,KAAKuvB,kCAGPE,oBAAoB9rB,GAClB3D,KAAKivB,kBAAkBtrB,GAAGsF,SAAS,UACnCjJ,KAAKmvB,gCAAgCxrB,GACrC3D,KAAKuvB,gCAAgC5rB,GAGvC6C,SACExG,KAAKyvB,sBACLxH,IAAEliB,UAAUkH,GAAG,mBAAoBjN,KAAKquB,0BAA2BruB,KAAKsuB,eAG1ExU,UACE9Z,KAAKwvB,uBACLvH,IAAEliB,UAAU2H,IAAI,mBAAoB1N,KAAKquB,2BAG3CE,OAAO5qB,GAAG,IAAAiH,EAAA,KACR,MAAM8kB,EAAUzH,IAAEtkB,EAAE2C,SACd,MAAEW,EAAK,QAAEC,EAAO,WAAEG,EAAU,WAAEC,GAAe3D,EAAEmC,OAC/C6pB,EAAY,GAiBlB,OAdAA,EADiB3vB,KAAKkuB,WAAa0B,gBAAgBC,aAAa7vB,KAAKkuB,UAC/C,CACpB,CAACluB,KAAKmuB,WAAYuB,EAAQhY,MAC1BoY,aAAc9vB,KAAKouB,YACnB2B,YAAa,CACX9oB,QACAC,UACA8oB,YAAa3oB,EACb4oB,YAAa3oB,IAIjBtH,KAAKwuB,WACLxuB,KAAKwvB,qBAAqB7rB,GAEnBusB,IACJC,MAAMT,EAAQvmB,KAAK,cAAgB8e,IAAE,2BAA2BmI,KAAK,UAAWT,GAChFU,MAAK,UAAC,KAAElnB,IAIP,OAHAyB,EAAKwjB,YAAcjlB,EAAK2mB,aACxBllB,EAAK6kB,oBAAoB9rB,GAElBiH,EAAK6jB,UAAUtlB,MAEvBmnB,OAAM,UAAC,SAAEnQ,IAGR,OAFAvV,EAAK6kB,oBAAoB9rB,GAElBiH,EAAK8jB,QAAQvO,EAAShX,Y,qBC3HrC,IAAIonB,EAAW,EAAQ,QACnBC,EAAc,EAAQ,QAoB1B/sB,EAAOC,QAVP,SAAiB+H,EAAYE,GAC3B,IAAI1E,GAAS,EACTG,EAASopB,EAAY/kB,GAAcpG,MAAMoG,EAAW/E,QAAU,GAKlE,OAHA6pB,EAAS9kB,GAAY,SAAS9L,EAAOiM,EAAKH,GACxCrE,IAASH,GAAS0E,EAAShM,EAAOiM,EAAKH,MAElCrE,I,qBClBT,IAAIqpB,EAAc,EAAQ,QACtBC,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QACnBC,EAAiB,EAAQ,QA+BzBC,EAASF,GAAS,SAASllB,EAAYC,GACzC,GAAkB,MAAdD,EACF,MAAO,GAET,IAAI/E,EAASgF,EAAUhF,OAMvB,OALIA,EAAS,GAAKkqB,EAAenlB,EAAYC,EAAU,GAAIA,EAAU,IACnEA,EAAY,GACHhF,EAAS,GAAKkqB,EAAellB,EAAU,GAAIA,EAAU,GAAIA,EAAU,MAC5EA,EAAY,CAACA,EAAU,KAElBglB,EAAYjlB,EAAYglB,EAAY/kB,EAAW,GAAI,OAG5DjI,EAAOC,QAAUmtB,G,oBCzCjB,SAAUC,GACN,IAAIC,EAAwBD,EAAU/rB,UAAUisB,aAEhDF,EAAU/rB,UAAUisB,aAAe,SAASrtB,EAAGsK,EAASgjB,GAGpD,QAFWjxB,KAEFkxB,QAIFH,EAAsB9sB,KANlBjE,KAM6B2D,EAAGsK,EAASgjB,IAGxDH,EAAU/rB,UAAUosB,MAAQ,WACbnxB,KACNkxB,QAAS,GAGlBJ,EAAU/rB,UAAUqsB,QAAU,WACfpxB,KACNkxB,QAAS,GAGlBJ,EAAUhhB,OAvBd,CAwBIghB,Y,qBC9BJ,IAAI1I,EAAW,EAAQ,QAMnBiJ,EAAe,sBACfC,EAAkBzoB,OAAOwoB,EAAa/G,QAwB1C7mB,EAAOC,QAPP,SAAsBof,GAEpB,OADAA,EAASsF,EAAStF,KACAwO,EAAgB7e,KAAKqQ,GACnCA,EAAOtb,QAAQ6pB,EAAc,QAC7BvO,I,kCC5BN,g+CAGO,MAAMyO,EAA0B,iBAC1BC,EAAe,IACfC,EAAyB,kBACzBC,EAA2B,mBAC3BC,EAA2B,gBAC3BC,EAAiC,+BACjCC,EAA8C,8BAE9CC,EAAgB,CAC3BC,IAAK,MACLC,kBAAmB,qBAGRC,EAAmB,MACnBC,EAAgC,mBAChCtI,EAAyB,SACzBuI,EAAmC,iBACnCrI,EAA6B,aAC7BE,EAAsC,sBACtCE,EAAsC,gBACtCkI,EAAwC,uBACxCC,EAAiD,+BACjDC,EAA8C,uBAC9CC,EAA8BvJ,cAAI,qCAClCwJ,EAAgCxJ,cAC3C,wDAEWyJ,EAAgCzJ,cAC3C,yEAEW0J,EAAsC1J,cACjD,8FAGW2J,EAAwC3J,cACnD,gGAEW4J,EAA0C5J,cACrD,qFAEW6J,EAAuB7J,cAAI,sDAC3B8J,EAAsB9J,cACjC,4EAGW+J,EAA4B/J,cAAI,qCAChCgK,EAA0ChK,cACrD,8FAEWiK,EAA4CjK,cACvD,gGAGWkK,EAAkClK,cAC7C,uMAEWmK,EAAkCC,YAC7C,+CACA,CACEC,OAAQ,8BAGCC,EAAoCtK,cAC/C,yMAEWuK,EAAoCH,YAC/C,+CACA,CACEC,OAAQ,gCAICG,EAAqBxK,cAAI,+CACzByK,EAAoBzK,cAAI,mDAExB0K,EAAe1K,cAAI,0CACnB2K,EAAqB3K,cAAI,wDACzB4K,EAA2B5K,cAAI,uDAC/B6K,EAA4B7K,cACvC,oFAEW8K,EAAmC9K,cAAI,2CACvC+K,EAAiB/K,cAC5B,mMAEWgL,EAAmChL,cAC9C,8EAEWiL,EAAqBjL,cAAI,6BACzBkL,EAA8BlL,cAAI,qCAClCmL,EAAqBnL,cAAI,6BACzBoL,EAAqBpL,cAAI,gDACzBqL,EAAyBrL,cACpC,8DAEWsL,EAAmBtL,cAAI,2CACvBuL,EAAkBvL,cAAI,gCACtBwL,GAA2BxL,cAAI,mDAE/ByL,GAAsB,CACjCC,MAAO,CACLl1B,QAAS,CACPJ,MAAOmzB,GAEToC,UAAW,CACTv1B,MAAOozB,EACPoC,MAAOnC,IAGXoC,QAAS,CACPr1B,QAAS,CACPs1B,UAAWpC,IAGfqC,UAAW,CACTv1B,QAAS,CACPs1B,UAAWnC,GAEbgC,UAAW,CACTG,UAAWlC,IAGfoC,YAAanC,EACboC,YAAanC,EACboC,uBAAwBtB,EACxBuB,oBAAqBd,EACrBe,gBAAiBd,EACjBe,eAAgBd,EAChBe,sBAAuBd,IAGZe,GAAqB,CAChCn2B,MAAO2zB,EACP8B,QAAS,CACPC,UAAW9B,EACXwC,iBAAkBtC,EAClBuC,iBAAkBtC,GAEpB4B,UAAW,CACTD,UAAW7B,EACXuC,iBAAkBlC,EAClBmC,iBAAkBlC,GAEpByB,YAAaxB,EACbyB,YAAaxB,EACbyB,uBAAwBtB,GAGb8B,GAAsB,0BACtBC,GAA6B,2BAE7BC,GAAsB5M,cACjC,kFAEW6M,GAAqB7M,cAChC,gFAGW8M,GAAwB,UACxBC,GAAyB,QAMzBC,GAJwBhN,cACnC,oMAG4EiN,OAC5EjN,cACE,gMAISkN,GAAyBlN,cACpC,iLAEWmN,GAA6BnN,cACxC,mHAEWoN,GAA4BpN,cAAI,0CAChCqN,GAAiCrN,cAAI,6CACrCsN,GAAqC,6B,sBCtLjD,SAAWC,GACR,aAEA,IAAIC,GAAU,EAMVC,EAAO,CAaPC,UAAW,SAAU9Y,GACjB,IAAI+Y,EAAUF,EAAK3J,cACnB,IAAM6J,IAAYF,EAAKtP,SAEnB,OADAvJ,IACO+Y,EAGX,IAAI7b,EAAW2b,EAAKnP,QAAO,SAAU3jB,EAAGizB,GAC9BH,EAAKtP,WACPsP,EAAKI,OAAO/b,GACZ8C,QAGR,OAAO9C,GAiBXwM,OAAQ,SAAU1J,GACd,IAAM6Y,EAAK3J,cACP,OAAO,EAGX,IAAIJ,EADJ8J,GAAU,EAIV,OAFAC,EAAKtpB,WAAWuf,GAAU9O,EAC1B6Y,EAAK1J,UACEL,GASXmK,OAAQ,SAAUvR,UACPmR,EAAKtpB,WAAWmY,IAe3BwR,kBAAmB,SAAUlZ,GACzB,IAAI+Y,EAAYF,EAAK3J,cAGrB,IAAM6J,GAFU,aAEcF,EAAKG,QAE/B,OADAhZ,IACO+Y,EAGX,IAAI7b,EAAW2b,EAAKnP,QAAO,SAAU3jB,EAAGizB,GAPxB,aAQMA,IACdH,EAAKI,OAAO/b,GACZ8C,QAGR,OAAO9C,GAUXqM,OAAQ,WACJ,SAAUsP,EAAKM,KAAK5P,SAAUsP,EAAKM,KAAKC,eAe5CJ,MAAO,WACH,OAAOH,EAAKM,KAAKE,iBACVR,EAAKM,KAAKG,uBACV,WAWXpK,YAAa,WACT,SAAU2J,EAAKM,KAAKE,kBACVR,EAAKM,KAAKG,wBAIxBH,KAAMhxB,UAAY,GAGlBoH,WAAY,GAGZgqB,QAAS,SAASjqB,GACd,IAAI0pB,EAAQH,EAAKG,QAEjB,IAAM,IAAI7yB,KAAK0yB,EAAKtpB,WAChBspB,EAAKtpB,WAAWpJ,GAAGE,KAAKwyB,EAAKM,KAAM7pB,EAAO0pB,IAKlD7J,QAAS,WACL,IAAK0J,EAAKW,MAAV,CAIA,IAAIlqB,EAAQ,mBACPupB,EAAKM,KAAKG,wBACXhqB,EAAQ,SAAWA,GAGvB,IAAI4N,EAAW,WACX2b,EAAKU,QAAQ5xB,MAAMkxB,EAAMjpB,YAExBipB,EAAKM,KAAK1wB,iBACXowB,EAAKM,KAAK1wB,iBAAiB6G,EAAO4N,GAElC2b,EAAKM,KAAKM,YAAYnqB,EAAO4N,GAEjC2b,EAAKW,OAAQ,KAKiB3zB,EAAOC,QACzCD,EAAOC,QAAU+yB,EAEjBF,EAAOrP,WAAauP,EA3L3B,CA8LEz2B,O;;;;;;;;;;GChLHsE,OAAOC,eAAeb,EAAS,aAAc,CAAE/D,OAAO,IAItD,IAF0B23B,EAEtBC,GAFsBD,EAEA,EAAQ,UAF2B,iBAAPA,GAAoB,YAAaA,EAAMA,EAAY,QAAIA,EAI7G,SAASE,EAAQC,GAWf,OATED,EADoB,mBAAX9yB,QAAoD,iBAApBA,OAAOgzB,SACtC,SAAUD,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAX/yB,QAAyB+yB,EAAI5tB,cAAgBnF,QAAU+yB,IAAQ/yB,OAAOK,UAAY,gBAAkB0yB,IAI9GA,GAGjB,SAASE,EAAmBC,GAC1B,OAGF,SAA4BA,GAC1B,GAAIvyB,MAAMmG,QAAQosB,GAAM,CACtB,IAAK,IAAI7zB,EAAI,EAAG8zB,EAAO,IAAIxyB,MAAMuyB,EAAIlxB,QAAS3C,EAAI6zB,EAAIlxB,OAAQ3C,IAAK8zB,EAAK9zB,GAAK6zB,EAAI7zB,GAEjF,OAAO8zB,GAPFC,CAAmBF,IAW5B,SAA0BG,GACxB,GAAIrzB,OAAOgzB,YAAYpzB,OAAOyzB,IAAkD,uBAAzCzzB,OAAOS,UAAUqjB,SAASnkB,KAAK8zB,GAAgC,OAAO1yB,MAAM2yB,KAAKD,GAZtFE,CAAiBL,IAerD,WACE,MAAM,IAAI3R,UAAU,mDAhBuCiS,GAmB7D,IAAIC,EAA8B,oBAAX30B,OAyBvB,SAAS40B,EAAKX,EAAKpM,GACjB,OAAOA,EAAKgN,QAAO,SAAUC,EAAK1sB,GAKhC,OAJI6rB,EAAIzyB,eAAe4G,KACrB0sB,EAAI1sB,GAAO6rB,EAAI7rB,IAGV0sB,IACN,IAGL,IAAIC,EAAa,GACbC,EAAU,GACVC,EAAU,GAoHVC,EAAW,IAnHAnB,EAAIxpB,OAAO,CACxB5E,KAAM,WACJ,MAAO,CACLovB,WAAYA,EACZC,QAASA,EACTC,QAASA,EACTE,eAAgBR,IAGpBhO,QAAS,CACPxJ,KAAM,SAAciY,GAClB,GAAKT,EAAL,CACA,IAAIU,EAAKD,EAAUC,GACfb,EAAOY,EAAUZ,KACjBc,EAAaF,EAAUE,WACvBC,EAAmBH,EAAUI,MAC7BA,OAA6B,IAArBD,EAA8BE,IAAWF,EACrD,GAAKF,GAAOb,GAASc,EAArB,CACA,IAvDU/c,EAuDNmd,EAAe,CACjBL,GAAIA,EACJb,KAAMA,EACNc,YA1DQ/c,EA0DW+c,EAzDrBzzB,MAAMmG,QAAQuQ,IAA2B,WAAlByb,EAAQzb,GAC1BzX,OAAO60B,OAAOpd,GAGhBA,GAsDDid,MAAOA,IAIiB,IAFf10B,OAAO+mB,KAAKrrB,KAAKu4B,YAEnBnzB,QAAQyzB,IACftB,EAAIltB,IAAIrK,KAAKu4B,WAAYM,EAAI,IAG/B,IApDqBO,EAoDjBC,EAAer5B,KAAKs5B,oBAAoBJ,GAExCK,EAAgBv5B,KAAKu4B,WAAWM,GAAIvzB,MAAM,IAExB,IAAlB+zB,EACFE,EAAc3wB,KAAKswB,GAEnBK,EAAcF,GAAgBH,EAGhCl5B,KAAKu4B,WAAWM,IA9DKO,EA8D2B,SAAUj0B,EAAGq0B,GAC3D,OAAOr0B,EAAE6zB,MAAQQ,EAAER,OADYO,EA7DxBlT,KAAI,SAAUoT,EAAGC,GAC5B,MAAO,CAACA,EAAKD,MACZE,MAAK,SAAUx0B,EAAGq0B,GACnB,OAAOJ,EAAUj0B,EAAE,GAAIq0B,EAAE,KAAOr0B,EAAE,GAAKq0B,EAAE,MACxCnT,KAAI,SAAUliB,GACf,OAAOA,EAAE,UA4DTy1B,MAAO,SAAehB,GACpB,IAAIiB,EAAQrsB,UAAU9G,OAAS,QAAsB7F,IAAjB2M,UAAU,IAAmBA,UAAU,GACvEqrB,EAAKD,EAAUC,GACfb,EAAOY,EAAUZ,KACrB,GAAKa,IAAOb,IAAkB,IAAV6B,IAEf75B,KAAKu4B,WAAWM,GAIrB,GAAIgB,EACF75B,KAAKu4B,WAAWM,GAAM,OACjB,CACL,IAAI5xB,EAAQjH,KAAKs5B,oBAAoBV,GAErC,GAAI3xB,GAAS,EAAG,CAEd,IAAIsyB,EAAgBv5B,KAAKu4B,WAAWM,GAAIvzB,MAAM,GAC9Ci0B,EAAc1rB,OAAO5G,EAAO,GAC5BjH,KAAKu4B,WAAWM,GAAMU,KAI5BO,eAAgB,SAAwBxzB,EAAQyzB,EAAIF,GAC7C1B,IAEDn4B,KAAK24B,iBAAmBkB,GAAS75B,KAAKw4B,QAAQlyB,IAChDwW,QAAQkd,KAAK,wBAAwB/D,OAAO3vB,EAAQ,oBAGtDtG,KAAKi6B,KAAKj6B,KAAKw4B,QAASlyB,EAAQhC,OAAO60B,OAAO,CAACY,OAEjDG,iBAAkB,SAA0B5zB,GAC1CtG,KAAKm6B,QAAQn6B,KAAKw4B,QAASlyB,IAE7B8zB,eAAgB,SAAwB9P,EAAQyP,EAAIF,GAC7C1B,IAEDn4B,KAAK24B,iBAAmBkB,GAAS75B,KAAKy4B,QAAQnO,IAChDxN,QAAQkd,KAAK,wBAAwB/D,OAAO3L,EAAQ,oBAGtDtqB,KAAKi6B,KAAKj6B,KAAKy4B,QAASnO,EAAQhmB,OAAO60B,OAAO,CAACY,OAEjDM,iBAAkB,SAA0B/P,GAC1CtqB,KAAKm6B,QAAQn6B,KAAKy4B,QAASnO,IAE7BgQ,UAAW,SAAmBzB,GAC5B,SAAU74B,KAAKw4B,QAAQK,KAAO74B,KAAKw4B,QAAQK,GAAI,KAEjD0B,UAAW,SAAmB1B,GAC5B,SAAU74B,KAAKy4B,QAAQI,KAAO74B,KAAKy4B,QAAQI,GAAI,KAEjD2B,cAAe,SAAuB3B,GACpC,QAAS74B,KAAKu4B,WAAWM,MAAS74B,KAAKu4B,WAAWM,GAAInyB,QAGxD4yB,oBAAqB,SAA6BjrB,GAChD,IAAIwqB,EAAKxqB,EAAKwqB,GACVb,EAAO3pB,EAAK2pB,KAEhB,IAAK,IAAIj0B,KAAK/D,KAAKu4B,WAAWM,GAC5B,GAAI74B,KAAKu4B,WAAWM,GAAI90B,GAAGi0B,OAASA,EAClC,OAAQj0B,EAIZ,OAAQ,MAIC,CAAaw0B,GAExBkC,EAAM,EACNC,EAASnD,EAAIxpB,OAAO,CACtBjP,KAAM,SACNK,MAAO,CACL0H,SAAU,CACRxH,KAAM4rB,SAERnsB,KAAM,CACJO,KAAMC,OACNE,QAAS,WACP,OAAOF,OAAOm7B,OAGlBzB,MAAO,CACL35B,KAAMumB,OACNpmB,QAAS,GAEXm7B,KAAM,CACJt7B,KAAM4rB,SAER2P,UAAW,CACTv7B,KAAMiF,OACN9E,QAAS,WACP,MAAO,KAGXwrB,IAAK,CACH3rB,KAAMC,OACNE,QAAS,OAEXq5B,GAAI,CACFx5B,KAAMC,OACNE,QAAS,WACP,OAAOF,OAAOgc,KAAKE,MAAsB,IAAhBF,KAAKuf,cAIpCC,QAAS,WACP,IAAIlwB,EAAQ5K,KAEZA,KAAK+6B,WAAU,WACbrC,EAAS0B,eAAexvB,EAAM9L,KAAM8L,OAGxCowB,QAAS,WACFh7B,KAAK6G,UACR7G,KAAKi7B,cAGTC,QAAS,WACHl7B,KAAK6G,SACP7G,KAAKiK,QAELjK,KAAKi7B,cAGTE,cAAe,WACbzC,EAAS2B,iBAAiBr6B,KAAKlB,MAC/BkB,KAAKiK,SAEP0hB,MAAO,CACLkN,GAAI,SAAYuC,EAAUC,GACxBA,GAAYA,IAAaD,GAAYp7B,KAAKiK,MAAMoxB,GAChDr7B,KAAKi7B,eAGT9Q,QAAS,CACPlgB,MAAO,SAAe3D,GACpB,IAAIg1B,EAAS,CACXtD,KAAMh4B,KAAKlB,KACX+5B,GAAIvyB,GAAUtG,KAAK64B,IAErBH,EAASkB,MAAM0B,IAEjBC,eAAgB,WACd,OAAOv7B,KAAKw7B,aAAah8B,QAAU,CAACQ,KAAKw7B,aAAah8B,SAAWQ,KAAKyrB,OAAOjsB,SAE/Ei8B,qBAAsB,SAA8BC,GAClD,MAA2B,mBAAbA,EAA0BA,EAAS17B,KAAK46B,WAAac,GAErET,WAAY,WACV,IAAIU,EAAc37B,KAAKu7B,iBAEvB,GAAII,EAAa,CACf,IAAI/C,EAAY,CACdZ,KAAMh4B,KAAKlB,KACX+5B,GAAI74B,KAAK64B,GACTC,WAAYnB,EAAmBgE,GAC/B3C,MAAOh5B,KAAKg5B,OAEdN,EAAS/X,KAAKiY,QAEd54B,KAAKiK,UAIXnK,OAAQ,SAAgB87B,GACtB,IAAIF,EAAW17B,KAAKyrB,OAAOjsB,SAAWQ,KAAKw7B,aAAah8B,SAAW,GAC/Dq8B,EAAM77B,KAAKgrB,IAEf,OAAI0Q,GAAY17B,KAAK6G,SACZ60B,EAASh1B,QAAU,GAAK1G,KAAK26B,KAAO36B,KAAKy7B,qBAAqBC,GAAU,GAAKE,EAAEC,EAAK,CAAC77B,KAAKy7B,qBAAqBC,KAE/G17B,KAAK26B,KAAOiB,IAAMA,EAAEC,EAAK,CAC9BpS,MAAO,CACL,YAAY,GAEd7S,MAAO,CACLklB,QAAS,QAEXlwB,IAAK,4BAMTmwB,EAAexE,EAAIxpB,OAAO,CAC5BjP,KAAM,eACNK,MAAO,CACL68B,SAAU,CACR38B,KAAM4rB,QACNzrB,SAAS,GAEXV,KAAM,CACJO,KAAMC,OACNC,UAAU,GAEZo7B,KAAM,CACJt7B,KAAM4rB,QACNzrB,SAAS,GAEXo7B,UAAW,CACTv7B,KAAMiF,OACN9E,QAAS,WACP,MAAO,KAGXwrB,IAAK,CACH3rB,KAAMC,OACNE,QAAS,OAEXy8B,WAAY,CACV58B,KAAM,CAACC,OAAQgF,OAAQ43B,YAG3B/yB,KAAM,WACJ,MAAO,CACLovB,WAAYG,EAASH,WACrB4D,aAAa,IAGjBrB,QAAS,WACP,IAAIlwB,EAAQ5K,KAEZA,KAAK+6B,WAAU,WACbrC,EAASoB,eAAelvB,EAAM9L,KAAM8L,OAGxC+gB,MAAO,CACLyQ,cAAe,WACbp8B,KAAK+K,MAAM,SAAU/K,KAAK07B,WAAWh1B,OAAS,IAEhD5H,KAAM,SAAcu9B,EAAQC,GAK1B5D,EAASwB,iBAAiBoC,GAC1B5D,EAASoB,eAAeuC,EAAQr8B,QAGpCg7B,QAAS,WACP,IAAIuB,EAASv8B,KAETA,KAAKi8B,YACPj8B,KAAK+6B,WAAU,WAEbwB,EAAOJ,aAAc,MAI3BhB,cAAe,WACbzC,EAASwB,iBAAiBl6B,KAAKlB,OAEjCyqB,SAAU,CACR6S,cAAe,WACb,IAAI7D,EAAav4B,KAAKu4B,WAAWv4B,KAAKlB,OAAS,GAE/C,OAAIkB,KAAKg8B,SACAzD,EAGoB,IAAtBA,EAAW7xB,OAAe,GAAK,CAAC6xB,EAAWA,EAAW7xB,OAAS,KAExEoyB,WAAY,WACV,OAtVN,SAA2BP,GACzB,IAAIqC,EAAYptB,UAAU9G,OAAS,QAAsB7F,IAAjB2M,UAAU,GAAmBA,UAAU,GAAK,GACpF,OAAO+qB,EAAWF,QAAO,SAAUS,EAAYF,GAC7C,IAAI4D,EAAO5D,EAAUE,WAAW,GAC5B2D,EAAgC,mBAATD,EAAsBA,EAAK5B,GAAahC,EAAUE,WAC7E,OAAOA,EAAW7C,OAAOwG,KACxB,IAgVQC,CAAkB18B,KAAKo8B,cAAep8B,KAAK46B,aAGtDzQ,QAAS,CAEPuR,SAAU,WACR,OAAkC,IAA3B17B,KAAK84B,WAAWpyB,OAAe1G,KAAK84B,WAAa94B,KAAKw7B,aAAah8B,QAAUQ,KAAKw7B,aAAah8B,QAAQQ,KAAK46B,WAAa56B,KAAKyrB,OAAOjsB,SAAW,IAGzJm9B,UAAW,WACT,IAAIA,EAAY38B,KAAK26B,OAAS36B,KAAKi8B,WAMnC,OAJIU,GAAa38B,KAAK07B,WAAWh1B,OAAS,GACxCoW,QAAQkd,KAAK,uFAGR2C,IAGX78B,OAAQ,SAAgB87B,GACtB,IAAIe,EAAY38B,KAAK28B,YACjBjB,EAAW17B,KAAK07B,WAChBG,EAAM77B,KAAKi8B,YAAcj8B,KAAKgrB,IAClC,OAAO2R,EAAYjB,EAAS,GAAK17B,KAAK26B,OAASkB,EAAMD,IAAMA,EAAEC,EAAK,CAChE18B,MAAO,CAEL6rB,IAAKhrB,KAAKi8B,YAAcj8B,KAAKgrB,IAAMhrB,KAAKgrB,SAAMnqB,GAEhD4oB,MAAO,CACL,qBAAqB,IAEtBiS,MAIHkB,EAAQ,EACRC,EAAc,CAAC,WAAY,OAAQ,QAAS,OAAQ,YAAa,MAAO,MACxEC,EAAc,CAAC,WAAY,cAC3BC,EAAiBxF,EAAIxpB,OAAO,CAC9BjP,KAAM,iBACNk+B,cAAc,EACd79B,MAAO,CACLoiB,OAAQ,CACNliB,KAAM,CAAC4rB,QAAS3rB,SAElB29B,KAAM,CACJ59B,KAAM4rB,SAERiS,QAAS,CACP79B,KAAMC,OACNC,UAAU,GAGZsH,SAAU,CACRxH,KAAM4rB,SAGRnsB,KAAM,CACJO,KAAMC,OACNE,QAAS,WACP,MAAO,WAAaF,OAAOs9B,OAG/B5D,MAAO,CACL35B,KAAMumB,OACNpmB,QAAS,GAEXm7B,KAAM,CACJt7B,KAAM4rB,SAER2P,UAAW,CACTv7B,KAAMiF,OACN9E,QAAS,WACP,MAAO,KAGXwrB,IAAK,CACH3rB,KAAMC,OACNE,QAAS,OAGXq5B,GAAI,CACFx5B,KAAMC,OACNE,QAAS,WACP,OAAOF,OAAOgc,KAAKE,MAAsB,IAAhBF,KAAKuf,aAIlCmB,SAAU,CACR38B,KAAM4rB,QACNzrB,SAAS,GAEX29B,WAAY,CACV99B,KAAM4rB,SAERmS,gBAAiB,CACf/9B,KAAMiF,OACN9E,QAAS,WACP,MAAO,KAGX69B,UAAW,CACTh+B,KAAMC,OACNE,QAAS,OAEXy8B,WAAY,CACV58B,KAAM,CAACC,OAAQgF,OAAQ43B,YAG3BpB,QAAS,WACP,GAAwB,oBAAb/0B,SAAX,CACA,IAAIG,EAAKH,SAASK,cAAcpG,KAAKk9B,SAErC,GAAKh3B,EAAL,CAKA,IAAI/G,EAAQa,KAAKs9B,OAEjB,GAAI5E,EAASF,QAAQr5B,EAAML,MACrBK,EAAM89B,KACRngB,QAAQkd,KAAK,wBAAwB/D,OAAO92B,EAAML,KAAM,uEAExDkB,KAAKu9B,aAAe7E,EAASF,QAAQr5B,EAAML,UAJ/C,CAUA,IAAIyiB,EAASpiB,EAAMoiB,OAEnB,GAAIA,EAAQ,CACV,IAAIliB,EAAyB,iBAAXkiB,EAAsBA,EAAS,MAC7Cic,EAAUz3B,SAAS2M,cAAcrT,GACrC6G,EAAGyM,YAAY6qB,GACft3B,EAAKs3B,EAKP,IAAIC,EAASrF,EAAKp4B,KAAKs9B,OAAQR,GAE/BW,EAAO9C,KAAO36B,KAAKm9B,WACnBM,EAAOzS,IAAMhrB,KAAKq9B,UAClBI,EAAO7C,UAAY56B,KAAKo9B,gBACxBK,EAAO3+B,KAAOkB,KAAK64B,GACnB74B,KAAKu9B,aAAe,IAAIxB,EAAa,CACnC71B,GAAIA,EACJ8J,OAAQhQ,KAAK09B,SAAW19B,KACxB29B,UAAWF,UApCX3gB,QAAQ5G,MAAM,8BAA8B+f,OAAOj2B,KAAKk9B,QAAS,8BAuCrE/B,cAAe,WACb,IAAI70B,EAAStG,KAAKu9B,aAElB,GAAIv9B,KAAKuhB,OAAQ,CACf,IAAIrb,EAAKI,EAAOs3B,IAChB13B,EAAGR,WAAW+J,YAAYvJ,GAG5BI,EAAOu3B,YAET/9B,OAAQ,SAAgB87B,GACtB,IAAK57B,KAAKu9B,aAER,OADAzgB,QAAQkd,KAAK,sCACN4B,IAIT,IAAK57B,KAAKw7B,aAAasC,OAAQ,CAC7B,IAAI3+B,EAAQi5B,EAAKp4B,KAAKs9B,OAAQT,GAC9B,OAAOjB,EAAElB,EAAQ,CACfv7B,MAAOA,EACPuB,MAAOV,KAAK+9B,OACZ9wB,GAAIjN,KAAKW,WACTq9B,YAAah+B,KAAKw7B,cACjBx7B,KAAKyrB,OAAOjsB,SAIjB,IAAIy+B,EAAUj+B,KAAKw7B,aAAasC,OAAO,CACrCjF,GAAI74B,KAAK64B,KAQX,OAJIxzB,MAAMmG,QAAQyyB,KAChBA,EAAUA,EAAQ,IAGfA,GAAgBrC,OAYzB,IAAI30B,EAAQ,CACVqlB,QARF,SAAiB4R,GACf,IAAIhwB,EAAUV,UAAU9G,OAAS,QAAsB7F,IAAjB2M,UAAU,GAAmBA,UAAU,GAAK,GAClF0wB,EAAO1T,UAAUtc,EAAQiwB,YAAc,SAAUzD,GACjDwD,EAAO1T,UAAUtc,EAAQkwB,kBAAoB,eAAgBrC,GAC7DmC,EAAO1T,UAAUtc,EAAQmwB,oBAAsB,iBAAkBtB,KAOnEr5B,EAAQlE,QAAUyH,EAClBvD,EAAQg3B,OAASA,EACjBh3B,EAAQq4B,aAAeA,EACvBr4B,EAAQq5B,eAAiBA,EACzBr5B,EAAQ46B,SAAW5F,G,kCCrmBnB,IAAI6F,EAAc,EAAQ,QACtBpW,EAAsB,EAAQ,QAC9BC,EAAW,EAAQ,QACnBF,EAAyB,EAAQ,QAEjCrF,EAAS0b,EAAY,GAAG1b,QACxB2b,EAAaD,EAAY,GAAGC,YAC5BC,EAAcF,EAAY,GAAGj5B,OAE7Bo5B,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOC,GACtB,IAGIC,EAAOC,EAHPvW,EAAIJ,EAASF,EAAuB0W,IACpChmB,EAAWuP,EAAoB0W,GAC/B3pB,EAAOsT,EAAE9hB,OAEb,OAAIkS,EAAW,GAAKA,GAAY1D,EAAaypB,EAAoB,QAAK99B,GACtEi+B,EAAQN,EAAWhW,EAAG5P,IACP,OAAUkmB,EAAQ,OAAUlmB,EAAW,IAAM1D,IACtD6pB,EAASP,EAAWhW,EAAG5P,EAAW,IAAM,OAAUmmB,EAAS,MAC3DJ,EACE9b,EAAO2F,EAAG5P,GACVkmB,EACFH,EACEF,EAAYjW,EAAG5P,EAAUA,EAAW,GACVmmB,EAAS,OAAlCD,EAAQ,OAAU,IAA0B,QAIzDr7B,EAAOC,QAAU,CAGfs7B,OAAQN,GAAa,GAGrB7b,OAAQ6b,GAAa,K,mBCfvBj7B,EAAOC,QAVP,SAAoBu7B,EAAOC,GACzB,IAAIx4B,EAASu4B,EAAMv4B,OAGnB,IADAu4B,EAAMtF,KAAKuF,GACJx4B,KACLu4B,EAAMv4B,GAAUu4B,EAAMv4B,GAAQ/G,MAEhC,OAAOs/B,I,kCCjBT,2EAGA1H,UAAI4H,IAAIC,KACR,MAAMC,EAAW,IAAI9H,UAEN,SAAS+H,KAAmBx0B,GACzC,OAAOu0B,EAASE,OAAOC,QAAQ10B,K,maCQjC,MAAM20B,EAAiC,YAAO,CAC5CC,OAAQ,CAAC,KACTv2B,KAAI,KACK,CAELrK,KAAM,cAGVqrB,QAAS,CACP,aAAajkB,GAMX,YAAU,KACR,YAAYA,EAAOlG,KAAKlB,KAAR,iBAItB,OAAO88B,GACL,OAAOA,EAAE,mBAAoB,CAC3Bz8B,MAAO,CACL6rB,IAAK,MACLlsB,KAAMkB,KAAKlB,MAEbmO,GAAI,CACF0yB,WAAY3/B,KAAK4/B,eAElB5/B,KAAK6/B,oBAMN,EAAQ,YAAsB,CAElCC,WAAY,YAAS,KACrBC,SAAU,YAAS,KACnBjhC,KAAM,YAAS,SAAkB+B,GAAW,GAG5Cm/B,KAAM,YAAS,MACd,KAKGC,EAAwB,YAAO,CACnCnhC,KAAM,IACN4gC,OAAQ,CAAC,KACTvgC,MAAK,EACL,OACE,MAAO,CAEL+gC,UAAU,EACVC,MAAM,EAENC,WAAYpgC,KAAKlB,OAGrB,cACE,MAAM,KACJA,GACEkB,KACJA,KAAKogC,WAAathC,EAGd,WAASw7B,UAAUx7B,IACrB,OAAAk7B,EAAA,GAAK,kCAAkCl7B,qCAAyC,KAChFkB,KAAKmgC,MAAO,GAEZngC,KAAKkgC,UAAW,GAGpB,gBAGMlgC,KAAKkgC,UACPlgC,KAAKqgC,WAAW,YAAiB,IAAc,KAAuBrgC,KAAKlB,OAG/E,YAEE,MAAM,IACJ8+B,GACE59B,KAEA49B,GAAOA,EAAIl4B,YACbk4B,EAAIl4B,WAAW+J,YAAYmuB,IAG/B,OAAOhC,GACL,IAAI0E,EAAW1E,EAAE,MAAO,CACtBnS,MAAO,CAAC,YAAa,CACnB,iBAAkBzpB,KAAKmgC,SAG3B,GAAIngC,KAAKkgC,SAAU,CACjB,MAAMxQ,EAAUkM,EAAE,eAAc,CAC9Bn7B,YAAa,iBACbtB,MAAO,CACLL,KAAMkB,KAAKogC,WACXpE,UAAU,EACVhR,IAAK,MACL2P,MAAM,EAENsB,WAAYwD,KAGhBa,EAAW1E,EAAE,MAAO,CAClBn7B,YAAa,YACbgpB,MAAO,CAACzpB,KAAKogC,YACb1/B,MAAO,CACL4kB,GAAItlB,KAAKogC,WAETJ,KAAMhgC,KAAKggC,MAAQ,KACnB,YAAahgC,KAAK+/B,SAClB,cAAe//B,KAAK8/B,aAErB,CAACpQ,IAEN,OAAO4Q,MC7GTC,MAAOC,EACPrhC,MAAOshC,EACPnR,KAAMoR,EACNxzB,MAAOyzB,GACL,YAAe,UAAW,CAC5BthC,KAAM,IACNuhC,cAAc,EACd1zB,MAAO,MAMH2zB,EAAY,YAAK,IAAS,CAAC,OAAQ,OACnC,EAAQ,YAAsB,YAAS,IACxC,OACAJ,KACAI,EACHC,YAAa,YAAS,KAAmB,GACzCC,cAAe,YAAS,IAAyB,KACjDC,UAAW,YAAS,KACpBC,YAAa,YAAS,KACtBC,UAAW,YAAS,IAAkB,UAEtCC,SAAU,YAAS,KAAmB,GACtCC,WAAY,YAAS,KAAmB,GACxCC,OAAQ,YAAS,KAAmB,GACpCC,aAAc,YAAS,KAAmB,GAC1CC,MAAO,YAAS,KAAmB,GAEnCC,OAAQ,YAAS,KAAmB,GACpCpiC,MAAO,YAAS,KAChBqiC,WAAY,YAAS,KACrBC,QAAS,YAAS,IAAkB,uBACpCvY,QAAS,YAAS,OAChB,KAKEwY,EAAsB,YAAO,CACjC7iC,KAAM,IACN4gC,OAAQ,CAACh/B,EAAA,EAAY,IAAS8/B,EAAY,IAAmB,IAAoB,KACjFxD,cAAc,EACd79B,MAAK,EACLgK,KAAI,KACK,CACLy4B,WAAW,EACX1B,UAAU,EACV2B,WAAW,EACXC,iBAAiB,EACjBC,UAAU,EACV/I,MAAO,EACPgJ,eAAgB,EAChBC,cAAe,IAGnB1Y,SAAU,CACR,eACE,MAAM,YACJuX,EAAW,QACX3X,GACEnpB,KACJ,MAAO,CACL,gBAAiBA,KAAKuhC,MACtB,iBAAkBT,EAClB,mBAAoBA,EACpB,CAAC,WAAW3X,GAAYA,IAG5B,YACE,MAAM,KACJ+Y,GACEliC,KACJ,MAAO,CACLkiC,SAGJ,mBAEE,OAAO,OAAAC,EAAA,GAAQ,YAAUniC,KAAK+gC,cAAe,GAvE9B,MAyEjB,kBACE,OAAOzhC,OAAOU,KAAK0hC,UAErB,qBACE,MAAO,CACLU,YAAapiC,KAAKqiC,cAClB1C,WAAY3/B,KAAK4/B,aACjB0C,YAAatiC,KAAKuiC,cAClBC,WAAYxiC,KAAKyiC,eAGrB,gBACE,MAAO,IACFziC,KAAK0iC,QACRpd,GAAItlB,KAAK2iC,SACTC,SAAU,OAIhBjX,MAAO,CACL,CAAC+U,GAAiBtF,GAChBp7B,KAAKo7B,EAAW,OAAS,WAE3B,UAAUA,GACJA,IAAap7B,KAAK0gC,IACpB1gC,KAAK+K,MAAM41B,EAAkBvF,IAIjC,UAEEp7B,KAAK+6B,UAAU/6B,KAAK6iC,gBAGtB,OAAOzH,GAGDA,GAAYp7B,KAAK6hC,WACnB7hC,KAAK6iC,kBAIX,UAEE7iC,KAAK8iC,eAAiB,MAExB,UACE9iC,KAAK4hC,WAAY,EACjB5hC,KAAK+6B,UAAU,KACT/6B,KAAK0gC,IACP,YAAU,KACR1gC,KAAKw/B,WAKXx/B,KAAK+iC,aAAa,YAAuB,IAAY,KAAkBzd,IACjEA,IAAOtlB,KAAK2iC,UACd3iC,KAAKw/B,SAITx/B,KAAK+iC,aAAa,YAAuB,IAAY,KAAkBzd,IAChEA,GAAMA,IAAOtlB,KAAK2iC,UACrB3iC,KAAKkiC,SAKTliC,KAAK+iC,aAAa,YAAiB,IAAc,KAAuBrB,IAElEA,IAAY1hC,KAAKgjC,iBACnBhjC,KAAKkiC,UAIX,gBACEliC,KAAKijC,qBAEP9Y,QAAS,CACP,OACE,IAAKnqB,KAAK6hC,UAAW,CACnB7hC,KAAK6iC,gBACL,MAAMK,EAAYljC,KAAKmjC,WAAW,KAClCnjC,KAAKojC,UAAUF,GACfljC,KAAKgiC,eAAiBhiC,KAAKiiC,cAAgB,EAC3CjiC,KAAKg5B,MAAQvL,KAAK4V,OAASrjC,KAAK8gC,YAAc,GAAK,GACnD9gC,KAAK+hC,UAAW,EAChB/hC,KAAKkgC,UAAW,EAChBlgC,KAAK+6B,UAAU,KAGb,YAAU,KACR/6B,KAAK6hC,WAAY,QAKzB,OACE,GAAI7hC,KAAK6hC,UAAW,CAClB,MAAMyB,EAAYtjC,KAAKmjC,WAAW,KAClCnjC,KAAKojC,UAAUE,GACftjC,KAAKujC,iBAAgB,GACrBvjC,KAAKgiC,eAAiBhiC,KAAKiiC,cAAgB,EAC3CjiC,KAAKijC,oBACLjjC,KAAK+hC,UAAW,EAChB,YAAU,KACR/hC,KAAK6hC,WAAY,MAIvB,WAAWxiC,GACT,IAAI6O,EAAUV,UAAU9G,OAAS,QAAsB7F,IAAjB2M,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO,IAAI,IAAQnO,EAAM,CACvBwG,YAAY,EACZS,OAAQtG,KAAK49B,KAAO,KACpB4F,cAAe,QACZt1B,EACHu1B,UAAWzjC,KACX0jC,YAAa1jC,KAAK2iC,YAGtB,UAAUgB,GACR,MAAM,KACJtkC,GACEskC,EACJ3jC,KAAKqgC,WAAW,YAAiB,IAAYhhC,GAAOskC,GACpD3jC,KAAK+K,MAAM1L,EAAMskC,IAEnB,gBACE,GAAI3jC,KAAKwhC,OACP,OAEF,MAAM,gBACJwB,GACEhjC,KACJ,IAAK,WAASs6B,UAAU0I,GAAkB,CACxC,MAAMjgB,EAAMhd,SAAS2M,cAAc,OACnC3M,SAAS69B,KAAKjxB,YAAYoQ,GACV,YAAwB/iB,KAAK6jC,YAAa5D,EAAU,CAClEtC,UAAW,CACT7+B,KAAMkkC,KAGFc,OAAO/gB,KAGnB,oBACE/iB,KAAKijC,oBACAjjC,KAAKohC,aACRphC,KAAK8iC,eAAiB7sB,WAAWjW,KAAKkiC,KAAMliC,KAAKiiC,eAAiBjiC,KAAK+jC,kBACvE/jC,KAAKgiC,eAAiBvU,KAAK4V,MAC3BrjC,KAAKiiC,cAAgB,IAGzB,oBACEpU,aAAa7tB,KAAK8iC,gBAClB9iC,KAAK8iC,eAAiB,MAExB,gBAAgB71B,GACd,MAAM/G,EAAKlG,KAAKgkC,MAAM,WACtB,YAAW/2B,EAAI/G,EAAI,aAAclG,KAAKikC,QAAS,KAC/C,YAAWh3B,EAAI/G,EAAI,aAAclG,KAAKkkC,UAAW,MAEnD,UAEE,GAAIlkC,KAAKohC,YAAcphC,KAAKshC,eAAiBthC,KAAK8iC,gBAAkB9iC,KAAKiiC,cACvE,OAEF,MAAMkC,EAAS1W,KAAK4V,MAAQrjC,KAAKgiC,eAC7BmC,EAAS,IACXnkC,KAAKijC,oBACLjjC,KAAKiiC,cAAgB,OAAAE,EAAA,GAAQniC,KAAK+jC,iBAAmBI,EArPxC,OAwPjB,YAEMnkC,KAAKohC,YAAcphC,KAAKshC,eAAiBthC,KAAKiiC,cAChDjiC,KAAKiiC,cAAgBjiC,KAAKgiC,eAAiB,EAG7ChiC,KAAKokC,qBAEP,cAGEpkC,KAAK+6B,UAAU,KACb,YAAU,KACR/6B,KAAKkiC,YAIX,gBACEliC,KAAK8hC,iBAAkB,GAEzB,eACE9hC,KAAK8hC,iBAAkB,EACvB,MAAMuC,EAAcrkC,KAAKmjC,WAAW,KACpCnjC,KAAKojC,UAAUiB,GACfrkC,KAAKokC,oBACLpkC,KAAKujC,iBAAgB,IAEvB,gBACEvjC,KAAK8hC,iBAAkB,GAEzB,eACE9hC,KAAK8hC,iBAAkB,EACvB9hC,KAAKg5B,MAAQ,EACbh5B,KAAKiiC,cAAgBjiC,KAAKgiC,eAAiB,EAC3C,MAAMqC,EAAcrkC,KAAKmjC,WAAW,KACpCnjC,KAAKojC,UAAUiB,GACfrkC,KAAKkgC,UAAW,GAGlB,UAAUtE,GACR,MAAM,UACJ0I,GACEtkC,KACEukC,EAAO,YAAOvkC,MACdwkC,EAAiB,GACjBC,EAASzkC,KAAK6/B,cAAc,IAAuByE,GACrDG,GACFD,EAAe57B,KAAK67B,GAEtB,IAAIC,EAAU9I,IACV4I,EAAe99B,OAAS,IAC1Bg+B,EAAU9I,EAAE57B,KAAKkhC,UAAW,CAC1BzgC,YAAa,eACbgpB,MAAOzpB,KAAKihC,aACXuD,IAEL,MAAMG,EAAQ/I,EAAE2I,EAAO,IAAQ,MAAO,CACpC9jC,YAAa,aACbgpB,MAAOzpB,KAAKghC,UACZ7hC,MAAOolC,EAAO,YAAW1D,EAAW7gC,MAAQ,GAC5CiN,GAAIs3B,EAAO,CACT3qB,MAAO5Z,KAAK4kC,aACV,IACH5kC,KAAK6/B,cAAc,IAAmByE,IACzC,OAAO1I,EAAE,MAAO,CACdn7B,YAAa,QACbgpB,MAAOzpB,KAAKyhC,WACZ/gC,MAAOV,KAAK6kC,cACZj5B,IAAK,SAAS5L,KAAK,KACnB8kC,IAAK,SACJ,CAACJ,EAASC,MAGjB,OAAO/I,GACL,IAAK57B,KAAKkgC,WAAalgC,KAAK4hC,UAC1B,OAAOhG,IAET,MAAM,MACJ5C,EACAwI,OAAQuD,EAAQ,SAChBhD,EAAQ,SACRZ,GACEnhC,KACElB,EAAO,WAAWkB,KAAK,KACvBu/B,EAAS3D,EAAE,MAAO,CACtBn7B,YAAa,UACbgpB,MAAOzpB,KAAKglC,aACZtkC,MAAO,IAGDqkC,EAAW,GAAK/kC,KAAKilC,iBACzB3f,GAAItlB,KAAK2iC,OAAO,gBAChB3C,KAAM+B,EAAW,KAAOZ,EAAW,SAAW,QAC9C,YAAaY,EAAW,KAAOZ,EAAW,SAAW,YACrD,cAAeY,EAAW,KAAO,QAEnCn2B,IAAK9M,EACLgmC,IAAK,WACJ,CAAClJ,EAAE,IAAc,CAClBz8B,MAAO,CACLkiC,OAAQrhC,KAAKqhC,QAEfp0B,GAAIjN,KAAKklC,oBACR,CAACllC,KAAK6hC,UAAY7hC,KAAKmlC,UAAUvJ,GAAKA,QACzC,OAAOA,EAAE,SAAQ,CACfz8B,MAAO,CACLL,OACA+5B,GAAI74B,KAAKgjC,gBACThK,QACA2B,MAAM,EACN9zB,SAAUk+B,IAEX,CAACxF,OCjXF6F,EAAa,CAAC,QAAS,YAAK,YAAK,EAAO,CAAC,SAAU,cAGnDC,EAAe,CACnBC,aAAc,UACdlmC,MAAO,eAMHmmC,EAAgBr3B,GACbk3B,EAAW/M,OAAO,CAACmN,EAAM55B,KACzB,YAAYsC,EAAQtC,MACvB45B,EAAK55B,GAAOsC,EAAQtC,IAEf45B,GACN,IAsJCC,EAA6B,YAAc,CAC/CC,QAAS,CACPC,OApJWpO,IAIb,MAAMqO,EAAarO,EAAIxpB,OAAO,CAC5BjP,KAAM,IACN+mC,QAASlE,EACTjC,OAAQ,CAAC,KACT,YAEE,MAAM,IACJ9B,GACE59B,KACA49B,GAAOA,EAAIl4B,YACbk4B,EAAIl4B,WAAW+J,YAAYmuB,IAG/B,UAEE,MAAMkI,EAAgB,KAEpB9lC,KAAK6hC,WAAY,EACjB7hC,KAAKkgC,UAAW,EAChBlgC,KAAK+6B,UAAU,KACb/6B,KAAK+6B,UAAU,KAGb,YAAU,KACR/6B,KAAK69B,kBAMb79B,KAAK+lC,SAASp7B,MAAM,IAA2Bm7B,GAE/C9lC,KAAK2K,MAAM,IAAmBm7B,GAE9B9lC,KAAK+iC,aAAa,YAAiB,IAAc,KAAuBrB,IAElEA,IAAY1hC,KAAK0hC,SACnBoE,SAuCR,MAAME,EACJ,YAAYjM,GAEV,YAAO/5B,KAAM,CACXyqB,IAAKsP,EACLkM,MAAO,YAAalM,KAGtB,YAAiB/5B,KAAM,CACrByqB,IAAK,cACLwb,MAAO,gBAOX,MAAMhI,GACJ,IAAI/vB,EAAUV,UAAU9G,OAAS,QAAsB7F,IAAjB2M,UAAU,GAAmBA,UAAU,GAAK,GAC7EywB,IAAW,OAAAjE,EAAA,GA/HJ,aA4EE,EAAC76B,EAAO6Q,KACxB,GAAI,OAAAgqB,EAAA,GA7EU,YA+EZ,OAGF,MAAMkM,EAAQ,YAAwBl2B,EAAQ41B,EAAY,CAGxDjI,UAAW,IACN4H,EAAc,YAAmB,SAEjC,YAAKpmC,EAAO,YAAKkmC,IAEpB7D,QAAQ,EACR5U,SAAS,KAIb,YAAKyY,GAAc1+B,QAAQ2oB,IACzB,MAAM3vB,EAAQR,EAAMmwB,GACf,YAAY3vB,KACfumC,EAAMza,OAAO4Z,EAAa/V,IAAS,YAAO3vB,MAI9C,MAAMojB,EAAMhd,SAAS2M,cAAc,OACnC3M,SAAS69B,KAAKjxB,YAAYoQ,GAC1BmjB,EAAMpC,OAAO/gB,IA2BXoiB,CAAU,IACLI,EAAcr3B,GACjBo3B,aAAcrH,GACbj+B,KAAKyqB,KAIV,KAAKnF,GACCA,GACFtlB,KAAKimC,MAAMl7B,MAAM,YAAuB,IAAY,KAAkBua,GAK1E,OACE,IAAIA,EAAK9X,UAAU9G,OAAS,QAAsB7F,IAAjB2M,UAAU,GAAmBA,UAAU,GAAK,KAC7ExN,KAAKimC,MAAMl7B,MAAM,YAAuB,IAAY,KAAkBua,IAK1EiS,EAAIgJ,MAAM,CACR,eAGEvgC,KAAmB,WAAI,IAAIgmC,EAAQhmC,SAMlC,YAAeu3B,EAAIxyB,UAlKR,aAmKd,YAAewyB,EAAIxyB,UAnKL,WAmK2B,CACvC,MAKE,OAHK/E,MAASA,KAAmB,YAC/B,OAAAg6B,EAAA,GAAK,kEAAuE,KAEvEh6B,KAAmB,kBCvL5BmmC,EAA2B,YAAc,CAC7CpnC,WAAY,CACV4iC,SACA1B,YAGFyF,QAAS,CACPD,mB,gBCTJ,MAAMW,EAAkB,CACtBrF,cAAe,IACfU,WAAY,WACZN,UAAU,EACVO,QAAS,yBAEX,IAAI2E,EAAc,EAClB,SAASC,EAAY1K,EAAGsK,EAAOh4B,GAC7B,MAAMqY,EAAQ,CAACqV,EAAE,IAAa,CAC5BnS,MAAO,CAAC,yBACRxc,GAAI,CACF2M,MAAOssB,EAAMhE,SAYjB,OATIh0B,EAAQq4B,QACVhgB,EAAM1Y,OAAO,EAAG,EAAG+tB,EAAE,IAAK,CACxBoE,KAAM,SACNvW,MAAO,CAAC,mBACRxc,GAAI,CACF2M,MAAOjW,GAAKuK,EAAQq4B,OAAOC,QAAQ7iC,EAAGuiC,KAEvCh4B,EAAQq4B,OAAO7c,OAEbnD,EAET,SAASkgB,GAAUtwB,GACjB,IAAIjI,EAAUV,UAAU9G,OAAS,QAAsB7F,IAAjB2M,UAAU,GAAmBA,UAAU,GAAK,GAElF,MAAM8X,EAAK,YAAY+gB,EACvBA,GAAe,EACf,MAAMnE,EAAO,KACXliC,KAAK0mC,SAASxE,KAAK5c,IAEf4gB,EAAQ,CACZ5gB,KACA4c,QAEF,GAAI,IAAWh0B,EAAQy4B,YAAa,CAClC,MAAMC,EAAsBjjC,IACtBA,EAAE+/B,cAAgBpe,IACpBtlB,KAAK6mC,MAAMv8B,KAAK,mBAAoBs8B,GACpC14B,EAAQy4B,WAAWhjC,KAGvB3D,KAAK6mC,MAAM38B,IAAI,mBAAoB08B,GAErC,MAAME,EAAwBlhB,OAAOmhB,MAAM74B,aAAyC,EAASA,EAAQ6yB,eAEjG,KAFkH,CACpHA,cAAe7yB,EAAQ6yB,eAQzB,OANA/gC,KAAK0mC,SAASR,MAAM/vB,EAAS,IACxBiwB,KACAU,EACHxhB,KACAlmB,MAAOknC,EAAYtmC,KAAKC,eAAgBimC,EAAOh4B,KAE1Cg4B,EAST,IAAI,GAAQ,CACV,QAAQ3O,GACNA,EAAI4H,IAAIgH,GACR5O,EAAIgJ,MAAM,CACR,eACMvgC,KAAKu/B,SAGTv/B,KAAKu/B,OAAS,CACZC,KAAMiH,GAAU3hC,KAAK9E,aAOhB","file":"commons-pages.groups.milestones.edit-pages.groups.milestones.new-pages.groups.milestones.show-pages.-9b0d9629.47edca98.chunk.js","sourcesContent":["import { GlTooltipDirective } from '../../../directives/tooltip';\nimport GlButton from '../../base/button/button';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'ClearIconButton',\n  components: {\n    GlButton\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective\n  },\n  props: {\n    title: {\n      type: String,\n      required: false,\n      default: () => translate('ClearIconButton.title', 'Clear')\n    },\n    tooltipContainer: {\n      required: false,\n      default: false,\n      validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-button',_vm._g({directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",value:({ container: _vm.tooltipContainer }),expression:\"{ container: tooltipContainer }\",modifiers:{\"hover\":true}}],staticClass:\"gl-clear-icon-button\",attrs:{\"variant\":\"default\",\"category\":\"tertiary\",\"size\":\"small\",\"name\":\"clear\",\"icon\":\"clear\",\"title\":_vm.title,\"aria-label\":_vm.title}},_vm.$listeners))};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","export const MINIMUM_SEARCH_LENGTH = 3;\n\nexport const TYPENAME_BOARD = 'Board';\nexport const TYPENAME_CI_BUILD = 'Ci::Build';\nexport const TYPENAME_CI_RUNNER = 'Ci::Runner';\nexport const TYPENAME_CI_PIPELINE = 'Ci::Pipeline';\nexport const TYPENAME_CI_STAGE = 'Ci::Stage';\nexport const TYPENAME_CI_TRIGGER = 'Ci::Trigger';\nexport const TYPENAME_CI_VARIABLE = 'Ci::Variable';\nexport const TYPENAME_COMMIT_STATUS = 'CommitStatus';\nexport const TYPENAME_CONTAINER_REPOSITORY = 'ContainerRepository';\nexport const TYPENAME_CRM_CONTACT = 'CustomerRelations::Contact';\nexport const TYPENAME_CRM_ORGANIZATION = 'CustomerRelations::Organization';\nexport const TYPENAME_DESIGN_VERSION = 'DesignManagement::Version';\nexport const TYPENAME_DISCUSSION = 'Discussion';\nexport const TYPENAME_DISCUSSION_NOTE = 'DiscussionNote';\nexport const TYPENAME_EPIC = 'Epic';\nexport const TYPENAME_EPIC_BOARD = 'Boards::EpicBoard';\nexport const TYPENAME_FEATURE_FLAG = 'FeatureFlag';\nexport const TYPENAME_GROUP = 'Group';\nexport const TYPENAME_ISSUE = 'Issue';\nexport const TYPENAME_ITERATION = 'Iteration';\nexport const TYPENAME_ITERATIONS_CADENCE = 'Iterations::Cadence';\nexport const TYPENAME_LABEL = 'Label';\nexport const TYPENAME_MEMBER_ROLE = 'MemberRole';\nexport const TYPENAME_MERGE_REQUEST = 'MergeRequest';\nexport const TYPENAME_MILESTONE = 'Milestone';\nexport const TYPENAME_NOTE = 'Note';\nexport const TYPENAME_PACKAGES_PACKAGE = 'Packages::Package';\nexport const TYPENAME_PROJECT = 'Project';\nexport const TYPENAME_SCANNER_PROFILE = 'DastScannerProfile';\nexport const TYPENAME_SITE_PROFILE = 'DastSiteProfile';\nexport const TYPENAME_TODO = 'Todo';\nexport const TYPENAME_USER = 'User';\nexport const TYPENAME_VULNERABILITY = 'Vulnerability';\nexport const TYPENAME_WORK_ITEM = 'WorkItem';\nexport const TYPENAME_WORK_ITEM_RELATED_BRANCH = 'WorkItemRelatedBranch';\nexport const TYPE_ORGANIZATION = 'Organizations::Organization';\nexport const TYPE_USERS_SAVED_REPLY = 'Users::SavedReply';\nexport const TYPE_WORKSPACE = 'RemoteDevelopment::Workspace';\nexport const TYPE_COMPLIANCE_FRAMEWORK = 'ComplianceManagement::Framework';\n\nexport const QUERY_PARAM_START_CURSOR = 'start_cursor';\nexport const QUERY_PARAM_END_CURSOR = 'end_cursor';\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.TaskList=t():e.TaskList=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t){var n,r,i,a,s=[].indexOf;n=function(e){return Array.prototype.slice.apply(e)},i=function(e,t){for(;e&&!e.classList.contains(t);)e=e.parentNode;return e},a=function(e,t){var n;return\"function\"==typeof Event?(n=new Event(e,{bubbles:!0,cancelable:!0})).detail=t:(n=document.createEvent(\"CustomEvent\")).initCustomEvent(e,!0,!0,t),n},r=function(){class e{constructor(e){this.el=e,this.container=i(this.el,\"js-task-list-container\"),this.field=this.container.querySelector(\".js-task-list-field\"),this.container.addEventListener(\"change\",e=>{if(e.target.classList.contains(\"task-list-item-checkbox\"))return this.updateTaskList(e.target)}),this.enable()}enable(){var e;if(this.container.querySelectorAll(\".js-task-list-field\").length>0)return n(this.container.querySelectorAll(\".task-list-item\")).forEach((function(e){return e.classList.add(\"enabled\")})),n(this.container.querySelectorAll(\".task-list-item-checkbox\")).forEach((function(e){return e.disabled=!1})),this.container.classList.add(\"is-task-list-enabled\"),e=a(\"tasklist:enabled\"),this.container.dispatchEvent(e)}disable(){var e;return n(this.container.querySelectorAll(\".task-list-item\")).forEach((function(e){return e.classList.remove(\"enabled\")})),n(this.container.querySelectorAll(\".task-list-item-checkbox\")).forEach((function(e){return e.disabled=!0})),this.container.classList.remove(\"is-task-list-enabled\"),e=a(\"tasklist:disabled\"),this.container.dispatchEvent(e)}updateTaskList(t){var r,i,s,c,l,o,u;if(s=this.container.querySelectorAll(\".task-list-item-checkbox\"),c=1+n(s).indexOf(t),r=a(\"tasklist:change\",{index:c,checked:t.checked}),this.field.dispatchEvent(r),!r.defaultPrevented)return({result:u,lineNumber:l,lineSource:o}=e.updateSource(this.field.value,c,t.checked,t)),this.field.value=u,r=a(\"change\"),this.field.dispatchEvent(r),i=a(\"tasklist:changed\",{index:c,checked:t.checked,lineNumber:l,lineSource:o}),this.field.dispatchEvent(i)}static escapePattern(e){return e.replace(/([\\[\\]])/g,\"\\\\$1\").replace(/\\s/,\"\\\\s\").replace(\"x\",\"[xX]\")}static updateSource(e,t,n,r){return r.parentElement.hasAttribute(\"data-sourcepos\")?this._updateSourcePosition(e,r,n):this._updateSourceRegex(e,t,n)}static _updateSourcePosition(e,t,n){var r,i,a,s,c;return s=e.split(\"\\n\"),c=t.parentElement.getAttribute(\"data-sourcepos\"),a=s[(i=parseInt(c.split(\":\")[0]))-1],r=n?a.replace(this.incompletePattern,this.complete):a.replace(this.completePattern,this.incomplete),s[i-1]=r,{result:s.join(\"\\n\"),lineNumber:i,lineSource:a}}static _updateSourceRegex(e,t,n){var r,i,a,c,l,o,u,p;return p=e.split(\"\\n\"),r=e.replace(/\\r/g,\"\").replace(this.itemsInParasPattern,\"\").split(\"\\n\"),c=0,a=!1,{result:function(){var e,d,f;for(f=[],i=e=0,d=p.length;e<d;i=++e)l=p[i],a?l.match(this.endFencesPattern)&&(a=!1):l.match(this.startFencesPattern)?a=!0:s.call(r,l)>=0&&l.trim().match(this.itemPattern)&&(c+=1)===t&&(o=i+1,u=l,l=n?l.replace(this.incompletePattern,this.complete):l.replace(this.completePattern,this.incomplete)),f.push(l);return f}.call(this).join(\"\\n\"),lineNumber:o,lineSource:u}}}return e.incomplete=\"[ ]\",e.complete=\"[x]\",e.incompletePattern=RegExp(`${e.escapePattern(e.incomplete)}`),e.completePattern=RegExp(`${e.escapePattern(e.complete)}`),e.itemPattern=RegExp(`^(?:\\\\s*(?:>\\\\s*)*(?:[-+*]|(?:\\\\d+\\\\.)))\\\\s*(${e.escapePattern(e.complete)}|${e.escapePattern(e.incomplete)})\\\\s`),e.startFencesPattern=/^`{3}.*$/,e.endFencesPattern=/^`{3}$/,e.itemsInParasPattern=RegExp(`^(${e.escapePattern(e.complete)}|${e.escapePattern(e.incomplete)}).+$`,\"g\"),e}.call(this),\"undefined\"!=typeof jQuery&&(jQuery.fn.taskList=function(e){return this.each((function(t,n){var i;if((i=jQuery(n).data(\"task-list\"))||(i=new r(n),jQuery(n).data(\"task-list\",i),e&&\"enable\"!==e))return i[e||\"enable\"]()}))}),e.exports=r}])}));","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n  var index = -1,\n      objCriteria = object.criteria,\n      othCriteria = other.criteria,\n      length = objCriteria.length,\n      ordersLength = orders.length;\n\n  while (++index < length) {\n    var result = compareAscending(objCriteria[index], othCriteria[index]);\n    if (result) {\n      if (index >= ordersLength) {\n        return result;\n      }\n      var order = orders[index];\n      return result * (order == 'desc' ? -1 : 1);\n    }\n  }\n  // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n  // that causes it, under certain circumstances, to provide the same value for\n  // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n  // for more details.\n  //\n  // This also ensures a stable sort in V8 and other engines.\n  // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n  return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","/**\n * An event hub with a Vue instance like API\n *\n * NOTE: This is a derivative work from [mitt][1] v1.2.0 which is licensed by\n * [MIT License][2] © [Jason Miller][3]\n *\n * [1]: https://github.com/developit/mitt\n * [2]: https://opensource.org/licenses/MIT\n * [3]: https://jasonformat.com/\n */\nclass EventHub {\n  constructor() {\n    this.$_all = new Map();\n  }\n\n  dispose() {\n    this.$_all.clear();\n  }\n\n  /**\n   * Register an event handler for the given type.\n   *\n   * @param {string|symbol} type Type of event to listen for\n   * @param {Function} handler Function to call in response to given event\n   */\n  $on(type, handler) {\n    const handlers = this.$_all.get(type);\n    const added = handlers && handlers.push(handler);\n\n    if (!added) {\n      this.$_all.set(type, [handler]);\n    }\n  }\n\n  /**\n   * Remove an event handler or all handlers for the given type.\n   *\n   * @param {string|symbol} type Type of event to unregister `handler`\n   * @param {Function} handler Handler function to remove\n   */\n  $off(type, handler) {\n    const handlers = this.$_all.get(type) || [];\n\n    const newHandlers = handler ? handlers.filter((x) => x !== handler) : [];\n\n    if (newHandlers.length) {\n      this.$_all.set(type, newHandlers);\n    } else {\n      this.$_all.delete(type);\n    }\n  }\n\n  /**\n   * Add an event listener to type but only trigger it once\n   *\n   * @param {string|symbol} type Type of event to listen for\n   * @param {Function} handler Handler function to call in response to event\n   */\n  $once(type, handler) {\n    const wrapHandler = (...args) => {\n      this.$off(type, wrapHandler);\n      handler(...args);\n    };\n    this.$on(type, wrapHandler);\n  }\n\n  /**\n   * Invoke all handlers for the given type.\n   *\n   * @param {string|symbol} type The event type to invoke\n   * @param {Any} [evt] Any value passed to each handler\n   */\n  $emit(type, ...args) {\n    const handlers = this.$_all.get(type) || [];\n\n    handlers.forEach((handler) => {\n      handler(...args);\n    });\n  }\n}\n\n/**\n * Return a Vue like event hub\n *\n * - $on\n * - $off\n * - $once\n * - $emit\n *\n * We'd like to shy away from using a full fledged Vue instance from this in the future.\n */\nexport default () => {\n  return new EventHub();\n};\n","var arrayMap = require('./_arrayMap'),\n    baseGet = require('./_baseGet'),\n    baseIteratee = require('./_baseIteratee'),\n    baseMap = require('./_baseMap'),\n    baseSortBy = require('./_baseSortBy'),\n    baseUnary = require('./_baseUnary'),\n    compareMultiple = require('./_compareMultiple'),\n    identity = require('./identity'),\n    isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n  if (iteratees.length) {\n    iteratees = arrayMap(iteratees, function(iteratee) {\n      if (isArray(iteratee)) {\n        return function(value) {\n          return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n        }\n      }\n      return iteratee;\n    });\n  } else {\n    iteratees = [identity];\n  }\n\n  var index = -1;\n  iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n  var result = baseMap(collection, function(value, key, collection) {\n    var criteria = arrayMap(iteratees, function(iteratee) {\n      return iteratee(value);\n    });\n    return { 'criteria': criteria, 'index': ++index, 'value': value };\n  });\n\n  return baseSortBy(result, function(object, other) {\n    return compareMultiple(object, other, orders);\n  });\n}\n\nmodule.exports = baseOrderBy;\n","module.exports = require('./lib/visibility.timers.js')\n","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n  if (value !== other) {\n    var valIsDefined = value !== undefined,\n        valIsNull = value === null,\n        valIsReflexive = value === value,\n        valIsSymbol = isSymbol(value);\n\n    var othIsDefined = other !== undefined,\n        othIsNull = other === null,\n        othIsReflexive = other === other,\n        othIsSymbol = isSymbol(other);\n\n    if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n        (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n        (valIsNull && othIsDefined && othIsReflexive) ||\n        (!valIsDefined && othIsReflexive) ||\n        !valIsReflexive) {\n      return 1;\n    }\n    if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n        (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n        (othIsNull && valIsDefined && valIsReflexive) ||\n        (!othIsDefined && valIsReflexive) ||\n        !othIsReflexive) {\n      return -1;\n    }\n  }\n  return 0;\n}\n\nmodule.exports = compareAscending;\n","\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n(function() {\n  var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n    __slice = [].slice,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  noop = function() {};\n\n  Emitter = (function() {\n    function Emitter() {}\n\n    Emitter.prototype.addEventListener = Emitter.prototype.on;\n\n    Emitter.prototype.on = function(event, fn) {\n      this._callbacks = this._callbacks || {};\n      if (!this._callbacks[event]) {\n        this._callbacks[event] = [];\n      }\n      this._callbacks[event].push(fn);\n      return this;\n    };\n\n    Emitter.prototype.emit = function() {\n      var args, callback, callbacks, event, _i, _len;\n      event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      this._callbacks = this._callbacks || {};\n      callbacks = this._callbacks[event];\n      if (callbacks) {\n        for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n          callback = callbacks[_i];\n          callback.apply(this, args);\n        }\n      }\n      return this;\n    };\n\n    Emitter.prototype.removeListener = Emitter.prototype.off;\n\n    Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\n    Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\n    Emitter.prototype.off = function(event, fn) {\n      var callback, callbacks, i, _i, _len;\n      if (!this._callbacks || arguments.length === 0) {\n        this._callbacks = {};\n        return this;\n      }\n      callbacks = this._callbacks[event];\n      if (!callbacks) {\n        return this;\n      }\n      if (arguments.length === 1) {\n        delete this._callbacks[event];\n        return this;\n      }\n      for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n        callback = callbacks[i];\n        if (callback === fn) {\n          callbacks.splice(i, 1);\n          break;\n        }\n      }\n      return this;\n    };\n\n    return Emitter;\n\n  })();\n\n  Dropzone = (function(_super) {\n    var extend, resolveOption;\n\n    __extends(Dropzone, _super);\n\n    Dropzone.prototype.Emitter = Emitter;\n\n\n    /*\n    This is a list of all available events you can register on a dropzone object.\n    \n    You can register an event handler like this:\n    \n        dropzone.on(\"dragEnter\", function() { });\n     */\n\n    Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\n    Dropzone.prototype.defaultOptions = {\n      url: null,\n      method: \"post\",\n      withCredentials: false,\n      parallelUploads: 2,\n      uploadMultiple: false,\n      maxFilesize: 256,\n      paramName: \"file\",\n      createImageThumbnails: true,\n      maxThumbnailFilesize: 10,\n      thumbnailWidth: 120,\n      thumbnailHeight: 120,\n      filesizeBase: 1000,\n      maxFiles: null,\n      params: {},\n      clickable: true,\n      ignoreHiddenFiles: true,\n      acceptedFiles: null,\n      acceptedMimeTypes: null,\n      autoProcessQueue: true,\n      autoQueue: true,\n      addRemoveLinks: false,\n      previewsContainer: null,\n      hiddenInputContainer: \"body\",\n      capture: null,\n      dictDefaultMessage: \"Drop files here to upload\",\n      dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n      dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n      dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n      dictInvalidFileType: \"You can't upload files of this type.\",\n      dictResponseError: \"Server responded with {{statusCode}} code.\",\n      dictCancelUpload: \"Cancel upload\",\n      dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n      dictRemoveFile: \"Remove file\",\n      dictRemoveFileConfirmation: null,\n      dictMaxFilesExceeded: \"You can not upload any more files.\",\n      accept: function(file, done) {\n        return done();\n      },\n      init: function() {\n        return noop;\n      },\n      forceFallback: false,\n      fallback: function() {\n        var child, messageElement, span, _i, _len, _ref;\n        this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n        _ref = this.element.getElementsByTagName(\"div\");\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          child = _ref[_i];\n          if (/(^| )dz-message($| )/.test(child.className)) {\n            messageElement = child;\n            child.className = \"dz-message\";\n            continue;\n          }\n        }\n        if (!messageElement) {\n          messageElement = Dropzone.createElement(\"<div class=\\\"dz-message\\\"><span></span></div>\");\n          this.element.appendChild(messageElement);\n        }\n        span = messageElement.getElementsByTagName(\"span\")[0];\n        if (span) {\n          if (span.textContent != null) {\n            span.textContent = this.options.dictFallbackMessage;\n          } else if (span.innerText != null) {\n            span.innerText = this.options.dictFallbackMessage;\n          }\n        }\n        return this.element.appendChild(this.getFallbackForm());\n      },\n      resize: function(file) {\n        var info, srcRatio, trgRatio;\n        info = {\n          srcX: 0,\n          srcY: 0,\n          srcWidth: file.width,\n          srcHeight: file.height\n        };\n        srcRatio = file.width / file.height;\n        info.optWidth = this.options.thumbnailWidth;\n        info.optHeight = this.options.thumbnailHeight;\n        if ((info.optWidth == null) && (info.optHeight == null)) {\n          info.optWidth = info.srcWidth;\n          info.optHeight = info.srcHeight;\n        } else if (info.optWidth == null) {\n          info.optWidth = srcRatio * info.optHeight;\n        } else if (info.optHeight == null) {\n          info.optHeight = (1 / srcRatio) * info.optWidth;\n        }\n        trgRatio = info.optWidth / info.optHeight;\n        if (file.height < info.optHeight || file.width < info.optWidth) {\n          info.trgHeight = info.srcHeight;\n          info.trgWidth = info.srcWidth;\n        } else {\n          if (srcRatio > trgRatio) {\n            info.srcHeight = file.height;\n            info.srcWidth = info.srcHeight * trgRatio;\n          } else {\n            info.srcWidth = file.width;\n            info.srcHeight = info.srcWidth / trgRatio;\n          }\n        }\n        info.srcX = (file.width - info.srcWidth) / 2;\n        info.srcY = (file.height - info.srcHeight) / 2;\n        return info;\n      },\n\n      /*\n      Those functions register themselves to the events on init and handle all\n      the user interface specific stuff. Overwriting them won't break the upload\n      but can break the way it's displayed.\n      You can overwrite them if you don't like the default behavior. If you just\n      want to add an additional event handler, register it on the dropzone object\n      and don't overwrite those options.\n       */\n      drop: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragstart: noop,\n      dragend: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragenter: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragover: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragleave: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      paste: noop,\n      reset: function() {\n        return this.element.classList.remove(\"dz-started\");\n      },\n      addedfile: function(file) {\n        var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n        if (this.element === this.previewsContainer) {\n          this.element.classList.add(\"dz-started\");\n        }\n        if (this.previewsContainer) {\n          file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n          file.previewTemplate = file.previewElement;\n          this.previewsContainer.appendChild(file.previewElement);\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            node.textContent = file.name;\n          }\n          _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n            node = _ref1[_j];\n            node.innerHTML = this.filesize(file.size);\n          }\n          if (this.options.addRemoveLinks) {\n            file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\" + this.options.dictRemoveFile + \"</a>\");\n            file.previewElement.appendChild(file._removeLink);\n          }\n          removeFileEvent = (function(_this) {\n            return function(e) {\n              e.preventDefault();\n              e.stopPropagation();\n              if (file.status === Dropzone.UPLOADING) {\n                return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n                  return _this.removeFile(file);\n                });\n              } else {\n                if (_this.options.dictRemoveFileConfirmation) {\n                  return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n                    return _this.removeFile(file);\n                  });\n                } else {\n                  return _this.removeFile(file);\n                }\n              }\n            };\n          })(this);\n          _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n          _results = [];\n          for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n            removeLink = _ref2[_k];\n            _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n          }\n          return _results;\n        }\n      },\n      removedfile: function(file) {\n        var _ref;\n        if (file.previewElement) {\n          if ((_ref = file.previewElement) != null) {\n            _ref.parentNode.removeChild(file.previewElement);\n          }\n        }\n        return this._updateMaxFilesReachedClass();\n      },\n      thumbnail: function(file, dataUrl) {\n        var thumbnailElement, _i, _len, _ref;\n        if (file.previewElement) {\n          file.previewElement.classList.remove(\"dz-file-preview\");\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            thumbnailElement = _ref[_i];\n            thumbnailElement.alt = file.name;\n            thumbnailElement.src = dataUrl;\n          }\n          return setTimeout(((function(_this) {\n            return function() {\n              return file.previewElement.classList.add(\"dz-image-preview\");\n            };\n          })(this)), 1);\n        }\n      },\n      error: function(file, message) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-error\");\n          if (typeof message !== \"String\" && message.error) {\n            message = message.error;\n          }\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            _results.push(node.textContent = message);\n          }\n          return _results;\n        }\n      },\n      errormultiple: noop,\n      processing: function(file) {\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-processing\");\n          if (file._removeLink) {\n            return file._removeLink.textContent = this.options.dictCancelUpload;\n          }\n        }\n      },\n      processingmultiple: noop,\n      uploadprogress: function(file, progress, bytesSent) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            if (node.nodeName === 'PROGRESS') {\n              _results.push(node.value = progress);\n            } else {\n              _results.push(node.style.width = \"\" + progress + \"%\");\n            }\n          }\n          return _results;\n        }\n      },\n      totaluploadprogress: noop,\n      sending: noop,\n      sendingmultiple: noop,\n      success: function(file) {\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-success\");\n        }\n      },\n      successmultiple: noop,\n      canceled: function(file) {\n        return this.emit(\"error\", file, \"Upload canceled.\");\n      },\n      canceledmultiple: noop,\n      complete: function(file) {\n        if (file._removeLink) {\n          file._removeLink.textContent = this.options.dictRemoveFile;\n        }\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-complete\");\n        }\n      },\n      completemultiple: noop,\n      maxfilesexceeded: noop,\n      maxfilesreached: noop,\n      queuecomplete: noop,\n      addedfiles: noop,\n      previewTemplate: \"<div class=\\\"dz-preview dz-file-preview\\\">\\n  <div class=\\\"dz-image\\\"><img data-dz-thumbnail /></div>\\n  <div class=\\\"dz-details\\\">\\n    <div class=\\\"dz-size\\\"><span data-dz-size></span></div>\\n    <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n  </div>\\n  <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n  <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n  <div class=\\\"dz-success-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Check</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n      </g>\\n    </svg>\\n  </div>\\n  <div class=\\\"dz-error-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Error</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <g id=\\\"Check-+-Oval-2\\\" sketch:type=\\\"MSLayerGroup\\\" stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\">\\n          <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n        </g>\\n      </g>\\n    </svg>\\n  </div>\\n</div>\"\n    };\n\n    extend = function() {\n      var key, object, objects, target, val, _i, _len;\n      target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      for (_i = 0, _len = objects.length; _i < _len; _i++) {\n        object = objects[_i];\n        for (key in object) {\n          val = object[key];\n          target[key] = val;\n        }\n      }\n      return target;\n    };\n\n    function Dropzone(element, options) {\n      var elementOptions, fallback, _ref;\n      this.element = element;\n      this.version = Dropzone.version;\n      this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n      this.clickableElements = [];\n      this.listeners = [];\n      this.files = [];\n      if (typeof this.element === \"string\") {\n        this.element = document.querySelector(this.element);\n      }\n      if (!(this.element && (this.element.nodeType != null))) {\n        throw new Error(\"Invalid dropzone element.\");\n      }\n      if (this.element.dropzone) {\n        throw new Error(\"Dropzone already attached.\");\n      }\n      Dropzone.instances.push(this);\n      this.element.dropzone = this;\n      elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n      this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n      if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n        return this.options.fallback.call(this);\n      }\n      if (this.options.url == null) {\n        this.options.url = this.element.getAttribute(\"action\");\n      }\n      if (!this.options.url) {\n        throw new Error(\"No URL provided.\");\n      }\n      if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n        throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n      }\n      if (this.options.acceptedMimeTypes) {\n        this.options.acceptedFiles = this.options.acceptedMimeTypes;\n        delete this.options.acceptedMimeTypes;\n      }\n      this.options.method = this.options.method.toUpperCase();\n      if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n        fallback.parentNode.removeChild(fallback);\n      }\n      if (this.options.previewsContainer !== false) {\n        if (this.options.previewsContainer) {\n          this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n        } else {\n          this.previewsContainer = this.element;\n        }\n      }\n      if (this.options.clickable) {\n        if (this.options.clickable === true) {\n          this.clickableElements = [this.element];\n        } else {\n          this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n        }\n      }\n      this.init();\n    }\n\n    Dropzone.prototype.getAcceptedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getRejectedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (!file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getFilesWithStatus = function(status) {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === status) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getQueuedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.QUEUED);\n    };\n\n    Dropzone.prototype.getUploadingFiles = function() {\n      return this.getFilesWithStatus(Dropzone.UPLOADING);\n    };\n\n    Dropzone.prototype.getAddedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.ADDED);\n    };\n\n    Dropzone.prototype.getActiveFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.init = function() {\n      var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n      if (this.element.tagName === \"form\") {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      }\n      if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n        this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><span>\" + this.options.dictDefaultMessage + \"</span></div>\"));\n      }\n      if (this.clickableElements.length) {\n        setupHiddenFileInput = (function(_this) {\n          return function() {\n            if (_this.hiddenFileInput) {\n              _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput);\n            }\n            _this.hiddenFileInput = document.createElement(\"input\");\n            _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n            if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n              _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n            }\n            _this.hiddenFileInput.className = \"dz-hidden-input\";\n            if (_this.options.acceptedFiles != null) {\n              _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n            }\n            if (_this.options.capture != null) {\n              _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n            }\n            _this.hiddenFileInput.style.visibility = \"hidden\";\n            _this.hiddenFileInput.style.position = \"absolute\";\n            _this.hiddenFileInput.style.top = \"0\";\n            _this.hiddenFileInput.style.left = \"0\";\n            _this.hiddenFileInput.style.height = \"0\";\n            _this.hiddenFileInput.style.width = \"0\";\n            document.querySelector(_this.options.hiddenInputContainer).appendChild(_this.hiddenFileInput);\n            return _this.hiddenFileInput.addEventListener(\"change\", function() {\n              var file, files, _i, _len;\n              files = _this.hiddenFileInput.files;\n              if (files.length) {\n                for (_i = 0, _len = files.length; _i < _len; _i++) {\n                  file = files[_i];\n                  _this.addFile(file);\n                }\n              }\n              _this.emit(\"addedfiles\", files);\n              return setupHiddenFileInput();\n            });\n          };\n        })(this);\n        setupHiddenFileInput();\n      }\n      this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n      _ref1 = this.events;\n      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n        eventName = _ref1[_i];\n        this.on(eventName, this.options[eventName]);\n      }\n      this.on(\"uploadprogress\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"removedfile\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"canceled\", (function(_this) {\n        return function(file) {\n          return _this.emit(\"complete\", file);\n        };\n      })(this));\n      this.on(\"complete\", (function(_this) {\n        return function(file) {\n          if (_this.getAddedFiles().length === 0 && _this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n            return setTimeout((function() {\n              return _this.emit(\"queuecomplete\");\n            }), 0);\n          }\n        };\n      })(this));\n      noPropagation = function(e) {\n        e.stopPropagation();\n        if (e.preventDefault) {\n          return e.preventDefault();\n        } else {\n          return e.returnValue = false;\n        }\n      };\n      this.listeners = [\n        {\n          element: this.element,\n          events: {\n            \"dragstart\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragstart\", e);\n              };\n            })(this),\n            \"dragenter\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.emit(\"dragenter\", e);\n              };\n            })(this),\n            \"dragover\": (function(_this) {\n              return function(e) {\n                var efct;\n                try {\n                  efct = e.dataTransfer.effectAllowed;\n                } catch (_error) {}\n                e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n                noPropagation(e);\n                return _this.emit(\"dragover\", e);\n              };\n            })(this),\n            \"dragleave\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragleave\", e);\n              };\n            })(this),\n            \"drop\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.drop(e);\n              };\n            })(this),\n            \"dragend\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragend\", e);\n              };\n            })(this)\n          }\n        }\n      ];\n      this.clickableElements.forEach((function(_this) {\n        return function(clickableElement) {\n          return _this.listeners.push({\n            element: clickableElement,\n            events: {\n              \"click\": function(evt) {\n                if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n                  _this.hiddenFileInput.click();\n                }\n                return true;\n              }\n            }\n          });\n        };\n      })(this));\n      this.enable();\n      return this.options.init.call(this);\n    };\n\n    Dropzone.prototype.destroy = function() {\n      var _ref;\n      this.disable();\n      this.removeAllFiles(true);\n      if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n        this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n        this.hiddenFileInput = null;\n      }\n      delete this.element.dropzone;\n      return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n    };\n\n    Dropzone.prototype.updateTotalUploadProgress = function() {\n      var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n      totalBytesSent = 0;\n      totalBytes = 0;\n      activeFiles = this.getActiveFiles();\n      if (activeFiles.length) {\n        _ref = this.getActiveFiles();\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          totalBytesSent += file.upload.bytesSent;\n          totalBytes += file.upload.total;\n        }\n        totalUploadProgress = 100 * totalBytesSent / totalBytes;\n      } else {\n        totalUploadProgress = 100;\n      }\n      return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n    };\n\n    Dropzone.prototype._getParamName = function(n) {\n      if (typeof this.options.paramName === \"function\") {\n        return this.options.paramName(n);\n      } else {\n        return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n      }\n    };\n\n    Dropzone.prototype.getFallbackForm = function() {\n      var existingFallback, fields, fieldsString, form;\n      if (existingFallback = this.getExistingFallback()) {\n        return existingFallback;\n      }\n      fieldsString = \"<div class=\\\"dz-fallback\\\">\";\n      if (this.options.dictFallbackText) {\n        fieldsString += \"<p>\" + this.options.dictFallbackText + \"</p>\";\n      }\n      fieldsString += \"<input type=\\\"file\\\" name=\\\"\" + (this._getParamName(0)) + \"\\\" \" + (this.options.uploadMultiple ? 'multiple=\"multiple\"' : void 0) + \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\";\n      fields = Dropzone.createElement(fieldsString);\n      if (this.element.tagName !== \"FORM\") {\n        form = Dropzone.createElement(\"<form action=\\\"\" + this.options.url + \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\" + this.options.method + \"\\\"></form>\");\n        form.appendChild(fields);\n      } else {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n        this.element.setAttribute(\"method\", this.options.method);\n      }\n      return form != null ? form : fields;\n    };\n\n    Dropzone.prototype.getExistingFallback = function() {\n      var fallback, getFallback, tagName, _i, _len, _ref;\n      getFallback = function(elements) {\n        var el, _i, _len;\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )fallback($| )/.test(el.className)) {\n            return el;\n          }\n        }\n      };\n      _ref = [\"div\", \"form\"];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        tagName = _ref[_i];\n        if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n          return fallback;\n        }\n      }\n    };\n\n    Dropzone.prototype.setupEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.addEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.removeEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.disable = function() {\n      var file, _i, _len, _ref, _results;\n      this.clickableElements.forEach(function(element) {\n        return element.classList.remove(\"dz-clickable\");\n      });\n      this.removeEventListeners();\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        _results.push(this.cancelUpload(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.enable = function() {\n      this.clickableElements.forEach(function(element) {\n        return element.classList.add(\"dz-clickable\");\n      });\n      return this.setupEventListeners();\n    };\n\n    Dropzone.prototype.filesize = function(size) {\n      var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n      selectedSize = 0;\n      selectedUnit = \"b\";\n      if (size > 0) {\n        units = ['TB', 'GB', 'MB', 'KB', 'b'];\n        for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n          unit = units[i];\n          cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n          if (size >= cutoff) {\n            selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n            selectedUnit = unit;\n            break;\n          }\n        }\n        selectedSize = Math.round(10 * selectedSize) / 10;\n      }\n      return \"<strong>\" + selectedSize + \"</strong> \" + selectedUnit;\n    };\n\n    Dropzone.prototype._updateMaxFilesReachedClass = function() {\n      if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        if (this.getAcceptedFiles().length === this.options.maxFiles) {\n          this.emit('maxfilesreached', this.files);\n        }\n        return this.element.classList.add(\"dz-max-files-reached\");\n      } else {\n        return this.element.classList.remove(\"dz-max-files-reached\");\n      }\n    };\n\n    Dropzone.prototype.drop = function(e) {\n      var files, items;\n      if (!e.dataTransfer) {\n        return;\n      }\n      this.emit(\"drop\", e);\n      files = e.dataTransfer.files;\n      this.emit(\"addedfiles\", files);\n      if (files.length) {\n        items = e.dataTransfer.items;\n        if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n    };\n\n    Dropzone.prototype.paste = function(e) {\n      var items, _ref;\n      if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n        return;\n      }\n      this.emit(\"paste\", e);\n      items = e.clipboardData.items;\n      if (items.length) {\n        return this._addFilesFromItems(items);\n      }\n    };\n\n    Dropzone.prototype.handleFiles = function(files) {\n      var file, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        _results.push(this.addFile(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromItems = function(items) {\n      var entry, item, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = items.length; _i < _len; _i++) {\n        item = items[_i];\n        if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n          if (entry.isFile) {\n            _results.push(this.addFile(item.getAsFile()));\n          } else if (entry.isDirectory) {\n            _results.push(this._addFilesFromDirectory(entry, entry.name));\n          } else {\n            _results.push(void 0);\n          }\n        } else if (item.getAsFile != null) {\n          if ((item.kind == null) || item.kind === \"file\") {\n            _results.push(this.addFile(item.getAsFile()));\n          } else {\n            _results.push(void 0);\n          }\n        } else {\n          _results.push(void 0);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n      var dirReader, entriesReader;\n      dirReader = directory.createReader();\n      entriesReader = (function(_this) {\n        return function(entries) {\n          var entry, _i, _len;\n          for (_i = 0, _len = entries.length; _i < _len; _i++) {\n            entry = entries[_i];\n            if (entry.isFile) {\n              entry.file(function(file) {\n                if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n                  return;\n                }\n                file.fullPath = \"\" + path + \"/\" + file.name;\n                return _this.addFile(file);\n              });\n            } else if (entry.isDirectory) {\n              _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n            }\n          }\n        };\n      })(this);\n      return dirReader.readEntries(entriesReader, function(error) {\n        return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n      });\n    };\n\n    Dropzone.prototype.accept = function(file, done) {\n      if (file.size > this.options.maxFilesize * 1024 * 1024) {\n        return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n      } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n        return done(this.options.dictInvalidFileType);\n      } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n        return this.emit(\"maxfilesexceeded\", file);\n      } else {\n        return this.options.accept.call(this, file, done);\n      }\n    };\n\n    Dropzone.prototype.addFile = function(file) {\n      file.upload = {\n        progress: 0,\n        total: file.size,\n        bytesSent: 0\n      };\n      this.files.push(file);\n      file.status = Dropzone.ADDED;\n      this.emit(\"addedfile\", file);\n      this._enqueueThumbnail(file);\n      return this.accept(file, (function(_this) {\n        return function(error) {\n          if (error) {\n            file.accepted = false;\n            _this._errorProcessing([file], error);\n          } else {\n            file.accepted = true;\n            if (_this.options.autoQueue) {\n              _this.enqueueFile(file);\n            }\n          }\n          return _this._updateMaxFilesReachedClass();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.enqueueFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        this.enqueueFile(file);\n      }\n      return null;\n    };\n\n    Dropzone.prototype.enqueueFile = function(file) {\n      if (file.status === Dropzone.ADDED && file.accepted === true) {\n        file.status = Dropzone.QUEUED;\n        if (this.options.autoProcessQueue) {\n          return setTimeout(((function(_this) {\n            return function() {\n              return _this.processQueue();\n            };\n          })(this)), 0);\n        }\n      } else {\n        throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n      }\n    };\n\n    Dropzone.prototype._thumbnailQueue = [];\n\n    Dropzone.prototype._processingThumbnail = false;\n\n    Dropzone.prototype._enqueueThumbnail = function(file) {\n      if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n        this._thumbnailQueue.push(file);\n        return setTimeout(((function(_this) {\n          return function() {\n            return _this._processThumbnailQueue();\n          };\n        })(this)), 0);\n      }\n    };\n\n    Dropzone.prototype._processThumbnailQueue = function() {\n      if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n        return;\n      }\n      this._processingThumbnail = true;\n      return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n        return function() {\n          _this._processingThumbnail = false;\n          return _this._processThumbnailQueue();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.removeFile = function(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        this.cancelUpload(file);\n      }\n      this.files = without(this.files, file);\n      this.emit(\"removedfile\", file);\n      if (this.files.length === 0) {\n        return this.emit(\"reset\");\n      }\n    };\n\n    Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n      var file, _i, _len, _ref;\n      if (cancelIfNecessary == null) {\n        cancelIfNecessary = false;\n      }\n      _ref = this.files.slice();\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n          this.removeFile(file);\n        }\n      }\n      return null;\n    };\n\n    Dropzone.prototype.createThumbnail = function(file, callback) {\n      var fileReader;\n      fileReader = new FileReader;\n      fileReader.onload = (function(_this) {\n        return function() {\n          if (file.type === \"image/svg+xml\") {\n            _this.emit(\"thumbnail\", file, fileReader.result);\n            if (callback != null) {\n              callback();\n            }\n            return;\n          }\n          return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n        };\n      })(this);\n      return fileReader.readAsDataURL(file);\n    };\n\n    Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback, crossOrigin) {\n      var img;\n      img = document.createElement(\"img\");\n      if (crossOrigin) {\n        img.crossOrigin = crossOrigin;\n      }\n      img.onload = (function(_this) {\n        return function() {\n          var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n          file.width = img.width;\n          file.height = img.height;\n          resizeInfo = _this.options.resize.call(_this, file);\n          if (resizeInfo.trgWidth == null) {\n            resizeInfo.trgWidth = resizeInfo.optWidth;\n          }\n          if (resizeInfo.trgHeight == null) {\n            resizeInfo.trgHeight = resizeInfo.optHeight;\n          }\n          canvas = document.createElement(\"canvas\");\n          ctx = canvas.getContext(\"2d\");\n          canvas.width = resizeInfo.trgWidth;\n          canvas.height = resizeInfo.trgHeight;\n          drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n          thumbnail = canvas.toDataURL(\"image/png\");\n          _this.emit(\"thumbnail\", file, thumbnail);\n          if (callback != null) {\n            return callback();\n          }\n        };\n      })(this);\n      if (callback != null) {\n        img.onerror = callback;\n      }\n      return img.src = imageUrl;\n    };\n\n    Dropzone.prototype.processQueue = function() {\n      var i, parallelUploads, processingLength, queuedFiles;\n      parallelUploads = this.options.parallelUploads;\n      processingLength = this.getUploadingFiles().length;\n      i = processingLength;\n      if (processingLength >= parallelUploads) {\n        return;\n      }\n      queuedFiles = this.getQueuedFiles();\n      if (!(queuedFiles.length > 0)) {\n        return;\n      }\n      if (this.options.uploadMultiple) {\n        return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n      } else {\n        while (i < parallelUploads) {\n          if (!queuedFiles.length) {\n            return;\n          }\n          this.processFile(queuedFiles.shift());\n          i++;\n        }\n      }\n    };\n\n    Dropzone.prototype.processFile = function(file) {\n      return this.processFiles([file]);\n    };\n\n    Dropzone.prototype.processFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.processing = true;\n        file.status = Dropzone.UPLOADING;\n        this.emit(\"processing\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"processingmultiple\", files);\n      }\n      return this.uploadFiles(files);\n    };\n\n    Dropzone.prototype._getFilesWithXhr = function(xhr) {\n      var file, files;\n      return files = (function() {\n        var _i, _len, _ref, _results;\n        _ref = this.files;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          if (file.xhr === xhr) {\n            _results.push(file);\n          }\n        }\n        return _results;\n      }).call(this);\n    };\n\n    Dropzone.prototype.cancelUpload = function(file) {\n      var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n      if (file.status === Dropzone.UPLOADING) {\n        groupedFiles = this._getFilesWithXhr(file.xhr);\n        for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n          groupedFile = groupedFiles[_i];\n          groupedFile.status = Dropzone.CANCELED;\n        }\n        file.xhr.abort();\n        for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n          groupedFile = groupedFiles[_j];\n          this.emit(\"canceled\", groupedFile);\n        }\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", groupedFiles);\n        }\n      } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n        file.status = Dropzone.CANCELED;\n        this.emit(\"canceled\", file);\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", [file]);\n        }\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    resolveOption = function() {\n      var args, option;\n      option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      if (typeof option === 'function') {\n        return option.apply(this, args);\n      }\n      return option;\n    };\n\n    Dropzone.prototype.uploadFile = function(file) {\n      return this.uploadFiles([file]);\n    };\n\n    Dropzone.prototype.uploadFiles = function(files) {\n      var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n      xhr = new XMLHttpRequest();\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.xhr = xhr;\n      }\n      method = resolveOption(this.options.method, files);\n      url = resolveOption(this.options.url, files);\n      xhr.open(method, url, true);\n      xhr.withCredentials = !!this.options.withCredentials;\n      response = null;\n      handleError = (function(_this) {\n        return function() {\n          var _j, _len1, _results;\n          _results = [];\n          for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n            file = files[_j];\n            _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n          }\n          return _results;\n        };\n      })(this);\n      updateProgress = (function(_this) {\n        return function(e) {\n          var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n          if (e != null) {\n            progress = 100 * e.loaded / e.total;\n            for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n              file = files[_j];\n              file.upload = {\n                progress: progress,\n                total: e.total,\n                bytesSent: e.loaded\n              };\n            }\n          } else {\n            allFilesFinished = true;\n            progress = 100;\n            for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n              file = files[_k];\n              if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n                allFilesFinished = false;\n              }\n              file.upload.progress = progress;\n              file.upload.bytesSent = file.upload.total;\n            }\n            if (allFilesFinished) {\n              return;\n            }\n          }\n          _results = [];\n          for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n            file = files[_l];\n            _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n          }\n          return _results;\n        };\n      })(this);\n      xhr.onload = (function(_this) {\n        return function(e) {\n          var _ref;\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          if (xhr.readyState !== 4) {\n            return;\n          }\n          response = xhr.responseText;\n          if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n            try {\n              response = JSON.parse(response);\n            } catch (_error) {\n              e = _error;\n              response = \"Invalid JSON response from server.\";\n            }\n          }\n          updateProgress();\n          if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n            return handleError();\n          } else {\n            return _this._finished(files, response, e);\n          }\n        };\n      })(this);\n      xhr.onerror = (function(_this) {\n        return function() {\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          return handleError();\n        };\n      })(this);\n      progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n      progressObj.onprogress = updateProgress;\n      headers = {\n        \"Accept\": \"application/json\",\n        \"Cache-Control\": \"no-cache\",\n        \"X-Requested-With\": \"XMLHttpRequest\"\n      };\n      if (this.options.headers) {\n        extend(headers, this.options.headers);\n      }\n      for (headerName in headers) {\n        headerValue = headers[headerName];\n        if (headerValue) {\n          xhr.setRequestHeader(headerName, headerValue);\n        }\n      }\n      formData = new FormData();\n      if (this.options.params) {\n        _ref1 = this.options.params;\n        for (key in _ref1) {\n          value = _ref1[key];\n          formData.append(key, value);\n        }\n      }\n      for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n        file = files[_j];\n        this.emit(\"sending\", file, xhr, formData);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n      if (this.element.tagName === \"FORM\") {\n        _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n        for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n          input = _ref2[_k];\n          inputName = input.getAttribute(\"name\");\n          inputType = input.getAttribute(\"type\");\n          if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n            _ref3 = input.options;\n            for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n              option = _ref3[_l];\n              if (option.selected) {\n                formData.append(inputName, option.value);\n              }\n            }\n          } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n            formData.append(inputName, input.value);\n          }\n        }\n      }\n      for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n        formData.append(this._getParamName(i), files[i], files[i].name);\n      }\n      return this.submitRequest(xhr, formData, files);\n    };\n\n    Dropzone.prototype.submitRequest = function(xhr, formData, files) {\n      return xhr.send(formData);\n    };\n\n    Dropzone.prototype._finished = function(files, responseText, e) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.SUCCESS;\n        this.emit(\"success\", file, responseText, e);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"successmultiple\", files, responseText, e);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.ERROR;\n        this.emit(\"error\", file, message, xhr);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"errormultiple\", files, message, xhr);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    return Dropzone;\n\n  })(Emitter);\n\n  Dropzone.version = \"4.2.0\";\n\n  Dropzone.options = {};\n\n  Dropzone.optionsForElement = function(element) {\n    if (element.getAttribute(\"id\")) {\n      return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n    } else {\n      return void 0;\n    }\n  };\n\n  Dropzone.instances = [];\n\n  Dropzone.forElement = function(element) {\n    if (typeof element === \"string\") {\n      element = document.querySelector(element);\n    }\n    if ((element != null ? element.dropzone : void 0) == null) {\n      throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n    }\n    return element.dropzone;\n  };\n\n  Dropzone.autoDiscover = true;\n\n  Dropzone.discover = function() {\n    var checkElements, dropzone, dropzones, _i, _len, _results;\n    if (document.querySelectorAll) {\n      dropzones = document.querySelectorAll(\".dropzone\");\n    } else {\n      dropzones = [];\n      checkElements = function(elements) {\n        var el, _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )dropzone($| )/.test(el.className)) {\n            _results.push(dropzones.push(el));\n          } else {\n            _results.push(void 0);\n          }\n        }\n        return _results;\n      };\n      checkElements(document.getElementsByTagName(\"div\"));\n      checkElements(document.getElementsByTagName(\"form\"));\n    }\n    _results = [];\n    for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n      dropzone = dropzones[_i];\n      if (Dropzone.optionsForElement(dropzone) !== false) {\n        _results.push(new Dropzone(dropzone));\n      } else {\n        _results.push(void 0);\n      }\n    }\n    return _results;\n  };\n\n  Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\n  Dropzone.isBrowserSupported = function() {\n    var capableBrowser, regex, _i, _len, _ref;\n    capableBrowser = true;\n    if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n      if (!(\"classList\" in document.createElement(\"a\"))) {\n        capableBrowser = false;\n      } else {\n        _ref = Dropzone.blacklistedBrowsers;\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          regex = _ref[_i];\n          if (regex.test(navigator.userAgent)) {\n            capableBrowser = false;\n            continue;\n          }\n        }\n      }\n    } else {\n      capableBrowser = false;\n    }\n    return capableBrowser;\n  };\n\n  without = function(list, rejectedItem) {\n    var item, _i, _len, _results;\n    _results = [];\n    for (_i = 0, _len = list.length; _i < _len; _i++) {\n      item = list[_i];\n      if (item !== rejectedItem) {\n        _results.push(item);\n      }\n    }\n    return _results;\n  };\n\n  camelize = function(str) {\n    return str.replace(/[\\-_](\\w)/g, function(match) {\n      return match.charAt(1).toUpperCase();\n    });\n  };\n\n  Dropzone.createElement = function(string) {\n    var div;\n    div = document.createElement(\"div\");\n    div.innerHTML = string;\n    return div.childNodes[0];\n  };\n\n  Dropzone.elementInside = function(element, container) {\n    if (element === container) {\n      return true;\n    }\n    while (element = element.parentNode) {\n      if (element === container) {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  Dropzone.getElement = function(el, name) {\n    var element;\n    if (typeof el === \"string\") {\n      element = document.querySelector(el);\n    } else if (el.nodeType != null) {\n      element = el;\n    }\n    if (element == null) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n    }\n    return element;\n  };\n\n  Dropzone.getElements = function(els, name) {\n    var e, el, elements, _i, _j, _len, _len1, _ref;\n    if (els instanceof Array) {\n      elements = [];\n      try {\n        for (_i = 0, _len = els.length; _i < _len; _i++) {\n          el = els[_i];\n          elements.push(this.getElement(el, name));\n        }\n      } catch (_error) {\n        e = _error;\n        elements = null;\n      }\n    } else if (typeof els === \"string\") {\n      elements = [];\n      _ref = document.querySelectorAll(els);\n      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n        el = _ref[_j];\n        elements.push(el);\n      }\n    } else if (els.nodeType != null) {\n      elements = [els];\n    }\n    if (!((elements != null) && elements.length)) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n    }\n    return elements;\n  };\n\n  Dropzone.confirm = function(question, accepted, rejected) {\n    if (window.confirm(question)) {\n      return accepted();\n    } else if (rejected != null) {\n      return rejected();\n    }\n  };\n\n  Dropzone.isValidFile = function(file, acceptedFiles) {\n    var baseMimeType, mimeType, validType, _i, _len;\n    if (!acceptedFiles) {\n      return true;\n    }\n    acceptedFiles = acceptedFiles.split(\",\");\n    mimeType = file.type;\n    baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n    for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n      validType = acceptedFiles[_i];\n      validType = validType.trim();\n      if (validType.charAt(0) === \".\") {\n        if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n          return true;\n        }\n      } else if (/\\/\\*$/.test(validType)) {\n        if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n          return true;\n        }\n      } else {\n        if (mimeType === validType) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n\n  if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n    jQuery.fn.dropzone = function(options) {\n      return this.each(function() {\n        return new Dropzone(this, options);\n      });\n    };\n  }\n\n  if (typeof module !== \"undefined\" && module !== null) {\n    module.exports = Dropzone;\n  } else {\n    window.Dropzone = Dropzone;\n  }\n\n  Dropzone.ADDED = \"added\";\n\n  Dropzone.QUEUED = \"queued\";\n\n  Dropzone.ACCEPTED = Dropzone.QUEUED;\n\n  Dropzone.UPLOADING = \"uploading\";\n\n  Dropzone.PROCESSING = Dropzone.UPLOADING;\n\n  Dropzone.CANCELED = \"canceled\";\n\n  Dropzone.ERROR = \"error\";\n\n  Dropzone.SUCCESS = \"success\";\n\n\n  /*\n  \n  Bugfix for iOS 6 and 7\n  Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n  based on the work of https://github.com/stomita/ios-imagefile-megapixel\n   */\n\n  detectVerticalSquash = function(img) {\n    var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n    iw = img.naturalWidth;\n    ih = img.naturalHeight;\n    canvas = document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = ih;\n    ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(img, 0, 0);\n    data = ctx.getImageData(0, 0, 1, ih).data;\n    sy = 0;\n    ey = ih;\n    py = ih;\n    while (py > sy) {\n      alpha = data[(py - 1) * 4 + 3];\n      if (alpha === 0) {\n        ey = py;\n      } else {\n        sy = py;\n      }\n      py = (ey + sy) >> 1;\n    }\n    ratio = py / ih;\n    if (ratio === 0) {\n      return 1;\n    } else {\n      return ratio;\n    }\n  };\n\n  drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n    var vertSquashRatio;\n    vertSquashRatio = detectVerticalSquash(img);\n    return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n  };\n\n\n  /*\n   * contentloaded.js\n   *\n   * Author: Diego Perini (diego.perini at gmail.com)\n   * Summary: cross-browser wrapper for DOMContentLoaded\n   * Updated: 20101020\n   * License: MIT\n   * Version: 1.2\n   *\n   * URL:\n   * http://javascript.nwbox.com/ContentLoaded/\n   * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n   */\n\n  contentLoaded = function(win, fn) {\n    var add, doc, done, init, poll, pre, rem, root, top;\n    done = false;\n    top = true;\n    doc = win.document;\n    root = doc.documentElement;\n    add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n    rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n    pre = (doc.addEventListener ? \"\" : \"on\");\n    init = function(e) {\n      if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n        return;\n      }\n      (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n      if (!done && (done = true)) {\n        return fn.call(win, e.type || e);\n      }\n    };\n    poll = function() {\n      var e;\n      try {\n        root.doScroll(\"left\");\n      } catch (_error) {\n        e = _error;\n        setTimeout(poll, 50);\n        return;\n      }\n      return init(\"poll\");\n    };\n    if (doc.readyState !== \"complete\") {\n      if (doc.createEventObject && root.doScroll) {\n        try {\n          top = !win.frameElement;\n        } catch (_error) {}\n        if (top) {\n          poll();\n        }\n      }\n      doc[add](pre + \"DOMContentLoaded\", init, false);\n      doc[add](pre + \"readystatechange\", init, false);\n      return win[add](pre + \"load\", init, false);\n    }\n  };\n\n  Dropzone._autoDiscoverFunction = function() {\n    if (Dropzone.autoDiscover) {\n      return Dropzone.discover();\n    }\n  };\n\n  contentLoaded(window, Dropzone._autoDiscoverFunction);\n\n}).call(this);\n","import { isArray } from 'lodash';\nimport Visibility from 'visibilityjs';\nimport { QUERY_PARAM_START_CURSOR, QUERY_PARAM_END_CURSOR } from './constants';\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Environments/123. This method checks if the passed id follows that format\n *\n * @param {String|Number} id The id value\n * @returns {Boolean}\n */\nexport const isGid = (id) => {\n  if (typeof id === 'string' && id.startsWith('gid://gitlab/')) {\n    return true;\n  }\n\n  return false;\n};\n\nexport const parseGid = (gid) => {\n  const [type, id] = `${gid}`.replace(/gid:\\/\\/gitlab\\//g, '').split('/');\n  return { type, id };\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Environments/123. This method extracts Id number\n * from the Id path\n *\n * @param {String} gid GraphQL global ID\n * @returns {Number}\n */\nexport const getIdFromGraphQLId = (gid = '') => {\n  const rawId = isGid(gid) ? parseGid(gid).id : gid;\n  const id = parseInt(rawId, 10);\n  return Number.isInteger(id) ? id : null;\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Environments/123. This method extracts Type string\n * from the Id path\n *\n * @param {String} gid GraphQL global ID\n * @returns {String}\n */\nexport const getTypeFromGraphQLId = (gid = '') => {\n  if (!isGid(gid)) return null;\n\n  const { type } = parseGid(gid);\n  return type || null;\n};\n\nexport const mutationOperationMode = {\n  append: 'APPEND',\n  remove: 'REMOVE',\n  replace: 'REPLACE',\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Groups/123. This method takes a type and an id\n * and interpolates the 2 values into the expected GraphQL ID format.\n *\n * @param {String} type The entity type\n * @param {String|Number} id The id value\n * @returns {String}\n */\nexport const convertToGraphQLId = (type, id) => {\n  if (typeof type !== 'string') {\n    throw new TypeError(`type must be a string; got ${typeof type}`);\n  }\n\n  if (!['number', 'string'].includes(typeof id)) {\n    throw new TypeError(`id must be a number or string; got ${typeof id}`);\n  }\n\n  if (isGid(id)) {\n    return id;\n  }\n\n  return `gid://gitlab/${type}/${id}`;\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Groups/123. This method takes a type and an\n * array of ids and tranforms the array values into the expected\n * GraphQL ID format.\n *\n * @param {String} type The entity type\n * @param {Array} ids An array of id values\n * @returns {Array}\n */\nexport const convertToGraphQLIds = (type, ids) => ids.map((id) => convertToGraphQLId(type, id));\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Groups/123. This method takes an array of\n * GraphQL Ids and converts them to a number.\n *\n * @param {Array} ids An array of GraphQL IDs\n * @returns {Array}\n */\nexport const convertFromGraphQLIds = (ids) => {\n  if (!isArray(ids)) {\n    throw new TypeError(`ids must be an array; got ${typeof ids}`);\n  }\n\n  return ids.map((id) => getIdFromGraphQLId(id));\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Groups/123. This method takes an array of nodes\n * and converts the `id` properties from a GraphQL Id to a number.\n *\n * @param {Array} nodes An array of nodes with an `id` property\n * @returns {Array}\n */\nexport const convertNodeIdsFromGraphQLIds = (nodes) => {\n  if (!isArray(nodes)) {\n    throw new TypeError(`nodes must be an array; got ${typeof nodes}`);\n  }\n\n  return nodes.map((node) => (node.id ? { ...node, id: getIdFromGraphQLId(node.id) } : node));\n};\n\n/**\n * This function takes a GraphQL query data as a required argument and\n * the field name to resolve as an optional argument\n * and returns resolved field's data or an empty array\n * @param {Object} queryData\n * @param {String} nodesField (in most cases it will be 'nodes')\n * @returns {Array}\n */\nexport const getNodesOrDefault = (queryData, nodesField = 'nodes') => {\n  return queryData?.[nodesField] ?? [];\n};\n\nexport const toggleQueryPollingByVisibility = (queryRef, interval = 10000) => {\n  const stopStartQuery = (query) => {\n    if (!Visibility.hidden()) {\n      query.startPolling(interval);\n    } else {\n      query.stopPolling();\n    }\n  };\n\n  stopStartQuery(queryRef);\n  Visibility.change(stopStartQuery.bind(null, queryRef));\n};\n\nexport const etagQueryHeaders = (featureCorrelation, etagResource = '') => {\n  return {\n    fetchOptions: {\n      method: 'GET',\n    },\n    headers: {\n      'X-GITLAB-GRAPHQL-FEATURE-CORRELATION': featureCorrelation,\n      'X-GITLAB-GRAPHQL-RESOURCE-ETAG': etagResource,\n      'X-Requested-With': 'XMLHttpRequest',\n    },\n  };\n};\n\nexport const calculateGraphQLPaginationQueryParams = ({\n  startCursor,\n  endCursor,\n  routeQuery: { start_cursor, end_cursor, ...routeQuery },\n}) => {\n  if (startCursor) {\n    return {\n      ...routeQuery,\n      [QUERY_PARAM_START_CURSOR]: startCursor,\n    };\n  }\n\n  if (endCursor) {\n    return {\n      ...routeQuery,\n      [QUERY_PARAM_END_CURSOR]: endCursor,\n    };\n  }\n\n  return routeQuery;\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar charAt = require('../internals/string-multibyte').charAt;\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\n// `String.prototype.at` method\n// https://github.com/mathiasbynens/String.prototype.at\n$({ target: 'String', proto: true, forced: true }, {\n  at: function at(index) {\n    var S = toString(requireObjectCoercible(this));\n    var len = S.length;\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : charAt(S, k);\n  }\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isButtonTrigger)?_c('gl-button',_vm._b({attrs:{\"variant\":_vm.variant,\"category\":_vm.category,\"icon\":_vm.icon},on:{\"click\":_vm.openModal}},'gl-button',_vm.componentAttributes,false),[_vm._v(\"\\n  \"+_vm._s(_vm.displayText)+\"\\n\")]):(_vm.isWithEmojiTrigger)?_c('gl-link',_vm._b({on:{\"click\":_vm.openModal}},'gl-link',_vm.componentAttributes,false),[_vm._v(\"\\n  \"+_vm._s(_vm.displayText)+\"\\n  \"),_c('gl-emoji',{staticClass:\"gl-mr-1 gl-align-baseline gl-text-size-reset\",attrs:{\"data-name\":_vm.icon}})],1):(_vm.isDropdownWithEmojiTrigger)?_c('gl-dropdown-item',_vm._b({on:{\"click\":_vm.openModal}},'gl-dropdown-item',_vm.componentAttributes,false),[_vm._v(\"\\n  \"+_vm._s(_vm.displayText)+\"\\n  \"),_c('gl-emoji',{staticClass:\"gl-mr-1 gl-align-baseline gl-text-size-reset\",attrs:{\"data-name\":_vm.icon}})],1):(_vm.isDisclosureTrigger)?_c('gl-disclosure-dropdown-item',_vm._b({attrs:{\"item\":_vm.item},on:{\"action\":_vm.handleDisclosureDropdownAction}},'gl-disclosure-dropdown-item',_vm.componentAttributes,false)):_c('gl-link',_vm._b({attrs:{\"data-is-link\":\"true\"},on:{\"click\":_vm.openModal}},'gl-link',_vm.componentAttributes,false),[_vm._v(\"\\n  \"+_vm._s(_vm.displayText)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./invite_members_trigger.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./invite_members_trigger.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLink, GlDropdownItem, GlDisclosureDropdownItem } from '@gitlab/ui';\nimport { s__ } from '~/locale';\nimport eventHub from '../event_hub';\nimport {\n  TRIGGER_ELEMENT_BUTTON,\n  TRIGGER_ELEMENT_WITH_EMOJI,\n  TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI,\n  TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN,\n} from '../constants';\n\nexport default {\n  components: { GlButton, GlLink, GlDropdownItem, GlDisclosureDropdownItem },\n  props: {\n    displayText: {\n      type: String,\n      required: false,\n      default: s__('InviteMembers|Invite team members'),\n    },\n    icon: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    classes: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    variant: {\n      type: String,\n      required: false,\n      default: undefined,\n    },\n    category: {\n      type: String,\n      required: false,\n      default: undefined,\n    },\n    triggerSource: {\n      type: String,\n      required: true,\n    },\n    triggerElement: {\n      type: String,\n      required: false,\n      default: 'button',\n    },\n  },\n  computed: {\n    componentAttributes() {\n      return {\n        class: this.classes,\n        'data-testid': 'invite-members-button',\n      };\n    },\n    item() {\n      return { text: this.displayText };\n    },\n    isButtonTrigger() {\n      return this.triggerElement === TRIGGER_ELEMENT_BUTTON;\n    },\n    isWithEmojiTrigger() {\n      return this.triggerElement === TRIGGER_ELEMENT_WITH_EMOJI;\n    },\n    isDropdownWithEmojiTrigger() {\n      return this.triggerElement === TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI;\n    },\n    isDisclosureTrigger() {\n      return this.triggerElement === TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN;\n    },\n  },\n  methods: {\n    openModal() {\n      eventHub.$emit('openModal', { source: this.triggerSource });\n    },\n    handleDisclosureDropdownAction() {\n      this.openModal();\n      this.$emit('modal-opened');\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-button\n    v-if=\"isButtonTrigger\"\n    v-bind=\"componentAttributes\"\n    :variant=\"variant\"\n    :category=\"category\"\n    :icon=\"icon\"\n    @click=\"openModal\"\n  >\n    {{ displayText }}\n  </gl-button>\n  <gl-link v-else-if=\"isWithEmojiTrigger\" v-bind=\"componentAttributes\" @click=\"openModal\">\n    {{ displayText }}\n    <gl-emoji class=\"gl-mr-1 gl-align-baseline gl-text-size-reset\" :data-name=\"icon\" />\n  </gl-link>\n  <gl-dropdown-item\n    v-else-if=\"isDropdownWithEmojiTrigger\"\n    v-bind=\"componentAttributes\"\n    @click=\"openModal\"\n  >\n    {{ displayText }}\n    <gl-emoji class=\"gl-mr-1 gl-align-baseline gl-text-size-reset\" :data-name=\"icon\" />\n  </gl-dropdown-item>\n  <gl-disclosure-dropdown-item\n    v-else-if=\"isDisclosureTrigger\"\n    v-bind=\"componentAttributes\"\n    :item=\"item\"\n    @action=\"handleDisclosureDropdownAction\"\n  />\n  <gl-link v-else v-bind=\"componentAttributes\" data-is-link=\"true\" @click=\"openModal\">\n    {{ displayText }}\n  </gl-link>\n</template>\n","import { render, staticRenderFns } from \"./invite_members_trigger.vue?vue&type=template&id=cb0ec660\"\nimport script from \"./invite_members_trigger.vue?vue&type=script&lang=js\"\nexport * from \"./invite_members_trigger.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike'),\n    isPlainObject = require('./isPlainObject');\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n    errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n  if (!isObjectLike(value)) {\n    return false;\n  }\n  var tag = baseGetTag(value);\n  return tag == errorTag || tag == domExcTag ||\n    (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nmodule.exports = isError;\n","import isEmpty from 'lodash/isEmpty';\nimport { maxZIndex, drawerVariants } from '../../../utils/constants';\nimport GlButton from '../button/button';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n  name: 'GlDrawer',\n  components: {\n    GlButton\n  },\n  props: {\n    open: {\n      type: Boolean,\n      required: true\n    },\n    headerHeight: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    headerSticky: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    zIndex: {\n      type: Number,\n      required: false,\n      default: maxZIndex\n    },\n    variant: {\n      type: String,\n      required: false,\n      default: drawerVariants.default,\n      validator: value => Object.keys(drawerVariants).includes(value)\n    }\n  },\n  computed: {\n    positionFromTop() {\n      return !isEmpty(this.headerHeight) ? this.headerHeight : 0;\n    },\n    drawerStyles() {\n      const styles = {\n        top: this.positionFromTop,\n        zIndex: this.zIndex\n      };\n      if (this.positionFromTop) {\n        styles.maxHeight = `calc(100vh - ${this.positionFromTop})`;\n      }\n      return styles;\n    },\n    drawerHeaderStyles() {\n      return {\n        zIndex: this.headerSticky ? maxZIndex : null\n      };\n    },\n    shouldRenderFooter() {\n      // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n      return Boolean(this.$slots.footer);\n    },\n    variantClass() {\n      // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n      return `gl-drawer-${this.variant}`;\n    }\n  },\n  watch: {\n    open: {\n      immediate: true,\n      handler(open) {\n        if (open) {\n          document.addEventListener('keydown', this.handleEscape);\n        } else {\n          document.removeEventListener('keydown', this.handleEscape);\n        }\n      }\n    }\n  },\n  beforeDestroy() {\n    document.removeEventListener('keydown', this.handleEscape);\n  },\n  methods: {\n    emitOpened() {\n      /**\n       * Emits when the opening animation has finished.\n       * @event opened\n       */\n      this.$emit('opened');\n    },\n    handleEscape(e) {\n      const ESC = 27;\n      if (this.open && e.keyCode === ESC) {\n        this.$emit('close');\n      }\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"gl-drawer\"},on:{\"after-enter\":_vm.emitOpened}},[(_vm.open)?_c('aside',{staticClass:\"gl-drawer\",class:_vm.variantClass,style:(_vm.drawerStyles)},[_c('div',{staticClass:\"gl-drawer-header\",class:{ 'gl-drawer-header-sticky': _vm.headerSticky },style:(_vm.drawerHeaderStyles)},[_c('div',{staticClass:\"gl-drawer-title\"},[_vm._t(\"title\"),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-drawer-close-button\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"close\",\"aria-label\":\"Close drawer\"},on:{\"click\":function($event){return _vm.$emit('close')}}})],2),_vm._v(\" \"),_vm._t(\"header\")],2),_vm._v(\" \"),_c('div',{staticClass:\"gl-drawer-body\",class:{ 'gl-drawer-body-scrim': !_vm.shouldRenderFooter }},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.shouldRenderFooter)?_c('div',{staticClass:\"gl-drawer-footer gl-drawer-footer-sticky\",class:{ 'gl-drawer-body-scrim-on-footer': _vm.shouldRenderFooter },style:({ zIndex: _vm.zIndex })},[_vm._t(\"footer\")],2):_vm._e()]):_vm._e()])};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n",";(function (window) {\n    \"use strict\";\n\n    var lastTimer = -1;\n\n    var install = function (Visibility) {\n\n        // Run callback every `interval` milliseconds if page is visible and\n        // every `hiddenInterval` milliseconds if page is hidden.\n        //\n        //   Visibility.every(60 * 1000, 5 * 60 * 1000, function () {\n        //       checkNewMails();\n        //   });\n        //\n        // You can skip `hiddenInterval` and callback will be called only if\n        // page is visible.\n        //\n        //   Visibility.every(1000, function () {\n        //       updateCountdown();\n        //   });\n        //\n        // It is analog of `setInterval(callback, interval)` but use visibility\n        // state.\n        //\n        // It return timer ID, that you can use in `Visibility.stop(id)` to stop\n        // timer (`clearInterval` analog).\n        // Warning: timer ID is different from interval ID from `setInterval`,\n        // so don’t use it in `clearInterval`.\n        //\n        // On change state from hidden to visible timers will be execute.\n        Visibility.every = function (interval, hiddenInterval, callback) {\n            Visibility._time();\n\n            if ( !callback ) {\n                callback = hiddenInterval;\n                hiddenInterval = null;\n            }\n\n            lastTimer += 1;\n            var number = lastTimer;\n\n            Visibility._timers[number] = {\n                visible:  interval,\n                hidden:   hiddenInterval,\n                callback: callback\n            };\n            Visibility._run(number, false);\n\n            if ( Visibility.isSupported() ) {\n                Visibility._listen();\n            }\n            return number;\n        };\n\n        // Stop timer from `every` method by it ID (`every` method return it).\n        //\n        //   slideshow = Visibility.every(5 * 1000, function () {\n        //       changeSlide();\n        //   });\n        //   $('.stopSlideshow').click(function () {\n        //       Visibility.stop(slideshow);\n        //   });\n        Visibility.stop = function(id) {\n            if ( !Visibility._timers[id] ) {\n                return false;\n            }\n            Visibility._stop(id);\n            delete Visibility._timers[id];\n            return true;\n        };\n\n        // Callbacks and intervals added by `every` method.\n        Visibility._timers = { };\n\n        // Initialize variables on page loading.\n        Visibility._time = function () {\n            if ( Visibility._timed ) {\n                return;\n            }\n            Visibility._timed     = true;\n            Visibility._wasHidden = Visibility.hidden();\n\n            Visibility.change(function () {\n                Visibility._stopRun();\n                Visibility._wasHidden = Visibility.hidden();\n            });\n        };\n\n        // Try to run timer from every method by it’s ID. It will be use\n        // `interval` or `hiddenInterval` depending on visibility state.\n        // If page is hidden and `hiddenInterval` is null,\n        // it will not run timer.\n        //\n        // Argument `runNow` say, that timers must be execute now too.\n        Visibility._run = function (id, runNow) {\n            var interval,\n                timer = Visibility._timers[id];\n\n            if ( Visibility.hidden() ) {\n                if ( null === timer.hidden ) {\n                    return;\n                }\n                interval = timer.hidden;\n            } else {\n                interval = timer.visible;\n            }\n\n            var runner = function () {\n                timer.last = new Date();\n                timer.callback.call(window);\n            }\n\n            if ( runNow ) {\n                var now  = new Date();\n                var last = now - timer.last ;\n\n                if ( interval > last ) {\n                    timer.delay = setTimeout(function () {\n                        timer.id = setInterval(runner, interval);\n                        runner();\n                    }, interval - last);\n                } else {\n                    timer.id = setInterval(runner, interval);\n                    runner();\n                }\n\n            } else {\n              timer.id = setInterval(runner, interval);\n            }\n        };\n\n        // Stop timer from `every` method by it’s ID.\n        Visibility._stop = function (id) {\n            var timer = Visibility._timers[id];\n            clearInterval(timer.id);\n            clearTimeout(timer.delay);\n            delete timer.id;\n            delete timer.delay;\n        };\n\n        // Listener for `visibilitychange` event.\n        Visibility._stopRun = function (event) {\n            var isHidden  = Visibility.hidden(),\n                wasHidden = Visibility._wasHidden;\n\n            if ( (isHidden && !wasHidden) || (!isHidden && wasHidden) ) {\n                for ( var i in Visibility._timers ) {\n                    Visibility._stop(i);\n                    Visibility._run(i, !isHidden);\n                }\n            }\n        };\n\n        return Visibility;\n    }\n\n    if ( typeof(module) != 'undefined' && module.exports ) {\n        module.exports = install(require('./visibility.core'));\n    } else {\n        install(window.Visibility)\n    }\n\n})(window);\n","import $ from 'jquery';\nimport 'deckar01-task_list';\nimport { __ } from '~/locale';\nimport { createAlert } from '~/alert';\nimport { TYPE_INCIDENT, TYPE_ISSUE } from '~/issues/constants';\nimport axios from './lib/utils/axios_utils';\n\nexport default class TaskList {\n  constructor(options = {}) {\n    this.selector = options.selector;\n    this.dataType = options.dataType;\n    this.fieldName = options.fieldName;\n    this.lockVersion = options.lockVersion;\n    this.taskListContainerSelector = `${this.selector} .js-task-list-container`;\n    this.updateHandler = this.update.bind(this);\n    this.onUpdate = options.onUpdate || (() => {});\n    this.onSuccess = options.onSuccess || (() => {});\n    this.onError =\n      options.onError ||\n      function showFlash(e) {\n        let errorMessages = '';\n\n        if (e.response.data && typeof e.response.data === 'object') {\n          errorMessages = e.response.data.errors.join(' ');\n        }\n\n        return createAlert({\n          message: errorMessages || __('Update failed'),\n        });\n      };\n\n    this.init();\n  }\n\n  init() {\n    this.disable(); // Prevent duplicate event bindings\n\n    const taskListFields = document.querySelectorAll(\n      `${this.taskListContainerSelector} .js-task-list-field[data-value]`,\n    );\n\n    taskListFields.forEach((taskListField) => {\n      // eslint-disable-next-line no-param-reassign\n      taskListField.value = taskListField.dataset.value;\n    });\n\n    this.enable();\n  }\n\n  getTaskListTarget(e) {\n    return e && e.currentTarget ? $(e.currentTarget) : $(this.taskListContainerSelector);\n  }\n\n  // Disable any task items that don't have a data-sourcepos attribute, on the\n  // assumption that if it doesn't then it wasn't generated from our markdown parser.\n  // This covers the case of markdown not being able to handle task lists inside\n  // markdown tables. It also includes hand coded HTML lists.\n  disableNonMarkdownTaskListItems(e) {\n    this.getTaskListTarget(e)\n      .find('.task-list-item')\n      .not('[data-sourcepos]')\n      .find('.task-list-item-checkbox')\n      .prop('disabled', true);\n  }\n\n  updateInapplicableTaskListItems(e) {\n    this.getTaskListTarget(e)\n      .find('.task-list-item-checkbox[data-inapplicable]')\n      .prop('disabled', true);\n  }\n\n  disableTaskListItems(e) {\n    this.getTaskListTarget(e).taskList('disable');\n    this.updateInapplicableTaskListItems();\n  }\n\n  enableTaskListItems(e) {\n    this.getTaskListTarget(e).taskList('enable');\n    this.disableNonMarkdownTaskListItems(e);\n    this.updateInapplicableTaskListItems(e);\n  }\n\n  enable() {\n    this.enableTaskListItems();\n    $(document).on('tasklist:changed', this.taskListContainerSelector, this.updateHandler);\n  }\n\n  disable() {\n    this.disableTaskListItems();\n    $(document).off('tasklist:changed', this.taskListContainerSelector);\n  }\n\n  update(e) {\n    const $target = $(e.target);\n    const { index, checked, lineNumber, lineSource } = e.detail;\n    const patchData = {};\n\n    const dataType = this.dataType === TYPE_INCIDENT ? TYPE_ISSUE : this.dataType;\n    patchData[dataType] = {\n      [this.fieldName]: $target.val(),\n      lock_version: this.lockVersion,\n      update_task: {\n        index,\n        checked,\n        line_number: lineNumber,\n        line_source: lineSource,\n      },\n    };\n\n    this.onUpdate();\n    this.disableTaskListItems(e);\n\n    return axios\n      .patch($target.data('updateUrl') || $('form.js-issuable-update').attr('action'), patchData)\n      .then(({ data }) => {\n        this.lockVersion = data.lock_version;\n        this.enableTaskListItems(e);\n\n        return this.onSuccess(data);\n      })\n      .catch(({ response }) => {\n        this.enableTaskListItems(e);\n\n        return this.onError(response.data);\n      });\n  }\n}\n","var baseEach = require('./_baseEach'),\n    isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n  var index = -1,\n      result = isArrayLike(collection) ? Array(collection.length) : [];\n\n  baseEach(collection, function(value, key, collection) {\n    result[++index] = iteratee(value, key, collection);\n  });\n  return result;\n}\n\nmodule.exports = baseMap;\n","var baseFlatten = require('./_baseFlatten'),\n    baseOrderBy = require('./_baseOrderBy'),\n    baseRest = require('./_baseRest'),\n    isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n *  The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n *   { 'user': 'fred',   'age': 48 },\n *   { 'user': 'barney', 'age': 36 },\n *   { 'user': 'fred',   'age': 30 },\n *   { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n  if (collection == null) {\n    return [];\n  }\n  var length = iteratees.length;\n  if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n    iteratees = [];\n  } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n    iteratees = [iteratees[0]];\n  }\n  return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * adds a pause and unpause method to Mousetrap\n * this allows you to enable or disable keyboard shortcuts\n * without having to reset Mousetrap and rebind everything\n */\n/* global Mousetrap:true */\n(function(Mousetrap) {\n    var _originalStopCallback = Mousetrap.prototype.stopCallback;\n\n    Mousetrap.prototype.stopCallback = function(e, element, combo) {\n        var self = this;\n\n        if (self.paused) {\n            return true;\n        }\n\n        return _originalStopCallback.call(self, e, element, combo);\n    };\n\n    Mousetrap.prototype.pause = function() {\n        var self = this;\n        self.paused = true;\n    };\n\n    Mousetrap.prototype.unpause = function() {\n        var self = this;\n        self.paused = false;\n    };\n\n    Mousetrap.init();\n}) (Mousetrap);\n","var toString = require('./toString');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n    reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n  string = toString(string);\n  return (string && reHasRegExpChar.test(string))\n    ? string.replace(reRegExpChar, '\\\\$&')\n    : string;\n}\n\nmodule.exports = escapeRegExp;\n","import { s__ } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\n\nexport const PROJECT_SELECT_LABEL_ID = 'project-select';\nexport const SEARCH_DELAY = 200;\nexport const VALID_TOKEN_BACKGROUND = 'gl-bg-green-100';\nexport const WARNING_TOKEN_BACKGROUND = 'gl-bg-orange-100';\nexport const INVALID_TOKEN_BACKGROUND = 'gl-bg-red-100';\nexport const TOAST_MESSAGE_LOCALSTORAGE_KEY = 'members_invited_successfully';\nexport const MEMBERS_WITH_QUEUED_STATUS_LOCALSTORAGE_KEY = 'members_queued_successfully';\n\nexport const GROUP_FILTERS = {\n  ALL: 'all',\n  DESCENDANT_GROUPS: 'descendant_groups',\n};\n\nexport const USERS_FILTER_ALL = 'all';\nexport const USERS_FILTER_SAML_PROVIDER_ID = 'saml_provider_id';\nexport const TRIGGER_ELEMENT_BUTTON = 'button';\nexport const TOP_NAV_INVITE_MEMBERS_COMPONENT = 'invite_members';\nexport const TRIGGER_ELEMENT_WITH_EMOJI = 'text-emoji';\nexport const TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI = 'dropdown-text-emoji';\nexport const TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN = 'dropdown-text';\nexport const INVITE_MEMBER_MODAL_TRACKING_CATEGORY = 'invite_members_modal';\nexport const IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_CATEGORY = 'invite_project_members_modal';\nexport const IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_LABEL = 'project-members-page';\nexport const MEMBERS_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite members');\nexport const MEMBERS_MODAL_CELEBRATE_TITLE = s__(\n  'InviteMembersModal|GitLab is better with colleagues!',\n);\nexport const MEMBERS_MODAL_CELEBRATE_INTRO = s__(\n  'InviteMembersModal|How about inviting a colleague or two to join you?',\n);\nexport const MEMBERS_TO_GROUP_DEFAULT_INTRO_TEXT = s__(\n  \"InviteMembersModal|You're inviting members to the %{strongStart}%{name}%{strongEnd} group.\",\n);\n\nexport const MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT = s__(\n  \"InviteMembersModal|You're inviting members to the %{strongStart}%{name}%{strongEnd} project.\",\n);\nexport const MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT = s__(\n  \"InviteMembersModal|Congratulations on creating your project, you're almost there!\",\n);\nexport const MEMBERS_SEARCH_FIELD = s__('InviteMembersModal|Username, name or email address');\nexport const MEMBERS_PLACEHOLDER = s__(\n  'InviteMembersModal|Select from GitLab usernames or enter email addresses',\n);\n\nexport const GROUP_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite a group');\nexport const GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT = s__(\n  \"InviteMembersModal|You're inviting a group to the %{strongStart}%{name}%{strongEnd} group.\",\n);\nexport const GROUP_MODAL_TO_PROJECT_DEFAULT_INTRO_TEXT = s__(\n  \"InviteMembersModal|You're inviting a group to the %{strongStart}%{name}%{strongEnd} project.\",\n);\n\nexport const GROUP_MODAL_TO_GROUP_ALERT_BODY = s__(\n  'InviteMembersModal|Inviting a group %{linkStart}adds its members to your group%{linkEnd}, including members who join after the invite. This might put your group over the free %{count} user limit.',\n);\nexport const GROUP_MODAL_TO_GROUP_ALERT_LINK = helpPagePath(\n  'user/project/members/sharing_projects_groups',\n  {\n    anchor: 'invite-a-group-to-a-group',\n  },\n);\nexport const GROUP_MODAL_TO_PROJECT_ALERT_BODY = s__(\n  'InviteMembersModal|Inviting a group %{linkStart}adds its members to your project%{linkEnd}, including members who join after the invite. This might put your group over the free %{count} user limit.',\n);\nexport const GROUP_MODAL_TO_PROJECT_ALERT_LINK = helpPagePath(\n  'user/project/members/sharing_projects_groups',\n  {\n    anchor: 'invite-a-group-to-a-project',\n  },\n);\n\nexport const GROUP_SEARCH_FIELD = s__('InviteMembersModal|Select a group to invite');\nexport const GROUP_PLACEHOLDER = s__('InviteMembersModal|Search for a group to invite');\n\nexport const ACCESS_LEVEL = s__('InviteMembersModal|Select maximum role');\nexport const ACCESS_EXPIRE_DATE = s__('InviteMembersModal|Access expiration date (optional)');\nexport const TOAST_MESSAGE_SUCCESSFUL = s__('InviteMembersModal|Members were successfully added.');\nexport const QUEUED_MESSAGE_SUCCESSFUL = s__(\n  'InviteMembersModal|Some invitations have been queued for administrator approval.',\n);\nexport const INVALID_FEEDBACK_MESSAGE_DEFAULT = s__('InviteMembersModal|Something went wrong');\nexport const READ_MORE_TEXT = s__(\n  `InviteMembersModal|%{linkStart}Read more%{linkEnd} about role permissions. You can change this later. Invited members are limited to this role or their current group role, whichever is lower.`,\n);\nexport const READ_MORE_ACCESS_EXPIRATION_TEXT = s__(\n  `InviteMembersModal|%{linkStart}Read more%{linkEnd} about access expiration`,\n);\nexport const INVITE_BUTTON_TEXT = s__('InviteMembersModal|Invite');\nexport const INVITE_BUTTON_TEXT_DISABLED = s__('InviteMembersModal|Manage members');\nexport const CANCEL_BUTTON_TEXT = s__('InviteMembersModal|Cancel');\nexport const HEADER_CLOSE_LABEL = s__('InviteMembersModal|Close invite team members');\nexport const MEMBER_ERROR_LIST_TEXT = s__(\n  'InviteMembersModal|Review the invite errors and try again:',\n);\nexport const COLLAPSED_ERRORS = s__('InviteMembersModal|Show more (%{count})');\nexport const EXPANDED_ERRORS = s__('InviteMembersModal|Show less');\nexport const EMPTY_INVITES_ALERT_TEXT = s__('InviteMembersModal|Please add members to invite');\n\nexport const MEMBER_MODAL_LABELS = {\n  modal: {\n    default: {\n      title: MEMBERS_MODAL_DEFAULT_TITLE,\n    },\n    celebrate: {\n      title: MEMBERS_MODAL_CELEBRATE_TITLE,\n      intro: MEMBERS_MODAL_CELEBRATE_INTRO,\n    },\n  },\n  toGroup: {\n    default: {\n      introText: MEMBERS_TO_GROUP_DEFAULT_INTRO_TEXT,\n    },\n  },\n  toProject: {\n    default: {\n      introText: MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT,\n    },\n    celebrate: {\n      introText: MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT,\n    },\n  },\n  searchField: MEMBERS_SEARCH_FIELD,\n  placeHolder: MEMBERS_PLACEHOLDER,\n  toastMessageSuccessful: TOAST_MESSAGE_SUCCESSFUL,\n  memberErrorListText: MEMBER_ERROR_LIST_TEXT,\n  collapsedErrors: COLLAPSED_ERRORS,\n  expandedErrors: EXPANDED_ERRORS,\n  emptyInvitesAlertText: EMPTY_INVITES_ALERT_TEXT,\n};\n\nexport const GROUP_MODAL_LABELS = {\n  title: GROUP_MODAL_DEFAULT_TITLE,\n  toGroup: {\n    introText: GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT,\n    notificationText: GROUP_MODAL_TO_GROUP_ALERT_BODY,\n    notificationLink: GROUP_MODAL_TO_GROUP_ALERT_LINK,\n  },\n  toProject: {\n    introText: GROUP_MODAL_TO_PROJECT_DEFAULT_INTRO_TEXT,\n    notificationText: GROUP_MODAL_TO_PROJECT_ALERT_BODY,\n    notificationLink: GROUP_MODAL_TO_PROJECT_ALERT_LINK,\n  },\n  searchField: GROUP_SEARCH_FIELD,\n  placeHolder: GROUP_PLACEHOLDER,\n  toastMessageSuccessful: TOAST_MESSAGE_SUCCESSFUL,\n};\n\nexport const ON_SHOW_TRACK_LABEL = 'over_limit_modal_viewed';\nexport const ON_CELEBRATION_TRACK_LABEL = 'invite_celebration_modal';\n\nexport const WARNING_ALERT_TITLE = s__(\n  'InviteMembersModal|You only have space for %{count} more %{members} in %{name}',\n);\nexport const DANGER_ALERT_TITLE = s__(\n  \"InviteMembersModal|You've reached your %{count} %{members} limit for %{name}\",\n);\n\nexport const REACHED_LIMIT_VARIANT = 'reached';\nexport const CLOSE_TO_LIMIT_VARIANT = 'close';\n\nexport const REACHED_LIMIT_MESSAGE = s__(\n  'InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects.',\n);\n\nexport const REACHED_LIMIT_UPGRADE_SUGGESTION_MESSAGE = REACHED_LIMIT_MESSAGE.concat(\n  s__(\n    'InviteMembersModal| To get more members, the owner of this top-level group can %{trialLinkStart}start a trial%{trialLinkEnd} or %{upgradeLinkStart}upgrade%{upgradeLinkEnd} to a paid tier.',\n  ),\n);\n\nexport const CLOSE_TO_LIMIT_MESSAGE = s__(\n  'InviteMembersModal|To get more members an owner of the group can %{trialLinkStart}start a trial%{trialLinkEnd} or %{upgradeLinkStart}upgrade%{upgradeLinkEnd} to a paid tier.',\n);\nexport const BLOCKED_SEAT_OVERAGES_BODY = s__(\n  'InviteMembersModal|You must purchase more seats for your subscription before this amount of users can be added.',\n);\nexport const BLOCKED_SEAT_OVERAGES_CTA = s__('InviteMembersModal|Purchase more seats');\nexport const BLOCKED_SEAT_OVERAGES_CTA_DOCS = s__('InviteMembersModal|Learn how to add seats');\nexport const BLOCKED_SEAT_OVERAGES_ERROR_REASON = 'seat_limit_exceeded_error';\n",";(function (global) {\n    \"use strict\";\n\n    var lastId = -1;\n\n    // Visibility.js allow you to know, that your web page is in the background\n    // tab and thus not visible to the user. This library is wrap under\n    // Page Visibility API. It fix problems with different vendor prefixes and\n    // add high-level useful functions.\n    var self = {\n\n        // Call callback only when page become to visible for user or\n        // call it now if page is visible now or Page Visibility API\n        // doesn’t supported.\n        //\n        // Return false if API isn’t supported, true if page is already visible\n        // or listener ID (you can use it in `unbind` method) if page isn’t\n        // visible now.\n        //\n        //   Visibility.onVisible(function () {\n        //       startIntroAnimation();\n        //   });\n        onVisible: function (callback) {\n            var support = self.isSupported();\n            if ( !support || !self.hidden() ) {\n                callback();\n                return support;\n            }\n\n            var listener = self.change(function (e, state) {\n                if ( !self.hidden() ) {\n                    self.unbind(listener);\n                    callback();\n                }\n            });\n            return listener;\n        },\n\n        // Call callback when visibility will be changed. First argument for\n        // callback will be original event object, second will be visibility\n        // state name.\n        //\n        // Return listener ID to unbind listener by `unbind` method.\n        //\n        // If Page Visibility API doesn’t supported method will be return false\n        // and callback never will be called.\n        //\n        //   Visibility.change(function(e, state) {\n        //       Statistics.visibilityChange(state);\n        //   });\n        //\n        // It is just proxy to `visibilitychange` event, but use vendor prefix.\n        change: function (callback) {\n            if ( !self.isSupported() ) {\n                return false;\n            }\n            lastId += 1;\n            var number = lastId;\n            self._callbacks[number] = callback;\n            self._listen();\n            return number;\n        },\n\n        // Remove `change` listener by it ID.\n        //\n        //   var id = Visibility.change(function(e, state) {\n        //       firstChangeCallback();\n        //       Visibility.unbind(id);\n        //   });\n        unbind: function (id) {\n            delete self._callbacks[id];\n        },\n\n        // Call `callback` in any state, expect “prerender”. If current state\n        // is “prerender” it will wait until state will be changed.\n        // If Page Visibility API doesn’t supported, it will call `callback`\n        // immediately.\n        //\n        // Return false if API isn’t supported, true if page is already after\n        // prerendering or listener ID (you can use it in `unbind` method)\n        // if page is prerended now.\n        //\n        //   Visibility.afterPrerendering(function () {\n        //       Statistics.countVisitor();\n        //   });\n        afterPrerendering: function (callback) {\n            var support   = self.isSupported();\n            var prerender = 'prerender';\n\n            if ( !support || prerender != self.state() ) {\n                callback();\n                return support;\n            }\n\n            var listener = self.change(function (e, state) {\n                if ( prerender != state ) {\n                    self.unbind(listener);\n                    callback();\n                }\n            });\n            return listener;\n        },\n\n        // Return true if page now isn’t visible to user.\n        //\n        //   if ( !Visibility.hidden() ) {\n        //       VideoPlayer.play();\n        //   }\n        //\n        // It is just proxy to `document.hidden`, but use vendor prefix.\n        hidden: function () {\n            return !!(self._doc.hidden || self._doc.webkitHidden);\n        },\n\n        // Return visibility state: 'visible', 'hidden' or 'prerender'.\n        //\n        //   if ( 'prerender' == Visibility.state() ) {\n        //       Statistics.pageIsPrerendering();\n        //   }\n        //\n        // Don’t use `Visibility.state()` to detect, is page visible, because\n        // visibility states can extend in next API versions.\n        // Use more simpler and general `Visibility.hidden()` for this cases.\n        //\n        // It is just proxy to `document.visibilityState`, but use\n        // vendor prefix.\n        state: function () {\n            return self._doc.visibilityState       ||\n                   self._doc.webkitVisibilityState ||\n                   'visible';\n        },\n\n        // Return true if browser support Page Visibility API.\n        //\n        //   if ( Visibility.isSupported() ) {\n        //       Statistics.startTrackingVisibility();\n        //       Visibility.change(function(e, state)) {\n        //           Statistics.trackVisibility(state);\n        //       });\n        //   }\n        isSupported: function () {\n            return !!(self._doc.visibilityState ||\n                      self._doc.webkitVisibilityState);\n        },\n\n        // Link to document object to change it in tests.\n        _doc: document || {},\n\n        // Callbacks from `change` method, that wait visibility changes.\n        _callbacks: { },\n\n        // Listener for `visibilitychange` event.\n        _change: function(event) {\n            var state = self.state();\n\n            for ( var i in self._callbacks ) {\n                self._callbacks[i].call(self._doc, event, state);\n            }\n        },\n\n        // Set listener for `visibilitychange` event.\n        _listen: function () {\n            if ( self._init ) {\n                return;\n            }\n\n            var event = 'visibilitychange';\n            if ( self._doc.webkitVisibilityState ) {\n                event = 'webkit' + event;\n            }\n\n            var listener = function () {\n                self._change.apply(self, arguments);\n            };\n            if ( self._doc.addEventListener ) {\n                self._doc.addEventListener(event, listener);\n            } else {\n                self._doc.attachEvent(event, listener);\n            }\n            self._init = true;\n        }\n\n    };\n\n    if ( typeof(module) != 'undefined' && module.exports ) {\n        module.exports = self;\n    } else {\n        global.Visibility = self;\n    }\n\n})(this);\n","\n /*! \n  * portal-vue © Thorsten Lünborg, 2019 \n  * \n  * Version: 2.1.7\n  * \n  * LICENCE: MIT \n  * \n  * https://github.com/linusborg/portal-vue\n  * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n  if (Array.isArray(item) || _typeof(item) === 'object') {\n    return Object.freeze(item);\n  }\n\n  return item;\n}\nfunction combinePassengers(transports) {\n  var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return transports.reduce(function (passengers, transport) {\n    var temp = transport.passengers[0];\n    var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n    return passengers.concat(newPassengers);\n  }, []);\n}\nfunction stableSort(array, compareFn) {\n  return array.map(function (v, idx) {\n    return [idx, v];\n  }).sort(function (a, b) {\n    return compareFn(a[1], b[1]) || a[0] - b[0];\n  }).map(function (c) {\n    return c[1];\n  });\n}\nfunction pick(obj, keys) {\n  return keys.reduce(function (acc, key) {\n    if (obj.hasOwnProperty(key)) {\n      acc[key] = obj[key];\n    }\n\n    return acc;\n  }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n  data: function data() {\n    return {\n      transports: transports,\n      targets: targets,\n      sources: sources,\n      trackInstances: inBrowser\n    };\n  },\n  methods: {\n    open: function open(transport) {\n      if (!inBrowser) return;\n      var to = transport.to,\n          from = transport.from,\n          passengers = transport.passengers,\n          _transport$order = transport.order,\n          order = _transport$order === void 0 ? Infinity : _transport$order;\n      if (!to || !from || !passengers) return;\n      var newTransport = {\n        to: to,\n        from: from,\n        passengers: freeze(passengers),\n        order: order\n      };\n      var keys = Object.keys(this.transports);\n\n      if (keys.indexOf(to) === -1) {\n        Vue.set(this.transports, to, []);\n      }\n\n      var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n      var newTransports = this.transports[to].slice(0);\n\n      if (currentIndex === -1) {\n        newTransports.push(newTransport);\n      } else {\n        newTransports[currentIndex] = newTransport;\n      }\n\n      this.transports[to] = stableSort(newTransports, function (a, b) {\n        return a.order - b.order;\n      });\n    },\n    close: function close(transport) {\n      var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var to = transport.to,\n          from = transport.from;\n      if (!to || !from && force === false) return;\n\n      if (!this.transports[to]) {\n        return;\n      }\n\n      if (force) {\n        this.transports[to] = [];\n      } else {\n        var index = this.$_getTransportIndex(transport);\n\n        if (index >= 0) {\n          // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n          var newTransports = this.transports[to].slice(0);\n          newTransports.splice(index, 1);\n          this.transports[to] = newTransports;\n        }\n      }\n    },\n    registerTarget: function registerTarget(target, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.targets[target]) {\n        console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n      }\n\n      this.$set(this.targets, target, Object.freeze([vm]));\n    },\n    unregisterTarget: function unregisterTarget(target) {\n      this.$delete(this.targets, target);\n    },\n    registerSource: function registerSource(source, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.sources[source]) {\n        console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n      }\n\n      this.$set(this.sources, source, Object.freeze([vm]));\n    },\n    unregisterSource: function unregisterSource(source) {\n      this.$delete(this.sources, source);\n    },\n    hasTarget: function hasTarget(to) {\n      return !!(this.targets[to] && this.targets[to][0]);\n    },\n    hasSource: function hasSource(to) {\n      return !!(this.sources[to] && this.sources[to][0]);\n    },\n    hasContentFor: function hasContentFor(to) {\n      return !!this.transports[to] && !!this.transports[to].length;\n    },\n    // Internal\n    $_getTransportIndex: function $_getTransportIndex(_ref) {\n      var to = _ref.to,\n          from = _ref.from;\n\n      for (var i in this.transports[to]) {\n        if (this.transports[to][i].from === from) {\n          return +i;\n        }\n      }\n\n      return -1;\n    }\n  }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n  name: 'portal',\n  props: {\n    disabled: {\n      type: Boolean\n    },\n    name: {\n      type: String,\n      default: function _default() {\n        return String(_id++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    }\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerSource(_this.name, _this);\n    });\n  },\n  mounted: function mounted() {\n    if (!this.disabled) {\n      this.sendUpdate();\n    }\n  },\n  updated: function updated() {\n    if (this.disabled) {\n      this.clear();\n    } else {\n      this.sendUpdate();\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterSource(this.name);\n    this.clear();\n  },\n  watch: {\n    to: function to(newValue, oldValue) {\n      oldValue && oldValue !== newValue && this.clear(oldValue);\n      this.sendUpdate();\n    }\n  },\n  methods: {\n    clear: function clear(target) {\n      var closer = {\n        from: this.name,\n        to: target || this.to\n      };\n      wormhole.close(closer);\n    },\n    normalizeSlots: function normalizeSlots() {\n      return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n    },\n    normalizeOwnChildren: function normalizeOwnChildren(children) {\n      return typeof children === 'function' ? children(this.slotProps) : children;\n    },\n    sendUpdate: function sendUpdate() {\n      var slotContent = this.normalizeSlots();\n\n      if (slotContent) {\n        var transport = {\n          from: this.name,\n          to: this.to,\n          passengers: _toConsumableArray(slotContent),\n          order: this.order\n        };\n        wormhole.open(transport);\n      } else {\n        this.clear();\n      }\n    }\n  },\n  render: function render(h) {\n    var children = this.$slots.default || this.$scopedSlots.default || [];\n    var Tag = this.tag;\n\n    if (children && this.disabled) {\n      return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n    } else {\n      return this.slim ? h() : h(Tag, {\n        class: {\n          'v-portal': true\n        },\n        style: {\n          display: 'none'\n        },\n        key: 'v-portal-placeholder'\n      });\n    }\n  }\n});\n\nvar PortalTarget = Vue.extend({\n  name: 'portalTarget',\n  props: {\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    name: {\n      type: String,\n      required: true\n    },\n    slim: {\n      type: Boolean,\n      default: false\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  data: function data() {\n    return {\n      transports: wormhole.transports,\n      firstRender: true\n    };\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerTarget(_this.name, _this);\n    });\n  },\n  watch: {\n    ownTransports: function ownTransports() {\n      this.$emit('change', this.children().length > 0);\n    },\n    name: function name(newVal, oldVal) {\n      /**\r\n       * TODO\r\n       * This should warn as well ...\r\n       */\n      wormhole.unregisterTarget(oldVal);\n      wormhole.registerTarget(newVal, this);\n    }\n  },\n  mounted: function mounted() {\n    var _this2 = this;\n\n    if (this.transition) {\n      this.$nextTick(function () {\n        // only when we have a transition, because it causes a re-render\n        _this2.firstRender = false;\n      });\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterTarget(this.name);\n  },\n  computed: {\n    ownTransports: function ownTransports() {\n      var transports = this.transports[this.name] || [];\n\n      if (this.multiple) {\n        return transports;\n      }\n\n      return transports.length === 0 ? [] : [transports[transports.length - 1]];\n    },\n    passengers: function passengers() {\n      return combinePassengers(this.ownTransports, this.slotProps);\n    }\n  },\n  methods: {\n    // can't be a computed prop because it has to \"react\" to $slot changes.\n    children: function children() {\n      return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n    },\n    // can't be a computed prop because it has to \"react\" to this.children().\n    noWrapper: function noWrapper() {\n      var noWrapper = this.slim && !this.transition;\n\n      if (noWrapper && this.children().length > 1) {\n        console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n      }\n\n      return noWrapper;\n    }\n  },\n  render: function render(h) {\n    var noWrapper = this.noWrapper();\n    var children = this.children();\n    var Tag = this.transition || this.tag;\n    return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n      props: {\n        // if we have a transition component, pass the tag if it exists\n        tag: this.transition && this.tag ? this.tag : undefined\n      },\n      class: {\n        'vue-portal-target': true\n      }\n    }, children);\n  }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n  name: 'MountingPortal',\n  inheritAttrs: false,\n  props: {\n    append: {\n      type: [Boolean, String]\n    },\n    bail: {\n      type: Boolean\n    },\n    mountTo: {\n      type: String,\n      required: true\n    },\n    // Portal\n    disabled: {\n      type: Boolean\n    },\n    // name for the portal\n    name: {\n      type: String,\n      default: function _default() {\n        return 'mounted_' + String(_id$1++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    // name for the target\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    },\n    // Target\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    targetSlim: {\n      type: Boolean\n    },\n    targetSlotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    targetTag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  created: function created() {\n    if (typeof document === 'undefined') return;\n    var el = document.querySelector(this.mountTo);\n\n    if (!el) {\n      console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n      return;\n    }\n\n    var props = this.$props; // Target already exists\n\n    if (wormhole.targets[props.name]) {\n      if (props.bail) {\n        console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n        Aborting because 'bail: true' is set\"));\n      } else {\n        this.portalTarget = wormhole.targets[props.name];\n      }\n\n      return;\n    }\n\n    var append = props.append;\n\n    if (append) {\n      var type = typeof append === 'string' ? append : 'DIV';\n      var mountEl = document.createElement(type);\n      el.appendChild(mountEl);\n      el = mountEl;\n    } // get props for target from $props\n    // we have to rename a few of them\n\n\n    var _props = pick(this.$props, targetProps);\n\n    _props.slim = this.targetSlim;\n    _props.tag = this.targetTag;\n    _props.slotProps = this.targetSlotProps;\n    _props.name = this.to;\n    this.portalTarget = new PortalTarget({\n      el: el,\n      parent: this.$parent || this,\n      propsData: _props\n    });\n  },\n  beforeDestroy: function beforeDestroy() {\n    var target = this.portalTarget;\n\n    if (this.append) {\n      var el = target.$el;\n      el.parentNode.removeChild(el);\n    }\n\n    target.$destroy();\n  },\n  render: function render(h) {\n    if (!this.portalTarget) {\n      console.warn(\"[portal-vue] Target wasn't mounted\");\n      return h();\n    } // if there's no \"manual\" scoped slot, so we create a <Portal> ourselves\n\n\n    if (!this.$scopedSlots.manual) {\n      var props = pick(this.$props, portalProps);\n      return h(Portal, {\n        props: props,\n        attrs: this.$attrs,\n        on: this.$listeners,\n        scopedSlots: this.$scopedSlots\n      }, this.$slots.default);\n    } // else, we render the scoped slot\n\n\n    var content = this.$scopedSlots.manual({\n      to: this.to\n    }); // if user used <template> for the scoped slot\n    // content will be an array\n\n    if (Array.isArray(content)) {\n      content = content[0];\n    }\n\n    if (!content) return h();\n    return content;\n  }\n});\n\nfunction install(Vue$$1) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  Vue$$1.component(options.portalName || 'Portal', Portal);\n  Vue$$1.component(options.portalTargetName || 'PortalTarget', PortalTarget);\n  Vue$$1.component(options.MountingPortalName || 'MountingPortal', MountingPortal);\n}\n\nvar index = {\n  install: install\n};\n\nexports.default = index;\nexports.Portal = Portal;\nexports.PortalTarget = PortalTarget;\nexports.MountingPortal = MountingPortal;\nexports.Wormhole = wormhole;\n//# sourceMappingURL=portal-vue.common.js.map\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = toString(requireObjectCoercible($this));\n    var position = toIntegerOrInfinity(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = charCodeAt(S, position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING\n          ? charAt(S, position)\n          : first\n        : CONVERT_TO_STRING\n          ? stringSlice(S, position, position + 2)\n          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n  var length = array.length;\n\n  array.sort(comparer);\n  while (length--) {\n    array[length] = array[length].value;\n  }\n  return array;\n}\n\nmodule.exports = baseSortBy;\n","import { GlToast } from '@gitlab/ui';\nimport Vue from 'vue';\n\nVue.use(GlToast);\nconst instance = new Vue();\n\nexport default function showGlobalToast(...args) {\n  return instance.$toast.show(...args);\n}\n","import { Wormhole, PortalTarget } from 'portal-vue';\nimport { extend } from '../../vue';\nimport { NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_DESTROYED } from '../../constants/events';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF, removeClass } from '../../utils/dom';\nimport { getRootEventName } from '../../utils/events';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { warn } from '../../utils/warn';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Helper components ---\n\n// @vue/component\nconst DefaultTransition = /*#__PURE__*/extend({\n  mixins: [normalizeSlotMixin],\n  data() {\n    return {\n      // Transition classes base name\n      name: 'b-toaster'\n    };\n  },\n  methods: {\n    onAfterEnter(el) {\n      // Work around a Vue.js bug where `*-enter-to` class is not removed\n      // See: https://github.com/vuejs/vue/pull/7901\n      // The `*-move` class is also stuck on elements that moved,\n      // but there are no JavaScript hooks to handle after move\n      // See: https://github.com/vuejs/vue/pull/7906\n      requestAF(() => {\n        removeClass(el, `${this.name}-enter-to`);\n      });\n    }\n  },\n  render(h) {\n    return h('transition-group', {\n      props: {\n        tag: 'div',\n        name: this.name\n      },\n      on: {\n        afterEnter: this.onAfterEnter\n      }\n    }, this.normalizeSlot());\n  }\n});\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n  // Allowed: 'true' or 'false' or `null`\n  ariaAtomic: makeProp(PROP_TYPE_STRING),\n  ariaLive: makeProp(PROP_TYPE_STRING),\n  name: makeProp(PROP_TYPE_STRING, undefined, true),\n  // Required\n  // Aria role\n  role: makeProp(PROP_TYPE_STRING)\n}, NAME_TOASTER);\n\n// --- Main component ---\n\n// @vue/component\nconst BToaster = /*#__PURE__*/extend({\n  name: NAME_TOASTER,\n  mixins: [listenOnRootMixin],\n  props,\n  data() {\n    return {\n      // We don't render on SSR or if a an existing target found\n      doRender: false,\n      dead: false,\n      // Toaster names cannot change once created\n      staticName: this.name\n    };\n  },\n  beforeMount() {\n    const {\n      name\n    } = this;\n    this.staticName = name;\n\n    /* istanbul ignore if */\n    if (Wormhole.hasTarget(name)) {\n      warn(`A \"<portal-target>\" with name \"${name}\" already exists in the document.`, NAME_TOASTER);\n      this.dead = true;\n    } else {\n      this.doRender = true;\n    }\n  },\n  beforeDestroy() {\n    // Let toasts made with `this.$bvToast.toast()` know that this toaster\n    // is being destroyed and should should also destroy/hide themselves\n    if (this.doRender) {\n      this.emitOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), this.name);\n    }\n  },\n  destroyed() {\n    // Remove from DOM if needed\n    const {\n      $el\n    } = this;\n    /* istanbul ignore next: difficult to test */\n    if ($el && $el.parentNode) {\n      $el.parentNode.removeChild($el);\n    }\n  },\n  render(h) {\n    let $toaster = h('div', {\n      class: ['gl-hidden', {\n        'b-dead-toaster': this.dead\n      }]\n    });\n    if (this.doRender) {\n      const $target = h(PortalTarget, {\n        staticClass: 'b-toaster-slot',\n        props: {\n          name: this.staticName,\n          multiple: true,\n          tag: 'div',\n          slim: false,\n          // transition: this.transition || DefaultTransition\n          transition: DefaultTransition\n        }\n      });\n      $toaster = h('div', {\n        staticClass: 'b-toaster',\n        class: [this.staticName],\n        attrs: {\n          id: this.staticName,\n          // Fallback to null to make sure attribute doesn't exist\n          role: this.role || null,\n          'aria-live': this.ariaLive,\n          'aria-atomic': this.ariaAtomic\n        }\n      }, [$target]);\n    }\n    return $toaster;\n  }\n});\n\nexport { BToaster, DefaultTransition, props };\n","import { Wormhole, Portal } from 'portal-vue';\nimport { extend, COMPONENT_UID_KEY } from '../../vue';\nimport { NAME_TOAST, NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_SHOW, EVENT_NAME_HIDE, EVENT_NAME_DESTROYED, EVENT_OPTIONS_NO_CAPTURE, EVENT_NAME_SHOWN, EVENT_NAME_HIDDEN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TOAST_TITLE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { requestAF } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOnOff } from '../../utils/events';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makePropsConfigurable, makeProp, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { createNewChildComponent } from '../../utils/create-new-child-component';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { props as props$2, idMixin } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { scopedStyleMixin } from '../../mixins/scoped-style';\nimport { props as props$1, BLink } from '../link/link';\nimport { BVTransition } from '../transition/bv-transition';\nimport { BToaster } from './toaster';\n\n// --- Constants ---\n\nconst {\n  mixin: modelMixin,\n  props: modelProps,\n  prop: MODEL_PROP_NAME,\n  event: MODEL_EVENT_NAME\n} = makeModelMixin('visible', {\n  type: PROP_TYPE_BOOLEAN,\n  defaultValue: false,\n  event: EVENT_NAME_CHANGE\n});\nconst MIN_DURATION = 1000;\n\n// --- Props ---\n\nconst linkProps = pick(props$1, ['href', 'to']);\nconst props = makePropsConfigurable(sortKeys({\n  ...props$2,\n  ...modelProps,\n  ...linkProps,\n  appendToast: makeProp(PROP_TYPE_BOOLEAN, false),\n  autoHideDelay: makeProp(PROP_TYPE_NUMBER_STRING, 5000),\n  bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n  // Switches role to 'status' and aria-live to 'polite'\n  isStatus: makeProp(PROP_TYPE_BOOLEAN, false),\n  noAutoHide: makeProp(PROP_TYPE_BOOLEAN, false),\n  noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n  noHoverPause: makeProp(PROP_TYPE_BOOLEAN, false),\n  solid: makeProp(PROP_TYPE_BOOLEAN, false),\n  // Render the toast in place, rather than in a portal-target\n  static: makeProp(PROP_TYPE_BOOLEAN, false),\n  title: makeProp(PROP_TYPE_STRING),\n  toastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  toaster: makeProp(PROP_TYPE_STRING, 'b-toaster-top-right'),\n  variant: makeProp(PROP_TYPE_STRING)\n}), NAME_TOAST);\n\n// --- Main component ---\n\n// @vue/component\nconst BToast = /*#__PURE__*/extend({\n  name: NAME_TOAST,\n  mixins: [attrsMixin, idMixin, modelMixin, listenOnRootMixin, normalizeSlotMixin, scopedStyleMixin],\n  inheritAttrs: false,\n  props,\n  data() {\n    return {\n      isMounted: false,\n      doRender: false,\n      localShow: false,\n      isTransitioning: false,\n      isHiding: false,\n      order: 0,\n      dismissStarted: 0,\n      resumeDismiss: 0\n    };\n  },\n  computed: {\n    toastClasses() {\n      const {\n        appendToast,\n        variant\n      } = this;\n      return {\n        'b-toast-solid': this.solid,\n        'b-toast-append': appendToast,\n        'b-toast-prepend': !appendToast,\n        [`b-toast-${variant}`]: variant\n      };\n    },\n    slotScope() {\n      const {\n        hide\n      } = this;\n      return {\n        hide\n      };\n    },\n    computedDuration() {\n      // Minimum supported duration is 1 second\n      return mathMax(toInteger(this.autoHideDelay, 0), MIN_DURATION);\n    },\n    computedToaster() {\n      return String(this.toaster);\n    },\n    transitionHandlers() {\n      return {\n        beforeEnter: this.onBeforeEnter,\n        afterEnter: this.onAfterEnter,\n        beforeLeave: this.onBeforeLeave,\n        afterLeave: this.onAfterLeave\n      };\n    },\n    computedAttrs() {\n      return {\n        ...this.bvAttrs,\n        id: this.safeId(),\n        tabindex: '0'\n      };\n    }\n  },\n  watch: {\n    [MODEL_PROP_NAME](newValue) {\n      this[newValue ? 'show' : 'hide']();\n    },\n    localShow(newValue) {\n      if (newValue !== this[MODEL_PROP_NAME]) {\n        this.$emit(MODEL_EVENT_NAME, newValue);\n      }\n    },\n    /* istanbul ignore next */\n    toaster() {\n      // If toaster target changed, make sure toaster exists\n      this.$nextTick(this.ensureToaster);\n    },\n    /* istanbul ignore next */\n    static(newValue) {\n      // If static changes to true, and the toast is showing,\n      // ensure the toaster target exists\n      if (newValue && this.localShow) {\n        this.ensureToaster();\n      }\n    }\n  },\n  created() {\n    // Create private non-reactive props\n    this.$_dismissTimer = null;\n  },\n  mounted() {\n    this.isMounted = true;\n    this.$nextTick(() => {\n      if (this[MODEL_PROP_NAME]) {\n        requestAF(() => {\n          this.show();\n        });\n      }\n    });\n    // Listen for global $root show events\n    this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), id => {\n      if (id === this.safeId()) {\n        this.show();\n      }\n    });\n    // Listen for global $root hide events\n    this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), id => {\n      if (!id || id === this.safeId()) {\n        this.hide();\n      }\n    });\n    // Make sure we hide when toaster is destroyed\n    /* istanbul ignore next: difficult to test */\n    this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), toaster => {\n      /* istanbul ignore next */\n      if (toaster === this.computedToaster) {\n        this.hide();\n      }\n    });\n  },\n  beforeDestroy() {\n    this.clearDismissTimer();\n  },\n  methods: {\n    show() {\n      if (!this.localShow) {\n        this.ensureToaster();\n        const showEvent = this.buildEvent(EVENT_NAME_SHOW);\n        this.emitEvent(showEvent);\n        this.dismissStarted = this.resumeDismiss = 0;\n        this.order = Date.now() * (this.appendToast ? 1 : -1);\n        this.isHiding = false;\n        this.doRender = true;\n        this.$nextTick(() => {\n          // We show the toast after we have rendered the portal and b-toast wrapper\n          // so that screen readers will properly announce the toast\n          requestAF(() => {\n            this.localShow = true;\n          });\n        });\n      }\n    },\n    hide() {\n      if (this.localShow) {\n        const hideEvent = this.buildEvent(EVENT_NAME_HIDE);\n        this.emitEvent(hideEvent);\n        this.setHoverHandler(false);\n        this.dismissStarted = this.resumeDismiss = 0;\n        this.clearDismissTimer();\n        this.isHiding = true;\n        requestAF(() => {\n          this.localShow = false;\n        });\n      }\n    },\n    buildEvent(type) {\n      let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      return new BvEvent(type, {\n        cancelable: false,\n        target: this.$el || null,\n        relatedTarget: null,\n        ...options,\n        vueTarget: this,\n        componentId: this.safeId()\n      });\n    },\n    emitEvent(bvEvent) {\n      const {\n        type\n      } = bvEvent;\n      this.emitOnRoot(getRootEventName(NAME_TOAST, type), bvEvent);\n      this.$emit(type, bvEvent);\n    },\n    ensureToaster() {\n      if (this.static) {\n        return;\n      }\n      const {\n        computedToaster\n      } = this;\n      if (!Wormhole.hasTarget(computedToaster)) {\n        const div = document.createElement('div');\n        document.body.appendChild(div);\n        const toaster = createNewChildComponent(this.bvEventRoot, BToaster, {\n          propsData: {\n            name: computedToaster\n          }\n        });\n        toaster.$mount(div);\n      }\n    },\n    startDismissTimer() {\n      this.clearDismissTimer();\n      if (!this.noAutoHide) {\n        this.$_dismissTimer = setTimeout(this.hide, this.resumeDismiss || this.computedDuration);\n        this.dismissStarted = Date.now();\n        this.resumeDismiss = 0;\n      }\n    },\n    clearDismissTimer() {\n      clearTimeout(this.$_dismissTimer);\n      this.$_dismissTimer = null;\n    },\n    setHoverHandler(on) {\n      const el = this.$refs['b-toast'];\n      eventOnOff(on, el, 'mouseenter', this.onPause, EVENT_OPTIONS_NO_CAPTURE);\n      eventOnOff(on, el, 'mouseleave', this.onUnPause, EVENT_OPTIONS_NO_CAPTURE);\n    },\n    onPause() {\n      // Determine time remaining, and then pause timer\n      if (this.noAutoHide || this.noHoverPause || !this.$_dismissTimer || this.resumeDismiss) {\n        return;\n      }\n      const passed = Date.now() - this.dismissStarted;\n      if (passed > 0) {\n        this.clearDismissTimer();\n        this.resumeDismiss = mathMax(this.computedDuration - passed, MIN_DURATION);\n      }\n    },\n    onUnPause() {\n      // Restart timer with max of time remaining or 1 second\n      if (this.noAutoHide || this.noHoverPause || !this.resumeDismiss) {\n        this.resumeDismiss = this.dismissStarted = 0;\n        return;\n      }\n      this.startDismissTimer();\n    },\n    onLinkClick() {\n      // We delay the close to allow time for the\n      // browser to process the link click\n      this.$nextTick(() => {\n        requestAF(() => {\n          this.hide();\n        });\n      });\n    },\n    onBeforeEnter() {\n      this.isTransitioning = true;\n    },\n    onAfterEnter() {\n      this.isTransitioning = false;\n      const hiddenEvent = this.buildEvent(EVENT_NAME_SHOWN);\n      this.emitEvent(hiddenEvent);\n      this.startDismissTimer();\n      this.setHoverHandler(true);\n    },\n    onBeforeLeave() {\n      this.isTransitioning = true;\n    },\n    onAfterLeave() {\n      this.isTransitioning = false;\n      this.order = 0;\n      this.resumeDismiss = this.dismissStarted = 0;\n      const hiddenEvent = this.buildEvent(EVENT_NAME_HIDDEN);\n      this.emitEvent(hiddenEvent);\n      this.doRender = false;\n    },\n    // Render helper for generating the toast\n    makeToast(h) {\n      const {\n        slotScope\n      } = this;\n      const link = isLink(this);\n      const $headerContent = [];\n      const $title = this.normalizeSlot(SLOT_NAME_TOAST_TITLE, slotScope);\n      if ($title) {\n        $headerContent.push($title);\n      }\n      let $header = h();\n      if ($headerContent.length > 0) {\n        $header = h(this.headerTag, {\n          staticClass: 'toast-header',\n          class: this.headerClass\n        }, $headerContent);\n      }\n      const $body = h(link ? BLink : 'div', {\n        staticClass: 'toast-body',\n        class: this.bodyClass,\n        props: link ? pluckProps(linkProps, this) : {},\n        on: link ? {\n          click: this.onLinkClick\n        } : {}\n      }, this.normalizeSlot(SLOT_NAME_DEFAULT, slotScope));\n      return h('div', {\n        staticClass: 'toast',\n        class: this.toastClass,\n        attrs: this.computedAttrs,\n        key: `toast-${this[COMPONENT_UID_KEY]}`,\n        ref: 'toast'\n      }, [$header, $body]);\n    }\n  },\n  render(h) {\n    if (!this.doRender || !this.isMounted) {\n      return h();\n    }\n    const {\n      order,\n      static: isStatic,\n      isHiding,\n      isStatus\n    } = this;\n    const name = `b-toast-${this[COMPONENT_UID_KEY]}`;\n    const $toast = h('div', {\n      staticClass: 'b-toast',\n      class: this.toastClasses,\n      attrs: {\n        // If scoped styles are applied and the toast is not static,\n        // make sure the scoped style data attribute is applied\n        ...(isStatic ? {} : this.scopedStyleAttrs),\n        id: this.safeId('_toast_outer'),\n        role: isHiding ? null : isStatus ? 'status' : 'alert',\n        'aria-live': isHiding ? null : isStatus ? 'polite' : 'assertive',\n        'aria-atomic': isHiding ? null : 'true'\n      },\n      key: name,\n      ref: 'b-toast'\n    }, [h(BVTransition, {\n      props: {\n        noFade: this.noFade\n      },\n      on: this.transitionHandlers\n    }, [this.localShow ? this.makeToast(h) : h()])]);\n    return h(Portal, {\n      props: {\n        name,\n        to: this.computedToaster,\n        order,\n        slim: true,\n        disabled: isStatic\n      }\n    }, [$toast]);\n  }\n});\n\nexport { BToast, props };\n","import { NAME_TOAST_POP, NAME_TOASTER, NAME_TOAST } from '../../../constants/components';\nimport { HOOK_EVENT_NAME_DESTROYED, EVENT_NAME_HIDDEN, EVENT_NAME_DESTROYED, EVENT_NAME_SHOW, EVENT_NAME_HIDE } from '../../../constants/events';\nimport { useParentMixin } from '../../../mixins/use-parent';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { getRootEventName, getRootActionEventName } from '../../../utils/events';\nimport { isUndefined } from '../../../utils/inspect';\nimport { keys, omit, hasOwnProperty, defineProperty, assign, defineProperties, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient } from '../../../utils/warn';\nimport { createNewChildComponent } from '../../../utils/create-new-child-component';\nimport { getEventRoot } from '../../../utils/get-event-root';\nimport { props, BToast } from '../toast';\n\n/**\n * Plugin for adding `$bvToast` property to all Vue instances\n */\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvToast';\nconst PROP_NAME_PRIV = '_bv__toast';\n\n// Base toast props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\nconst BASE_PROPS = ['id', ...keys(omit(props, ['static', 'visible']))];\n\n// Map prop names to toast slot names\nconst propsToSlots = {\n  toastContent: 'default',\n  title: 'toast-title'\n};\n\n// --- Helper methods ---\n\n// Method to filter only recognized props that are not undefined\nconst filterOptions = options => {\n  return BASE_PROPS.reduce((memo, key) => {\n    if (!isUndefined(options[key])) {\n      memo[key] = options[key];\n    }\n    return memo;\n  }, {});\n};\n\n// Method to install `$bvToast` VM injection\nconst plugin = Vue => {\n  // Create a private sub-component constructor that\n  // extends BToast and self-destructs after hidden\n  // @vue/component\n  const BVToastPop = Vue.extend({\n    name: NAME_TOAST_POP,\n    extends: BToast,\n    mixins: [useParentMixin],\n    destroyed() {\n      // Make sure we not in document any more\n      const {\n        $el\n      } = this;\n      if ($el && $el.parentNode) {\n        $el.parentNode.removeChild($el);\n      }\n    },\n    mounted() {\n      // Self destruct handler\n      const handleDestroy = () => {\n        // Ensure the toast has been force hidden\n        this.localShow = false;\n        this.doRender = false;\n        this.$nextTick(() => {\n          this.$nextTick(() => {\n            // In a `requestAF()` to release control back to application\n            // and to allow the portal-target time to remove the content\n            requestAF(() => {\n              this.$destroy();\n            });\n          });\n        });\n      };\n      // Self destruct if parent destroyed\n      this.bvParent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy);\n      // Self destruct after hidden\n      this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n      // Self destruct when toaster is destroyed\n      this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), toaster => {\n        /* istanbul ignore next: hard to test */\n        if (toaster === this.toaster) {\n          handleDestroy();\n        }\n      });\n    }\n  });\n\n  // Private method to generate the on-demand toast\n  const makeToast = (props, parent) => {\n    if (warnNotClient(PROP_NAME)) {\n      /* istanbul ignore next */\n      return;\n    }\n    // Create an instance of `BVToastPop` component\n    const toast = createNewChildComponent(parent, BVToastPop, {\n      // We set parent as the local VM so these toasts can emit events on the\n      // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed\n      propsData: {\n        ...filterOptions(getComponentConfig(NAME_TOAST)),\n        // Add in (filtered) user supplied props\n        ...omit(props, keys(propsToSlots)),\n        // Props that can't be overridden\n        static: false,\n        visible: true\n      }\n    });\n    // Convert certain props to slots\n    keys(propsToSlots).forEach(prop => {\n      const value = props[prop];\n      if (!isUndefined(value)) {\n        toast.$slots[propsToSlots[prop]] = concat(value);\n      }\n    });\n    // Create a mount point (a DIV) and mount it (which triggers the show)\n    const div = document.createElement('div');\n    document.body.appendChild(div);\n    toast.$mount(div);\n  };\n\n  // Declare BvToast instance property class\n  class BvToast {\n    constructor(vm) {\n      // Assign the new properties to this instance\n      assign(this, {\n        _vm: vm,\n        _root: getEventRoot(vm)\n      });\n      // Set these properties as read-only and non-enumerable\n      defineProperties(this, {\n        _vm: readonlyDescriptor(),\n        _root: readonlyDescriptor()\n      });\n    }\n\n    // --- Public Instance methods ---\n\n    // Opens a user defined toast and returns immediately\n    toast(content) {\n      let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (!content || warnNotClient(PROP_NAME)) {\n        /* istanbul ignore next */\n        return;\n      }\n      makeToast({\n        ...filterOptions(options),\n        toastContent: content\n      }, this._vm);\n    }\n\n    // shows a `<b-toast>` component with the specified ID\n    show(id) {\n      if (id) {\n        this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), id);\n      }\n    }\n\n    // Hide a toast with specified ID, or if not ID all toasts\n    hide() {\n      let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n      this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), id);\n    }\n  }\n\n  // Add our instance mixin\n  Vue.mixin({\n    beforeCreate() {\n      // Because we need access to `$root` for `$emits`, and VM for parenting,\n      // we have to create a fresh instance of `BvToast` for each VM\n      this[PROP_NAME_PRIV] = new BvToast(this);\n    }\n  });\n\n  // Define our read-only `$bvToast` instance property\n  // Placed in an if just in case in HMR mode\n  if (!hasOwnProperty(Vue.prototype, PROP_NAME)) {\n    defineProperty(Vue.prototype, PROP_NAME, {\n      get() {\n        /* istanbul ignore next */\n        if (!this || !this[PROP_NAME_PRIV]) {\n          warn(`\"${PROP_NAME}\" must be accessed from a Vue instance \"this\" context.`, NAME_TOAST);\n        }\n        return this[PROP_NAME_PRIV];\n      }\n    });\n  }\n};\nconst BVToastPlugin = /*#__PURE__*/pluginFactory({\n  plugins: {\n    plugin\n  }\n});\n\nexport { BVToastPlugin };\n","import { BVToastPlugin } from './helpers/bv-toast';\nimport { BToast } from './toast';\nexport { BToast } from './toast';\nimport { BToaster } from './toaster';\nexport { BToaster } from './toaster';\nimport { pluginFactory } from '../../utils/plugins';\n\nconst ToastPlugin = /*#__PURE__*/pluginFactory({\n  components: {\n    BToast,\n    BToaster\n  },\n  // $bvToast injection\n  plugins: {\n    BVToastPlugin\n  }\n});\n\nexport { ToastPlugin };\n","import isFunction from 'lodash/isFunction';\nimport { ToastPlugin } from '../../../vendor/bootstrap-vue/src/components/toast/index';\nimport CloseButton from '../../shared_components/close_button/close_button';\n\n/* eslint-disable import/no-default-export */\nconst DEFAULT_OPTIONS = {\n  autoHideDelay: 5000,\n  toastClass: 'gl-toast',\n  isStatus: true,\n  toaster: 'b-toaster-bottom-left'\n};\nlet toastsCount = 0;\nfunction renderTitle(h, toast, options) {\n  const nodes = [h(CloseButton, {\n    class: ['gl-toast-close-button'],\n    on: {\n      click: toast.hide\n    }\n  })];\n  if (options.action) {\n    nodes.splice(0, 0, h('a', {\n      role: 'button',\n      class: ['gl-toast-action'],\n      on: {\n        click: e => options.action.onClick(e, toast)\n      }\n    }, options.action.text));\n  }\n  return nodes;\n}\nfunction showToast(message) {\n  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n  const id = `gl-toast-${toastsCount}`;\n  toastsCount += 1;\n  const hide = () => {\n    this.$bvToast.hide(id);\n  };\n  const toast = {\n    id,\n    hide\n  };\n  if (isFunction(options.onComplete)) {\n    const toastHiddenCallback = e => {\n      if (e.componentId === id) {\n        this.$root.$off('bv::toast:hidden', toastHiddenCallback);\n        options.onComplete(e);\n      }\n    };\n    this.$root.$on('bv::toast:hidden', toastHiddenCallback);\n  }\n  const updatedAutoHideDelay = !Number.isNaN(options === null || options === void 0 ? void 0 : options.autoHideDelay) ? {\n    autoHideDelay: options.autoHideDelay\n  } : null;\n  this.$bvToast.toast(message, {\n    ...DEFAULT_OPTIONS,\n    ...updatedAutoHideDelay,\n    id,\n    title: renderTitle(this.$createElement, toast, options)\n  });\n  return toast;\n}\n\n/**\n * Note: This is not a typical Vue component and needs to be registered before instantiating a Vue app.\n * Once registered, the toast will be globally available throughout your app.\n *\n * See https://gitlab-org.gitlab.io/gitlab-ui/ for detailed documentation.\n */\nvar toast = {\n  install(Vue) {\n    Vue.use(ToastPlugin);\n    Vue.mixin({\n      beforeCreate() {\n        if (this.$toast) {\n          return;\n        }\n        this.$toast = {\n          show: showToast.bind(this)\n        };\n      }\n    });\n  }\n};\n\nexport default toast;\n"],"sourceRoot":""}