{"version":3,"sources":["components/AppDialog/AppDialogState.tsx","shared/themes/ThemeSwitchContext.tsx","config/endpoints/api.tsx","shared/haper.tsx","components/SpinnerIcon/SpinnerIcon.tsx","components/PageLoader/AsyncMountLoader.tsx","shared/swalConfigured.tsx","config/routing.tsx","shared/states/globalAppProgressBar.tsx","components/BackButton/BackButton.tsx","shared/hooks/useGlobalAppLoadingBar.tsx","components/AppNotifications/AppNotificationsState.tsx","shared/id.tsx","shared/ApiError.tsx","shared/themes/ThemeSwitcher.tsx","shared/session/Session.tsx","shared/classes/EventEmitter.tsx","shared/session/SessionLocalStorage.tsx","config/general.tsx","shared/auth.tsx","components/ProtectedRoute/ProtectedRoute.tsx","components/PublicRoute/PublicRoute.tsx","components/RoutingBreadCrumbs/RoutingBreadcrumbs.tsx","components/AppDialog/AppDialog.tsx","components/AppNotifications/AppNotifications.tsx","components/LinearLoader/LinearLoader.tsx","components/SuspenseStateTransmitter/SuspenseStateTransmitter.tsx","shared/hooks/useMediaQuery.tsx","components/Layout/Layout.tsx","components/Menu/Menu.tsx","components/NavBar/NavBar.tsx","App.tsx","serviceWorker.ts","config/i18n.tsx","components/StyleCompat/StyleCompat.tsx","webpack:///./src/index.tsx?d986","shared/session/index.tsx","shared/session/JWTSession.tsx","shared/jwt.tsx","shared/themes/themes.tsx","config/Role.tsx"],"names":["dialogVisibility","atom","key","default","dialogText","dialogConfirmMode","dialogHeader","dialogButtonsText","accept","undefined","dismiss","dialogValue","dialogState","selector","get","_ref","isVisible","isConfirmMode","text","header","buttonsText","createPromise","res","rej","data","promise","Promise","resolve","reject","useAppDialog","setVisibility","useSetRecoilState","setConfirmMode","setText","setHeader","setDialogButtonsText","_useRecoilState","useRecoilState","_useRecoilState2","_slicedToArray","value","setValue","_useState","useState","_useState2","setPromise","useEffect","show","_ref2","arguments","length","p","showConfirm","_ref3","acceptButtonText","dismissButtonText","hide","ThemeSwitchContext","createContext","theme","updateTheme","updateTypography","isDefault","basicTypography","ThemeSwitchProvider","children","render","localStorage","getItem","THEMES","getThemeFromStorage","setTheme","_useState3","TYPOGRAPHY_SIZE","normal","_useState4","typography","setTypography","themeName","document","body","style","backgroundColor","colors","primaryB","dataset","toLowerCase","setItem","renderer","documentElement","fontSize","React","createElement","Provider","context","getFakerSwitch","setFakerSwitch","val","JSON","stringify","API","createApiBuilder","haper","faker","parseToDotnetPaginationNamespace","pageNumber","sortColumn","pageSize","sortMode","rest","_objectWithoutProperties","_excluded","_objectSpread","API_BASE","window","appConfig","API_URL","createHaper","baseUrl","registerRequestInterceptor","request","_session$data","session","isAuthenticated","headers","append","concat","token","registerResponseDataInterceptor","apiResponse","status","ApiError","message","detail","title","errors","code","result","Spin","styled","size","display","width","height","animationDuration","animationIterationCount","animationTimingFunction","animationName","from","transform","to","SpinnerIcon","_ref2$size","Icon","Loader","position","top","left","background","transition","zIndex","alignItems","justifyContent","padding","$minHeight","boxSizing","AsyncMountLoader","entity","mountChildrenAfterLoad","showLoaderContent","_ref2$updateGlobalApp","updateGlobalAppLoadingBar","loading","minHeight","mountLoad","setMountLoad","loadFinished","setLoadFinished","_useStyletron","useStyletron","css","useGlobalAppLoadingBar","shouldRender","transitionContainer","maybeUpdateGlobalLoadingBar","setTimeout","className","opacity","important","obj","out","Object","entries","forEach","Button","borderRadius","LabelMedium","SwalConfig","_classCallCheck","_createClass","engine","Swal","meta","mixin","customClass","container","renderStyle","fontFamily","cancelButton","backgroundTertiary","color","primaryA","confirmButton","denyButton","popup","input","borderColor","border","boxShadow","icon","validationMessage","imageAlt","didOpen","domNode","inputs","reduce","acc","current","_toConsumableArray","Array","getElementsByClassName","setAttribute","filter","getAttribute","getConfig","_regeneratorRuntime","exports","Op","prototype","hasOwn","hasOwnProperty","defineProperty","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","record","__await","then","unwrapped","error","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","Login","_asyncToGenerator","_callee","_context","Register","_callee2","_context2","ThanksForRegister","_callee3","_context3","Contact","_callee4","_context4","News","_callee5","_context5","DeclarationOfAvailability","_callee6","_context6","PrivacyPolicy","_callee7","_context7","InformationClause","_callee8","_context8","Dashboard","_callee9","_context9","ResetPassword","_callee10","_context10","SetNewPassword","_callee11","_context11","ActivateAccount","_callee12","_context12","ExpertApplicationForm","_callee13","_context13","ExpertApplicationFormContactDetails","_callee14","_context14","ExpertApplicationFormEducation","_callee15","_context15","ExpertApplicationFormWorkExperience","_callee16","_context16","ExpertNfosigwAreaOfActivity","_callee17","_context17","ExpertQuestionnaire","_callee18","_context18","ExpertAttachments","_callee19","_context19","Unauthorized","_callee20","_context20","Experts","_callee21","_context21","ExpertFormPreview","_callee22","_context22","ExpertFormHistory","_callee23","_context23","AdminPage","_callee24","_context24","_callee25","_context25","_callee26","_context26","_callee27","_context27","_callee28","_context28","_callee29","_context29","_callee30","_context30","_callee31","_context31","_callee32","_context32","modules","Cmp","path","authorizedRoles","hideInMenu","ROLE","Secretary","exact","ExpertRegisterForm","NewUser","Expert","Admin","SuperUser","routing","getDefaultRedirectPathForRole","role","roles","progressBarValues","Map","progressBarVisibility","valuesMap","loadingSections","_ref4","find","_ref5","BackButton","_ref$size","_ref$kind","kind","KIND","secondary","_useHistory","useHistory","back","goBack","go","_useTranslation","useTranslation","t","assign","onClick","count","parseInt","sessionStorage","BackCountHelper","location","useLocation","removeItem","pathname","search","getNextId","Math","random","initialLoadingState","resetOnUnmount","setValues","idRef","useRef","currentValues","newValues","delete","set","appNotifications","useAppNotifications","setNotifications","pushNotification","positive","_ref$closeable","closeable","_ref$timeoutInMs","timeoutInMs","id","round","oldArr","notification","_Error","_inherits","_super","_createSuper","_this","_wrapNativeSuper","ErrorParagraph","Paragraph3","margin","lineHeight","ErrorsList","paddingLeft","marginTop","parseApiErrorToReadableMessage","tFunction","toString","join","Fragment","map","parseErrorToReadableMessage","WidgetButton","$theme","$type","ParagraphMedium","FONT_NORMAL","FONT_LARGE","FONT_XLARGE","CONTRAST_NORMAL","CONTRAST_BW","CONTRAST_YB","CONTRAST_BY","ThemeSwitcher","_useContext","useContext","large","xlarge","events","timePeriods","EventEmitter","subscribers","event","callback","this","Set","add","off","cb","SessionLocalStorage","parse","e","Session","_EventEmitter","exp","storage","save","trigger","destroy","dataFromStorage","Boolean","Date","now","timePeriod","tryToRestoreSessionFromStorage","isAuthorized","findIndex","x","includes","ProtectedRoute","_ref$redirectTo","redirectTo","invert","temp","renderChild","Redirect","Route","PublicRoute","matchedSkeletonRoute","currentPath","routeObject","parrentPath","matchProfile","matchPath","params","isExact","returnSkeletonRoute","all_routes","nestedSkeletonRoutes","isArray","element","found","unshift","findRoute","mainPath","_step","_iterator","_createForOfIteratorHelper","s","n","single_route","f","getMainPath","allMatchedRoutes","_step2","_iterator2","flat","RoutingBreadcrumbs","sectionsInfo","setSectionsInfo","Breadcrumbs","arr","prevLink","_sectionsInfo$i","_sectionsInfo$i2","StyledLink","href","getBreadcrumbs","AppDialog","useRecoilValue","Modal","onClose","isOpen","animate","autoFocus","M_SIZE","dialog","ModalHeader","ModalBody","ModalFooter","ModalButton","AppNotifications","notifications","containerCss","right","flexDirection","justifyItems","Notification","overrides","Body","LinearLoader","_useStyletron2","loaderClassName","backgroundLightAccent","overflow","loadingIndicatorClassName1","accent","loadingIndicatorClassName2","animationDelay","animationClassName","SuspenseStateTransmitter","setLoading","useMediaQuery","query","watcher","matchMedia","isMatched","setIsMatched","handleChange","matches","addEventListener","_watcher$current","removeEventListener","Layout","menu","navBar","progressBarVisible","progressBarLoading","navBarHeight","setNavBarHeight","ref","createRef","shouldShowDesktopMenu","mediaQuery","replace","getBoundingClientRect","Grid","Cell","span","Block","paddingTop","paddingBottom","Suspense","fallback","Menu","routes","ctx","navigationItems","useMemo","mapMenuItemsToNavigationItems","menuItems","parentPath","route","itemId","subNav","Navigation","activeItemId","items","NavBar","_session$data2","active","label","userNav","AppNavBar","bottom","process","mainItems","onMainItemSelect","item","mapItemToNode","isDesktop","Paragraph2","onUserItemSelect","reload","userItems","username","userName","usernameSubtitle","email","UserMenu","toastr","console","log","success","NestedRoutesRenderer","Switch","ProtectedAppSection","App","RecoilRoot","HaperProvider","haperInstance","HashRouter","hostname","match","i18n","use","initReactI18next","init","resources","en","translation","Search","Back","appName","pl","here","surname","password","appFullName","room","Users","Logout","Edit","Create","Organizations","Compositions","All","Incoming","Outgoing","Preview","Workflow","Document","Close","Accept","Reject","accepted","rejected","closed","Save","Submit","Add","Username","Actions","Delete","FYI","of","User","Comment","micro_accepted","micro_rejected","Cancel","Position","Employee","Next","Organisation","Summary","lng","keySeparator","interpolation","escapeValue","StyleCompat","primary","tickFillSelected","AppStore","setLocale","mixed","required","string","min","max","Styletron","prefix","dayjs","locale","extend","relativeTime","localeData","customParseFormat","toCamelCase","split","v","m","errorParser","form","handler","errorEntries","addError","configure","Request","AppWrap","StrictMode","StyletronProvider","themee","BaseProvider","ReactDOM","getElementById","navigator","serviceWorker","ready","registration","unregister","_Session","JWTSession","apply","_get","_getPrototypeOf","admin","_JSON$parse","setSessionDataFromJWTToken","firstName","additionalUserData","userInfo","_data$payload","_token$split","_token$split2","payload","signature","atob","decodeJwtToken","userId","lastName","persistAdminSession","posixToJsTimestamp","authToken","createFromStorage","normHex","hex","blackYellow","inverse","ret","bwColors","LightTheme","_defineProperty","bwBorders","_ref6","bwBg","_ref7","_ref9","_ref10","bwText","_ref11","_ref13","_ref14","ybColors","_ref15","_ref16","ybBorders","_ref17","_ref19","_ref20","ybBg","_ref21","_ref23","_ref24","ybText","_ref25","_ref27","_ref28","byColors","_ref29","_ref30","byBorders","_ref31","_ref33","_ref34","byBg","_ref35","_ref37","_ref38","byText","_ref39","_ref41","_ref42","remTypography","_ref43","px","_ref44","Light","createLightTheme","Dark","createDarkTheme","yb","negative400","positive400","inputPlaceholder","tabColor","buttonDisabledText","linkHover","menuFontDefault","tooltipText","buttonPrimaryActive","buttonPrimaryHover","buttonPrimarySelectedText","inputTextDisabled","tickMarkFillDisabled","tickFillDisabled","contentSecondary","by","LIGHT","DARK","BLACK_WHITE","YELLOW_BLACK","BLACK_YELLOW"],"mappings":";qSAGaA,EAAmBC,YAAc,CAC1CC,IAAK,mBACLC,SAAS,IAGAC,EAAaH,YAAa,CACnCC,IAAK,aACLC,QAAS,KAGAE,EAAoBJ,YAAc,CAC3CC,IAAK,0BACLC,SAAS,IAGAG,EAAeL,YAAa,CACrCC,IAAK,eACLC,QAAS,KAGAI,EAAoBN,YAG9B,CACCC,IAAK,oBACLC,QAAS,CACLK,YAAQC,EACRC,aAASD,KAIJE,EAAcV,YAAqB,CAC5CC,IAAK,cACLC,QAAS,OAWAS,EAAcC,YAAyB,CAChDX,IAAK,cACLY,IAAK,SAAAC,GAAc,IAAXD,EAAGC,EAAHD,IAOJ,MAAO,CACHE,UAPcF,EAAId,GAQlBiB,cAPkBH,EAAIT,GAQtBa,KAPSJ,EAAIV,GAQbe,OAPWL,EAAIR,GAQfc,YAPgBN,EAAIP,OAkB1Bc,EAAgB,WAClB,IAAIC,EACAC,EAOJ,MAAO,CACHD,IAAK,SAACE,GAAS,OAAKF,EAAIE,IACxBD,IAAK,SAACC,GAAS,OAAKD,EAAIC,IACxBC,QARY,IAAIC,SAAQ,SAACC,EAASC,GAClCN,EAAMK,EACNJ,EAAMK,OAUDC,EAAe,WACxB,IAAMC,EAAgBC,YAAkB/B,GAClCgC,EAAiBD,YAAkB1B,GACnC4B,EAAUF,YAAkB3B,GAC5B8B,EAAYH,YAAkBzB,GAC9B6B,EAAuBJ,YAAkBxB,GAC/C6B,EAA0BC,YAAe1B,GAAY2B,EAAAC,YAAAH,EAAA,GAA9CI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GACtBI,EAA8BC,qBAAkCC,EAAAL,YAAAG,EAAA,GAAzDjB,EAAOmB,EAAA,GAAEC,EAAUD,EAAA,GAU1B,OARAE,qBAAU,WACQ,OAAVN,GAAkBf,IAClBA,EAAQH,IAAIkB,GAEZK,EAAW,SAEhB,CAACL,IAEG,CACHO,KAAI,SACA7B,GAMD,IAAD8B,EAAAC,UAAAC,OAAA,QAAAzC,IAAAwC,UAAA,GAAAA,UAAA,GADM,GAHA9B,EAAM6B,EAAN7B,OAKJsB,EAAS,MACTX,GAAc,GACdE,GAAe,GACfC,EAAQf,GAEJC,GAAQe,EAAUf,GAEtB,IAAMgC,EAAI9B,IAIV,OAFAwB,EAAWM,GAEJA,EAAE1B,SAEb2B,YAAW,SACPlC,GAUD,IAADmC,EAAAJ,UAAAC,OAAA,QAAAzC,IAAAwC,UAAA,GAAAA,UAAA,GADM,GAPA9B,EAAMkC,EAANlC,OACAmC,EAAgBD,EAAhBC,iBACAC,EAAiBF,EAAjBE,kBAOJd,EAAS,MACTX,GAAc,GACdE,GAAe,GACfC,EAAQf,GACRiB,EAAqB,CACjBzB,QAAS6C,EACT/C,OAAQ8C,IAGRnC,GAAQe,EAAUf,GAEtB,IAAMgC,EAAI9B,IAIV,OAFAwB,EAAWM,GAEJA,EAAE1B,SAEb+B,KAAI,WACA1B,GAAc,GACdW,GAAS,IAEbD,W,iJCpJFiB,EAAqBC,wBAAc,CACvCC,MAAO,GACPC,YAAa,aACbC,iBAAkB,aAClBC,WAAW,EACXC,iBAAiB,IAcZ,SAASC,EAAmBjD,GAAWA,EAARkD,SAA0B,IAAhBC,EAAMnD,EAANmD,OAC5CxB,EAA0BC,mBAZF,WAC1B,IAAMgB,EAAQQ,aAAaC,QAAQ,UAAY,GAC/C,OAAGC,IAAOV,GACDA,EAEA,QAO4BW,IAAsB1B,EAAAL,YAAAG,EAAA,GAAlDiB,EAAKf,EAAA,GAAE2B,EAAQ3B,EAAA,GACtB4B,EAAoC7B,mBAAS8B,IAAgBC,QAAOC,EAAApC,YAAAiC,EAAA,GAA7DI,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAWhC,OAVA7B,qBAAU,WAPa,IAACgC,EAQpBC,SAASC,KAAKC,MAAMC,gBAAkBb,IAAOV,GAAOwB,OAAOC,SAC3DL,SAASC,KAAKK,QAAQ1B,MAAQA,EAAM2B,cAThBR,EAUDnB,EATvBQ,aAAaoB,QAAQ,QAAST,GAU1BU,iBAAS/E,EAAW4D,IAAOV,GAAkB,UAAVA,KACpC,CAACA,IAEJb,qBAAU,WACNiC,SAASU,gBAAgBR,MAAMS,SAAWd,IAC3C,CAACA,IAEAe,IAAAC,cAACnC,EAAmBoC,SAAQ,CACxBrD,MAAO,CACHmB,MAAOU,IAAOV,GACdC,YAAaW,EACbV,iBAAkBgB,EAClBf,UAAqB,UAAVH,EACXI,gBAAiBa,IAAeH,IAAgBC,SAGnDR,EAAOG,IAAOV,KAIpB,IAAMmC,EAAUrC,G,kQCvDVsC,EAAiB,WAAH,MAAyD,SAAxC5B,aAAaC,QAAQ,gBACpD4B,EAAiB,SAACC,GAAY,OAAK9B,aAAaoB,QAAQ,cAAeW,KAAKC,UAAUF,KAEtFG,EAAMC,2BAAiBC,IAAO,CACvCC,OAAmE,IAmChE,SAASC,EAAgCzF,GAA+I,IAAhH0F,EAAU1F,EAAV0F,WAAYC,EAAU3F,EAAV2F,WAAYC,EAAQ5F,EAAR4F,SAAUC,EAAQ7F,EAAR6F,SAAaC,EAAIC,YAAA/F,EAAAgG,GAC9H,OAAAC,4DAAA,GACOL,GAAY,CAAC,gCAAiCA,IAC9CF,GAAc,CAAC,kCAAmCA,IAClDC,GAAc,CAAC,qCAAsCA,IACrDE,GAAY,CAAC,8BAA+BA,IAC5CC,K,iCChDX,kGAcaI,EAAiCC,OAAOC,UAAUC,QAElDd,EAAQe,sBAAY,CAC7BC,QAASL,IAGbX,EAAMiB,2BAA2B,SAAS,SAACC,GAAsB,IAADC,EACvDC,IAAQC,mBAEbH,EAAQI,QAAQC,OAAO,gBAAgB,UAADC,OAAwB,QAAxBL,EAAYC,IAAQlG,YAAI,IAAAiG,OAAA,EAAZA,EAAcM,WAGpEzB,EAAM0B,gCAAgC,SAAS,SAACC,GAC5C,GAAIA,EAAYC,QAAU,IACtB,MAAM,IAAIC,IAAS,CACfC,QAASH,EAAYI,QAAUJ,EAAYK,MAC3CC,OAAQN,EAAYM,OACpBC,KAAMP,EAAYC,SAI1B,OAAOD,EAAYQ,W,8HC9BjBC,EAAOC,YAAyB,OAAO,SAAA5H,GAAA,IAAG6H,EAAI7H,EAAJ6H,KAAI,MAAQ,CACxDC,QAAS,eACTC,MAAM,GAADhB,OAAKc,EAAI,MACdG,OAAO,GAADjB,OAAKc,EAAI,MACfI,kBAAmB,KACnBC,wBAAyB,WACzBC,wBAAyB,SACzBC,cAAe,CACXC,KAAM,CACFC,UAAW,gBAEfC,GAAI,CACAD,UAAW,uBASVE,EAAkD,SAAHvG,GAAuB,IAADwG,EAAAxG,EAAhB4F,YAAI,IAAAY,EAAG,GAAEA,EACvE,OACI7D,IAAAC,cAAC8C,EAAI,CAACE,KAAMA,GACRjD,IAAAC,cAAC6D,IAAI,CAACb,KAAMA,MCHlBc,EAASf,YAAuC,OAAO,SAAA5H,GAAa,MAAQ,CAC9E4I,SAAU,WACVb,MAAO,OACPC,OAAQ,OACRa,IAAK,EACLC,KAAM,EACNhB,QAAS,OACTiB,WAAY,QACZC,WAAY,mBACZC,OAAQ,GACRC,WAAY,SACZC,eAAgB,SAChBC,QAZsEpJ,EAAVqJ,gBAYtC3J,EAAY,aAClC4J,UAAW,iBAGR,SAASC,EAAgBtH,GAQkC,IAPpBuH,EAAMvH,EAANuH,OACAtG,EAAQjB,EAARiB,SACAuG,EAAsBxH,EAAtBwH,uBACAC,EAAiBzH,EAAjByH,kBAAiBC,EAAA1H,EACjB2H,iCAAyB,IAAAD,GAAOA,EAChCE,EAAO5H,EAAP4H,QACAC,EAAS7H,EAAT6H,UAE1CnI,EAAkCC,oBAAkB,GAAKC,EAAAL,YAAAG,EAAA,GAAlDoI,EAASlI,EAAA,GAAEmI,EAAYnI,EAAA,GAC9B4B,EAAwC7B,oBAAkB,GAAMgC,EAAApC,YAAAiC,EAAA,GAAzDwG,EAAYrG,EAAA,GAAEsG,EAAetG,EAAA,GACpCuG,EAAcC,cAAPC,EAAqB7I,YAAA2I,EAAA,GAAlB,GACFzI,EAAa4I,cAAb5I,SAGF6I,EADiC,mBAAZV,GACSA,IAAYL,EAE1CgB,EAAsBH,EAAI,CAC5BpB,OAAQ,IAGZ,SAASwB,EAA4BvF,GAC7B0E,GACAlI,EAASwD,GAGjBnD,qBAAU,WACFgI,IAAcQ,GACdP,GAAa,GACbS,GAA4B,GAE5BC,YAAW,WACPR,GAAgB,GAChBO,GAA4B,KAC7B,MACIV,GAAaQ,IACpBL,GAAgB,GAChBO,GAA4B,MAEjC,CAACF,IAYJ,OACI3F,IAAAC,cAAA,WACID,IAAAC,cAAA,OACI8F,UAAWH,EACXtG,MAAO,CACH0E,SAAU,WACVkB,UAAWA,IAMflF,IAAAC,cAAC8D,EAAM,CAACU,WAAYS,EAAW5F,MAAK+B,YAAA,GAC7BgE,EACG,CAAEW,QAAS,EAAG3B,QAAS,GACvB,KAGFS,GACI9E,IAAAC,cAAC2D,EAAW,OAIxB5D,IAAAC,cAAA,WAhCgB,oBAAb3B,EACAuG,EACDc,GAAgBrH,EAASsG,GACzBtG,EAASsG,GAGZC,EAA0Bc,GAAgBrH,EAAYA,O,+HCtF/D2H,EAAY,SAACC,GACjB,IAAIC,EAA0C,GAE9C,OADAC,OAAOC,QAAQH,GAAKI,SAAQ,SAAAlL,GAAA,IAAAiC,EAAAT,YAAAxB,EAAA,GAAEb,EAAG8C,EAAA,GAAEiD,EAAGjD,EAAA,UAAO8I,EAAI5L,GAAgC,qBAAR+F,EAAmB,GAAA6B,OAAM7B,EAAG,eAAgBA,KAC9G6F,GAQHI,EAAS,SAACvI,GAAY,OAAAqD,YAAA,CAC1BmF,aAAc,EACdhC,QAAS,aACNxG,EAAMiB,WAAWwH,cAGhBC,EAAU,oBAAAA,IAAAC,YAAA,KAAAD,GA8Eb,OA9EaE,YAAAF,EAAA,OAAAnM,IAAA,YAAAsC,MAMd,WACE,IAAI6J,EAAWG,SAAWH,EAAW1I,MACnC,OAAO8I,IAET,IAAQ3I,EAAcuI,EAAWK,KAAzB5I,UACR,OAAO2I,IAAKE,MAAM,CAChBC,YAAa,CACXC,UAAWR,EAAWG,OAAOM,YAAY,CACvCC,WAAYV,EAAW1I,MAAMiB,WAAWwH,YAAYW,aAEtDC,aAAcX,EAAWG,OAAOM,YAAW9F,YAAC,GAAI4E,EAAS5E,YAAC,CACxD9B,gBAAiBpB,EAAYuI,EAAW1I,MAAMwB,OAAO8H,mBAAqBZ,EAAW1I,MAAMwB,OAAOC,SAClG8H,MAAOb,EAAW1I,MAAMwB,OAAOgI,UAC5BjB,EAAOG,EAAW1I,WAEvByJ,cAAef,EAAWG,OAAOM,YAAW9F,YAAC,GAAI4E,EAAS5E,YAAC,CACzD9B,gBAAiBmH,EAAW1I,MAAMwB,OAAOgI,SACzCD,MAAOb,EAAW1I,MAAMwB,OAAOC,UAC5B8G,EAAOG,EAAW1I,WAEvB0J,WAAYhB,EAAWG,OAAOM,YAAW9F,YAAC,GAAI4E,EAAS5E,YAAC,CACtD9B,gBAAiBpB,EAAYuI,EAAW1I,MAAMwB,OAAO8H,mBAAqBZ,EAAW1I,MAAMwB,OAAOC,SAClG8H,MAAOb,EAAW1I,MAAMwB,OAAOgI,UAC5BjB,EAAOG,EAAW1I,WAEvB2J,MAAOjB,EAAWG,OAAOM,YAAY,CACnCX,aAAc,EACdjH,gBAAkBpB,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOC,SACtD8H,MAAQpJ,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOgI,WAE9CI,MAAOlB,EAAWG,OAAOM,YAAY,CACnCX,aAAc,EACdqB,YAAc1J,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOgI,SAClDD,MAAQpJ,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOgI,SAC5C,gBAAiB,CAAED,MAAQpJ,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOgI,UAC/D,SAAUrJ,EAAY,GAAEkD,YAAA,GAAQ4E,EAAU,CAAC6B,OAAO,aAAD3F,OAAeuE,EAAW1I,MAAMwB,OAAOgI,UAAYO,UAAU,aAAD5F,OAAeuE,EAAW1I,MAAMwB,OAAOgI,eAEtJQ,KAAMtB,EAAWG,OAAOM,YAAW9F,YAAC,GAAI4E,EAAU,CAChDsB,MAAQpJ,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOgI,SAC5CK,YAAc1J,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOgI,aAEpD7E,MAAO+D,EAAWG,OAAOM,YAAW9F,YAAC,GAAI4E,EAAU,CACjDsB,MAAQpJ,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOgI,aAK9CS,kBAAmBvB,EAAWG,OAAOM,YAAW9F,wBAAC,GAAI4E,EAAU,CAC7DsB,MAAQpJ,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOgI,SAC5CjI,gBAAkBpB,OAA+CrD,EAAnC4L,EAAW1I,MAAMwB,OAAOC,YACtD,IACF,WAAYtB,EAAY,GAAK,CAC3BoJ,MAAOb,EAAW1I,MAAMwB,OAAOC,SAC/BF,gBAAiBmH,EAAW1I,MAAMwB,OAAOgI,cAG7CU,SAAU,GACVC,QAAS,SAACR,GACR,IA3EgBS,EA2EVC,GA3EUD,EA2EcT,EA1Ef,CAAC,cAAc,aAAa,cAAc,eAAe,cAAc,iBAAiB,kBACzFW,QAAO,SAACC,EAAoBC,GAAe,SAAArG,OAAAsG,YAAUF,GAAGE,YAAMC,MAAMjF,KAAK2E,EAAQO,uBAAuBH,QAAgC,KA0EtJb,EAAMgB,uBAAuB,eAAe,GAAGC,aAAa,MAAO,IACnEP,EAAOQ,QAAO,SAAAR,GAAM,MAA6B,SAAzBA,EAAO/I,MAAM4D,WAAoBoD,SAAQ,SAAAsB,GAAK,OAAIA,EAAMgB,aAAa,aAAchB,EAAMkB,aAAa,gBAAkB,YAGrJ,CAAAvO,IAAA,WAAAsC,MAED,SAAgBgK,EAAiB7I,EAAeG,GAC3C0I,IACDH,EAAWG,OAASA,GACnB7I,IACD0I,EAAW1I,MAAQA,GACG,qBAAdG,IACRuI,EAAWK,KAAO,CAAE5I,UAAWA,QAClCuI,EA9Ea,GAAVA,EACGG,YAA6B/L,EADhC4L,EAEG1I,WAA2BlD,EAF9B4L,EAGGK,KAAO,CACZ5I,WAAW,GA4ER,IAAM0B,EAAW6G,EAAW7G,SACpB,sBAAM6G,EAAWqC,c,6KCrGhCC,EAAA,kBAAAC,GAAA,IAAAA,EAAA,GAAAC,EAAA9C,OAAA+C,UAAAC,EAAAF,EAAAG,eAAAC,EAAAlD,OAAAkD,gBAAA,SAAApD,EAAA3L,EAAAgP,GAAArD,EAAA3L,GAAAgP,EAAA1M,OAAA2M,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAA9D,EAAA3L,EAAAsC,GAAA,OAAAuJ,OAAAkD,eAAApD,EAAA3L,EAAA,CAAAsC,QAAAoN,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAjE,EAAA3L,GAAA,IAAAyP,EAAA,aAAAI,GAAAJ,EAAA,SAAA9D,EAAA3L,EAAAsC,GAAA,OAAAqJ,EAAA3L,GAAAsC,GAAA,SAAAwN,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAApB,qBAAAwB,EAAAJ,EAAAI,EAAAC,EAAAxE,OAAAyE,OAAAH,EAAAvB,WAAAhJ,EAAA,IAAA2K,EAAAL,GAAA,WAAAnB,EAAAsB,EAAA,WAAA/N,MAAAkO,EAAAT,EAAAE,EAAArK,KAAAyK,EAAA,SAAAI,EAAAC,EAAA/E,EAAAgF,GAAA,WAAAC,KAAA,SAAAD,IAAAD,EAAAG,KAAAlF,EAAAgF,IAAA,MAAAd,GAAA,OAAAe,KAAA,QAAAD,IAAAd,IAAAnB,EAAAoB,OAAA,IAAAgB,EAAA,YAAAV,KAAA,SAAAW,KAAA,SAAAC,KAAA,IAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAArF,OAAAsF,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAAzC,GAAAE,EAAAgC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAApC,UAAAwB,EAAAxB,UAAA/C,OAAAyE,OAAAW,GAAA,SAAAM,EAAA3C,GAAA,0BAAA7C,SAAA,SAAAyF,GAAA/B,EAAAb,EAAA4C,GAAA,SAAAb,GAAA,YAAAc,QAAAD,EAAAb,SAAA,SAAAe,EAAArB,EAAAsB,GAAA,IAAAC,EAAA7C,EAAA,gBAAAzM,MAAA,SAAAkP,EAAAb,GAAA,SAAAkB,IAAA,WAAAF,GAAA,SAAAlQ,EAAAC,IAAA,SAAAoQ,EAAAN,EAAAb,EAAAlP,EAAAC,GAAA,IAAAqQ,EAAAtB,EAAAJ,EAAAmB,GAAAnB,EAAAM,GAAA,aAAAoB,EAAAnB,KAAA,KAAArI,EAAAwJ,EAAApB,IAAArO,EAAAiG,EAAAjG,MAAA,OAAAA,GAAA,iBAAAA,GAAAuM,EAAAgC,KAAAvO,EAAA,WAAAqP,EAAAlQ,QAAAa,EAAA0P,SAAAC,MAAA,SAAA3P,GAAAwP,EAAA,OAAAxP,EAAAb,EAAAC,MAAA,SAAAmO,GAAAiC,EAAA,QAAAjC,EAAApO,EAAAC,MAAAiQ,EAAAlQ,QAAAa,GAAA2P,MAAA,SAAAC,GAAA3J,EAAAjG,MAAA4P,EAAAzQ,EAAA8G,MAAA,SAAA4J,GAAA,OAAAL,EAAA,QAAAK,EAAA1Q,EAAAC,QAAAqQ,EAAApB,KAAAmB,CAAAN,EAAAb,EAAAlP,EAAAC,MAAA,OAAAkQ,MAAAK,KAAAJ,YAAA,SAAArB,EAAAT,EAAAE,EAAArK,GAAA,IAAAwM,EAAA,iCAAAZ,EAAAb,GAAA,iBAAAyB,EAAA,UAAAC,MAAA,iDAAAD,EAAA,cAAAZ,EAAA,MAAAb,EAAA,OAAA2B,IAAA,IAAA1M,EAAA4L,SAAA5L,EAAA+K,QAAA,KAAA4B,EAAA3M,EAAA2M,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAA3M,GAAA,GAAA4M,EAAA,IAAAA,IAAA1B,EAAA,gBAAA0B,GAAA,YAAA5M,EAAA4L,OAAA5L,EAAA8M,KAAA9M,EAAA+M,MAAA/M,EAAA+K,SAAA,aAAA/K,EAAA4L,OAAA,uBAAAY,EAAA,MAAAA,EAAA,YAAAxM,EAAA+K,IAAA/K,EAAAgN,kBAAAhN,EAAA+K,SAAA,WAAA/K,EAAA4L,QAAA5L,EAAAiN,OAAA,SAAAjN,EAAA+K,KAAAyB,EAAA,gBAAAL,EAAAtB,EAAAV,EAAAE,EAAArK,GAAA,cAAAmM,EAAAnB,KAAA,IAAAwB,EAAAxM,EAAAkN,KAAA,6BAAAf,EAAApB,MAAAG,EAAA,gBAAAxO,MAAAyP,EAAApB,IAAAmC,KAAAlN,EAAAkN,MAAA,UAAAf,EAAAnB,OAAAwB,EAAA,YAAAxM,EAAA4L,OAAA,QAAA5L,EAAA+K,IAAAoB,EAAApB,OAAA,SAAA8B,EAAAF,EAAA3M,GAAA,IAAAmN,EAAAnN,EAAA4L,SAAAe,EAAAnD,SAAA2D,GAAA,QAAAxS,IAAAiR,EAAA,OAAA5L,EAAA2M,SAAA,eAAAQ,GAAAR,EAAAnD,SAAA4D,SAAApN,EAAA4L,OAAA,SAAA5L,EAAA+K,SAAApQ,EAAAkS,EAAAF,EAAA3M,GAAA,UAAAA,EAAA4L,SAAA,WAAAuB,IAAAnN,EAAA4L,OAAA,QAAA5L,EAAA+K,IAAA,IAAAsC,UAAA,oCAAAF,EAAA,aAAAjC,EAAA,IAAAiB,EAAAtB,EAAAe,EAAAe,EAAAnD,SAAAxJ,EAAA+K,KAAA,aAAAoB,EAAAnB,KAAA,OAAAhL,EAAA4L,OAAA,QAAA5L,EAAA+K,IAAAoB,EAAApB,IAAA/K,EAAA2M,SAAA,KAAAzB,EAAA,IAAAoC,EAAAnB,EAAApB,IAAA,OAAAuC,IAAAJ,MAAAlN,EAAA2M,EAAAY,YAAAD,EAAA5Q,MAAAsD,EAAAwN,KAAAb,EAAAc,QAAA,WAAAzN,EAAA4L,SAAA5L,EAAA4L,OAAA,OAAA5L,EAAA+K,SAAApQ,GAAAqF,EAAA2M,SAAA,KAAAzB,GAAAoC,GAAAtN,EAAA4L,OAAA,QAAA5L,EAAA+K,IAAA,IAAAsC,UAAA,oCAAArN,EAAA2M,SAAA,KAAAzB,GAAA,SAAAwC,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAAC,KAAAN,GAAA,SAAAO,EAAAP,GAAA,IAAAzB,EAAAyB,EAAAQ,YAAA,GAAAjC,EAAAnB,KAAA,gBAAAmB,EAAApB,IAAA6C,EAAAQ,WAAAjC,EAAA,SAAAxB,EAAAL,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAAnE,QAAAuH,EAAA,WAAAW,OAAA,YAAA5C,EAAA6C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA/E,GAAA,GAAAgF,EAAA,OAAAA,EAAAtD,KAAAqD,GAAA,sBAAAA,EAAAd,KAAA,OAAAc,EAAA,IAAAE,MAAAF,EAAAlR,QAAA,KAAAqR,GAAA,EAAAjB,EAAA,SAAAA,IAAA,OAAAiB,EAAAH,EAAAlR,QAAA,GAAA6L,EAAAgC,KAAAqD,EAAAG,GAAA,OAAAjB,EAAA9Q,MAAA4R,EAAAG,GAAAjB,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAA9Q,WAAA/B,EAAA6S,EAAAN,MAAA,EAAAM,GAAA,OAAAA,UAAA,OAAAA,KAAAd,GAAA,SAAAA,IAAA,OAAAhQ,WAAA/B,EAAAuS,MAAA,UAAA/B,EAAAnC,UAAAoC,EAAAjC,EAAAuC,EAAA,eAAAhP,MAAA0O,EAAArB,cAAA,IAAAZ,EAAAiC,EAAA,eAAA1O,MAAAyO,EAAApB,cAAA,IAAAoB,EAAAuD,YAAA7E,EAAAuB,EAAAzB,EAAA,qBAAAb,EAAA6F,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAAE,YAAA,QAAAD,QAAA1D,GAAA,uBAAA0D,EAAAH,aAAAG,EAAAE,QAAAjG,EAAAkG,KAAA,SAAAJ,GAAA,OAAA3I,OAAAgJ,eAAAhJ,OAAAgJ,eAAAL,EAAAxD,IAAAwD,EAAAM,UAAA9D,EAAAvB,EAAA+E,EAAAjF,EAAA,sBAAAiF,EAAA5F,UAAA/C,OAAAyE,OAAAgB,GAAAkD,GAAA9F,EAAAqG,MAAA,SAAApE,GAAA,OAAAqB,QAAArB,IAAAY,EAAAG,EAAA9C,WAAAa,EAAAiC,EAAA9C,UAAAS,GAAA,0BAAAX,EAAAgD,gBAAAhD,EAAAsG,MAAA,SAAAjF,EAAAC,EAAAC,EAAAC,EAAAyB,QAAA,IAAAA,MAAAnQ,SAAA,IAAAyT,EAAA,IAAAvD,EAAA5B,EAAAC,EAAAC,EAAAC,EAAAC,GAAAyB,GAAA,OAAAjD,EAAA6F,oBAAAvE,GAAAiF,IAAA7B,OAAAnB,MAAA,SAAA1J,GAAA,OAAAA,EAAAuK,KAAAvK,EAAAjG,MAAA2S,EAAA7B,WAAA7B,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAA5C,EAAAwG,KAAA,SAAAnP,GAAA,IAAAoP,EAAAtJ,OAAA9F,GAAAmP,EAAA,WAAAlV,KAAAmV,EAAAD,EAAApB,KAAA9T,GAAA,OAAAkV,EAAAE,UAAA,SAAAhC,IAAA,KAAA8B,EAAAlS,QAAA,KAAAhD,EAAAkV,EAAAG,MAAA,GAAArV,KAAAmV,EAAA,OAAA/B,EAAA9Q,MAAAtC,EAAAoT,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAAN,MAAA,EAAAM,IAAA1E,EAAA2C,SAAAd,EAAA3B,UAAA,CAAA8F,YAAAnE,EAAA0D,MAAA,SAAAqB,GAAA,QAAAC,KAAA,OAAAnC,KAAA,OAAAV,KAAA,KAAAC,WAAApS,EAAA,KAAAuS,MAAA,OAAAP,SAAA,UAAAf,OAAA,YAAAb,SAAApQ,EAAA,KAAAsT,WAAA9H,QAAAgI,IAAAuB,EAAA,QAAAX,KAAA,WAAAA,EAAAa,OAAA,IAAA3G,EAAAgC,KAAA,KAAA8D,KAAAP,OAAAO,EAAAc,MAAA,WAAAd,QAAApU,IAAAmV,KAAA,gBAAA5C,MAAA,MAAA6C,EAAA,KAAA9B,WAAA,GAAAG,WAAA,aAAA2B,EAAA/E,KAAA,MAAA+E,EAAAhF,IAAA,YAAAiF,MAAAhD,kBAAA,SAAAiD,GAAA,QAAA/C,KAAA,MAAA+C,EAAA,IAAAjQ,EAAA,cAAAkQ,EAAAC,EAAAC,GAAA,OAAAjE,EAAAnB,KAAA,QAAAmB,EAAApB,IAAAkF,EAAAjQ,EAAAwN,KAAA2C,EAAAC,IAAApQ,EAAA4L,OAAA,OAAA5L,EAAA+K,SAAApQ,KAAAyV,EAAA,QAAA3B,EAAA,KAAAR,WAAA7Q,OAAA,EAAAqR,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAAtC,EAAAyB,EAAAQ,WAAA,YAAAR,EAAAC,OAAA,OAAAqC,EAAA,UAAAtC,EAAAC,QAAA,KAAA8B,KAAA,KAAAU,EAAApH,EAAAgC,KAAA2C,EAAA,YAAA0C,EAAArH,EAAAgC,KAAA2C,EAAA,iBAAAyC,GAAAC,EAAA,SAAAX,KAAA/B,EAAAE,SAAA,OAAAoC,EAAAtC,EAAAE,UAAA,WAAA6B,KAAA/B,EAAAG,WAAA,OAAAmC,EAAAtC,EAAAG,iBAAA,GAAAsC,GAAA,QAAAV,KAAA/B,EAAAE,SAAA,OAAAoC,EAAAtC,EAAAE,UAAA,YAAAwC,EAAA,UAAA7D,MAAA,kDAAAkD,KAAA/B,EAAAG,WAAA,OAAAmC,EAAAtC,EAAAG,gBAAAd,OAAA,SAAAjC,EAAAD,GAAA,QAAA0D,EAAA,KAAAR,WAAA7Q,OAAA,EAAAqR,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,QAAA,KAAA8B,MAAA1G,EAAAgC,KAAA2C,EAAA,oBAAA+B,KAAA/B,EAAAG,WAAA,KAAAwC,EAAA3C,EAAA,OAAA2C,IAAA,UAAAvF,GAAA,aAAAA,IAAAuF,EAAA1C,QAAA9C,MAAAwF,EAAAxC,aAAAwC,EAAA,UAAApE,EAAAoE,IAAAnC,WAAA,UAAAjC,EAAAnB,OAAAmB,EAAApB,MAAAwF,GAAA,KAAA3E,OAAA,YAAA4B,KAAA+C,EAAAxC,WAAA7C,GAAA,KAAAsF,SAAArE,IAAAqE,SAAA,SAAArE,EAAA6B,GAAA,aAAA7B,EAAAnB,KAAA,MAAAmB,EAAApB,IAAA,gBAAAoB,EAAAnB,MAAA,aAAAmB,EAAAnB,KAAA,KAAAwC,KAAArB,EAAApB,IAAA,WAAAoB,EAAAnB,MAAA,KAAAgF,KAAA,KAAAjF,IAAAoB,EAAApB,IAAA,KAAAa,OAAA,cAAA4B,KAAA,kBAAArB,EAAAnB,MAAAgD,IAAA,KAAAR,KAAAQ,GAAA9C,GAAAuF,OAAA,SAAA1C,GAAA,QAAAU,EAAA,KAAAR,WAAA7Q,OAAA,EAAAqR,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAG,eAAA,YAAAyC,SAAA5C,EAAAQ,WAAAR,EAAAI,UAAAG,EAAAP,GAAA1C,IAAAwF,MAAA,SAAA7C,GAAA,QAAAY,EAAA,KAAAR,WAAA7Q,OAAA,EAAAqR,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,WAAA,KAAA1B,EAAAyB,EAAAQ,WAAA,aAAAjC,EAAAnB,KAAA,KAAA2F,EAAAxE,EAAApB,IAAAoD,EAAAP,GAAA,OAAA+C,GAAA,UAAAlE,MAAA,0BAAAmE,cAAA,SAAAtC,EAAAf,EAAAE,GAAA,YAAAd,SAAA,CAAAnD,SAAAiC,EAAA6C,GAAAf,aAAAE,WAAA,cAAA7B,SAAA,KAAAb,SAAApQ,GAAAuQ,IAAApC,EAGA,IAAM+H,EAAQhR,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA+B,IAAA,OAAAlI,IAAAqB,MAAA,SAAA8G,GAAA,cAAAA,EAAArB,KAAAqB,EAAAxD,MAAA,cAAAwD,EAAA/D,OAAA,SAAY,oEAAgC,KAAF,mBAAA+D,EAAAlB,UAAAiB,QAC7DE,EAAWpR,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAkC,IAAA,OAAArI,IAAAqB,MAAA,SAAAiH,GAAA,cAAAA,EAAAxB,KAAAwB,EAAA3D,MAAA,cAAA2D,EAAAlE,OAAA,SAAY,oEAAsC,KAAF,mBAAAkE,EAAArB,UAAAoB,QACtEE,EAAoBvR,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAqC,IAAA,OAAAxI,IAAAqB,MAAA,SAAAoH,GAAA,cAAAA,EAAA3B,KAAA2B,EAAA9D,MAAA,cAAA8D,EAAArE,OAAA,SACjC,gCAAsD,wBAAAqE,EAAAxB,UAAAuB,QAEpDE,EAAU1R,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAwC,IAAA,OAAA3I,IAAAqB,MAAA,SAAAuH,GAAA,cAAAA,EAAA9B,KAAA8B,EAAAjE,MAAA,cAAAiE,EAAAxE,OAAA,SAAY,gCAAoC,KAAF,mBAAAwE,EAAA3B,UAAA0B,QACnEE,EAAO7R,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA2C,IAAA,OAAA9I,IAAAqB,MAAA,SAAA0H,GAAA,cAAAA,EAAAjC,KAAAiC,EAAApE,MAAA,cAAAoE,EAAA3E,OAAA,SAAY,gCAA8B,KAAF,mBAAA2E,EAAA9B,UAAA6B,QAC1DE,EAA4BhS,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA8C,IAAA,OAAAjJ,IAAAqB,MAAA,SAAA6H,GAAA,cAAAA,EAAApC,KAAAoC,EAAAvE,MAAA,cAAAuE,EAAA9E,OAAA,SAAY,gCAAwE,KAAF,mBAAA8E,EAAAjC,UAAAgC,QACzHE,EAAgBnS,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAiD,IAAA,OAAApJ,IAAAqB,MAAA,SAAAgI,GAAA,cAAAA,EAAAvC,KAAAuC,EAAA1E,MAAA,cAAA0E,EAAAjF,OAAA,SAAY,gCAAgD,KAAF,mBAAAiF,EAAApC,UAAAmC,QACrFE,EAAoBtS,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAoD,IAAA,OAAAvJ,IAAAqB,MAAA,SAAAmI,GAAA,cAAAA,EAAA1C,KAAA0C,EAAA7E,MAAA,cAAA6E,EAAApF,OAAA,SAAY,gCAAwD,KAAF,mBAAAoF,EAAAvC,UAAAsC,QACjGE,EAAYzS,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAuD,IAAA,OAAA1J,IAAAqB,MAAA,SAAAsI,GAAA,cAAAA,EAAA7C,KAAA6C,EAAAhF,MAAA,cAAAgF,EAAAvF,OAAA,SAAY,gCAA8B,KAAF,mBAAAuF,EAAA1C,UAAAyC,QAC/DE,EAAgB5S,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA0D,IAAA,OAAA7J,IAAAqB,MAAA,SAAAyI,GAAA,cAAAA,EAAAhD,KAAAgD,EAAAnF,MAAA,cAAAmF,EAAA1F,OAAA,SAC7B,oEAA8C,wBAAA0F,EAAA7C,UAAA4C,QAE5CE,EAAiB/S,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA6D,IAAA,OAAAhK,IAAAqB,MAAA,SAAA4I,GAAA,cAAAA,EAAAnD,KAAAmD,EAAAtF,MAAA,cAAAsF,EAAA7F,OAAA,SAC9B,oEAAgD,wBAAA6F,EAAAhD,UAAA+C,QAE9CE,EAAkBlT,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAgE,IAAA,OAAAnK,IAAAqB,MAAA,SAAA+I,GAAA,cAAAA,EAAAtD,KAAAsD,EAAAzF,MAAA,cAAAyF,EAAAhG,OAAA,SAC/B,gCAAkD,wBAAAgG,EAAAnD,UAAAkD,QAEhDE,EAAwBrT,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAmE,IAAA,OAAAtK,IAAAqB,MAAA,SAAAkJ,GAAA,cAAAA,EAAAzD,KAAAyD,EAAA5F,MAAA,cAAA4F,EAAAnG,OAAA,SACrC,oEAA8D,wBAAAmG,EAAAtD,UAAAqD,QAE5DE,EAAsCxT,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAsE,IAAA,OAAAzK,IAAAqB,MAAA,SAAAqJ,GAAA,cAAAA,EAAA5D,KAAA4D,EAAA/F,MAAA,cAAA+F,EAAAtG,OAAA,SACnD,gCAAgE,wBAAAsG,EAAAzD,UAAAwD,QAE9DE,EAAiC3T,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAyE,IAAA,OAAA5K,IAAAqB,MAAA,SAAAwJ,GAAA,cAAAA,EAAA/D,KAAA+D,EAAAlG,MAAA,cAAAkG,EAAAzG,OAAA,SAC9C,2EAA2D,wBAAAyG,EAAA5D,UAAA2D,QAEzDE,EAAsC9T,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA4E,IAAA,OAAA/K,IAAAqB,MAAA,SAAA2J,GAAA,cAAAA,EAAAlE,KAAAkE,EAAArG,MAAA,cAAAqG,EAAA5G,OAAA,SACnD,oEAAgE,wBAAA4G,EAAA/D,UAAA8D,QAE9DE,EAA8BjU,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA+E,IAAA,OAAAlL,IAAAqB,MAAA,SAAA8J,GAAA,cAAAA,EAAArE,KAAAqE,EAAAxG,MAAA,cAAAwG,EAAA/G,OAAA,SAC3C,2EAAuE,wBAAA+G,EAAAlE,UAAAiE,QAErEE,EAAsBpU,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAkF,IAAA,OAAArL,IAAAqB,MAAA,SAAAiK,GAAA,cAAAA,EAAAxE,KAAAwE,EAAA3G,MAAA,cAAA2G,EAAAlH,OAAA,SACnC,oEAA+D,wBAAAkH,EAAArE,UAAAoE,QAE7DE,EAAoBvU,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAqF,IAAA,OAAAxL,IAAAqB,MAAA,SAAAoK,GAAA,cAAAA,EAAA3E,KAAA2E,EAAA9G,MAAA,cAAA8G,EAAArH,OAAA,SACjC,oEAA6D,wBAAAqH,EAAAxE,UAAAuE,QAE3DE,EAAe1U,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAwF,IAAA,OAAA3L,IAAAqB,MAAA,SAAAuK,GAAA,cAAAA,EAAA9E,KAAA8E,EAAAjH,MAAA,cAAAiH,EAAAxH,OAAA,SAC5B,gCAA4C,wBAAAwH,EAAA3E,UAAA0E,QAE1CE,EAAU7U,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA2F,IAAA,OAAA9L,IAAAqB,MAAA,SAAA0K,GAAA,cAAAA,EAAAjF,KAAAiF,EAAApH,MAAA,cAAAoH,EAAA3H,OAAA,SAAY,2EAAoC,KAAF,mBAAA2H,EAAA9E,UAAA6E,QACnEE,EAAoBhV,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA8F,IAAA,OAAAjM,IAAAqB,MAAA,SAAA6K,GAAA,cAAAA,EAAApF,KAAAoF,EAAAvH,MAAA,cAAAuH,EAAA9H,OAAA,SACjC,2EAA4C,wBAAA8H,EAAAjF,UAAAgF,QAE1CE,EAAoBnV,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAiG,IAAA,OAAApM,IAAAqB,MAAA,SAAAgL,GAAA,cAAAA,EAAAvF,KAAAuF,EAAA1H,MAAA,cAAA0H,EAAAjI,OAAA,SACjC,2EAAkC,wBAAAiI,EAAApF,UAAAmF,QA2BhCE,GAzBatV,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAoG,IAAA,OAAAvM,IAAAqB,MAAA,SAAAmL,GAAA,cAAAA,EAAA1F,KAAA0F,EAAA7H,MAAA,cAAA6H,EAAApI,OAAA,SAC1B,2EAAuC,wBAAAoI,EAAAvF,UAAAsF,QAElBvV,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAsG,IAAA,OAAAzM,IAAAqB,MAAA,SAAAqL,GAAA,cAAAA,EAAA5F,KAAA4F,EAAA/H,MAAA,cAAA+H,EAAAtI,OAAA,SAChC,2EAA6C,wBAAAsI,EAAAzF,UAAAwF,QAE5BzV,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAwG,IAAA,OAAA3M,IAAAqB,MAAA,SAAAuL,GAAA,cAAAA,EAAA9F,KAAA8F,EAAAjI,MAAA,cAAAiI,EAAAxI,OAAA,SAC5B,2EAA+B,wBAAAwI,EAAA3F,UAAA0F,QAEF3V,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA0G,IAAA,OAAA7M,IAAAqB,MAAA,SAAAyL,GAAA,cAAAA,EAAAhG,KAAAgG,EAAAnI,MAAA,cAAAmI,EAAA1I,OAAA,SACxC,oEAAgE,wBAAA0I,EAAA7F,UAAA4F,QAE3B7V,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA4G,IAAA,OAAA/M,IAAAqB,MAAA,SAAA2L,GAAA,cAAAA,EAAAlG,KAAAkG,EAAArI,MAAA,cAAAqI,EAAA5I,OAAA,SAChD,oEAAwE,wBAAA4I,EAAA/F,UAAA8F,QAErD/V,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAA8G,IAAA,OAAAjN,IAAAqB,MAAA,SAAA6L,GAAA,cAAAA,EAAApG,KAAAoG,EAAAvI,MAAA,cAAAuI,EAAA9I,OAAA,SAC9B,2EAA4C,wBAAA8I,EAAAjG,UAAAgG,QAEpBjW,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAgH,IAAA,OAAAnN,IAAAqB,MAAA,SAAA+L,GAAA,cAAAA,EAAAtG,KAAAsG,EAAAzI,MAAA,cAAAyI,EAAAhJ,OAAA,SACnC,2EAAiD,wBAAAgJ,EAAAnG,UAAAkG,QAG9BnW,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAkH,IAAA,OAAArN,IAAAqB,MAAA,SAAAiM,GAAA,cAAAA,EAAAxG,KAAAwG,EAAA3I,MAAA,cAAA2I,EAAAlJ,OAAA,SAC9B,4EAA4C,wBAAAkJ,EAAArG,UAAAoG,QAE9BrW,OAAUiR,YAAAjI,IAAAmG,MAAC,SAAAoH,IAAA,OAAAvN,IAAAqB,MAAA,SAAAmM,GAAA,cAAAA,EAAA1G,KAAA0G,EAAA7I,MAAA,cAAA6I,EAAApJ,OAAA,SACzB,2EAA8B,wBAAAoJ,EAAAvG,UAAAsG,SAkCrBE,EAAwC,CACjDzF,MAAO,CACH0F,IAAK,kBAAM1W,gBAACgR,EAAK,OACjBrO,MAAO,YACPgU,KAAM,SACNC,gBAAiB,GACjBC,YAAY,GAEhBzF,SAAU,CACNsF,IAAK,kBAAM1W,gBAACoR,EAAQ,OACpBzO,MAAO,cACPgU,KAAM,YACNC,gBAAiB,GACjBC,YAAY,GAEhBtF,kBAAmB,CACfmF,IAAK,kBAAM1W,gBAACuR,EAAiB,OAC7B5O,MAAO,iCACPgU,KAAM,6BACNC,gBAAiB,GACjBC,YAAY,GAEhBjE,cAAe,CACX8D,IAAK,kBAAM1W,gBAAC4S,EAAa,OACzBjQ,MAAO,wBACPgU,KAAM,kBACNC,gBAAiB,GACjBC,YAAY,GAEhB9D,eAAgB,CACZ2D,IAAK,kBAAM1W,gBAAC+S,EAAc,OAC1BpQ,MAAO,wBACPgU,KAAM,oBACNC,gBAAiB,GACjBC,YAAY,GAEhB3D,gBAAiB,CACbwD,IAAK,kBAAM1W,gBAACkT,EAAe,OAC3BvQ,MAAO,gBACPgU,KAAM,oBACNC,gBAAiB,GACjBC,YAAY,GAEhBpE,UAAW,CACPiE,IAAK,kBAAM1W,gBAACyS,EAAS,OACrB9P,MAAO,YACPgU,KAAM,aACNC,gBAAiB,GACjBC,YAAY,GAEhBnC,aAAc,CACVgC,IAAK,kBAAM1W,gBAAC0U,EAAY,OACxB/R,MAAO,YACPgU,KAAM,gBACNC,gBAAiB,GACjBC,YAAY,GAEhBnF,QAAS,CACLgF,IAAK,kBAAM1W,gBAAC0R,EAAO,OACnB/O,MAAO,UACPgU,KAAM,WACNC,gBAAiB,GACjBC,YAAY,GAEhBhF,KAAM,CACF6E,IAAK,kBAAM1W,gBAAC6R,EAAI,OAChBlP,MAAO,mBACPgU,KAAM,QACNC,gBAAiB,GACjBC,YAAY,GAEhB7E,0BAA2B,CACvB0E,IAAK,kBAAM1W,gBAACgS,EAAyB,OACrCrP,MAAO,2CACPgU,KAAM,6BACNC,gBAAiB,GACjBC,YAAY,GAEhB1E,cAAe,CACXuE,IAAK,kBAAM1W,gBAACmS,EAAa,OACzBxP,MAAO,4BACPgU,KAAM,iBACNC,gBAAiB,GACjBC,YAAY,GAEhBvE,kBAAmB,CACfoE,IAAK,kBAAM1W,gBAACsS,EAAiB,OAC7B3P,MAAO,wBACPgU,KAAM,qBACNC,gBAAiB,GACjBC,YAAY,GAEhBhC,QAAS,CACL6B,IAAK,kBAAM1W,gBAAC6U,EAAO,OACnBlS,MAAO,WACPgU,KAAM,WACNC,gBAAiB,CAACE,IAAKC,WACvBF,YAAY,EACZvY,SAAU,CACN,CACIoY,IAAK,kBAAM1W,gBAAC6U,EAAO,OACnBlS,MAAO,WACPgU,KAAM,IACNC,gBAAiB,GACjBI,OAAO,EACPH,YAAY,GAEhB,CACIH,IAAK,kBAAM1W,gBAACgV,EAAiB,OAC7BrS,MAAO,uBACPgU,KAAM,qCACNC,gBAAiB,GACjBI,OAAO,EACPH,YAAY,GAEhB,CACIH,IAAK,kBAAM1W,gBAACmV,EAAiB,OAC7BxS,MAAO,WACPgU,KAAM,qCACNC,gBAAiB,GACjBI,OAAO,EACPH,YAAY,KAqHxBI,mBAAoB,CAChBtU,MAAO,kBACPgU,KAAM,sBACNC,gBAAiB,CAACE,IAAKI,QAASJ,IAAKK,QACrCN,YAAY,EACZvY,SAAU,CACN,CACIoY,IAAK,kBAAM1W,gBAACqT,EAAqB,OACjC1Q,MAAO,eACPgU,KAAM,IACNC,gBAAiB,GACjBI,OAAO,EACPH,YAAY,GAEhB,CACIH,IAAK,kBAAM1W,gBAACwT,EAAmC,OAC/C7Q,MAAO,oBACPgU,KAAM,6CACNK,OAAO,EACPJ,gBAAiB,GACjBC,YAAY,GAEhB,CACIH,IAAK,kBAAM1W,gBAAC2T,EAA8B,OAC1ChR,MAAO,qBACPgU,KAAM,uCACNK,OAAO,EACPJ,gBAAiB,GACjBC,YAAY,GAEhB,CACIH,IAAK,kBAAM1W,gBAAC8T,EAAmC,OAC/CnR,MAAO,2BACPgU,KAAM,wCACNK,OAAO,EACPJ,gBAAiB,GACjBC,YAAY,GAEhB,CACIH,IAAK,kBAAM1W,gBAACiU,EAA2B,OACvCtR,MAAO,6CACPgU,KAAM,qCACNK,OAAO,EACPJ,gBAAiB,GACjBC,YAAY,GAEhB,CACIH,IAAK,kBAAM1W,gBAACoU,EAAmB,OAC/BzR,MAAO,yCACPgU,KAAM,2CACNK,OAAO,EACPJ,gBAAiB,GACjBC,YAAY,GAEhB,CACIH,IAAK,kBAAM1W,gBAACuU,EAAiB,OAC7B5R,MAAO,uBACPgU,KAAM,yCACNK,OAAO,EACPJ,gBAAiB,GACjBC,YAAY,KAIxBO,MAAO,CACHV,IAAK,kBAAM1W,gBAACsV,EAAS,OACrB3S,MAAO,eACPgU,KAAM,SACNC,gBAAiB,CAACE,IAAKO,WACvBR,YAAY,IAMPS,EAA8BlR,OAAOwF,OAAO6K,GAE5Cc,EAAgC,SAACxV,GAAiC,IAADD,EACpE0V,EAAmB,QAAf1V,EAAGC,EAAQlG,YAAI,IAAAiG,OAAA,EAAZA,EAAc2V,MAAM,GAEjC,OAAID,IAASV,IAAKI,QACPT,EAAQQ,mBAAmBN,KAE7Ba,IAASV,IAAKC,UACZN,EAAQ5B,QAAQ8B,KAGlBa,IAASV,IAAKK,OACZV,EAAQQ,mBAAmBN,KAGnCa,IAASV,IAAKO,UACNZ,EAAQW,MAAMT,KAElBF,EAAQ/B,aAAaiC,O,gIC7bnBe,EAAoBpd,YAAkC,CAC/DC,IAAK,oBACLC,QAAS,IAAImd,MA6BJC,GA1ByB1c,YAAiB,CACnDX,IAAK,yBACLY,IAAK,SAAAC,GAAc,IACTyc,GAAY1c,EADXC,EAAHD,KACkBuc,GAEhB9L,EAAiCnD,YAAOoP,EAAUxR,WAClDyR,EAAkBlM,EAAOrO,OAE/B,OAAOqO,EAAOtD,QAAe,SAACC,EAAGlL,GAAiB,IAAZR,EAAWD,YAAAS,EAAA,GAAN,GAavC,OAAOkL,EAAO,IAAIuP,IAVG,mBAAVjb,EACHA,EACqB,IAEA,EAGJA,GAG8B,OACxD,MAI0B3B,YAAkB,CACnDX,IAAK,wBACLY,IAAK,SAAA4c,GAAc,IACTF,GAAY1c,EADX4c,EAAH5c,KACkBuc,GAItB,QAFuCjP,YAAOoP,EAAUxR,WAExC2R,MAAK,SAAAC,GAAO,QAAPrb,YAAAqb,EAAA,GAAO,UAIA3d,YAAc,CAC9CC,IAAK,uBACLC,SAAS,K,2LCzCA0d,EAA8B,SAAH9c,GAIW,IAAD+c,EAAA/c,EAHF6H,YAAI,IAAAkV,EAAG,UAASA,EAAAC,EAAAhd,EAChBid,YAAI,IAAAD,EAAGE,IAAKC,UAASH,EAClBlX,EAAIC,YAAA/F,EAAAgG,GAEnDoX,EAA6BC,cAAbC,EAAIF,EAAZG,OAAcC,EAAEJ,EAAFI,GACtBC,EAAYC,cAALC,EAAqBnc,YAAAic,EAAA,GAApB,GASR,OACI7Y,IAAAC,cAACsG,IAAMH,OAAA4S,OAAA,GACC9X,EAAI,CACR+X,QAAS,kBAXF,WACX,IAAIC,EAASC,SAAS5X,OAAO6X,eAAe3a,QAAQ,cAAgB,KAAO,EACxEya,EAAQ,EACPN,GAAY,EAATM,GAEHR,IAMeC,IACf1V,KAAMA,EACNoV,KAAMA,IAELU,EAAE,kBAKFM,EAAkB,WAC3B,IAAMC,EAAWC,cAWjB,OATApc,qBAAU,WACNoE,OAAO6X,eAAeI,WAAW,eAClC,CAACF,EAASG,WAEbtc,qBAAU,WACN,IAAI+b,GAASC,SAAS5X,OAAO6X,eAAe3a,QAAQ,cAAgB,KAAO,GAAK,EAChF8C,OAAO6X,eAAexZ,QAAQ,YAAY,GAADuC,OAAK+W,MAC/C,CAACI,EAASI,SAEN,O,sGCxCLC,EAAY,WAAH,OAAkC,IAAhBC,KAAKC,SAAkB,GAEjD,SAASnU,IAA8F,IAAvEoU,EAAqCxc,UAAAC,OAAA,QAAAzC,IAAAwC,UAAA,IAAAA,UAAA,GAAUyc,IAAczc,UAAAC,OAAA,QAAAzC,IAAAwC,UAAA,KAAAA,UAAA,GAC1F0c,EAAY5d,YAAkBsb,KAC9BuC,EAAQC,iBAAOP,KACrB5c,EAA0BC,mBAA2B8c,GAAoB7c,EAAAL,YAAAG,EAAA,GAAlEF,EAAKI,EAAA,GAAEH,EAAQG,EAAA,GA6BtB,OA3BAE,qBAAU,WACN6c,GAAU,SAAAG,GACN,IAAMC,EAAY,IAAIzC,IAAIwC,GAO1B,OALKtd,GAASA,GAAS,IACnBud,EAAUC,OAAOJ,EAAMzR,SAEvB4R,EAAUE,IAAIL,EAAMzR,QAAS3L,GAE1Bud,OAEZ,CAACvd,IAEJM,qBAAU,WACN,OAAO,WACC4c,GACAC,GAAU,SAAAG,GACN,IAAMC,EAAY,IAAIzC,IAAIwC,GAI1B,OAFAC,EAAUC,OAAOJ,EAAMzR,SAEhB4R,QAIpB,IAEI,CACHvd,QACAC,c,iIC5BKyd,EAAmBjgB,YAA0B,CACtDC,IAAK,gBACLC,QAAS,KAGAggB,EAAsB,WAC/B,IAAMC,EAAmBre,YAAkBme,GA6B3C,MAAO,CACHG,iBA5BqB,SAAHtf,GAKD,IAJjBG,EAAIH,EAAJG,KAAI6c,EAAAhd,EACJid,YAAI,IAAAD,EAAGE,IAAKqC,SAAQvC,EAAAwC,EAAAxf,EACpByf,iBAAS,IAAAD,GAAOA,EAAAE,EAAA1f,EAChB2f,mBAAW,IAAAD,EAAG,IAAIA,EAEZE,EC1ByBpB,KAAKqB,MAAsB,IAAhBrB,KAAKC,UD4B/C/T,YAAW,WACP2U,GAAiB,SAACS,GACd,OAAOA,EAAOrS,QAAO,SAACsS,GAAY,OAAKA,EAAaH,KAAOA,UAEhED,GAEHN,GAAiB,SAACS,GACd,MAAM,GAAN/Y,OAAAsG,YACOyS,GAAM,CACT,CACI3f,OACA8c,OACAwC,YACAG,e,mOE9BPxY,EAAQ,SAAA4Y,GAAAC,YAAA7Y,EAAA4Y,GAAA,IAAAE,EAAAC,YAAA/Y,GAIjB,SAAAA,EAAApH,GAAuD,IAADogB,EAAxC/Y,EAAOrH,EAAPqH,QAASI,EAAIzH,EAAJyH,KAAMD,EAAMxH,EAANwH,OAGJ,OAHU+D,YAAA,KAAAnE,IAC/BgZ,EAAAF,EAAAlQ,KAAA,KAAM3I,IAJVI,UAAI,EAAA2Y,EACJ5Y,YAAM,EAIF4Y,EAAK3Y,KAAOA,EACZ2Y,EAAK5Y,OAASA,EAAO4Y,EACxB,OAAA5U,YAAApE,GARgB,CAQhBiZ,YARyB7O,QAWxB8O,EAAiB1Y,YAAO2Y,KAAY,iBAAO,CAC7CC,OAAQ,YACRC,WAAY,MACZtU,MAAO,cAGLuU,EAAa9Y,YAAO,MAAM,iBAAO,CACnC+Y,YAAa,OACbC,UAAW,UAGFC,EAAiC,SAAC7R,EAAe8R,EAAuBC,GACjF,GAAI/R,EAAIxH,OAAQ,CACZ,IAAMyD,EAAUD,OAAOC,QAAQ+D,EAAIxH,QAEnC,OAAIuZ,EACO9V,EAAQiC,QAAiB,SAACC,EAAKoF,GAAI,SAAAxL,OAAAsG,YAASF,GAAGE,YAAKkF,EAAK,GAAGrF,QAAiB,SAACC,EAAKoF,GAAI,SAAAxL,OAAAsG,YAASF,GAAG,CAAE2T,EAAYA,EAAUvO,GAAQA,MAAO,QAAM,IAAIyO,KAAK,KAIhKpc,IAAAC,cAAAD,IAAAqc,SAAA,KACKhW,EAAQiW,KAAI,SAAAjf,GAAA,IAAAK,EAAAd,YAAAS,EAAA,GAAauF,GAAFlF,EAAA,GAAQA,EAAA,WAC5BsC,IAAAC,cAAAD,IAAAqc,SAAA,KAIIrc,IAAAC,cAAC6b,EAAU,KACNlZ,EAAO0Z,KAAI,SAAA5P,GAAK,OACb1M,IAAAC,cAAA,MAAI1F,IAAKmS,GACL1M,IAAAC,cAACyb,EAAc,KACVQ,EAAYA,EAAUxP,GAASA,aAUpE,OAAIyP,EACOD,EAAYA,EAAU9R,EAAI3H,SAAW2H,EAAI3H,QAGhDzC,IAAAC,cAACyb,EAAc,KACVQ,EAAYA,EAAU9R,EAAI3H,SAAW2H,EAAI3H,UAK/C,SAAS8Z,EAA4BnS,EAA4C8R,GACpF,OAAI9R,aAAe5H,EACRyZ,EAA+B7R,EAAK8R,GAE3C9R,aAAewC,MACXsP,EACOA,EAAU9R,EAAI3H,SAElB2H,EAAI3H,QAGXyZ,GAA4B,kBAAR9R,EACb8R,EAAU9R,GAEdA,I,6HCvCLoS,EAAexZ,YAAoC,UAAU,SAAA5H,GAAA,IAzCtC+P,EAAcnN,EAyC2Bye,EAAMrhB,EAANqhB,OAAQC,EAAKthB,EAALshB,MAAK,OAAArb,wBAAA,GAC9Eob,EAAOxd,WAAW0d,iBAAe,IACpCnY,QAAS,gBACToX,OAAQ,aA5CmBzQ,EA6CJuR,EA7CoC,CAC3DE,YAAa,CACX7c,SAAU,UACVR,gBAAiB,cACjBuI,OAAQ,MACRP,OALuCvJ,EA6CXye,GAxCfjd,OAAOgI,UAEtBqV,WAAY,CACV9c,SAAU,OACVR,gBAAiB,cACjBuI,OAAQ,MACRP,MAAOvJ,EAAMwB,OAAOgI,UAEtBsV,YAAa,CACX/c,SAAU,UACVR,gBAAiB,cACjBuI,OAAQ,MACRP,MAAOvJ,EAAMwB,OAAOgI,UAEtBuV,gBAAiB,CACfjV,OAAQ,iBACRP,MAAO,OACPhI,gBAAiB,QAEnByd,YAAa,CACXlV,OAAQ,iBACRP,MAAO,OACPhI,gBAAiB,QAEnB0d,YAAa,CACXnV,OAAQ,iBACRP,MAAO,UACPhI,gBAAiB,QAEnB2d,YAAa,CACXpV,OAAQ,iBACRP,MAAO,OACPhI,gBAAiB,YAEX4L,QASGgS,EAAgB,SAAH9f,GAAwB,IAAlBiC,EAAKjC,EAALiC,MAC9BiG,EAAcC,cAAPC,EAAqB7I,YAAA2I,EAAA,GAAlB,GACV6X,EAA0CC,qBAAWld,KAA7ClC,EAAWmf,EAAXnf,YAAaC,EAAgBkf,EAAhBlf,iBAErB,OACA8B,IAAAC,cAAA,OAAK8F,UAAWN,EAAInG,GAAS,KAC3BU,IAAAC,cAACuc,EAAY,CAAC7Z,MAAM,0DAAsC+Z,MAAM,cAAczD,QAAS,kBAAM/a,EAAiBY,IAAgBC,UAAS,KACvIiB,IAAAC,cAACuc,EAAY,CAAC7Z,MAAM,8DAAqC+Z,MAAM,aAAazD,QAAS,kBAAM/a,EAAiBY,IAAgBwe,SAAQ,KACpItd,IAAAC,cAACuc,EAAY,CAAC7Z,MAAM,2DAAkC+Z,MAAM,cAAczD,QAAS,kBAAM/a,EAAiBY,IAAgBye,UAAS,KAEnIvd,IAAAC,cAACuc,EAAY,CAAC7Z,MAAM,yBAAoB+Z,MAAM,kBAAkBzD,QAAS,kBAAMhb,EAAY,WAAU,KACrG+B,IAAAC,cAACuc,EAAY,CAAC7Z,MAAM,6BAAwB+Z,MAAM,cAAczD,QAAS,kBAAMhb,EAAY,iBAAgB,KAC3G+B,IAAAC,cAACuc,EAAY,CAAC7Z,MAAM,qCAAwB+Z,MAAM,cAAczD,QAAS,kBAAMhb,EAAY,kBAAiB,KAC5G+B,IAAAC,cAACuc,EAAY,CAAC7Z,MAAM,qCAAwB+Z,MAAM,cAAczD,QAAS,kBAAMhb,EAAY,kBAAiB,Q,uEChEpGuf,EAUAC,E,gCCTCC,EAAY,oBAAAA,IAAA/W,YAAA,KAAA+W,GAAA,KACXC,YAA8B,GAqBvC,OArByC/W,YAAA8W,EAAA,EAAAnjB,IAAA,KAAAsC,MAE1C,SACI+gB,EACAC,GACW,IAADrC,EAAA,KAKV,OAJKsC,KAAKH,YAAYC,KAAQE,KAAKH,YAAYC,GAAS,IAAIG,KAE5DD,KAAKH,YAAYC,GAAOI,IAAIH,GAErB,kBAAMrC,EAAKyC,IAAIL,EAAOC,MAChC,CAAAtjB,IAAA,UAAAsC,MAED,SAAkB+gB,EAAe/hB,GACxBiiB,KAAKH,YAAYC,IAEtBE,KAAKH,YAAYC,GAAOtX,SAAQ,SAAC4X,GAAE,OAAKA,EAAGN,EAAO/hB,QACrD,CAAAtB,IAAA,MAAAsC,MAED,SAAI+gB,EAAeC,GACfC,KAAKH,YAAYC,GAAOvD,OAAOwD,OAClCH,EAtBoB,GCKZS,EAAmB,WAC5B,SAAAA,IAAgD,IAA5B5jB,EAAW+C,UAAAC,OAAA,QAAAzC,IAAAwC,UAAA,GAAAA,UAAA,GCVX,UDUyBqJ,YAAA,KAAAwX,GAAA,KAAzB5jB,MAoBnB,OApBgDqM,YAAAuX,EAAA,EAAA5jB,IAAA,OAAAsC,MAEjD,SAAKhB,GACD2C,aAAaoB,QAAQke,KAAKvjB,IAAKgG,KAAKC,UAAU3E,MACjD,CAAAtB,IAAA,UAAAsC,MAED,WACI2B,aAAagb,WAAWsE,KAAKvjB,OAChC,CAAAA,IAAA,MAAAsC,MAED,WACI,IACI,IAAMyD,EAAM9B,aAAaC,QAAQqf,KAAKvjB,KAEtC,OAAK+F,EAEEC,KAAK6d,MAAM9d,GAFD,KAGnB,MAAO+d,GACL,OAAO,UAEdF,EArB2B,IFH/B,SAHWX,KAAM,gBAANA,EAAM,kBAGjB,CAHWA,MAAM,KAajB,SAHWC,OAAW,iBAAXA,IAAW,oBAGtB,CAHWA,MAAW,KAKhB,IAAMa,EAAO,SAAAC,GAAAlD,YAAAiD,EAAAC,GAAA,IAAAjD,EAAAC,YAAA+C,GAmBhB,SAAAA,IAAe,IAAD9C,EAE+B,OAF/B7U,YAAA,KAAA2X,IACV9C,EAAAF,EAAAlQ,KAAA,OAnBIoT,IAAqB,KAAIhD,EACzBiD,aAAO,EAAAjD,EACR3f,KAAiB,KAkBpB2f,EAAKiD,QAAU,IAAIN,EAAsB3C,EAJ5C,OAKA5U,YAAA0X,EAAA,EAAA/jB,IAAA,iBAAAsC,MAED,SAAsB2hB,EAAa3iB,GAC/BiiB,KAAKU,IAAMA,EACXV,KAAKjiB,KAAOA,EAEZiiB,KAAKW,QAAQC,KAAK,CACdF,MACA3iB,SAGJiiB,KAAKa,QAAQnB,EAAO3S,UACvB,CAAAtQ,IAAA,UAAAsC,MAED,WACIihB,KAAKU,IAAM,KACXV,KAAKjiB,KAAO,KACZiiB,KAAKW,QAAQG,UAEbd,KAAKa,QAAQnB,EAAOoB,WACvB,CAAArkB,IAAA,iCAAAsC,MAED,WACI,IAAMgiB,EAAkBf,KAAKW,QAAQtjB,MAEhC0jB,GAEAf,KAAK9b,gBAAgB6c,EAAgBL,OAE1CV,KAAKU,IAAMK,EAAgBL,IAC3BV,KAAKjiB,KAAOgjB,EAAgBhjB,QAC/B,CAAAtB,IAAA,kBAAAsC,MAED,WAAgE,IAAzC2hB,EAAkBlhB,UAAAC,OAAA,QAAAzC,IAAAwC,UAAA,GAAAA,UAAA,GAAGwgB,KAAKU,IAC7C,OAAOM,QAAQN,GAAOO,KAAKC,MAAQR,MACtC,EAAAjkB,IAAA,eAAAsC,MAlDD,SAAoBoiB,GAChB,OAAOF,KAAKC,MAAQC,IACvB,CAAA1kB,IAAA,oBAAAsC,MAED,WACI,IAAMkF,EAAU,IAAIuc,EAIpB,OAFAvc,EAAQmd,iCAEDnd,MACVuc,EAjBe,CAAYZ,GAAnBY,EAKFb,YAAcA,G,kLIpBZ0B,EAAe,SAACvI,GACzB,SAAK7U,IAAQC,oBAAsBD,IAAQlG,SAEtC+a,EAAgBrZ,QAGjBqZ,EAAgBwI,WAAU,SAACC,GAAC,IAAAvd,EAAA,OAAiB,QAAjBA,EAAKC,IAAQlG,YAAI,IAAAiG,OAAA,EAAZA,EAAc2V,MAAM6H,SAASD,OAAO,I,8DCKtE,SAASE,EAAcnkB,GAQP,IAADokB,EAAApkB,EANlBqkB,kBAAU,IAAAD,EAAG,SAAQA,EACrBE,EAAMtkB,EAANskB,OACA9I,EAAexb,EAAfwb,gBACAD,EAAIvb,EAAJub,KACArY,EAAQlD,EAARkD,SACG4C,EAAIC,YAAA/F,EAAAgG,GAEDue,EACF/I,GAAmBA,EAAgBrZ,OAC7B4hB,EAAavI,GACb7U,IAAQC,kBAOZ4d,GAL4BF,GAAUC,EAAOA,GAM/CrhB,EAEA0B,gBAAC6f,IAAQ,CAAClc,GAAI8b,IAGlB,OAAOzf,gBAAC8f,IAAK1Z,OAAA4S,OAAA,GAAK9X,EAAI,CAAEyV,KAAMA,EAAMrY,SAAUshB,K,kEC3B3C,SAASG,EAAW3kB,GAQLA,EANlBqkB,WACMrkB,EAANskB,OACetkB,EAAfwb,gBAImB,IAHnBD,EAAIvb,EAAJub,KACArY,EAAQlD,EAARkD,SACG4C,EAAIC,YAAA/F,EAAAgG,GAGP,OAAOpB,gBAAC8f,IAAK1Z,OAAA4S,OAAA,GAAK9X,EAAI,CAAEyV,KAAMA,EAAMrY,SAAUA,K,gFCf5C0hB,EAAuB,SAACC,EAAqBC,EAA0BC,GACzE,IAAMC,EAAgBC,YAAUJ,EAAa,CACzCtJ,KAAMwJ,EAAcD,EAAYvJ,OAGpC,SAAIyJ,GAAgBA,EAAaE,QAAUF,EAAaG,UAItDC,EAAsB,SAAtBA,EAAuBP,EAAqBQ,EAAiBN,GAC/D,IAAIO,EAA2C,GAC/C,GAAIhY,MAAMiY,QAAQF,GAMd,OALAA,EAAWna,SAAQ,SAACsa,GAChB,IAAMC,EAAQL,EAAoBP,EAAaW,EAAST,GAEpDU,GAASA,EAAM7J,OAAO0J,EAAqBrS,KAAKwS,MAEjDH,EAEN,GAAID,EAAWniB,SAAU,CAC1B,GAAK0hB,EAAqBC,EAAaQ,EAAYN,GAa9C,OAAOM,EAZR,IAAMI,EAAQL,EAAoBP,EAAaQ,EAAWniB,SAAU6hB,EAAcM,EAAW9J,MAO7F,GANIkK,GAASA,EAAMtjB,QACfsjB,EAAMva,SAAQ,SAACsa,GACXF,EAAqBrS,KAAKuS,MAI9BF,EAAqBnjB,OAAS,EAE9B,OADAmjB,EAAqBI,QAAQL,GACtBC,OAKd,GAAIV,EAAqBC,EAAaQ,EAAYN,GAAc,OAAOM,GAY1EM,EAAY,SAACpK,EAAc8J,GAC7B,IAAMO,EARU,SAACP,GAAwD,IACpCQ,EADmCC,EAAAC,YAC7CV,GAAU,IAArC,IAAAS,EAAAE,MAAAH,EAAAC,EAAAG,KAAAhU,MAAuC,CAAC,IAA7BiU,EAAYL,EAAApkB,MACnB,GAA0B,MAAtBykB,EAAa3K,KAAc,OAAO2K,GACzC,MAAAlX,GAAA8W,EAAA7C,EAAAjU,GAAA,QAAA8W,EAAAK,IACD,OAAO,KAIUC,CAAYf,GAEzBgB,EAAsC,GACtCT,GAAUS,EAAiBpT,KAAK2S,GACpC,IACqCU,EADrCC,EAAAR,YAC2BV,GAAU,IAArC,IAAAkB,EAAAP,MAAAM,EAAAC,EAAAN,KAAAhU,MAAuC,KAA5BiU,EAAYI,EAAA7kB,MAAgB4kB,EAAiBpT,KAAKmS,EAAoB7J,EAAM2K,EAAc,MAAK,MAAAlX,GAAAuX,EAAAtD,EAAAjU,GAAA,QAAAuX,EAAAJ,IAG1G,OADAE,EAAmBA,EAAiB5Y,QAAQ,SAAA+X,GAAO,YAAgB9lB,IAAZ8lB,MAC/BgB,QAGfC,EAAwC,WACjD,IAAA9kB,EAAwCC,mBAEtC,IAAGC,EAAAL,YAAAG,EAAA,GAFE+kB,EAAY7kB,EAAA,GAAE8kB,EAAe9kB,EAAA,GAG5B8b,EAAMD,cAANC,EACAU,EAAaF,cAAbE,SAkCR,OATAtc,qBAAU,WACN4kB,EAAgB,CACZ,CACIpf,MAAOoW,EAAE,aACZ5W,OAAAsG,YACEsY,EAAUtH,EAAUnC,UAE5B,CAACmC,IAEGzZ,IAAAC,cAAC+hB,IAAW,KAhCI,WAInB,IAHA,IAAMC,EAAkB,GACpBC,EAAmB,IAEdtT,EAAI,EAAGA,EAAIkT,EAAavkB,SAAUqR,EAAG,CAAC,IAADuT,EAAAC,EAC1CH,EAAI5T,KACArO,IAAAC,cAACoiB,IAAU,CACP9nB,IAAoB,QAAjB4nB,EAAEL,EAAalT,UAAE,IAAAuT,OAAA,EAAfA,EAAiBxf,MACtB2f,KACI1T,IAAMkT,EAAavkB,OAAS,OACtBzC,EAAS,GAAAqH,OACN+f,GAAQ/f,OAAG2f,EAAalT,GAAG+H,MAAQ,KAG/CoC,EAAiB,QAAhBqJ,EAACN,EAAalT,UAAE,IAAAwT,OAAA,EAAfA,EAAiBzf,SAG5Buf,GAAYJ,EAAalT,GAAG+H,MAAQ,GAGxC,OAAOsL,EAYUM,K,mDCnFZC,EAA0D,WACnE,IAAM7V,EAAQ8V,YAAexnB,KACvBkB,EAAgBC,YAAkB/B,KAClCyC,EAAWV,YAAkBpB,KAC7BS,EAAcgnB,YAAe7nB,KAC3Bme,EAAMD,cAANC,EAER,OACI/Y,IAAAC,cAACyiB,IAAK,CACFC,QAAS,WACLxmB,GAAc,GACdW,GAAS,IAEb+d,WAAS,EACT+H,OAAQjW,EAAMtR,UACdwnB,SAAO,EACPC,WAAS,EACT7f,KAAM8f,IAAOvoB,QACbgd,KAAMV,IAAKkM,QAEVrW,EAAMnR,QAAUwE,IAAAC,cAACgjB,IAAW,KAAEtW,EAAMnR,QACrCwE,IAAAC,cAACijB,IAAS,KAAEvW,EAAMpR,MAClByE,IAAAC,cAACkjB,IAAW,KACPxW,EAAMrR,eACH0E,IAAAC,cAACmjB,IAAW,CACR/K,KAAMC,IAAKC,UACXU,QAAS,WACL9c,GAAc,GACdW,GAAS,KAGZrB,EAAYV,SAAWge,EAAE,WAGlC/Y,IAAAC,cAACmjB,IAAW,CACRnK,QAAS,WACL9c,GAAc,GACdW,GAAS,KAGZrB,EAAYZ,QAAUke,EAAE,U,0BCtDhCsK,EAA6D,WACtE,IAAMC,EAAgBb,YAAelI,KACrChV,EAAcC,cAER+d,GAAe9d,EAFO7I,YAAA2I,EAAA,GAAlB,IAEe,CACrBvB,SAAU,QACVC,IAAK,OACLuf,MAAO,OACPtgB,QAAS,OACTugB,cAAe,SACflf,eAAgB,WAChBmf,aAAc,aAGlB,OACI1jB,IAAAC,cAAA,OAAK8F,UAAWwd,GACXD,EAAchH,KAAI,SAACnB,GAAY,OAC5Bnb,IAAAC,cAAC0jB,IAAY,CACTppB,IAAK4gB,EAAaH,GAClB3C,KAAM8C,EAAa9C,KACnBwC,UAAWM,EAAaN,UACxB+I,UAAW,CACPC,KAAM,CACFvkB,MAAO,CACHyI,UAAW,uCAKtBoT,EAAa5f,W,OC9BrBuoB,EAAsC,SAAH1oB,GAAqB,IAAf6J,EAAO7J,EAAP6J,QAClDM,EAAqBC,cAAcue,EAAAnnB,YAAA2I,EAAA,GAA5BE,EAAGse,EAAA,GAAE/lB,EAAK+lB,EAAA,GAEXC,EAAkBve,EAAI,CACxBtC,MAAO,OACPC,OAAQ,MACR7D,gBAAiBvB,EAAMwB,OAAOykB,sBAC9BjgB,SAAU,WACVkgB,SAAU,WAGRC,EAA6B1e,EAAI,CACnCzB,SAAU,WACVZ,OAAQ,OACRD,MAAO,MACPgB,WAAYnG,EAAMwB,OAAO4kB,OACzBlgB,KAAM,EACNZ,wBAAyB,WACzBD,kBAAmB,OACnBE,wBAAyB,SACzBG,UAAW,sBAGT2gB,EAA6B5e,EAAI,CACnCzB,SAAU,WACVZ,OAAQ,OACRD,MAAO,MACPgB,WAAYnG,EAAMwB,OAAO4kB,OACzBlgB,KAAM,EACNZ,wBAAyB,WACzBD,kBAAmB,OACnBE,wBAAyB,SACzB+gB,eAAgB,OAChB5gB,UAAW,sBAGT6gB,EAAqB9e,EAAI,CAC3BjC,cAAe,kBAGnB,OACIxD,IAAAC,cAAA,OAAK8F,UAAWie,GACZhkB,IAAAC,cAAA,QACI8F,UAAS,GAAA5D,OAAKgiB,EAA0B,KAAAhiB,OACpC8C,EAAUsf,EAAqB,MAGvCvkB,IAAAC,cAAA,QACI8F,UAAS,GAAA5D,OAAKkiB,EAA0B,KAAAliB,OACpC8C,EAAUsf,EAAqB,QCtDtCC,EAER,SAAHppB,GAAwB,IAAlBqpB,EAAUrpB,EAAVqpB,WASJ,OARAtnB,qBAAU,WAGN,OAFAsnB,GAAW,GAEJ,WACHA,GAAW,MAEhB,IAEI,M,SCXEC,EAAgB,SAACC,GAC1B,IAAMC,EAAU1K,iBAAO3Y,OAAOsjB,WAAWF,IACzC5nB,EAAkCC,oBAAS,GAAKC,EAAAL,YAAAG,EAAA,GAAzC+nB,EAAS7nB,EAAA,GAAE8nB,EAAY9nB,EAAA,GAgB9B,OAdAE,qBAAU,WACN,IAAM6nB,EAAe,WACjBD,EAAaH,EAAQpc,QAAQyc,UAOjC,OAJAL,EAAQpc,QAAQ0c,iBAAiB,SAAUF,GAE3CA,IAEO,WAAO,IAADG,EACM,QAAfA,EAAAP,EAAQpc,eAAO,IAAA2c,GAAfA,EAAiBC,oBAAoB,SAAUJ,MAEpD,IAEIF,GCUEO,EAAyC,SAAHjqB,GAMW,IALHkD,EAAQlD,EAARkD,SACAgnB,EAAIlqB,EAAJkqB,KACAC,EAAMnqB,EAANmqB,OACAC,EAAkBpqB,EAAlBoqB,mBACAC,EAAkBrqB,EAAlBqqB,mBAEvD1oB,EAAwCC,mBAAiB,GAAEC,EAAAL,YAAAG,EAAA,GAApD2oB,EAAYzoB,EAAA,GAAE0oB,EAAe1oB,EAAA,GACpC4B,EAA8B7B,oBAAkB,GAAMgC,EAAApC,YAAAiC,EAAA,GAA/CoG,EAAOjG,EAAA,GAAEylB,EAAUzlB,EAAA,GACpB4mB,EAAMC,sBACZtgB,EAAqBC,cAAcue,EAAAnnB,YAAA2I,EAAA,GAA5BE,EAAGse,EAAA,GAAE/lB,EAAK+lB,EAAA,GACX+B,EAAwBpB,EAAc1mB,EAAM+nB,WAAWzI,MAAM0I,QAAQ,UAAU,KAE/EzC,EAAe9d,EAAI,CACrBzB,SAAU,aAWd,OARA7G,qBAAU,WACN,GAAKyoB,EAAIpd,QAAT,CAEA,IAAQpF,EAAWwiB,EAAIpd,QAAQyd,wBAAvB7iB,OAERuiB,EAAgBviB,MACjB,CAACwiB,IAGA5lB,IAAAC,cAAA,YACID,IAAAC,cAAA,OACIX,MAAO,CACH0E,SAAU,SACVC,IAAK,EACLI,OAAQ,GAEZuhB,IAAKA,GAEJL,EACAC,GACGxlB,IAAAC,cAAC6jB,EAAY,CAAC7e,QAASA,KAAawgB,KAG5CzlB,IAAAC,cAACimB,IAAI,KAEGJ,GACI9lB,IAAAC,cAACkmB,IAAI,CAACC,KAAM,CAAC,IACTpmB,IAAAC,cAAA,SACIX,MAAO,CACH0E,SAAU,SACVC,IAAKyhB,IAGT1lB,IAAAC,cAAComB,IAAK,CAACC,WAAY,CAAC,QAASC,cAAe,CAAC,SACxCjB,KAMrBtlB,IAAAC,cAACkmB,IAAI,CAACC,KAAM,CAAC,IACTpmB,IAAAC,cAAComB,IAAK,CAACC,WAAY,CAAC,QAASC,cAAe,CAAC,SACzCvmB,IAAAC,cAAA,OAAK8F,UAAWwd,GACZvjB,IAAAC,cAACuiB,EAAS,MACVxiB,IAAAC,cAAC0E,IAAgB,CAACC,OAAQK,EAASH,mBAAmB,GAClD9E,IAAAC,cAACumB,WAAQ,CACLC,SACIzmB,IAAAC,cAACukB,EAAwB,CACrBC,WAAYA,KAIpBzkB,IAAAC,cAAA,WACID,IAAAC,cAAC4hB,EAAkB,MACnB7hB,IAAAC,cAAComB,IAAK,CACFC,WAAY,CAAC,OACbC,cAAe,CAAC,SAEfjoB,MAKjB0B,IAAAC,cAACojB,EAAgB,Y,SCzFhCqD,EAAO,SAAHtrB,GAA+B,IAAD0G,EAAxB6kB,EAAMvrB,EAANurB,OACXlN,EAAaF,cAAbE,SACAV,EAAMD,cAANC,EACF6N,EAAkB,QAAf9kB,EAAGC,IAAQlG,YAAI,IAAAiG,OAAA,EAAZA,EAAcM,MAcpBykB,EAA+BC,mBAAQ,WACzC,OAdkC,SAAhCC,EAAiCC,EAA4BC,GAC/D,OAAOD,EACFne,QACG,SAACqe,GAAK,OACF/H,EAAa+H,EAAMtQ,mBAAqBsQ,EAAMrQ,cAErDyF,KAAI,SAAC4K,GAAK,MAAM,CACbC,OAAO,IAADhlB,OAAM8kB,GAAc,IAAE9kB,OAAG+kB,EAAMvQ,MACrChU,MAAOoW,EAAEmO,EAAMvkB,OACfykB,OAAQF,EAAM5oB,SAAWyoB,EAA8BG,EAAM5oB,SAAU4oB,EAAMvQ,WAAQ7b,MAKtFisB,CAA8BJ,KACtC,CAACA,EAAQC,IAEZ,OAAO5mB,IAAAC,cAAConB,IAAU,CAACC,aAAY,IAAAnlB,OAAMsX,GAAY8N,MAAOV,K,qCCP5D,IAEaW,GAAS,SAAHpsB,GAAiC,IAAD0G,EAAA2lB,EAA1Bd,EAAMvrB,EAANurB,OACb5N,EAAMD,cAANC,EACA1K,EAASoK,cAATpK,KACR9I,EAAkBC,cAATxH,EAAuBpB,YAAA2I,EAAA,GAAlB,GACRugB,EAAwBpB,EAAc1mB,EAAM+nB,WAAWzI,MAAM0I,QAAQ,UAAU,KAC7EvM,EAAaF,cAAbE,SAmBFoN,EAAkCC,mBAAQ,WAC5C,OAlBkC,SAAhCC,EAAiCC,EAA4BC,EAAqBxN,GACpF,OAAOuN,EACFne,QACG,SAACqe,GAAK,OACF/H,EAAa+H,EAAMtQ,mBAAqBsQ,EAAMrQ,cAErDyF,KAAI,SAAC4K,GAAK,MAAM,CACbzZ,KAAM,CACFuN,GAAG,IAAD7Y,OAAM8kB,GAAc,IAAE9kB,OAAG+kB,EAAMvQ,OAErC+Q,OAAQjO,IAAayN,EAAMvQ,KAC3BA,KAAK,GAADxU,OAAK8kB,GAAc,IAAE9kB,OAAG+kB,EAAMvQ,MAClCgR,MAAO5O,EAAEmO,EAAMvkB,OACfrE,SAAU4oB,EAAM5oB,SAAWyoB,EAA8BG,EAAM5oB,SAAU4oB,EAAMvQ,MAAQ,OAKxFoQ,CAA8BJ,OAAQ7rB,EAAW2e,KAC1D,CAACkN,EAAQlN,IAELmO,EAAU,CAAE,CACVD,MAAO5O,EAAE,UACTtL,KAAM,CACFuN,GAAI,YAgBhB,OACIhb,gBAAA,cACIA,gBAAC6nB,IAAS,CACNllB,MACI3C,gBAAA,OAAKV,MAAO,CAAE0E,SAAU,aACpBhE,gBAAA,QAAMV,MAAO,CAAE0E,SAAU,aACpB+U,EAAE,WACH/Y,gBAAA,SACIV,MAAO,CACHS,SAAU,QACVic,WAAY,EACZhY,SAAU,WACVE,KAAM,EACN4jB,QAAS,KAEhB,IAhEVC,UAoEK/nB,gBAACmd,KAAa,CAAC7d,MAAO,CAAC0E,SAAU,WAAYwf,MAAO,SAAUvf,IAAK,QAG3E+jB,UAAWnB,EACXoB,iBA1Ba,SAACC,IACrBA,EAAK5pB,SAASf,QAAU8Q,EAAK6Z,EAAKvR,OA0B3BwR,cAAe,SAAC9J,GAAC,OAxFE+J,EAwFiBtC,EAvF3B,iBADLoC,EAwF6B7J,GAvFpC5Q,KAAKuN,GAENhb,gBAACqoB,IAAU,KACNH,EAAKP,MACN3nB,gBAAA,WACAA,gBAAA,aAAQ,WAAW,IAAEI,cAAmB,UAAYmB,OAAOC,UAAUC,UAI5D,WAAjBymB,EAAKza,KAAKuN,GAAwBkN,EAAKP,MACxCS,EAAkB,KACdF,EAAKP,MAZhB,IAAoBO,EAAeE,GAyFnBE,iBAAkB,SAACJ,GACM,WAAjBA,EAAKza,KAAKuN,KACVjZ,IAAQ6c,UAERvQ,EAAKoI,IAAQzF,MAAM2F,OAGF,gBAAjBuR,EAAKza,KAAKuN,KACV3a,aAAgBD,eAChBmB,OAAO+X,SAASiP,WAGxBC,UAAWZ,EACXa,SAAsB,QAAd3mB,EAAEC,IAAQlG,YAAI,IAAAiG,OAAA,EAAZA,EAAc4mB,SACxBC,iBAA8B,QAAdlB,EAAE1lB,IAAQlG,YAAI,IAAA4rB,OAAA,EAAZA,EAAcmB,MAChChF,UACI,CACIiF,SAAU,CAENvpB,MAAO,CACH6D,MAAO,e,8BCzGtC5B,OAAeunB,OAAS,CAACpc,MAAOqc,QAAQC,IAAIC,QAASF,QAAQC,IAAIvb,KAAMsb,QAAQC,KAEhF,IAAME,GAGD,SAAH9tB,GAA0B,IAApBub,EAAIvb,EAAJub,KAAMgQ,EAAMvrB,EAANurB,OACV,OACI3mB,IAAAC,cAACkpB,IAAM,KACFxC,EAAOrK,KAAI,SAAC4K,GAAK,OACdlnB,IAAAC,cAACsf,EAAc,CACX5I,KAAI,GAAAxU,OAAKwU,GAAIxU,OAAG+kB,EAAMvQ,MACtBC,gBAAiBsQ,EAAMtQ,gBACvBI,MAAOkQ,EAAMlQ,MACbzc,IAAK2sB,EAAMvQ,MAEVuQ,EAAMxQ,KAAO1W,IAAAC,cAACinB,EAAMxQ,IAAG,YAOtC0S,GAAsB,WACxB,IAAM5D,EAAqB/C,YAAe7K,MAE1C,OACI5X,IAAAC,cAAColB,EAAM,CACHC,KAAMtlB,IAAAC,cAACymB,EAAI,CAACC,OAAQrP,MACpBiO,OAAQvlB,IAAAC,cAACunB,GAAM,CAACb,OAAQrP,MACxBmO,mBAAoBD,EACpBA,oBAAoB,GAEpBxlB,IAAAC,cAACkpB,IAAM,KACHnpB,IAAAC,cAACsf,EAAc,CACXhhB,OAAQ,kBACJyB,IAAAC,cAAC4f,IAAQ,CAAClc,GAAI4T,YAA8BxV,QAEhD4U,KAAK,IACLK,OAAK,IAERM,IAAQgF,KAAI,SAAC4K,GAAK,OACflnB,IAAAC,cAACsf,EAAc,CACXhlB,IAAK2sB,EAAMvQ,KACXC,gBAAiBsQ,EAAMtQ,gBACvBD,KAAMuQ,EAAMvQ,MAEXuQ,EAAM5oB,SACH0B,IAAAC,cAACipB,GAAoB,CACjBvS,KAAMuQ,EAAMvQ,KACZgQ,OAAQO,EAAM5oB,WAGlB4oB,EAAMxQ,KAAO1W,IAAAC,cAACinB,EAAMxQ,IAAG,UAInC1W,IAAAC,cAAC4f,IAAQ,CAAClc,GAAI8S,IAAQ/B,aAAaiC,UAsIpC0S,OAhIf,WACI,IAAAtsB,EAA8BC,oBAAkB,GAAMC,EAAAL,YAAAG,EAAA,GAA/CkI,EAAOhI,EAAA,GAAEwnB,EAAUxnB,EAAA,GAE1B,OACI+C,IAAAC,cAACqpB,IAAU,KACPtpB,IAAAC,cAACspB,gBAAa,CAACC,cAAe7oB,MAC1BX,IAAAC,cAAAD,IAAAqc,SAAA,KACIrc,IAAAC,cAACwpB,IAAU,KACPzpB,IAAAC,cAACoZ,KAAe,MAChBrZ,IAAAC,cAAC0E,IAAgB,CACbC,OAAQK,EACRH,mBAAiB,EACjBI,UAAU,SAEVlF,IAAAC,cAACumB,WAAQ,CACLC,SACIzmB,IAAAC,cAACukB,EAAwB,CACrBC,WAAYA,KAIpBzkB,IAAAC,cAACkpB,IAAM,KACHnpB,IAAAC,cAACsf,EAAc,CACX5I,KAAMF,IAAQzF,MAAM2F,KACpB8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQzF,MAAM0F,KAEnB1W,IAAAC,cAACsf,EAAc,CACX5I,KAAMF,IAAQlF,kBAAkBoF,KAChC8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQlF,kBAAkBmF,KAE/B1W,IAAAC,cAACsf,EAAc,CACX5I,KAAMF,IAAQvD,gBAAgByD,KAC9B8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQvD,gBAAgBwD,KAE7B1W,IAAAC,cAACsf,EAAc,CACX5I,KAAMF,IAAQrF,SAASuF,KACvB8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQrF,SAASsF,KAEtB1W,IAAAC,cAACsf,EAAc,CACX5I,KAAMF,IAAQ7D,cAAc+D,KAC5B8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQ7D,cAAc8D,KAE3B1W,IAAAC,cAACsf,EAAc,CACX5I,KAAMF,IAAQ1D,eAAe4D,KAC7B8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQ1D,eAAe2D,KAE5B1W,IAAAC,cAAC8f,EAAW,CACRpJ,KAAMF,IAAQ/E,QAAQiF,KACtB8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQ/E,QAAQgF,KAErB1W,IAAAC,cAAC8f,EAAW,CACRpJ,KAAMF,IAAQ5E,KAAK8E,KACnB8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQ5E,KAAK6E,KAGlB1W,IAAAC,cAACsf,EAAc,CACX5I,KAAMF,IAAQzE,0BAA0B2E,KACxC8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQzE,0BAA0B0E,KAEvC1W,IAAAC,cAACsf,EAAc,CACX5I,KAAMF,IAAQtE,cAAcwE,KAC5B8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQtE,cAAcuE,KAE3B1W,IAAAC,cAAC8f,EAAW,CACRpJ,KAAMF,IAAQnE,kBAAkBqE,KAChC8I,WAAW,IACXzI,OAAK,EACL0I,QAAM,GAELjJ,IAAQnE,kBAAkBoE,KAG/B1W,IAAAC,cAACsf,EAAc,CACX5I,KAAK,IACL8I,WAAW,UAEXzf,IAAAC,cAACmpB,GAAmB,eC9LxCtK,QACW,cAA7Bvd,OAAO+X,SAASoQ,UAEe,UAA7BnoB,OAAO+X,SAASoQ,UAEhBnoB,OAAO+X,SAASoQ,SAASC,MACvB,2D,wBC4LNC,KAAKC,IAAIC,MAAkBC,KAAK,CAC5BC,UA5Mc,CACdC,GAAI,CACAC,YAAa,CACTC,OAAQ,SACRC,KAAM,OACNC,QAAS,aAGjBC,GAAI,CACAJ,YAAa,CACT,qCAAsC,uCACtC,kDACI,4EACJ,eAAgB,YAChB,iBAAkB,qBAClB,mBAAoB,kBACpB,qGACI,8MACJ,kBAAmB,cACnB,kBAAmB,yBACnB,cAAe,mBACf,kGACI,4HACJ,yBAA0B,4CAC1B,yBAA0B,uCAC1B,qBAAsB,mCACtB,cAAe,yBACf,4BAA6B,2BAC7B,2BAA4B,+BAC5B,8BAA+B,8BAC/B,4BAA6B,2BAC7B,8BAA+B,wCAC/B,4BAA6B,2BAC7B,+BAAgC,gCAChC,gCAAiC,2CACjC,kBAAmB,wBACnB,6BACI,sDACJC,OAAQ,SACR,mCACI,+CACJI,KAAM,QACN,aAAc,YACdC,QAAS,WACTxZ,MAAO,UACPyZ,SAAU,aACV,4DACI,wFACJJ,QAAS,oBACTK,YAAa,oBACb,SAAU,UACV,aAAc,qCACd,eAAgB,+BAChB,yCACI,wCACJ,eAAgB,oBAChB,eAAgB,OAChB,sBAAuB,YACvBC,KAAM,WACNC,MAAO,mBACPnY,UAAW,SACXoY,OAAQ,UACRC,KAAM,SACNC,OAAQ,YACR,2BAA4B,2BAC5B,gBAAiB,gBACjB,0BACI,8CACJ,wDACI,qEACJ,gBAAiB,sBACjBC,cAAe,cACfC,aAAc,SACd,qBAAsB,sBACtBC,IAAK,WACLC,SAAU,oBACVC,SAAU,kBACVC,QAAS,eACTC,SAAU,QACVC,SAAU,WACV,gBAAiB,YACjB,sBAAuB,sBACvB,4BAA6B,eAC7BC,MAAO,UACP,gBAAiB,SACjBC,OAAQ,aACRC,OAAQ,cACR,wDACI,gGACJ,aAAc,aACd,iBAAkB,wBAClB,cAAe,kBACf,kBAAmB,+BACnB,wBAAyB,qCACzB,6BAA8B,gCAC9BC,SAAU,gBACVC,SAAU,YACVC,OAAQ,iBACRC,KAAM,SACNC,OAAQ,cACR,qBAAsB,qBACtB,sBAAuB,sBACvB,kBAAmB,qBACnB,+BAAgC,8BAChC,kDACI,sFACJ,0DACI,wGACJ,cAAe,iBACfC,IAAK,QACL,cAAe,2BACfC,SAAU,yBACVC,QAAS,QACTC,OAAQ,YACRC,IAAK,qBACL,oBAAqB,wBACrB,yBAA0B,uCAC1B,wCACI,qEACJ,YAAa,oBACb,YAAa,iBACb,aAAc,qBACdC,GAAI,IACJ,6BACI,oDACJ,4DACI,6FACJ,iCACI,0DACJ,eAAgB,qCAChB,wBAAyB,2CACzB,+CACI,2FACJ,4CACI,0DACJ,kBAAmB,gBACnB,gBAAiB,eACjB,sBAAuB,iBACvB1oB,GAAI,KACJ2oB,KAAM,kBACN,iBAAkB,sBAClB,cAAe,8BACf,8FACI,8GACJ,oBAAqB,WACrB,yBAA0B,2BAC1B,uDACI,uFACJ,mBAAoB,QACpB,yBAA0B,QAC1B,qBAAsB,oBACtB,wBAAyB,0BACzBC,QAAS,YACT,YAAa,UACb,gBAAiB,qBACjB,oBAAqB,qBACrB,2BAA4B,iCAC5B,cACI,0DACJ,+BAAgC,2CAChC,gBAAiB,cACjBC,eAAgB,gBAChBC,eAAgB,YAChB,yDACI,mGACJ,gCAAiC,kCACjC,qDACI,4FACJ,iBAAkB,2BAClB,4BAA6B,yDAC7B,sFACI,qHACJ,oDACI,iGACJ,qBAAsB,sBACtBC,OAAQ,SACR,4CACI,4DACJ,YAAa,kBACb,wBAAyB,6BACzB,UAAW,OACXC,SAAU,aACVC,SAAU,YACV,mBAAoB,qCACpB,+CACI,uEACJ,2CACI,0CACJC,KAAM,QACNzC,KAAM,eACN,wBAAyB,oDACzB0C,aAAc,cACd,gBAAiB,sBACjB,iBAAkB,2BAClB,wBAAyB,iBACzBC,QAAS,eACT,UAAa,YACb,OAAU,UACV,QAAW,0BAOnBC,IAAK,KACLC,cAAc,EACdC,cAAe,CACXC,aAAa,KAINvD,GAAI,EAAJA,I,kKCpNFwD,GAAc,WACvB,IAAA7nB,EAAiBC,cAATxH,EAAuBpB,YAAA2I,EAAA,GAAlB,GACb,OACIvF,IAAAC,cAAA,qKAAAkC,OAI+EnE,EAAMwB,OAAO6tB,QAAO,2EAAAlrB,OAC9BnE,EAAMwB,OAAO8tB,iBAAgB,OCW1G/rB,OAAOgsB,SAAW,KAClBC,qBAAU,CACNC,MAAO,CACHC,SAAU,sBAGdC,OAAQ,CACJC,IAAK,SAACtN,GAAM,8CAAAne,OAA0Cme,EAAOsN,MAC7DC,IAAK,SAACvN,GAAM,+CAAAne,OAA2Cme,EAAOuN,MAC9DjF,MAAM,gDAId,IAAM/hB,GAAS,IAAIinB,KAAU,CAACC,OAAQ,MAEtCC,KAAMC,OAAO,MACbD,KAAME,OAAOC,MACbH,KAAME,OAAOE,MACbJ,KAAME,OAAOG,MAEbxuB,aAASgH,IAET,IAAMynB,GAAc,SAAHlzB,GAAA,IAAAiC,EAAAT,YAAAxB,EAAA,GAAKb,EAAG8C,EAAA,GAAER,EAAKQ,EAAA,SAAqC,CAAC9C,EAAIg0B,MAAM,KAAKjS,KAAI,SAAAkS,GAAC,OAAIA,EAAExI,QAAQ,MAAM,SAACyI,GAAC,OAAKA,EAAE9uB,oBAAgByc,KAAK,KAAMvf,IAS3I,SAAS6xB,GAAWhxB,GAA4C,IAAxCixB,EAAIjxB,EAAJixB,KAAM/rB,EAAMlF,EAANkF,OAAQgsB,EAAOlxB,EAAPkxB,QACrCC,EAAgC,IAC3B,OAANjsB,QAAM,IAANA,OAAM,EAANA,EAAQL,SAAU,MACjBssB,EAAe,CAAC,CAAC,GAAI,gDAChB,OAANjsB,QAAM,IAANA,OAAM,EAANA,EAAQL,SAAU,MAAa,OAANK,QAAM,IAANA,OAAM,EAANA,EAAQL,QAAS,MAErCssB,GADK,OAANjsB,QAAM,IAANA,OAAM,EAANA,EAAQF,QACQ,CAAC,CAAC,GAAIE,EAAOF,SAEb0D,OAAOC,SAAc,OAANzD,QAAM,IAANA,OAAM,EAANA,EAAQA,SAAU,IAAI0Z,IAAIgS,KAE7DK,EACCE,EAAavoB,SAAQ,SAAAyR,GAAmB,IAADE,EAAArb,YAAAmb,EAAA,GAAhBxd,EAAG0d,EAAA,GAAEpb,EAAKob,EAAA,GAC1BvP,MAAMiY,QAAQ9jB,GACbA,EAAMyJ,SAAQ,SAAAkoB,GACVG,EAAKG,SAASv0B,EAAKi0B,MAGvBG,EAAKG,SAASv0B,EAAKsC,MAGpB+xB,GACPA,EAAQC,GAGhBE,qBAAU,CACNC,QAAS,CACLN,YAAaA,MAGrB,IAAMO,GAAU,WACZ,OACIjvB,IAAAC,cAACD,IAAMkvB,WAAU,KACblvB,IAAAC,cAACkvB,IAAiB,CAACtyB,MAAOgK,IACtB7G,IAAAC,cAAC5B,KAAmB,CAChBE,OAAQ,SAAC6wB,GAAa,OAClBpvB,IAAAC,cAACovB,KAAY,CAACrxB,MAAOoxB,EAAQ/qB,OAAQ,GACjCrE,IAAAC,cAACmtB,GAAW,MACZptB,IAAAC,cAACopB,GAAG,aAMhCiG,IAAS/wB,OACLyB,IAAAC,cAACgvB,GAAO,MACR7vB,SAASmwB,eAAe,SHyCtB,kBAAmBC,WACrBA,UAAUC,cAAcC,MACrBljB,MAAK,SAAAmjB,GACJA,EAAaC,gBAEd/e,OAAM,SAAAnE,GACLqc,QAAQrc,MAAMA,EAAMjK,a,kMI/IfV,ECgCU,SAAA8tB,GAAAxU,YAAAyU,EAAAD,GAAA,IAAAvU,EAAAC,YAAAuU,GAAA,SAAAA,IAAA,OAAAnpB,YAAA,KAAAmpB,GAAAxU,EAAAyU,MAAA,KAAAzyB,WAgBlB,OAhBkBsJ,YAAAkpB,EAAA,EAAAv1B,IAAA,UAAAsC,MAiBnB,WACImzB,YAAAC,YAAAH,EAAA3mB,WAAA,gBAAAiC,KAAA,MACA,IACI,IAAM8kB,EAAQ1xB,aAAaC,QAAQ,SACnC,GAAGyxB,EAAO,CACN,IAAAC,EAAmC5vB,KAAK6d,MAAM8R,GAAtC9tB,EAAK+tB,EAAL/tB,MAAOwmB,EAAKuH,EAALvH,MAAOF,EAAQyH,EAARzH,SACtB5K,KAAKsS,2BAA2BhuB,EAAO,CAAEwmB,QAAOyH,UAAW3H,IAC3DlqB,aAAagb,WAAW,UAE9B,MAAO6E,OAIZ,CAAA9jB,IAAA,6BAAAsC,MAED,SAA2BuF,EAAekuB,GACtC,IA3CeC,EA4CfC,EChED,SAA2BpuB,GAC9B,IAAAquB,EAAqCruB,EAAMmsB,MAAM,KAAImC,EAAA9zB,YAAA6zB,EAAA,GAA9Cj1B,EAAMk1B,EAAA,GAAEC,EAAOD,EAAA,GAAEE,EAASF,EAAA,GAEjC,MAAO,CACHl1B,OAAQ+E,KAAK6d,MAAMyS,KAAKr1B,IACxBm1B,QAASpwB,KAAK6d,MAAMyS,KAAKF,IACzBC,aDyDaE,CAA2B1uB,GACDuuB,QAA/BnS,EAAGgS,EAAHhS,IAAKhH,EAAIgZ,EAAJhZ,KAAUuZ,EAAMP,EAAVxV,GAEb0N,EAAQ,GAAAvmB,QAAwB,OAAlBmuB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBD,YAAa,GAAE,KAAAluB,QAAsB,OAAlBmuB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBU,WAAY,IAExFlT,KAAKjiB,QAhDO00B,EAgDezS,KAAKjiB,OA/CrB00B,EAAS9Y,MAAM6H,SAASxI,IAAKO,aAEvB,SAACxb,GACzB,IACI2C,aAAaoB,QAAQ,QAASW,KAAKC,UAAU3E,IAC/C,MAAOwiB,KA2CD4S,CAAoBnT,KAAKjiB,MAE7Bm0B,YAAAC,YAAAH,EAAA3mB,WAAA,uBAAAiC,KAAA,KAAqB0kB,EAAWoB,mBAAmB1S,GAAM,CACrD/G,MAAO,CAACD,GACRuZ,SACArI,WACAtmB,QACAwmB,MAAyB,OAAlB0H,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB1H,QAE/BmG,oBAAU,CACNC,QAAS,CACLmC,UAAW/uB,QAGtB,EAAA7H,IAAA,oBAAAsC,MApDD,WAA4B,IAADiF,EACjBC,EAAU,IAAI+tB,EASpB,OAPA/tB,EAAQmd,iCAER6P,oBAAU,CACNC,QAAS,CACLmC,UAAkB,OAAPpvB,QAAO,IAAPA,GAAa,QAAND,EAAPC,EAASlG,YAAI,IAAAiG,OAAN,EAAPA,EAAeM,SAG3BL,IACV,CAAAxH,IAAA,qBAAAsC,MAED,SAA0B2hB,GACtB,OAAa,IAANA,MACVsR,EAhBkB,CAASxR,KDhCE8S,qB,+KGC5BC,EAAU,SAACC,GAAO,OAAoB,IAAfA,EAAI/zB,OAAe+zB,EAAI/C,QAAQjS,KAAI,SAAC+B,GAAK,OAAGA,EAAEA,KAAGjC,OAASkV,GAEjFC,EAAc,SAACD,EAASE,GAC5B,IAAIC,EAAM,CAAC,GAAI,IAQf,OAPGtY,SAASkY,EAAQC,EAAItL,QAAQ,IAAK,KAAM,IAAM,SAC/CyL,EAAI,GAAK,UACTA,EAAI,GAAK,YAETA,EAAI,GAAK,UACTA,EAAI,GAAK,WAEJD,EAAUC,EAAI,GAAKA,EAAI,IAI1BC,EAAqCtrB,OAAOC,QAAQsrB,IAAWnyB,QAAQ8I,QAAO,SAACC,EAAGnN,GAAA,IAAAiC,EAAAT,YAAAxB,EAAC,GAAEb,EAAG8C,EAAA,GAAEiD,EAAGjD,EAAA,UAAAgE,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAdrF4e,SAASkY,EAc6F/wB,EAdjF0lB,QAAQ,IAAK,KAAM,IAAM,OAAW,UAAY,cAc0C,IACzI6L,EAAYzrB,OAAOC,QAAQqrB,GAAU7oB,QAAO,SAAAnL,GAAA,IAAEnD,EAAFqC,YAAAc,EAAA,GAAK,UAAMnD,EAAI+kB,SAAS,WAAa/kB,EAAI+kB,SAAS,aAAWhX,QAAO,SAACC,EAAG0P,GAAA,IAAA6Z,EAAAl1B,YAAAqb,EAAC,GAAE1d,EAAGu3B,EAAA,GAAKA,EAAA,UAAAzwB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAM,WAAW,IAClKw3B,EAAO3rB,OAAOC,QAAQqrB,GAAU7oB,QAAO,SAAAmpB,GAAA,IAAEz3B,EAAFqC,YAAAo1B,EAAA,GAAK,UAAMz3B,EAAI+kB,SAAS,iBAAmB/kB,EAAI+kB,SAAS,iBAAehX,QAAO,SAACC,EAAG0pB,GAAA,IAAAC,EAAAt1B,YAAAq1B,EAAC,GAAE13B,EAAG23B,EAAA,GAAKA,EAAA,UAAA7wB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAM,WAAW,IACvK43B,EAAS/rB,OAAOC,QAAQqrB,GAAU7oB,QAAO,SAAAupB,GAAA,IAAE73B,EAAFqC,YAAAw1B,EAAA,GAAK,UAAM73B,EAAI+kB,SAAS,iBAAmB/kB,EAAI+kB,SAAS,WAAShX,QAAO,SAACC,EAAG8pB,GAAA,IAAAC,EAAA11B,YAAAy1B,EAAC,GAAE93B,EAAG+3B,EAAA,GAAKA,EAAA,UAAAjxB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAM,WAAW,IAEnKg4B,EAAqCnsB,OAAOC,QAAQsrB,IAAWnyB,QAAQ8I,QAAO,SAACC,EAAGiqB,GAAA,IAAAC,EAAA71B,YAAA41B,EAAC,GAAEj4B,EAAGk4B,EAAA,GAAEnyB,EAAGmyB,EAAA,UAAApxB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAMg3B,EAAYjxB,OAAS,IAC1IoyB,EAAYtsB,OAAOC,QAAQksB,GAAU1pB,QAAO,SAAA8pB,GAAA,IAAEp4B,EAAFqC,YAAA+1B,EAAA,GAAK,UAAMp4B,EAAI+kB,SAAS,WAAa/kB,EAAI+kB,SAAS,aAAWhX,QAAO,SAACC,EAAGqqB,GAAA,IAAAC,EAAAj2B,YAAAg2B,EAAC,GAAEr4B,EAAGs4B,EAAA,GAAKA,EAAA,UAAAxxB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAM,cAAc,IACrKu4B,EAAO1sB,OAAOC,QAAQqrB,GAAU7oB,QAAO,SAAAkqB,GAAA,IAAEx4B,EAAFqC,YAAAm2B,EAAA,GAAK,UAAMx4B,EAAI+kB,SAAS,iBAAmB/kB,EAAI+kB,SAAS,iBAAehX,QAAO,SAACC,EAAGyqB,GAAA,IAAAC,EAAAr2B,YAAAo2B,EAAC,GAAEz4B,EAAG04B,EAAA,GAAKA,EAAA,UAAA5xB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAM,WAAW,IACvK24B,EAAS9sB,OAAOC,QAAQqrB,GAAU7oB,QAAO,SAAAsqB,GAAA,IAAE54B,EAAFqC,YAAAu2B,EAAA,GAAK,UAAM54B,EAAI+kB,SAAS,iBAAmB/kB,EAAI+kB,SAAS,WAAShX,QAAO,SAACC,EAAG6qB,GAAA,IAAAC,EAAAz2B,YAAAw2B,EAAC,GAAE74B,EAAG84B,EAAA,GAAKA,EAAA,UAAAhyB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAM,cAAc,IAEtK+4B,EAAqCltB,OAAOC,QAAQsrB,IAAWnyB,QAAQ8I,QAAO,SAACC,EAAGgrB,GAAA,IAAAC,EAAA52B,YAAA22B,EAAC,GAAEh5B,EAAGi5B,EAAA,GAAElzB,EAAGkzB,EAAA,UAAAnyB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAMg3B,EAAYjxB,GAAK,OAAU,IAChJmzB,EAAYrtB,OAAOC,QAAQitB,GAAUzqB,QAAO,SAAA6qB,GAAA,IAAEn5B,EAAFqC,YAAA82B,EAAA,GAAK,UAAMn5B,EAAI+kB,SAAS,WAAa/kB,EAAI+kB,SAAS,aAAWhX,QAAO,SAACC,EAAGorB,GAAA,IAAAC,EAAAh3B,YAAA+2B,EAAC,GAAEp5B,EAAGq5B,EAAA,GAAKA,EAAA,UAAAvyB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAM,WAAW,IAClKs5B,EAAOztB,OAAOC,QAAQqrB,GAAU7oB,QAAO,SAAAirB,GAAA,IAAEv5B,EAAFqC,YAAAk3B,EAAA,GAAK,UAAMv5B,EAAI+kB,SAAS,iBAAmB/kB,EAAI+kB,SAAS,iBAAehX,QAAO,SAACC,EAAGwrB,GAAA,IAAAC,EAAAp3B,YAAAm3B,EAAC,GAAEx5B,EAAGy5B,EAAA,GAAKA,EAAA,UAAA3yB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAM,cAAc,IAC1K05B,EAAS7tB,OAAOC,QAAQqrB,GAAU7oB,QAAO,SAAAqrB,GAAA,IAAE35B,EAAFqC,YAAAs3B,EAAA,GAAK,UAAM35B,EAAI+kB,SAAS,iBAAmB/kB,EAAI+kB,SAAS,WAAShX,QAAO,SAACC,EAAG4rB,GAAA,IAAAC,EAAAx3B,YAAAu3B,EAAC,GAAE55B,EAAG65B,EAAA,GAAKA,EAAA,UAAA/yB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAM,WAAW,IAEnK85B,EAAgBjuB,OAAOC,QAAQsrB,IAAW1yB,YAAYqJ,QAAO,SAACC,EAAG+rB,GAAA,IAjBtDC,EAiBsDC,EAAA53B,YAAA03B,EAAC,GAAE/5B,EAAGi6B,EAAA,GAAEl0B,EAAGk0B,EAAA,UAAAnzB,wBAAA,GAAYkH,GAAG,GAAAqpB,YAAA,GAAGr3B,EAAG8G,wBAAA,GAAOf,GAAG,IAAEP,UAjBlGw0B,EAiBoHj0B,EAAIP,SAjBxGoZ,SAASob,EAAGvO,QAAQ,KAAM,KAAO,GAAM,aAiBgF,IAElJyO,EAAQC,YAAiB,GAAI,CAAEz1B,WAAUoC,YAAA,GAAMgzB,KAC/CM,EAAOC,YAAgB,GAAI,CAAE31B,WAAUoC,YAAA,GAAMgzB,KAE7CQ,EAAKH,YAAgBrzB,wBAAC,GAEjBkxB,GAAQ,IACZuC,YAAavC,EAAS/qB,SACtButB,YAAaxC,EAAS/qB,WAEzB,CACIvI,WAAUoC,YAAA,GAAOgzB,GACjB70B,OAAM6B,gDAAA,GACCqxB,GACAI,GACAI,GAAM,IACT8B,iBAAkBzC,EAAS/qB,SAC3BytB,SAAU1C,EAAS/qB,SACnB0tB,mBAAoB3C,EAAS/qB,SAC7B2tB,UAAW5C,EAAS/qB,SACpB4tB,gBAAiB7C,EAAS/qB,SAC1B6tB,YAAa9C,EAAS/qB,SACtB8tB,oBAAqB/C,EAAS/qB,SAC9B+tB,mBAAoBhD,EAAS/qB,SAC7BguB,0BAA2BjD,EAAS/qB,SACpCiuB,kBAAmBlD,EAAS/qB,SAC5BkuB,qBAAsBnD,EAAS9yB,SAC/Bk2B,iBAAkBpD,EAAS/qB,SAC3BouB,iBAAkBrD,EAAS/qB,aAKjCquB,EAAKnB,YAAgBrzB,wBAAC,GAEjBiyB,GAAQ,IACXwB,YAAaxB,EAAS9rB,SACtButB,YAAazB,EAAS9rB,WAE1B,CACIvI,WAAUoC,YAAA,GAAOgzB,GACjB70B,OAAM6B,gDAAA,GACCoyB,GACAI,GACAI,GAAM,IACTe,iBAAkB1B,EAAS9rB,SAC3BytB,SAAU3B,EAAS9rB,SACnB0tB,mBAAoB5B,EAAS9rB,SAC7B2tB,UAAW7B,EAAS9rB,SACpB4tB,gBAAiB9B,EAAS9rB,SAC1B6tB,YAAa/B,EAAS9rB,SACtB8tB,oBAAqBhC,EAAS9rB,SAC9B+tB,mBAAoBjC,EAAS9rB,SAC7BguB,0BAA2BlC,EAAS9rB,SACpCiuB,kBAAmBnC,EAAS9rB,SAC5BkuB,qBAAsBpC,EAAS7zB,SAC/Bk2B,iBAAkBrC,EAAS9rB,SAC3BouB,iBAAkBtC,EAAS9rB,aAkC1B9I,EAAc,CACzBo3B,MAAOrB,EACPsB,KAAMpB,EACNqB,YAhCStB,YAAgBrzB,wBAAC,GAEjBqwB,GAAQ,IACXoD,YAAapD,EAASlqB,SACtButB,YAAarD,EAASlqB,WAE1B,CACIvI,WAAUoC,YAAA,GAAOgzB,GACjB70B,OAAM6B,gDAAA,GACCwwB,GACAE,GACAI,GAAM,IACT6C,iBAAkBtD,EAASlqB,SAC3BytB,SAAUvD,EAASlqB,SACnB0tB,mBAAoBxD,EAASlqB,SAC7B2tB,UAAWzD,EAASlqB,SACpB4tB,gBAAiB1D,EAASlqB,SAC1B6tB,YAAa3D,EAASlqB,SACtB8tB,oBAAqB5D,EAASjyB,SAC9B81B,mBAAoB7D,EAASjyB,SAC7B+1B,0BAA2B9D,EAASlqB,SACpCiuB,kBAAmB/D,EAASlqB,SAC5BkuB,qBAAsBhE,EAASjyB,SAC/Bk2B,iBAAkBjE,EAASlqB,SAC3BouB,iBAAkBlE,EAASlqB,aASrCyuB,aAAcpB,EACdqB,aAAcL,GAGH/2B,EAAmB,CAC9BC,OAAQ,OACRue,MAAO,OACPC,OAAQ,S,gCCxIH,IAAKzG,EAAZ,kCAKC,SALWA,KAAI,gBAAJA,EAAI,kBAAJA,EAAI,sBAAJA,EAAI,sBAKf,CALWA,MAAI,O","file":"static/js/main.118a1e66.chunk.js","sourcesContent":["import { atom, selector, useRecoilState, useSetRecoilState } from 'recoil';\r\nimport { useEffect, useState } from 'react';\r\n\r\nexport const dialogVisibility = atom({\r\n key: 'dialogVisibility',\r\n default: false,\r\n});\r\n\r\nexport const dialogText = atom({\r\n key: 'dialogText',\r\n default: '',\r\n});\r\n\r\nexport const dialogConfirmMode = atom({\r\n key: 'confirmDialogVisibility',\r\n default: true,\r\n});\r\n\r\nexport const dialogHeader = atom({\r\n key: 'dialogHeader',\r\n default: '',\r\n});\r\n\r\nexport const dialogButtonsText = atom<{\r\n accept: string | undefined;\r\n dismiss: string | undefined;\r\n}>({\r\n key: 'dialogButtonsText',\r\n default: {\r\n accept: undefined,\r\n dismiss: undefined,\r\n },\r\n});\r\n\r\nexport const dialogValue = atom({\r\n key: 'dialogValue',\r\n default: null,\r\n});\r\n\r\ninterface AppDialogState {\r\n isVisible: boolean;\r\n isConfirmMode: boolean;\r\n text: string;\r\n header?: string;\r\n buttonsText: { accept: string | undefined; dismiss: string | undefined };\r\n}\r\n\r\nexport const dialogState = selector({\r\n key: 'dialogState',\r\n get: ({ get }) => {\r\n const isVisible = get(dialogVisibility);\r\n const isConfirmMode = get(dialogConfirmMode);\r\n const text = get(dialogText);\r\n const header = get(dialogHeader);\r\n const buttonsText = get(dialogButtonsText);\r\n\r\n return {\r\n isVisible,\r\n isConfirmMode,\r\n text,\r\n header,\r\n buttonsText,\r\n };\r\n },\r\n});\r\n\r\ninterface PromiseControls {\r\n res: (data: any) => any;\r\n rej: (data: any) => any;\r\n promise: Promise;\r\n}\r\n\r\nconst createPromise = (): PromiseControls => {\r\n let res: (data: any) => any;\r\n let rej: (data: any) => any;\r\n\r\n const promise = new Promise((resolve, reject) => {\r\n res = resolve;\r\n rej = reject;\r\n });\r\n\r\n return {\r\n res: (data: any) => res(data),\r\n rej: (data: any) => rej(data),\r\n promise,\r\n };\r\n};\r\n\r\nexport const useAppDialog = () => {\r\n const setVisibility = useSetRecoilState(dialogVisibility);\r\n const setConfirmMode = useSetRecoilState(dialogConfirmMode);\r\n const setText = useSetRecoilState(dialogText);\r\n const setHeader = useSetRecoilState(dialogHeader);\r\n const setDialogButtonsText = useSetRecoilState(dialogButtonsText);\r\n const [value, setValue] = useRecoilState(dialogValue);\r\n const [promise, setPromise] = useState();\r\n\r\n useEffect(() => {\r\n if (value !== null && promise) {\r\n promise.res(value);\r\n\r\n setPromise(null);\r\n }\r\n }, [value]);\r\n\r\n return {\r\n show(\r\n text: string,\r\n {\r\n header,\r\n }: {\r\n header?: string;\r\n } = {},\r\n ) {\r\n setValue(null);\r\n setVisibility(true);\r\n setConfirmMode(false);\r\n setText(text);\r\n\r\n if (header) setHeader(header);\r\n\r\n const p = createPromise();\r\n\r\n setPromise(p);\r\n\r\n return p.promise;\r\n },\r\n showConfirm(\r\n text: string,\r\n {\r\n header,\r\n acceptButtonText,\r\n dismissButtonText,\r\n }: {\r\n header?: string;\r\n acceptButtonText?: string;\r\n dismissButtonText?: string;\r\n } = {},\r\n ) {\r\n setValue(null);\r\n setVisibility(true);\r\n setConfirmMode(true);\r\n setText(text);\r\n setDialogButtonsText({\r\n dismiss: dismissButtonText,\r\n accept: acceptButtonText,\r\n });\r\n\r\n if (header) setHeader(header);\r\n\r\n const p = createPromise();\r\n\r\n setPromise(p);\r\n\r\n return p.promise;\r\n },\r\n hide() {\r\n setVisibility(false);\r\n setValue(false);\r\n },\r\n value,\r\n };\r\n};\r\n","import React, { createContext, useState, useEffect } from 'react';\r\nimport { Theme } from 'baseui/theme';\r\nimport { THEMES, TYPOGRAPHY_SIZE } from './themes';\r\nimport { renderer } from '../swalConfigured';\r\n\r\ntype ThemeContextType = {\r\n theme: Theme,\r\n updateTheme: (arg?: any) => void,\r\n updateTypography: (arg?: any) => void,\r\n isDefault: boolean,\r\n basicTypography: boolean\r\n}\r\nconst ThemeSwitchContext = createContext({\r\n theme: {},\r\n updateTheme: () => {},\r\n updateTypography: () => {},\r\n isDefault: true,\r\n basicTypography: true\r\n} as ThemeContextType)\r\n\r\nconst getThemeFromStorage = () => {\r\n const theme = localStorage.getItem('theme') || ''\r\n if(THEMES[theme])\r\n return theme\r\n else\r\n return 'LIGHT'\r\n}\r\nconst setThemeForStorage = (themeName: string) => {\r\n localStorage.setItem('theme', themeName);\r\n};\r\n\r\nexport function ThemeSwitchProvider({ children, render }: any) {\r\n const [theme, setTheme] = useState(getThemeFromStorage());\r\n const [typography, setTypography] = useState(TYPOGRAPHY_SIZE.normal);\r\n useEffect(() => {\r\n document.body.style.backgroundColor = THEMES[theme].colors.primaryB;\r\n document.body.dataset.theme = theme.toLowerCase()\r\n setThemeForStorage(theme);\r\n renderer(undefined, THEMES[theme], theme === 'LIGHT');\r\n }, [theme]);\r\n\r\n useEffect(() => {\r\n document.documentElement.style.fontSize = typography;\r\n }, [typography]);\r\n return (\r\n \r\n {render(THEMES[theme])}\r\n \r\n );\r\n}\r\nexport const context = ThemeSwitchContext;","import { createApiBuilder } from 'haper';\r\nimport { haper } from '../../shared/haper';\r\n\r\nexport const getFakerSwitch = ():boolean => localStorage.getItem('haper_faker') === 'true';\r\nexport const setFakerSwitch = (val: boolean) => localStorage.setItem('haper_faker', JSON.stringify(val));\r\n\r\nexport const API = createApiBuilder(haper, {\r\n faker: process.env.NODE_ENV === 'development' ? getFakerSwitch() : false\r\n});\r\n\r\nexport interface ExpertRegistrationFormId {\r\n expertRegistrationFormId?: string\r\n}\r\n\r\nexport interface ApiListResponse {\r\n hasNext: boolean\r\n hasPrevious: boolean\r\n items: T[]\r\n pageNumber: number\r\n pageSize: number\r\n totalCount: number\r\n totalPages: number\r\n}\r\n\r\nexport interface ApiListResponseWithFormId extends ApiListResponse {\r\n expertRegistrationFormId: string\r\n}\r\n\r\nexport interface ApiPaginationParams {\r\n 'paginationParameters.pageSize'?: number\r\n 'paginationParameters.pageNumber'?: number\r\n 'paginationParameters.orderByColumn'?: string|null|undefined\r\n 'paginationParameters.sortBy'?: string\r\n}\r\n\r\nexport interface PaginationParams {\r\n pageSize?: number\r\n pageNumber?: number\r\n sortColumn?: string|null|undefined\r\n sortMode?: 'ASC' | 'DESC' | undefined\r\n}\r\n\r\nexport function parseToDotnetPaginationNamespace({ pageNumber, sortColumn, pageSize, sortMode, ...rest }: T): ApiPaginationParams&Omit {\r\n return {\r\n ...pageSize && {'paginationParameters.pageSize': pageSize},\r\n ...pageNumber && {'paginationParameters.pageNumber': pageNumber},\r\n ...sortColumn && {'paginationParameters.orderByColumn': sortColumn},\r\n ...sortMode && {'paginationParameters.sortBy': sortMode},\r\n ...rest\r\n };\r\n}\r\n\r\n","import { createHaper } from 'haper';\r\nimport { session } from './session';\r\nimport { ApiError } from './ApiError';\r\n\r\nexport interface ApiResponse {\r\n detail?: string;\r\n title?: string;\r\n status: number;\r\n result: T;\r\n errors?: Record\r\n}\r\n\r\n\r\nexport const MOCKED_BACKEND_URL = process.env.MOCKED_BACKEND_URL;\r\nexport const API_BASE = MOCKED_BACKEND_URL || window.appConfig.API_URL;\r\n\r\nexport const haper = createHaper({\r\n baseUrl: API_BASE,\r\n});\r\n\r\nhaper.registerRequestInterceptor('* * *', (request: Request) => {\r\n if (!session.isAuthenticated()) return;\r\n\r\n request.headers.append('Authorization', `Bearer ${session.data?.token}`);\r\n});\r\n\r\nhaper.registerResponseDataInterceptor('* * *', (apiResponse: ApiResponse) => {\r\n if (apiResponse.status >= 400) {\r\n throw new ApiError({\r\n message: apiResponse.detail || apiResponse.title,\r\n errors: apiResponse.errors,\r\n code: apiResponse.status\r\n });\r\n }\r\n\r\n return apiResponse.result;\r\n});\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { Loader as Icon } from 'react-feather';\r\nimport { styled } from 'baseui';\r\n\r\n//@ts-ignore\r\nconst Spin = styled<{ size: number }>('div', ({ size }) => ({\r\n display: 'inline-block',\r\n width: `${size}px`,\r\n height: `${size}px`,\r\n animationDuration: '3s',\r\n animationIterationCount: 'infinite',\r\n animationTimingFunction: 'linear',\r\n animationName: {\r\n from: {\r\n transform: 'rotate(0deg)',\r\n },\r\n to: {\r\n transform: 'rotate(360deg)',\r\n },\r\n },\r\n}));\r\n\r\ninterface SpinnerIconProps {\r\n size?: number\r\n}\r\n\r\nexport const SpinnerIcon:FunctionComponent = ({ size = 40 }) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n};\r\n","import { default as React, useEffect, useState, ReactNode } from 'react';\r\nimport { useStyletron, styled } from 'baseui';\r\nimport { useGlobalAppLoadingBar } from '../../shared/hooks/useGlobalAppLoadingBar';\r\nimport { SpinnerIcon } from '../SpinnerIcon/SpinnerIcon';\r\n\r\ninterface BasePageLoaderProps {\r\n loading?: boolean\r\n entity?: T | undefined\r\n error?: any,\r\n mountChildrenAfterLoad?: boolean;\r\n showLoaderContent?: boolean;\r\n updateGlobalAppLoadingBar?: boolean;\r\n children?: ReactNode | null | ((entity: T) => ReactNode | null);\r\n minHeight?: string\r\n}\r\n\r\ntype PageLoaderProps =\r\n (BasePageLoaderProps & {\r\n loading: boolean\r\n // children?: ReactNode | null | ((entity: any) => ReactNode | null);\r\n }) |\r\n (BasePageLoaderProps & {\r\n entity: T | undefined\r\n })\r\n\r\n\r\nconst Loader = styled<{ $minHeight?: string }, 'div'>('div', ({ $minHeight }) => ({\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n top: 0,\r\n left: 0,\r\n display: 'flex',\r\n background: 'white',\r\n transition: 'all 300ms linear',\r\n zIndex: 10,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: $minHeight ? undefined : '100px 50px',\r\n boxSizing: 'border-box',\r\n}));\r\n\r\nexport function AsyncMountLoader({\r\n entity,\r\n children,\r\n mountChildrenAfterLoad,\r\n showLoaderContent,\r\n updateGlobalAppLoadingBar = true,\r\n loading,\r\n minHeight\r\n }: PageLoaderProps) {\r\n const [mountLoad, setMountLoad] = useState(true);\r\n const [loadFinished, setLoadFinished] = useState(false);\r\n const [css] = useStyletron();\r\n const { setValue } = useGlobalAppLoadingBar();\r\n\r\n const loadingMode = typeof loading === 'boolean';\r\n const shouldRender = loadingMode ? !loading : !!entity;\r\n\r\n const transitionContainer = css({\r\n zIndex: 0,\r\n });\r\n\r\n function maybeUpdateGlobalLoadingBar(val: boolean) {\r\n if (updateGlobalAppLoadingBar)\r\n setValue(val);\r\n }\r\n\r\n useEffect(() => {\r\n if (mountLoad && !shouldRender) {\r\n setMountLoad(false);\r\n maybeUpdateGlobalLoadingBar(true);\r\n\r\n setTimeout(() => {\r\n setLoadFinished(true);\r\n maybeUpdateGlobalLoadingBar(false);\r\n }, 200);\r\n } else if (mountLoad && shouldRender) {\r\n setLoadFinished(true);\r\n maybeUpdateGlobalLoadingBar(false);\r\n }\r\n }, [shouldRender]);\r\n\r\n const renderChild = () => {\r\n if (typeof children === 'function') {\r\n return mountChildrenAfterLoad\r\n ? shouldRender && children(entity as T)\r\n : children(entity as T);\r\n }\r\n\r\n return mountChildrenAfterLoad ? (shouldRender && children) : children;\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n {\r\n showLoaderContent && (\r\n \r\n )\r\n }\r\n \r\n
\r\n {renderChild()}\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import Swal from 'sweetalert2'\r\nimport { Theme } from 'baseui/theme';\r\nimport { Client } from 'styletron-engine-atomic';\r\n\r\nconst important = (obj: object) => {\r\n let out: {[key:string]: string | undefined} = {}\r\n Object.entries(obj).forEach(([key, val]) => (out[key as string] = typeof val !== 'undefined' ? `${val} !important` : val))\r\n return out\r\n}\r\n\r\nconst getInputFields = (domNode: HTMLElement): HTMLElement[] => {\r\n const inputClasses = ['swal2-input','swal2-file','swal2-range','swal2-select','swal2-radio','swal2-checkbox','swal2-textarea']\r\n return inputClasses.reduce((acc: HTMLElement[], current: string) => ([...acc, ...(Array.from(domNode.getElementsByClassName(current)) as HTMLElement[])]), ([] as HTMLElement[]) )\r\n}\r\n\r\nconst Button = (theme: Theme) => ({\r\n borderRadius: 0,\r\n padding: '14px 16px',\r\n ...theme.typography.LabelMedium\r\n})\r\n\r\nclass SwalConfig {\r\n static engine: Client | undefined = undefined;\r\n static theme: Theme | undefined = undefined;\r\n static meta = {\r\n isDefault: true\r\n };\r\n static getConfig(){\r\n if(!SwalConfig.engine || !SwalConfig.theme) {\r\n return Swal\r\n }\r\n const { isDefault } = SwalConfig.meta;\r\n return Swal.mixin({\r\n customClass: {\r\n container: SwalConfig.engine.renderStyle({\r\n fontFamily: SwalConfig.theme.typography.LabelMedium.fontFamily\r\n }),\r\n cancelButton: SwalConfig.engine.renderStyle({...important({\r\n backgroundColor: isDefault ? SwalConfig.theme.colors.backgroundTertiary : SwalConfig.theme.colors.primaryB,\r\n color: SwalConfig.theme.colors.primaryA,\r\n ...Button(SwalConfig.theme)\r\n })}),\r\n confirmButton: SwalConfig.engine.renderStyle({...important({\r\n backgroundColor: SwalConfig.theme.colors.primaryA,\r\n color: SwalConfig.theme.colors.primaryB,\r\n ...Button(SwalConfig.theme)\r\n })}),\r\n denyButton: SwalConfig.engine.renderStyle({...important({\r\n backgroundColor: isDefault ? SwalConfig.theme.colors.backgroundTertiary : SwalConfig.theme.colors.primaryB,\r\n color: SwalConfig.theme.colors.primaryA,\r\n ...Button(SwalConfig.theme)\r\n })}),\r\n popup: SwalConfig.engine.renderStyle({\r\n borderRadius: 0,\r\n backgroundColor: !isDefault ? SwalConfig.theme.colors.primaryB : undefined,\r\n color: !isDefault ? SwalConfig.theme.colors.primaryA : undefined,\r\n }),\r\n input: SwalConfig.engine.renderStyle({\r\n borderRadius: 0,\r\n borderColor: !isDefault ? SwalConfig.theme.colors.primaryA : undefined,\r\n color: !isDefault ? SwalConfig.theme.colors.primaryA : undefined,\r\n \"::placeholder\": { color: !isDefault ? SwalConfig.theme.colors.primaryA : undefined},\r\n \":focus\": isDefault ? {} : { ...important({border: `1px solid ${SwalConfig.theme.colors.primaryA}`, boxShadow: `0 0 0 3px ${SwalConfig.theme.colors.primaryA}`})}\r\n }),\r\n icon: SwalConfig.engine.renderStyle({...important({\r\n color: !isDefault ? SwalConfig.theme.colors.primaryA : undefined,\r\n borderColor: !isDefault ? SwalConfig.theme.colors.primaryA : undefined,\r\n })}),\r\n title: SwalConfig.engine.renderStyle({...important({\r\n color: !isDefault ? SwalConfig.theme.colors.primaryA : undefined,\r\n })}),\r\n //content: SwalConfig.engine.renderStyle({...important({\r\n // color: !isDefault ? SwalConfig.theme.colors.primaryA : undefined,\r\n //})}),\r\n validationMessage: SwalConfig.engine.renderStyle({...important({\r\n color: !isDefault ? SwalConfig.theme.colors.primaryA : undefined,\r\n backgroundColor: !isDefault ? SwalConfig.theme.colors.primaryB : undefined\r\n }),\r\n \"::before\": isDefault ? {} : {\r\n color: SwalConfig.theme.colors.primaryB,\r\n backgroundColor: SwalConfig.theme.colors.primaryA\r\n }}),\r\n },\r\n imageAlt: \"\",\r\n didOpen: (popup) => {\r\n const inputs = getInputFields(popup)\r\n popup.getElementsByClassName('swal2-image')[0].setAttribute('alt', '')\r\n inputs.filter(inputs => inputs.style.display !== 'none').forEach(input => input.setAttribute('aria-label', input.getAttribute('placeholder') || ''))\r\n }\r\n })\r\n }\r\n\r\n static renderer(engine?: Client, theme?: Theme, isDefault?: boolean) {\r\n if(engine)\r\n SwalConfig.engine = engine;\r\n if(theme)\r\n SwalConfig.theme = theme;\r\n if(typeof isDefault !== 'undefined')\r\n SwalConfig.meta = { isDefault: isDefault }\r\n }\r\n}\r\nexport const renderer = SwalConfig.renderer\r\nexport default () => SwalConfig.getConfig()","import * as React from 'react';\r\nimport { ROLE } from './Role';\r\nimport { JWTSession } from '../shared/session/JWTSession';\r\n\r\nconst Login = React.lazy(async () => import('../pages/Login/Login'));\r\nconst Register = React.lazy(async () => import('../pages/Register/Register'));\r\nconst ThanksForRegister = React.lazy(async () =>\r\n import('../pages/ThanksForRegister/ThanksForRegister'),\r\n);\r\nconst Contact = React.lazy(async () => import('../pages/Contact/Contact'));\r\nconst News = React.lazy(async () => import('../pages/News/News'));\r\nconst DeclarationOfAvailability = React.lazy(async () => import('../pages/DeclarationOfAvailability/DeclarationOfAvailability'));\r\nconst PrivacyPolicy = React.lazy(async () => import('../pages/PrivacyPolicy/PrivacyPolicy'));\r\nconst InformationClause = React.lazy(async () => import('../pages/InformationClause/InformationClause'));\r\nconst Dashboard = React.lazy(async () => import('../pages/Dashboard'));\r\nconst ResetPassword = React.lazy(async () =>\r\n import('../pages/ResetPassword/ResetPassword'),\r\n);\r\nconst SetNewPassword = React.lazy(async () =>\r\n import('../pages/SetNewPassword/SetNewPassword'),\r\n);\r\nconst ActivateAccount = React.lazy(async () =>\r\n import('../pages/ActivateAccount/ActivateAccount'),\r\n);\r\nconst ExpertApplicationForm = React.lazy(async () =>\r\n import('../pages/ExpertApplicationForm/ExpertApplicationForm'),\r\n);\r\nconst ExpertApplicationFormContactDetails = React.lazy(async () =>\r\n import('../pages/ExpertApplicationForm/Sections/ContactDetails'),\r\n);\r\nconst ExpertApplicationFormEducation = React.lazy(async () =>\r\n import('../pages/ExpertApplicationForm/Sections/Education'),\r\n);\r\nconst ExpertApplicationFormWorkExperience = React.lazy(async () =>\r\n import('../pages/ExpertApplicationForm/Sections/WorkExperience'),\r\n);\r\nconst ExpertNfosigwAreaOfActivity = React.lazy(async () =>\r\n import('../pages/ExpertApplicationForm/Sections/NfosigwAreaOfActivity'),\r\n);\r\nconst ExpertQuestionnaire = React.lazy(async () =>\r\n import('../pages/ExpertApplicationForm/Sections/Questionnaire'),\r\n);\r\nconst ExpertAttachments = React.lazy(async () =>\r\n import('../pages/ExpertApplicationForm/Sections/Attachments'),\r\n);\r\nconst Unauthorized = React.lazy(async () =>\r\n import('../pages/Unauthorized/Unauthorized'),\r\n);\r\nconst Experts = React.lazy(async () => import('../pages/Experts/Experts'));\r\nconst ExpertFormPreview = React.lazy(async () =>\r\n import('../pages/Experts/ExpertFormPreview'),\r\n);\r\nconst ExpertFormHistory = React.lazy(async () =>\r\n import('../pages/Experts/History'),\r\n);\r\nconst Flashcards = React.lazy(async () =>\r\n import('../pages/Secretary/Flashcards'),\r\n);\r\nconst FlashcardPreview = React.lazy(async () =>\r\n import('../pages/Secretary/FlashcardPreview'),\r\n);\r\nconst AssignExpert = React.lazy(async () =>\r\n import('../pages/AssignExpert'),\r\n);\r\nconst EvaluationInvitationList = React.lazy(async () =>\r\n import('../pages/EvaluationInvitation/EvaluationInvitationList'),\r\n);\r\nconst EvaluationInvitationListRejected = React.lazy(async () =>\r\n import('../pages/EvaluationInvitation/EvaluationInvitationListRejected'),\r\n);\r\nconst FlashCardsList = React.lazy(async () =>\r\n import('../pages/Flashcards/FlashCardsList'),\r\n);\r\nconst FlashCardsListRated = React.lazy(async () =>\r\n import('../pages/Flashcards/FlashCardsListRated'),\r\n);\r\n\r\nconst EvaluationForm = React.lazy(async () =>\r\n import('../pages/Flashcards/EvaluationForm'),\r\n);\r\nconst AdminPage = React.lazy(async () =>\r\n import('../pages/Admin/Admin'),\r\n);\r\nexport interface RoutingItem {\r\n Cmp?: () => React.ReactComponentElement;\r\n title: string;\r\n path: string;\r\n authorizedRoles: Array;\r\n icon?: React.ReactComponentElement;\r\n hideInMenu?: boolean;\r\n children?: Array;\r\n exact?: boolean;\r\n}\r\n\r\nexport type Modules =\r\n 'Login' |\r\n 'Register' |\r\n 'ResetPassword' |\r\n 'SetNewPassword' |\r\n 'Dashboard' |\r\n 'ActivateAccount' |\r\n 'ThanksForRegister' |\r\n 'Unauthorized' |\r\n 'ExpertRegisterForm' |\r\n 'News' |\r\n 'Contact' |\r\n 'DeclarationOfAvailability' |\r\n 'PrivacyPolicy' |\r\n 'InformationClause' |\r\n 'Experts' |\r\n //'EvaluationInvitationList' |\r\n //'FlashCardsList' |\r\n //'Flashcards' |\r\n 'Admin'\r\n\r\nexport const modules: Record = {\r\n Login: {\r\n Cmp: () => ,\r\n title: 'Logowanie',\r\n path: '/login',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n Register: {\r\n Cmp: () => ,\r\n title: 'Rejestracja',\r\n path: '/register',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n ThanksForRegister: {\r\n Cmp: () => ,\r\n title: 'Dziękujemy za rejestracje',\r\n path: '/thank-you-for-registering',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n ResetPassword: {\r\n Cmp: () => ,\r\n title: 'Przypominj hasło',\r\n path: '/reset-password',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n SetNewPassword: {\r\n Cmp: () => ,\r\n title: 'Ustaw nowe hasło',\r\n path: '/set-new-password',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n ActivateAccount: {\r\n Cmp: () => ,\r\n title: 'Aktywuj konto',\r\n path: '/activate-account',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n Dashboard: {\r\n Cmp: () => ,\r\n title: 'Dashboard',\r\n path: '/dashboard',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n Unauthorized: {\r\n Cmp: () => ,\r\n title: 'Dashboard',\r\n path: '/unauthorized',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n Contact: {\r\n Cmp: () => ,\r\n title: 'Kontakt',\r\n path: '/contact',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n News: {\r\n Cmp: () => ,\r\n title: 'Aktualności',\r\n path: '/news',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n DeclarationOfAvailability: {\r\n Cmp: () => ,\r\n title: 'Deklaracja dostępności serwisu',\r\n path: '/declarationOfAvailability',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n PrivacyPolicy: {\r\n Cmp: () => ,\r\n title: 'Polityka prywatności',\r\n path: '/privacyPolicy',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n InformationClause: {\r\n Cmp: () => ,\r\n title: 'Klauzula informacyjna',\r\n path: '/informationClause',\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n Experts: {\r\n Cmp: () => ,\r\n title: 'Eksperci',\r\n path: '/experts',\r\n authorizedRoles: [ROLE.Secretary],\r\n hideInMenu: false,\r\n children: [\r\n {\r\n Cmp: () => ,\r\n title: 'Eksperci',\r\n path: '/',\r\n authorizedRoles: [],\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Podgląd profilu',\r\n path: '/preview/:expertRegistrationFormId',\r\n authorizedRoles: [],\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Historia',\r\n path: '/history/:expertRegistrationFormId',\r\n authorizedRoles: [],\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n // {\r\n // Cmp: () =>

test

,\r\n // title: 'Test sub nav',\r\n // path: '/test-sub-nav',\r\n // authorizedRoles: [],\r\n // exact: true,\r\n // hideInMenu: false,\r\n // },\r\n ]\r\n },\r\n /*Flashcards: {\r\n title: 'Fiszki',\r\n path: '/flashcards',\r\n authorizedRoles: [ROLE.Secretary],\r\n hideInMenu: false,\r\n children: [\r\n {\r\n Cmp: () => ,\r\n title: 'Fiszki2',\r\n path: '/',\r\n authorizedRoles: [ROLE.Secretary],\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Fiszka',\r\n path: '/preview/:flashcardId',\r\n authorizedRoles: [],\r\n exact: true,\r\n hideInMenu: true\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Formularz oceny fiszki',\r\n path: '/preview/:flashcardId/evaluation/:flashcardEvaluationInvitationId',\r\n authorizedRoles: [],\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Fiszka',\r\n path: '/preview/:flashcardId/assign-expert',\r\n authorizedRoles: [],\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n ],\r\n },\r\n EvaluationInvitationList: {\r\n Cmp: () => ,\r\n title: 'Zaproszenia',\r\n path: '/evaluationinvitation',\r\n authorizedRoles: [ROLE.Expert],\r\n hideInMenu: false,\r\n children: [\r\n {\r\n Cmp: () => ,\r\n title: 'Fiszki1',\r\n path: '/',\r\n authorizedRoles: [],//ROLE.Expert\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Nieaktywne',\r\n path: '/rejected',\r\n authorizedRoles: [],//ROLE.Expert\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n ],\r\n },\r\n FlashCardsList: {\r\n title: 'Fiszki',\r\n path: '/flashcardslist',\r\n authorizedRoles: [ROLE.Expert],//ROLE.Expert\r\n hideInMenu: false,\r\n children: [\r\n {\r\n Cmp: () => ,\r\n title: 'Do oceny',\r\n path: '/',\r\n authorizedRoles: [],//ROLE.Expert\r\n exact: true,\r\n hideInMenu: false,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Ocenione',\r\n path: '/rated',\r\n authorizedRoles: [],//ROLE.Expert\r\n exact: true,\r\n hideInMenu: false,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Formularz oceny fiszki',\r\n path: '/rate/:flashcardEvaluationInvitationId',\r\n authorizedRoles: [],//ROLE.Expert\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n // {\r\n // Cmp: () => ,\r\n // title: 'Podgląd wniosku',\r\n // path: '/preview/:expertRegistrationFormId',\r\n // authorizedRoles: [],\r\n // exact: true,\r\n // hideInMenu: true,\r\n // },\r\n ],\r\n },*/\r\n ExpertRegisterForm: {\r\n title: 'Profil eksperta',\r\n path: '/expert-application',\r\n authorizedRoles: [ROLE.NewUser, ROLE.Expert],\r\n hideInMenu: false,\r\n children: [\r\n {\r\n Cmp: () => ,\r\n title: 'Podsumowanie',\r\n path: '/',\r\n authorizedRoles: [],\r\n exact: true,\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Dane teleadresowe',\r\n path: '/contact-details/:expertRegistrationFormId',\r\n exact: true,\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Wykształcenie',\r\n path: '/education/:expertRegistrationFormId',\r\n exact: true,\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Przebieg pracy zawodowej',\r\n path: '/experience/:expertRegistrationFormId',\r\n exact: true,\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Obszar działalności NFOŚiGW',\r\n path: '/nfosigw/:expertRegistrationFormId',\r\n exact: true,\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Kwestionariusz uzupełniający',\r\n path: '/questionnaire/:expertRegistrationFormId',\r\n exact: true,\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n {\r\n Cmp: () => ,\r\n title: 'Załączniki',\r\n path: '/attachments/:expertRegistrationFormId',\r\n exact: true,\r\n authorizedRoles: [],\r\n hideInMenu: true,\r\n },\r\n ],\r\n },\r\n Admin: {\r\n Cmp: () => ,\r\n title: 'Panel admina',\r\n path: '/admin',\r\n authorizedRoles: [ROLE.SuperUser],\r\n hideInMenu: true,\r\n },\r\n};\r\n\r\nexport const defaultRoute = '/dashboard';\r\n\r\nexport const routing: Array = Object.values(modules);\r\n\r\nexport const getDefaultRedirectPathForRole = (session: JWTSession): string => {\r\n const role = session.data?.roles[0];\r\n\r\n if (role === ROLE.NewUser) {\r\n return modules.ExpertRegisterForm.path;\r\n }\r\n else if (role === ROLE.Secretary) {\r\n return modules.Experts.path;\r\n // return modules.Flashcards.path;\r\n }\r\n else if (role === ROLE.Expert) {\r\n return modules.ExpertRegisterForm.path;\r\n // return modules.Dashboard.path;\r\n }\r\n if(role === ROLE.SuperUser) {\r\n return modules.Admin.path;\r\n }\r\n return modules.Unauthorized.path;\r\n};\r\n\r\n \r\n\r\n","import { atom, selector } from 'recoil';\r\n\r\nexport const progressBarValues = atom>({\r\n key: 'progressBarValues',\r\n default: new Map(),\r\n});\r\n\r\nexport const progressBarNumberValue = selector({\r\n key: 'progressBarNumberValue',\r\n get: ({ get }) => {\r\n const valuesMap = get(progressBarValues);\r\n //@ts-ignore\r\n const values:[number, number|boolean][] = [...valuesMap.entries()];\r\n const loadingSections = values.length;\r\n\r\n return values.reduce((acc, [, value]) => {\r\n let forcedSectionValue: number;\r\n\r\n if (typeof value === 'boolean') {\r\n if (value)\r\n forcedSectionValue = 100;\r\n else\r\n forcedSectionValue = 0;\r\n }\r\n else {\r\n forcedSectionValue = value;\r\n }\r\n\r\n return acc + (100/loadingSections)*(forcedSectionValue/100);\r\n }, 0);\r\n },\r\n});\r\n\r\nexport const progressBarVisibility = selector({\r\n key: 'progressBarVisibility',\r\n get: ({ get }) => {\r\n const valuesMap = get(progressBarValues);\r\n //@ts-ignore\r\n const values:[number, number|boolean][] = [...valuesMap.entries()];\r\n\r\n return !!values.find(([, val]) => !!val);\r\n },\r\n});\r\n\r\nexport const progressInfiniteMode = atom({\r\n key: 'progressInfiniteMode',\r\n default: true,\r\n});\r\n","import React, { FC, useEffect } from 'react';\r\nimport { Button, ButtonProps, KIND } from 'baseui/button';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const BackButton: FC = ({\r\n size = 'compact',\r\n kind = KIND.secondary,\r\n ...rest\r\n }) => {\r\n const { goBack: back, go } = useHistory();\r\n const [t] = useTranslation();\r\n const goBack = () => {\r\n let count = (parseInt(window.sessionStorage.getItem(\"backCount\") || \"\") || 0)\r\n if(count > 0) {\r\n go(count * -1)\r\n } else {\r\n back()\r\n }\r\n }\r\n return (\r\n goBack()}\r\n size={size}\r\n kind={kind}\r\n >\r\n {t('Wróć')}\r\n \r\n );\r\n};\r\n\r\nexport const BackCountHelper = () => {\r\n const location = useLocation()\r\n\r\n useEffect(() => {\r\n window.sessionStorage.removeItem(\"backCount\")\r\n }, [location.pathname])\r\n \r\n useEffect(() => {\r\n let count = (parseInt(window.sessionStorage.getItem(\"backCount\") || \"\") || 0) + 1\r\n window.sessionStorage.setItem(\"backCount\", `${count}`)\r\n }, [location.search])\r\n\r\n return null\r\n}","import { useSetRecoilState } from 'recoil';\r\nimport { progressBarValues } from '../states/globalAppProgressBar';\r\nimport { useEffect, useRef, useState } from 'react';\r\n\r\nconst getNextId = (): number => (Math.random() * 1e6) | 0;\r\n\r\nexport function useGlobalAppLoadingBar(initialLoadingState: boolean | number = false, resetOnUnmount = true) {\r\n const setValues = useSetRecoilState(progressBarValues);\r\n const idRef = useRef(getNextId());\r\n const [value, setValue] = useState(initialLoadingState);\r\n\r\n useEffect(() => {\r\n setValues(currentValues => {\r\n const newValues = new Map(currentValues);\r\n\r\n if (!value || value >= 100)\r\n newValues.delete(idRef.current);\r\n else\r\n newValues.set(idRef.current, value);\r\n\r\n return newValues;\r\n });\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (resetOnUnmount) {\r\n setValues(currentValues => {\r\n const newValues = new Map(currentValues);\r\n\r\n newValues.delete(idRef.current);\r\n\r\n return newValues;\r\n });\r\n }\r\n };\r\n }, []);\r\n\r\n return {\r\n value,\r\n setValue,\r\n };\r\n}\r\n","import { atom, useSetRecoilState } from 'recoil';\r\nimport { getPseudoRandomId } from '../../shared/id';\r\nimport { KIND } from 'baseui/notification';\r\n\r\ninterface Notification {\r\n text: string;\r\n kind?: keyof KIND;\r\n closeable?: boolean;\r\n timeoutInMs?: number;\r\n id?: number;\r\n}\r\n\r\nexport const appNotifications = atom>({\r\n key: 'notifications',\r\n default: [],\r\n});\r\n\r\nexport const useAppNotifications = () => {\r\n const setNotifications = useSetRecoilState(appNotifications);\r\n\r\n const pushNotification = ({\r\n text,\r\n kind = KIND.positive,\r\n closeable = true,\r\n timeoutInMs = 8000,\r\n }: Notification) => {\r\n const id = getPseudoRandomId();\r\n\r\n setTimeout(() => {\r\n setNotifications((oldArr) => {\r\n return oldArr.filter((notification) => notification.id !== id);\r\n });\r\n }, timeoutInMs);\r\n\r\n setNotifications((oldArr) => {\r\n return [\r\n ...oldArr,\r\n {\r\n text,\r\n kind,\r\n closeable,\r\n id,\r\n },\r\n ];\r\n });\r\n };\r\n\r\n return {\r\n pushNotification,\r\n };\r\n};\r\n","export const getPseudoRandomId = () => Math.round(Math.random() * 10000);\r\n","import React, { ReactNode } from 'react';\r\nimport { Paragraph3 } from 'baseui/typography';\r\nimport { styled } from 'baseui';\r\nimport { TFunction } from 'i18next';\r\n\r\nexport interface ApiErrorProps {\r\n message?: string\r\n code?: number\r\n errors?: Record\r\n}\r\n\r\nexport class ApiError extends Error {\r\n code?: number\r\n errors?: Record\r\n\r\n constructor({ message, code, errors }: ApiErrorProps) {\r\n super(message);\r\n this.code = code;\r\n this.errors = errors;\r\n }\r\n}\r\n\r\nconst ErrorParagraph = styled(Paragraph3, () => ({\r\n margin: '0 0 5px 0',\r\n lineHeight: '1em',\r\n color: 'inherit',\r\n}));\r\n\r\nconst ErrorsList = styled('ul', () => ({\r\n paddingLeft: '16px',\r\n marginTop: '8px',\r\n}));\r\n\r\nexport const parseApiErrorToReadableMessage = (err: ApiError, tFunction?: TFunction, toString?: boolean): string | ReactNode => {\r\n if (err.errors) {\r\n const entries = Object.entries(err.errors);\r\n\r\n if (toString) {\r\n return entries.reduce((acc, next) => [...acc, ...next[1].reduce((acc, next) => [...acc, tFunction ? tFunction(next) : next], [])], []).join(\" \")\r\n }\r\n \r\n return (\r\n <>\r\n {entries.map(([fieldName, errors]) => (\r\n <>\r\n {/* {\r\n {tFunction ? tFunction(fieldName) : fieldName}\r\n } */}\r\n \r\n {errors.map(error => (\r\n
  • \r\n \r\n {tFunction ? tFunction(error) : error}\r\n \r\n
  • \r\n ))}\r\n
    \r\n \r\n ))}\r\n \r\n );\r\n }\r\n if (toString) {\r\n return tFunction ? tFunction(err.message) : err.message\r\n }\r\n return (\r\n \r\n {tFunction ? tFunction(err.message) : err.message}\r\n \r\n );\r\n};\r\n\r\nexport function parseErrorToReadableMessage(err: string | Error | ReactNode | ApiError, tFunction?: TFunction): string | ReactNode {\r\n if (err instanceof ApiError)\r\n return parseApiErrorToReadableMessage(err, tFunction);\r\n\r\n if (err instanceof Error) {\r\n if (tFunction)\r\n return tFunction(err.message)\r\n\r\n return err.message;\r\n }\r\n\r\n if (tFunction && typeof err === 'string')\r\n return tFunction(err);\r\n\r\n return err;\r\n}\r\n","import React, { useContext } from 'react';\r\nimport { styled, useStyletron } from 'baseui'\r\nimport { Theme } from 'baseui/theme';\r\nimport { context } from './ThemeSwitchContext';\r\nimport { TYPOGRAPHY_SIZE } from './themes';\r\n\r\nconst AccessibilityButton = (type: string, theme: Theme) => ({\r\n FONT_NORMAL: {\r\n fontSize: '0.75rem',\r\n backgroundColor: 'transparent',\r\n border: '0px',\r\n color: theme.colors.primaryA\r\n },\r\n FONT_LARGE: {\r\n fontSize: '1rem',\r\n backgroundColor: 'transparent',\r\n border: '0px',\r\n color: theme.colors.primaryA\r\n },\r\n FONT_XLARGE: {\r\n fontSize: '1.25rem',\r\n backgroundColor: 'transparent',\r\n border: '0px',\r\n color: theme.colors.primaryA\r\n },\r\n CONTRAST_NORMAL: {\r\n border: '1px solid #000',\r\n color: '#000',\r\n backgroundColor: '#fff'\r\n },\r\n CONTRAST_BW: {\r\n border: '1px solid #fff',\r\n color: '#fff',\r\n backgroundColor: '#000'\r\n },\r\n CONTRAST_YB: {\r\n border: '1px solid #000',\r\n color: '#ffff00',\r\n backgroundColor: '#000'\r\n },\r\n CONTRAST_BY: {\r\n border: '1px solid #000',\r\n color: '#000',\r\n backgroundColor: '#ffff00'\r\n },\r\n} as any)[type]\r\n\r\nconst WidgetButton = styled<{ $type: string }, 'button'>('button', ({ $theme, $type}) => ({\r\n ...$theme.typography.ParagraphMedium,\r\n padding: '0.1rem 0.2rem',\r\n margin: '0 0.2rem',\r\n ...AccessibilityButton($type, $theme)\r\n\r\n}))\r\nexport const ThemeSwitcher = ({ style }: any) => {\r\n const [css] = useStyletron()\r\n const { updateTheme, updateTypography } = useContext(context)\r\n\r\n return (\r\n
    \r\n updateTypography(TYPOGRAPHY_SIZE.normal)}>A\r\n updateTypography(TYPOGRAPHY_SIZE.large)}>A\r\n updateTypography(TYPOGRAPHY_SIZE.xlarge)}>A\r\n\r\n updateTheme('LIGHT')}>A\r\n updateTheme('BLACK_WHITE')}>A\r\n updateTheme('BLACK_YELLOW')}>A\r\n updateTheme('YELLOW_BLACK')}>A\r\n
    \r\n )\r\n}","import { EventEmitter } from '../classes/EventEmitter';\r\nimport { SessionLocalStorage, SessionStorage } from './SessionLocalStorage';\r\n\r\nexport enum events {\r\n create = 'create',\r\n destroy = 'destroy',\r\n}\r\n\r\nexport interface SessionSerializableData {\r\n exp: number | null;\r\n data: T;\r\n}\r\n\r\nexport enum timePeriods {\r\n DAY = 1000 * 60 * 60 * 24,\r\n WEEK = 1000 * 60 * 60 * 24 * 7,\r\n}\r\n\r\nexport class Session extends EventEmitter {\r\n private exp: number | null = null;\r\n private storage: SessionStorage>;\r\n public data: T | null = null;\r\n\r\n static timePeriods = timePeriods;\r\n\r\n static getExpiresIn(timePeriod: number): number {\r\n return Date.now() + timePeriod;\r\n }\r\n\r\n static createFromStorage() {\r\n const session = new Session();\r\n\r\n session.tryToRestoreSessionFromStorage();\r\n\r\n return session;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.storage = new SessionLocalStorage();\r\n }\r\n\r\n public setSessionData(exp: number, data: T) {\r\n this.exp = exp;\r\n this.data = data;\r\n\r\n this.storage.save({\r\n exp,\r\n data,\r\n });\r\n\r\n this.trigger(events.create);\r\n }\r\n\r\n public destroy() {\r\n this.exp = null;\r\n this.data = null;\r\n this.storage.destroy();\r\n\r\n this.trigger(events.destroy);\r\n }\r\n\r\n public tryToRestoreSessionFromStorage() {\r\n const dataFromStorage = this.storage.get();\r\n\r\n if (!dataFromStorage) return;\r\n\r\n if (!this.isAuthenticated(dataFromStorage.exp)) return;\r\n\r\n this.exp = dataFromStorage.exp;\r\n this.data = dataFromStorage.data;\r\n }\r\n\r\n public isAuthenticated(exp: number | null = this.exp): boolean {\r\n return Boolean(exp && Date.now() < exp);\r\n }\r\n}\r\n","interface Subscribers {\r\n [key: string]: Set<(event: string, data: T) => void>;\r\n}\r\n\r\nexport class EventEmitter {\r\n protected subscribers: Subscribers = {};\r\n\r\n public on(\r\n event: string,\r\n callback: (event: string, data: T) => void,\r\n ): () => void {\r\n if (!this.subscribers[event]) this.subscribers[event] = new Set();\r\n\r\n this.subscribers[event].add(callback);\r\n\r\n return () => this.off(event, callback);\r\n }\r\n\r\n protected trigger(event: string, data?: T) {\r\n if (!this.subscribers[event]) return;\r\n\r\n this.subscribers[event].forEach((cb) => cb(event, data as T));\r\n }\r\n\r\n off(event: string, callback: (event: string, data: T) => void) {\r\n this.subscribers[event].delete(callback);\r\n }\r\n}\r\n","// @ts-nocheck\r\nimport { SESSION_KEY } from '../../config/general';\r\n\r\nexport interface SessionStorage {\r\n save(data: T): void;\r\n destroy(): void;\r\n get(): T | null;\r\n}\r\n\r\nexport class SessionLocalStorage implements SessionStorage {\r\n constructor(private key: string = SESSION_KEY) {}\r\n\r\n save(data: T) {\r\n localStorage.setItem(this.key, JSON.stringify(data));\r\n }\r\n\r\n destroy() {\r\n localStorage.removeItem(this.key);\r\n }\r\n\r\n get() {\r\n try {\r\n const val = localStorage.getItem(this.key);\r\n\r\n if (!val) return null;\r\n\r\n return JSON.parse(val);\r\n } catch (e: any) {\r\n return null;\r\n }\r\n }\r\n}\r\n","export const SESSION_KEY = `session`;\r\n","import { session } from './session';\r\nimport { ROLE } from '../config/Role';\r\n\r\nexport const isAuthorized = (authorizedRoles: Array): boolean => {\r\n if (!session.isAuthenticated() || !session.data) return false;\r\n\r\n if (!authorizedRoles.length) return true;\r\n\r\n return (\r\n authorizedRoles.findIndex((x) => session.data?.roles.includes(x)) > -1\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { Route, Redirect, RouteProps } from 'react-router-dom';\r\nimport { session } from '../../shared/session';\r\nimport { isAuthorized } from '../../shared/auth';\r\nimport { ROLE } from '../../config/Role';\r\n\r\ninterface PrivateRouteProps extends RouteProps {\r\n // render: (() => ReactComponentElement) | undefined;\r\n authorizedRoles?: Array;\r\n path: string;\r\n invert?: boolean;\r\n redirectTo?: string;\r\n}\r\n\r\nexport function ProtectedRoute({\r\n // render,\r\n redirectTo = '/login',\r\n invert,\r\n authorizedRoles,\r\n path,\r\n children,\r\n ...rest\r\n}: PrivateRouteProps) {\r\n const temp: boolean =\r\n authorizedRoles && authorizedRoles.length\r\n ? isAuthorized(authorizedRoles)\r\n : session.isAuthenticated();\r\n\r\n const isAuthorizedFlag: boolean = invert ? !temp : temp;\r\n\r\n //@ts-ignore\r\n // console.log('isAuthorizedFlag', session.isAuthenticated(), isAuthorized(authorizedRoles));\r\n\r\n const renderChild = isAuthorizedFlag ? (\r\n children\r\n ) : (\r\n \r\n );\r\n\r\n return ;\r\n}\r\n","import * as React from 'react';\r\nimport { Route, RouteProps } from 'react-router-dom';\r\nimport { ROLE } from '../../config/Role';\r\n\r\ninterface PrivateRouteProps extends RouteProps {\r\n // render: (() => ReactComponentElement) | undefined;\r\n authorizedRoles?: Array;\r\n path: string;\r\n invert?: boolean;\r\n redirectTo?: string;\r\n}\r\n\r\nexport function PublicRoute({\r\n // render,\r\n redirectTo = '/login',\r\n invert,\r\n authorizedRoles,\r\n path,\r\n children,\r\n ...rest\r\n}: PrivateRouteProps) {\r\n\r\n return ;\r\n}\r\n","import React, { FunctionComponent, useEffect, useState } from 'react';\r\nimport { Breadcrumbs } from 'baseui/breadcrumbs';\r\nimport { StyledLink } from 'baseui/link';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useLocation, matchPath } from 'react-router-dom';\r\nimport { routing, RoutingItem } from '../../config/routing';\r\n\r\nconst matchedSkeletonRoute = (currentPath: string, routeObject: RoutingItem, parrentPath: string): boolean => {\r\n const matchProfile = (matchPath(currentPath, {\r\n path: parrentPath + routeObject.path,\r\n }))\r\n\r\n if (matchProfile && matchProfile.params && matchProfile.isExact) return true;\r\n return false;\r\n}\r\n\r\nconst returnSkeletonRoute = (currentPath: string, all_routes: any, parrentPath: string): Array|undefined => {\r\n let nestedSkeletonRoutes: Array = [];\r\n if (Array.isArray(all_routes)) {\r\n all_routes.forEach((element: any) => {\r\n const found = returnSkeletonRoute(currentPath, element, parrentPath)\r\n //@ts-ignore\r\n if (found && found.exact) nestedSkeletonRoutes.push(found)\r\n })\r\n return nestedSkeletonRoutes;\r\n }\r\n else if (all_routes.children) {\r\n if (!matchedSkeletonRoute(currentPath, all_routes, parrentPath)) {\r\n const found = returnSkeletonRoute(currentPath, all_routes.children, parrentPath + all_routes.path)\r\n if (found && found.length) {\r\n found.forEach((element: any) => {\r\n nestedSkeletonRoutes.push(element)\r\n })\r\n }\r\n\r\n if (nestedSkeletonRoutes.length > 0) {\r\n nestedSkeletonRoutes.unshift(all_routes)\r\n return nestedSkeletonRoutes;\r\n }\r\n }\r\n else return all_routes;\r\n }\r\n else if (matchedSkeletonRoute(currentPath, all_routes, parrentPath)) return all_routes;\r\n\r\n return undefined;\r\n}\r\n\r\nconst getMainPath = (all_routes: Array): RoutingItem | null => {\r\n for (const single_route of all_routes) {\r\n if (single_route.path === '/') return single_route\r\n }\r\n return null;\r\n}\r\n\r\nconst findRoute = (path: string, all_routes: Array): Array => {\r\n const mainPath = getMainPath(all_routes);\r\n\r\n let allMatchedRoutes:Array = [];\r\n if (mainPath) allMatchedRoutes.push(mainPath);\r\n //@ts-ignore\r\n for (const single_route of all_routes) allMatchedRoutes.push(returnSkeletonRoute(path, single_route, ''));\r\n\r\n allMatchedRoutes = allMatchedRoutes.filter( element => element !== undefined );\r\n return allMatchedRoutes.flat();\r\n};\r\n\r\nexport const RoutingBreadcrumbs: FunctionComponent = () => {\r\n const [sectionsInfo, setSectionsInfo] = useState<\r\n Array>\r\n >([]);\r\n const { t } = useTranslation();\r\n const { pathname } = useLocation();\r\n\r\n const getBreadcrumbs = () => {\r\n const arr: Array = [];\r\n let prevLink: string = '#';\r\n\r\n for (let i = 0; i < sectionsInfo.length; ++i) {\r\n arr.push(\r\n \r\n {t(sectionsInfo[i]?.title as string)}\r\n ,\r\n );\r\n prevLink += sectionsInfo[i].path || '';\r\n }\r\n\r\n return arr;\r\n };\r\n\r\n useEffect(() => {\r\n setSectionsInfo([\r\n {\r\n title: t('appName'),\r\n },\r\n ...findRoute(pathname, routing),\r\n ]);\r\n }, [pathname]);\r\n\r\n return {getBreadcrumbs()};\r\n};\r\n","import React, { FunctionComponent } from 'react';\r\nimport {\r\n Modal,\r\n ModalBody,\r\n ModalButton,\r\n ModalFooter,\r\n ModalHeader,\r\n ROLE,\r\n SIZE as M_SIZE,\r\n} from 'baseui/modal';\r\nimport { KIND } from 'baseui/button';\r\nimport { useRecoilValue, useSetRecoilState } from 'recoil';\r\nimport {\r\n dialogState,\r\n dialogVisibility,\r\n dialogValue,\r\n dialogButtonsText,\r\n} from './AppDialogState';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface GenericConfirmDialogProps {}\r\n\r\nexport const AppDialog: FunctionComponent = () => {\r\n const state = useRecoilValue(dialogState);\r\n const setVisibility = useSetRecoilState(dialogVisibility);\r\n const setValue = useSetRecoilState(dialogValue);\r\n const buttonsText = useRecoilValue(dialogButtonsText);\r\n const { t } = useTranslation();\r\n\r\n return (\r\n {\r\n setVisibility(false);\r\n setValue(false);\r\n }}\r\n closeable\r\n isOpen={state.isVisible}\r\n animate\r\n autoFocus\r\n size={M_SIZE.default}\r\n role={ROLE.dialog}\r\n >\r\n {state.header && {state.header}}\r\n {state.text}\r\n \r\n {state.isConfirmMode && (\r\n {\r\n setVisibility(false);\r\n setValue(false);\r\n }}\r\n >\r\n {buttonsText.dismiss || t('Cancel')}\r\n \r\n )}\r\n {\r\n setVisibility(false);\r\n setValue(true);\r\n }}\r\n >\r\n {buttonsText.accept || t('Ok')}\r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { FunctionComponent } from 'react';\r\nimport { useRecoilValue } from 'recoil';\r\nimport { useStyletron } from 'styletron-react';\r\nimport { Notification } from 'baseui/notification';\r\nimport { appNotifications } from './AppNotificationsState';\r\n\r\ninterface AppNotificationsProps {}\r\n\r\nexport const AppNotifications: FunctionComponent = () => {\r\n const notifications = useRecoilValue(appNotifications);\r\n const [css] = useStyletron();\r\n\r\n const containerCss = css({\r\n position: 'fixed',\r\n top: '80px',\r\n right: '20px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-end',\r\n justifyItems: 'flex-end',\r\n });\r\n\r\n return (\r\n
    \r\n {notifications.map((notification) => (\r\n \r\n {notification.text}\r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n","import { FC, default as React } from 'react';\r\nimport { useStyletron } from 'baseui';\r\n\r\ninterface LinearLoaderProps {\r\n loading: boolean;\r\n}\r\n\r\nexport const LinearLoader: FC = ({ loading }) => {\r\n const [css, theme] = useStyletron();\r\n\r\n const loaderClassName = css({\r\n width: '100%',\r\n height: '2px',\r\n backgroundColor: theme.colors.backgroundLightAccent,\r\n position: 'relative',\r\n overflow: 'hidden',\r\n });\r\n\r\n const loadingIndicatorClassName1 = css({\r\n position: 'absolute',\r\n height: '100%',\r\n width: '25%',\r\n background: theme.colors.accent,\r\n left: 0,\r\n animationIterationCount: 'infinite',\r\n animationDuration: '1.6s',\r\n animationTimingFunction: 'linear',\r\n transform: 'translateX(-100%)',\r\n });\r\n\r\n const loadingIndicatorClassName2 = css({\r\n position: 'absolute',\r\n height: '100%',\r\n width: '25%',\r\n background: theme.colors.accent,\r\n left: 0,\r\n animationIterationCount: 'infinite',\r\n animationDuration: '1.6s',\r\n animationTimingFunction: 'linear',\r\n animationDelay: '0.3s',\r\n transform: 'translateX(-100%)',\r\n });\r\n\r\n const animationClassName = css({\r\n animationName: 'linearLoading',\r\n });\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n};\r\n","import { FunctionComponent, useEffect } from 'react';\r\n\r\nexport const SuspenseStateTransmitter: FunctionComponent<{\r\n setLoading: (val: boolean) => any;\r\n}> = ({ setLoading }) => {\r\n useEffect(() => {\r\n setLoading(true);\r\n\r\n return () => {\r\n setLoading(false);\r\n };\r\n }, []);\r\n\r\n return null;\r\n};\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\nexport const useMediaQuery = (query: string) => {\r\n const watcher = useRef(window.matchMedia(query));\r\n const [isMatched, setIsMatched] = useState(true);\r\n\r\n useEffect(() => {\r\n const handleChange = () => {\r\n setIsMatched(watcher.current.matches);\r\n };\r\n\r\n watcher.current.addEventListener('change', handleChange);\r\n\r\n handleChange();\r\n\r\n return () => {\r\n watcher.current?.removeEventListener('change', handleChange);\r\n };\r\n }, []);\r\n\r\n return isMatched;\r\n};\r\n","import React, {\r\n createRef,\r\n FunctionComponent,\r\n Suspense,\r\n useEffect,\r\n useState,\r\n} from 'react';\r\nimport { ReactComponentElement } from 'react';\r\nimport { Cell, Grid } from 'baseui/layout-grid';\r\nimport { Block } from 'baseui/block';\r\nimport { RoutingBreadcrumbs } from '../RoutingBreadCrumbs/RoutingBreadcrumbs';\r\nimport { AppDialog } from '../AppDialog/AppDialog';\r\nimport { AppNotifications } from '../AppNotifications/AppNotifications';\r\nimport { useStyletron } from 'baseui';\r\nimport { LinearLoader } from '../LinearLoader/LinearLoader';\r\nimport { SuspenseStateTransmitter } from '../SuspenseStateTransmitter/SuspenseStateTransmitter';\r\nimport { AsyncMountLoader } from '../PageLoader/AsyncMountLoader';\r\nimport { useMediaQuery } from '../../shared/hooks/useMediaQuery';\r\n\r\ninterface LayoutProps {\r\n children: ReactComponentElement | Array>;\r\n menu?: ReactComponentElement | Array>;\r\n navBar?: ReactComponentElement | Array>;\r\n progressBarVisible?: boolean;\r\n progressBarLoading?: boolean;\r\n}\r\n\r\n/*\r\nCode in this component, especially related to CSSTransition is connected to index.css\r\n */\r\nexport const Layout: FunctionComponent = ({\r\n children,\r\n menu,\r\n navBar,\r\n progressBarVisible,\r\n progressBarLoading,\r\n }) => {\r\n const [navBarHeight, setNavBarHeight] = useState(0);\r\n const [loading, setLoading] = useState(false);\r\n const ref = createRef();\r\n const [css, theme] = useStyletron();\r\n const shouldShowDesktopMenu = useMediaQuery(theme.mediaQuery.large.replace('@media ',''));\r\n\r\n const containerCss = css({\r\n position: 'relative',\r\n });\r\n\r\n useEffect(() => {\r\n if (!ref.current) return;\r\n\r\n const { height } = ref.current.getBoundingClientRect();\r\n\r\n setNavBarHeight(height);\r\n }, [ref]);\r\n\r\n return (\r\n
    \r\n \r\n {navBar}\r\n {progressBarVisible && (\r\n \r\n )}\r\n \r\n \r\n {\r\n shouldShowDesktopMenu && (\r\n \r\n \r\n \r\n {menu}\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n }\r\n >\r\n
    \r\n \r\n \r\n {children}\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { Navigation, Item } from 'baseui/side-navigation';\r\nimport { isAuthorized } from '../../shared/auth';\r\nimport { ROLE } from '../../config/Role';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { session } from '../../shared/session';\r\n\r\nexport interface MenuItem {\r\n path: string;\r\n title: string;\r\n authorizedRoles: Array;\r\n icon?: React.ReactComponentElement;\r\n hideInMenu?: boolean;\r\n children?: MenuItem[]\r\n}\r\n\r\nexport interface MenuProps {\r\n routes: Array;\r\n}\r\n\r\nexport const Menu = ({ routes }: MenuProps) => {\r\n const { pathname } = useLocation();\r\n const { t } = useTranslation();\r\n const ctx = session.data?.token\r\n const mapMenuItemsToNavigationItems = (menuItems: Array, parentPath?: string):Array => {\r\n return menuItems\r\n .filter(\r\n (route) =>\r\n isAuthorized(route.authorizedRoles) && !route.hideInMenu,\r\n )\r\n .map((route) => ({\r\n itemId: `#${parentPath || ''}${route.path}`,\r\n title: t(route.title),\r\n subNav: route.children ? mapMenuItemsToNavigationItems(route.children, route.path) : undefined\r\n }));\r\n }\r\n\r\n const navigationItems: Array = useMemo(() => {\r\n return mapMenuItemsToNavigationItems(routes);\r\n }, [routes, ctx]);\r\n\r\n return ;\r\n};\r\n","import * as React from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavItemT, AppNavBar } from 'baseui/app-nav-bar';\r\nimport { session } from '../../shared/session';\r\nimport { modules } from '../../config/routing';\r\nimport { getFakerSwitch, setFakerSwitch } from '../../config/endpoints/api';\r\nimport { Paragraph2 } from 'baseui/typography';\r\nimport { useMediaQuery } from '../../shared/hooks/useMediaQuery';\r\nimport { useStyletron } from 'baseui';\r\nimport { useMemo } from 'react';\r\nimport { MenuItem, MenuProps } from '../Menu/Menu';\r\nimport { isAuthorized } from '../../shared/auth';\r\nimport { ThemeSwitcher } from '../../shared/themes/ThemeSwitcher';\r\n\r\ninterface NavBarProps extends MenuProps {\r\n}\r\ninterface NavItem extends NavItemT {\r\n path?: string\r\n}\r\nfunction renderItem(item: NavItem, isDesktop: boolean) {\r\n if (item.info.id === 'haper_faker') {\r\n return (\r\n \r\n {item.label}\r\n
    \r\n {'Obency: '} {getFakerSwitch() ? 'lokalny' : window.appConfig.API_URL}\r\n
    \r\n )\r\n }\r\n if (item.info.id === 'logout') return item.label\r\n if(isDesktop) return null;\r\n return item.label\r\n}\r\n\r\nconst appVersion = process.env.APP_VERSION;\r\n\r\nexport const NavBar = ({ routes }: NavBarProps) => {\r\n const { t } = useTranslation();\r\n const { push } = useHistory();\r\n const [, theme] = useStyletron();\r\n const shouldShowDesktopMenu = useMediaQuery(theme.mediaQuery.large.replace('@media ',''));\r\n const { pathname } = useLocation();\r\n\r\n const mapMenuItemsToNavigationItems = (menuItems: Array, parentPath?: string, pathname?: string):Array => {\r\n return menuItems\r\n .filter(\r\n (route) =>\r\n isAuthorized(route.authorizedRoles) && !route.hideInMenu,\r\n )\r\n .map((route) => ({\r\n info: { \r\n id: `#${parentPath || ''}${route.path}`\r\n },\r\n active: pathname === route.path,\r\n path: `${parentPath || ''}${route.path}`,\r\n label: t(route.title),\r\n children: route.children ? mapMenuItemsToNavigationItems(route.children, route.path) : []\r\n }));\r\n }\r\n \r\n const navigationItems: Array = useMemo(() => {\r\n return mapMenuItemsToNavigationItems(routes, undefined, pathname)\r\n }, [routes, pathname]);\r\n\r\n const userNav = [ {\r\n label: t('Logout'),\r\n info: {\r\n id: 'logout'\r\n }\r\n },\r\n ];\r\n\r\n if (process.env.NODE_ENV === 'development') {\r\n userNav.push({\r\n label: t('Przełącz backend'),\r\n info: {\r\n id: 'haper_faker'\r\n }\r\n })\r\n }\r\n const handleItemSelect = (item: any) => {\r\n !item.children.length && push(item.path);\r\n }\r\n return (\r\n
    \r\n \r\n \r\n {t('appName')}\r\n \r\n v{appVersion}\r\n \r\n \r\n \r\n \r\n }\r\n mainItems={navigationItems}\r\n onMainItemSelect={handleItemSelect}\r\n mapItemToNode={(e) => renderItem(e, shouldShowDesktopMenu)}\r\n onUserItemSelect={(item) => {\r\n if (item.info.id === 'logout') {\r\n session.destroy();\r\n\r\n push(modules.Login.path);\r\n }\r\n\r\n if (item.info.id === 'haper_faker') {\r\n setFakerSwitch(!getFakerSwitch());\r\n window.location.reload();\r\n }\r\n }}\r\n userItems={userNav}\r\n username={session.data?.userName}\r\n usernameSubtitle={session.data?.email}\r\n overrides={\r\n {\r\n UserMenu: {\r\n //badziew nie działa\r\n style: {\r\n width: \"400px\"\r\n }\r\n }\r\n }\r\n }\r\n />\r\n
    \r\n );\r\n};\r\n","import React, { FunctionComponent, Suspense, useState } from 'react';\r\nimport { HashRouter, Redirect, Switch } from 'react-router-dom';\r\nimport { RecoilRoot, useRecoilValue } from 'recoil';\r\nimport { HaperProvider } from 'haper-hooks';\r\nimport { ProtectedRoute } from './components/ProtectedRoute/ProtectedRoute';\r\nimport { PublicRoute } from './components/PublicRoute/PublicRoute';\r\nimport {\r\n routing,\r\n modules,\r\n RoutingItem,\r\n getDefaultRedirectPathForRole,\r\n} from './config/routing';\r\nimport { Layout } from './components/Layout/Layout';\r\nimport { Menu } from './components/Menu/Menu';\r\nimport { NavBar } from './components/NavBar/NavBar';\r\nimport { progressBarVisibility } from './shared/states/globalAppProgressBar';\r\nimport { haper } from './shared/haper';\r\nimport { SuspenseStateTransmitter } from './components/SuspenseStateTransmitter/SuspenseStateTransmitter';\r\nimport { AsyncMountLoader } from './components/PageLoader/AsyncMountLoader';\r\nimport { session } from './shared/session';\r\nimport { BackCountHelper } from './components/BackButton/BackButton';\r\n\r\n\r\n//@ts-ignore\r\n(window as any).toastr = {error: console.log,success: console.log,info: console.log};\r\n\r\nconst NestedRoutesRenderer: FunctionComponent<{\r\n path: string;\r\n routes: Array;\r\n}> = ({ path, routes }) => {\r\n return (\r\n \r\n {routes.map((route) => (\r\n \r\n {route.Cmp && }\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nconst ProtectedAppSection = () => {\r\n const progressBarVisible = useRecoilValue(progressBarVisibility);\r\n\r\n return (\r\n }\r\n navBar={}\r\n progressBarLoading={progressBarVisible}\r\n progressBarVisible={true}\r\n >\r\n \r\n (\r\n \r\n )}\r\n path=\"/\"\r\n exact\r\n />\r\n {routing.map((route) => (\r\n \r\n {route.children ? (\r\n \r\n ) : (\r\n route.Cmp && \r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction App() {\r\n const [loading, setLoading] = useState(false);\r\n\r\n return (\r\n \r\n \r\n <>\r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n {modules.Login.Cmp}\r\n \r\n \r\n {modules.ThanksForRegister.Cmp}\r\n \r\n \r\n {modules.ActivateAccount.Cmp}\r\n \r\n \r\n {modules.Register.Cmp}\r\n \r\n \r\n {modules.ResetPassword.Cmp}\r\n \r\n \r\n {modules.SetNewPassword.Cmp}\r\n \r\n \r\n {modules.Contact.Cmp}\r\n \r\n \r\n {modules.News.Cmp}\r\n \r\n \r\n \r\n {modules.DeclarationOfAvailability.Cmp}\r\n \r\n \r\n {modules.PrivacyPolicy.Cmp}\r\n \r\n \r\n {modules.InformationClause.Cmp}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\n\r\nconst resources = {\r\n en: {\r\n translation: {\r\n Search: 'Search',\r\n Back: 'Back',\r\n appName: 'Kanclerz',\r\n },\r\n },\r\n pl: {\r\n translation: {\r\n 'File is larger than 10000000 bytes': 'Plik jest większy niż 10MB',\r\n 'An error occurred while processing your request':\r\n 'Wystąpił błąd podczas przetwarzania żądania',\r\n 'Login to app': 'Logowanie',\r\n 'Reset password': 'Resetuj hasło',\r\n 'Activate account': 'Aktywacja konta',\r\n 'Must Contain 8 Characters, One Uppercase, One Lowercase, One Number and one special case Character':\r\n 'Hasło musi mieć minimum 8 znaków i zawierać co najmniej: jedną małą literę, jedną dużą, jedną liczbę i jeden ze znaków @$!%*#?&-_.,:;()[]',\r\n 'Register in app': 'Rejestracja',\r\n 'Change password': 'Resetowanie hasła',\r\n 'Broken link': 'Niepoprawny link',\r\n 'Type email used while registration, we will send you link to page where you can change password':\r\n 'Wpisz adres email w polu obok, wyślemy na niego link pod którym będzie można zresetować hasło',\r\n 'Forgot password? Click': 'Zapomniałeś hasła? Kliknij',\r\n 'Passwords do not match': 'Hasła nie pasują do siebie',\r\n 'Back to login page': 'Wróć do strony logowania',\r\n 'to reset it': 'aby je zresetować',\r\n 'email is a required field': 'pole email jest wymagane',\r\n 'name is a required field': 'pole imię jest wymagane',\r\n 'surname is a required field': 'pole nazwisko jest wymagane',\r\n 'pesel is a required field': 'pole PESEL jest wymagane',\r\n 'Have account already? Login': 'Masz już konto? Zaloguj się',\r\n 'login is a required field': 'pole login jest wymagane',\r\n 'password is a required field': 'pole hasło jest wymagane',\r\n 'password2 is a required field': 'pole powtórz hasło jest wymagane',\r\n 'repeat password': 'powtórz hasło',\r\n 'claims is a required field':\r\n 'Zgoda na przetwarzanie danych jest obowiązkowa',\r\n Search: 'Szukaj',\r\n \"Don't have account yet? Register\":\r\n 'Nie masz jeszcze konta? Zarejestruj się',\r\n here: 'tutaj',\r\n 'first name': 'imię',\r\n surname: 'nazwisko',\r\n Login: 'Zaloguj',\r\n password: 'hasło',\r\n 'Pass new password in fields on left. Passwords must match':\r\n 'Wpisz nowe hasło w polach po lewej. Hasła muszą do siebie pasować',\r\n appName: 'Baza ekspertów',\r\n appFullName: 'Baza ekspertów',\r\n 'Log in': 'Zaloguj',\r\n 'Login form': 'Formularz logowania do wersji beta',\r\n 'Contact book': 'Książka kontaktowa',\r\n 'Please select positions from left list':\r\n 'Wybierz ośrodek z listy po lewej',\r\n 'show details': 'szczegóły',\r\n 'phone number': 'tel.',\r\n 'mobile phone number': 'tel. kom.',\r\n room: 'pokój',\r\n Users: 'Użytkownicy',\r\n Dashboard: 'Kokpit',\r\n Logout: 'Wyloguj',\r\n Edit: 'Edycja',\r\n Create: 'Stwórz',\r\n 'Create document workflow': 'Utwórz obieg dokument',\r\n 'Document type': 'Typ dokumentu',\r\n 'Select document type...':\r\n 'Wybierz typ dokumentu z rozwijanej listy...',\r\n \"Document form will appear here after select it's type\":\r\n 'Po wybraniu typu dokumentu w tym miejscu pojawi się formularz',\r\n 'Document form': 'Formularz dokumentu',\r\n Organizations: 'Organizacje',\r\n Compositions: 'Utwory',\r\n 'Documents workflow': 'Obieg dokumentów',\r\n All: 'Wszystko',\r\n Incoming: 'Przychodzące',\r\n Outgoing: 'Wychodzące',\r\n Preview: 'Podgląd',\r\n Workflow: 'Obieg',\r\n Document: 'Dokument',\r\n 'All workflows': 'Wszystkie',\r\n 'My active workflows': 'Moje aktywne obiegi',\r\n 'Document workflow preview': 'Podgląd',\r\n Close: 'Zamknij',\r\n 'Edit document': 'Edytuj',\r\n Accept: 'Zaakceptuj',\r\n Reject: 'Odrzuć',\r\n 'Sending a changed document will create a new workflow':\r\n 'Wprowadzenie zmian do dokumentu spowoduje zamknięcie obecnego obiegu i stworzenie nowego',\r\n 'My actions': 'Moje akcje',\r\n 'Micro workflow': 'Stwórz mikro-obieg',\r\n 'Add comment': 'Dodaj komentarz',\r\n 'Add new request': 'Dodaj nowe żądanie',\r\n 'Add new micro request': 'Dodaj nowe mikro-żądanie',\r\n 'Document status changed to': 'Status dokumentu zmieniony na',\r\n accepted: 'zaakceptowany',\r\n rejected: 'odrzucony',\r\n closed: 'zamknięty',\r\n Save: 'Zapisz',\r\n Submit: 'Wyślij',\r\n 'Comment for action': 'Komentarz do akcji',\r\n 'Comment to workflow': 'Komentarz do obiegu',\r\n 'Select employee': 'Wybierz pracownika',\r\n 'Added new request for person': 'Dodano nową osobę',\r\n 'Error occurred while adding new person. Message':\r\n 'Wystąpił błąd podczas dodawnia nowej osoby. Wiadomość',\r\n 'Error occurred while updating document. Try again later':\r\n 'Wystąpił błąd podczas aktualizacji dokumentu. Spróbuj ponownie później',\r\n 'Edit anyway': 'Edytuj mimo to',\r\n Add: 'Dodaj',\r\n 'Select user': 'Wybierz użytkownika',\r\n Username: 'Nazwa użytkownika',\r\n Actions: 'Akcje',\r\n Delete: 'Usuń',\r\n FYI: 'Do wiadomości',\r\n 'Related workflows': 'Powiązane obiegi',\r\n 'Start typing to search': 'Zacznij pisać aby wyszukać',\r\n 'You need to pick up user to add first':\r\n 'Musisz wybrać użytkownika który ma zostać dodany',\r\n 'Prev page': 'Poprzednia strona',\r\n 'Next page': 'Kolejna strona',\r\n 'No results': 'Brak rezultatów',\r\n of: 'z',\r\n 'added to related workflows':\r\n 'został dodany do powiązanych obiegów',\r\n 'Error occurred while deleting related workflow. Try again':\r\n 'Wystapił błąd poczas dodawania powiązanego obiegu. Spróbuj ponownie',\r\n 'removed from related workflows':\r\n 'został usunięty z powiązanych obiegów',\r\n 'Added to FYI': 'został/a dodany/a do listy DW',\r\n 'removed from FYI list': 'został/a usunięty/a z listy DW',\r\n 'Error occurred while deleting FYI. Try again':\r\n 'Wystąpił błąd podczas usuwania osoby z listy DW. Spróbuj ponownie',\r\n 'You need to pick up workflow to add first':\r\n 'Musisz wybrać obieg który ma zostać dodany',\r\n 'Select workflow': 'Wybierz obieg',\r\n 'Workflow name': 'Nazwa obiegu',\r\n 'User is absent from': 'Nieobecny/a od',\r\n to: 'do',\r\n User: 'Użytkownik',\r\n 'is absent from': 'jest nieobecny/a od',\r\n 'User picked': 'Użytkownik wybrał',\r\n \"as it's substitute while absence. By clicking button below you can assign substitute person\":\r\n 'na zastępstwo. Możesz przypisać zastępce poprzez kliknięcie w poniższy button',\r\n 'Assign substitute': 'Przypisz',\r\n 'added to micro request': 'dodany/a do mikro obiegu',\r\n 'Error occurred while adding micro request. Try again':\r\n 'Wystąpił błąd podczas dodawnia mikro-obiegu. Spróbuj ponownie',\r\n 'Acceptor actions': 'Akcje',\r\n 'Micro acceptor actions': 'Akcje',\r\n 'Add micro workflow': 'Dodaj mikro obieg',\r\n 'Select group acceptor': 'Wybierz akceptora grupy',\r\n Comment: 'Komentarz',\r\n 'Select...': 'Wybierz',\r\n 'Select action': 'Wybierz akcję',\r\n 'Comment to action': 'Komentarz do akcji',\r\n 'Close all micro requests': 'Zamknij wszytskie mikro-obiegi',\r\n 'Auto-accept':\r\n 'Zaakceptuj automatycznie po zamknieciu mikro-obiegów',\r\n 'Return to substituted person': 'Zwróć do zastępowanej osoby',\r\n 'Micro request': 'Mikro obieg',\r\n micro_accepted: 'zaakceptowany',\r\n micro_rejected: 'odrzucony',\r\n 'Error occurred while updating micro request. Try again':\r\n 'Wystąpił błąd podczas wykonywania akcji an mikro obiegu. Spróbuj ponownie',\r\n 'New comment added to workflow': 'Dodano nowy komentarz do obiegu',\r\n 'Error occurred while adding new comment. Try again':\r\n 'Wystąpił błąd podczas dodawania nowego komentarz. Spróbuj ponownie',\r\n 'Action succeed': 'Akcja wykonana poprawnie',\r\n 'Error occurred. Try again': 'Wystąpił błąd. Spróbuj ponownie',\r\n 'Accepting request without selected next acceptor closes the workflow. Are you sure?':\r\n 'Akceptacja żądania bez wybranego kolejnego akceptora spowoduje jego zamknięcie. Jesteś pewien?',\r\n 'If you want to close them and continue click \"ok\"':\r\n 'Jeśli chcesz je zamknąć i wykonać akcję kliknij \"Zamknij i kontynuuj\"',\r\n 'Close and continue': 'Zamknij i kontynuuj',\r\n Cancel: 'Anuluj',\r\n 'Request includes unresolved micro-request':\r\n 'Żądanie zawiera otwarte mikro-żądania',\r\n 'Base data': 'Dane podstawowe',\r\n 'Declaration for month': 'Deklaracja za miesiąc',\r\n 'of year': 'roku',\r\n Position: 'Stanowisko',\r\n Employee: 'Pracownik',\r\n 'Declaration date': 'Data złożenia deklaracji',\r\n 'Click and start typing to select composition':\r\n 'Kliknij i zacznij wpisywać aby wyszukać utwór po nazwie',\r\n 'Percentage value of author participation':\r\n 'Procent praw autorskich w miesiącu',\r\n Next: 'Dalej',\r\n Back: 'Wróć',\r\n 'Copyright declaration': 'Miesięczne oświadczenie praw autorskich',\r\n Organisation: 'Organizacja',\r\n 'Activity type': 'Typ aktywności',\r\n 'sent with date': 'wysłana z datą',\r\n 'Selected compositions': 'Wybrane utwory',\r\n Summary: 'Podsumowanie',\r\n 'Secretary': 'Sekretarz',\r\n 'Expert': 'Ekspert',\r\n 'NewUser': 'Nowy użytkownik',\r\n },\r\n },\r\n};\r\n\r\ni18n.use(initReactI18next).init({\r\n resources,\r\n lng: 'pl',\r\n keySeparator: false,\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n});\r\n\r\nexport default i18n;\r\n","import React from \"react\"\r\nimport { useStyletron } from \"baseui\"\r\n\r\nexport const StyleCompat = () => {\r\n const [,theme] = useStyletron()\r\n return (\r\n \r\n )\r\n}","import React, { Suspense } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport './config/i18n';\r\nimport { Client as Styletron } from 'styletron-engine-atomic';\r\nimport { Provider as StyletronProvider } from 'styletron-react';\r\nimport { BaseProvider } from 'baseui';\r\nimport './index.css';\r\nimport dayjs from 'dayjs';\r\nimport relativeTime from 'dayjs/plugin/relativeTime';\r\nimport 'dayjs/locale/pl';\r\nimport { setLocale } from 'yup';\r\nimport localeData from 'dayjs/plugin/localeData';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport { renderer } from './shared/swalConfigured';\r\nimport { ThemeSwitchProvider } from './shared/themes/ThemeSwitchContext';\r\nimport { Theme } from 'baseui/theme';\r\nimport { configure, Form, List, getConfig } from \"myforms\"\r\nimport { StyleCompat } from './components/StyleCompat/StyleCompat';\r\n\r\n//@ts-ignore\r\nwindow.AppStore = null\r\nsetLocale({\r\n mixed: {\r\n required: 'pole jest wymagane',\r\n // default: 'dfs'\r\n },\r\n string: {\r\n min: (params) => `minimalna liczba znaków w polu to ${params.min}`,\r\n max: (params) => `maksymalna liczba znaków w polu to ${params.max}`,\r\n email: `pole musi być poprawnym adresem email`,\r\n }\r\n});\r\n\r\nconst engine = new Styletron({prefix: \"x\"});\r\n\r\ndayjs.locale('pl');\r\ndayjs.extend(relativeTime);\r\ndayjs.extend(localeData);\r\ndayjs.extend(customParseFormat);\r\n\r\nrenderer(engine)\r\n\r\nconst toCamelCase = ([key, value]: [string, any]): [string, any] => [key.split(\".\").map(v => v.replace(/^./, (m) => m.toLowerCase())).join(\".\"), value]\r\n\r\ninterface IErrorParser {\r\n form?: Form\r\n errors: any\r\n handler?: (errorEntries: [string, any][]) => void\r\n\r\n}\r\n\r\nexport function errorParser ({ form, errors, handler }: IErrorParser) {\r\n let errorEntries: [string, any][] = [];\r\n if(errors?.status >= 500)\r\n errorEntries = [[\"\", \"Wystąpił błąd serwera\"]]\r\n if(errors?.status >= 400 && errors?.status < 500) {\r\n if(errors?.detail)\r\n errorEntries = [[\"\", errors.detail]]\r\n else\r\n errorEntries = Object.entries(errors?.errors || {}).map(toCamelCase)\r\n }\r\n if(form) {\r\n errorEntries.forEach(([key, value]) => {\r\n if(Array.isArray(value)) {\r\n value.forEach(v => {\r\n form.addError(key, v)\r\n })\r\n } else {\r\n form.addError(key, value)\r\n }\r\n })\r\n } else if (handler) {\r\n handler(errorEntries)\r\n }\r\n}\r\nconfigure({\r\n Request: {\r\n errorParser: errorParser\r\n }\r\n})\r\nconst AppWrap = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n )\r\n}\r\nReactDOM.render(\r\n ,\r\n document.getElementById('root'),\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import { JWTSession } from './JWTSession';\r\n\r\nexport const session = JWTSession.createFromStorage();\r\n","import { Session } from './Session';\r\nimport { ROLE } from '../../config/Role';\r\nimport { decodeJwtToken } from '../jwt';\r\nimport { UserAdditionalInfo } from '../../config/endpoints/User';\r\nimport { configure } from \"myforms\"\r\n\r\nexport interface JwtPayload {\r\n role: ROLE;\r\n id: string;\r\n exp: number;\r\n userName: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\nexport interface JwtSessionData {\r\n roles: Array;\r\n userId: string;\r\n token: string;\r\n userName: string;\r\n email?: string;\r\n userLogin?: string;\r\n}\r\nconst verifyAsAdmin = (userInfo: JwtSessionData | null) => {\r\n return userInfo ? userInfo.roles.includes(ROLE.SuperUser) : false\r\n}\r\nconst persistAdminSession = (data: JwtSessionData) => {\r\n try {\r\n localStorage.setItem('admin', JSON.stringify(data))\r\n } catch (e: any) {\r\n\r\n }\r\n}\r\nexport class JWTSession extends Session {\r\n static createFromStorage() {\r\n const session = new JWTSession();\r\n\r\n session.tryToRestoreSessionFromStorage();\r\n\r\n configure({\r\n Request: {\r\n authToken: session?.data?.token\r\n }\r\n })\r\n return session;\r\n }\r\n\r\n static posixToJsTimestamp(exp: number): number {\r\n return exp * 1000;\r\n }\r\n destroy() {\r\n super.destroy()\r\n try {\r\n const admin = localStorage.getItem('admin')\r\n if(admin) {\r\n const { token, email, userName } = JSON.parse(admin)\r\n this.setSessionDataFromJWTToken(token, { email, firstName: userName })\r\n localStorage.removeItem('admin')\r\n }\r\n } catch (e: any) {\r\n\r\n }\r\n \r\n }\r\n\r\n setSessionDataFromJWTToken(token: string, additionalUserData?: Partial) {\r\n const data = decodeJwtToken(token);\r\n const { exp, role, id: userId } = data.payload;\r\n\r\n const userName = `${additionalUserData?.firstName || ''} ${additionalUserData?.lastName || ''}`;\r\n\r\n if(this.data && verifyAsAdmin(this.data)) {\r\n persistAdminSession(this.data)\r\n }\r\n super.setSessionData(JWTSession.posixToJsTimestamp(exp), {\r\n roles: [role],\r\n userId,\r\n userName,\r\n token,\r\n email: additionalUserData?.email\r\n });\r\n configure({\r\n Request: {\r\n authToken: token\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * @param {string} token\r\n * @returns {{payload: { exp: number, userId: number, roleId: number }, signature: string, header: object}}\r\n */\r\nexport function decodeJwtToken(token: string) {\r\n const [header, payload, signature] = token.split('.');\r\n\r\n return {\r\n header: JSON.parse(atob(header)),\r\n payload: JSON.parse(atob(payload)) as T,\r\n signature,\r\n };\r\n}\r\n\r\nexport function isTokenValid(exp: number): boolean {\r\n return Date.now() < exp * 1000;\r\n}\r\n","import { LightTheme, createLightTheme, createDarkTheme } from 'baseui'\r\nimport { ThemePrimitives } from 'baseui/theme';\r\n\r\nconst normHex = (hex:any) => hex.length === 3 ? hex.split().map((e:any)=>e+e).join() : hex\r\nconst blackWhite = (hex:any) => parseInt(normHex(hex.replace('#', '')), 16) < 55*55*55 ? \"#ffffff\" : \"#000000\"\r\nconst blackYellow = (hex:any, inverse?: boolean) => {\r\n let ret = [\"\", \"\"];\r\n if(parseInt(normHex(hex.replace('#', '')), 16) > 144*144*144){\r\n ret[0] = \"#000000\"\r\n ret[1] = \"#ffff00\"\r\n } else {\r\n ret[0] = \"#ffff00\"\r\n ret[1] = \"#000000\"\r\n }\r\n return inverse ? ret[1] : ret[0]\r\n}\r\nconst pxToRem = (px: string) => (parseInt(px.replace('px', '')) / 16) + 'rem'\r\n\r\nconst bwColors: Partial = Object.entries(LightTheme.colors).reduce((acc, [key, val]) => ({ ...acc, [key]: blackWhite(val) }), {})\r\nconst bwBorders = Object.entries(bwColors).filter(([key]) => key.includes('border') || key.includes('Border')).reduce((acc, [key, val]) => ({ ...acc, [key]: '#fff' }), {})\r\nconst bwBg = Object.entries(bwColors).filter(([key]) => key.includes('notification') && key.includes('Background')).reduce((acc, [key, val]) => ({ ...acc, [key]: '#000' }), {})\r\nconst bwText = Object.entries(bwColors).filter(([key]) => key.includes('notification') && key.includes('Text')).reduce((acc, [key, val]) => ({ ...acc, [key]: '#fff' }), {})\r\n\r\nconst ybColors: Partial = Object.entries(LightTheme.colors).reduce((acc, [key, val]) => ({ ...acc, [key]: blackYellow(val) }), {})\r\nconst ybBorders = Object.entries(ybColors).filter(([key]) => key.includes('border') || key.includes('Border')).reduce((acc, [key, val]) => ({ ...acc, [key]: '#ffff00' }), {})\r\nconst ybBg = Object.entries(bwColors).filter(([key]) => key.includes('notification') && key.includes('Background')).reduce((acc, [key, val]) => ({ ...acc, [key]: '#000' }), {})\r\nconst ybText = Object.entries(bwColors).filter(([key]) => key.includes('notification') && key.includes('Text')).reduce((acc, [key, val]) => ({ ...acc, [key]: '#ffff00' }), {})\r\n\r\nconst byColors: Partial = Object.entries(LightTheme.colors).reduce((acc, [key, val]) => ({ ...acc, [key]: blackYellow(val, true) }), {})\r\nconst byBorders = Object.entries(byColors).filter(([key]) => key.includes('border') || key.includes('Border')).reduce((acc, [key, val]) => ({ ...acc, [key]: '#000' }), {})\r\nconst byBg = Object.entries(bwColors).filter(([key]) => key.includes('notification') && key.includes('Background')).reduce((acc, [key, val]) => ({ ...acc, [key]: '#ffff00' }), {})\r\nconst byText = Object.entries(bwColors).filter(([key]) => key.includes('notification') && key.includes('Text')).reduce((acc, [key, val]) => ({ ...acc, [key]: '#000' }), {})\r\n\r\nconst remTypography = Object.entries(LightTheme.typography).reduce((acc, [key, val]) => ({ ...acc, [key]: {...val, fontSize: pxToRem(val.fontSize)} }), {})\r\n\r\nconst Light = createLightTheme({}, { typography: {...remTypography}})\r\nconst Dark = createDarkTheme({}, { typography: {...remTypography}})\r\n\r\nconst yb = createLightTheme(\r\n {\r\n ...ybColors,\r\n negative400: ybColors.primaryA,\r\n positive400: ybColors.primaryA\r\n },\r\n {\r\n typography: { ...remTypography },\r\n colors: {\r\n ...ybBorders,\r\n ...ybBg,\r\n ...ybText,\r\n inputPlaceholder: ybColors.primaryA,\r\n tabColor: ybColors.primaryA,\r\n buttonDisabledText: ybColors.primaryA,\r\n linkHover: ybColors.primaryA,\r\n menuFontDefault: ybColors.primaryA,\r\n tooltipText: ybColors.primaryA,\r\n buttonPrimaryActive: ybColors.primaryA,\r\n buttonPrimaryHover: ybColors.primaryA,\r\n buttonPrimarySelectedText: ybColors.primaryA,\r\n inputTextDisabled: ybColors.primaryA,\r\n tickMarkFillDisabled: ybColors.primaryB,\r\n tickFillDisabled: ybColors.primaryA,\r\n contentSecondary: ybColors.primaryA\r\n },\r\n },\r\n);\r\n\r\nconst by = createLightTheme(\r\n {\r\n ...byColors,\r\n negative400: byColors.primaryA,\r\n positive400: byColors.primaryA\r\n },\r\n {\r\n typography: { ...remTypography },\r\n colors: {\r\n ...byBorders,\r\n ...byBg,\r\n ...byText,\r\n inputPlaceholder: byColors.primaryA,\r\n tabColor: byColors.primaryA,\r\n buttonDisabledText: byColors.primaryA,\r\n linkHover: byColors.primaryA,\r\n menuFontDefault: byColors.primaryA,\r\n tooltipText: byColors.primaryA,\r\n buttonPrimaryActive: byColors.primaryA,\r\n buttonPrimaryHover: byColors.primaryA,\r\n buttonPrimarySelectedText: byColors.primaryA,\r\n inputTextDisabled: byColors.primaryA,\r\n tickMarkFillDisabled: byColors.primaryB,\r\n tickFillDisabled: byColors.primaryA,\r\n contentSecondary: byColors.primaryA\r\n },\r\n },\r\n);\r\n\r\nconst bw = createLightTheme(\r\n {\r\n ...bwColors,\r\n negative400: bwColors.primaryA,\r\n positive400: bwColors.primaryA\r\n },\r\n {\r\n typography: { ...remTypography },\r\n colors: {\r\n ...bwBorders,\r\n ...bwBg,\r\n ...bwText,\r\n inputPlaceholder: bwColors.primaryA,\r\n tabColor: bwColors.primaryA,\r\n buttonDisabledText: bwColors.primaryA,\r\n linkHover: bwColors.primaryA,\r\n menuFontDefault: bwColors.primaryA,\r\n tooltipText: bwColors.primaryA,\r\n buttonPrimaryActive: bwColors.primaryB,\r\n buttonPrimaryHover: bwColors.primaryB,\r\n buttonPrimarySelectedText: bwColors.primaryA,\r\n inputTextDisabled: bwColors.primaryA,\r\n tickMarkFillDisabled: bwColors.primaryB,\r\n tickFillDisabled: bwColors.primaryA,\r\n contentSecondary: bwColors.primaryA\r\n },\r\n },\r\n);\r\n\r\nexport const THEMES: any = {\r\n LIGHT: Light,\r\n DARK: Dark,\r\n BLACK_WHITE: bw,\r\n YELLOW_BLACK: yb,\r\n BLACK_YELLOW: by\r\n}\r\n\r\nexport const TYPOGRAPHY_SIZE = {\r\n normal: \"100%\",\r\n large: '120%',\r\n xlarge: '150%'\r\n}\r\n","export enum ROLE {\r\n Expert = 'Expert',\r\n NewUser = 'NewUser',\r\n Secretary = 'Secretary',\r\n SuperUser = 'SuperUser'\r\n}\r\n"],"sourceRoot":""}