@pih/esm-audit-app 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-lint.log +14 -0
- package/.turbo/turbo-test.log +12735 -0
- package/.turbo/turbo-typescript.log +1 -0
- package/README.md +116 -0
- package/dist/115.js +1 -0
- package/dist/115.js.map +1 -0
- package/dist/117.js +1 -0
- package/dist/117.js.map +1 -0
- package/dist/240.js +1 -0
- package/dist/240.js.map +1 -0
- package/dist/349.js +1 -0
- package/dist/349.js.map +1 -0
- package/dist/446.js +1 -0
- package/dist/446.js.map +1 -0
- package/dist/455.js +1 -0
- package/dist/455.js.map +1 -0
- package/dist/466.js +1 -0
- package/dist/466.js.map +1 -0
- package/dist/508.js +1 -0
- package/dist/508.js.map +1 -0
- package/dist/61.js +1 -0
- package/dist/61.js.map +1 -0
- package/dist/689.js +1 -0
- package/dist/689.js.map +1 -0
- package/dist/711.js +1 -0
- package/dist/711.js.map +1 -0
- package/dist/712.js +1 -0
- package/dist/712.js.map +1 -0
- package/dist/771.js +1 -0
- package/dist/771.js.map +1 -0
- package/dist/859.js +1 -0
- package/dist/859.js.map +1 -0
- package/dist/912.js +1 -0
- package/dist/912.js.map +1 -0
- package/dist/913.js +1 -0
- package/dist/913.js.map +1 -0
- package/dist/94.js +49 -0
- package/dist/94.js.map +1 -0
- package/dist/989.js +1 -0
- package/dist/989.js.map +1 -0
- package/dist/main.js +3 -0
- package/dist/main.js.map +1 -0
- package/dist/pih-esm-audit-app.js +3 -0
- package/dist/pih-esm-audit-app.js.buildmanifest.json +628 -0
- package/dist/pih-esm-audit-app.js.map +1 -0
- package/dist/routes.json +1 -0
- package/jest.config.js +3 -0
- package/package.json +53 -0
- package/rspack.config.js +1 -0
- package/src/audit/audit-format.ts +24 -0
- package/src/audit/audit.component.tsx +69 -0
- package/src/audit/audit.resource.test.tsx +174 -0
- package/src/audit/audit.resource.ts +409 -0
- package/src/audit/audit.scss +171 -0
- package/src/audit/encounter-audit.component.test.tsx +242 -0
- package/src/audit/encounter-audit.component.tsx +204 -0
- package/src/audit/encounter-filters.component.tsx +75 -0
- package/src/audit/encounter-filters.test.ts +119 -0
- package/src/audit/encounter-filters.ts +105 -0
- package/src/audit/obs-audit-table.component.tsx +181 -0
- package/src/audit/obs-audit.test.ts +170 -0
- package/src/audit/obs-audit.ts +156 -0
- package/src/audit/patient-activity.component.test.tsx +191 -0
- package/src/audit/patient-activity.component.tsx +203 -0
- package/src/audit/patient-activity.test.ts +155 -0
- package/src/audit/patient-activity.ts +156 -0
- package/src/audit/patient-encounters.component.tsx +134 -0
- package/src/audit/patient-record.component.test.tsx +193 -0
- package/src/audit/patient-record.component.tsx +115 -0
- package/src/audit/patient-search.component.test.tsx +73 -0
- package/src/audit/patient-search.component.tsx +120 -0
- package/src/config-schema.ts +36 -0
- package/src/dashboard-link.component.tsx +38 -0
- package/src/dashboard.meta.ts +11 -0
- package/src/declarations.d.tsx +3 -0
- package/src/index.ts +33 -0
- package/src/root.component.test.tsx +58 -0
- package/src/root.component.tsx +16 -0
- package/src/routes.json +20 -0
- package/src/types.ts +122 -0
- package/translations/en.json +89 -0
- package/translations/es.json +89 -0
- package/translations/fr.json +89 -0
- package/tsconfig.json +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pih-esm-audit-app.js","sources":["webpack://@pih/esm-audit-app/webpack/runtime/jsonp_chunk_loading","webpack://@pih/esm-audit-app/webpack/runtime/embed_federation_runtime","webpack://@pih/esm-audit-app/==void 0","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/runtime/dist/_virtual/_rolldown/runtime.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/runtime/dist/helpers.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/runtime/dist/index.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/runtime/dist/utils.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/_virtual/_rolldown/runtime.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/attachShareScopeMap.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/constant.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/consumes.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/error-codes/dist/error-codes.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/error-codes/dist/getShortErrorMsg.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/getSharedFallbackGetter.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/getUsedExports.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/init.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/initContainerEntry.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/initializeSharing.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/installInitialConsumes.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/remotes.cjs","webpack://@pih/esm-audit-app/../../node_modules/@module-federation/webpack-bundler-runtime/dist/updateOptions.cjs","webpack://@pih/esm-audit-app/module_federation/runtime","webpack://@pih/esm-audit-app/webpack/runtime/compat_get_default_export","webpack://@pih/esm-audit-app/webpack/runtime/create_fake_namespace_object","webpack://@pih/esm-audit-app/webpack/runtime/define_property_getters","webpack://@pih/esm-audit-app/webpack/runtime/ensure_chunk","webpack://@pih/esm-audit-app/webpack/runtime/get javascript chunk filename","webpack://@pih/esm-audit-app/webpack/runtime/global","webpack://@pih/esm-audit-app/webpack/runtime/has_own_property","webpack://@pih/esm-audit-app/webpack/runtime/load_script","webpack://@pih/esm-audit-app/webpack/runtime/make_namespace_object","webpack://@pih/esm-audit-app/webpack/runtime/nonce","webpack://@pih/esm-audit-app/webpack/runtime/rspack_version","webpack://@pih/esm-audit-app/webpack/runtime/sharing","webpack://@pih/esm-audit-app/webpack/runtime/auto_public_path","webpack://@pih/esm-audit-app/webpack/runtime/consumes_loading","webpack://@pih/esm-audit-app/webpack/runtime/initialize_exposes","webpack://@pih/esm-audit-app/webpack/runtime/rspack_unique_id"],"names":["__module_federation_runtime_plugins__","plugin","params","__module_federation_remote_infos__","__webpack_require__","_ref","_ref1","_ref2","_ref3","_ref4","__webpack_require___remotesLoadingData","__webpack_require___remotesLoadingData1","__webpack_require___initializeSharingData","__webpack_require___consumesLoadingData","__webpack_require___consumesLoadingData1","__webpack_require___initializeExposesData","__webpack_require___consumesLoadingData2","override","obj","key","value","merge","fn","_obj_key","Array","_","_obj","_type_of","_1","_obj1","Object","early","initial","remotesLoadingChunkMapping","remotesLoadingModuleIdToRemoteDataMapping","initializeSharingScopeToInitDataMapping","consumesLoadingChunkMapping","consumesLoadingModuleToConsumeDataMapping","consumesLoadinginstalledModules","initializeSharingInitPromises","initializeSharingInitTokens","containerShareScope","__module_federation_bundler_runtime__","consumesLoadingModuleToHandlerMapping","_iteratorError","moduleId","data","shared","scope","stages","_iteratorError1","stage","name","version","factory","eager","singleton","requiredVersion","strictVersion","shareConfig","isValidValue","val","options","remote","remotesLoadingIdToExternalAndNameMappingMapping","idToRemoteMap","id","info","remoteData","chunkId","promises","initScope","shareScope","remoteEntryInitOptions","module1","getScope","moduleMap","Promise","Error","undefined","Symbol","r","Date","c","e","JSON","l","h","s","i","console","u","globalThis","Function","window","document","clearTimeout","setTimeout","d"],"mappings":"0xBAIU,EAqDN,EA2BA,ECpFA,EACA,E,8jCCDwK,IAAMA,EAAwC,EAAE,CAAC,MAAM,CAAC,Y,OAAGC,EAAAA,MAAM,A,GAAe,GAAG,CAAC,Y,MAAwBA,AAArBA,CAAAA,EAAAA,EAAAA,MAAM,AAAD,EAAGC,EAAAA,MAAM,C,GAA6BC,EAAqC,CAAC,EAAiI,GAAIC,AAAAA,CAAAA,EAAoB,qBAAqB,EAAEA,EAAoB,qBAAoB,GAAIA,EAAoB,UAAU,CAAC,CAAmU,IAA9TC,EAAKC,EAAMC,EAAMC,EAAMC,EAAUC,EAAuCC,EAAwCC,EAA0CC,EAAwCC,EAAyCC,EAA0CC,EAA+CC,EAAS,SAACC,CAAG,CAACC,CAAG,CAACC,CAAK,EAAQF,GAAcA,CAAG,CAACC,EAAI,EAACD,CAAAA,CAAG,CAACC,EAAI,CAACC,CAAI,CAAC,EAAQC,EAAM,SAACH,CAAG,CAACC,CAAG,CAACG,CAAE,EAAI,IAAsHC,EAAhHH,EAAME,IAAQE,MAAM,OAAO,CAACJ,IAAyBK,MAAGC,AAAKR,CAAI,CAAMC,EAAG,EAAwBO,CAArCR,CAAyC,CAA/BC,EAAqC,CAAC,EAAE,AAAD,EAAEI,AAAAA,CAAAA,EAAAA,CAAG,CAACJ,EAAI,AAAD,EAAE,IAAI,OAAbI,E,6CAAiBH,I,wGAAAA,I,EAAAA,I,yKAAeO,CAAOP,SAAAA,EAAAA,YAAPO,EAAOP,EAAK,IAAG,UAAUA,AAAQ,OAARA,IAAkCQ,MAAIC,AAAMX,CAAI,CAAOC,EAAG,EAA0BU,CAAxCX,CAA6C,CAAlCC,EAAyC,CAAC,CAAC,GAAEW,OAAO,MAAM,CAACZ,CAAG,CAACC,EAAI,CAACC,GAAO,EAAQW,EAAM,SAACb,CAAG,CAACC,CAAG,CAACa,CAAO,EAAqBP,MAAGC,AAAKR,CAAI,CAAMC,EAAG,EAAwBO,CAArCR,CAAyC,CAA/BC,EAAqC,CAACa,GAAQ,CAAC,EAAQC,EAA4B5B,MAAAA,CAAAA,EAAMK,MAAAA,CAAAA,EAAuCN,EAAoB,kBAAiB,EAA2D,KAAK,EAAEM,EAAuC,YAAW,EAAyBL,EAAK,CAAC,EAAQ6B,EAA2C5B,MAAAA,CAAAA,EAAOK,MAAAA,CAAAA,EAAwCP,EAAoB,kBAAiB,EAA4D,KAAK,EAAEO,EAAwC,2BAA0B,EAA0BL,EAAM,CAAC,EAAQ6B,EAAyC5B,MAAAA,CAAAA,EAAOK,MAAAA,CAAAA,EAA0CR,EAAoB,qBAAoB,EAA8D,KAAK,EAAEQ,EAA0C,yBAAwB,EAA0BL,EAAM,CAAC,EAAQ6B,EAA6B5B,MAAAA,CAAAA,EAAOK,MAAAA,CAAAA,EAAwCT,EAAoB,mBAAkB,EAA4D,KAAK,EAAES,EAAwC,YAAW,EAA0BL,EAAM,CAAC,EAAQ6B,EAA2C5B,MAAAA,CAAAA,EAAOK,MAAAA,CAAAA,EAAyCV,EAAoB,mBAAkB,EAA6D,KAAK,EAAEU,EAAyC,4BAA2B,EAA0BL,EAAM,CAAC,EAAQ6B,EAAgC,CAAC,EAAQC,EAA8B,EAAE,CAAOC,EAA4B,CAAC,EAAQC,EAAqB1B,MAAAA,CAAAA,EAA0CX,EAAoB,qBAAoB,EAA8D,KAAK,EAAEW,EAA0C,UAAU,CAAC,IAAI,IAAMI,KAAOuB,IAAuCtC,EAAoB,UAAU,CAACe,EAAI,CAACuB,AAAAA,GAAqC,CAACvB,EAAI,CAACY,EAAM3B,EAAoB,UAAU,CAAC,wCAAwC,WAAK,IAAMuC,EAAsC,CAAC,EAAMC,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,IAAJ,IAAI,IAAAA,EAAAA,EAAqBd,OAAO,OAAO,CAACO,EAA0C,CAA1CA,OAAAA,QAAAA,CAAAA,GAApCO,CAAAA,CAAAA,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAAA,EAAAA,GAA+E,CAA/EA,IAAAA,EAAAA,EAAAA,EAAAA,KAAAA,CAAAA,GAAIC,EAAAA,CAAAA,CAAAA,EAAAA,CAASC,EAAAA,CAAAA,CAAAA,EAAAA,AAAmEH,CAAAA,CAAqC,CAACE,EAAS,CAAC,CAAC,OAAOC,EAAK,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,kBAAkB,GAAM,gBAAgBA,EAAK,eAAe,CAAC,cAAcA,EAAK,aAAa,CAAC,UAAUA,EAAK,SAAS,CAAC,MAAMA,EAAK,KAAK,EAAE,MAAM,CAACA,EAAK,UAAU,CAAC,EAAE,SAASA,EAAK,QAAQ,CAAC,C,UAAvWF,EAAAA,GAAAA,EAAAA,C,aAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,EAAwW,OAAOD,CAAqC,GAAGZ,EAAM3B,EAAoB,UAAU,CAAC,cAAc,W,MAAK,CAAC,C,GAAI2B,EAAM3B,EAAoB,UAAU,CAAC,WAAW,CAAC,OAAO,W,MAA5jH,oB,GAAsmH2B,EAAM3B,EAAoB,UAAU,CAAC,WAAW,CAAC,gBAAgB,W,MAArmH,e,GAA+oH2B,EAAM3B,EAAoB,UAAU,CAAC,WAAW,CAAC,SAAS,WAAK,IAAM2C,EAAO,CAAC,EAAMH,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,IAAJ,IAAI,IAAAA,EAAAA,EAAoBd,OAAO,OAAO,CAACK,EAAwC,CAAxCA,OAAAA,QAAAA,CAAAA,GAAnCS,CAAAA,CAAAA,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAAA,EAAAA,GAA4E,CAA5EA,IAAAA,EAAAA,EAAAA,EAAAA,KAAAA,CAAAA,GAAII,EAAAA,CAAAA,CAAAA,EAAAA,CAAMC,EAAAA,CAAAA,CAAAA,EAAAA,CAAuEC,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,IAAJ,IAAI,IAAAA,EAAAA,EAAaD,CAAM,CAANA,OAAAA,QAAAA,CAAAA,GAAbC,CAAAA,CAAAA,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAAA,EAAAA,GAAoB,CAApBA,IAAIC,EAAJD,EAAAA,KAAAA,CAAqB,GAAGvB,AAAAA,CAAOwB,SAAAA,EAAAA,YAAPxB,EAAOwB,EAAK,IAAG,UAAUA,AAAQ,OAARA,EAAa,CAAC,IAAMC,EAAoED,EAApEC,IAAI,CAACC,EAA+DF,EAA/DE,OAAO,CAACC,EAAuDH,EAAvDG,OAAO,CAACC,EAA+CJ,EAA/CI,KAAK,CAACC,EAAyCL,EAAzCK,SAAS,CAACC,EAA+BN,EAA/BM,eAAe,CAACC,EAAeP,EAAfO,aAAa,CAAcC,EAAY,CAAC,EAAQC,EAAa,SAASC,CAAG,EAAE,OAAO,AAAa,SAANA,CAAiB,CAAKD,CAAAA,EAAaJ,IAAYG,CAAAA,EAAY,SAAS,CAACH,CAAQ,EAAKI,EAAaH,IAAkBE,CAAAA,EAAY,eAAe,CAACF,CAAc,EAAKG,EAAaL,IAAQI,CAAAA,EAAY,KAAK,CAACJ,CAAI,EAAKK,EAAaF,IAAgBC,CAAAA,EAAY,aAAa,CAACD,CAAY,EAAE,IAAMI,EAAQ,CAACT,QAAAA,EAAQ,MAAM,CAACL,EAAM,CAACW,YAAAA,EAAY,IAAIL,CAAO,CAAKP,CAAAA,CAAM,CAACK,EAAK,CAAEL,CAAM,CAACK,EAAK,CAAC,IAAI,CAACU,GAAcf,CAAM,CAACK,EAAK,CAAC,CAACU,EAAQ,AAAC,CAAC,C,UAA/mBZ,EAAAA,GAAAA,EAAAA,C,aAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,EAAgnB,C,UAAjsBN,EAAAA,GAAAA,EAAAA,C,aAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,EAAksB,OAAOG,CAAM,GAAG1B,EAAMjB,EAAoB,UAAU,CAAC,WAAW,CAAC,UAAU,W,OAAI0B,OAAO,MAAM,CAAC3B,GAAoC,IAAI,GAAG,MAAM,CAAC4D,SAAAA,CAAM,E,MAAEA,AAAsB,WAAtBA,EAAO,YAAY,A,KAAc1C,EAAMjB,EAAoB,UAAU,CAAC,WAAW,CAAC,UAAU,W,OAAIJ,C,GAAuC+B,EAAM3B,EAAoB,UAAU,CAAC,wBAAwB,W,MAAK,CAAC,C,GAAI2B,EAAM3B,EAAoB,UAAU,CAAC,qBAAqB,CAAC,UAAU,W,MAAK,CAAC,C,GAAI2B,EAAM3B,EAAoB,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,eAAe,W,OAAI6B,C,GAA4BF,EAAM3B,EAAoB,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,cAAc,W,OAAID,C,GAAoC4B,EAAM3B,EAAoB,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,6BAA6B,WAAK,IAAM4D,EAAgD,CAAC,EAAMpB,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,IAAJ,IAAI,IAAAA,EAAAA,EAAqBd,OAAO,OAAO,CAACI,EAA0C,CAA1CA,OAAAA,QAAAA,CAAAA,GAApCU,CAAAA,CAAAA,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAAA,EAAAA,GAA+E,CAA/EA,IAAAA,EAAAA,EAAAA,EAAAA,KAAAA,CAAAA,GAAIC,EAAAA,CAAAA,CAAAA,EAAAA,CAASC,EAAAA,CAAAA,CAAAA,EAAAA,AAAmEkB,CAAAA,CAA+C,CAACnB,EAAS,CAAC,CAACC,EAAK,UAAU,CAACA,EAAK,IAAI,CAACA,EAAK,gBAAgB,CAACA,EAAK,UAAU,CAAC,C,UAA3MF,EAAAA,GAAAA,EAAAA,C,aAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,EAA4M,OAAOoB,CAA+C,GAAGjC,EAAM3B,EAAoB,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,iBAAiB,W,OAAIA,C,GAAqBiB,EAAMjB,EAAoB,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,WAAK,IAAM6D,EAAc,CAAC,EAAMrB,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,IAAJ,IAAI,IAAAA,EAAAA,EAAqBd,OAAO,OAAO,CAACI,EAA0C,CAA1CA,OAAAA,QAAAA,CAAAA,GAApCU,CAAAA,CAAAA,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAAA,EAAAA,GAA+E,CAA/EA,IAAAA,EAAAA,EAAAA,EAAAA,KAAAA,CAAAA,GAAIsB,EAAAA,CAAAA,CAAAA,EAAAA,CAAkFC,EAAKhE,CAAkC,CAACiE,AAAvHA,CAAAA,CAAAA,EAAAA,CAAkI,UAAU,CAAC,AAAID,CAAAA,GAAKF,CAAAA,CAAa,CAACC,EAAG,CAACC,CAAG,CAAC,C,UAAnLvB,EAAAA,GAAAA,EAAAA,C,aAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,EAAoL,OAAOqB,CAAa,GAAGhD,EAASb,EAAoB,IAAIA,EAAoB,UAAU,CAAC,cAAc,CAAC,CAAC,EAAKA,EAAoB,UAAU,CAAC,mBAAmB,EAAEA,EAAoB,UAAU,CAAC,mBAAmB,CAACA,GAAqBa,EAASb,EAAoB,CAAC,CAAC,UAAU,SAACiE,CAAO,CAACC,CAAQ,E,OAAGlE,EAAoB,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAACiE,QAAAA,EAAQC,SAAAA,EAAS,aAAarC,EAA2B,2BAA2B7B,EAAoB,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,0BAA0B,CAAC,cAAcA,EAAoB,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,aAAa,CAAC,eAAeA,CAAmB,E,GAAIa,EAASb,EAAoB,CAAC,CAAC,WAAW,SAACiE,CAAO,CAACC,CAAQ,E,OAAGlE,EAAoB,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAACiE,QAAAA,EAAQC,SAAAA,EAAS,aAAalC,EAA4B,uBAAuBhC,EAAoB,UAAU,CAAC,qCAAqC,CAAC,iBAAiBkC,EAAgC,eAAelC,CAAmB,E,GAAIa,EAASb,EAAoB,IAAI,SAACgD,CAAI,CAACmB,CAAS,E,OAAGnE,EAAoB,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAegD,EAAKmB,UAAAA,EAAU,aAAahC,EAA8B,WAAWC,EAA4B,eAAepC,CAAmB,E,GAAIa,EAASb,EAAoB,gBAAgB,SAACoE,CAAU,CAACD,CAAS,CAACE,CAAsB,E,OAAGrE,EAAoB,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAACoE,WAAAA,EAAWD,UAAAA,EAAUE,uBAAAA,EAAuB,cAAchC,EAAoB,eAAerC,CAAmB,E,GAAIa,EAASb,EAAoB,eAAe,SAACsE,CAAO,CAACC,CAAQ,EAAI,IAAIC,EAAUxE,EAAoB,qBAAqB,CAAC,SAAS,CAAyP,OAAxPA,EAAoB,CAAC,CAACuE,EAASA,EAAS7C,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC8C,EAAUF,GAASE,CAAS,CAACF,EAAQ,GAAGG,QAAQ,OAAO,GAAG,IAAI,CAAC,WAAK,MAAM,AAAIC,MAAM,WAAWJ,EAAQ,iCAAiC,GAAGtE,EAAoB,CAAC,CAAC2E,OAAiBJ,CAAQ,GAAGvE,EAAoB,UAAU,CAAC,QAAQ,CAACA,EAAoB,UAAU,CAAC,OAAO,CAAC,IAAI,CAACA,EAAoB,UAAU,CAAC,WAAW,EAAMY,OAAAA,CAAAA,EAAyCZ,EAAoB,mBAAkB,EAA6D,KAAK,EAAEY,EAAyC,eAAe,AAAD,GAAGZ,EAAoB,UAAU,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,eAAeA,EAAoB,iBAAiBkC,EAAgC,gBAAgBlC,EAAoB,mBAAmB,CAAC,eAAe,CAAC,uBAAuBA,EAAoB,UAAU,CAAC,qCAAqC,EAAG,C,iTCCv1R,IAAI,EAAW0B,OAAO,MAAM,CACxB,EAAYA,OAAO,cAAc,CACjC,EAAmBA,OAAO,wBAAwB,CAClD,EAAoBA,OAAO,mBAAmB,CAC9C,EAAeA,OAAO,cAAc,CACpC,EAAeA,OAAO,SAAS,CAAC,cAAc,AAsBlD,GAAQ,OAAO,CAPD,CAAC,EAAK,EAAY,IAAY,GAAS,AAAO,MAAP,EAAc,EAAS,EAAa,IAAQ,CAAC,EAAG,AAdnF,EAAC,EAAI,EAAc,KACpC,GAAI,GAAQ,AAAgB,UAAhB,OAAO,GAAqB,AAAgB,YAAhB,OAAO,EAC9C,IAAK,IAA4D,EAAxD,EAAO,EAAkB,GAAO,EAAI,EAAG,EAAI,EAAK,MAAM,CAAO,EAAI,EAAG,IAC5E,EAAM,CAAI,CAAC,EAAE,CACT,AAAC,EAAa,IAAI,CAAC,EAAI,IAAQ,AAJT,SAIS,GAClC,EAAU,EAAI,EAAK,CAClB,IAAK,AAAC,CAAC,GAAM,CAAI,CAAC,EAAE,AAAD,EAAG,IAAI,CAAC,KAAM,GACjC,WAAY,CAAE,GAAO,EAAiB,EAAM,EAAG,GAAM,EAAK,UAAU,AACrE,GAIH,OAAO,CACR,GACiH,IAAe,GAAQ,EAAI,UAAU,CAGjJ,EAHoJ,EAAU,EAAQ,UAAW,CACrL,MAAO,EACP,WAAY,EACb,GAAa,EAAG,C,cCxBhBA,OAAO,gBAAgB,CAAC,EAAS,CAAE,WAAY,CAAE,MAAO,EAAK,EAAG,CAACkD,OAAO,WAAW,CAAC,CAAE,CAAE,MAAO,QAAS,CAAE,GAClFC,EAAQ,MAChC,IAAM,EAAgBA,EAAQ,MAC1B,EAAkCA,EAAQ,MAGxC,EAAS,CACd,GAAG,EAAgC,OAAO,CAAC,MAAM,CACjD,4BAA6B,EAAc,2BAA2B,AACvE,EACM,EAAQ,EAAgC,OAAO,CAAC,KAAK,CACrD,EAAQ,EAAgC,OAAO,CAAC,KAAK,AAQ3D,UAAe,CAPQ,CACtB,SACA,QACA,OACD,EAIA,EAAQ,MAAM,CAAG,EACjB,EAAQ,KAAK,CAAG,EAChB,EAAQ,KAAK,CAAG,C,cCtBhBnD,OAAO,cAAc,CAAC,EAASkD,OAAO,WAAW,CAAE,CAAE,MAAO,QAAS,GAC7CC,EAAQ,MAChC,IAAM,EAAgBA,EAAQ,MAC1B,EAAkCA,EAAQ,MAC1C,EAAiCA,EAAQ,MAG7C,SAAS,EAAe,CAAO,EAC9B,IAAM,EAAW,GAAK,CAAC,AAAC,GAAG,EAAgC,8BAA8B,AAAD,KAAS,EAAgC,gBAAgB,AAAD,EAAG,CAClJ,GAAI,CAAC,EAAE,EAAQ,IAAI,CAAC,CAAC,EAAE,EAAQ,OAAO,EAAIC,KAAK,GAAG,GAAG,CAAC,CACtD,GAAG,CAAO,AACX,GAEA,MADA,AAAC,GAAG,EAAgC,2BAA2B,AAAD,EAAG,GAC1D,CACR,CACA,IAAI,EAAqB,KAgDzB,AAAC,GAAG,EAAgC,8BAA8B,AAAD,EAAG,EAAgC,gBAAgB,EAGpHpD,OAAO,cAAc,CAAC,EAAS,SAAU,CACvC,WAAY,GACZ,IAAK,WACH,OAAO,EAAgC,MAAM,AAC/C,CACF,GACA,EAAQ,gBAAgB,CAAG,EAAgC,gBAAgB,CAC3E,EAAQ,cAAc,CAAG,EACzB,EAAQ,WAAW,CAnBnB,SAAqB,CAAM,SAC1B,AAAK,EACE,EAAgC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,IAAW,KAD9E,CAErB,EAiBAA,OAAO,cAAc,CAAC,EAAS,iBAAkB,CAC/C,WAAY,GACZ,IAAK,WACH,OAAO,EAAgC,cAAc,AACvD,CACF,GACAA,OAAO,cAAc,CAAC,EAAS,gBAAiB,CAC9C,WAAY,GACZ,IAAK,WACH,OAAO,EAAgC,aAAa,AACtD,CACF,GACA,EAAQ,IAAI,CAvEZ,SAAc,CAAO,EACpB,IAAM,EAAW,EAAc,2BAA2B,CAAC,EAAQ,IAAI,CAAE,EAAQ,OAAO,EAClF,EAAoB,CACzB,GAAG,CAAO,CACV,GAAI,EAAQ,EAAE,EAAI,EACnB,SACA,AAAK,GAIJ,EAAS,WAAW,CAAC,GACjB,AAAC,GAAoB,GAAqB,CAAO,EAC9C,GALP,EAAqB,EAAe,EAOtC,EA0DA,EAAQ,UAAU,CAzDlB,SAAoB,GAAG,CAAI,EAE1B,MADA,AAAC,GAAG,EAAgC,MAAM,AAAD,EAAG,EAAoB,EAA+B,WAAW,CAAE,EAA+B,cAAc,EAClJ,EAAmB,UAAU,CAAC,KAAK,CAAC,EAAoB,EAChE,EAuDAA,OAAO,cAAc,CAAC,EAAS,aAAc,CAC3C,WAAY,GACZ,IAAK,WACH,OAAO,EAAgC,UAAU,AACnD,CACF,GACAA,OAAO,cAAc,CAAC,EAAS,iBAAkB,CAC/C,WAAY,GACZ,IAAK,WACH,OAAO,EAAgC,cAAc,AACvD,CACF,GACA,EAAQ,SAAS,CAlEjB,SAAmB,GAAG,CAAI,EAEzB,MADA,AAAC,GAAG,EAAgC,MAAM,AAAD,EAAG,EAAoB,EAA+B,WAAW,CAAE,EAA+B,cAAc,EAClJ,EAAmB,SAAS,CAAC,KAAK,CAAC,EAAoB,EAC/D,EAgEA,EAAQ,aAAa,CA/DrB,SAAuB,GAAG,CAAI,EAE7B,MADA,AAAC,GAAG,EAAgC,MAAM,AAAD,EAAG,EAAoB,EAA+B,WAAW,CAAE,EAA+B,cAAc,EAClJ,EAAmB,aAAa,CAAC,KAAK,CAAC,EAAoB,EACnE,EA6DA,EAAQ,aAAa,CA5DrB,SAAuB,GAAG,CAAI,EAE7B,MADA,AAAC,GAAG,EAAgC,MAAM,AAAD,EAAG,EAAoB,EAA+B,WAAW,CAAE,EAA+B,cAAc,EAClJ,EAAmB,aAAa,CAAC,KAAK,CAAC,EAAoB,EACnE,EA0DAA,OAAO,cAAc,CAAC,EAAS,wBAAyB,CACtD,WAAY,GACZ,IAAK,WACH,OAAO,EAAgC,qBAAqB,AAC9D,CACF,GACA,EAAQ,eAAe,CA3DvB,SAAyB,GAAG,CAAI,EAE/B,MADA,AAAC,GAAG,EAAgC,MAAM,AAAD,EAAG,EAAoB,EAA+B,WAAW,CAAE,EAA+B,cAAc,EAClJ,EAAmB,eAAe,CAAC,KAAK,CAAC,EAAoB,EACrE,EAyDA,EAAQ,eAAe,CAhEvB,SAAyB,GAAG,CAAI,EAE/B,MADA,AAAC,GAAG,EAAgC,MAAM,AAAD,EAAG,EAAoB,EAA+B,WAAW,CAAE,EAA+B,cAAc,EAClJ,EAAmB,eAAe,CAAC,KAAK,CAAC,EAAoB,EACrE,EA8DA,EAAQ,cAAc,CArDtB,SAAwB,GAAG,CAAI,EAE9B,MADA,AAAC,GAAG,EAAgC,MAAM,AAAD,EAAG,EAAoB,EAA+B,WAAW,CAAE,EAA+B,cAAc,EAClJ,EAAmB,cAAc,CAAC,KAAK,CAAC,EAAoB,EACpE,C,cC9DwBmD,EAAQ,MAChC,IAAI,EAAkCA,EAAQ,KAiB9C,GAAQ,2BAA2B,CAXnC,SAAqC,CAAI,CAAE,CAAO,EACjD,IAAM,EAHsD,2BAI5D,OAAO,EAAgC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,AAAC,KACnF,GAAW,EAAW,OAAO,CAAC,EAAE,GAAK,GACrC,EAAW,OAAO,CAAC,IAAI,GAAK,IAAS,EAAW,OAAO,CAAC,OAAO,GAAK,GACpE,EAAW,OAAO,CAAC,IAAI,GAAK,KAAQ,GAAW,EAAW,OAAO,CAAC,OAAO,GAAK,EAGpF,C,WCdA,IAAI,EAAWnD,OAAO,MAAM,CACxB,EAAYA,OAAO,cAAc,CACjC,EAAmBA,OAAO,wBAAwB,CAClD,EAAoBA,OAAO,mBAAmB,CAC9C,EAAeA,OAAO,cAAc,CACpC,EAAeA,OAAO,SAAS,CAAC,cAAc,AAsBlD,GAAQ,OAAO,CAPD,CAAC,EAAK,EAAY,IAAY,GAAS,AAAO,MAAP,EAAc,EAAS,EAAa,IAAQ,CAAC,EAAG,AAdnF,EAAC,EAAI,EAAc,KACpC,GAAI,GAAQ,AAAgB,UAAhB,OAAO,GAAqB,AAAgB,YAAhB,OAAO,EAC9C,IAAK,IAA4D,EAAxD,EAAO,EAAkB,GAAO,EAAI,EAAG,EAAI,EAAK,MAAM,CAAO,EAAI,EAAG,IAC5E,EAAM,CAAI,CAAC,EAAE,CACT,AAAC,EAAa,IAAI,CAAC,EAAI,IAAQ,AAJT,SAIS,GAClC,EAAU,EAAI,EAAK,CAClB,IAAK,AAAC,CAAC,GAAM,CAAI,CAAC,EAAE,AAAD,EAAG,IAAI,CAAC,KAAM,GACjC,WAAY,CAAE,GAAO,EAAiB,EAAM,EAAG,GAAM,EAAK,UAAU,AACrE,GAIH,OAAO,CACR,GACiH,IAAe,GAAQ,EAAI,UAAU,CAGjJ,EAHoJ,EAAU,EAAQ,UAAW,CACrL,MAAO,EACP,WAAY,EACb,GAAa,EAAG,C,YCfhB,EAAQ,mBAAmB,CAP3B,SAA6B,CAAc,EACrC,EAAe,CAAC,GAAI,EAAe,UAAU,CAAC,sBAAsB,EAAK,EAAe,UAAU,CAAC,QAAQ,EAAK,EAAe,UAAU,CAAC,QAAQ,CAAC,aAAa,GACrK,EAAe,CAAC,CAAG,EAAe,UAAU,CAAC,QAAQ,CAAC,aAAa,CACnE,EAAe,UAAU,CAAC,sBAAsB,CAAG,GACpD,C,YCNAA,OAAO,cAAc,CAAC,EAASkD,OAAO,WAAW,CAAE,CAAE,MAAO,QAAS,GAMrE,EAAQ,0BAA0B,CAHC,CAAC,SAAS,A,cCH7C,IAAM,EAA8BC,EAAQ,MACtC,EAAwBA,EAAQ,MAChC,EAAyBA,EAAQ,MACjC,EAAsBA,EAAQ,IAC9B,EAA2BA,EAAQ,KAuDzC,GAAQ,QAAQ,CApDhB,SAAkB,CAAO,EACxB,EAAsB,oBAAoB,CAAC,GAC3C,GAAM,CAAE,SAAO,CAAE,UAAQ,CAAE,kBAAgB,CAAE,gBAAc,CAAEE,aAAAA,CAAY,CAAE,wBAAsB,CAAE,CAAG,EACtG,EAA4B,mBAAmB,CAAC,GAC5C,EAAe,CAAC,CAACA,EAAc,IAAUA,CAAY,CAAC,EAAQ,CAAC,OAAO,CAAC,AAAC,IAC3E,GAAI,EAAe,CAAC,CAAC,EAAkB,GAAK,OAAO,EAAS,IAAI,CAAC,CAAgB,CAAC,EAAG,EACrF,IAAM,EAAY,AAAC,IAClB,CAAgB,CAAC,EAAG,CAAG,EACvB,EAAe,CAAC,CAAC,EAAG,CAAG,AAAC,IACvB,OAAO,EAAe,CAAC,CAAC,EAAG,CAC3B,IAAM,EAAS,IACT,CAAE,WAAS,CAAE,CAAG,CAAsB,CAAC,EAAG,CAChD,GAAI,GAAW,aAAa,OAAS,GAAU,AAAkB,UAAlB,OAAO,EAAqB,GAAI,CAC1E,AAAC,EAAO,cAAc,CAAC,UAAY,AAAiB,KAAK,IAAtB,EAAO,KAAK,EAAa,GAAO,KAAK,CAAG,EAAU,WAAW,CAAC,KAAK,AAAD,CAC1G,CAAE,MAAOC,EAAG,CAAC,CACb,EAAO,OAAO,CAAG,CAClB,CACD,EACM,EAAU,AAAC,IAChB,OAAO,CAAgB,CAAC,EAAG,CAC3B,EAAe,CAAC,CAAC,EAAG,CAAG,AAAC,IAEvB,MADA,OAAO,EAAe,CAAC,CAAC,EAAG,CACrB,CACP,CACD,EACA,GAAI,CACH,IAAM,EAAqB,EAAe,UAAU,CAAC,QAAQ,CAC7D,GAAI,CAAC,EAAoB,MAAM,AAAIN,MAAM,kCACzC,GAAM,CAAE,UAAQ,CAAE,QAAM,CAAE,WAAS,CAAE,mBAAiB,CAAE,CAAG,CAAsB,CAAC,EAAG,CAC/E,EAAc,EAAuB,cAAc,CAAC,EAAgB,GACpE,EAAkB,CAAE,GAAG,CAAS,AAAC,CACnCtD,CAAAA,MAAM,OAAO,CAAC,EAAgB,KAAK,GAAKA,MAAM,OAAO,CAAC,EAAgB,KAAK,CAAC,EAAE,GAAG,GAAgB,KAAK,CAAG,EAAgB,KAAK,CAAC,EAAE,AAAD,EAChI,GAAa,GAAgB,WAAW,CAAG,CAC9C,cACA,MAAO,CAAC,EAAmB,OAAO,CAAC,IAAI,CAAC,AACzC,GACA,IAAM,EAAU,EAAmB,SAAS,CAAC,EAAU,CAAE,iBAAgB,GAAG,IAAI,CAAC,AAAC,IACjF,GAAI,AAAY,KAAZ,EAAmB,CACtB,GAAI,AAAkB,YAAlB,OAAO,EAAuB,MAAM,AAAIsD,MAAM,EAAyB,gBAAgB,CAAC,EAAoB,WAAW,CAAE,CAAE,CAAC,EAAoB,WAAW,CAAC,CAAE,4JAA+J,EAAG,CAAE,UAAS,IAC/U,OAAO,OAAyB,GACjC,CACA,OAAO,CACR,EACI,GAAQ,IAAI,CAAE,EAAS,IAAI,CAAC,CAAgB,CAAC,EAAG,CAAG,EAAQ,IAAI,CAAC,GAAW,KAAK,CAAC,IAChF,EAAU,EAChB,CAAE,MAAOM,EAAG,CACX,EAAQA,EACT,CACD,EACD,C,UCnDA,EAAQ,WAAW,CAHC,a,YCYpB,EAAQ,gBAAgB,CATC,CAACA,EAAW,EAAc,EAAM,KACxD,IAAM,EAAM,CAAC,CAAC,EAAE,CAAC,CAAY,CAACA,EAAU,CAAC,CAAC,EAAE,EAAEA,EAAU,CAAC,CAAC,CAI1D,OAHA,GAAQ,EAAI,IAAI,CAAC,CAAC,MAAM,EAAEC,KAAK,SAAS,CAAC,GAAM,CAAC,EAChD,EAAI,IAAI,CALD,CAAC,sFAAsF,EAAE,AAK5ED,EALsF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,EAAE,AAKrHA,EAL+H,WAAW,GAAG,CAAC,EAMlK,GAAoB,EAAI,IAAI,CAAC,CAAC;AAAyB,CAAC,EAAE,EAAiB,CAAC,EACrE,EAAI,IAAI,CAAC,KACjB,C,YCcA,EAAQ,uBAAuB,CAvBC,CAAC,CAAE,UAAQ,CAAE,SAAO,CAAE,SAAO,CAAE,gBAAc,CAAE,cAAc,QAAQ,CAAE,IACtG,GAAM,CAAE,SAAO,CAAE,UAAQ,CAAE,gBAAc,CAAE,gBAAc,CAAE,CAAG,EAAe,UAAU,CACvF,GAAI,CAAC,EAAgB,OAAO,EAC5B,IAAM,EAAgB,CAAc,CAAC,EAAS,CAC9C,GAAI,CAAC,EAAe,OAAO,EAC3B,IAAM,EAAe,EAAU,EAAc,IAAI,CAAC,AAAC,GAAS,CAAI,CAAC,EAAE,GAAK,GAAW,CAAa,CAAC,EAAE,CACnG,GAAI,CAAC,EAAc,MAAM,AAAIN,MAAM,CAAC,qCAAqC,EAAE,EAAS,cAAc,EAAE,EAAQ,CAAC,EAC7G,MAAO,IAAM,EAAQ,cAAc,CAAC,CACnC,OAAQ,EAAe,UAAU,CAAC,QAAQ,CAC1C,WAAY,CACX,KAAM,CAAY,CAAC,EAAE,CACrB,MAAO,CAAC,EAAE,EAAe,CAAC,CAAC,EAAE,CAAY,CAAC,EAAE,CAAC,CAAC,CAC9C,KAAM,EACN,gBAAiB,CAAY,CAAC,EAAE,CAChC,WAAY,SACb,CACD,GAAG,IAAI,CAAC,AAAC,IACR,GAAI,CAAC,EAAY,MAAM,AAAIA,MAAM,CAAC,4CAA4C,EAAE,EAAS,cAAc,EAAE,EAAQ,CAAC,EAClH,OAAO,EAAW,IAAI,CAAC,EAAe,UAAU,CAAC,QAAQ,CAAE,GAAgB,IAAI,CAAC,IAAM,EAAW,GAAG,GACrG,EACD,C,YCbA,EAAQ,cAAc,CAPtB,SAAwB,CAAc,CAAE,CAAU,EACjD,IAAM,EAAc,EAAe,UAAU,CAAC,WAAW,CACzD,GAAK,EACL,OAAO,CAAW,CAAC,EAAW,AAC/B,C,aCNAhD,OAAO,gBAAgB,CAAC,EAAS,CAAE,WAAY,CAAE,MAAO,EAAK,EAAG,CAACkD,OAAO,WAAW,CAAC,CAAE,CAAE,MAAO,QAAS,CAAE,GAC1G,IAAM,EAAkBC,EAAQ,KAC1B,EAA8BA,EAAQ,MACtC,EAAkBA,EAAQ,MAC1B,EAAmBA,EAAQ,MAC3B,EAA4BA,EAAQ,MACpC,EAAiCA,EAAQ,MACzC,EAA6BA,EAAQ,MACrC,EAAeA,EAAQ,KACvB,EAAkCA,EAAQ,MAC5C,EAA6BA,EAAQ,MACzC,EAA6B,EAAgB,OAAO,CAAC,GAKrD,IAAM,EAAiB,CACtB,QAAsB,EAAgB,OAAO,CAC7C,SAAuB,EAAiB,QAAQ,CAChD,EAAgB,EAA0B,iBAAiB,CAC3D,EAAG,CAAC,EACJ,uBAAqC,EAA+B,sBAAsB,CAC1F,mBAAoG,EAA2B,kBAAkB,CACjJ,KAAM,EAAa,IAAI,CACvB,wBAAsC,EAAgC,uBAAuB,AAC9F,EACM,EAAa,CAClB,QAAS,EACT,SAAU,KAAK,EACf,YAAa,KAAK,EAClB,iBACA,oBAAqB,EAA4B,mBAAmB,CACpE,sBAAuB,CAAC,CACzB,EACM,EAAW,EAAW,QAAQ,CAC9B,EAAc,EAAW,WAAW,CACpC,EAAwB,EAAW,qBAAqB,AAG9D,GAAQ,mBAAmB,CAAG,EAA4B,mBAAmB,CAC7E,EAAQ,cAAc,CAAG,EACzB,EAAQ,qBAAqB,CAAG,EAChC,SAAe,CAAG,EAClB,EAAQ,WAAW,CAAG,EACtB,EAAQ,QAAQ,CAAG,EACnBnD,OAAO,cAAc,CAAC,EAAS,UAAW,CACxC,WAAY,GACZ,IAAK,WACH,OAAO,CACT,CACF,E,aClDA,IAAM,EAAkBmD,EAAQ,KAC5B,EAA6BA,EAAQ,MACrC,EAAqCA,EAAQ,MACjD,EAAqC,EAAgB,OAAO,CAAC,GAgF7D,EAAQ,IAAI,CA5EZ,SAAc,CAAE,gBAAc,CAAE,EAC/B,GAAM,CAAE,aAAW,CAAE,SAAO,CAAE,gBAAc,CAAE,gBAAc,CAAEK,YAAAA,CAAW,CAAE,CAAG,EAAe,UAAU,CACvG,GAAI,CAAC,EAAa,MAAM,AAAIR,MAAM,4BAsElC,OAHC,EAAY,OAAO,GAAK,EAAE,CAC1B,EAAY,OAAO,CAAC,IAAI,CAjEhB,CACN,KAAM,oBACN,WAAW,CAAI,EACd,GAAM,CAAE,aAAW,CAAE,QAAM,CAAE,QAAS,CAAiB,CAAE,CAAG,EACtD,EAAU,EAAY,OAAO,EAAI,EAAkB,OAAO,CAChE,GAAI,CAAC,EAAgB,OAAO,EAC5B,IAAM,EAAgB,EAAY,MAAM,EAAI,CAAC,EACvC,EAAS,EAAE,CACjBhD,OAAO,IAAI,CAAC,GAAe,OAAO,CAAC,AAAC,IACnC,AAACN,CAAAA,MAAM,OAAO,CAAC,CAAa,CAAC,EAAW,EAAI,CAAa,CAAC,EAAW,CAAG,CAAC,CAAa,CAAC,EAAW,CAAC,AAAD,EAAG,OAAO,CAAC,AAAC,IAC7G,EAAO,IAAI,CAAC,CAAC,EAAY,EAAU,EAC/B,QAAS,IACZ,EAAU,WAAW,GAAK,CAAC,EAC3B,EAAU,WAAW,CAAC,GAAG,CAAG,EAAU,GAAG,CACzC,EAAU,GAAG,CAAG,EAAe,uBAAuB,CAAC,CACtD,SAAU,EACV,QAAS,EAAU,GAAG,CACtB,iBACA8D,YAAAA,EACA,QAAS,EAAU,OAAO,AAC3B,GAEF,EACD,GACA,IAAMC,EAAqB,EAAmC,OAAO,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAC9G,KAAM,EAAO,IAAI,CACjB,SACD,UACKA,GAAwB,WAAYA,IACzCzD,OAAO,IAAI,CAAC,EAAkB,MAAM,EAAI,CAAC,GAAG,OAAO,CAAC,AAAC,IACpD,EAAkB,MAAM,CAAC,EAAQ,CAAC,OAAO,CAAC,AAAC,IAC1C,EAAO,IAAI,CAAC,CAAC,EAAS,EAAU,CACjC,EACD,GAwBA,EAAO,OAAO,CAAC,CAAC,CAAC,EAAS,EAAU,IACnC,AAxBmB,EAAC,EAAS,KAC7B,IAAM,EAAgByD,EAAmB,MAAM,CAAC,IAAI,CAAC,AAAC,GAAS,EAAK,UAAU,GAAK,GACnF,GAAI,CAAC,EAAe,OACpB,GAAM,CAAE,aAAW,CAAE,CAAG,EACxB,GAAI,CAAC,EAAa,OAClB,GAAM,CAAE,gCAA8B,CAAEC,gCAAAA,CAA+B,CAAE,mBAAiB,CAAE,CAAG,CAC3F,GAAY,MAAM,GAAK,IAC3B,EAAY,MAAM,CAAG,EACjBA,GAAmCF,GAAe,GAAgC,GAAY,GAAG,CAAG,UACvG,IAAM,EAAa,MAAM,AAAC,GAAG,EAA2B,cAAc,AAAD,EAAG,CACvE,SACA,WAAY,CACX,KAAM,EACN,MAAOE,EACP,KAAMF,EACN,gBAAiB,EACjB,WAAY,SACb,CACD,GAEA,OADA,MAAM,EAAW,IAAI,CAAC,EAAQ,EAAoB,UAAU,CAAC,cAAc,EACpE,EAAW,GAAG,EACtB,GACD,GAEa,EAAS,EACtB,IA/BqE,CAiCtE,CACD,GAKK,EAAQ,IAAI,CAAC,EACrB,C,YCxCA,EAAQ,kBAAkB,CAtC1B,SAA4B,CAAO,EAClC,GAAM,CAAE,gBAAc,CAAE,YAAU,CAAE,WAAS,CAAE,eAAa,CAAE,wBAAsB,CAAE,CAAG,EACzF,GAAI,CAAC,EAAe,CAAC,EACjB,CAAC,EAAe,UAAU,EAAI,CAAC,EAAe,UAAU,CAAC,QAAQ,EAAI,CAAC,EAAe,UAAU,CAAC,WAAW,CADxF,OAEvB,IAAM,EAAqB,EAAe,UAAU,CAAC,QAAQ,CAC7D,EAAmB,WAAW,CAAC,CAC9B,KAAM,EAAe,UAAU,CAAC,WAAW,CAAC,IAAI,CAChD,QAAS,EAAE,CACX,GAAG,CAAsB,AAC1B,GACA,IAAM,EAAqB,GAAwB,eAC7C,EAAoB,GAAwB,cAClD,GAAI,AAAC,GAAiB,AAAyB,UAAzB,OAAO,EAQtB,EAAc,OAAO,CAAC,AAAC,IAC7B,GAAI,CAAC,GAAsB,CAAC,EAAmB,YAC9C,EAAmB,iBAAiB,CAAC,EAAK,EAAY,CAAE,kBAAmB,GAAwB,eAAiB,CAAC,CAAE,EAGpH,AAAC,EAAiB,CAAC,EAAI,EAAE,EAAiB,CAAC,EAAI,CAAG,CAAC,GACvD,IAAM,EAAK,CAAiB,CAAC,EAAI,CACjC,EAAmB,iBAAiB,CAAC,EAAK,EAAI,CAAE,kBAAmB,GAAwB,eAAiB,CAAC,CAAE,EAChH,OAhByD,CACxD,IAAM,EAAM,GAAiB,UACzB9D,MAAM,OAAO,CAAC,GAAqB,EAAmB,OAAO,CAAC,AAAC,IAC9D,AAAC,CAAiB,CAAC,EAAQ,EAAE,EAAiB,CAAC,EAAQ,CAAG,CAAC,GAC/D,IAAM,EAAK,CAAiB,CAAC,EAAQ,CACrC,EAAmB,iBAAiB,CAAC,EAAS,EAAI,CAAE,kBAAmB,GAAwB,eAAiB,CAAC,CAAE,EACpH,GACK,EAAmB,iBAAiB,CAAC,EAAK,EAAY,CAAE,kBAAmB,GAAwB,eAAiB,CAAC,CAAE,EAC7H,OAUA,CADI,EAAe,UAAU,CAAC,mBAAmB,EAAE,EAAe,UAAU,CAAC,mBAAmB,CAAC,GAC5FA,MAAM,OAAO,CAAC,IACP,EAAe,UAAU,CAAC,WAAW,CAAC,MAAM,CAAU,EAAe,CAAC,CAAC,EAAe,GAC3FqD,QAAQ,GAAG,CAAC,EAAc,GAAG,CAAC,AAAC,GAC9B,EAAe,CAAC,CAAC,EAAK,KAC1B,IAAI,CAAC,IAAM,IAJ2B,EAAe,CAAC,CAAC,GAAiB,UAAW,EAKxF,C,cCrCA,IAAM,EAA8BI,EAAQ,MACtC,EAAmBA,EAAQ,KA0DjC,GAAQ,iBAAiB,CAvDzB,SAA2B,CAAE,gBAAc,CAAE,gBAAc,CAAE,cAAY,CAAEQ,WAAAA,CAAU,CAAE,WAAS,CAAE,EACjG,IAAMD,EAAiBhE,MAAM,OAAO,CAAC,GAAkB,EAAiB,CAAC,EAAe,CACxF,IAAI,EAA4B,EAAE,CAC9B,EAAqB,SAASgE,CAAa,EAC1C,AAAC,GAAW,GAAY,EAAE,AAAD,EAC7B,IAAM,EAAa,EAAe,UAAU,CAAC,QAAQ,CACrD,IAAI,EAAYC,CAAU,CAACD,EAAc,CAEzC,GADI,AAAC,GAAW,GAAYC,CAAU,CAACD,EAAc,CAAG,CAAE,KAAM,EAAW,IAAI,AAAC,GAC5E,EAAU,OAAO,CAAC,IAAc,EAAG,OACvC,EAAU,IAAI,CAAC,GACf,IAAM,EAAU,CAAY,CAACA,EAAc,CAC3C,GAAI,EAAS,OAAO,EAEpB,IAAI,EAAe,AAAC,IACnB,IAAI,EAAc,AAACJ,QAFR,WAEqB,8CAAgDA,EAF7D,AAAmB,IAAnB,OAAOM,SAA2BA,QAAQ,IAAI,EAAIA,QAAQ,IAAI,CAAC,IAGlF,GAAI,CACH,IAAI,EAAS,EAAe,GAC5B,GAAI,CAAC,EAAQ,OACb,IAAID,EAAS,AAAC,GAAW,GAAU,EAAO,IAAI,EAAI,EAAO,IAAI,CAAC,EAAe,CAAC,CAACD,EAAc,CAAE,EAAW,CACzG,cAAe,EAAe,CAAC,EAAI,CAAC,EACpC,eAAgB,CACjB,GACA,GAAI,EAAO,IAAI,CAAE,OAAO,EAAS,IAAI,CAAC,EAAO,IAAI,CAACC,EAAQ,IAC1D,IAAI,EAAaA,EAAO,GACxB,GAAI,GAAc,AAAsB,WAAtB,OAAO,GAA4B,EAAW,IAAI,CAAE,OAAO,EAAS,IAAI,CAAC,EAAW,KAAQ,CAAC,GAChH,CAAE,MAAOL,EAAK,CACb,EAAYA,EACb,CACD,EACA,IAAM,EAAW,EAAW,iBAAiB,CAACI,EAAe,CAC5D,SAAU,EAAW,OAAO,CAAC,aAAa,CAC1C,YACA,KAAM,OACP,GACA,EAA4B,mBAAmB,CAAC,GAChD,IAAM,EAA+B,EAAe,UAAU,CAAC,qBAAqB,CAAC,OAAO,OAU5F,CATI,GAA8B1D,OAAO,IAAI,CAAC,EAA6B,aAAa,EAAE,OAAO,CAAC,AAAC,IAClG,IAAM,EAAO,EAA6B,aAAa,CAAC,EAAS,CAC3D,EAAmB,EAA6B,0BAA0B,CAAC,EAAS,CAAC,EAAE,CAC7F,GAAI,EAAK,MAAM,CAAG,EAAG,EAAa,QAC7B,GAAI,AAAgB,IAAhB,EAAK,MAAM,CAAQ,CAC3B,IAAM,EAAa,CAAI,CAAC,EAAE,AACtB,CAAC,EAAiB,0BAA0B,CAAC,QAAQ,CAAC,EAAW,YAAY,GAAG,EAAa,EAClG,CACD,GACK,EAAS,MAAM,EACb,CAAY,CAAC0D,EAAc,CAAGX,QAAQ,GAAG,CAAC,GAAU,IAAI,CAAC,IAAM,CAAY,CAACW,EAAc,CAAG,IADvE,CAAY,CAACA,EAAc,CAAG,EAE5D,EAIA,OAHAA,EAAe,OAAO,CAAC,AAAC,IACvB,EAA0B,IAAI,CAAC,EAAmB,GACnD,GACOX,QAAQ,GAAG,CAAC,GAA2B,IAAI,CAAC,IAAM,GAC1D,C,cCxDA,IAAM,EAAwBI,EAAQ,MAChC,EAAyBA,EAAQ,KA4DvC,GAAQ,sBAAsB,CArC9B,SAAgC,CAAO,EACtC,EAAsB,oBAAoB,CAAC,GAC3C,GAAM,CAAE,wBAAsB,CAAE,gBAAc,CAAEQ,iBAAAA,CAAgB,CAAE,iBAAe,CAAE,WAAS,CAAE,CAAG,EAC3F,EAAgB,EAAE,CACxB,EAAgB,OAAO,CAAC,AAAC,IAOxB,EAAc,IAAI,CAAC,CAAC,EANE,IAAM,AAzB9B,UAA+B,CAAO,EACrC,GAAM,CAAE,UAAQ,CAAE,wBAAsB,CAAE,gBAAc,CAAE,WAAS,CAAE,CAAG,EAClE,EAAqB,EAAe,UAAU,CAAC,QAAQ,CAC7D,GAAI,CAAC,EAAoB,MAAM,AAAIX,MAAM,kCACzC,GAAM,CAAEU,SAAAA,CAAQ,CAAE,WAAS,CAAE,CAAG,CAAsB,CAAC,EAAS,CAChE,GAAI,CACH,IAAM,EAAc,EAAuB,cAAc,CAAC,EAAgBA,GACpE,EAAkB,CAAE,GAAG,CAAS,AAAC,EAKvC,GAJI,GAAa,GAAgB,WAAW,CAAG,CAC9C,cACA,MAAO,CAAC,EAAmB,OAAO,CAAC,IAAI,CAAC,AACzC,GACI,EAAW,OAAO,EAAmB,SAAS,CAACA,EAAU,CAAE,iBAAgB,GAC/E,OAAO,EAAmB,aAAa,CAACA,EAAU,CAAE,iBAAgB,EACrE,CAAE,MAAOJ,EAAK,CAGb,MAFAM,QAAQ,KAAK,CAAC,gMACdA,QAAQ,KAAK,CAAC,8CACRN,CACP,CACD,GAMoD,CACjD,SAAU,EACV,yBACA,iBACA,WACD,GACsC,CACvC,GACA,IAAM,EAAY,CAAC,EAAI,KACtB,EAAe,CAAC,CAAC,EAAG,CAAG,AAAC,IACvBK,CAAgB,CAAC,EAAG,CAAG,EACvB,OAAO,EAAe,CAAC,CAAC,EAAG,CAC3B,IAAM,EAAU,IAChB,GAAI,AAAmB,YAAnB,OAAO,EAAwB,MAAM,AAAIX,MAAM,CAAC,sDAAsD,EAAE,EAAG,CAAC,EAChH,IAAM,EAAS,IACT,CAAE,WAAS,CAAE,CAAG,CAAsB,CAAC,EAAG,CAChD,GAAI,GAAW,aAAa,OAAS,GAAU,AAAkB,UAAlB,OAAO,EAAqB,GAAI,CAC1E,AAAC,EAAO,cAAc,CAAC,UAAY,AAAiB,KAAK,IAAtB,EAAO,KAAK,EAAa,GAAO,KAAK,CAAG,EAAU,WAAW,CAAC,KAAK,AAAD,CAC1G,CAAE,MAAOM,EAAG,CAAC,CACb,EAAO,OAAO,CAAG,CAClB,CACD,EACA,GAAI,EAAW,OAAOP,QAAQ,GAAG,CAAC,EAAc,GAAG,CAAC,MAAO,CAAC,EAAI,EAAc,IAC7E,IAAMI,EAAS,MAAM,IACrB,EAAU,EAAI,IAAMA,EACrB,IACA,EAAc,OAAO,CAAC,CAAC,CAAC,EAAI,EAAc,IACzC,EAAU,EAAI,EACf,EACD,C,cC1DwBA,EAAQ,KAChC,IAAM,EAA8BA,EAAQ,MACtC,EAAmBA,EAAQ,MAC3B,EAAwBA,EAAQ,MAClC,EAAyBA,EAAQ,KAoErC,GAAQ,OAAO,CAjEf,SAAiB,CAAO,EACvB,EAAsB,mBAAmB,CAAC,GAC1C,GAAM,CAAE,SAAO,CAAE,UAAQ,CAAE,gBAAc,CAAE,cAAY,CAAE,4BAA0B,CAAE,eAAa,CAAE,CAAG,EACvG,EAA4B,mBAAmB,CAAC,GAC5C,EAAe,CAAC,CAAC,EAAc,IAAU,CAAY,CAAC,EAAQ,CAAC,OAAO,CAAC,AAAC,IAC3E,IAAI,EAAW,EAAe,CAAC,AAC3B,CAAC,GAAU,GAAW,EAAE,AAAD,EAC3B,IAAM,EAAO,CAA0B,CAAC,EAAG,CACrC,EAAc,CAAa,CAAC,EAAG,EAAI,EAAE,CAC3C,GAAI,EAAS,OAAO,CAAC,IAAS,EAAG,OAEjC,GADA,EAAS,IAAI,CAAC,GACV,EAAK,CAAC,CAAE,OAAO,EAAS,IAAI,CAAC,EAAK,CAAC,EACvC,IAAM,EAAU,AAAC,IACZ,AAAC,GAAO,GAAwB,AAAIH,MAAM,oBAAmB,EAC7D,AAAyB,UAAzB,OAAO,EAAM,OAAO,EAAe,GAAM,OAAO,EAAI;AAAG,eAAe,EAAE,CAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAI,CAAC,EAAE,CAAC,CAAC,AAAD,EACrG,EAAe,CAAC,CAAC,EAAG,CAAG,KACtB,MAAM,CACP,EACA,EAAK,CAAC,CAAG,CACV,EACM,EAAiB,CAAC,EAAI,EAAM,EAAM,EAAG,EAAM,KAChD,GAAI,CACH,IAAM,EAAU,EAAG,EAAM,GACzB,GAAI,KAAW,EAAQ,IAAI,CAIpB,OAAO,EAAK,EAAS,EAAG,EAJF,EAC5B,IAAM,EAAI,EAAQ,IAAI,CAAC,AAAC,GAAW,EAAK,EAAQ,GAAI,GACpD,IAAI,EACC,OAAO,EADD,EAAS,IAAI,CAAC,EAAK,CAAC,CAAG,EAEnC,CACD,CAAE,MAAOM,EAAO,CACf,EAAQA,EACT,CACD,EAEA,IAAI,EAAgB,CAAC,EAAG,EAAU,IAAU,EAAe,EAAS,GAAG,CAAE,CAAI,CAAC,EAAE,CAAE,EAAU,EAAG,EAAW,GACtG,EAAY,AAAC,IAChB,EAAK,CAAC,CAAG,EACT,EAAe,CAAC,CAAC,EAAG,CAAG,AAAC,IACvB,EAAO,OAAO,CAAG,GAClB,CACD,CAoBI,AAAuB,KAAvB,EAAY,MAAM,EAAU,EAAiB,0BAA0B,CAAC,QAAQ,CAAC,CAAW,CAAC,EAAE,CAAC,YAAY,GAAK,CAAW,CAAC,EAAE,CAAC,IAAI,CAAE,EAnBnH,KACtB,GAAI,CACH,IAAM,EAAmB,AAAC,GAAG,EAAuB,UAAU,AAAD,EAAG,CAAW,CAAC,EAAE,CAAC,IAAI,CAAE,EAAuB,kBAAkB,EAAI,CAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAC1I,EAAW,EAAe,UAAU,CAAC,QAAQ,CAC7C,EAAa,IAAM,EAAe,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAkB,CACxF,YAAa,GACb,KAAM,OACP,GACA,GAAI,AAAmC,kBAAnC,EAAS,OAAO,CAAC,aAAa,CAAsB,CACvD,IAAM,EAAc5D,MAAM,OAAO,CAAC,CAAI,CAAC,EAAE,EAAI,CAAI,CAAC,EAAE,CAAG,CAAC,CAAI,CAAC,EAAE,CAAC,CAChE,OAAOqD,QAAQ,GAAG,CAAC,EAAY,GAAG,CAAC,AAAC,GAAe,EAAS,aAAa,CAAC,iBAAiB,CAAC,KAAc,IAAI,CAAC,IACvG,IAET,CACA,OAAO,GACR,CAAE,MAAOO,EAAO,CACf,EAAQA,EACT,CACD,EACyK,CAAI,CAAC,EAAE,CAAE,EAAG,EAAG,EAAW,GAC9L,EAAe,EAAgB,CAAI,CAAC,EAAE,CAAE,EAAG,EA5B7B,CAACA,EAAU,EAAG,IAAUA,EAAW,EAAe,EAAe,CAAC,CAAE,CAAI,CAAC,EAAE,CAAE,EAAGA,EAAU,EAAe,GAAS,IA4BtE,EAChE,EACD,C,YCwCA,EAAQ,oBAAoB,CA3G5B,SAA8B,CAAO,EACpC,GAAM,CAAE,gBAAc,CAAE,wBAAsB,CAAE,CAAG,EAC7C,CAAE,qBAAmB,CAAE,uBAAqB,CAAE,CAAG,EACjD,CAAE,gBAAc,CAAE,gBAAc,CAAE,aAAW,CAAE,CAAG,EAAe,UAAU,CACjF,GAAI,GAAuB,CAAC,EAAoB,QAAQ,CAAE,CACzD,GAAM,CAAE,6BAA8B,EAAsC,CAAC,CAAC,CAAE,gBAAiB,EAAyB,EAAE,CAAE,aAAcO,EAAsB,CAAC,CAAC,CAAE,CAAG,EA2BzK,GA1BA7D,OAAO,OAAO,CAAC,GAAqC,OAAO,CAAC,CAAC,CAAC,EAAI,EAAK,IAClE,AAAC,CAAsB,CAAC,EAAG,EAAE,EAAsB,CAAC,EAAG,CAAG,CAC7D,OAAQ,EAAiB,GAAgB,wBAAwB,CAChE,SAAU,EAAK,QAAQ,CACvB,QAAS,EAAK,QAAQ,CACtB,iBACA,aACD,GAAK,EAAK,QAAQ,CAClB,kBAAmB,EAAiB,EAAK,QAAQ,CAAG,KAAK,EACzD,UAAW,CACV,YAAa,CACZ,gBAAiB,EAAK,eAAe,CACrC,cAAe,EAAK,aAAa,CACjC,UAAW,EAAK,SAAS,CACzB,MAAO,EAAK,KAAK,CACjB,MAAO,EAAK,KAAK,AAClB,EACA,MAAON,MAAM,OAAO,CAAC,EAAK,UAAU,EAAI,EAAK,UAAU,CAAG,CAAC,EAAK,UAAU,EAAI,UAAU,CACxF,YAAa,EAAiB,CAC7B,IAAK,EAAK,QAAQ,CAClB,KAAM,EAAK,eAAe,AAC3B,EAAI,KAAK,CACV,EACA,SAAU,EAAK,QAAQ,AACxB,EACD,GACI,oBAAqB,EAAS,CACjC,GAAM,CAAE,kBAAkB,EAAE,CAAE,CAAG,EACjC,EAAuB,OAAO,CAAC,AAAC,IAC3B,AAAC,EAAgB,QAAQ,CAAC,IAAK,EAAgB,IAAI,CAAC,EACzD,EACD,CACA,GAAI,iBAAkB,EAAS,CAC9B,GAAM,CAAE,eAAe,CAAC,CAAC,CAAE,CAAG,EAC9BM,OAAO,OAAO,CAAC6D,GAAqB,OAAO,CAAC,CAAC,CAAC,EAAI,EAAa,IAC1D,AAAC,CAAY,CAAC,EAAG,EAAE,EAAY,CAAC,EAAG,CAAG,EAAE,AAAD,EAC3C,EAAa,OAAO,CAAC,AAAC,IACjB,AAAC,CAAY,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAW,CAAY,CAAC,EAAG,CAAC,IAAI,CAAC,EACjE,EACD,EACD,CACA,EAAoB,QAAQ,CAAG,CAChC,CACA,GAAI,GAAyB,CAAC,EAAsB,QAAQ,CAAE,CAC7D,GAAM,CAAE,YAAU,CAAE,CAAG,EACvB,GAAI,CAAC,EAAW,QAAQ,EAAI,CAAC,EAAsB,yBAAyB,CAAE,OAC9E,IAAM,EAAS,CAAC,EAChB,IAAK,GAAI,CAAC,EAAO,EAAO,GAAI7D,OAAO,OAAO,CAAC,EAAsB,yBAAyB,EAAG,IAAK,IAAI,KAAS,EAAQ,GAAI,AAAiB,UAAjB,OAAO,GAAsB,AAAU,OAAV,EAAgB,CACvK,GAAM,CAAE,MAAI,CAAE,SAAO,CAAE,SAAO,CAAE,OAAK,CAAE0D,UAAAA,CAAS,CAAE,iBAAe,CAAE,eAAa,CAAE,CAAG,EAC/E,EAAc,CAAE,gBAAiB,CAAC,CAAC,EAAE,EAAQ,CAAC,AAAC,EAC/C,EAAe,SAAS,CAAG,EAChC,OAAO,AAAe,SAAR,CACf,CACI,GAAaA,IAAY,GAAY,SAAS,CAAGA,CAAQ,EACzD,EAAa,IAAkB,GAAY,eAAe,CAAG,CAAc,EAC3E,EAAa,IAAQ,GAAY,KAAK,CAAG,CAAI,EAC7C,EAAa,IAAgB,GAAY,aAAa,CAAG,CAAY,EACzE,IAAM,EAAU,CACf,UACA,MAAO,CAAC,EAAM,CACd,cACA,IAAK,CACN,CACI,EAAM,CAAC,EAAK,CAAE,CAAM,CAAC,EAAK,CAAC,IAAI,CAAC,GAC/B,CAAM,CAAC,EAAK,CAAG,CAAC,EAAQ,AAC9B,CACA,EAAW,QAAQ,CAAC,cAAc,CAAC,GACnC,EAAsB,QAAQ,CAAG,CAClC,CACD,EAiCA,EAAQ,mBAAmB,CAhC3B,SAA6B,CAAO,EACnC,GAAM,CAAE,gBAAc,CAAE,6BAA6B,CAAC,CAAC,CAAE,gBAAgB,CAAC,CAAC,CAAE,eAAe,CAAC,CAAC,CAAE,CAAG,EAC7F,CAAE,oBAAkB,CAAE,CAAG,EACzB,EAAc,EAAe,UAAU,EAAE,uBAAuB,SAAS,YAC/E,GAAI,CAAC,GAAsB,EAAmB,QAAQ,EAAI,CAAC,EAAa,OACxE,GAAM,CAAE,aAAc,CAAmB,CAAE,6BAA2B,CAAE,CAAG,EAC3E,GAAI,AAAC,GAAwB,GAC7B,IAAK,GAAI,CAAC,EAAU,EAAK,GAAI1D,OAAO,OAAO,CAAC,GAM3C,GALI,AAAC,CAA0B,CAAC,EAAS,EAAE,EAA0B,CAAC,EAAS,CAAG,CACjF,EAAK,UAAU,CACf,EAAK,IAAI,CACT,EAAK,gBAAgB,CACrB,AAAD,EACI,CAAC,CAAa,CAAC,EAAS,EAAI,CAAW,CAAC,EAAK,UAAU,CAAC,CAAE,CAC7D,IAAM,EAAQ,CAAW,CAAC,EAAK,UAAU,CAAC,AAC1C,EAAa,CAAC,EAAS,GAAK,EAAE,CAC9B,EAAM,OAAO,CAAC,AAAC,IACV,AAAC,CAAa,CAAC,EAAS,CAAC,QAAQ,CAAC,IAAO,CAAa,CAAC,EAAS,CAAC,IAAI,CAAC,EAC3E,EACD,CAEG,GAAcA,OAAO,OAAO,CAAC,GAAqB,OAAO,CAAC,CAAC,CAAC,EAAI,EAAa,IAC5E,AAAC,CAAY,CAAC,EAAG,EAAE,EAAY,CAAC,EAAG,CAAG,EAAE,AAAD,EAC3C,EAAa,OAAO,CAAC,AAAC,IACjB,AAAC,CAAY,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAW,CAAY,CAAC,EAAG,CAAC,IAAI,CAAC,EACjE,EACD,GACA,EAAmB,QAAQ,CAAG,EAC/B,C,6KCzGG,AAAC,EAAoB,UAAU,EAC9B,GAAoB,UAAU,CAAG,CAErC,aAAc,SAAS,CAAO,EAC1B,MAAO,CAAC,0BAA0B,IAAI,CAAC,EAC3C,EACA,cAAe,EAEX,GCRJ,EAAoB,CAAC,CAAG,AAAC,IACxB,IAAI,EAAS,GAAU,EAAO,UAAU,CACvC,IAAO,EAAO,OAAU,CACxB,IAAO,EAER,OADA,EAAoB,CAAC,CAAC,EAAQ,CAAE,EAAG,CAAO,GACnC,CACR,ECPI,EAAWA,OAAO,cAAc,CAAG,AAAC,GAASA,OAAO,cAAc,CAAC,GAAQ,AAAC,GAAS,EAAI,SAAS,CAQtG,EAAoB,CAAC,CAAG,SAAS,CAAK,CAAE,CAAI,EAE3C,GADG,AAAO,EAAP,GAAU,GAAQ,IAAI,CAAC,EAAK,EACrB,EAAP,GACA,AAAiB,UAAjB,OAAO,GAAsB,IACpB,EAAP,GAAa,EAAM,UAAU,EAC9B,AAAQ,GAAP,GAAc,AAAsB,YAAtB,OAAO,EAAM,IAAI,EAHvB,OAAO,EAKpB,IAAI,EAAKA,OAAO,MAAM,CAAC,MACtB,EAAoB,CAAC,CAAC,GACvB,IAAI,EAAM,CAAC,EACXwD,EAAiBA,GAAkB,CAAC,KAAM,EAAS,CAAC,GAAI,EAAS,EAAE,EAAG,EAAS,GAAU,CACzF,IAAI,IAAI,EAAU,AAAO,EAAP,GAAY,EAAO,AAAC,CAAkB,UAAlB,OAAO,GAAuB,AAAkB,YAAlB,OAAO,CAAoB,GAAM,CAAC,CAACA,EAAe,OAAO,CAAC,GAAU,EAAU,EAAS,GAC1JxD,OAAO,mBAAmB,CAAC,GAAS,OAAO,CAAC,AAAC,IAAU,CAAG,CAAC,EAAI,CAAG,IAAO,CAAK,CAAC,EAAI,AAAE,GAItF,OAFA,EAAI,OAAU,CAAG,IAAO,EACxB,EAAoB,CAAC,CAAC,EAAI,GACnB,CACR,ECzBA,EAAoB,CAAC,CAAG,CAACsD,EAAS,KACjC,IAAI,IAAI,KAAO,EACL,EAAoB,CAAC,CAAC,EAAY,IAAQ,CAAC,EAAoB,CAAC,CAACA,EAAS,IACzEtD,OAAO,cAAc,CAACsD,EAAS,EAAK,CAAE,WAAY,GAAM,IAAK,CAAU,CAAC,EAAI,AAAC,EAGzF,ECNA,EAAoB,CAAC,CAAG,CAAC,EAGzB,EAAoB,CAAC,CAAG,AAAC,GACjBP,QAAQ,GAAG,CACjB/C,OAAO,IAAI,CAAC,EAAoB,CAAC,EAAE,MAAM,CAAC,CAAC,EAAU,KACpD,EAAoB,CAAC,CAAC,EAAI,CAAC,EAAS,GAC7B,GACL,EAAE,GCPP,EAAoB,CAAC,CAAG,AAAC,GAIhB,GAAK,EAAU,MCLxB,EAAoB,CAAC,CAAG,AAAC,MACxB,GAAI,AAAsB,UAAtB,OAAO8D,WAAyB,OAAOA,WAC3C,GAAI,CACH,OAAO,IAAI,EAAI,AAAIC,SAAS,gBAC7B,CAAE,MAAOT,EAAG,CACX,GAAI,AAAkB,UAAlB,OAAOU,OAAqB,OAAOA,MACxC,CACD,KCPA,EAAoB,CAAC,CAAG,CAAC,EAAK,IAAUhE,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAK,GCA9E,EAAa,CAAC,EAIlB,EAAoB,CAAC,CAAG,SAAU,CAAG,CAAE,CAAI,CAAE,CAAG,CAAE,CAAO,EACxD,GAAI,CAAU,CAAC,EAAI,CAAE,YACpB,CAAU,CAAC,EAAI,CAAC,IAAI,CAAC,GAItB,GAAI,AAAQ,SAAR,EAEH,IAAK,IAHF,EAAQ,EAEP,EAAUiE,SAAS,oBAAoB,CAAC,UACnC,EAAI,EAAG,EAAI,EAAQ,MAAM,CAAE,IAAK,CACxC,IAAI,EAAI,CAAO,CAAC,EAAE,CAClB,GAAI,EAAE,YAAY,CAAC,QAAU,GAAO,EAAE,YAAY,CAAC,gBAAkB,AAZvD,sBAYoE,EAAK,CACtF,EAAS,EACT,KACD,CACD,CAEI,IACJ,EAAa,GAIf,AAHE,GAASA,SAAS,aAAa,CAAC,SAAQ,EAGnC,OAAO,CAAG,IACb,EAAoB,EAAE,EACxB,EAAO,YAAY,CAAC,QAAS,EAAoB,EAAE,EAGrD,EAAO,YAAY,CAAC,cAAe,AA5BlB,sBA4B+B,GAIhD,EAAO,GAAG,CAAG,GAIZ,CAAU,CAAC,EAAI,CAAG,CAAC,EAAK,CACxB,IAAI,EAAmB,SAAU,CAAI,CAAE,CAAK,EAC3C,EAAO,OAAO,CAAG,EAAO,MAAM,CAAG,KACjCC,aAAa,GACb,IAAI,EAAU,CAAU,CAAC,EAAI,CAO7B,GANA,OAAO,CAAU,CAAC,EAAI,CACtB,EAAO,UAAU,EAAI,EAAO,UAAU,CAAC,WAAW,CAAC,GACnD,GACC,EAAQ,OAAO,CAAC,SAAU,CAAE,EAC3B,OAAO,EAAG,EACX,GACG,EAAM,OAAO,EAAK,EACvB,EACI,EAAUC,WACb,EAAiB,IAAI,CAAC,KAAM,OAAW,CACtC,KAAM,UACN,OAAQ,CACT,GACA,KAED,GAAO,OAAO,CAAG,EAAiB,IAAI,CAAC,KAAM,EAAO,OAAO,EAC3D,EAAO,MAAM,CAAG,EAAiB,IAAI,CAAC,KAAM,EAAO,MAAM,EACzD,GAAcF,SAAS,IAAI,CAAC,WAAW,CAAC,EACzC,EC5DA,EAAoB,CAAC,CAAG,AAACX,IACrB,AAAkB,IAAlB,OAAOJ,QAA0BA,OAAO,WAAW,EACrDlD,OAAO,cAAc,CAACsD,EAASJ,OAAO,WAAW,CAAE,CAAE,MAAO,QAAS,GAEtElD,OAAO,cAAc,CAACsD,EAAS,aAAc,CAAE,MAAO,EAAK,EAC5D,ECNA,EAAoB,EAAE,CAAG,OCAzB,EAAoB,EAAE,CAAG,IAAO,QCChC,EAAoB,CAAC,CAAG,CAAC,EACzB,EAAoB,qBAAqB,CAAG,CAAE,0BAA2B,CAAE,QAAW,CAAC,CAAE,KAAM,yBAA0B,QAAS,kBAAmB,QAAS,IAAOP,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,MAAO,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,OAAW,MAAO,EAAG,UAAW,EAAG,gBAAiB,MAAO,cAAe,CAAE,EAAG,CAAE,KAAM,UAAW,QAAS,SAAU,QAAS,IAAO,EAAoB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAO,IAAO,EAAoB,OAAW,MAAO,EAAG,UAAW,EAAG,gBAAiB,UAAW,cAAe,CAAE,EAAG,CAAE,KAAM,gBAAiB,QAAS,SAAU,QAAS,IAAOA,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,OAAW,MAAO,EAAG,UAAW,EAAG,gBAAiB,OAAQ,cAAe,CAAE,EAAG,CAAE,KAAM,mBAAoB,QAAS,SAAU,QAAS,IAAOA,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,OAAW,MAAO,EAAG,UAAW,EAAG,gBAAiB,OAAQ,cAAe,CAAE,EAAG,CAAE,KAAM,QAAS,QAAS,SAAU,QAAS,IAAO,EAAoB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAO,IAAO,EAAoB,OAAW,MAAO,EAAG,UAAW,EAAG,gBAAiB,OAAQ,cAAe,CAAE,EAAG,CAAE,KAAM,gBAAiB,QAAS,QAAS,QAAS,IAAOA,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,OAAW,MAAO,EAAG,UAAW,EAAG,gBAAiB,MAAO,cAAe,CAAE,EAAG,CAAE,KAAM,gBAAiB,QAAS,QAAS,QAAS,IAAOA,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,MAAO,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,OAAW,MAAO,EAAG,UAAW,EAAG,gBAAiB,MAAO,cAAe,CAAE,EAAG,CAAE,KAAM,eAAgB,QAAS,QAAS,QAAS,IAAOA,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,OAAW,MAAO,EAAG,UAAW,EAAG,gBAAiB,MAAO,cAAe,CAAE,EAAE,AAAC,EAAG,WAAY,oBAAqB,EACj3E,EAAoB,CAAC,CAAG,EAAoB,CAAC,EAAI,WAAa,MAAM,AAAIC,MAAM,oCAAqC,ECD/G,EAAoB,CAAC,CAAC,aAAa,EAAE,GAAY,EAAoB,CAAC,CAAC,QAAQ,CAAG,EAAC,EACvF,IXFIQ,EADA,EMAA,EKAA,EAGAY,EAAW,EAAoB,CAAC,CAAC,QAAQ,CAC7C,GAAI,CAAC,GAAaA,IAIZA,EAAS,aAAa,EAAIA,AAAiD,WAAjDA,EAAS,aAAa,CAAC,OAAO,CAAC,WAAW,IAAiB,GAAYA,EAAS,aAAa,CAAC,GAAG,AAAD,EAC1H,CAAC,GAAW,CACd,IAAI,EAAUA,EAAS,oBAAoB,CAAC,UAC5C,GAAI,EAAQ,MAAM,CAEhB,IADA,IAAI,EAAI,EAAQ,MAAM,CAAG,EAClB,EAAI,IAAO,EAAC,GAAa,CAAC,aAAa,IAAI,CAAC,EAAS,GAAI,EAAY,CAAO,CAAC,IAAI,CAAC,GAAG,AAEhG,CAKF,GAAI,CAAC,EAAW,MAAM,AAAIpB,MAAM,wDAGhC,GAAoB,CAAC,CAFrB,EAAY,EAAU,OAAO,CAAC,SAAU,IAAI,OAAO,CAAC,OAAQ,IAAI,OAAO,CAAC,QAAS,IAAI,OAAO,CAAC,YAAa,KCpB1G,EAAoB,mBAAmB,CAAG,CAAE,aAAc,CAAC,IAAM,CAAC,OAAO,CAAC,IAAM,CAAC,OAAO,OAAO,CAAC,IAAM,CAAC,OAAO,CAAC,IAAM,CAAC,OAAO,CAAC,IAAM,CAAC,OAAO,CAAC,IAAM,CAAC,MAAM,KAAK,EAAG,6BAA8B,CAAC,GAAM,CAAE,WAAY,UAAW,SAAU,mBAAoB,OAAQ,mBAAoB,gBAAiB,OAAQ,cAAe,GAAO,UAAW,GAAM,MAAO,GAAO,SAAU,IAAOD,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,MAAU,EAAG,KAAQ,CAAE,WAAY,UAAW,SAAU,gBAAiB,OAAQ,gBAAiB,gBAAiB,MAAO,cAAe,GAAO,UAAW,GAAM,MAAO,GAAO,SAAU,IAAO,EAAoB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAO,IAAO,EAAoB,MAAU,EAAG,KAAQ,CAAE,WAAY,UAAW,SAAU,QAAS,OAAQ,QAAS,gBAAiB,OAAQ,cAAe,GAAO,UAAW,GAAM,MAAO,GAAO,SAAU,IAAO,EAAoB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAO,IAAO,EAAoB,MAAU,EAAG,IAAO,CAAE,WAAY,UAAW,SAAU,gBAAiB,OAAQ,gBAAiB,gBAAiB,OAAQ,cAAe,GAAO,UAAW,GAAM,MAAO,GAAO,SAAU,IAAOA,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,MAAU,EAAG,KAAQ,CAAE,WAAY,UAAW,SAAU,yBAA0B,OAAQ,yBAA0B,gBAAiB,MAAO,cAAe,GAAO,UAAW,GAAM,MAAO,GAAO,SAAU,IAAOA,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,MAAO,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,MAAU,EAAG,KAAQ,CAAE,WAAY,UAAW,SAAU,UAAW,OAAQ,UAAW,gBAAiB,UAAW,cAAe,GAAO,UAAW,GAAM,MAAO,GAAO,SAAU,IAAO,EAAoB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAO,IAAO,EAAoB,MAAU,EAAG,KAAQ,CAAE,WAAY,UAAW,SAAU,gBAAiB,OAAQ,gBAAiB,gBAAiB,MAAO,cAAe,GAAO,UAAW,GAAM,MAAO,GAAO,SAAU,IAAO,EAAoB,CAAC,CAAC,MAAM,IAAI,CAAC,IAAO,IAAO,EAAoB,MAAU,EAAG,KAAQ,CAAE,WAAY,UAAW,SAAU,eAAgB,OAAQ,eAAgB,gBAAiB,MAAO,cAAe,GAAO,UAAW,GAAM,MAAO,GAAO,SAAU,IAAO,EAAoB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAO,IAAO,EAAoB,MAAU,CAAC,EAAG,gBAAiB,EAAE,AAAC,EACj/E,EAAoB,CAAC,CAAC,QAAQ,CAAG,EAAoB,CAAC,CAAC,QAAQ,EAAI,WAAa,MAAM,AAAIC,MAAM,6CAA8C,ECD1I,EAAoB,qBAAqB,CAAG,CAC9C,UAAW,CACX,UAAW,IACND,QAAQ,GAAG,CAAC,CAAC,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAQ,EAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAO,IAAO,EAAoB,MAEtJ,EACE,WAAY,SACd,EACA,EAAoB,YAAY,CAAG,EAAoB,YAAY,EAAI,WAAa,MAAM,AAAIC,MAAM,+CAAgD,EAAE,EAAoB,aAAa,CAAG,EAAoB,aAAa,EAAI,WAAa,MAAM,AAAIA,MAAM,gDAAiD,ErCLnS,EAAkB,CAAC,IAAO,CAAE,EAE9B,EAAoB,CAAC,CAAC,CAAC,CAAG,SAAU,CAAO,CAAE,CAAQ,EAE7D,IAAI,EAAqB,EAAoB,CAAC,CAAC,EAAiB,GAC7D,CAAe,CAAC,EAAQ,CACxB,OACH,GAAI,AAAuB,IAAvB,EAIH,GAAI,EACH,EAAS,IAAI,CAAC,CAAkB,CAAC,EAAE,OAEnC,GAAK,0BAA0B,IAAI,CAAC,GAiC7B,CAAe,CAAC,EAAQ,CAAG,MAjCY,CAE7C,IAAI,EAAU,IAAID,QAAQ,CAACI,EAAS,IAAY,EAAqB,CAAe,CAAC,EAAQ,CAAG,CAACA,EAAS,EAAO,EACjH,EAAS,IAAI,CAAE,CAAkB,CAAC,EAAE,CAAG,GAGvC,IAAI,EAAM,EAAoB,CAAC,CAAG,EAAoB,CAAC,CAAC,GAEpD,EAAQ,AAAIH,QAwBhB,EAAoB,CAAC,CAAC,EAvBH,SAAU,CAAK,EACjC,GAAI,EAAoB,CAAC,CAAC,EAAiB,KAEtC,AAAuB,IAD3B,GAAqB,CAAe,CAAC,EAAQ,AAAD,GACd,EAAe,CAAC,EAAQ,CAAG,MAAQ,EAC7D,GAAoB,CACvB,IAAI,EACH,GAAU,CAAe,SAAf,EAAM,IAAI,CAAc,UAAY,EAAM,IAAI,AAAD,EACpD,EAAU,GAAS,EAAM,MAAM,EAAI,EAAM,MAAM,CAAC,GAAG,AACvD,GAAM,OAAO,CACZ,iBACA,EACA,cACA,EACA,KACA,EACA,IACD,EAAM,IAAI,CAAG,iBACb,EAAM,IAAI,CAAG,EACb,EAAM,OAAO,CAAG,EAChB,CAAkB,CAAC,EAAE,CAAC,EACvB,CAEF,EACyC,SAAW,EAAS,EAC9D,CAIM,EAEJ,EAAiB,CAAC,EAA4B,KACjD,IAGI,EAAU,EAHV,CAAC,EAAU,EAAa,EAAQ,CAAG,EAGhB,EAAI,EAC3B,GAAI,EAAS,IAAI,CAAC,AAAC,GAAQ,AAAwB,IAAxB,CAAe,CAAC,EAAG,EAAU,CACvD,IAAK,KAAY,EACZ,EAAoB,CAAC,CAAC,EAAa,IACtC,GAAoB,CAAC,CAAC,EAAS,CAAG,CAAW,CAAC,EAAS,AAAD,CAGpD,IAAsB,EAAQ,EACnC,CAEA,IADI,GAA4B,EAA2B,GACpD,EAAI,EAAS,MAAM,CAAE,IAC3B,EAAU,CAAQ,CAAC,EAAE,CAEpB,EAAoB,CAAC,CAAC,EAAiB,IACvC,CAAe,CAAC,EAAQ,EAExB,CAAe,CAAC,EAAQ,CAAC,EAAE,GAE5B,CAAe,CAAC,EAAQ,CAAG,CAG7B,EAGA,CADI,EAAqBc,WAAW,8BAAiC,CAAGA,WAAW,8BAAiC,EAAI,EAAE,EACvG,OAAO,CAAC,EAAe,IAAI,CAAC,KAAM,IACrD,EAAmB,IAAI,CAAG,EAAe,IAAI,CAAC,KAAM,EAAmB,IAAI,CAAC,IAAI,CAAC,IsCtFjF,EAAoB,IAAI,CAAG,uBrCAvB,EAAc,EAAoB,CAAC,CACnC,EAAS,GACb,EAAoB,CAAC,CAAG,WAKvB,GAJK,IACJ,EAAS,GACT,EAAoB,OAEjB,AAAuB,YAAvB,OAAO,EACV,OAAO,IAERF,QAAQ,IAAI,CAAC,2BACd,E"}
|
package/dist/routes.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"$schema":"https://json.openmrs.org/routes.schema.json","extensions":[{"name":"audit-dashboard-link","slot":"homepage-dashboard-slot","component":"auditDashboardLink","meta":{"name":"audit","slot":"audit-dashboard-slot","title":"Audit"}},{"name":"audit-dashboard","slot":"audit-dashboard-slot","component":"root"}],"version":"2.1.0"}
|
package/jest.config.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pih/esm-audit-app",
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "An audit trail for patient encounters and observations in the PIH EMR",
|
|
5
|
+
"browser": "dist/pih-esm-audit-app.js",
|
|
6
|
+
"main": "src/index.ts",
|
|
7
|
+
"source": true,
|
|
8
|
+
"license": "MPL-2.0",
|
|
9
|
+
"homepage": "https://github.com/PIH/openmrs-esm-pihemr#readme",
|
|
10
|
+
"scripts": {
|
|
11
|
+
"start": "openmrs develop",
|
|
12
|
+
"serve": "rspack serve --mode=development",
|
|
13
|
+
"debug": "npm run serve",
|
|
14
|
+
"build": "rspack --mode production",
|
|
15
|
+
"analyze": "rspack --mode=production --env analyze=true",
|
|
16
|
+
"lint": "cross-env eslint src --ext ts,tsx",
|
|
17
|
+
"test": "cross-env TZ=UTC jest --config jest.config.js --verbose false --passWithNoTests --color",
|
|
18
|
+
"test:watch": "cross-env TZ=UTC jest --watch --config jest.config.js --color",
|
|
19
|
+
"coverage": "yarn test --coverage",
|
|
20
|
+
"typescript": "tsc",
|
|
21
|
+
"extract-translations": "i18next 'src/**/*.component.tsx'"
|
|
22
|
+
},
|
|
23
|
+
"browserslist": [
|
|
24
|
+
"extends browserslist-config-openmrs"
|
|
25
|
+
],
|
|
26
|
+
"keywords": [
|
|
27
|
+
"openmrs"
|
|
28
|
+
],
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"access": "public"
|
|
31
|
+
},
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "git+https://github.com/PIH/openmrs-esm-pihemr.git"
|
|
35
|
+
},
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/PIH/openmrs-esm-pihemr/issues"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@babel/runtime": "^7.24.0"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"@openmrs/esm-framework": "8.x",
|
|
44
|
+
"i18next": "^19.0.0",
|
|
45
|
+
"react": "18.x",
|
|
46
|
+
"react-i18next": "16.x",
|
|
47
|
+
"react-router-dom": "^6.x",
|
|
48
|
+
"swr": "2.x"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"openmrs": "^10.0.1-pre.5263"
|
|
52
|
+
}
|
|
53
|
+
}
|
package/rspack.config.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('openmrs/default-rspack-config');
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { formatDate, formatDatetime, parseDate } from '@openmrs/esm-framework';
|
|
2
|
+
import { type OpenmrsResourceRef } from '../types';
|
|
3
|
+
|
|
4
|
+
/** Formats a REST date, without the "Today" shorthand — an audit trail wants literal dates. */
|
|
5
|
+
export function formatAuditDate(date: string | undefined): string {
|
|
6
|
+
return date ? formatDate(parseDate(date), { mode: 'wide', time: false, noToday: true }) : '';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function formatAuditDatetime(date: string | undefined): string {
|
|
10
|
+
return date ? formatDatetime(parseDate(date), { mode: 'wide', noToday: true }) : '';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Renders the "who and when" of an audit entry, e.g. `Cos John — 01 Sep 2026, 11:09 AM`. The user
|
|
15
|
+
* reference the API returns for `creator`, `changedBy` and `voidedBy` displays as the person's
|
|
16
|
+
* name, or as the username where the account has no person name.
|
|
17
|
+
*/
|
|
18
|
+
export function formatUserAndDate(user: OpenmrsResourceRef | undefined, date: string | undefined): string {
|
|
19
|
+
const formattedDate = formatAuditDatetime(date);
|
|
20
|
+
if (user?.display && formattedDate) {
|
|
21
|
+
return `${user.display} — ${formattedDate}`;
|
|
22
|
+
}
|
|
23
|
+
return user?.display ?? formattedDate;
|
|
24
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { useSearchParams } from 'react-router-dom';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { PageHeader, PageHeaderContent, PatientSearchPictogram } from '@openmrs/esm-framework';
|
|
5
|
+
import EncounterAudit from './encounter-audit.component';
|
|
6
|
+
import PatientRecord, { type PatientRecordView, patientRecordViews } from './patient-record.component';
|
|
7
|
+
import PatientSearch from './patient-search.component';
|
|
8
|
+
import styles from './audit.scss';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The audit trail is a three step drill-down — find a patient, pick one of their encounters, then
|
|
12
|
+
* read what was entered, changed and deleted on it. The current step is held in the query string
|
|
13
|
+
* so that a particular encounter's audit trail can be linked to and so that the browser's back
|
|
14
|
+
* button walks back up the drill-down.
|
|
15
|
+
*/
|
|
16
|
+
export default function Audit() {
|
|
17
|
+
const { t } = useTranslation();
|
|
18
|
+
const [searchParams, setSearchParams] = useSearchParams();
|
|
19
|
+
const patientUuid = searchParams.get('patient');
|
|
20
|
+
const encounterUuid = searchParams.get('encounter');
|
|
21
|
+
const view = searchParams.get('view');
|
|
22
|
+
const patientRecordView: PatientRecordView = patientRecordViews.includes(view as PatientRecordView)
|
|
23
|
+
? (view as PatientRecordView)
|
|
24
|
+
: 'encounters';
|
|
25
|
+
|
|
26
|
+
const goTo = useCallback(
|
|
27
|
+
(next: { patient?: string; encounter?: string; view?: PatientRecordView }) => {
|
|
28
|
+
const params = new URLSearchParams(searchParams);
|
|
29
|
+
params.delete('patient');
|
|
30
|
+
params.delete('encounter');
|
|
31
|
+
params.delete('view');
|
|
32
|
+
if (next.patient) {
|
|
33
|
+
params.set('patient', next.patient);
|
|
34
|
+
}
|
|
35
|
+
if (next.encounter) {
|
|
36
|
+
params.set('encounter', next.encounter);
|
|
37
|
+
}
|
|
38
|
+
if (next.view && next.view !== 'encounters') {
|
|
39
|
+
params.set('view', next.view);
|
|
40
|
+
}
|
|
41
|
+
setSearchParams(params);
|
|
42
|
+
},
|
|
43
|
+
[searchParams, setSearchParams],
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<div className={styles.container}>
|
|
48
|
+
<PageHeader className={styles.pageHeader}>
|
|
49
|
+
<PageHeaderContent title={t('auditTrail', 'Audit trail')} illustration={<PatientSearchPictogram />} />
|
|
50
|
+
</PageHeader>
|
|
51
|
+
{encounterUuid ? (
|
|
52
|
+
<EncounterAudit
|
|
53
|
+
encounterUuid={encounterUuid}
|
|
54
|
+
onBackToEncounters={(uuid) => goTo({ patient: uuid ?? patientUuid, view: patientRecordView })}
|
|
55
|
+
/>
|
|
56
|
+
) : patientUuid ? (
|
|
57
|
+
<PatientRecord
|
|
58
|
+
onBackToSearch={() => goTo({})}
|
|
59
|
+
onSelectEncounter={(uuid) => goTo({ patient: patientUuid, encounter: uuid, view: patientRecordView })}
|
|
60
|
+
onSelectView={(nextView) => goTo({ patient: patientUuid, view: nextView })}
|
|
61
|
+
patientUuid={patientUuid}
|
|
62
|
+
view={patientRecordView}
|
|
63
|
+
/>
|
|
64
|
+
) : (
|
|
65
|
+
<PatientSearch onSelectPatient={(uuid) => goTo({ patient: uuid })} />
|
|
66
|
+
)}
|
|
67
|
+
</div>
|
|
68
|
+
);
|
|
69
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import React, { type PropsWithChildren } from 'react';
|
|
2
|
+
import { act, renderHook, waitFor } from '@testing-library/react';
|
|
3
|
+
import { SWRConfig } from 'swr';
|
|
4
|
+
import { openmrsFetch } from '@openmrs/esm-framework';
|
|
5
|
+
import { type AuditEncounter, type AuditPatient } from '../types';
|
|
6
|
+
import { usePatientEncounters, usePatientEncounterTypes } from './audit.resource';
|
|
7
|
+
import { type EncounterFilters } from './encounter-filters';
|
|
8
|
+
|
|
9
|
+
const mockOpenmrsFetch = jest.mocked(openmrsFetch);
|
|
10
|
+
|
|
11
|
+
const patient: AuditPatient = {
|
|
12
|
+
uuid: 'patient-1',
|
|
13
|
+
display: 'Y2AHXV - Dave TestPatient',
|
|
14
|
+
identifiers: [{ uuid: 'id-1', identifier: 'Y2AHXV', preferred: true }],
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const consultationType = { uuid: 'type-consultation', display: 'Oncology Consultation' };
|
|
18
|
+
const checkinType = { uuid: 'type-checkin', display: 'Inscription' };
|
|
19
|
+
|
|
20
|
+
const april: AuditEncounter = {
|
|
21
|
+
uuid: 'enc-april',
|
|
22
|
+
encounterDatetime: '2026-04-18T09:00:00.000+0000',
|
|
23
|
+
patient: { uuid: 'patient-1', display: 'Dave TestPatient' },
|
|
24
|
+
encounterType: consultationType,
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const may: AuditEncounter = {
|
|
28
|
+
uuid: 'enc-may',
|
|
29
|
+
encounterDatetime: '2026-05-02T09:00:00.000+0000',
|
|
30
|
+
voided: true,
|
|
31
|
+
patient: { uuid: 'patient-1', display: 'Dave TestPatient' },
|
|
32
|
+
encounterType: checkinType,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const wrapper = ({ children }: PropsWithChildren) => (
|
|
36
|
+
<SWRConfig value={{ dedupingInterval: 0, provider: () => new Map() }}>{children}</SWRConfig>
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
function renderUsePatientEncounters(includeDeleted: boolean, filters: EncounterFilters) {
|
|
40
|
+
return renderHook(() => usePatientEncounters(patient, includeDeleted, filters, 10), { wrapper });
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
describe('usePatientEncounters', () => {
|
|
44
|
+
beforeEach(() => {
|
|
45
|
+
mockOpenmrsFetch.mockImplementation((url: string) => {
|
|
46
|
+
if (url.includes('/encounter?q=')) {
|
|
47
|
+
return Promise.resolve({ data: { results: [april, may] } }) as ReturnType<typeof openmrsFetch>;
|
|
48
|
+
}
|
|
49
|
+
return Promise.resolve({ data: { results: [april], totalCount: 1 } }) as ReturnType<typeof openmrsFetch>;
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('reuses one read of the deleted-encounter search across both hooks', async () => {
|
|
54
|
+
const { result } = renderHook(
|
|
55
|
+
() => ({
|
|
56
|
+
encounters: usePatientEncounters(patient, true, {}, 10),
|
|
57
|
+
types: usePatientEncounterTypes(patient, true),
|
|
58
|
+
}),
|
|
59
|
+
{ wrapper },
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
await waitFor(() => expect(result.current.types.encounterTypes).toHaveLength(2));
|
|
63
|
+
expect(result.current.encounters.encounters).toHaveLength(2);
|
|
64
|
+
expect(mockOpenmrsFetch.mock.calls.filter(([url]) => (url as string).includes('/encounter?q=')).length).toBe(1);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
/** `useOpenmrsPagination` rebuilds the url through `URL`, so its params come back encoded. */
|
|
68
|
+
function lastRequestedUrl() {
|
|
69
|
+
return decodeURIComponent(mockOpenmrsFetch.mock.calls.at(-1)?.[0] as string);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
it('has the server apply the filters, and page, when deleted encounters are excluded', async () => {
|
|
73
|
+
const { result } = renderUsePatientEncounters(false, {
|
|
74
|
+
encounterType: consultationType,
|
|
75
|
+
fromDate: '2026-04-01',
|
|
76
|
+
toDate: '2026-04-30',
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
await waitFor(() => expect(result.current.encounters).toHaveLength(1));
|
|
80
|
+
expect(lastRequestedUrl()).toContain(
|
|
81
|
+
'&encounterType=type-consultation&fromdate=2026-04-01T00:00:00&todate=2026-04-30T23:59:59',
|
|
82
|
+
);
|
|
83
|
+
expect(lastRequestedUrl()).toContain('&limit=10&startIndex=0&totalCount=true');
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it('asks the server for the next page rather than reading the whole record', async () => {
|
|
87
|
+
mockOpenmrsFetch.mockImplementation(
|
|
88
|
+
() => Promise.resolve({ data: { results: [april], totalCount: 30 } }) as ReturnType<typeof openmrsFetch>,
|
|
89
|
+
);
|
|
90
|
+
const { result } = renderUsePatientEncounters(false, {});
|
|
91
|
+
|
|
92
|
+
await waitFor(() => expect(result.current.totalCount).toBe(30));
|
|
93
|
+
expect(result.current.currentPage).toBe(1);
|
|
94
|
+
|
|
95
|
+
act(() => result.current.goTo(3));
|
|
96
|
+
|
|
97
|
+
await waitFor(() => expect(result.current.currentPage).toBe(3));
|
|
98
|
+
expect(lastRequestedUrl()).toContain('&limit=10&startIndex=20&totalCount=true');
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it('applies the filters on the client when deleted encounters are included', async () => {
|
|
102
|
+
const { result } = renderUsePatientEncounters(true, { fromDate: '2026-05-01' });
|
|
103
|
+
|
|
104
|
+
await waitFor(() => expect(result.current.isLoading).toBe(false));
|
|
105
|
+
expect(result.current.encounters.map((encounter) => encounter.uuid)).toEqual(['enc-may']);
|
|
106
|
+
expect(result.current.totalCount).toBe(1);
|
|
107
|
+
expect(mockOpenmrsFetch).toHaveBeenCalledWith(expect.stringContaining('/encounter?q=Y2AHXV&includeAll=true'));
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
it('returns both encounters when nothing is filtered', async () => {
|
|
111
|
+
const { result } = renderUsePatientEncounters(true, {});
|
|
112
|
+
|
|
113
|
+
await waitFor(() => expect(result.current.isLoading).toBe(false));
|
|
114
|
+
expect(result.current.encounters.map((encounter) => encounter.uuid)).toEqual(['enc-may', 'enc-april']);
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
it('cannot list deleted encounters for a patient with no identifier', async () => {
|
|
118
|
+
const { result } = renderHook(
|
|
119
|
+
() => usePatientEncounters({ uuid: 'patient-2', display: 'No Identifier' }, true, {}, 10),
|
|
120
|
+
{ wrapper },
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
await waitFor(() => expect(result.current.cannotIncludeDeleted).toBe(true));
|
|
124
|
+
expect(result.current.encounters).toEqual([]);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
describe('usePatientEncounterTypes', () => {
|
|
129
|
+
it("offers only the types the patient's own encounters use", async () => {
|
|
130
|
+
mockOpenmrsFetch.mockImplementation((url: string) => {
|
|
131
|
+
if (url.includes('totalCount=true')) {
|
|
132
|
+
return Promise.resolve({ data: { results: [], totalCount: 0 } }) as ReturnType<typeof openmrsFetch>;
|
|
133
|
+
}
|
|
134
|
+
return Promise.resolve({ data: { results: [april, { ...april, uuid: 'enc-again' }] } }) as ReturnType<
|
|
135
|
+
typeof openmrsFetch
|
|
136
|
+
>;
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
const { result } = renderHook(() => usePatientEncounterTypes(patient, false), { wrapper });
|
|
140
|
+
|
|
141
|
+
await waitFor(() => expect(result.current.isLoading).toBe(false));
|
|
142
|
+
expect(result.current.encounterTypes).toEqual([consultationType]);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it('includes types that only deleted encounters use, once those are shown', async () => {
|
|
146
|
+
mockOpenmrsFetch.mockImplementation((url: string) => {
|
|
147
|
+
if (url.includes('/encounter?q=')) {
|
|
148
|
+
return Promise.resolve({ data: { results: [april, may] } }) as ReturnType<typeof openmrsFetch>;
|
|
149
|
+
}
|
|
150
|
+
return Promise.resolve({ data: { results: [april] } }) as ReturnType<typeof openmrsFetch>;
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
const { result } = renderHook(() => usePatientEncounterTypes(patient, true), { wrapper });
|
|
154
|
+
|
|
155
|
+
await waitFor(() => expect(result.current.isLoading).toBe(false));
|
|
156
|
+
expect(result.current.encounterTypes).toEqual([checkinType, consultationType]);
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
it("leaves out other patients' types when reading the deleted-encounter search", async () => {
|
|
160
|
+
mockOpenmrsFetch.mockImplementation(
|
|
161
|
+
() =>
|
|
162
|
+
Promise.resolve({
|
|
163
|
+
data: {
|
|
164
|
+
results: [april, { ...may, patient: { uuid: 'patient-2', display: 'Someone Else' } }],
|
|
165
|
+
},
|
|
166
|
+
}) as ReturnType<typeof openmrsFetch>,
|
|
167
|
+
);
|
|
168
|
+
|
|
169
|
+
const { result } = renderHook(() => usePatientEncounterTypes(patient, true), { wrapper });
|
|
170
|
+
|
|
171
|
+
await waitFor(() => expect(result.current.isLoading).toBe(false));
|
|
172
|
+
expect(result.current.encounterTypes).toEqual([consultationType]);
|
|
173
|
+
});
|
|
174
|
+
});
|